
- •Основные определения и требования к базам данных
- •Определения
- •Категории баз данных
- •Требования к базе данных
- •Неизбыточность и непротиворечивость данных
- •Защита данных от программных и аппаратных сбоев
- •Мобильность прикладного программного обеспечения
- •Секретность данных
- •Представление и описание информации
- •Плоские (двойные) файлы
- •Ключи
- •Системы управления базами данных (СУБД)
- •Языковые средства для работы с базами данных
- •Глобальное логическое описание
- •Компоненты описания схемы данных
- •Классификация моделей данных
- •Иерархические модели данных
- •Сетевые модели данных
- •Классификация структурированных моделей данных
- •Реляционные модели данных
- •Преобразование структурированных моделей к реляционному виду
- •Ключи
- •Операции реляционной алгебры
- •Декомпозиция отношений
- •Функциональные зависимости
- •Правила логического следования
- •Аксиомы функциональных зависимостей
- •Ключи
- •Вторая нормальная форма
- •Правило построение второй нормальной формы:
- •Преимущества второй нормальной формы перед первой
- •Третья нормальная форма
- •Правило построения
- •Преимущества третьей нормальной формы
- •Построение канонической модели общего вида
- •Построение канонической модели реляционного типа
- •Построение замыканий
- •Построение минимального покрытия множества функциональных зависимостей
- •Декомпозиция схем отношений
- •Многозначные зависимости
- •Построение канонической модели
- •Физическая организация базы данных. Алгоритмы работы СУБД
- •Введение
- •Архитектуры современных ЭВМ
- •Факторы, влияющие на выбор физической организации БД (технология, представление, алгоритмы и прочее)
- •Схема временных затрат при реализации запросов
- •Классификация методов доступа
- •Последовательный метод доступа
- •Индексно-произвольный метод доступа
- •Прямой метод доступа
- •Методы хеширования
- •Списки и инвертированные файлы

http://slava.fateback.com |
36 |
Сохранение зависимостей при декомпозиции
Определение 2.31 Проекцией πZ(F ) множества функциональных зависимостей на множество атрибутов Z зовется совокупность зависимостей вида X → Y F : X, Y Z.
|
k |
|
iS |
Определение 2.32 Декомпозиция ρ(R1, R2, . . . , Rk) сохраняет зависимость, если F |
=1 πRi(F ). |
Замечание. Сохранение зависимостей при декомпозиции наряду с предыдущим свойством является основным ограничением при проектировании схемы БД. Если это свойство нарушено, то оператор сможет ввести несоответствующие прикладной области данные.
Пример. Пусть U = {A, B, C}, F = {AB → C, C → A}, ρ(AC, BC). Проведем алгоритм проверки соединения без потерь информации. Первый шаг:
A B C
AC a1 b12 a3
BC b21 a2 a3
Пробегаем F . Первая зависимость не меняет таблицу, вторая приводит к следующей:
A B C
AC a1 b12 a3
BC a1 a2 a3
Декомпозиция удовлетворяет свойству соединения без потерь информации. Но πAC(F )
πBC(F ) = {C → A} 6= F . Зависимости не сохраняются.
Пример. Пусть U = {A, B, C, D}, F = {A → B, C → D}, ρ(AB, CD). Проведем алгоритм проверки соединения без потерь информации. Первый шаг:
A B C D
AB a1 a2 b13 b14
CD b21 b22 a3 a4
В этой таблице нет строк, совпадающих хотя бы по одному атрибуту, и подстановки
невозможны. Декомпозиция не удовлетворяет свойству соединения без потерь информации. πAB(F ) πCD(F ) = {A → B} {C → D} = F , то есть зависимости сохраняются.
Примеры показывают, что соединение без потерь информации и сохранение зависимостей никак между собой не связаны.
2.8.4 Многозначные зависимости
Определение 2.33 Атрибут X мультиопределяет Y в контексте Z, (X Y (Z)), если в какой-либо реализации схемы R имеются два картежа t, u : t[X] = u[X], то найдется и третий картеж v : v[X] = t[X], v[Y ] = t[Y ], v[Z] = u[Z] (или симметрично, найдется картеж w : w[X] = t[X], w[Y ] = u[Y ], w[Z] = t[Z]).
http://slava.fateback.com |
37 |
Замечание. Признаком многозначной зависимости может быть следующим: если при дополнении какого-либо картежа немедленно требуется дополнение еще нескольких картежей.
Пример. Пусть отношение содержит атрибуты «Номер рейса» (A1), «Номер бригады» (A2), «Номер члена экипажа» (A3), «Дата вылета» (A4). Здесь имеются следующие мультизависимости: A1A2 A3(A4), поскольку в бригаду входит несколько человек и летят одним рейсом. Из дополнения получается зависимость A1A2 A4(A3). При обычной зависимости контекст опускается.
Пример. Пусть отношение содержит атрибуты «Наименование товара» (A1), «Номер пояса» (A2), «Цена товара» (A3). Поясов у товара три, и добавление нового товара требует занесения в отношение еще двух записей для оставшихся поясов. Этот пример демонстрирует особый вид зависимости, поскольку здесь она такова: A1(A2).
Замечание. Если X Y Z = R, то зависимость зовется обычной, иначе — встроенной.
Из теории БД известно, что теория функциональных зависимостей полна и непротиворечива, обычных мультизависимостей — полна и непротиворечива, встроенных мультизависимостей — непротиворечива и неполна.
Если обобщенный ключ XY Z и в нем выявлена мультзависимость X Y (Z), то производится декомпозиция на XY и XZ. При этом операцией естественного соединения получается исходное отношение, что говорит о сохранении свойства соединения без потерь информации, ради которого и вводится обобщенный ключ.
2.8.5 Построение канонической модели
Дано: R схема отношений, определенная на множестве атрибутов U = {A1, A2, . . . , An}, минимальное покрытие F множества функциональных зависимостей.
Определение 2.34 Xi — множество атрибутов, входящих в зависимость Fi F .
Шаг 1. Формируется декомпозиция ρ(X1, X2, . . . , Xk).
Шаг 2. Если Xi и Xj построенные по функциональным зависимостям, левые части которых совпадают и имеют одинаковые области определения, то строим объединение этих множеств Xi Xj. Сами Xi, Xj удаляются из декомпозиции, а объединение — дополняется.
Шаг 3. Если X мультиопределяет Y в контексте Z, (X Y (Z)), то отношение Ri, содержащая все эти атрибуты, декомпонируется на пару XY и XZ.
Шаг 4. Если имеются атрибуты Aj, не входящие ни в одну функциональную зависимость, то из них формируются отдельные отношения. Это требование формальное, но фактически оно свидетельствует об ошибке проектирования.
Замечание. Наличие атрибутов, описанных на шаге 4, говорит о том, что данные атрибуты принадлежат объектам, для которых в БД не предусмотрена однозначная идентификация. Необходимо ввести идентификатор и вернуться к построению множества функциональных зависимостей. Ситуация аналогична проблеме изолированных данных.
Замечание. По построению декомпозиция сохраняет функциональные зависимости (по ним она строится).