1NF проти 2NF проти 3NF
Нормалізація - це процес, який здійснюється з метою мінімізації надмірностей, які присутні в даних у реляційних базах даних. Цей процес в основному розділить великі таблиці на менші таблиці з меншою кількістю надмірностей. Ці менші таблиці будуть пов'язані між собою через чітко визначені відносини. У добре нормалізованій базі даних будь-яка зміна або зміна даних потребує зміни лише однієї таблиці. Перша нормальна форма (1NF), друга нормальна форма (2NF) і третя нормальна форма (3NF) була введена Едгаром Ф. Коддом, який також є винахідником реляційної моделі та концепції нормалізації.
Що таке 1NF?
1NF - Перша нормальна форма, яка забезпечує мінімальний набір вимог щодо нормалізації реляційної бази даних. Таблиця, яка відповідає 1NF, запевняє, що вона фактично представляє відношення (тобто вона не містить записів, які повторюються), але загальновизнаного визначення для 1NF немає. Однією з важливих властивостей є те, що таблиця, яка відповідає 1NF, не може містити атрибутів, які мають відносне значення (тобто всі атрибути повинні мати атомні значення).
Що таке 2NF?
2NF - друга нормальна форма, що використовується у реляційних базах даних. Щоб таблиця відповідала 2NF, вона повинна дотримуватися 1NF, а будь-який атрибут, який не є частиною будь-якого ключа-кандидата (тобто не-простих атрибутів), повинен повністю залежати від будь-якого ключа-ключа в таблиці.
Що таке 3NF?
3NF - третя нормальна форма, яка використовується при нормалізації реляційних баз даних. Згідно з визначенням Кодда, таблиця, як кажуть, міститься у 3NF, якщо і лише тоді, коли ця таблиця є у другій нормальній формі (2NF), і кожен атрибут у таблиці, який не належить до ключового ключа, повинен безпосередньо залежати на кожному ключі кандидата цієї таблиці. У 1982 році Карло Заніоло склав інакше виражене визначення для 3NF. Таблиці, які відповідають стандарту 3NF, як правило, не містять аномалій, які виникають під час вставки, видалення чи оновлення записів у таблиці.
Яка різниця між 1NF та 2NF та 3NF?
1NF, 2NF і 3NF - це нормальні форми, які використовуються у реляційних базах даних для мінімізації надмірностей у таблицях. 3NF вважається сильнішою нормальною формою, ніж 2NF, і вважається сильнішою нормальною формою, ніж 1NF. Тому в цілому для отримання таблиці, яка відповідає формі 3NF, знадобиться розкласти таблицю, що знаходиться в 2NF. Аналогічно, для отримання таблиці, яка відповідає 2NF, знадобиться розкласти таблицю, що знаходиться в 1NF. Однак, якщо таблиця, яка відповідає 1NF, містить ключові кандидати, які складаються лише з одного атрибута (тобто нескладених кандидатських ключів), така таблиця автоматично відповідає 2NF. Декомпозиція таблиць призведе до додаткових операцій приєднання (або декартових продуктів) при виконанні запитів. Це збільшить час обчислення. З іншого боку, таблиці, які відповідають більш сильним нормальним формам, мали б менше надмірностей, ніж таблиці, які відповідають лише слабшим нормальним формам.