Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Funkčná závislosť je základný koncept v návrhu databázy, ktorý popisuje vzťah medzi atribútmi v tabuľke. Uvádza sa v ňom, že jeden alebo viac atribútov (determinant) jedinečne určuje hodnotu iného atribútu (závislé).
Príklad:
* Zoberme si tabuľku s atribútmi `StudentID`,` Name 'a `Course`.
* Ak „StudentId` jedinečne identifikuje každého študenta, potom` StudentId` funkčne určuje `name` a` kurz`.
* Môžeme to napísať ako `StudentID -> meno, kurz`.
normalizácia je proces organizácie údajov v databáze na zníženie redundancie údajov a zlepšenie integrity údajov. Zahŕňa to rozdelenie veľkej tabuľky na menšie, zvládnuteľnejšie tabuľky založené na funkčných závislostiach.
Normálne formy (NFS):
Existujú rôzne normálne formy (NF), z ktorých každá má zvyšujúce sa úroveň normalizácie:
* 1nf: Každý stĺpec v tabuľke obsahuje atómové hodnoty (nedeliteľné jednotky). Žiadne opakujúce sa skupiny stĺpcov.
* 2nf: V 1NF a žiadny atribút nebuzne nie je závislý iba od časti primárneho kľúča.
* 3nf: V 2NF a žiadny atribút nebuzne nie je závislý od iného atribútu, ktorý nie je Key.
* bcnf (normálna forma Boyce-Codd): V 3NF a každý determinant je kandidátsky kľúč.
* 4nf: V BCNF a neexistuje žiadna viac hodnotená závislosť.
* 5nf: V 4NF a neexistuje žiadna závislosť.
Výhody normalizácie:
* znižuje redundanciu údajov: Rozkladaním tabuliek sa údaje ukladajú iba raz, minimalizujú redundanciu a ukladajú úložný priestor.
* zvyšuje integritu údajov: Normalizácia zabraňuje nekonzistentným aktualizáciám údajov a zaisťuje presnosť údajov.
* Vylepšuje účinnosť dotazovania údajov: Menšie, dobre štruktúrované tabuľky vedú k rýchlejšiemu získaniu a manipulácii.
* uľahčuje údržbu údajov: Zmeny v údajoch sa dajú ľahko a dôsledne vykonať v databáze.
Príklad normalizácie:
Zoberme si tabuľku „Študenti“ s atribútmi:`StudentID`,` Name`, `Course`,` Instructor`, `Department`.
* Nenormalizovaná tabuľka:
| StudentId | Názov | Kurz | Inštruktor Oddelenie |
| --- | --- | --- | --- | --- |
| 1 | John Doe | Matematika | Smith | Matematika |
| 2 | Jane Doe | Fyzika Prof. Jones | Fyzika
| 1 | John Doe | Fyzika Prof. Jones | Fyzika
* 1nf: Pretože každý stĺpec obsahuje atómové hodnoty, tabuľka je už v 1NF.
* 2nf: „Kurz“ závisí od `StudentID`, ktorý je súčasťou primárneho kľúča. Ale „Inštruktor“ a „oddelenie“ sú závislé od „kurzu“, ktorý nie je súčasťou primárneho kľúča. Preto musíme tabuľku rozložiť na dva:
Študenti:
| StudentId | Názov | Kurz |
| --- | --- | --- |
| 1 | John Doe | Matematika |
| 2 | Jane Doe | Fyzika
| 1 | John Doe | Fyzika
kurzy:
| Kurz | Inštruktor Oddelenie |
| --- | --- | --- |
| Matematika | Smith | Matematika |
| Fyzika Prof. Jones | Fyzika
* 3nf: Vyššie uvedené tabuľky sú už v 3NF, pretože žiadny atribút, ktorý nie je Key, nezávisí od iného atribútu, ktorý nie je Key.
Záver:
Funkčná závislosť a normalizácia sú základnými koncepciami v návrhu databázy, ktoré pomáhajú vytvárať štruktúrovaný a efektívny databázový systém. Normalizácia zaisťuje integritu údajov, znižuje redundanciu a zlepšuje výkon. Pochopenie týchto konceptov vám umožňuje vytvárať spoľahlivé a udržiavateľné databázy.