Normální forma klíče domény - Domain-key normal form
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Normální forma klíče domény (DK / NF) je normální forma použito v normalizace databáze což vyžaduje, aby databáze neobsahovala žádná jiná omezení než omezení domény a klíčová omezení.
Omezení domény určuje povolené hodnoty pro daný atribut, zatímco omezení klíče určuje atributy, které jednoznačně identifikují řádek v dané tabulce.
Normální forma doména / klíč je dosažena, když je každé omezení relace a logický důsledek definice klíčů a domén a vynucení omezení a podmínek klíčů a domén způsobí splnění všech omezení. Vyhýbá se tak všem dočasným anomáliím.
Důvodem použití normální formy domény / klíče je vyhnout se obecným omezením v databázi, která nejsou jasnými omezeními domény nebo klíče. Většina databází může snadno testovat omezení domén a klíčů na atributy. Obecná omezení by však normálně vyžadovala speciální programování databáze ve formě uložených procedur (často různých druhů spouštění), které jsou nákladné na údržbu a na provoz databáze. Obecná omezení jsou proto rozdělena na doménová a klíčová omezení.
Je mnohem snazší vytvořit databázi v normální doméně / klíči než převádět menší databáze, které mohou obsahovat četné anomálie. Úspěšné vytvoření databáze normální formy domény / klíče však zůstává obtížným úkolem, a to i pro zkušené programátory databáze. Zatímco tedy normální forma doména / klíč eliminuje problémy nalezené ve většině databází, má tendenci být nejnákladnější běžnou formou k dosažení. Pokud však nedosáhnete normální formy domény / klíče, může to nést dlouhodobé skryté náklady v důsledku anomálií, které se objevují v databázích, které se v průběhu času drží pouze nižších normálních forem.
The třetí normální forma, Boyce – Codd normální forma, čtvrtá normální forma a pátá normální forma jsou speciální případy normální formy domény / klíče. Všechny mají buď funkční, vícehodnotové nebo spojovací závislosti, které lze převést na superklíče. Domény v těchto normálních formách byly neomezené, takže jsou splněna všechna omezení domény. Transformace vyšší normální formy do normální formy domény / klíče však není vždy transformací zachovávající závislost, a proto není vždy možná.
Příklad
K porušení DKNF dochází v následující tabulce:
Bohatý člověk | Bohatý typ osoby | Čistá hodnota v dolarech |
---|---|---|
Steve | Výstřední milionář | 124,543,621 |
Roderick | Zlý miliardář | 6,553,228,893 |
Katrina | Výstřední miliardář | 8,829,462,998 |
Gary | Zlý milionář | 495,565,211 |
(Předpokládejme, že doména pro Bohaté osoby se skládá ze jmen všech bohatých lidí v předem definovaném vzorku bohatých lidí; doména pro Bohatou osobu se skládá z hodnot „Excentrický milionář“, „Výstřední miliardář“, „Zlý milionář“ a „Evil Billionaire“; a doména pro Čistou hodnotu v dolarech se skládá ze všech celých čísel větších nebo rovných 1 000 000.)
Existuje omezení spojující typ bohatých osob s čistou hodnotou v dolarech, i když nemůžeme odvodit jeden od druhého. Omezení diktuje, že excentrický milionář nebo zlý milionář bude mít čistou hodnotu 1 000 000 až 999 999 999 včetně, zatímco excentrický miliardář nebo zlý miliardář bude mít čistou hodnotu 1 000 000 000 nebo vyšší. Toto omezení není omezením domény ani omezením klíče; proto se nemůžeme spoléhat na doménová omezení a klíčová omezení, abychom zaručili, že nekonzistentní kombinace bohatých osob / čistá hodnota v dolarech se nedostane do databáze.
Porušení DKNF by mohlo být odstraněno změnou domény typu bohatých osob tak, aby sestávala pouze ze dvou hodnot, „Evil“ a „Excentric“ (status bohaté osoby jako milionáře nebo miliardáře je implicitní v jejich Čisté hodnotě v dolarech, takže ne užitečné informace ztraceny).
Bohatý člověk | Bohatý typ osoby | Čistá hodnota v dolarech |
---|---|---|
Steve | Výstřední | 124,543,621 |
Roderick | Zlo | 6,553,228,893 |
Katrina | Výstřední | 8,829,462,998 |
Gary | Zlo | 495,565,211 |
Postavení | Minimální | Maximum |
---|---|---|
Milionář | 1,000,000 | 999,999,999 |
Miliardář | 1,000,000,000 | 999,999,999,999 |
Zahraniční klíče
Vztahy, které nelze vyjádřit jako cizí klíče jsou zjevným porušením DKNF. Například atribut „Parent ID“, který odkazuje na jednu z několika odkazovaných tabulek, v závislosti na druhém atributu „Parent Type“, porušuje DKNF.
Viz také
Reference
- Fagin, Ronald (1981). „Normální forma pro relační databáze založená na doménách a klíčích“ (PDF). Transakce ACM v databázových systémech. 6 (3): 387–415. CiteSeerX 10.1.1.73.373. doi:10.1145/319587.319592.
externí odkazy
- Základy normalizace databáze Mike Chapple (About.com)
- Úvod do normalizace databáze Mike Hillyer.
- Normalizace ITS, University of Texas.
- Výukový program pro první 3 normální formuláře Fred Coulson
- Popis základů normalizace databáze od společnosti Microsoft