Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 отчёт 1 часть.docx
Скачиваний:
12
Добавлен:
21.09.2019
Размер:
57.8 Кб
Скачать

1.3 Нормализация

Приведение к 1НФ.

  1. требование (требование простой структуры).

Таблицы имеют простые структуры и не требуют изменений.

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

  1. требование (отсутствие одинаковых по смыслу полей).

Одинаковых по смыслу поля отсутствуют, т.к. в таблице нет полей которые содержали бы однородные данные.

  1. требование (отсутствие составных полей).

Составное поле «актёры» заменяем на поле «актёр»

Поля «ФИО» и «дата рождения» при выполнении заданных функций не являются составными.

  1. требование (в табл. не должно быть одинаковых записей).

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

Т.к. режиссёр не может снять один и тот же фильм несколько раз, то в таблице «режиссёр» нет одинаковых записей.

Т.к. актёр не может сыграть несколько ролей в одном фильме, то в таблице «актёры» нет одинаковых записей.

Т.к. не может быть двух или более фильмов с одинаковыми названиями, то в таблице «фильм» нет одинаковых записей.

С учётом данных требований получаем таблицы вида, которые представлены на рисунке 2

Название

Жанр

Продолжительность

Актёр

Год выпуска

Производитель

страна


Рисунок 2 – Приведение к 1НФ.

Приведение ко 2НФ.

А) Определение первичного ключа

Выписываем и определяем у каждой сущности первичный ключ.

  • Сущность «Фильмы» - первичный ключ: название, актёр.

  • Сущность «актёры» - первичный ключ: ФИО актёра, фильм.

  • Сущность «режиссёр» - первичный ключ: снятый фильм.

  • Совокупность полей: ФИО актёра, фильм являются уникальными т.к. актёр может сыграть только одну роль в одном фильме.

  • Поле снятый фильм является уникальным т.к. у снятого фильма может быть только один режиссёр.

Определение первичного ключа: рис.3

фильм актёры режиссёр

Снятый фильм

ФИО режиссёра

Дата рождения

национальность


Название

актёр

Жанр продолжительность

Год выпуска

Производитель

страна

Фильм

ФИО актёра

Национальность

Дата рождения

Роль



Рисунок №3

Б) Анализ смысловых зависимостей: рис. 4

  • Таблица фильм: от первичного ключа «название, актёр» не зависит не одно поле. Все поля зависят от первичного ключа частично, поэтому необходимо выделить новую таблицу фильм с первичным ключом «название».

  • Таблица актёры: от первичного ключа «ФИО актёра, фильм» зависит только одно поле Роль, а в свою очередь от поля ФИО актёра зависят поля национальность и дата рождения, получаем новую таблицу актёр, первичным ключом которой является поле ФИО актёра.

  • Таблица режиссёр: от первичного ключа снятый фильм зависит только одно поле - ФИО режиссёра, а от поля ФИО режиссёра зависят поля дата рождения и национальность, в итоге получаем новую таблицу режиссёр, первичным ключом которой является поле ФИО режиссёра.

Фильм актёр фильма актёр

н азвание

Жанр

Год выпуска

Производитель

Страна

Продолжительность

А ктёр

Н азвание фильма

ФИО актёра

Национальность

Дата рождения


режиссёр

роль снятый фильм

Снятый фильм

Ф ИО режиссёра

Ф ИО режиссёра

Дата рождения

национальность

фильм

Ф ИО актёра

Роль


Рисунок №4

  • Т.к. таблица снятый фильм и таблица фильм имеют связь один к одному, то объединяем их в одну таблицу.

  • Т.к. таблица роль и таблица актёр фильма имеют связь один к одному, то объединяем их в одну таблицу.

  • Т.к. в одном фильме может сняться много актёров фильма, а актёр фильма может принадлежать только одному фильму, то связь один ко многим.

  • Т.к. актёр может быть актёром многих фильмов, а актёром фильма может быть только один актёр, то связь один ко многим.

  • Т.к. Снять Фильм может только один режиссёр, а режиссёр может снять много фильмов, то связь один ко многим.

В) разделение таблицы в соответствии с выделенными смысловыми зависимостями. Рисунок №5

Фильм актёр фильма актёр

н азвание

Жанр

Год выпуска

Производитель

Страна

Продолжительность

р ежиссёр

а ктёр

Название фильма

Роль

ФИО актёра

Национальность

Дата рождения


режиссёр

ФИО

Дата рождения

национальность



Рисунок №5

Приведение к 3НФ.

Так как транзитивных зависимостей нет, то 2 НФ является и 3 НФ.

Проектирование таблиц.

Фильм

Название

Жанр

Год выпуска

Производитель

Страна

Продолжительность

Режиссёр

Поле

Тип

Правило

nazvanie

VARCHAR2(15)

PK

janr

VARCHAR2(15)

god_vypuska

NUMBER(4)

proizvoditel

VARCHAR2(20)

strana

VARCHAR2(15)

prodolzhitelnost

Number(4)

rezhisser

VARCHAR2(20)

FK


В таблице Фильм содержится информация о хранящихся фильмах. Таблица содержит следующие поля:

Nazvanie – поле, которое, является первичным ключом, не может превышать 15 символов.

janr – поле, которое не может превышать 15 символов.

god_vypuska–поле, которое указывает на год выпуска фильма, является числом, которое не превышает четырёх цифр.

Proizvoditel- поле, которое не может превышать 20 символов.

Strana- поле, которое не может превышать 15 символов.

Prodolzhitelnost- поле, которое обозначает продолжительность фильма, определяется в минутах и поэтому содержит 4 знака.

Rezhisser-поле, которое содержит ФИО режиссёра, не превышает 20 символов.

Остальные таблицы поясняются аналогично.

Актёр фильма

Актёр

Название фильма

Роль

Поле

Тип

Правило

FIO

VARCHAR2(15)

nazvaniefilma

VARCHAR2(15)

FK

rol_v_filme

VARCHAR2(15)


режиссёр

ФИО

Национальность

Дата рождения

Поле

тип

Правило

fio

VARCHAR2(20)

РК

nacionalnost

VARCHAR2(15

data_rozhdeniya

NUMBER(4)


Поле

Тип

Правило

Fio

VARCHAR2(20)

PK

nacionalnost

VARCHAR2(20)

data_rozhdeniya

NUMBER(4)

актёр

ФИО

Национальность

Дата рождения