- •Раздел 1.
- •Основы построения баз данных
- •Самостоятельная работа №1 (6 часов)
- •Тема: Этапы развития баз данных. Языковые средства банка данных. Роль субд.
- •Основные этапы развития баз данных
- •Первый этап — базы данных на больших эвм
- •Второй этап - эпоха персональных компьютеров
- •Третий этап - распределенные базы данных
- •Четвертый этап - перспективы развития систем управления базами данных
- •Языковые средства банка данных
- •Пользователи банков данных
- •Контрольные вопросы
- •Самостоятельная работа №2 (8 часов)
- •Общий обзор средств для работы с базами данных
- •Как связаны друг с другом компоненты для работы с базами данных
- •Назначение bde Administrator
- •Создание псевдонима бд
- •Параметры баз данных типа standard
- •Установки параметров драйвера paradox
- •Установки параметров драйвера interbase
- •Контрольные вопросы
- •Самостоятельная работа №3 (8 часов)
- •Архитектура базы данных. Физическая и логическая независимость
- •Классификация субд
- •Способы разработки и выполнения приложений
- •Контрольные вопросы
- •Самостоятельная работа №4 (8 часов)
- •Классификация моделей данных
- •Основные особенности систем, основанных на инвертированных списках
- •Файловые структуры, используемые для хранения данных в бд
- •Этапы доступа к бд
- •Компоненты модели данных
- •Контрольные вопросы
- •Самостоятельная работа №5 (8 часов)
- •Методы хранения данных и доступа к ним
- •Последовательный метод
- •Прямой метод
- •Индексные методы
- •Индексно-последовательный метод
- •Индексно-произвольный метод
- •Инвертированные списки
- •Контрольные вопросы
- •Раздел 2. Проектирование и использование баз данных самостоятельная работа №6 (8 часов)
- •Этапы проектирования баз данных
- •Внешний уровень — подготовительный этап инфологического проектирования
- •Составные части инфологической модели
- •Требования и подходы к инфологическому проектированию
- •Контрольные вопросы
- •Самостоятельная работа №7 (8 часов)
- •1. Отсутствие кортежей-дубликатов
- •2. Отсутствие упорядоченности кортежей
- •3. Отсутствие упорядоченности атрибутов
- •4. Атомарность значений атрибутов
- •Нормализация - за и против
- •Контрольные вопросы
- •Самостоятельная работа №8 (8 часов)
- •Ссылочная целостность и каскадные воздействия
- •Контрольные вопросы
- •Раздел 3 Структурированный язык запросов sql самостоятельная работа №9 (12 часов)
- •Роль sql
- •Манипулирование реляционными данными
- •Контрольные вопросы
- •Самостоятельная работа №10 (12 часов)
- •Выбор данных с помощью команды select.
- •Объединение таблиц. Использование агрегатных функций
- •Реализация вложенных запросов
- •Модификация данных. Операторы insert, delete, update
- •Контрольные вопросы
- •Список рекомендуемой литературы
Индексно-последовательный метод
В индексно-последовательном методе информационный файл размещается по блокам одинакового размера, причем начальная часть блока заполнена информационными записями, а конечная часть свободна. В качестве ключа индекса блока выбирается значение ключа его первой или последней записи (это предпочтительнее), индексы группируются в индексный файл, который упорядочен по значению ключа. Таким образом, индекс ссылается на группу записей (блок), которые расположены в логическом порядке, то есть в данном методе используется неплотный индекс.
Поиск производится следующим образом. В оперативную память загружается индекс, в нем выбирается ссылка на диапазон ключей, в котором предположительно находится искомая запись. Затем в память загружается нужный блок, в нем последовательным методом ищется нужный ключ.
Неплотность индекса дает возможность уменьшить количество его записей по сравнению с объемом базы кратно размеру блока. Но индекс все равно может стать слишком большим и не помещаться в память. Тогда есть два пути: либо увеличить блок, либо как-то реорганизовать индекс. Блок увеличить можно лишь в ограниченных пределах: во-первых, он должен помещаться в память, во-вторых – поиск в нем ключа не должен заметно сказываться на производительности. С индексом можно поступить интереснее: его можно рассматривать как информационный файл и, в свою очередь, проиндексировать. Таким образом, получается иерархия индексов, каждый элемент которой способен разместиться в память. Начальную загрузку для этого метода делают из сортированного файла.
Добавление записи в информационный файл производится в свободное место выбранного блока. Если свободного места нет, запись либо размещают в дополнительный блок, связанный с выбранным, который называется областью переполнения, либо делят блок пополам, формируя два новых. В первом случае процесс формирования блока проще, но зона последовательного поиска увеличивается на величину блока. Во втором случае процесс деления занимает довольно много времени, но время последующего поиска увеличивается незначительно.
Эффективность доступа зависит от размера индексов и числа уровней их иерархии. Кроме того, на нее влияет размер блоков, наличие в них свободных мест, наличие областей переполнения.
Эффективность хранения в основном зависит от объема свободного места в блоках и от величины индексов.
Пример
Список студентов размещается в файле, разделенном на блоки (правые прямоугольники), ссылки на блоки хранятся в индексном файле (слева), в качестве ключа выбираются последние фамилии блока.
Индексно-произвольный метод
В отличие от предыдущего, этот метод основан на использовании плотного индекса. В этом случае число статей индекса равно количеству информационных записей. Суть метода состоит в следующем. Для информационной структуры (файла) формируется индекс, который содержит значения ключей поиска и ссылки на соответствующие записи. При поиске записи вначале в индексе выбирается статья с искомым ключом, затем по ссылке выбирается непосредственно требуемая запись. Поиск однозначен, если он производится по первичному или другому уникальному индексу. В случае вторичного ключа результат поиска – выборка из записей с равными ключами.
Как и в индексно-последовательном методе, нужно стремиться к тому, чтобы весь индекс размещался в памяти. Но в данном случае, в силу плотности индекса, ситуация хуже из-за большего размера индекса. Более того, иногда он может превышать размер информационного файла. Уменьшение области поиска достигается, например, построением многоуровневого индекса. Ключи обычно бывают упорядоченными для последующего дихотомического поиска, но не исключаются и другие алгоритмы. Естественно, упорядоченность записей в информационном файле не существенна, однако иногда она позволяет заметно сократить время работы. Например, выдача отчета по всему файлу с сортировкой по ключу поиска приведет к последовательному просмотру статей индекса, но к хаотичному выбору записей в случае их сильного перемешивания по этому ключу. Это, в свою очередь, приводит к «дерганью» головки дисковода, что резко увеличивает время доступа. Решение проблемы – сортировка по ключу поиска. К замедлению поиска приводит и дублирование значений ключей, следовательно, этот метод наиболее эффективен для первичных индексов.
Итак, эффективность доступа во многом зависит от способа поиска статьи индекса, то есть от способа его организации. Кроме того, на него могут оказывать влияние некоторые свойства ключей (случайное расположение в файле, повторяемость).
Эффективность хранения зависит от размера индекса.
Пример
В приведенном примере список студентов размещается в информационном файле (правый прямоугольник), ссылки на записи хранятся в индексном файле (слева), в качестве ключа выбираются фамилии.
