Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД Кристина Kursovaya_rabota.doc
Скачиваний:
28
Добавлен:
08.02.2015
Размер:
384.51 Кб
Скачать

4.3. Нормализация полученных отношений(до 4нф)

1НФ.

Для приведения таблиц к 1НФ требуется составить прямоугольные таблицы (одно значение атрибута – одна ячейка таблицы) и разбить сложные атрибуты на простые.

Разделим атрибут Имя, фамилия на два атрибута: Имя и Фамилия.

2НФ.

В нашем случае составные первичные ключи имеют отношения ПЕСНИ-ИСПОЛНИТЕЛИ, ПЕСНИ-НОСИТЕЛИ. Неключевые атрибуты этих отношений отсутствуют.

3НФ.

В отношении ПЕСНИ атрибут Качество звука зависит от атрибута Битрейт, а не от первичного ключа, поэтому его следует вынести в отдельное отношение КАЧЕСТВО. Первичным ключом нового отношения станет атрибут Битрейт.

В отношении НОСИТЕЛИ атрибут Емкость зависит от атрибута Объем памяти. Поступим с этой транзитивной зависимостью так же, как в предыдущем случае: создадим отношение РАЗМЕР, перенесём в него атрибуты Объем памяти и Емкость, а первичным ключом сделаем объем памяти.

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

4НФ.

Отношения данного примера не нарушают 4НФ, т.к. не содержат нетривиальных многозначных зависимостей.

Отношения, полученные после нормализации, приведены в таблицах 6-13.

Таблица 6. Схема отношений ПЕСНИ (SONGS)

Содержание поля

Имя поля

Тип, длина

Примечания

Код песни

S_ID

N(4)

суррогатный первичный ключ

Название

S_NAME

V(30)

обязательное поле

Год написания

S_YEAR

N(4)

необязательное поле

Жанр

S_GENRE

V(20)

внешний ключ (к GENRES)

Битрейт, Кбит/сек

S_BIT

N(3)

внешний ключ (к QUALITY)

Автор

S_WRITER

V(30)

внешний ключ (к MUSICIANS)

Таблица 7. Схема отношения МУЗЫКАНТЫ (MUSICIANS)

Содержание поля

Имя поля

Тип, длина

Примечания

Сценическое имя

(название группы)

M_ID

V(30)

первичный ключ

Имя

(солиста группы)

M_NAME

V(30)

необязательное поле

Фамилия

(солиста группы)

M_SURNAME

V(30)

необязательное поле

Таблица 8. Схема отношения НОСИТЕЛИ (CARRIERS)

Содержание поля

Имя поля

Тип, длина

Примечания

Регистрационный код

C_ID

С(3)

первичный ключ

Вид носителя

C_TYPE

V(10)

необязательное поле

Объем памяти, Гб

C_MEM

N(5,2)

внешний ключ (к SIZE), ≥0,

по умолчанию – 0

Таблица 9. Схема отношения ПЕСНИ-ИСПОЛНИТЕЛИ (A_SINGERS)

Содержание поля

Имя поля

Тип, длина

Примечания

Код песни

A_SONG_ID

N(4)

внешний ключ (к SONGS)

состав-ной ПК

Сценическое имя

A_MUS_ID

V(30)

внешний ключ (к MUSICIANS)

Таблица 10. Схема отношения ПЕСНИ-НОСИТЕЛИ (B_SONG_CAR)

Содержание поля

Имя поля

Тип, длина

Примечания

Код песни

B_SONG_ID

N(4)

внешний ключ (к SONGS)

состав-ной ПК

Код носителя

B_CAR_ID

N(3)

внешний ключ (к CARRIERS),

по умолчанию – 0

Таблица 11. Схема отношения КАЧЕСТВО (QUALITY)

Содержание поля

Имя поля

Тип, длина

Примечания

Битрейт, Кбит/сек

Q_BIT

N(3)

первичный ключ

Качество звука

Q_QUALITY

V(10)

обязательное поле

Таблица 12. Схема отношения РАЗМЕР (SIZE)

Содержание поля

Имя поля

Тип, длина

Примечания

Объем памяти, Гб

S_MEM

N(5,2)

первичный ключ

Емкость, час

S_TIME

N(7,2)

необязательное поле, ≥0

Таблица 13. Схема отношения ЖАНРЫ (GENRES)

Содержание поля

Имя поля

Тип, длина

Примечания

Название жанра

G_GENRE

V(20)

первичный ключ

Схема базы данных после нормализации выглядит следующим образом: