ля побудови 2НФ необхідно винести її в окремі таблицю ВИДАННЯ.
Таким чином, БД буде мати вигляд, представлений на малюнку 2:
СТУДЕНТ ВИДАННЯ
ПІБ Студента1НазваніеНазваніе? Тип літературиДата видачіТемаДата возвратаАвторГод ізданіяПредметПреподавательКафедра Малюнок 2 - Структура БД у 2НФ
При цьому функціональні залежності будуть відповідати табл, наступним чином:
. таблиці СТУДЕНТ відповідають функціональні залежності
ПІБ студента, назва ® дата видачі, дата повернення
. таблиці ВИДАННЯ відповідають функціональні залежності
Назва ® тема, тип, автор, рік видання, предмет, кафедра
Предмет ® викладач
Для подальшої нормалізації необхідно виключити з безлічі транзитивні залежності [1,2]. Визначимо поняття транзитивної залежності.
Нехай X, Y, Z - три атрибути деякого відносини. При цьому X - gt; Y і Y - gt; Z, але зворотне відповідність відсутня, тобто Z -/- gt; Y -/- gt; X. Тоді Z транзитивній залежить від X.
Якщо в деяких відносинах виявлена ??транзитивна залежність деяких неключових атрибутів, то проводимо декомпозицію цих відносин таким чином: ті неключові атрибути, які транзитивно залежать від атрибутів потенційного ключа, виносяться в окреме ставлення. У новому відношенні ключем стає детермінант функціональної залежності:
Початкове ставлення:.
Ключ:.
Функціональні залежності:
- залежність всіх атрибутів від ключа відносини.
- транзитивна залежність неключових атрибутів від потенційного ключа.
декомпозіровано відносини:
- залишок від вихідного відносини. Ключ.
- атрибути, винесені з вихідного відносини разом з детерминантом функціональної залежності. Ключ.
Серед безлічі залежностей таблиці «ВИДАННЯ» можна виділити залежність Предмет ® Викладач, в якій атрибут Викладач транзитивній залежить від атрибуту Назва. Таким чином, для побудови 3НФ необхідно винести цю залежність в окрему таблицю ПРЕДМЕТ.
При цьому БД матиме структуру, представлену на малюнку нижче.
СТУДЕНТ ВИДАННЯ ПРЕДМЕТ ПІБ студента НазваніеПредметНазваніеТіп літературиПреподавательДата видачіТемаДата возвратаПредметАвторГод ізданіяКафедра Рисунок 3 - Структура БД в 3НФ
Функціональні залежності будуть відповідати табл, наступним чином:
. таблиці СТУДЕНТ відповідають функціональні залежності
ПІБ студента, назва ® дата видачі, дата повернення
. таблиці ВИДАННЯ відповідають функціональні залежності
Назва ® тема, тип, автор, рік видання, предмет, кафедра
. таблиці ПРЕДМЕТ відповідають функціональні залежності
Предмет ® викладач
Ключові атрибути в отриманих таблицях певні на основі заданих функціональних залежностей між атрибутами. При цьому тип зв'язку між усіма таблицями відповідає «один-до-багатьох», так як зв'язкові атрибути в однієї таблиці є первинним ключем, а в іншої немає.
Для визначення схеми БД визначимо властивості атрибутів:
Властивості атрибутів БД
Таблиця: СТУДЕНТ
Ім'я атрібутаСвойстваФІО - Тип даних: Текстовий - Розмір поля: 100 символів - Обов'язкове поле: Так - Порожні значення: Ні - Індексовані поле: Так - Первинний ключНазваніе - Тип даних: Текстовий - Розмір поля: 100 символів- Обов'язкове поле: Так - Порожні значення: Ні - Індексовані поле: Ні - Первинний ключ - Зовнішній ключ таблиці ВИДАННЯ ДатаВидачі - Тип даних: Час - Обов'язкове поле: Так - Порожні значення: Ні - Індексовані поле: НетДатаВозврата - Тип даних: Час -Обов'язкове поле: Ні - Порожні значення: Ні - Індексовані поле: Ні
Таблиця: ВИДАННЯ
Ім'я атрібутаСвойстваНазваніе - Тип даних: Текстовий - Розмір поля: 100 символів - Обов'язкове поле: Так - Порожні рядки: Ні - Індексовані поле: Так - Первинний ключТіпЛітератури - Тип даних: Текстовий - Розмір поля: 40 символів- Обов'язкове поле: Так - Порожні рядки: Ні - Індексовані поле: НетТема - Тип даних: Текстовий - Розмір поля: 100 символів - Обов'язкове поле: Так - Порожні значення: Ні - Індексовані поле: ДаАвтор - Тип даних: Текстовий - Розмір поля: 100 символів - Обов'язкове поле: Так - Порожні значення: Ні - Індексовані поле: ДаГодІзданія - Тип даних: Цілочисельний - Обов'язкове поле: Так - Порожні значення: Ні - Інд...