Выявление зависимостей между атрибутами
Выявление зависимостей между атрибутами необходимо для выполнения проекти-рования БД методом нормальных форм.
Выделяют следующую последовательность нормальных форм:
- первая нормальная форма (1НФ);
- вторая нормальная форма (2НФ);
- третья нормальная форма (ЗНФ);
- усиленная третья нормальная форма, или нормальная форма Бойса-Кодда (БКНФ);
- четвертая нормальная форма (4НФ);
- пятая нормальная форма (5НФ).
Первая нормальная форма. Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение). Исходное отношение строится таким образом, чтобы оно было в 1НФ.
Перевод отношения в следующую нормальную форму осуществляется методом де-композиции без потерь. Такая декомпозиция должна обеспечить то, что запросы (выбор-ка данных по условию) к исходному отношению и к отношениям, получаемым в резуль-тате декомпозиции, дадут одинаковый результат.
Основной операцией метода является операция проекции. Поясним ее на примере. Предположим, что в отношении R(A,B,C,D,E...) устранение функциональной зависимо-сти C->D позволит перевести его в следующую нормальную форму. Для решения этой задачи выполним декомпозицию отношения R на два новых отношения R1 (А,В,С,Е...) и R2(C,D). Отношение R2 является проекцией отношения R на атрибуты С и D.
Вторая нормальная форма. Отношение находится в 2НФ, если оно находится в 1 НФ и каждый не ключевой атрибут функционально полно зависит от первичного ключа (составного).
Для устранения частичной зависимости и перевода отношения в 2НФ необходимо, используя операцию проекции, разложить его на два отношения следующим образом:
• построить проекцию без атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;
• построить проекции на части составного первичного ключа и атрибуты, зависящие от этих частей.
Третья нормальная форма.Отношение находится в ЗНФ, если оно находится в 2НФ и каждый не ключевой атрибут не транзитивно зависит от первичного ключа.
Усиленная ЗНФ, или нормальная форма Бойса-Кодда(БКНФ).
Отношение находится в БКНФ, если оно находится в ЗНФ и в нем отсутствуют завися мости ключей (атрибутов составного ключа) от не ключевых атрибутов.
Итак, процесс нормализации отношений методом нормальных форм предполагает после-довательное удаление из исходного отношения следующих меж атрибутных зависимостей:
• частичных зависимостей не ключевых атрибутов от ключа (2НФ);
• транзитивных зависимостей не ключевых атрибутов от ключа (ЗНФ);
• зависимости ключей (атрибутов составных ключей) от не ключевых атрибутов (БКНФ).
Четвертая нормальная форма. Для приведения таблицы, находящейся в нормальной форме Бойса-Кодда, к четвертой нормальной форме необходимо устранить имеющиеся в ней многозначные зависимости. То есть обеспечить, чтобы вставка / удаление любой строки таблицы не требовала бы вставки / удаления / модификации других строк этой же таблицы.
Пятая нормальная форма. Таблицу, находящуюся в четвертой нормальной форме и, казалось бы, уже нормализованную до предела, в некоторых случаях еще можно бывает разбить на три или более таблиц, соединив которые, мы получим исходную таблицу. Получившиеся в результате такой, как правило, весьма искусственной, декомпозиции таблицы и называют находящимися в пятой нормальной форме. Формальное определение пятой нормальной формы таково: это форма, в которой устранены зависимости соединения. В большинстве случаев практической пользы от нормализации таблиц до пятой нормальной формы не наблюдается.
8.Первичные и внешние ключи.
ü Первичный ключ — в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию).
Если в отношении имеется единственный потенциальный ключ, он является и первичным ключом. Если потенциальных ключей несколько, один из них выбирается в качестве первичного, а другие называют «альтернативными».
С точки зрения теории все потенциальные ключи отношения эквивалентны, то есть обладают одинаковыми свойствами уникальности и минимальности. Однако в качестве первичного обычно выбирается тот из потенциальных ключей, который наиболее удобен для тех или иных практических целей, например для создания внешних ключей в других отношениях либо для создания кластерного индекса. Поэтому в качестве первичного ключа, как правило, выбирают тот, который имеет наименьший размер (физического хранения) и/или включает наименьшее количество атрибутов.
Исторически термин «первичный ключ» появился и стал использоваться существенно ранее термина «потенциальный ключ». Вследствие этого множество определений в реляционной теории были изначально сформулированы с упоминанием первичного (а не потенциального) ключа, например, определения нормальных форм. Так же термин «первичный ключ» вошёл в формулировку 12 правил Кодда как основной способ адресации любого значения отношения (таблицы) наряду с именем отношения (таблицы) и именем атрибута (столбца).
Если первичный ключ состоит из единственного атрибута, его называют простым ключом.
Если первичный ключ состоит из двух и более атрибутов, его называют составным ключом.
ü Внешний ключ представляет собой множество атрибутов некоторой переменной отношения R2, значения которых должны совпадать со значениями некоторого потенциального ключа некоторой переменной отношения R1.
Формальное определение. Допустим, что R2 — переменная отношения. В таком случае внешним ключом FK в R2 является множество атрибутов R2, такое, что выполняются следующие требования: