Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БД.doc
Скачиваний:
34
Добавлен:
23.09.2019
Размер:
1.93 Mб
Скачать

1 Нормальная форма (1нф)

Определение. Отношение находится в 1НФ, если все его атрибуты атомарны.

Пример

Пусть для отношения со схемой рейс (Номер, Пункт назначения, Вылет) атрибут Вылет определен как пара (День, Время):

рейс

(Номер,

Пункт назначения,

Вылет)

1

Владивосток

пн, 9:40

ср, 10:20

632

Уфа

пн, 6:00

вт, 6:00

В этом случае легко реализовать запросы типа «Выдать все рейсы до Уфы», в отличие от запроса «Выдать все рейсы, вылетающие утром». С точки зрения второй задачи отношение не находится в 1НФ. Преобразование очевидно: отношение заменяется другим со схемой

рейс (Номер, Пункт назначения, День, Время).

Конец примера

2 Нормальная форма (2нф)

Определение. Атрибут, входящий в ключ, называется первичным.

Определение. Функциональная зависимость X=(A1,A2,...,Ak)B полная, если B зависит от всех Ai из X. Если существует X'B, где X' – собственное подмножество X, функциональная зависимость неполная.

Определение. Отношение находится во 2НФ, если каждый непервичный атрибут функционально полно зависит от ключей.

Пример

Задано отношение со схемой поставки (Поставщик, Товар, Цена), для которого определены следующие ограничения:

  • Товар могут поставлять разные поставщики.

  • Цена одинаковых товаров одинакова.

  • Поставщик может поставлять разные товары.

Эти ограничения определяют следующие функциональные зависимости:

Поставщик, Товар Цена

Товар Цена

Здесь налицо неполная функциональная зависимость цены от ключа.

Аномалия включения: новый товар не включается в БД без поставки.

Аномалия удаления: поставки прекращаются – удаляются сведения о товаре.

Аномалия обновления: изменение цены влечет полный пересмотр.

Преобразование:

Поставки (поставщик, товар)

Цена товара (товар, цена)

Конец примера

3 Нормальная форма (3нф)

Определение. Атрибут A транзитивно зависит от X, если существует Y такой, что X Y & (Y X) & Y A влечет X A.

Определение. Отношение находится в 3НФ, если в нем отсутствует транзитивная зависимость атрибутов от первичных атрибутов.

Пример

Решается задача, связанная с определением складов для отделений больницы. Задача ставится руководством отделения, для которого важно, чтобы за его отделением был закреплен склад определенного объема, причем только один. Тогда для отношения со схемой хранение (Отделение, Склад, Объем) существует единственная функциональная зависимость:

Отделение Склад

Через некоторое время выяснилось, что нужно следить и за складами вообще, что порождает вторую функциональную зависимость:

Склад Объем

Таким образом, отношение оказалось не в 3НФ (существует транзитивная зависимость объема от отделения через склад).

Аномалия включения: нет отделения, получающего товар с этого склада – нет сведений об объеме.

Аномалия удаления: отделение перестает получать товар – нет данных о складе.

Аномалия обновления: изменение объема склада влечет полный пересмотр.

Преобразование:

хранение (Отделение, Склад)

объем склада (Склад, Объем)

Конец примера