Čtvrtá normální forma - Fourth normal form
Čtvrtá normální forma (4NF) je normální forma použito v normalizace databáze. Představil Ronald Fagin v roce 1977 je 4NF další úroveň normalizace po Boyce – Codd normální forma (BCNF). Vzhledem k tomu, že druhý, Třetí, a Boyce – Codd normální formy se týkají funkční závislosti „4NF se zabývá obecnějším typem závislosti známým jako a vícehodnotová závislost. A stůl je v 4NF kdyby a jen kdyby, pro každou ze svých netriviálních závislostí s více hodnotami X Y, X je superklíč —To je, X je buď a klíč kandidáta nebo jejich nadmnožina.[1]
Závislosti s více hodnotami
Pokud jsou záhlaví sloupců v tabulce relační databáze rozdělena do tří nespojených seskupení X, Y, a Z, pak v kontextu konkrétního řádku můžeme odkazovat na data pod každou skupinou nadpisů jako X, y, a z resp. A vícehodnotová závislost X Y znamená, že pokud si vybereme X ve skutečnosti se vyskytující v tabulce (volejte tuto volbu XC) a sestavte seznam všech XCyz kombinace, které se vyskytují v tabulce, najdeme XC je spojen se stejným y záznamů bez ohledu na z. Takže v podstatě přítomnost z neposkytuje žádné užitečné informace, které by omezovaly možné hodnoty y.
A triviální vícehodnotová závislost X Y je jeden, kde buď Y je podmnožinou Xnebo X a Y společně tvoří celou sadu atributů relace.
A funkční závislost je zvláštní případ vícehodnotové závislosti. Ve funkční závislosti X → Y, každý X určuje přesně jeden rok, nikdy více než jeden.
Příklad
Zvažte následující příklad:
Restaurace | Rozmanitost pizzy | Oblast dodání |
---|---|---|
A1 Pizza | Tlustá kůrka | Springfield |
A1 Pizza | Tlustá kůrka | Shelbyville |
A1 Pizza | Tlustá kůrka | Hlavní město |
A1 Pizza | Plněná kůra | Springfield |
A1 Pizza | Plněná kůra | Shelbyville |
A1 Pizza | Plněná kůra | Hlavní město |
Elitní pizza | Tenká krusta | Hlavní město |
Elitní pizza | Plněná kůra | Hlavní město |
Vincenzo's Pizza | Tlustá kůrka | Springfield |
Vincenzo's Pizza | Tlustá kůrka | Shelbyville |
Vincenzo's Pizza | Tenká krusta | Springfield |
Vincenzo's Pizza | Tenká krusta | Shelbyville |
Každý řádek označuje, že daná restaurace může do dané oblasti doručit danou paletu pizzy.
Tabulka nemá žádné neklíčové atributy, protože její jediný klíč je {restaurace, odrůda pizzy, oblast dodání}. Proto splňuje všechny normální formy až do BCNF. Pokud však předpokládáme, že odrůdy pizzy nabízené restaurací nejsou ovlivněny oblastí dodávky (tj. Restaurace nabízí všechny odrůdy pizzy, které vyrábí, do všech oblastí, které dodává), pak nesplňuje 4NF. Problém je v tom, že tabulka obsahuje dvě netriviální vícehodnotové závislosti na atributu {Restaurant} (což není superklíč). Závislosti jsou:
- {Restaurace} {Odrůda pizzy}
- {Restaurace} {Oblast doručení}
Tyto netriviální vícehodnotové závislosti na non-superkey odrážejí skutečnost, že odrůdy pizzy, které restaurace nabízí, jsou nezávislé na oblastech, do kterých restaurace dodává. Tento stav věcí vede k nadbytek v tabulce: například nám bylo třikrát řečeno, že A1 Pizza nabízí Plněná krusta, a pokud A1 Pizza začne vyrábět pizzy Cheese Crust, pak budeme muset přidat několik řádků, jeden pro každou z oblastí dodávky A1 Pizza. Navíc nám nic nebrání v tom, abychom to nedělali správně: mohli bychom přidat řádky Cheese Crust do všech oblastí doručení Pizza Pizza, kromě jedné, a tím nerespektovat závislost s více hodnotami {Restaurant} {Odrůda pizzy}.
Abychom vyloučili možnost těchto anomálií, musíme umístit fakta o nabízených odrůdách do jiné tabulky než fakta o dodacích oblastech, čímž se získají dvě tabulky, které jsou obě v 4NF:
Restaurace | Rozmanitost pizzy |
---|---|
A1 Pizza | Tlustá kůrka |
A1 Pizza | Plněná kůra |
Elitní pizza | Tenká krusta |
Elitní pizza | Plněná kůra |
Vincenzo's Pizza | Tlustá kůrka |
Vincenzo's Pizza | Tenká krusta |
Restaurace | Oblast dodání |
---|---|
A1 Pizza | Springfield |
A1 Pizza | Shelbyville |
A1 Pizza | Hlavní město |
Elitní pizza | Hlavní město |
Vincenzo's Pizza | Springfield |
Vincenzo's Pizza | Shelbyville |
Naproti tomu, pokud by se odrůdy pizzy nabízené restaurací někdy legitimně lišily od jedné oblasti dodání k druhé, původní stůl se třemi sloupci by uspokojil 4NF.
Ronald Fagin prokázal, že je vždy možné dosáhnout 4NF.[2] Rissanenova věta platí také pro vícehodnotové závislosti.
4NF v praxi
Papír z roku 1992 Margaret S. Wu poznamenává, že výuka normalizace databáze se obvykle zastaví před 4NF, snad kvůli víře, že tabulky porušující 4NF (ale splňující všechny nižší normální formy) se v obchodních aplikacích vyskytují jen zřídka. Tato víra však nemusí být přesná. Wu uvádí, že ve studii čtyřiceti organizačních databází obsahovalo více než 20% jednu nebo více tabulek, které porušily 4NF při splnění všech nižších normálních forem.[3]
Normalizace nad 4NF
Pouze ve výjimečných situacích tabulka 4NF neodpovídá vyšší normální formě 5NF. Jedná se o situace, ve kterých komplexní omezení reálného světa, které řídí platné kombinace hodnot atributů v tabulce 4NF, není ve struktuře této tabulky implicitní.
Viz také
Reference
- ^ "Schéma relace R * je ve čtvrtém normálním tvaru (4NF), pokud je kdykoli netriviální vícehodnotová závislost X Y platí pro R *, pak platí funkční závislost X → A pro každý název sloupce A z R *. Intuitivně jsou všechny závislosti výsledkem klíčů. “ Fagin, Ronald (září 1977). „Závislosti s více hodnotami a nová normální forma pro relační databáze“ (PDF). Transakce ACM v databázových systémech. 2 (1): 262–278. CiteSeerX 10.1.1.69.1872. doi:10.1145/320557.320571. Archivovány od originál (PDF) dne 29. 11. 2007. Citováno 2008-04-26.
- ^ Fagin, str. 268
- ^ Wu, Margaret S. (březen 1992). „Praktická potřeba čtvrté normální formy“. Bulletin ACM SIGCSE. 24 (1): 19–23. doi:10.1145/135250.134515.
Další čtení
- Date, C. J. (1999), Úvod do databázových systémů (8. vydání). Addison-Wesley Longman. ISBN 0-321-19784-4.
- Kent, W. (1983) Jednoduchý průvodce pěti normálními formami v teorii relační databáze „Komunikace ACM, sv. 26, s. 120–125