Čo je funkčná závislosť?
Funkčná závislosť (FD) je obmedzenie, ktoré určuje vzťah jedného atribútu k inému atribútu v systéme správy databáz (DBMS). Funkčná závislosť pomáha udržiavať kvalitu údajov v databáze. Zohráva zásadnú úlohu pri hľadaní rozdielov medzi dobrým a zlým dizajnom databázy.
Funkčná závislosť je označená šípkou „→“. Funkčnú závislosť X na Y predstavuje X → Y. Poďme si na príklade porozumieť funkčnej závislosti v DBMS.
Príklad:
Číslo zamestnanca | Meno zamestnanca | Plat | Mesto |
1 | Dana | 50 000 | San Francisco |
2 | Františka | 38000 | Londýn |
3 | Andrew | 25000 | Tokio |
V tomto príklade, ak poznáme hodnotu čísla zamestnanca, môžeme získať meno zamestnanca, mesto, plat atď. Týmto môžeme povedať, že mesto, meno zamestnanca a plat sú funkčne závislé od čísla zamestnanca.
V tomto návode sa dozviete:
- Kľúčové výrazy
- Pravidlá funkčných závislostí
- Typy funkčných závislostí v DBMS
- Závislosť viacerých hodnôt v DBMS
- Triviálna funkčná závislosť v DBMS
- Netriviálna funkčná závislosť v DBMS
- Tranzitívna závislosť v DBMS
- Čo je normalizácia?
- Výhody funkčnej závislosti
Kľúčové výrazy
Tu sú niektoré kľúčové pojmy pre funkčnú závislosť v databáze:
Kľúčové výrazy | Popis |
Axiom | Axioms je sada odvodzovacích pravidiel používaných na odvodenie všetkých funkčných závislostí na relačnej databáze. |
Rozklad | Je to pravidlo, ktoré naznačuje, že ak máte tabuľku, ktorá obsahuje dve entity, ktoré sú určené rovnakým primárnym kľúčom, mali by ste zvážiť ich rozdelenie do dvoch rôznych tabuliek. |
Závislé | Je zobrazený na pravej strane diagramu funkčných závislostí. |
Rozhodujúci | Je zobrazený na ľavej strane diagramu funkčnej závislosti. |
Únie | Navrhuje sa, že ak sú dve tabuľky oddelené a PK je rovnaká, mali by ste zvážiť ich umiestnenie. spolu |
Pravidlá funkčných závislostí
Ďalej sú uvedené tri najdôležitejšie pravidlá pre funkčnú závislosť v databáze:
- Reflexné pravidlo -. Ak X je množina atribútov a Y je_subset_of X, potom X má hodnotu Y.
- Pravidlo zväčšenia: Keď x -> y platí a c je nastavený atribút, potom platí aj ac -> bc. To je pridanie atribútov, ktoré nezmenia základné závislosti.
- Pravidlo prechodnosti: Toto pravidlo je veľmi podobné prechodnému pravidlu v algebre, ak platí x -> y a y -> z, potom platí aj x -> z. X -> y sa volá tak funkčne, že určuje y.
Typy funkčných závislostí v DBMS
V DBMS existujú hlavne štyri typy funkčnej závislosti. Nasledujú typy funkčných závislostí v DBMS:
- Závislosť s viacerými hodnotami
- Triviálna funkčná závislosť
- Netriviálna funkčná závislosť
- Tranzitívna závislosť
Závislosť viacerých hodnôt v DBMS
Závislosť s viacerými hodnotami sa vyskytuje v situácii, keď v jednej tabuľke existuje viac nezávislých atribútov s viacerými hodnotami. Závislosť s viacerými hodnotami je úplné obmedzenie medzi dvoma množinami atribútov vo vzťahu. Vyžaduje, aby boli vo vzťahu prítomné určité n-tice. Zvážte nasledujúci príklad závislostí s viacerými hodnotami, ktorým porozumiete.
Príklad:
Car_model | Maf_rok | Farba |
H001 | 2017 | Kovové |
H001 | 2017 | zelená |
H005 | 2018 | Kovové |
H005 | 2018 | Modrá |
H010 | 2015 | Kovové |
H033 | 2012 | Šedá |
V tomto príklade sú maf_year a color navzájom nezávislé, ale závisia od car_model. V tomto príklade sa o týchto dvoch stĺpcoch hovorí, že sú viachodnotové, čo závisí od car_model.
Táto závislosť môže byť znázornená takto:
auto_model -> maf_rok
auto_model-> farba
Triviálna funkčná závislosť v DBMS
Triviálna závislosť je sada atribútov, ktoré sa nazývajú triviálne, ak je v nich atribút zahrnutý.
Takže X -> Y je triviálna funkčná závislosť, ak Y je podmnožinou X. Poďme to pochopiť pomocou príkladu Trivial Functional Dependency.
Napríklad:
Emp_id | Emp_name |
AS555 | Harry |
AS811 | George |
AS999 | Kevin |
Zvážte túto tabuľku s dvoma stĺpcami Emp_id a Emp_name.
{Emp_id, Emp_name} -> Emp_id je triviálna funkčná závislosť, pretože Emp_id je podmnožinou parametrov {Emp_id, Emp_name}.
Netriviálna funkčná závislosť v DBMS
Funkčná závislosť, ktorá sa tiež nazýva netriviálna závislosť, nastane, keď platí A-> B, kde B nie je podmnožinou A. Vo vzťahu, ak atribút B nie je podmnožinou atribútu A, považuje sa za netriviálnu závislosť.
Spoločnosť | Generálny riaditeľ | Vek |
Microsoft | Satya Nadella | 51 |
Sundar Pichai | 46 | |
Apple | Tim Cook | 57 |
Príklad:
(Spoločnosť} -> {CEO} (ak poznáme spoločnosť, poznáme meno generálneho riaditeľa)
Generálny riaditeľ však nie je podmnožinou spoločnosti, a preto ide o netriviálnu funkčnú závislosť.
Tranzitívna závislosť v DBMS
Tranzitívna závislosť je typ funkčnej závislosti, ktorá sa stane, keď t je nepriamo tvorené dvoma funkčnými závislosťami. Poďme to pochopiť s nasledujúcim príkladom tranzitívnej závislosti.
Príklad:
Spoločnosť | Generálny riaditeľ | Vek |
Microsoft | Satya Nadella | 51 |
Sundar Pichai | 46 | |
Alibaba | Jack Ma | 54 |
{Company} -> {CEO} (ak poznáme kompay, vieme aj meno jeho generálneho riaditeľa)
{CEO} -> {Age} Ak poznáme generálneho riaditeľa, poznáme aj jeho vek
Preto podľa pravidla pravidla tranzitívnej závislosti:
{Company} -> {Age} by mal platiť, to má zmysel, pretože ak poznáme názov spoločnosti, môžeme poznať jeho vek.
Poznámka: Musíte si uvedomiť, že prechodná závislosť sa môže vyskytnúť iba vo vzťahu k trom alebo viacerým atribútom.
Čo je normalizácia?
Normalizácia je metóda organizovania údajov v databáze, ktorá vám pomôže vyhnúť sa anomálii redundancie, vkladania, aktualizácie a odstránenia údajov. Je to proces analýzy schém vzťahov na základe ich rôznych funkčných závislostí a primárneho kľúča.
Normalizácia je vlastná teórii relačných databáz. Môže to mať za následok duplikovanie rovnakých údajov v databáze, čo môže mať za následok vytvorenie ďalších tabuliek.
Výhody funkčnej závislosti
- Funkčná závislosť zabráni nadbytočnosti údajov. Rovnaké údaje sa preto neopakujú na viacerých miestach v databáze
- Pomáha vám udržiavať kvalitu údajov v databáze
- Pomáha vám definovať významy a obmedzenia databáz
- Pomôže vám to identifikovať zlé vzory
- Pomôže vám zistiť fakty týkajúce sa návrhu databázy
Zhrnutie
- Funkčná závislosť je, keď jeden atribút určuje iný atribút v systéme DBMS.
- Axióm, rozklad, závislý, determinant, zväzok sú kľúčové pojmy pre funkčnú závislosť
- Štyri typy funkčnej závislosti sú: 1) viachodnotové 2) triviálne 3) netriviálne 4) prechodné
- Závislosť s viacerými hodnotami sa vyskytuje v situácii, keď v jednej tabuľke existuje viac nezávislých atribútov s viacerými hodnotami
- Triviálna závislosť nastane, keď je množina atribútov, ktorá sa nazýva triviálna, ak je v nej atribút zahrnutý.
- Netriviálna závislosť nastane, keď platí A-> B, kde B nie je podmnožinou A
- Tranzitív je typ funkčnej závislosti, ku ktorej dochádza, keď je nepriamo tvorený dvoma funkčnými závislosťami
- Normalizácia je metóda organizovania údajov v databáze, ktorá vám pomôže zabrániť redundancii údajov