
- •Новосибирская государственная академия экономики и управления
- •«Базы данных»
- •Введение
- •Основные понятия реляционной модели данных Реляционные таблицы
- •Пустые значения
- •Внешние ключи
- •Категорная целостность
- •Целостность на уровне ссылок
- •Функциональные зависимости.
- •Нормализации отношений
- •Первая нормальная форма
- •Функциональные зависимости
- •Вторая нормальная форма
- •Третья нормальная форма
- •Знф влечет 2нф влечет 1нф.
- •Четвертая нормальная форма
- •Другие нормальные формы
- •3. Методика проектирования реляцтонной бд на основе декомпазиционного алгоритма
Первая нормальная форма
Реляционная таблица находится в первой нормальной форме (1НФ), если значения в таблице являются атомарными для каждого атрибута таблицы. Под этим мы просто подразумеваем, что никакое значение атрибута не может быть множеством значений или, как иногда говорят, повторяющейся группой. Определение Кодда реляционной таблицы содержит условие, согласно которому реляционная таблица должна удовлетворять первой нормальной форме. Таким образом, мы будем впредь предполагать, что все рассматриваемые нами реляционные схемы находятся в 1НФ. Однако Для того чтобы пояснить понятие, мы рассмотрим пример таблицы, не удовлетворяющей этому условию.
Атомарное значение. Значение, не являющееся множеством значений или повторяющейся группой.
На рис. 5 обратите внимание на значения, введенные в атрибут BLDG-ID. Мы собрали все назначения каждого работника на разные здания в одно множество. Значение атрибута BLDG-ID — это множество зданий, на которых работает данных человек. Предположим, что мы заинтересованы в информации только об одном из зданий, на которых работник трудится. Извлечь эту информацию может оказаться непросто, так как идентификатор нужного нам значения запрятан внутри множества в кортеже.
Реляционная таблица на рис. 5 не соответствует 1НФ, так как значения BLDG-ID не являются атомарными. Это означает, что для данного кортежа BLDG-ID может иметь несколько значений. Однако таблица, представленная на рис. 4, имеет 1НФ, так как нужное нам значение, то есть идентификатор конкретного здания, может быть выбрано путем простой ссылки на имя атрибута BLDG-ID.
Рис. 5. Версия таблицы WORKER, не отвечающая первой нормальной форме
Поскольку в определении Кодда реляционной модели требуется, чтобы все реляционные таблицы находились в 1НФ, то рис. 5 даже не является настоящей таблицей. Мы будем следовать определению Кодда и предполагать, что все таблицы имеют 1НФ.
Следующие две нормальные формы, вторая и третья, относятся к реляционным таблицам, ограниченным функциональными зависимостями. Прежде чем перейти к этим двум нормальным формам, мы должны объяснить, что такое функциональные зависимости.
Функциональные зависимости
Ранее в этой главе мы обсудили категорную целостность и целостность на уровне ссылок. Функциональные зависимости (ФЗ) позволяют накладывать дополнительные ограничения на реляционную схему. Основная идея состоит в том, что значение одного атрибута в кортеже однозначно определяет значение другого атрибута. Например, в каждом кортеже на рис. 4 WORKER-ID однозначно определяет NAME; WORKER-ID однозначно определяет SKILL-TYPE. Мы записываем эти две функциональные зависимости следующим образом:
ФЗ: WORKER-ID -> NAME
ФЗ: WORKER-ID -> SKILL-TYPE
Функциональная зависимость. Значение атрибута в кортеже однозначно определяет значение другого атрибута в кортеже.
Более формально мы. можем определить функциональную зависимость следующим образом: если А и В — атрибуты в таблице R, то запись
ФЗ: А -> В
обозначает, что если два кортежа в таблице R имеют одно и то же значение атрибута А, то они имеют одно и то же значение атрибута В. Это определение также применимо, если А и В — множества столбцов, а не просто отдельные столбцы.
Обозначение —> читается «функционально определяет». Так, в нашем примере WORKER-ID функционально определяет NAME, WORKER-ID функционально определяет SKILL-TYPE, А функционально определяет В.
Атрибут в левой части ФЗ называется детерминантом, так как его значение определяет значение атрибута в правой части. Ключ таблицы является детерминантом, так как его значение однозначно определяет значение каждого атрибута таблицы.
Детерминант. Атрибут(ы) в левой части функциональной зависимости, которые определяет(ют) значения других атрибутов кортежа.
Задание 1.
Рассмотрите реляционную таблицу (заглавные буквы обозначают имена атрибутов, строчные буквы и цифры — значения атрибутов):
А) Обведите в кружок те функциональные зависимости, которые кажутся вам выполненными для таблицы:
Б) Определите возможный ключ.