Procházet otázky :: SZZ na MFF UK

#

- Hlavní strana
- Okruhy
- Projít
- Stáhnout
- Co je potřeba
- Chci přispět
- Kredity

Hledat:

## Prohlížení státnicových textů

### Normální formy

Normalizace, anomálie

Normalizace databází je technika návrhu relačních databázových tabulek, pri které se minimalizují duplicity informací - a zamezuje se tak nekonzistentnosti dat. Stupně normalizace se popisují pomocí normálních forem - čím vyšší forma, tým vyšší striktnost...

Problémy řešené normalizací:

- update anomaly - př.: tabulka (člověk, adresa, skill); kdyby se nevykonal update správně, může tabulka zůstat v nekonzistentním stavu (např. by se mohly změnit jen některé adresy jednoho člověka)
- insertion anomaly - za jistých okolností by se některá fakta nedala zaznamenat, např. v tabulce (fakulta, datum založení, kurz) můžeme zaznamenat jen data pro fakulty, které mají kurzy...
- deletion anomaly - za jistých okolností by se mohlo stát, že vymazání některých faktů by způsobilo vymazání dat reprezentujících jiná fakta. V předchozí tabulce bude fakulta vymazána úplně, když se vzdá všech kurzů.

Ideálně by relační databáze měla být navržena tak, aby vylučovala možnost takových anomalií. Normalizace obvykle zahrňuje dekomponování nenormalizované tabulky na dvě nebo více tabulek takových, že po jejich spojení (join) dostaneme všechny původní informace.

Abychom mohli definovat normální formy, potřebujeme znát funkční závislosti jednotlivých atributů entit relační databáze a vědět, které atributy jsou klíčové a které ne.

Definice (Funkční závislosti)

Řekneme, že atribut B je funkčně závislý na atributu A (značíme ), jestliže pro každou hodnotu atributu A existuje právě jedna hodnota atributu B. Rozšířené funkční závislosti se definují pro množinu atributů (pro každou -tici atributů z nějaké množiny existuje právě jedna hodnota závislého(závislých) atributu(atributů)).

Funkční závislosti splňují tzv. Armstrongova pravidla, což zahrnuje pro množiny atributů :

1. triviální závislost:
2. transitivitu:
3. kompozici:
4. dekompozici:

Definice (Klíč)

Nadklíčem, někdy též superklíčem, schématu rozumíme každou podmnožinu množiny , na níž funkčně závisí. Jinak řečeno nadklíč je množina atributů, která jednoznačně určuje řádek tabulky.

Klíč, nebo také potenciální klíč(candidate key), schématu je takový nadklíč schématu , jehož žádná vlastní podmnožina není nadklíčem . Čili minimální nadklíč.

Každý atribut, který je obsažen alespoň v jednom potenciálním klíči se nazývá klíčový, ostatní atributy jsou neklíčové.

Definice (Normální formy)

- První normální forma
  - Tabulka je v první normální formě, jestliže lze do každého pole dosadit pouze jednoduchý datový typ (jsou dále nedělitelné). To zahrnuje i neexistenci více sloupců tabulky se stejným druhem obsahu:

- Druhá normální forma
  - Existuje klíč a všechna neklíčová pole jsou funkcí celého klíče (a tedy ne jen jeho částí).

- Třetí normální forma
  - Tabulka je ve třetí normální formě, jestliže každý neklíčový atribut není transitivně závislý na žádném klíči schématu (resp. každý neklíčový atribut je přímo závislý na klíči schématu) neboli je-li ve druhé normální formě a zároveň neexistuje jediná závislost neklíčových sloupců tabulky.

  Atribut hireDate je sice funkčně závislý na klíči deptID, ale jen proto, že hireDate závisí na managerID, které závisí na deptID.
- Boyce-Coddova normální forma
  - Pro každou netriviální závislost platí, že obsahuje klíč schématu ( je nadklíč).