1. Рассмотрите отдельно каждую связь между сущностями и получите для нее по соответствующему правилу предварительный набор отношений (ПНО).
2. Проверьте полученные отношения на соответствие нормальной форме Бойса-Кодда. Сделайте выводы о правильности построенной вами информационной модели. Проведите мероприятия по ее корректировке.
Пример выполнения задания 2
Предметная область – «Учет отпуска товара со склада».
ОТПУСК ТОВАР СО СКЛАДА (№_НАКЛАДНОЙ, ДАТА, ФАМИЛИЯ И ИНИЦИАЛЫ ПОКУПАТЕЛЯ, ГОРОД, АДРЕС, НАИМЕНОВАНИЕ_ТОВАРА, КОЛИЧЕСТВО, ЕД_ИЗМ, ЦЕНА_ЗА_ЕД, ОБЩАЯ_СТОИМОСТЬ)
Определение первой нормальной формы
1.1 Определяем первичный ключ
ОТПУСК ТОВАР СО СКЛАДА (№_НАКЛАДНОЙ, ДАТА, ФАМИЛИЯ И ИНИЦИАЛЫ ПОКУПАТЕЛЯ, ГОРОД, АДРЕС, НАИМЕНОВАНИЕ_ТОВАРА, КОЛИЧЕСТВО, ЕД_ИЗМ, ЦЕНА_ЗА_ЕД, ОБЩАЯ_СТОИМОСТЬ)
1.2 Определяем группы повторяющихся полей и формирование групп повторяющихся полей в отдельные таблицы.
Таблица содержит две группы повторяющихся полей:
- поля, характеризующие покупателя: ФАМИЛИЯ И ИНИЦИАЛЫ ПОКУПАТЕЛЯ, ГОРОД, АДРЕС – вынесем их в отдельную таблицу «ПОКУПАТЕЛИ»;
|
|
- поля, характеризующие товар: НАИМЕНОВАНИЕ_ТОВАРА, ЕД_ИЗМ, ЦЕНА_ЗА_ЕД – вынесем их в отдельную таблицу «ТОВАРЫ».
1.3 Назначаем новые ключи в новых таблицах:
- в таблицу «ПОКУПАТЕЛИ» добавим новое поле «КОД_ПОКУПАТЕЛЯ», которое будет однозначно идентифицировать каждую запись таблицы;
- в таблицу «ТОВАРЫ» добавим новое поле «КОД_ТОВАРА».
1.4 Конечный результат:
ОТПУСК ТОВАР СО СКЛАДА
| ПОКУПАТЕЛИ
| ||||||||||
ТОВАРЫ
|
Определение второй нормальной формы
Таблица «ОТПУСК ТОВАР СО СКЛАДА» имеет составной ключ по трем полям: №_НАКЛАДНОЙ, КОД_ПОКУПАТЕЛЯ, КОД_ТОВАРА.
Поле «КОЛИЧЕСТВО» является частичнозависящим, так как зависит от «КОД_ПОКУПАТЕЛЯ» и «КОД_ТОВАРА». Согласно последующему анализу, поле «ДАТА» зависит только от поля «№_НАКЛАДНОЙ», поэтому выделим «ДАТА» и «№_НАКЛАДНОЙ» в отдельную таблицу «НАКЛАДНЫЕ»:
НАКЛАДНЫЕ (№_НАКЛАДНОЙ, ДАТА).
Конечный результат:
ОТПУСК ТОВАР СО СКЛАДА
| ПОКУПАТЕЛИ
| ||||||||
ТОВАРЫ
| НАКЛАДНЫЕ
|