План
Нормализация отношений
Функциональные зависимости
Аксиомы вывода
Нормализация отношений
Для устранения рассмотренных выше недостатков и применяется
процесс нормализация отношений. Данный процесс — это формальный
метод анализа отношений на основе их первичных или потенциальных
ключей и существующих функциональных зависимостей. Он включает ряд
формальных правил, используемых для проверки всех отношений базы
данных. Различают:
- 1НФ — первую нормальную форму;
- 2НФ — вторую нормальную форму;
- ЗНФ — третью нормальную форму;
- НФБК — нормальную форму Бойса — Кодда;
- 4НФ — четвертую нормальную форму;
- 5НФ — пятую нормальную форму.
Каждая нормальная форма налагает определенные ограничения на
данные. Эти ограничения вводятся в каждом конкретном отношении, и
соблюдение этих ограничений в отношении связано уже с наличием
нормальной формы. - 1НФ, 2НФ, ЗНФ— ограничивают зависимость непервичных
атрибутов от ключей. - НФБК — ограничивает зависимость первичных атрибутов.
- 4НФ — формулирует ограничения на виды многозначных
зависимостей. - 5НФ — вводит другие типы зависимостей: зависимости соединений.
Процесс перехода от нормальной формы более низкого уровня к
нормальной форме более высокого уровня и называется нормализацией
отношений (НО).
Для реляционных баз данных необходимо, чтобы все отношения
базы данных обязательно находились в 1НФ. Нормальные формы более
высокого порядка могут использоваться разработчиками по своему
усмотрению. Однако следует стремиться к тому, чтобы довести уровень
нормализации базы данных хотя бы до ЗНФ, тем самым, исключив из базы
данных избыточность данных и аномалии обновления.
Функциональные зависимости
Функциональная зависимость определяется для атрибутов,
находящихся в одном и том же отношении в 1НФ. Функциональная
зависимость является семантическим свойством атрибутов отношения.
Пусть дана схема отношения R(А1, А2, …., Аn).
Атрибут А2 функционально зависит от атрибута А1 если каждому
значению А1 соответствует единственное значение А2 (т. е. каждый
кортеж, имеющий одно и то же значение А1, должен иметь одно и то же
значение А2)
Обозначается подобная ситуация так: А1 → А2. Левая часть
функциональной зависимости называется детерминантом, а правая часть
— зависимой частью. Отсутствие функциональной зависимости
обозначается А -/→ В.
Рассмотренная выше функциональная зависимость — это F-зависимость.
Дадим более общее формальное определение функциональных
зависимостей.
Пусть r-отношение со схемой R, а X, Y— подмножества R.
Отношение r удовлетворяет функциональной зависимости X → Y, если для
любых двух кортежей t1 и t2 в r t1(X) = t2(X), то t1(Y) = t2(Y).
Это означает, что во всех кортежах с одинаковым значением
атрибута A атрибут B будет иметь одно и то же значение.
Отметим, что A и B могут быть составными – состоять из двух и
более атрибутов. Говорится: «A функционально определяет B» или
«B функционально зависит от A»
Пример: Примеры функциональных зависимостей
Пусть в отношении СТУДЕНТ
(Номер зачетной книжки, Фамилия, Имя, Отчество, Адрес, Код группы)
существуют такие ФЗ:
Номер зачетной книжки → Фамилия, Имя, Отчество
Номер зачетной книжки → Адрес, Код группы
Номер зачетной книжки, Фамилия, Имя, Отчество → Адрес,
Код группы
Аксиомы вывода
Для отношения r(R) в любой момент существует некоторое
семейство F-зависимостей, которым это отношение удовлетворяет.
Причем одно состояние отношения может удовлетворять F-зависимости,
а другое — нет. Требуется выявить семейство F-зависимостей F,
которому удовлетворяют все допустимые состояния r.
Множество функциональных зависимостей, применимых к
отношению r(R), конечно, так как существует только конечное число
подмножеств множества R. Таким образом, можно найти все F-зависимости,
которым удовлетворяет r, перебрав все возможные.
Время поиска можно сократить в том случае, если известны некоторые
F-зависимости из F. В подобной ситуации сокращение времени поиска
происходит часто из-за того, что остальные F-зависимости можно
получить, использую аксиомы вывода.
Аксиома вывода — это правило, устанавливающее, что если
отношение удовлетворяет определенным F-зависимостям, то оно должно
удовлетворять к некоторым другим F-зависимостям.
Ниже приведены шесть аксиом вывода для F-зависимостей.
В их формулировках используется обозначение r для отношения на R,
и W, X, У, Z для подмножеств R.
Запишем кратко все аксиомы.
- F1. Рефлексивность: X → X.
- F2. Пополнение: Х → Y влечет за собой XZ → Y.
- F3. Аддитивность: Х → Y и Х → Z влечет за собой Х → YZ.
- F4. Проективность: Х → YZ влечет за собой Х → Y.
- F5-Транзитивность: Х → Y и Y → Z влечет за собой Х → Z.
- F6. Псевдотранзитивность: Х → Y и YZ → W влечет за собой ХZ → W.