Третя нормальна форма (3nf)
І так, ми переходимо до третьої нормальної формі. Третя нормальна форма (3NF) дозволяє нам позбутися від такої мерзенної штуки, як транзитивній залежність. Перш ніж давати визначення третьої нормальної формі давайте розберемося, що таке транзитивній залежність.
Ми плавно підійшли до транзитивної залежності. Щоб краще зрозуміти транзитивні залежності зверніть увагу на другий малюнок в розділі, який присвячений другій нормальній формі. А саме на таблицю-довідник викладачів. У цій таблиці ми можемо спостерігати залежність серед які ключових полів, тобто, якісь поля пов'язані між собою дуже тісно не тільки логічно, але й функціонально.
Взагалі, третя нормальна форма (3NF) оперує тільки в межах однієї таблиці. А в таблиці викладачів ми помічаємо внутрішні правила, від яких залежить правильність функціонування даної таблиці, таких правил в третій нормальній формі бути не повинно, такі правила називаються транзитивними залежностями, дуже мерзенна штука.
У таблиці викладачів є транзитивній залежність, це атрибути індекс і місто, якщо індекс 127 - це Київ і ніяк по-іншому бути не може! Ці два поля не є первинним ключем, і вони залежать один від одного - це порушення третьої нормальної форми і називається транзитивній залежність.
Проблема полягає в тому, що людям властиво помилятися. Припустимо, людина, що наповнює базу даних, помилився і ввів співробітнику живе в Сумие Тернопіль індекс. Питання, чому вірити? Індексом або введеному місту?
Таким чином, завдання третій нормальній (3NF) форми полягає в тому, щоб забезпечити максімальнуюцелостность даних в базі даних. Цілісність даних в базі даних забезпечується знищенням транзитивних залежностей. Перед тим, як привести приклад третьої нормальної форми я б хотів дати визначення третьої нормальної форми.
Таблиця знаходиться в третій нормальній формі (3NF), коли вона знаходиться в другій нормальній формі, а відповідно і в першій нормальній формі, тобто таблиця атомарний і всі дані винесені на довідники і при цьому будь-який не ключовий атрибут залежить тільки від первинного ключа, по -іншому - в таблиці не повинно бути ніяких залежностей крім як від первинного ключа.
Власне це визначення є коротким підсумком того, про що я говорив вище. Давайте позбудемося транзитивних залежностей, які у нас з'явилися, коли нормалізували відносини до другої нормальної форми.
Я не буду створювати заново всю структуру бази даних, а лише покажу, як позбутися від транзитивної залежності в таблиці викладачів.
Нормалізація відносин. Третя нормальна форма.
Я зробив наступне взяв і створив два довідника, довідник індексів, а для довідника індексів створив довідник міст, таким чином, я позбувся транзитивних залежностей, привів базу даних до третьої нормальної формі, при цьому розбив цю базу даних на п'ять таблиць.
Хоч в базі даних і п'ять таблиць, але, ми забезпечили цілісність даних і убезпечили себе від неправильного введення даних.