Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inform sistem.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.22 Mб
Скачать

Пример нормализации отношений

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

1) Номер заказа - тип числовой (или счетчик);

2) Код клиента- тип числовой (или символьный);

3) Наименование клиента- тип символьный;

4) Адрес клиента- тип символьный;

5) Код продукта - тип числовой (или символьный);

6) Название продукта - тип символьный;

7) Количество- тип числовой (кг или шт.);

8) Дата поставки - тип даты (дд.мм.гггг);

9) Цена- тип числовой (руб/кг);

10) Стоимость- тип числовой (руб).

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

Найдем детерминанты, то есть атрибуты А, от значений которых однозначно зависят атрибуты В.

Очевидные детерминанты:

1) Код клиента (от него зависят такие атрибуты как Наименование клиента и Адрес клиента- это полная функциональная зависимость);

2) Код продукта (от него зависят атрибуты Название продукта и Цена- это полная функциональная зависимость);

3) Номер заказа (однозначно идентифицирует заказ, кроме того атрибуты Код клиента, Код продукта, Количество, Дата поставки однозначно зависят от этого атрибута).

Первая нормальная форма требует атомарных значений атрибутов. Это касается поля Адрес клиента, то есть необходимо расписать это поле на несколько полей. Например, на поля Улица, Дом, Квартира. Повторяющихся групп в нашей таблице нет.

Вторая нормальная форма требует убрать из таблицы частичные функциональные зависимости. У нас это выполняется путем создания двух новых отношений (таблиц) с именами

1) Клиенты (поля: Код клиента, Наименование клиента, Улица, Дом, Квартира );

2) Продукты (поля: Код продукта, Название продукта, Цена).

Третья нормальная форма требует убрать зависимость между неключевыми атрибутами. У нас это касается поля Стоимость. Это поле - вычисляемое поле и его надо вообще убрать из таблицы.

Нормальная форма Бойса- Кодда (BCNF) требует, чтобы каждый детерминант являлся возможным ключом. В новых таблицах поля Код клиента и Код продукта будем считать ключевыми полями соответственно таблиц Клиенты и Продукты. В таблице Заказы ключевым полем является поле Номер заказа.

Так как в наших трех таблицах отсутствуют многозначные зависимости, то требования 4NF, то есть четвертый нормальной формы, выполняются. Итак, в результате нормализации отношений получили три таблицы:

1) Оперативная таблица Заказы:

____________________________________________

|Номер | Код |Количество| Код | Дата |

|заказа|продукта| |клиента| поставки|

|______|________|__________|_______|_________|

| ... | ... | ... | ... | ... |

|______|________|__________|_______|_________|

2) Справочная таблица Продукты:

________________________________________

| Код продукта | Название продукта| Цена |

|______________|__________________|______|

| ... | ... | ... |

|______________|__________________|______|

3) Справочная таблица Клиенты:

__________________________________________

| Код |Наименование|Улица|Дом|Квартира |

|клиента|клиента | | | |

|_______|____________|_____|___|_________|

| ... | ... | ... |...| ... |

|_______|____________|_____|___|_________|

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