Ако работите с бази данни известно време, вероятно сте чували нормализирането на термина. Може би някой те е попитал: "Тази база данни се нормализира?" или "Това ли е в БЦНП?" Нормализирането често се пречупва като лукс, за който само академиците имат време. Все пак познаването на принципите на нормализиране и приложението им към задачите за дизайна на база данни всъщност не е толкова сложно и би могло драстично да подобри ефективността на вашия СУБД.
В тази статия ще представим концепцията за нормализиране и ще разгледаме най-често най-често срещаните нормални форми.
Какво е нормализиране?
Нормализирането е процесът на ефективно организиране на данни в база данни. Има две цели на процеса на нормализиране: премахване на излишните данни (например съхраняване на едни и същи данни в повече от една таблица) и гарантиране на смисъл на данните (зависи само от съхраняването на свързани данни в дадена таблица). И двете са достойни цели, тъй като намаляват пространството, което една база данни консумира и гарантира, че данните се съхраняват логически.
Нормалните формуляри
Общностната база данни е разработила серия от указания за осигуряване на нормализиране на базите данни. Те се наричат нормални форми и се номерират от една (най-ниската форма на нормализация, наричана първата нормална форма или 1NF) до пет (пета нормална форма или 5NF). В практическите приложения често ще виждате 1NF, 2NF и 3NF заедно с случайния 4NF. Петата нормална форма се среща много рядко и няма да бъде разгледана в тази статия.
Преди да започнем обсъждането на нормалните форми, важно е да се отбележи, че те са само насоки и насоки. Понякога става необходимо да се отклонявате от тях, за да отговаряте на практическите бизнес изисквания. Въпреки това, когато се извършват промени, е изключително важно да се преценят всички възможни последици, които те могат да имат върху вашата система и да отчетат възможни несъответствия. Казано, нека изследваме нормалните форми.
Първа нормална форма (1NF)
Първата нормална форма (1NF) определя много основни правила за организирана база данни:
- Премахнете дублиращите се колони от същата таблица.
- Създавайте отделни таблици за всяка група от свързани данни и идентифицирайте всеки ред с уникална колона или набор от колони (първичният ключ).
Втора нормална форма (2NF)
Втората нормална форма (2NF) по-нататък разглежда концепцията за премахване на дублиращите се данни:
- Спазвайте всички изисквания на първия нормален формуляр.
- Премахнете подгрупи от данни, които се отнасят за няколко реда на таблица, и ги поставете в отделни таблици.
- Създавайте взаимоотношения между тези нови таблици и техните предшественици чрез използването на чужди ключове.
Трета нормална форма (3NF)
Третата нормална форма (3NF) отива една голяма крачка напред:
- Спазвайте всички изисквания на втория нормален формуляр.
- Премахнете колони, които не зависят от основния ключ.
Boyce-Codd нормална форма (BCNF или 3.5NF)
Боди-Код Нормална форма, наричана още "трета и половина (3.5) нормална форма", добавя още едно изискване:
- Спазвайте всички изисквания на третия нормален формуляр.
- Всеки детерминант трябва да бъде кандидат ключ.
Четвърта нормална форма (4NF)
Накрая, четвъртата нормална форма (4NF) има едно допълнително изискване:
- Спазвайте всички изисквания на третия нормален формуляр.
- В 4NF има връзка, ако няма многоцелеви зависимости.
Не забравяйте, че тези указания за нормализация са кумулативни. За да бъде база данни в 2NF, тя първо трябва да изпълни всички критерии на база данни за 1NF.
Трябва ли да нормализирам?
Докато нормализирането на базата данни често е добра идея, това не е абсолютно изискване. Всъщност има някои случаи, при които умишленото нарушаване на правилата за нормализация е добра практика. За повече информация по тази тема, прочетете Трябва ли да нормализирам базата данни?
Ако искате да сте сигурни, че вашата база данни е нормализирана, започнете с изучаването как да поставите базата данни в First Normal Form.