- •2. Основные компоненты системы баз данных.
- •3.Уровни абстракции в субд
- •Название лекции: Замыкание множества атрибутов. Неприводимое множество зависимостей.
- •Название лекции: Нормализация отношений.
- •Нормализация отношений.
- •Теорема Хеза.
- •Далее рассмотрение нормальных форм будем производить на примере следующего отношения:
- •Организация сортированных файлов с закрепленными записями.
- •Инициализация: процедура формирования файла индекса по первоначальному главному файлу называется – инициализацией.
- •Поиск: найти запись с ключом v1.
- •Модификация: аналогично предыдущей. Включение: добавить запись с ключом v1.
- •Удаление: поиск записи с ключом v1. Если запись найдена, то установка бита удален в состояние «1» (запись удалена). Если данная запись не закреплена установка бита свободен/занят в состояние свободен.
- •Соглашения, принятые для организации в–деревьев.
- •Модификация.
- •Включение.
- •Удаление.
- •Файлы с плотным индексом.
- •Преимущество плотного индекса.
- •Файлы с записями переменной длины.
- •Основные стратегии решения.
- •Структуры данных для организации поиска по не ключевым полям.
- •Вторичные индексы (инвертированные файлы).
- •Поиск по частичному соответствию.
Структуры данных для организации поиска по не ключевым полям.
Гибкая система БД позволяет получать по запросам информацию из полей, идентифицируемых значениями полей или поля, которые не образуют ключ.
В FoxPro используют LOCATE– недостаток – большое время доступа.
Вторичные индексы (инвертированные файлы).
Пусть имеется файл, записи которого содержат некоторое поле F. Это поле принимает возможные значения из множества D, домена поля F. F может входить или не входить в ключ.
Вторичный индекс по полю F представляет собой связь между доменом D и множеством записей рассматриваемого файла (ранее рассматриваемые индексы связывают значение ключа с записями файла – называется первичным индексом). Файл с вторичным индексом по полю F называется инвертированным по полю F.
В нотации записей переменной длинны вторичные индексы имеют вид:
Значение (запись)*
где «значение»– значение поля F из домена, (запись)*– список ссылок на записи основного файла.
Если в список входят физические указатели на запись (номера записей) следовательно запись основного файла закреплена.
Если в список – список уникальных ключей основного файла следовательно запись не закреплена, но требуется дополнительные операции поиска по ключам.
Пример: цвет (список инв. номеров с данным цветом).
Поиск по частичному соответствию.
Требуется найти запись со значением v1 поля F1, v2 поля F2 … vк поля Fк . Эти поля не образуют полного первичного ключа. Если Si есть множество записей, для которой Fi имеет значение vi то требуется найти:
Рассмотрим методы решения.
Использование множественного вторичного индекса. Достаточно пересечь вторичные индексы (возможно в оперативной памяти). Недостаток: поддержка индексов при включении и удалении. Пример: система «ADABAS».
Функции разделенного хеширования. В хеш – файле число участков 2n. Логический адрес n бит. Разделим n бит на k групп. Одна i-тая группа соответствует одному полю Fi . Для каждой группы построим свою хеш – функцию hi (Vi). В качестве номера участка примем последовательность бит: h1 (V1) h2 (V2)… hk (Vk). Сумма длин всех участков равна h. Каждое значение Vi переведем в часть ключа hi (Vi), построим общий ключ →поиск в построенном номере участка.