Хелпикс

Главная

Контакты

Случайная статья





3. Нормализация



Первая нормальная форма требует:

1. простую структуру таблиц;

2. в таблицах не должно быть одинаковых по смыслу полей;

3. в таблице не должно быть составных полей;

4. в таблице не должно быть одинаковых записей.

 

Рассмотрим выполнение требований первой нормальной формы к каждой таблице.

1. В каждой таблице информация предоставляется в виде совокупности строк и столбцов.

2. В каждой таблице отсутствуют одинаковые по смыслу поля. При рассмотрении каждой таблицы в отдельности мы видим, что информация, содержащаяся в каждом из столбцов, различна. Например, в таблице “Фильм” в поле “Жанр” хранится жанр фильма, а в поле “Год выпуска” хранится год выпуска этого фильма; в таблице “Свободные места” в поле “Начало” хранится время начала сеанса, а в поле “Дата” хранится день сеанса.

3. В таблице «Фильм» есть поле " Актеры", которое является составным, поэтому необходимо заменить его полем " Актер", чтобы можно было искать фильм по одному актеру.

4. Двух полностью одинаковых строк ни в одной таблице не имеется. В каждой из таблиц есть поля, которые уникальны и не повторяются. Например, совокупность полей " Название фильма" и " Актер" в таблице " Фильм"; совокупность полей “Ряд” и “Место” в таблице “Свободные места”; поля “Дата” и “Начало” в таблице “Сеансы”; поля “Выручка” и “Кол-во проданных билетов” в таблице “Продажа”

Рис. 2. Первая нормальная форма (1НФ)

 

Благодаря преобразованиям, мы видим, что структура приведена к первой нормальной форме.

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

 

Определение первичных ключей:

В таблице " Фильм" в качестве первичного ключа можно выбрать совокупность полей " Название фильма" и " Актер". В таблице " Сеансы" первичным ключом является совокупность полей " Дата" и " Начало", так как они однозначно определяют запись. В таблице " Свободные места" в качестве первичного ключа можно выбрать совокупность полей " Место", " Ряд", " Дата", " Начало", а в таблице " Продажа" первичным ключом является " Название фильма", так как расчет прибыли ведется по одному конкретному фильму.

Рис. 3. Выделение первичных ключей (PK)

 

 

Анализ смысловых зависимостей:

В таблице " Фильм" поле " Название фильма" определяет атрибуты фильма, такие как " Жанр", " Продолжительность ", " Год выпуска” и т. д., так как фильму с таким названием могут соответствовать только такие характеристики, а поле " Актер" не определяется, поэтому нужно выделить новую таблицу.

В таблице " Сеансы" совокупность полей " Дата" и " Начало" однозначно определяют " Название фильма", " Окончание", " Цену за билет " и " Продолжительность", так как в кинотеатре имеется лишь один зал, в котором за сутки в одно время может быть показан лишь один фильм. Цена за билет в данном случае зависит не от фильма, а от того времени, в которое этот фильм показывается в разные дни. Продолжительность сеанса не совпадает с продолжительностью фильма, так как в кинотеатре имеется время рекламы, технических задержек и т. п. В таблице " Свободные места" поля: " Начало", " Дата", " Ряд", " Место" - являются первичными ключами, а поле " Название фильма" зависит не от всего первичного ключа, а лишь от его части, поэтому следует выделить новую таблицу.

Рис. 4. Анализ смысловых зависимостей

 

Как мы видим между таблицами " Продажа" и " Фильм", а также между таблицами " Сеансы (кр. содержание)" и " Сеансы" связь один к одному, следовательно по правилам нормализации их необходимо объединить в одну.

Так же в ходе приведения ко второй нормальной форме выделим дополнительные таблицы: " Страна", " Жанр". Эти таблицы упростят работу с данными.

 

Рис. 5. Вторая нормальная форма (2НФ)

 

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

В таблице " Сеансы" исключим поле " Окончание", так как оно может быть определено через поля " Начало" и " Продолжительность".

Остальные таблицы соответствуют третьей нормальной форме.

Рис. 6. Третья нормальная форма (3НФ)



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.