674_________________Часть V. Разработка программ и написание скриптов
творяет требованиям для первой, второй и третьей нормальной формы. Приведем требования, которые определяют эти нормальные формы:
1 Первая нормальная форма.В каждой ячейке таблицы (т. е. в каждом месте пересечения колонки и строки)должно располагаться одно и только одно значение. Например, база данных, в которой все книги, выпущенные некоторым издательством в 1996 году, хранятся в одной ячейке таблицы, нарушают правила первой нормальной формы.
2 Вторая нормальная форма.Каждая неключевая колонка должна зависеть от полного значения первичного ключа. Если первичный ключ составной, т. е. состоит из нескольких компонентов, то не должно быть неключевых колонок, являющихся, по существу, подмножеством первичного ключа. С практической точки зрения вторая нормальная форма обычно обеспечивается требованием, чтобы каждый первичный ключ располагался в единственной колонке. Например, номер ISBN однозначно определяет книгу. Например, для данной книги этот номер:0-7897-1097-8. Этот номер состоит из нескольких полей. Число 7897 определяет издательство книги. Число 1097 идентифицирует саму книгу. Если таблица включает номер ISBN в качестве композитного первичного ключа (т. е. одну колонку для кода издательства (Publisher ID), а другую колонку — для кода самой книги (Book ID), а также включает колонку с адресом издательства, который зависит только от кода Publisher ID, то такая таблица нарушает вторую нормальную форму.
3 Третья нормальная форма.Не должно быть неключевых колонок, зависящих от значений полей других неключевых колонок. Значение в каждой колонке должно определяться только по первичному ключу.
4 Четвертая нормальная форма.Не должно быть каких-либо независимых взаимоотношений типа «от одного ко многим» между колонками с первичным ключом и неключевыми колонками. Например, табл. 28.1 нарушает четвертую нормальную форму. Вторая и третья колонки (наличие детей и туры по городам)являются независимыми фактами. Человек, не имеющий ни того, ни другого, в такой таблице будет отмечен пустой строкой.
5 Пятая нормальная форма.Разделение таблиц на маленькие (насколько это возможно)куски для полного исключения избыточности. В крайних случаях таблицы пятой нормальной формы могут состоять из первичного ключа и одной неключевой колонки.
Таблица 28.1.Таблица, нарушающая правила четвертой нормальной формы, имеет пустые ячейки
Фамилия Имена детей Туры по городам
Карташев Александр Москва
Карташев Владимир Санкт-Петербург
Карташев Елена