Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab3.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
385.02 Кб
Скачать

Первая нормальная форма

Реляционная таблица находится в первой нормальной форме (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.

Рассмотрите реляционную таблицу (заглавные буквы обо­значают имена атрибутов, строчные буквы и цифры — значения ат­рибутов):

А) Обведите в кружок те функциональные зависимости, которые кажутся вам выполненными для таблицы:

Б) Определите возможный ключ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]