- •Лекция 1 Глава 1 основные понятия баз данных
- •Лекция 2 проблемы обработки информации
- •Методы и средства обработки данных
- •Лекция 3 понятие базы данных
- •Лекция 4 реляционная модель базы данных
- •Лекция 5 инфологическое моделирование данных сущность-связь
- •Модель сущность-связь
- •Сущность
- •Атрибут
- •Лекция 6 связи между сущностями
- •Ключ, первичный ключ, внешний ключ
- •Имя роли
- •Лекция 7-8 реляционный подход
- •Основные понятия
- •Формальное определение
- •Связывание таблиц реляционных баз данных
- •Контроль целостности связей
- •Лекция 9 физическая организация данных в соответствии с реляционным подходом
- •Реляционная модель и модель сущность - связь
- •Языки запросов к реляционнам базам данных
- •Лекция 10-11 принципы организации хранения данных устройства хранения данных
- •Принципы хранения данных на вторичных устройствах
- •Неупорядоченные последовательные файлы
- •Упорядоченные последовательные файлы
- •Хешированные файлы
- •Лекция 12-13 открытая адресация
- •Несвязанная область переполнения
- •Связанная область переполнения
- •Многократное хеширование
- •Динамическое хеширование
- •Лекция 14 индексированные файлы
- •Индексно-последовательный файл
- •Вторичный индекс
- •Многоуровневые индексы
- •Лекция 15 деревья
- •Языки запросов к базе данных
- •Специальные реляционные операции (операции обработки данных)
- •Дополнительные операции
- •Операции изменения тела отношения
- •Правила записи выражений реляционной алгебры
- •Реляционное исчисление
Несвязанная область переполнения
Вместо поиска пустого слота для разрешения конфликтов можно использовать область переполнения, предназначенную для размещения записей, которые не могут быть вставлены по вычисленному для них адресу перемешивания.
Преимущества. 1. Высокая эффективность операций вставки 2. Нефиксированный размер БД 3. Высокая эффективность операций поиска и удаления в случае небольшого количества конфликтов (при малом количестве записей в области переполнения, которая представляет собой неупорядоченный последовательный файл со всеми его преимуществами и недостатками).
Недостаток. Большая потеря производительности в случае большого количества конфликтов, количество которых увеличивается по мере заполнения БД.
Связанная область переполнения
Для разрешения конфликтов используется область переполнения. Однако все сегменты содержат дополнительное поле указатель синонима, которое указывает страницу в области переполнения, использованную для разрешения конфликта. Если указатель равен нулю, конфликта нет.
Преимущества. 1. Высокая эффективность операций вставки, удаления, поиска по сравнению с предыдущими методами. Самой трудоемкой является операция вставки, для которой иногда потребуется найти свободный сегмент в области переполнения, однако в среднем она также выполняется более эффективно, чем в предыдущих методах. 2. Нефиксированный размер БД
Недостаток. Потери на хранение дополнительных служебных данных – указателя синонима, которые, однако, относительно невелики.
Многократное хеширование
Альтернативный подход для разрешения конфликтов заключается в применении второй функции хеширования, если первая функция приводит к возникновению конфликта. Цель второй хеш-функции заключается в создании нового адреса перемешивания, который позволил бы избежать конфликта. Вторая хеш-функция обычно используется для размещения записей в области переполнения. Аналогично может быть использовано несколько уровней хеширования.
Динамическое хеширование
Перечисленные выше методы хеширования являются статическими, в том смысле, что пространство хеш-адресов фиксируется непосредственно при создании файла. Говорят, что пространство файла уже насыщено, когда оно уже почти полностью заполнено. Для дальнейшего ввода данных необходимо реорганизовать его хеш-структуру, для чего может потребоваться создать новый файл большего размера, выбрав новую функцию хеширования и отобразив старый файл на новый. В альтер-нативном подходе, получившем название динамического хеширования, допускается динамическое изменение размера файла с целью его постоянного приспособления к росту или сокращению размеров базы данных.
Динамическая хеш-функция генерирует n-битовые бинарные целые числа, где n обычно равно 32. Основной принцип динамического хеширования заключается в обработке числа, генерированного хеш-функцией в виде последовательности битов, и распределении записей среди сегментов на основе некоторой интерпретации этой последовательности.
Рассмотрим кратко один тип динамического хеширования, который называется расширяемым хешированием. Вначале записи добавляются только в первый сегмент, и так продолжается до тех пор, пока он не будет полностью заполнен. В этот момент сегмент расщепляется на 2i новых сегментов, где 0 < i < n (обычно i=1, то есть сегмент разбивается на 2 новых сегмента). Адреса сегментов хранятся в каталоге – таблице адресов сегмента. Адрес сегмента, предназначенного для хранения данных со значением хеш-функции равном P, находится в k-ой ячейке каталога, где k – десятичное число, соответствующее двоичному числу, полученному из старших i бит двоичного числа P. После расщепления сегментов ранее хранимые данные перераспределяются по новым сегментам.
При переполнении одного из новых сегментов операция расщепления сегментов повторяется, а каталог будет содержать большее количество адресов новых сегментов, хранимые значения которых будут определяться уже по большему количеству старших бит хеш-значения
Если в результате удаления записей сегмент опустошается, он может быть удален вместе с его указателем в каталоге. В некоторых схемах возможно слияние малых сегментов и уменьшение вдвое размера самого каталога.
