1NF срещу 2NF срещу 3NF
Нормализирането е процес, който се осъществява с цел минимизиране на съкращенията, присъстващи в данните в релационни бази данни. Този процес главно ще раздели големи таблици на по-малки таблици с по-малко съкращения. Тези по-малки таблици ще бъдат свързани помежду си чрез добре дефинирани взаимоотношения. В добре нормализирана база данни, всяка промяна или промяна в данните ще изисква промяна само на една таблица. Първата нормална форма (1NF), втората нормална форма (2NF) и третата нормална форма (3NF) е въведена от Едгар Ф. Код, който е също изобретател на релационния модел и концепцията за нормализиране.
Какво е 1NF?
1NF е първата нормална форма, която осигурява минималния набор от изисквания за нормализиране на релационна база данни. Таблица, която отговаря на 1NF, гарантира, че тя всъщност представлява връзка (т.е. тя не съдържа записи, които се повтарят), но няма общоприето определение за 1NF. Едно важно свойство е, че таблица, която отговаря на 1NF, не може да съдържа атрибути, които са релационно оценени (т.е. всички атрибути трябва да имат атомни стойности).
Какво е 2NF?
2NF е Втората нормална форма, използвана в релационни бази данни. За да може таблицата да съответства на 2NF, тя трябва да бъде спазена с 1NF и всеки атрибут, който не е част от който и да е кандидат-ключ (т.е. непристъпни атрибути), трябва изцяло да зависи от всеки от ключовете на кандидата в таблицата.
Какво е 3NF?
3NF е третата нормална форма, използвана при нормализиране на релационни бази данни. Според дефиницията на Codd се казва, че таблица е в 3NF, ако и само ако тази таблица е във втората нормална форма (2NF), а всеки атрибут в таблицата, който не принадлежи на кандидат-ключ, трябва да зависи пряко на всеки кандидат ключ от тази таблица. През 1982 г. Карло Заниоло даде различно изразено определение за 3NF. Таблиците, които съответстват на 3NF, обикновено не съдържат аномалии, които се появяват при вмъкване, изтриване или актуализиране на записи в таблицата.
Каква е разликата между 1NF и 2NF и 3NF?
1NF, 2NF и 3NF са нормални форми, които се използват в релационни бази данни за минимизиране на съкращенията в таблици. 3NF се счита за по-силна нормална форма от 2NF и се счита за по-силна нормална форма от 1NF. Следователно като цяло, получаването на таблица, която отговаря на формата 3NF, ще изисква декомпозиране на таблица, която е в 2NF. По подобен начин получаването на таблица, която отговаря на 2NF, ще изисква декомпозиране на таблица, която е в 1NF. Ако обаче таблица, която отговаря на 1NF, съдържа кандидат-ключове, които са съставени само от един атрибут (т.е. некомпозитни ключови ключове), такава таблица автоматично би съответствала на 2NF. Разлагането на таблици ще доведе до допълнителни операции за присъединяване (или декартови продукти) при изпълнение на заявки. Това ще увеличи изчислителното време. От друга страна, таблиците, които отговарят на по-силни нормални форми, биха имали по-малко съкращения от таблиците, които отговарят само на по-слаби нормални форми.