Разлика между 3NF и BCNF
Съдържание
нормализиране е метод, който премахва съкращаване от връзка, като по този начин се минимизира аномалиите за вмъкване, изтриване и актуализиране, които влошават работата на базите данни. В тази статия ще разграничим две по-високи нормални форми, т.е. 3NF и BCNF. Основната разлика между 3NF и BCNF е тази 3NF елиминира преходната зависимост от отношение и таблица, която трябва да бъде в BCNF, тривиалната функционална зависимост X-> Y в отношение трябва да има, само ако X е супер ключ.
Нека обсъдим разликите между 3NF и BCNF с помощта на сравнителната диаграма, показана по-долу.
- Сравнителна диаграма
- дефиниция
- Ключови разлики
- заключение
Сравнителна диаграма
Основа за сравнение | 3NF | BCNF |
---|---|---|
понятие | Никой атрибут, който не е основен, не трябва да е транзитивно зависим от ключа Candidate. | За всяка тривиална зависимост във връзка R кажете X-> Y, X трябва да бъде супер ключ на отношение R. |
Зависимост | 3NF може да се получи без да се жертват всички зависимости. | Зависимостите може да не бъдат запазени в BCNF. |
разлагане | Разграждането без загуба може да бъде постигнато в 3NF. | Разграждането без загуба е трудно постижимо в BCNF. |
Определение на 3NF
Таблица или връзка се счита за в Трета нормална форма само ако таблицата вече е в 2NF и няма не-председател атрибут transitively зависим от кандидат ключ на връзка.
Така че, преди да се спра на процеса на нормализиране на таблица в 3NF, позволете ми да обсъдя ключа за кандидатстване. А Ключ на кандидата е минимален супер ключ т.е. супер ключ с минимални атрибути, който може да дефинира всички атрибути на дадена връзка. Така че, в процеса на нормализиране на вашата таблица, първо, разпознавате ключа за кандидат на дадена връзка. Атрибутите, които са част от кандидат-ключа са основни атрибути, а атрибутите, които не са част от ключа на кандидата, са не-прости атрибути.
Сега ако имаме отношение R (A, B, C, D, E, F) и имаме следните функционални зависимости за отношението R.
Наблюдавайки функционалните зависимости, можем да заключим това AB е кандидат-ключ за отношение R, тъй като с помощта на ключ AB можем да търсим стойността за целия атрибут в отношение R. Така че A, B става основни атрибути тъй като заедно правят ключов кандидат. Атрибутите C, D, E, F става не-председател атрибути, защото никой от тях не е част от кандидат ключ.
Таблицата е в 2NF, тъй като никой непроличен атрибут частично не зависи от кандидатския ключ
Но транзитивната зависимост се наблюдава сред предоставените функционални зависимости като атрибут F не е в пряка зависимост от ключа на кандидата AB, Вместо това, атрибут F е transitively зависи от ключа на кандидата AB чрез атрибут д, До атрибут D има някаква стойност, която можем да достигнем, за да присвоим стойността на F, от ключа за кандидат-AB. В случай, че стойността на атрибут D е NULL, ние никога не можем да намерим / търсим стойността на F с помощта на кандидат ключ AB. Това е причината 3NF да иска да премахне преходната зависимост от отношенията.
Така че, за да премахнем тази преходна зависимост, трябва да разделим отношението R. Докато разделяме връзка, винаги поставяме ключа кандидат и всички атрибути, които зависят от този кандидат ключ, в първото отношение. В следващо разделено отношение ще поставим атрибута, който причинява преходна зависимост, а също и атрибутите, които зависят от него, във второто отношение.
Сега таблиците R1 и R2 са в 3NF, тъй като няма останали частични и преходни зависимости. връзка R1 (A, B, C, D, E) има кандидат-ключ AB като има предвид, че отношение R2 (D, E) има д като кандидат-ключ.Определение на BCNF
BCNF се счита за по-силния от 3NF. Отношението R да бъде в BCNF трябва да бъде в 3NF, И където и да нетривиална функционална зависимост A -> B има отношение по отношение на R, тогава А трябва да е а superkey на отношение R. Както знаем, Супер ключ е ключ, който има един атрибут или набор от атрибути, които определят, всички атрибути на дадена връзка.
Сега, да преминем към един пример, за да разберем BCNF по-добре. Нека да предположим, че имаме връзка R (A, B, C, D, F), които имат следните функционални зависимости.
Наблюдавайки отношението R, можем да кажем това А и BF сте кандидат ключове на отношение R, тъй като те сами могат да търсят стойността за всички атрибути във връзката R. Така че A, B, F са основен атрибути като има предвид, ° С и д сте не-председател атрибути. При наличните функционални зависимости не се наблюдава преходна зависимост. Следователно таблицата R е в 3NF.Но една функционална зависимост, т.е. D -> F нарушава определението на BCNF, според което, ако D -> F съществува тогава д трябва да бъде супер ключ което тук не е така. Така ще разделим отношението Р.
Сега таблиците R1 и R2 са в BCNF. връзка R1 има две кандидат ключове А и B, тривиалната функционална зависимост на R1, т.е. A-> BCD и B -> ACD, задръжте за BCNF като A и B са супер ключовете за връзка. връзка R2 има д като негова кандидат ключ и функционалната зависимост D -> F също важи за BCNF, тъй като D е супер ключ.- 3NF заявява, че никой неприсъствен атрибут не трябва да бъде транзитивно зависим от кандидат-ключа на връзката. От друга страна, BCNF заявява, че ако за отношение има тривиална функционална зависимост X -> Y; тогава X трябва да е супер ключ.
- 3NF може да се получи без да се жертва зависимостта на отношението. Въпреки това, зависимостта може да не бъде запазена при получаване на BCNF.
- 3NF може да се постигне без загуба на информация от старата таблица, докато, докато получаваме BCNF, можем да загубим малко информация от старата таблица.
Заключение:
BCNF е много по-рестриктивен от 3NF, които помагат за нормализиране на таблицата повече. Връзката в 3NF има минимално оставяне на излишък, което допълнително се отстранява от BCNF.