
- •1.Введение
- •2. Основные понятия баз данных.
- •2.1 Базы данных и системы управления базами данных.
- •2.2. Структура простейшей базы данных
- •4.Элементы реляционной модели
- •5.Ограничения и операции над отношениями
- •6.Зависимости между атрибутами
- •7.Выявление зависимостей между атрибутами
- •9.Нормализация базы данных
7.Выявление зависимостей между атрибутами
Выявление зависимостей между атрибутами необходимо для выполнения проекти-рования БД методом нормальных форм.
Выделяют следующую последовательность нормальных форм:
-
первая нормальная форма (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, такое, что выполняются следующие требования:
-
существует переменная отношения R1 (R1 и R2 не обязательно должны быть разными) с потенциальным ключом ПК;
-
существует возможность переименования некоторого подмножества атрибутов FK, такое что FK преобразуется (скажем) в FK’, a FK’ и ПК относятся к одному и тому же типу (кортежу);
-
в любое время каждое значение FK в текущем значении R2 приводит к получению значения для FK’, которое идентично значению ПК в некотором кортеже в текущем значении R1.