Структура сущностей:
Фильм |
Название фильма Жанр Продолжительность Актеры Год выпуска Производитель Страна |
Сеансы |
Дата Начало Окончание Продолжительность Цена на билет Название фильма |
Продажа |
Название фильма Количество проданных билетов Выручка |
Свободные места |
Название фильма Начало Дата Ряд Место |
1.3 Нормализация Первая нормальная форма требует:
1) простая структура таблицы
2) в таблице нет одинаковых по смыслу полей (нет повторяющихся групп)
3) в таблице нет составных полей
4) в таблице нет одинаковых записей
Рассмотрим выполнение требований первой нормальной формы к каждой таблице.
1) В каждой таблице информация предоставляется в виде совокупности строк и столбцов.
2 )Также в каждой таблице отсутствуют одинаковые по смыслу поля. При рассмотрении каждой таблицы в отдельности мы видим, что информация, содержащаяся в каждом из столбцов, различна. Например, очевидно, что один актер может играть только одну роль в фильме, или данный фильм может быть лишь одного жанра.
3) В таблице «Фильм» есть поле "Актеры", которое является составным, поэтому необходимо заменить его полем "Актер", чтобы можно было искать поиск фильма по одному актеру.
4) Двух полностью одинаковых строк ни в одной таблице не должно быть. В каждой из таблиц есть поля, которые уникальны и не повторяются. Например, совокупность полей "Название фильма" и "Актер" в таблице "Фильм".
Фильм |
Название фильма Жанр Продолжительность Актер Год выпуска Производитель Страна |
Сеансы |
Дата Начало Окончание Продолжительность Цена на билет Название фильма |
Свободные места |
Название фильма Начало Дата Ряд Место |
Продажа |
Название фильма Количество проданных билетов Выручка |
Как мы видим требования первой нормальной формы к каждой таблице выполняются, следовательно, они приведены к первой нормальной форме.
Вторая нормальная форма требует, чтобы таблицы были приведены к первой нормальной форме и чтобы все поля каждой таблицы зависели от первичного ключа. Первичный ключ должен однозначно определять запись и не быть избыточным. Также, мы должны убедиться в том, чтобы внутри каждой из сущностей не было внутренних взаимосвязей между характерными группами с целью уменьшения избыточности.
Определение первичных ключей:
В таблице "Фильм" в качестве ключевого поля можно выбрать совокупность полей "Название фильма" и "Актер". В таблице "Сеансы" ключевым полем является совокупность полей "Дата" и "Начало", так как они однозначно определяют запись. В таблице "Свободные места" в качестве ключевого поля можно выбрать совокупность полей "Место","Ряд", "Дата", "Начало", в таблице "Продажа" первичным полем является "Название фильма", так расчет прибыли ведется по одному конкретному фильму.
Фильм |
Название фильма Актер |
Год выпуска Производитель Страна Жанр Продолжительность |
Сеансы |
Дата Начало |
Окончание Продолжительность Цена на билет Название фильма |
Продажа |
Название фильма |
Количество проданных билетов Выручка |
Свободные места |
Начало Дата |
Ряд Место Название фильма |