Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 13_ Проектирование БД.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
173.57 Кб
Скачать

3. Основы теории нормальных форм

В реляционных БД определенная часть информации выражается множеством {известных функциональных} зависимостей между атрибутами сущностей (между полями таблиц). Однако, некоторые зависимости могут быть нежелательны из-за побочных эффектов (аномалий), которые они вызывают при модификации базы данных. Для их устранения прибегают к процедуре, называемой декомпозицией (разложением, разбиением) исходных таблиц, {что составляет суть процесса нормализации. Другими словами,} нормализация – это пошаговый обратимый процесс замены данной совокупности таблиц другой, в которой таблицы имеют более простую структуру.

Обратимость означает возможность восстановления структуры исходной совокупности таблиц. Для этого необходима декомпозиция, гарантирующая отсутствие потерь и сохранение зависимостей.

S

SST

SC

В качестве примера рассмотрим таблицу поставщиков.

код_п

статус

город

п3

30

Париж

п5

30

Лондон

код_п

статус

п3

30

SST

п5

30

код_п

город

п3

Париж

SC

п5

Лондон

а)

б)

статус

город

30

Париж

30

Лондон


код_п

статус

п3

30

п5

30


{Ознакомившись с приведенными декомпозициями, можно заметить две особенности:}

  1. В случае (а) информация не утрачивается, {поскольку отношения SST и SC все еще содержат данные о том, что поставщик п3 имеет статус 30 и находится в Париже, а поставщик п5 имеет статус 30 и находится в Лондоне. Иначе говоря, первая} декомпозиция действительно является декомпозицией без потерь.

  2. В случае (б), наоборот, некоторая информация утрачивается, {поскольку оба поставщика имеют статус 30, но при этом нельзя сказать, какой из них в каком городе находится. Иначе говоря, вторая} декомпозиция не является декомпозицией без потерь (полной декомпозицией).

Существуют 6 “нормальных форм”, в которых могут находиться таблицы БД. {Ограничиться рассмотрением лишь первых трех. Для проектирования большинства БД достаточно.}

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

Таблица находится в первой нормальной форме, если все ее поля имеют атомарные (единственные) значение, т.е. значение поля не должно быть множеством или группой. {Ненормализованной структуре соответствует многоуровневая таблица (иерархия) в отличие от однородной табличной структуры.}

Например:

Рейс (номер_рейса, пункт_назначения, расписание)

Расписание (день, время_вылета)

Пусть имеются следующие данные о рейсах:

Р101 Владивосток пон. 9:40

вт. 9:30

пятн. 10:30

Р800 Москва пон. 7:30

чет. 7:30

пятн. 7:30

Преобразовать эти данные в 1НФ можно 2 способами:

1) В составной таблице Рейс заменить таблицу Расписание соответствующими атрибутами:

Рейс (номер_рейса, пункт_назначения, день, время_вылета)

номер

пункт_назначения

день

время_вылета

Р101

Владивосток

пон.

9:40

Р101

Владивосток

вт.

9:30

Р101

Владивосток

пятн.

10:30

Р800

Москва

пон

7:30

Р800

Москва

чет.

7:30

Р800

Москва

пятн.

7:30

Недостатки этого способа:

а) избыточность; б) необходимость определения нового ключа.

2) Таблица с множественными значениями указывает на то, что существует, по крайней мере, один объект (сущность), который должен описываться отдельной таблицей. Нужно выделить из имеющейся таблицы этот объект, определить его структуру (поля), и провести декомпозицию таблицы так, чтобы каждая из полученных таблиц находилась в 1НФ:

Рейс (номер_рейса, пункт_назначения)

Расписание (номер_расписания, день, время_вылета, номер_рейса)

Рейс <--->> Расписание