Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
198 Кб
Скачать
☆

3. Нормализация Первая нормальная форма требует:

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

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

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

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

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

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

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

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

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

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

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

5

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

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

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

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

6

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

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

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

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

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

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

7

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

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

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

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

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

8