Нормальна форма Бойса — Кодда (або НФБК, або БКННФ, або 3.5НФ) — нормальна форма використовна в нормалізації баз даних. Це трошки сильніша версія третьої нормальної форми (3НФ). Таблиця знаходиться в НФБК тоді і тільки тоді, коли для кожної її нетривіальної функціональної залежності X → Y, X це суперключ — тобто, X або потенційний ключ, або його надмножина.
НФБК була віднайдена в 1974 і Едгаром Коддом через деякі типи аномалій з якими не спрацьовувала 3НФ як було заявлено.
Крістофер Дейт вказав, що визначення того, що ми знаємо як НФБК, в 1971 опублікував Ян Хіт. Дейт писав:
«Через те, що це визначення випередило визначення Бойса і Кодда на три роки, мені здається, що НФБК по праву має називатись нормальна форма Хіта. Але це не так.»
Таблиці в 3НФ, які не відповідають НФБК
Лише зрідка таблиця в 3НФ не відповідає вимогам НФБК. Таблиця в 3НФ, яка не має кількох потенційних ключів, що перетинаються, гарантовано в НФБК. Залежно від своїх функціональних залежностей, таблиця в 3НФ з двома або більше потенційними ключами, що перетинаються може бути або не бути в НФБК.
Приклад таблиці в 3НФ, яка не є в НФБК:
Корт | Час початку | Час завершення | Тип оплати |
---|---|---|---|
1 | 09:30 | 10:30 | БЕРЕЖЛИВИЙ |
1 | 11:00 | 12:00 | БЕРЕЖЛИВИЙ |
1 | 14:00 | 15:30 | СТАНДАРТНИЙ |
2 | 10:00 | 11:30 | ПРЕМІАЛЬНИЙ-Б |
2 | 11:30 | 13:30 | ПРЕМІАЛЬНИЙ-Б |
2 | 15:00 | 16:30 | ПРЕМІАЛЬНИЙ-А |
- Кожен рядок в таблиці представляє замовлення корту в тенісному клубі, який має один корт з твердим покриттям (Корт 1) і один з ґрунтовим (Корт 2)
- Замовлення визначається замовленим кортом і проміжком часу, на який корт замовлено
- Додатково, кожне замовлення має «Тип оплати» асоційований з ним. Існує чотири різних типи оплати:
- БЕРЕЖЛИВИЙ, для замовлень корту 1 членами клубу
- СТАНДАРТНИЙ, для замовлень корту 1 не членами клубу
- ПРЕМІАЛЬНИЙ-A, для замовлень корту 2 членами клубу
- ПРЕМІАЛЬНИЙ-Б, для замовлень корту 2 не членами клубу
Потенційні ключі таблиці:
- {Корт, Час початку}
- {Корт, Час завершення}
- {Тип оплати, Час початку}
- {Тип оплати, Час завершення}
Згадаймо, що 2НФ забороняє часткові функціональні залежності неключових атрибутів від потенційних ключів, і що 3НФ забороняє неключових атрибутів від потенційних ключів. В таблиці «Замовлення кортів на сьогодні» немає неключових атрибутів: тобто, всі атрибути належать потенційним ключам.
Таблиця не знаходиться в НФБК через залежність «Тип оплати» → «Корт», де визначальний атрибут («Тип оплати») ані потенційний ключ, ані його надмножина.
Залежність «Тип оплати» → «Корт» відображає, що певний тип оплати застосовується саме для одного корту.
Дизайн можна виправити так, щоб він відповідав НФБК:
Тип оплати | Корт | Членство |
---|---|---|
БЕРЕЖЛИВИЙ | 1 | Так |
СТАНДАРТНИЙ | 1 | Ні |
ПРЕМІАЛЬНИЙ-A | 2 | Так |
ПРЕМІАЛЬНИЙ-B | 2 | Ні |
Тип оплати | Час початку | Час завершення |
---|---|---|
БЕРЕЖЛИВИЙ | 09:30 | 10:30 |
БЕРЕЖЛИВИЙ | 11:00 | 12:00 |
СТАНДАРТНИЙ | 14:00 | 15:30 |
ПРЕМІАЛЬНИЙ-B | 10:00 | 11:30 |
ПРЕМІАЛЬНИЙ-B | 11:30 | 13:30 |
ПРЕМІАЛЬНИЙ-A | 15:00 | 16:30 |
Потенційними ключами для таблиці «Тип оплати» є {Тип оплати} і {Корт, Членство}; потенційними ключами для таблиці «Сьогоднішнє замовлення» є {Тип оплати, Час початку} і {Тип оплати, Час завершення}. Обидві таблиці знаходяться в НФБК. Тепер мати один тип оплати асоційований з двома різними кортами неможливо, тож можливі аномалії первісної таблиці виключені.
Досяжність НФБК
В деяких випадках, не НФБК таблиця не може бути розкладена в таблиці, що задовільняють НФБК із збереженням залежностей початкової таблиці. Бірі і Бернштейн у 1979 показали, що, наприклад, набір функціональних залежностей {AB → C, C → B} не може бути представлений НФБК. Таким чином, на відміну від перших трьох нормальних форм, НФБК не завжди досяжна.
Уявімо таблицю не в НФБК чиї функціональні залежності відповідають шаблону {AB ? C, C ? B}:
Особа | Тип магазину | Найближчий магазин |
---|---|---|
Скиба | Оптика | Орлине око |
Скиба | Перукарня | Клаптики |
Пасічник | Книжний | Книжки Мерліна |
Ковтун | Пекарня | Тістечка |
Ковтун | Перукарня | Шпилька |
Ковтун | Оптика | Орлине око |
Для кожної комбінації «Особа» / «Тип магазину», таблиця каже нам який з магазинів цього типу географічно найближчий до помешкання певної особи. Для простоти ми припускаємо, що один магазин не може одночасно бути декількох типів.
Потенційні ключі таблиці:
- {Особа, Тип магазину}
- {Особа, Найближчий магазин}
Через те, що всі три атрибути ключові (тобто належить потенційному ключу), таблиця в 3НФ. Таблиця не в НФБК, бо «Тип магазину» функціонально залежний від не суперключа: «Найближчий магазин».
Невідповідність до НФБК значить, що таблиця вразлива для аномалій. Наприклад, Орлине око може змінити свій тип на «Оптометрія» на запису для Ковтуна, залишивши тип «Оптика» на запису для Скиби. Це викличе суперечливі відповіді на запитання: «Який тип має магазин Орлине око?» Здається розумним зберігати тип для кожного магазину тільки один раз, це унебезпечить від цієї аномалії:
Особа | Магазин |
---|---|
Скиба | Орлине око |
Скиба | Клаптики |
Пасічник | Книжки Мерліна |
Ковтун | Тістечка |
Ковтун | Шпилька |
Ковтун | Орлине око |
Магазин | Тип магазину |
---|---|
Орлине око | Оптика |
Клаптики | Перукарня |
Книжки Мерліна | Книжний |
Тістечка | Пекарня |
Шпилька | Перукарня |
В цьому переглянутому дизайні, таблиця «Магазин біля особи» має потенційний ключ {Особа, Магазин}, і таблиця «Магазин» має потенційний ключ {Магазин}. Хоча цей дизайн знаходиться у НФБК, він неприйнятний з іншої причини: він дозволяє нам записати декілька магазинів одного типу для однієї особи. Інакше кажучи, цей дизайн не гарантує виконання функціональної залежності {Особа, Тип магазину} → {Магазин}.
Дизайн, який виключає всі ці аноммалії (але не задовільняє умовам НФБК) можливий. Цей дизайн містить початкову таблицю «Найближчий магазин» і додає таблицю «Магазин» описану нижче.
Особа | Тип магазину | Найближчий магазин |
---|---|---|
Скиба | Оптика | Орлине око |
Скиба | Перукарня | Клаптики |
Пасічник | Книжний | Книжки Мерліна |
Ковтун | Пекарня | Тістечка |
Ковтун | Перукарня | Шпилька |
Ковтун | Оптика | Орлине око |
Магазин | Тип магазину |
---|---|
Орлине око | Оптика |
Клаптики | Перукарня |
Книжки Мерліна | Книжний |
Тістечка | Пекарня |
Шпилька | Перукарня |
Якщо обмеження цілісності посилань визначити так, щоб {Тип магазину, Найближчий магазин} з першої таблиці посилалось на {Тип магазину, Магазин} з другої таблиці, тоді аномалії оновлення даних описані вище будуть усунуті.
Примітки
- Codd, E. F. "Recent Investigations into Relational Data Base Systems." IBM Research Report RJ1385 (April 23rd, 1974). Republished in Proc. 1974 Congress (Stockholm, Sweden, 1974). New York, N.Y.: North-Holland (1974).
- Heath, I. "Unacceptable File Operations in a Relational Database." Proc. 1971 ACM SIGFIDET Workshop on Data Description, Access, and Control, San Diego, Calif. (November 11th–12th, 1971).
- Date, C.J. Database in Depth: Relational Theory for Practitioners. O'Reilly (2005), p. 142.
- Vincent, M.W. and B. Srinivasan. "A Note on Relation Schemes Which Are in 3NF But Not in BCNF." Information Processing Letters 48(6), 1993, pp. 281–83.
- Beeri, Catriel and Bernstein, Philip A. "Computational problems related to the design of normal form relational schemas." ACM Transactions on Database Systems 4(1), March 1979, p. 50.
- Zaniolo, Carlo. "A New Normal Form for the Design of Relational Database Schemata." ACM Transactions on Database Systems 7(3), September 1982, pp. 493.
Посилання
- (англ.)
- ITS, Університет Техаса.(англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Normalna forma Bojsa Kodda abo NFBK abo BKNNF abo 3 5NF normalna forma vikoristovna v normalizaciyi baz danih Ce troshki silnisha versiya tretoyi normalnoyi formi 3NF Tablicya znahoditsya v NFBK todi i tilki todi koli dlya kozhnoyi yiyi netrivialnoyi funkcionalnoyi zalezhnosti X Y X ce superklyuch tobto X abo potencijnij klyuch abo jogo nadmnozhina NFBK bula vidnajdena v 1974 i Edgarom Koddom cherez deyaki tipi anomalij z yakimi ne spracovuvala 3NF yak bulo zayavleno Kristofer Dejt vkazav sho viznachennya togo sho mi znayemo yak NFBK v 1971 opublikuvav Yan Hit Dejt pisav Cherez te sho ce viznachennya viperedilo viznachennya Bojsa i Kodda na tri roki meni zdayetsya sho NFBK po pravu maye nazivatis normalna forma Hita Ale ce ne tak Tablici v 3NF yaki ne vidpovidayut NFBKLishe zridka tablicya v 3NF ne vidpovidaye vimogam NFBK Tablicya v 3NF yaka ne maye kilkoh potencijnih klyuchiv sho peretinayutsya garantovano v NFBK Zalezhno vid svoyih funkcionalnih zalezhnostej tablicya v 3NF z dvoma abo bilshe potencijnimi klyuchami sho peretinayutsya mozhe buti abo ne buti v NFBK Priklad tablici v 3NF yaka ne ye v NFBK Zamovlennya kortiv na sogodni Kort Chas pochatku Chas zavershennya Tip oplati 1 09 30 10 30 BEREZhLIVIJ 1 11 00 12 00 BEREZhLIVIJ 1 14 00 15 30 STANDARTNIJ 2 10 00 11 30 PREMIALNIJ B 2 11 30 13 30 PREMIALNIJ B 2 15 00 16 30 PREMIALNIJ A Kozhen ryadok v tablici predstavlyaye zamovlennya kortu v tenisnomu klubi yakij maye odin kort z tverdim pokrittyam Kort 1 i odin z gruntovim Kort 2 Zamovlennya viznachayetsya zamovlenim kortom i promizhkom chasu na yakij kort zamovleno Dodatkovo kozhne zamovlennya maye Tip oplati asocijovanij z nim Isnuye chotiri riznih tipi oplati BEREZhLIVIJ dlya zamovlen kortu 1 chlenami klubu STANDARTNIJ dlya zamovlen kortu 1 ne chlenami klubu PREMIALNIJ A dlya zamovlen kortu 2 chlenami klubu PREMIALNIJ B dlya zamovlen kortu 2 ne chlenami klubu Potencijni klyuchi tablici Kort Chas pochatku Kort Chas zavershennya Tip oplati Chas pochatku Tip oplati Chas zavershennya Zgadajmo sho 2NF zaboronyaye chastkovi funkcionalni zalezhnosti neklyuchovih atributiv vid potencijnih klyuchiv i sho 3NF zaboronyaye neklyuchovih atributiv vid potencijnih klyuchiv V tablici Zamovlennya kortiv na sogodni nemaye neklyuchovih atributiv tobto vsi atributi nalezhat potencijnim klyucham Tablicya ne znahoditsya v NFBK cherez zalezhnist Tip oplati Kort de viznachalnij atribut Tip oplati ani potencijnij klyuch ani jogo nadmnozhina Zalezhnist Tip oplati Kort vidobrazhaye sho pevnij tip oplati zastosovuyetsya same dlya odnogo kortu Dizajn mozhna vipraviti tak shob vin vidpovidav NFBK Tip oplati Tip oplati Kort Chlenstvo BEREZhLIVIJ 1 Tak STANDARTNIJ 1 Ni PREMIALNIJ A 2 Tak PREMIALNIJ B 2 Ni Sogodnishnye zamovlennya Tip oplati Chas pochatku Chas zavershennya BEREZhLIVIJ 09 30 10 30 BEREZhLIVIJ 11 00 12 00 STANDARTNIJ 14 00 15 30 PREMIALNIJ B 10 00 11 30 PREMIALNIJ B 11 30 13 30 PREMIALNIJ A 15 00 16 30 Potencijnimi klyuchami dlya tablici Tip oplati ye Tip oplati i Kort Chlenstvo potencijnimi klyuchami dlya tablici Sogodnishnye zamovlennya ye Tip oplati Chas pochatku i Tip oplati Chas zavershennya Obidvi tablici znahodyatsya v NFBK Teper mati odin tip oplati asocijovanij z dvoma riznimi kortami nemozhlivo tozh mozhlivi anomaliyi pervisnoyi tablici viklyucheni Dosyazhnist NFBKV deyakih vipadkah ne NFBK tablicya ne mozhe buti rozkladena v tablici sho zadovilnyayut NFBK iz zberezhennyam zalezhnostej pochatkovoyi tablici Biri i Bernshtejn u 1979 pokazali sho napriklad nabir funkcionalnih zalezhnostej AB C C B ne mozhe buti predstavlenij NFBK Takim chinom na vidminu vid pershih troh normalnih form NFBK ne zavzhdi dosyazhna Uyavimo tablicyu ne v NFBK chiyi funkcionalni zalezhnosti vidpovidayut shablonu AB C C B Najblizhchij magazin Osoba Tip magazinu Najblizhchij magazin Skiba Optika Orline oko Skiba Perukarnya Klaptiki Pasichnik Knizhnij Knizhki Merlina Kovtun Pekarnya Tistechka Kovtun Perukarnya Shpilka Kovtun Optika Orline oko Dlya kozhnoyi kombinaciyi Osoba Tip magazinu tablicya kazhe nam yakij z magaziniv cogo tipu geografichno najblizhchij do pomeshkannya pevnoyi osobi Dlya prostoti mi pripuskayemo sho odin magazin ne mozhe odnochasno buti dekilkoh tipiv Potencijni klyuchi tablici Osoba Tip magazinu Osoba Najblizhchij magazin Cherez te sho vsi tri atributi klyuchovi tobto nalezhit potencijnomu klyuchu tablicya v 3NF Tablicya ne v NFBK bo Tip magazinu funkcionalno zalezhnij vid ne superklyucha Najblizhchij magazin Nevidpovidnist do NFBK znachit sho tablicya vrazliva dlya anomalij Napriklad Orline oko mozhe zminiti svij tip na Optometriya na zapisu dlya Kovtuna zalishivshi tip Optika na zapisu dlya Skibi Ce vikliche superechlivi vidpovidi na zapitannya Yakij tip maye magazin Orline oko Zdayetsya rozumnim zberigati tip dlya kozhnogo magazinu tilki odin raz ce unebezpechit vid ciyeyi anomaliyi Magazin bilya osobi Osoba Magazin Skiba Orline oko Skiba Klaptiki Pasichnik Knizhki Merlina Kovtun Tistechka Kovtun Shpilka Kovtun Orline oko Magazin Magazin Tip magazinu Orline oko Optika Klaptiki Perukarnya Knizhki Merlina Knizhnij Tistechka Pekarnya Shpilka Perukarnya V comu pereglyanutomu dizajni tablicya Magazin bilya osobi maye potencijnij klyuch Osoba Magazin i tablicya Magazin maye potencijnij klyuch Magazin Hocha cej dizajn znahoditsya u NFBK vin neprijnyatnij z inshoyi prichini vin dozvolyaye nam zapisati dekilka magaziniv odnogo tipu dlya odniyeyi osobi Inakshe kazhuchi cej dizajn ne garantuye vikonannya funkcionalnoyi zalezhnosti Osoba Tip magazinu Magazin Dizajn yakij viklyuchaye vsi ci anommaliyi ale ne zadovilnyaye umovam NFBK mozhlivij Cej dizajn mistit pochatkovu tablicyu Najblizhchij magazin i dodaye tablicyu Magazin opisanu nizhche Najblizhchij magazin Osoba Tip magazinu Najblizhchij magazin Skiba Optika Orline oko Skiba Perukarnya Klaptiki Pasichnik Knizhnij Knizhki Merlina Kovtun Pekarnya Tistechka Kovtun Perukarnya Shpilka Kovtun Optika Orline oko Magazin Magazin Tip magazinu Orline oko Optika Klaptiki Perukarnya Knizhki Merlina Knizhnij Tistechka Pekarnya Shpilka Perukarnya Yaksho obmezhennya cilisnosti posilan viznachiti tak shob Tip magazinu Najblizhchij magazin z pershoyi tablici posilalos na Tip magazinu Magazin z drugoyi tablici todi anomaliyi onovlennya danih opisani vishe budut usunuti PrimitkiCodd E F Recent Investigations into Relational Data Base Systems IBM Research Report RJ1385 April 23rd 1974 Republished in Proc 1974 Congress Stockholm Sweden 1974 New York N Y North Holland 1974 Heath I Unacceptable File Operations in a Relational Database Proc 1971 ACM SIGFIDET Workshop on Data Description Access and Control San Diego Calif November 11th 12th 1971 Date C J Database in Depth Relational Theory for Practitioners O Reilly 2005 p 142 Vincent M W and B Srinivasan A Note on Relation Schemes Which Are in 3NF But Not in BCNF Information Processing Letters 48 6 1993 pp 281 83 Beeri Catriel and Bernstein Philip A Computational problems related to the design of normal form relational schemas ACM Transactions on Database Systems 4 1 March 1979 p 50 Zaniolo Carlo A New Normal Form for the Design of Relational Database Schemata ACM Transactions on Database Systems 7 3 September 1982 pp 493 Posilannya angl ITS Universitet Tehasa angl