Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольные для управления данными / для типографии методическое пособие по БД.doc
Скачиваний:
97
Добавлен:
20.02.2016
Размер:
670.72 Кб
Скачать
      1. 7.3.2 Пример нормализации отношений

Разберем на примере создание базы данных с помощью нормализации. Дан документ «Накладная» (рисунок 16), необходимо создать базу данных, приведенную к 3НФ.

Для создания таблицы, приведенной к первой нормальной форме, необходимо

1. Определить поле, которое можно назначить первичным ключом. Если такого поля нет, то добавить новое уникальное ключевое поле.

2. Определить группы повторяющихся полей.

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

4. Назначить первичные ключи в новых таблицах. (В качестве ключевых полей можно использовать поля таблицы или добавить новое поле. Если ключевое поле имеет большой размер, предпочтительней добавлять новое поле.)

5. Определить тип отношения между таблицами.

Накладная № 123

Дата Покупатель Адрес

10.10.2006 ООО "Весна" Тольятти, ул. Промышленная, 9

Название товара

Количество

Ед. изм.

Цена за ед. изм., рубю

Стоимость, руб.

1

Ручка шариковая № 1

100

шт.

25

2500

2

Ручка шариковая № 3

120

шт.

40

4800

3

Ручка шариковая № 4

100

шт.

73

7300

4

Карандаш КОН-НВ

250

шт.

5

1250

5

Корректор

120

шт.

23

2760

6

Клей канц. № 2

250

шт.

17

4250

7

Тетрадь кл. 18 л.

50

шт.

23

1150

8

Тетрадь кл. 12 л.

50

шт.

21

1050

Итого

25060

Рисунок 16 - Исходные документы для создания базы данных

Разделим семантически неделимые поля, например «Адрес», выделив из него поле «Город». Исключая повторяющиеся группы, выделим поле «Название товара». В качестве идентификатора добавим поля «Код товара» и «Код покупателя».

На рисунке 17 представлена база данных, приведенная к 1НФ.

Для приведения к 2НФ необходимо:

1) вынести все частично зависимые поля в отдельную таблицу;

2) определить ключевые поля;

3) установить отношения между таблицами.

Рисунок 17 - База данных, приведенная к 1НФ

На рисунке 18 представлена база данных, приведения к 2 НФ.

Рисунок 18 - База данных, приведенная к 2НФ

Определим поля «Код товара», «Код покупателя», «Дата» и «Номер накладной» как ключевые. Выделим в отдельные таблицы информацию, связанную с товаром, покупателями и накладными. Определим связь 1:1 между таблицами ПОКУПАТЕЛИ и НАКЛАДНЫЕ, и связь 1:М между таблицами НАКЛАДНЫЕ и ОТПУСК_ТОВАРА_СО_СКЛАДА, ТОВАР и ОТПУСК_ТОВАРА_СО_СКЛАДА.

Для приведения к 3НФ необходимо из таблиц исключить поля, которые не зависят от ключа.

Исключаем вычисляемые поля «Стоимость» и «Итог».

На рисунке 19 представлена база данных, приведенная к 3НФ.

Рисунок 19 - База данных, приведенная к 3НФ