Normalizace databáze

Normalizace databáze je v informatice označení postupu, kdy je struktura dat v relační databázi přeorganizována tak, aby využívala výhody relačního modelu dat. Normalizace databáze umožňuje data efektivněji ukládat, prohledávat, třídit i zpracovávat. Při normalizaci jsou v databázi měněny atributy (sloupce) jednotlivých tabulek a zaváděny mezi nimi výhodné vztahy, je omezována redundance uložených dat (vět) a je brán ohled na řešení problému s případnou nekonzistencí dat.

Autorem termínu normalizace databáze je britsko-americký matematik a informatik Edgar. F. Codd.

Charakteristika

V relačním modelu jsou data uložena v tabulkách, na které má jisté požadavky. Při splnění požadavků je tabulka označována jako normalizovaná. Pokud nejsou tyto požadavky splněny, jsou označovány jako nenormalizované a proces jejich převodu na tabulky se označuje jako normalizace. Při tomto procesu dochází k odstraňování nedostatků tabulek jako je redundance nebo možnost vzniku aktualizační anomálie, tj. nechtěného vedlejšího efektu operace nad databází, při kterém dojde ke ztrátě nebo nekonzistenci dat. Postup normalizace je rozdělen do několika kroků a po dokončení každého z nich se tabulka nachází v určité normální formě. V praxi se většinou normalizuje do třetí normální formy, vyšší normální formy je vcelku obtížné porušit a vyžadují relativně velké znalosti, stejně jako návrh databází takové velikosti, kde je možné je porušit.

Normální formy

Přestože existuje řada normálních forem, v praxi se za normalizovanou databázi považuje taková, která splňuje alespoň první tři normální formy. Předmětem zkoumání prvních čtyř forem (1NF, 2NF, 3NF, BCNF) je vztah neklíčových atributů na primárním klíči, předmětem zkoumání posledních dvou normálních forem (4NF, 5NF) jsou vztahy uvnitř složených primárních klíčů. Důležité také je, že každá z normálních forem obsahuje a vyžaduje splnění všech pravidel obsažených ve formách předchozích.

  • UNF: Nenormalizovaná databáze
  • 0NF: Alespoň jeden atribut obsahuje více než jednu hodnotu.
  • 1NF: Každý atribut obsahuje pouze atomické hodnoty.
  • 2NF: Každý neklíčový atribut je plně závislý na každém kandidátním klíči. (Neklíčovým atributem rozumíme atribut, který není součástí žádného kandidátního klíče.)
  • 3NF: Všechny neklíčové atributy musí být vzájemně nezávislé.
  • BCNF: Atributy, které jsou součástí primárního klíče, musí být vzájemně nezávislé.
  • 4NF: Relace popisuje pouze příčinnou souvislost mezi klíčem a atributy.
  • 5NF: Relaci již není možno bezeztrátově rozložit.

Historie normálních forem

  • První normální forma byla představena v konferenčním příspěvku z roku 1970 publikovaného E. F. Coddem[1]
  • Codd pokračoval v definici druhé a třetí normální formy v roce 1971[2]
  • V roce 1974 E. F. Codd společně s Raymondem F. Boyce definovali Boyceho-Coddovu normální formu[3]
  • Čtvrtou normální formu představil v roce 1977 Ronald Fagin[4]
  • R. Fagin rozšířil normální formy o definici páté normální formy svým konferenčním příspěvkem v roce 1979[5]

Pro splnění určité normální formy je nutné splnit i ty předchozí. V praxi se obvykle používají pouze první tři.

Nenormalizovaná forma (UNF)

Nenormalizovaná forma (z anglického Unnormalized Form) byla pojmenována v roce 1970 E. F. Coddem a představuje formu jakékoliv tabulky, která je v nenormalizovaném stavu, tj. tabulky, na níž dosud nebyly aplikovány žádné normální formy.
V literatuře se často nenormalizovaná forma neuvádí, především proto, že její splnění je v podstatě automatické a vypovídající hodnota této kategorizace je zanedbatelná. Je důležité poznamenat, že tabulka v nenormalizované formě nutně nemusí porušovat některé z dalších normálních forem – to je však předmětem aplikace a šetření spojeného s následujícími normálními formami.

Nultá normální forma (0NF)

Nultá normální forma bývá obdobně jako nenormalizovaná forma zřídka v literatuře zmiňována. V některých případech je uváděna jako součást první normální formy. Obvykle není zvažována, jelikož její splnění bývá v praxi automaticky zaručeno. Přesto lze nalézt následující definici:

  • Schéma relace je v nulté normální formě právě tehdy, když existuje alespoň jeden atribut, který obsahuje více než jednu hodnotu[6]

První normální forma (1NF)

Pro splnění první normální formy je zapotřebí zajistit následující:

  • splnění nulté normální formy (0NF)
  • všechny atributy tabulky musí být atomické, tedy dále nedělitelné

Příklad 1

Klasickým příkladem tabulky porušující první normální formu bývá nejčastěji problém s telefonními čísly, kdy naším cílem je umožnit evidovat pro každou osobu dvě různá telefonní čísla, jak lze vidět v tabulce níže:

  • Poznámka: U všech příkladů níže platí pravidlo, že podtržené názvy atributů představují primární klíč.
Tabulka Osoba
ID Osoby Jméno Telefonní číslo
1 Petr Novák +420 111 222 333
2 Jarmil Hnízdo +420 123 123 123, +420 123 123 124

Tato tabulka ovšem porušuje první normální formu, jelikož sloupec (atribut) telefonní číslo není atomický. Zjevným řešením této situace by mohlo být přidání druhého sloupce pro telefonní číslo, abychom zajistili splnění pravidla atomických atributů:

Tabulka Osoba
ID Osoby Jméno Telefonní číslo 1 Telefonní číslo 2
1 Petr Novák +420 111 222 333
2 Jarmil Hnízdo +420 123 123 123 +420 123 123 124

Přestože je tato tabulka formálně správná a již neporušuje pravidlo první normální formy, její návrh je stále problematický. Problém nastane zejména v případě, že bude zapotřebí evidovat čísel více. Rozšiřování tabulky o další sloupce telefonních čísel není často realizovatelné a také se označuje za špatný návrh. Správným řešením je vytvoření nové tabulky a odstranění sloupce telefonních čísel z tabulky osob, jak lze vidět na příkladu níže:

Tabulka Osoba
ID Osoby Jméno
1 Petr Novák
2 Jarmil Hnízdo
Tabulka Kontakt
ID Kontaktu ID Osoby Telefonní číslo
1 1 +420 111 222 333
2 2 +420 123 123 123
3 2 +420 123 123 124

V tomto případě je tedy první normální forma splněna a rozdělením tabulek jsme umožnili bezproblémové přidávání libovolného počtu telefonních čísel pro každou osobu. Všimněme si, že tabulka s kontakty obsahuje navíc kromě primárního klíče také cizí klíč, který nám zajišťuje svázání telefonního čísla se správnou osobou.

Druhá normální forma (2NF)

Pravidla definovaná druhou normální formou lze shrnout na následující:

  • tabulka musí být v první normální formě (1NF)
  • každý neklíčový atribut musí být plně závislý na každém kandidátním klíči (neklíčovým atributem rozumíme atribut, který není součástí žádného kandidátního klíče)

Druhá normální forma klade důraz především na odstranění možných duplicit v záznamech.

Příklad 2

Uveďme si příklad, kdy máme tabulku evidující následující informace o kurzech. Všimněme si především toho, že tabulka má složený primární klíč {ID Kurzu, ID Semestru}:

Tabulka Záznam [7]
ID Kurzu ID Semestru Počet míst Jméno kurzu
IT101 ls 2017 100 Programování
IT101 zs 2017 100 Programování
IT102 ls 2017 200 Databáze
IT102 zs 2017 150 Databáze
IT103 zs 2017 120 Web design

Tato tabulka porušuje druhou normální formu, jelikož sloupec Jméno kurzu není plně závislý na celém primárním klíči. Jméno kurzu je závislé na sloupci ID Kurzu, ovšem není již závislé na sloupci ID Semestru. V takovéto tabulce navíc dochází k redundanci dat, jak lze vidět na opakujících se jménech každého kurzu. Při vypisování již existujících kurzů v budoucnu (v nových semestrech) by docházelo k neustálému opakování těchto záznamů.

Způsob, jakým lze tento problém vyřešit je dekompozice tabulky a zajištění, že všechny neklíčové atributy dané tabulky budou závislé na celém klíči. Možným řešením může být například následující rozdělení tabulky:

Tabulka Záznam
ID Kurzu ID Semestru Počet míst
IT101 ls 2017 100
IT101 zs 2017 100
IT102 ls 2017 200
IT102 zs 2017 150
IT103 zs 2017 120
Tabulka Kurz
ID Kurzu Jméno kurzu
IT101 Programování
IT102 Databáze
IT103 Web design

Výše uvedená dekompozice tabulky zajišťuje splnění druhé normální formy. Jediný neklíčový atribut v původní tabulce – Počet míst je již závislý na celém složeném primárním klíči, obdobně jako jediný neklíčový atribut Jméno kurzu v tabulce Kurz, který je již závislý na jediném primárním klíči nově vytvořené tabulky.

Třetí normální forma (3NF)

Třetí normální forma klade následující podmínky:

  • tabulka je ve druhé normální formě (2NF)
  • neobsahuje tranzitivní závislosti[8]

Funkční závislost v databázích chápeme jako vztah mezi atributy, kdy tvrzení, že atribut Y je funkčně závislý na atributu X značíme jako:

Tato závislost zajišťuje, že dva řádky mající stejnou hodnotu atributu X budou mít vždy stejnou hodnotu atributu Y. Tranzitivní závislost pak chápeme jako vztah mezi třemi atributy (např. X, Y, Z), kdy atribut Y je funkčně závislý na atributu X, atribut Z je funkčně závislý na atributu Y, a proto lze implikovat, že atribut Z je také funkčně závislý na atributu X. Tento vztah značíme jako:

  • pokud [9]

Příklad 3

Nejlépe však tuto normální formu lze pochopit na vypovídajícím příkladu. Mějme následující tabulku evidující jednotlivé filmy, jejich žánry a délku jejich stopáže:

Tabulka Film
ID Filmu ID Žánru Název žánru Délka filmu
1 3 Dokumentární 01:20:00
2 2 Akční 01:05:00
3 1 Komedie 01:50:00
4 2 Akční 01:10:00
5 3 Dokumentární 01:11:00

Na první pohled není s tabulkou nic v nepořádku. Tabulka splňuje druhou normální formu, všechny neklíčové atributy jsou závislé na celém primárním klíči (tedy v tomto případě na atributu ID Filmu). Přesto tato tabulka nesplňuje pravidla určená třetí normální formou.
V tabulce výše vidíme, že primární klíč identifikující každý film rozhoduje o tom, jaký žánr bude zvolen, tedy jinými slovy atribut ID Žánru je funkčně závislý na atributu ID Filmu (ID Filmu → ID Žánru). Další závislost, kterou můžeme identifikovat je vztah identifikačního čísla žánru a názvu daného žánru, jinými slovy atribut Název žánru je funkčně závislý na atributu ID žánru (ID Žánru → Název žánru). Jak již z definice tranzitivní závislosti víme, z těchto dvou vztahů plyne i vztah třetí, určující funkční závislost atributu Název žánru na primárním klíči ID Filmu.

Způsob, jakým lze třetí normální formu uspokojit je dekompozice tabulky, díky čemuž dosáhneme odstranění nalezené tranzitivní závislosti. Pro příklad výše by dekompozice vypadala následovně:

Tabulka Film
ID Filmu ID Žánru Délka filmu
1 3 01:20:00
2 2 01:05:00
3 1 01:50:00
4 2 01:10:00
5 3 01:11:00
Tabulka Žánr
ID Žánru Název žánru
1 Komedie
2 Akční
3 Dokumentární

Rozkladem původní tabulky nyní dostáváme dvě tabulky, které již neobsahují žádné tranzitivní závislosti. Navíc jsme díky naplnění třetí normální formy napomohli ke snížení redundance dat.

Boyceho-Coddova normální forma (BCNF)

Viz článek Boyceho–Coddova normální forma

Čtvrtá normální forma (4NF)

Čtvrtá normální forma je dalším krokem po uplatnění Boyceho-Coddovy normální formy. Jak již bylo nastíněno v počátku, druhá, třetí a Boyceho-Coddova normální forma řeší funkční závislosti jednotlivých atributů, kdežto čtvrtá a pátá normální forma zkoumá vztahy složených primárních klíčů. Dle jedné z definic navíc od splnění všech předešlých normálních forem umožňuje rozlišení a oddělení nezávislých vícehodnotových atributů vytvářejících složený primární klíč. [8]

Požadavky pro splnění 4NF jsou tedy následující:

  • relace je v BCNF
  • pro každou netriviální vícehodnotovou závislost X ↠ Y je X superklíčem v dané relaci (superklíč je jakékoliv uskupení atributů, které jednoznačně identifikuje záznam v tabulce)[10]

Příklad 4

Mějme následující tabulku evidující záznamy o prodejcích, prodávaných produktech a pobočkách, kde nabízejí své produkty:

Tabulka Prodejce-Produkt-Pobočka
Prodejce Produkt Pobočka
Prodejce 01 Lyže Praha
Prodejce 01 Lyže Liberec
Prodejce 01 Lyže Pardubice
Prodejce 01 Lyžařské brýle Praha
Prodejce 01 Lyžařské brýle Liberec
Prodejce 01 Lyžařské brýle Pardubice
Prodejce 02 Lyže Praha
Prodejce 02 Lyže Liberec
Prodejce 02 Lyže Pardubice
Prodejce 02 Lyžařské brýle Praha
Prodejce 02 Lyžařské brýle Liberec
Prodejce 02 Lyžařské brýle Pardubice
Prodejce 03 Lyže Pardubice

Stejně jako předchozí normální formy, i čtvrtá normální forma se snaží zamezit zbytečné redundanci dat. Množství záznamů v tabulce výše bylo zvoleno především proto, aby bylo možné ilustrovat, že i tato normální forma napomáhá ke snížení redundance dat.

Jelikož tabulka neobsahuje žádné neklíčové atributy (je tvořena pouze složeným primárním klíčem {Prodejce, Produkt, Pobočka}), máme zajištěné splnění všech předchozích normálních forem. Tato tabulka však nesplňuje pravidla určená čtvrtou normální formou. Vezmeme-li v úvahu, že všichni prodejci poskytují všechny své produkty na všech svých pobočkách, zjistíme, že složený klíč je bezpochyby tvořen z nezávislých dat, kdy produkt není vázán na určitou pobočku. Z toho důvodu je porušena čtvrtá normální forma a pro její splnění je zapotřebí provést dekompozici tabulky, která by vypadala následovně:

Tabulka Prodejce-Produkt
Prodejce Produkt
Prodejce 01 Lyže
Prodejce 01 Lyžařské brýle
Prodejce 02 Lyže
Prodejce 02 Lyžařské brýle
Prodejce 03 Lyže
Tabulka Prodejce-Pobočka
Prodejce Pobočka
Prodejce 01 Praha
Prodejce 01 Liberec
Prodejce 01 Pardubice
Prodejce 02 Praha
Prodejce 02 Liberec
Prodejce 02 Pardubice
Prodejce 03 Pardubice

Po dekompozici tabulky již máme splnění čtvrté normální formy zajištěné.

Pátá normální forma (5NF)

Pátá normální forma tkví ve splnění následujících podmínek:

  • čtvrté normální formy (4NF)
  • tabulku není možné dále bezeztrátově rozdělovat.

Ve všech předchozích normálních formách nedocházelo dekompozicí tabulek ke ztrátě dat[11], ovšem upravíme-li příklad a situaci ze čtvrté normální formy, kdy prodejci již neposkytují všechny své produkty na každé své pobočce, ale pouze některé z nich, dojde při rozkladu ke ztrátě informací.

Příklad 5

Mějme tedy následující upravenou tabulku z minulého příkladu:

Tabulka Prodejce-Produkt-Pobočka
Prodejce Produkt Pobočka
Prodejce 01 Lyže Praha
Prodejce 01 Lyžařské brýle Praha
Prodejce 01 Rukavice Pardubice
Prodejce 02 Rukavice Praha

Když se pokusíme o dekompozici tabulky, stejně jako při uspokojování čtvrté normální formy, dostaneme následující:

Tabulka Prodejce-Produkt
Prodejce Produkt
Prodejce 01 Lyže
Prodejce 01 Lyžařské brýle
Prodejce 01 Rukavice
Prodejce 02 Rukavice
Tabulka Prodejce-Pobočka
Prodejce Pobočka
Prodejce 01 Praha
Prodejce 01 Pardubice
Prodejce 02 Praha

Zajisté jsme dekompozicí pomohli snížit redundanci dat v naší databázi, která by byla zjevná především u rozsáhlých databází s velkým počtem záznamů. Ovšem ve výsledku jsme ztratili důležité informace o závislosti prodejců – produktů – poboček. Při aplikaci některého z možných spojení tabulek, např. přirozeného spojování (NATURAL JOIN), dostáváme následující výsledky:

Tabulka Prodejce-Produkt-Pobočka
Prodejce Produkt Pobočka
Prodejce 01 Lyže Praha
Prodejce 01 Lyžařské brýle Praha
Prodejce 01 Rukavice Praha
Prodejce 01 Rukavice Pardubice
Prodejce 01 Lyžařské brýle Pardubice
Prodejce 01 Lyže Pardubice
Prodejce 02 Rukavice Praha

Všimněme si, že dle obdržených výsledků vrácených spojením tabulek Prodejce-Produkt a Prodejce-Pobočka došlo k vytvoření tří nových záznamů, které tvrdí, že např. Prodejce 01 prodává lyžařské brýle v Pardubicích, což ovšem v porovnání s původní tabulkou víme, že není pravda. Uvažujme tedy o dekompozici původní tabulky na tři tabulky oproti dvěma původním. Tedy kromě tabulek Prodejce-Produkt a Prodejce-Pobočka přidáme ještě tabulku Pobočka-Produkt evidující vztah mezi produkty a jejich dostupností na jednotlivých pobočkách. Mějme tedy navíc následující tabulku:

Tabulka Pobočka-Produkt
Pobočka Produkt
Praha Lyže
Praha Lyžařské brýle
Praha Rukavice
Pardubice Rukavice

Problém však nastává ve chvíli, kdy se pokusíme tyto tři tabulky spojit a dostat tak původní data. Zjistíme, že se nám takové spojení realizovat nepodaří a že není způsob, jak bychom dekompozici původní tabulky mohli provést bezeztrátově. Tedy lze konstatovat, že tabulka Prodejce-Produkt-Pobočka již nelze dále bezeztrátově rozložit (je tedy v 5NF), a proto se musíme spokojit s redundancí dat původní tabulky pro zajištění, že nepřijdeme o žádná potenciálně důležitá data.

Příklad 6

Víme už tedy o jaké tabulce můžeme konstatovat, že je v páté normální formě. Ukažme si ještě tabulku, která pátou normální formu porušuje. Upravíme-li záznamy původní tabulky a určíme-li, že se v Praze prodávají všechny produkty (lyže a lyžařské brýle), ale v Pardubicích pouze lyžařské brýle, bude nová tabulka vypadat následovně:

Tabulka Prodejce-Produkt-Pobočka
Prodejce Produkt Pobočka
Prodejce 01 Lyže Praha
Prodejce 01 Lyžařské brýle Praha
Prodejce 01 Lyžařské brýle Pardubice
Prodejce 02 Lyže Praha
Prodejce 02 Lyžařské brýle Praha

Budeme-li postupovat stejně jako při pokusu o dekompozici bezeztrátově nerozdělitelné tabulky z minulého příkladu, dostaneme následující tři tabulky:

Tabulka Prodejce-Produkt
Prodejce Produkt
Prodejce 01 Lyže
Prodejce 01 Lyžařské brýle
Prodejce 02 Lyže
Prodejce 02 Lyžařské brýle
Tabulka Prodejce-Pobočka
Prodejce Pobočka
Prodejce 01 Praha
Prodejce 01 Pardubice
Prodejce 02 Praha
Tabulka Pobočka-Produkt
Pobočka Produkt
Praha Lyže
Praha Lyžařské brýle
Pardubice Lyžařské brýle

Při pokusu o jejich opětovné spojení, zjistíme, že se nám v tomto případě podařila bezeztrátová dekompozice a výsledkem naší selekce je totožná tabulka s tabulkou před rozdělením. Po spojení těchto tabulek tedy získáváme:

Tabulka Prodejce-Produkt-Pobočka
Prodejce Produkt Pobočka
Prodejce 01 Lyže Praha
Prodejce 01 Lyžařské brýle Praha
Prodejce 01 Lyžařské brýle Pardubice
Prodejce 02 Lyže Praha
Prodejce 02 Lyžařské brýle Praha

Jelikož se nám podařilo opětovně spojit tři rozdělené tabulky a získat tak nezměněnou původní tabulku, lze konstatovat, že tabulka nesplňuje pravidla stanovená pátou normální formou. Srovnáme-li oba příklady této normální formy, zjistíme, že hlavním rozdílem bylo uvedení rozšiřujících informací, které nejsou ihned zjevné při pohledu na samotnou tabulku. Identifikování tabulek, které porušují pátou normální formu bývá v praxi velmi složité, a navíc reálný přínos její aplikace bývá často nezřetelný. Pátá normální forma patří mezi formy založené spíše na teoretickém zázemí, postrádajíc reálně dosažitelné výsledky při aplikaci v praxi.

Další normální formy

Následující normální formy jsou zřídka uváděny a obvykle se s nimi při normalizaci nesetkáváme. Většina z nich je postavena na čistě teoretickém modelu a jejich aplikace v praxi bývá přehlížena (občas záměrně). Pro úplnost je vhodné uvést i tyto normy.

Normální forma elementárních klíčů (EKNF)

Normální forma elementárních klíčů (z anglického Elementary key normal form) je nadstavbou nad třetí normální formou a striktně spadá před BCNF, tedy platí pravidlo, že relace v EKNF jsou zároveň i ve třetí normální formě. Tuto normální formu představil v roce 1982 Carlo Zaniolo.[12] EKNF cílí na zachycení hlavních kvalit jak třetí normální formy, tak BCNF a zároveň adresuje jejich problémy.

Formální definice EKNF zní:

  • Relace R je v normální formě elementárních klíčů (EKNF) právě tehdy, když pro každou netriviální funkční závislost X → Y platí:
    • X je superklíč, nebo
    • Y je součástí některého z elementárních klíčů
      • kde klíč K je elementární právě tehdy, když existuje atribut A relace R, kde funkční závislost K → A je netriviální a neredukovatelná

Normální forma nezbytných n-tic (ETNF)

Normální forma nezbytných n-tic (z anglického Essential tuple normal form), zkráceně ETNF, je jedna z nejnovějších normálních forem. Její představení proběhlo v roce 2012. [13] Jedná se o normální formu, která zaujímá místo mezi čtvrtou a pátou normální formou. Předmětem zkoumání této normální formy jsou funkční závislosti v relacích relačních databázích. Hlavní výhodou aplikace této normální formy je obdobně jako v případě ostatních normálních forem snížení redundance dat.

Dle znění formální definice je schéma relace R v normální formě nezbytných n-tic (ETNF) právě tehdy, když:

  • každá n-tice každé instance R je nezbytná (její ztráta by zapříčinila ztrátu informací)[13]

Normální forma doménových klíčů (DK/NF)

Normální forma doménových klíčů (z anglického Domain-key normal form) je další normální formou, jejíž autorem je R. Fagin.[14]

Dle jedné z definic je DK/NF splněna, pokud:

  • databáze neobsahuje žádné omezení kromě doménových omezení a omezení klíčů
    • doménové omezení určuje možné hodnoty daného atributu
    • omezení klíčů určuje atributy, které unikátně identifikují řádek (záznam) dané tabulky

Dle další definice[15] je DK/NF splněna, pokud:

Poznámka: V literatuře se můžeme setkat s chápáním DK/NF jako synonymem k šesté normální formě, ovšem dle definice Christophera Date se DK/NF od jím definované šesté normální formy liší.

Šestá normální forma (6NF)

Šestá normální forma je poslední uváděná normální forma představená v roce 2003. Jejími autory jsou C. J. Date, H. Darwen a N. A. Lorentzos. Cílem šesté normální formy je dekompozice relací na dále již neredukovatelné komponenty (relace). [16] [17] [18]

Dle jedné z možných definic je tabulka v 6NF právě tehdy, když:[19]

  • řádek tabulky obsahuje primární klíč a pouze (maximálně) jeden další atribut

Šestá normální forma nabírá na důležitosti s využitím dočasných datových uložišť a datových skladů.

Odkazy

Reference

  1. CODD, E. F., (1970). A Relational Model of Data for Large Shared Data Banks, Communications of the ACM. 13 (6): 377–387. doi:10.1145/362384.362685, [citováno: 11. 6. 2018] (v angličtině)
  2. CODD, E. F., (1971). Further Normalization of the Data Base Relational Model, Courant Computer Science Symposia Series 6, "Data Base Systems", New York City, IBM Research Report RJ909, [citováno: 11. 6. 2018] (v angličtině)
  3. CODD, E. F., (1974). Recent Investigations into Relational Data Base Systems, IBM Research Report RJ1385, [citováno: 11. 6. 2018] (v angličtině)
  4. FAGIN, R. (1977). Multivalued dependencies and a new normal form for relational databases, ACM Transactions on Database Systems (TODS), str. 262-278, [citováno: 11. 6. 2018] (v angličtině)
  5. KRISHNA, S., (1991). Introduction to Database and Knowledge-Base Systems, ISBN 9810206208. str. 65, [citováno: 11. 6. 2018] (v angličtině)
  6. ZÁDOVÁ, V., Relační datový model, Technická Univerzita v Liberci, Katedra informatiky, Ekonomická fakulta, [citováno: 10. 6. 2018]
  7. SMASHERY (2013) What are database normal forms and can you give examples? [online], stackoverflow.com, [aktualizováno: 31. 5. 2013], [citováno: 10. 6. 2018] (v angličtině)
  8. a b CHLAPEK, D., (2015). Normalizace dat - souhrnný příklad, Vysoká škola ekonomická v Praze, Fakulta informatiky a statistiky, Katedra informačních technologií, str. 7-10, [citováno: 10. 6. 2018]
  9. ŽOLTÁ, L., Funkční závislosti [online], lucie.zolta.cz, [citováno: 11. 6. 2018]
  10. ŠÍPAL, Š., Databázové systémy [online], [citováno: 11. 6. 2018]
  11. SEKHAR, R., Fifth Normal Form (5NF) [online], Quora.com, [aktualizováno: 9. 3. 2017], [citováno: 10. 6. 2018] (v angličtině)
  12. ZANIOLO, C. (1982) A New Normal Form for the Design of Relational Database Schemata [online], ACM Transactions on Database Systems, [citováno 11. 6. 2018] (v angličtině)
  13. a b DARWEN, H., DATE, C. J., FAGIN, R. (2012) A Normal Form for Preventing Redundant Tuples in Relational Databases, ICDT '12 Proceedings of the 15th International Conference on Database Theory, ISBN 978-1-4503-0791-8, [citováno 11. 6. 2018] (v angličtině)
  14. FAGIN, R. (1981) A Normal Form for Relational Databases That Is Based on Domains and Keys Archivováno 27. 9. 2007 na Wayback Machine. [online], ACM Transactions on Database Systems, str 387–415. [citováno 11. 6. 2018] (v angličtině)
  15. DATE, C. J. (2012) ON DK/NF NORMAL FORM, dbdebunk.com, [citováno: 11. 6. 2018] (v angličtině)
  16. DATE, C. J., DARWEN, H., LORENTZOS, N. A. (2003) Temporal Data and the Relational Model: A Detailed Investigation into the Application of Interval and Relation Theory to the Problem of Temporal Database Management. Oxford: Elsevier LTD. ISBN 1-55860-855-9, [citováno: 12. 6. 2018] (v angličtině)
  17. NEHA, S. K. (2015) Sixth Normal Form [online], International Journal for Research in Applied Science & Engineering Technology (IJRASET), Volume 3 Issue I, January 2015, ISSN 2321-9653, [citováno 12. 6. 2018] (v angličtině)
  18. KNOWLES, C. (2012) 6NF Conceptual Models and Data Warehousing 2.0 [online], Georgia Southern University, Association for Information System, AIS Electronic Library (AISeL), [citováno 12. 6. 2018] (v angličtině)
  19. ROGERS, R., PerformanceDBA (2015) Would like to Understand 6NF with an Example [online] stackoverflow.com, [aktualizováno: 7. 5. 2015], [citováno 12. 6. 2018] (v angličtině)

Literatura

Externí odkazy

Read other articles:

See also: List of anti-aircraft weapons and List of missiles This is a list of surface-to-air missiles (SAMs). World War II Enzian – Nazi Germany Wasserfall – Nazi Germany Rheintochter – Nazi Germany Funryu – Empire of Japan Modern systems China TY-90 QW-3 FN-6 KS-1 (missile) HQ-9 HQ-9A HQ-9B HHQ-9 HQ-22 HQ-16 HQ-17 HQ-17AE HQ-7 HQ-10 HQ-19 FM-3000 FT-2000 HQ-15/HQ-18 (Chinese copy of S-300 missile system) France R440 Crotale R460 SICA Masurca Roland 1 Roland 2 Roland 3 Mistral 1 Mist...

 

El camino C (en negro), los ceros de f (en azul) y los polos de f (en rojo). En el análisis complejo, el principio del argumento (o principio del argumento de Cauchy) expresa que si f(z) es una función meromorfa definida en el conjunto abierto limitado por un camino cerrado C, tal que f no tiene ceros ni polos en C, entonces se cumple la siguiente relación: ∮ C f ′ ( z ) f ( z ) d z = 2 π i ( N − P ) {\displaystyle \oint _{C}{f'(z) \over f(z)}\,dz=2\pi i(N-P)} d...

 

The Clement Peerens Explosition The Clement Peerens Explosition Achtergrondinformatie Jaren actief 1990-2023 Oorsprong  België Genre(s) Humor, Rock Leden leadzanger, leadgitarist Clement Peerens basgitarist, zanger Sylvain Aertbeliën drummer Dave de Peuter Oud-leden drummer François Vettige Swa de Bock Officiële website (en) Discogs-profiel (en) MusicBrainz-profiel Portaal    Muziek The Clement Peerens Explosition (ook CPeX genaamd) is een Vlaamse rockgroep. De groep i...

Удари по об'єктах критичної інфраструктури України під час російсько-української війниповітряна війна над Україною Відсутність світла вночі після масованих ударів проти об'єктів критичної інфраструктури України добре помітна з супутника NASA, 24 листопада 2022 рокуМісце

 

هذه المقالة بحاجة لصندوق معلومات. فضلًا ساعد في تحسين هذه المقالة بإضافة صندوق معلومات مخصص إليها. معرض آسيا للطيران والفضاء، (Asian Aerospace). (AA). هو معرض تجاري دولي للأعمال التجارية في مجال الطيران. يقيم حاليا في هونغ كونغ، فقد عقدت في سنغافورة منذ عام 1981 حتى الخلافات بين المشار...

 

「パッシブレーダー」あるいは「パッシブ・レーダー・ホーミング」とは異なります。 PESAアンテナの構成 パッシブ・フェーズドアレイ・アンテナ(英語: passive phased array antenna)は、フェーズドアレイ・アンテナの一種[1]。パッシブ電子走査アレイ(英: passive electronically scanned array, PESA)とほぼ同義である[2]。 概要 フェーズドアレイ・アンテナは、複数

تربية الحيوانصنف فرعي من علوم الحيوانات المستأنسة — agricultural production (en) — husbandry (en) — agricultural, veterinary and food sciences (en) جزء من علوم الحيوانات المستأنسة — زراعة يمتهنه  القائمة ... zooenginer (en) — fighting bull rancher (en) — مربي ماشية — فلاح — livestock worker (en) — stockperson (en) — راعي — مربي ماشية — راعي — Squ...

 

نظام إدارة محتوى الويب (بالإنجليزية: Web content management system أو WCM)‏ هو نظام إدارة محتوى مصمم لتيسير نشر محتوى الويب (بالإنجليزية: web content)‏ إلى المواقع والأجهزة المحمولة.[1][2][3] والسماح، على وجه الخصوص، لمؤلفي المحتوى غير المتخصصين بإرسال المحتوى بدون أن يتطلب ذلك معرف...

 

Soviet-Ukrainian painter and human rights activist Alla HorskaАлла ГорськаMemorial plaque on the house where Alla Horska livedBorn18 September 1929YaltaDiedNovember 17, 1970(1970-11-17) (aged 41)VasylkivNationalityUkrainianCitizenshipSoviet UnionAlma materNational Academy of Arts of UkraineKnown forart, painting, human rights activismMovementdissident movement in the Soviet Union Alla Horska (Ukrainian: Алла Горська; 18 September 1929, Yalta — 17 No...

American publishing company Cross Infinite WorldStatusActiveFounded2016; 7 years ago (2016)Country of originUnited StatesHeadquarters locationCaliforniaDistributionInternationalPublication typeslight novels, manga, audiobooksOfficial websitewww.crossinfworld.com Cross Infinite World is a California-based language localization company specializing in Japanese to English translation and publication of Japanese media such as light novels and manga. History Founded in 2016, Cros...

 

1990 song by Guns n' Roses Civil WarSingle by Guns N' Rosesfrom the album Nobody's Child: Romanian Angel Appeal and Use Your Illusion II B-side Garden of Eden (LP version) (German) Exclusive Interview with Slash (German) ReleasedMay 3, 1993 (1993-05-03)[1]Genre Hard rock[2][3] progressive rock[4] Length7:40LabelGeffenSongwriter(s) Axl Rose Slash Duff McKagan Producer(s) Mike Clink Guns N' Roses Guns N' Roses singles chronology Yesterdays (1992) C...

 

1941 film by Luis Bayón Herrera Candida, MillionairessDirected byLuis Bayón HerreraWritten byPedro E. PicaCinematographyRoque FunesMusic byAlberto SoiferRelease date 1941 (1941) Running time102 minutesCountryArgentinaLanguageSpanish Candida, Millionairess (Spanish: Cándida millonaria) is a 1941 Argentine musical comedy film directed by Luis Bayón Herrera, who adapted the Pedro E. Pico play.[1] Plot A millionaire businessman falls in love with his Galician maid, and decides to...

Roman villa in Derbyshire, England The Carsington Roman Villa is a Roman villa at Scow Brook, Carsington near Wirksworth, Derbyshire, England. An artist's impression of the villa at Carsington by Wirksworth The site of the villa is currently submerged under the Carsington Water reservoir. Before the reservoir was built, the villa would have been located along the upper valley of the Scow Brook. Floor plan of the villa The villa contains a main house, a bathhouse, a courtyard, and a number of ...

 

Indian-American politician, economist, and Seattle city councilmember Kshama SawantMember of the Seattle City CouncilIncumbentAssumed office January 1, 2014Preceded byRichard ConlinConstituency2nd district (2014–2016)3rd district (2016–present) Personal detailsBorn (1973-10-17) October 17, 1973 (age 50)Pune, IndiaPolitical partySocialist Alternative (since 2008)Other politicalaffiliationsDemocratic Socialists of America (since 2021)Spouses Vivek Sawant ​(before ...

 

Regional cuisine from the Punjab region of India and Pakistan Part of a series onPunjabis History Folklore Language Dialects Punjab Punjabis Nationalism DiasporaAsia Afghanistan Europe United Kingdom North America United States Canada Oceania Australia New Zealand Culture Clothing Cuisine Dance Festivals (India • Pakistan) Literature Media Music Religion (Folk religion) Sport Television Regions Majha Malwa Doaba Puadh Bagar Pothwar Derajat Bhatiore Bhattiana Chhachh Kachhi Doabs (Indus Saga...

Untuk partai politik 1970an dan 1980an, lihat United Arab List (1977). Partai Arab Bersatu القائمة العربية الموحدةNama dalam bahasa Ibraniהרשימה הערבית המאוחדתNama dalam bahasa InggrisUnited Arab ListKetua umumMansour AbbasKetua umumMansour AbbasDibentuk1996 (1996)IdeologiKonservatisme[1]Kepentingan Arab IsraelSolusi dua negaraAnti-ZionismeIslamisme[2][3][4]Konservatisme sosial[5][6]Posisi politi...

 

  لمعانٍ أخرى، طالع قلعة شيخ (توضيح). قلعة شيخ تقسيم إداري البلد إيران  إحداثيات 35°58′43″N 50°28′15″E / 35.97861111°N 50.47083333°E / 35.97861111; 50.47083333  السكان التعداد السكاني 24 نسمة (إحصاء 2016) تعديل مصدري - تعديل   قلعة شيخ هي قرية في مقاطعة نظر أباد، إيران.[1] يقدر عد...

 

جائزة كيبيك الكبرى للدراجات 2011 طواف العالم للدراجات 2011 السباق 24 من 27   السلسلة طواف العالم للدراجات 2011 رقم السباق 24 سباقات الموسم 27 التاريخ 9 سبتمبر 2011 عدد المراحل 1 عدد الرياضيين 173 (نقطة البداية)،  و76 (نقطة النهاية)  المسافة 201.6 كم الزمن 5 ساعة 03 دقيقة 08 ثانية البلد كند...

Cro – Diskografie Cro (2019) Veröffentlichungen Studioalben 5 Livealben 1 Mixtapes 4 Soundtracks 1 EPs 2 Singles 59 Videoalben 1 Musikvideos 51 Diese Diskografie ist eine Übersicht über die musikalischen Werke des deutschen Rappers Cro und seines Pseudonyms Lyr1c. Den Schallplattenauszeichnungen zufolge hat er bisher mehr als 9,4 Millionen Tonträger verkauft. Er verkaufte alleine in seiner Heimat über neun Millionen Tonträger und zählt damit zu den Interpreten mit den meis...

 

Canadian writer Yves BeaucheminYves Beauchemin in 2012Born (1941-05-26) May 26, 1941 (age 83)Rouyn-Noranda, QuebecNationalityCanadianAlma materUniversité de MontréalOccupationNovelist Yves Beauchemin OQ (born 26 June 1941) is a Quebec novelist. Born in Rouyn-Noranda, Quebec and raised in the village of Clova,[1][2][3] Beauchemin received his degree in French literature and art history at the Université de Montréal in 1965. He taught literature at the Coll...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!