Третя нормальна форма (3НФ) — нормальна форма використовна в нормалізації баз даних. 3НФ первісно була визначена 1971 року Едгаром Коддом. За Коддом таблиця знаходиться в 3НФ тоді й лише тоді, коли виконуються наступні умови:
- Відношення R (таблиця) знаходиться в 2НФ
- Кожен неключовий атрибут відношення R нетранзитивно (безпосередньо) залежить від кожного потенційного ключа в R.
Неключовий атрибут R — атрибут, що не є частиною будь-якого потенційного ключа. Транзитивною називають таку функціональну залежність, в якій X → Z (X визначає Z) непрямо, а через X → Y і Y → Z (і неправильно, що Y → X).
Інше визначення 3НФ тотожне до визначення Кодда, 1982 року дав Карло Заніоло. Це визначення стверджує, що таблиця в 3НФ тоді й лише тоді, коли для кожної її функціональної залежності X → A, вірна хоча б одна з наступних умов:
- X містить A (тоді X → A це тривіальна функціональна залежність), або
- X це суперключ, або
- A-X, різниця множин A і X це ключовий атрибут (тобто, A-X міститься в потенційному ключі)
Визначення Заніоло пояснює різницю між 3НФ і строгішою нормальною формою Бойса-Кодда. НФБК просто виключає третій варіант («A це ключовий атрибут»).
Підсумкове визначення
Підсумкове визначення Кодда 3НФ було дане Біллом Кентом: кожен неключовий атрибут «має надавати факт про ключ, цілий ключ, і ні про що окрім ключа.»
Вимога, щоб неключовий атрибут знаходився в залежності від «цілого ключа», гарантує, що таблиця знаходиться в 2НФ; наступна вимога, щоб неключові атрибути були залежні від «нічого окрім ключа», гарантує, що таблиця знаходиться в 3НФ.
Крістофер Дейт згадував підсумок Кента, як «інтуїтивно привабливу характеризацію» 3НФ, і зауважував, що з невеличкою адаптацією він може слугувати, як визначення трохи сильнішої нормальної форми Бойса-Кодда: «Кожен атрибут має уособлювати факт про ключ, про цілий ключ, і нічого окрім ключа.» Версія визначення для 3НФ слабша за варіант Дейта для БКНФ, бо попередня забезпечує гарантію залежності від ключів лише для неключових атрибутів. Ключові атрибути (які є ключами або їх частиною) мають бути вільними від функціональної залежності взагалі; кожен з них подає факт про ключ в сенсі надання частини ключа або цілого ключа. (Це правило застосовується тільки для функціонально залежних атрибутів, застосування його до всіх атрибутів спричинить неявну заборону складних потенційних ключів, бо кожна частина такого ключа буде порушувати умову «цілого ключа».)
Приклад таблиці в 2НФ, що порушує вимоги 3НФ:
Змагання | Рік | Переможець | Дата народження переможця |
---|---|---|---|
Вище неба | 1998 | Степан Гуцало | 21 липня 1975 |
Осінній лист | 1999 | Яромир Грабар | 28 вересня 1968 |
День вареників | 1999 | Степан Гуцало | 21 липня 1975 |
Вище неба | 1999 | Іван Швидкосвист | 14 березня 1977 |
Через те, що кожний рядок таблиці має сказати нам, хто виграв конкретне змагання конкретного року, складний ключ {Змагання, Рік} - це найменший набір атрибутів, який гарантовано визначає рядок. Тобто, {Змагання, Рік} є потенційним ключем для цієї таблиці.
Таблиця не знаходиться в 3НФ, бо неключовий атрибут «Дата народження переможця» транзитивно залежить від потенційного ключа {Змагання, Рік} через неключовий атрибут «Переможець». Функціональна залежність «Дата народження переможця» від «Переможець» призводить до логічних несумісностей, у цій таблиці ніщо не заважає одній особі мати дві дати народження в різних записах.
В порядку відображення цього факту без порушення 3НФ, необхідно розбити таблицю на дві:
Змагання | Рік | Переможець |
---|---|---|
Вище неба | 1998 | Степан Гуцало |
Осінній лист | 1999 | Яромир Грабар |
День вареників | 1999 | Степан Гуцало |
Вище неба | 1999 | Іван Швидкосвист |
Гравець | Дата народження |
---|---|
Степан Гуцало | 21 липня 1975 |
Яромир Грабар | 28 вересня 1968 |
Іван Швидкосвист | 14 березня 1977 |
Аномалії оновлення не можуть статися в цих таблицях, бо обидві в 3НФ.
Отримання умов Заніоло
Визначення 3НФ запропоноване Карло Заніоло в 1982, доводиться наступним чином: Нехай X → A нетривіальна функціональна залежність (тобто X не містить A) і нехай A неключовий атрибут. Також нехай Y буде ключем для R. Тоді Y → X. Отже A не транзитивно залежить від Y тоді і тільки тоді, коли X → Y, тобто, тоді і тільки тоді, коли X —суперключ.
Примітки
- Codd, E.F. "Further Normalization of the Data Base Relational Model." (Presented at Courant Computer Science Symposia Series 6, "Data Base Systems," New York City, May 24th–25th, 1971.) IBM Research Report RJ909 (August 31st, 1971). Republished in Randall J. Rustin (ed.), Data Base Systems: Courant Computer Science Symposia Series 6. Prentice-Hall, 1972.
- Codd, p. 43.
- Codd, p. 45–46.
- Zaniolo, Carlo. "A New Normal Form for the Design of Relational Database Schemata." ACM Transactions on Database Systems 7(3), September 1982.
- Kent, William. "A Simple Guide to Five Normal Forms in Relational Database Theory" [ 2 лютого 2007 у Wayback Machine.], Communications of the ACM 26 (2), Feb. 1983, pp. 120–125.
- Date, C.J. An Introduction to Database Systems (7th ed.) (Addison Wesley, 2000), p. 379.
- Zaniolo, p. 494.
Посилання
- Базові знання з нормалізації баз даних [ 5 лютого 2007 у Wayback Machine.] Майк Чеппл (About.com). (англ.)
- Майк Хіллер. (англ.)
- ITS, University of Texas. (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Tretya normalna forma 3NF normalna forma vikoristovna v normalizaciyi baz danih 3NF pervisno bula viznachena 1971 roku Edgarom Koddom Za Koddom tablicya znahoditsya v 3NF todi j lishe todi koli vikonuyutsya nastupni umovi Vidnoshennya R tablicya znahoditsya v 2NF Kozhen neklyuchovij atribut vidnoshennya R netranzitivno bezposeredno zalezhit vid kozhnogo potencijnogo klyucha v R Neklyuchovij atribut R atribut sho ne ye chastinoyu bud yakogo potencijnogo klyucha Tranzitivnoyu nazivayut taku funkcionalnu zalezhnist v yakij X Z X viznachaye Z nepryamo a cherez X Y i Y Z i nepravilno sho Y X Inshe viznachennya 3NF totozhne do viznachennya Kodda 1982 roku dav Karlo Zaniolo Ce viznachennya stverdzhuye sho tablicya v 3NF todi j lishe todi koli dlya kozhnoyi yiyi funkcionalnoyi zalezhnosti X A virna hocha b odna z nastupnih umov X mistit A todi X A ce trivialna funkcionalna zalezhnist abo X ce superklyuch abo A X riznicya mnozhin A i X ce klyuchovij atribut tobto A X mistitsya v potencijnomu klyuchi Viznachennya Zaniolo poyasnyuye riznicyu mizh 3NF i strogishoyu normalnoyu formoyu Bojsa Kodda NFBK prosto viklyuchaye tretij variant A ce klyuchovij atribut Pidsumkove viznachennyaPidsumkove viznachennya Kodda 3NF bulo dane Billom Kentom kozhen neklyuchovij atribut maye nadavati fakt pro klyuch cilij klyuch i ni pro sho okrim klyucha Vimoga shob neklyuchovij atribut znahodivsya v zalezhnosti vid cilogo klyucha garantuye sho tablicya znahoditsya v 2NF nastupna vimoga shob neklyuchovi atributi buli zalezhni vid nichogo okrim klyucha garantuye sho tablicya znahoditsya v 3NF Kristofer Dejt zgaduvav pidsumok Kenta yak intuyitivno privablivu harakterizaciyu 3NF i zauvazhuvav sho z nevelichkoyu adaptaciyeyu vin mozhe sluguvati yak viznachennya trohi silnishoyi normalnoyi formi Bojsa Kodda Kozhen atribut maye uosoblyuvati fakt pro klyuch pro cilij klyuch i nichogo okrim klyucha Versiya viznachennya dlya 3NF slabsha za variant Dejta dlya BKNF bo poperednya zabezpechuye garantiyu zalezhnosti vid klyuchiv lishe dlya neklyuchovih atributiv Klyuchovi atributi yaki ye klyuchami abo yih chastinoyu mayut buti vilnimi vid funkcionalnoyi zalezhnosti vzagali kozhen z nih podaye fakt pro klyuch v sensi nadannya chastini klyucha abo cilogo klyucha Ce pravilo zastosovuyetsya tilki dlya funkcionalno zalezhnih atributiv zastosuvannya jogo do vsih atributiv sprichinit neyavnu zaboronu skladnih potencijnih klyuchiv bo kozhna chastina takogo klyucha bude porushuvati umovu cilogo klyucha Priklad tablici v 2NF sho porushuye vimogi 3NF Peremozhec zmagannya Zmagannya Rik Peremozhec Data narodzhennya peremozhcyaVishe neba 1998 Stepan Gucalo 21 lipnya 1975Osinnij list 1999 Yaromir Grabar 28 veresnya 1968Den varenikiv 1999 Stepan Gucalo 21 lipnya 1975Vishe neba 1999 Ivan Shvidkosvist 14 bereznya 1977 Cherez te sho kozhnij ryadok tablici maye skazati nam hto vigrav konkretne zmagannya konkretnogo roku skladnij klyuch Zmagannya Rik ce najmenshij nabir atributiv yakij garantovano viznachaye ryadok Tobto Zmagannya Rik ye potencijnim klyuchem dlya ciyeyi tablici Tablicya ne znahoditsya v 3NF bo neklyuchovij atribut Data narodzhennya peremozhcya tranzitivno zalezhit vid potencijnogo klyucha Zmagannya Rik cherez neklyuchovij atribut Peremozhec Funkcionalna zalezhnist Data narodzhennya peremozhcya vid Peremozhec prizvodit do logichnih nesumisnostej u cij tablici nisho ne zavazhaye odnij osobi mati dvi dati narodzhennya v riznih zapisah V poryadku vidobrazhennya cogo faktu bez porushennya 3NF neobhidno rozbiti tablicyu na dvi Peremozhec zmagannya Zmagannya Rik PeremozhecVishe neba 1998 Stepan GucaloOsinnij list 1999 Yaromir GrabarDen varenikiv 1999 Stepan GucaloVishe neba 1999 Ivan ShvidkosvistData narodzhennya gravciv Gravec Data narodzhennyaStepan Gucalo 21 lipnya 1975Yaromir Grabar 28 veresnya 1968Ivan Shvidkosvist 14 bereznya 1977 Anomaliyi onovlennya ne mozhut statisya v cih tablicyah bo obidvi v 3NF Otrimannya umov ZanioloViznachennya 3NF zaproponovane Karlo Zaniolo v 1982 dovoditsya nastupnim chinom Nehaj X A netrivialna funkcionalna zalezhnist tobto X ne mistit A i nehaj A neklyuchovij atribut Takozh nehaj Y bude klyuchem dlya R Todi Y X Otzhe A ne tranzitivno zalezhit vid Y todi i tilki todi koli X Y tobto todi i tilki todi koli X superklyuch PrimitkiCodd E F Further Normalization of the Data Base Relational Model Presented at Courant Computer Science Symposia Series 6 Data Base Systems New York City May 24th 25th 1971 IBM Research Report RJ909 August 31st 1971 Republished in Randall J Rustin ed Data Base Systems Courant Computer Science Symposia Series 6 Prentice Hall 1972 Codd p 43 Codd p 45 46 Zaniolo Carlo A New Normal Form for the Design of Relational Database Schemata ACM Transactions on Database Systems 7 3 September 1982 Kent William A Simple Guide to Five Normal Forms in Relational Database Theory 2 lyutogo 2007 u Wayback Machine Communications of the ACM 26 2 Feb 1983 pp 120 125 Date C J An Introduction to Database Systems 7th ed Addison Wesley 2000 p 379 Zaniolo p 494 PosilannyaBazovi znannya z normalizaciyi baz danih 5 lyutogo 2007 u Wayback Machine Majk Cheppl About com angl Majk Hiller angl ITS University of Texas angl