Приход
Название_Детали Номер_накладной
Дата
Поставщик
Город
Улица
Дом
Количество
Единица_изм.
Цена_за_ед.
Стоимость Рис.2.4 – Второй шаг в выборе ключа
в) Если ключ неизбыточен, проверить, что значения всех полей однозначно зависят от значения первичного ключа.
Видим, что «Цена_за_ед.» и «Единица_изм.» функционально полно завися от поля «Название_Детали». Выделим эти поля в отдельную таблицу
«Деталь». Так как одно наименование детали может присутствовать в различных накладных, установим связь один ко многим (рис.2.5)
Рис.2.5 – Декомпозиция на два отношения.
Внимательно рассмотрим таблицу «Приход». Видим, что поле «Поставщик» не зависит от «Номер_накладной», от поле «Поставщик» однозначно
определяет «Город», «Улица» и «Дом». выделим эти поля в отдельную таблицу «Поставщики» (рис.2.6)
Рис.2.6– Декомпозиция на три отношения.
Однако, связь не устанавливается. Далее определим, что «Дата» зависит от номера накладной. Выделим это поле в отдельную таблицу
«Накладные» и установим связи: «Поставщики» - «Накладные» (1:М) и «Накладные» - «Приход» (1:М) (рис.2.7).
Рис.2.7 – Декомпозиция на четыре отношения Полученное множество отношений находится в 2НФ.
3НФ. Отношение находится в 3НФ, тогда и только тогда, когда оно находится во 2НФ. В таблице не должно быть транзитивных зависимостей между неключевыми полями. Или другими словами значение неключевого поля не зависит от любого неключевого поля.
Втаблице «Приход» поле «Стоимость» зависит от поля «Количество»
исуществует формула вычислений «Стоимость» = «Количество» * «Цена_за_ед.». То, что поле «Цена_за_ед.» находится в другой таблице не имеет значения.
Исключим поле «Стоимость». Получим множество отношений рис.2.8.
Рис.2.8 – Декомпозиция на четыре отношения в 3НФ
База данных нормализована. Здесь возможна декомпозиция только до
3НФ.
Список литературы.
1.И.А. Дьяков – Базы данных. Язык SQL.
2.Дж. Ульман. Основы систем баз данных - http://reslib.com/book/Osnovi_sistem_baz_dannih.
3.Кириллов В.В. Основы проектирования реляционных баз данных - http://citforum.ru/database/dbguide/index.shtml.
4.Пушников А.Ю. Введение в системы управления базами данных - http://citforum.ru/database/dblearn/index.shtml.
5.http://www.mstu.edu.ru/education/materials/zelenkov/toc.html
6.http://kiselev.uir.nauchi.ru/Data%20Base/DesMak/lection7.htm#_Toc262
50433.
7.http://iu5.bmstu.ru/~philippovicha/Articles/MFD.htm
