Первая нормальная форма.
· Все атрибуты должны быть атомарны, т.е. каждое поле каждой записи должно содержать неделимое значение (при любом делении атрибут теряет смысл).
· Не должно быть повторяющихся атрибутов.
· Каждая таблица должна содержать первичный ключ.
Рассмотрим таблицу «Библиотека». В ней хранятся данные о читателях библиотеки. Что делать, если понадобится поиск по фамилии? Неатомарные значения можно разбивать программно, однако удобнее сделать это сразу в БД. Также каждый читатель может иметь несколько номеров телефонов (сколько – заранее не известно), этот атрибут следует перенести в отдельную сущность. Приведём БД к 1НФ.
2. Вторая нормальная форма. Выполняется первая нормальная форма; неключевые поля должны зависеть от всего первичного ключа таблицы.
При выдаче каждой новой книги в таблице «Библиотека» приходится полностью дублировать данные о читателе, который её взял. Чтобы избежать избыточности данных, разобьём сущность «Библиотека» на 2 сущности – «Читатели» и «Выдача книг».
Обратите внимание на сущность «Выдача книг». Название книги зависит от кода книги, но не зависит от кода читателя и даты выдачи. В итоге название книги будет повторяться для каждой новой выдачи книги разным читателям. Перенесем атрибут «Название книги» в отдельную сущность «Книги».
Ключ таблицы «Книги» является подмножеством ключа таблицы «Учет книг».
3. Третья нормальная форма. Выполняется вторая нормальная форма; атрибуты не зависят ни от чего, кроме первичного ключа.
В сущности «Читатели» почтовый индекс зависит от названия города, в котором живет читатель, название города – от кода читателя. Появляется транзитивная зависимость «Почтовый индекс» - «Город» - «Читатель». Для разных читателей город может повторяться, значит, будет повторяться и индекс, информация станет избыточной. При этом, если не введено название города, нельзя ввести в БД почтовый индекс.
Перенесем индекс и название города в отдельную сущность «Города».
В результате всех преобразований и приведения к 3НФ в БД «Библиотека» вместо одной сущности появилось пять.
3НФ можно описать следующим образом:
Дата добавления: 2018-09-24; просмотров: 642;