Relační datový model Základní ideje RMD důsledně odděluje data, která jsou chápána jako relace, od jejich implementace. Pro manipulaci s daty jsou k dispozici dva silné prostředky - relační kalkul a relační algebra. Pro omezení redundance dat v relační databázi jsou navrženy pojmy umožňující normalizovat relace.
Definice RMD Mějme množiny D1, D2, D3,....... Dn. Z každé vybereme 1 prvek → vytvoříme uspořádanou n-tici. Množina všech n-tic tvoří kartézský součin. Relace je každá podmnožina kartézského součinu. Z hlediska databázových systémů jsou množiny D1, D2, D3,....... Dn množiny hodnot atributů a označují se jako domény.
RMD má jediný konstrukt - databázovou relaci. Celá složitá realita je transformována do relací. Toto je jedno z velkých omezení relační databázové technologie. Otázka: Je to možné, je to únosné? Jak dál…
V čem se databázová relace liší od matematické? Databázová relace je vybavena pomocnou strukturou, které se říká schéma relace. Schéma relace se skládá ze jména relace, jmen atributů a domén. Prvky domén, ze kterých se berou jednotlivé komponenty prvků relace, jsou atomické hodnoty. Tomuto omezení se říká 1.normální forma relací (1NF).
Počet n-tic udává kardinalita relace Zápis schématu relace Schéma relace lze zapsat: R(A1:D1,....An:Dn) Prvkům relace se říká n-tice (také instance) n určuje řád relace Počet n-tic udává kardinalita relace
Zápis schématu relační databáze Schéma relační databáze je dvojice (R,I), kde R je množina schémat relací, I je množina integritních omezení.
Integritní omezení Doménové Entitní Referenční
Doménové IO Doménové IO přiřazuje pro každý atribut relace předem definovanou doménu jeho hodnot. Doménové IO je definováno: datovým typem atributu podmínkami platnosti (logickými formulemi)
Entitní IO Entitní IO zabezpečuje Primární klíč (PK) relace. Primární klíč je množina atributů K A, kde A je množina všech atributů relace R, jejichž hodnoty jednoznačně určují n-tice (instance) relace R. K je minimální v tom smyslu, že nelze z K odebrat žádný atribut, aniž by to narušilo identifikační vlastnost. Z podstaty RMD vyplývá, že každá relace má primární klíč. Protože relace jsou množiny, nesmí relace obsahovat duplicitní n-tice (instance).
Referenční IO Referenční integrita je omezení, které omezuje vztahy mezi daty ve dvou relacích. Atribut, kterého se referenční integrita týká se nazývá cizí klíč (foreign key - FK). Jestliže relace obsahuje cizí klíč, její n-tice jsou závislé na existenci n-tic v nadřazené relaci.Hodnota FK se musí vyskytovat jako hodnota PK v nadřazené relaci.
Podmínky pro relační tabulky Všechny hodnoty v tabulce musí být elementární (podmínka 1.NF). Sloupce mohou být v libovolném pořadí. Řádky mohou být v libovolném pořadí. Sloupce musí být homogenní = ve sloupci musí být údaje stejného typu (doménové integritní omezení). Každému sloupci musí být přiřazeno jednoznačné jméno (tzv. atribut). V relační tabulce nesmí být dva zcela stejné řádky. tzn., že každý řádek je jednoznačně rozlišitelný (entitní integritní omezení).
Funkční závislosti atributů Nechť R(A:D) je relační schéma, X A, Y A jsou jednoduché nebo složené atributy. Y je funkčně závislý na atributu X, značíme ( X Y ), platí-li pro každou instanci relace R, že pro každou hodnotu atributu X existuje nejvýše jedna hodnota atributu Y.
Funkční závislosti atributů Atribut Y je úplně funkčně závislý na složeném atributu X, je-li na X funkčně závislý a zároveň není funkčně závislý na žádné z jeho složek.
Funkční závislosti atributů Nechť X, Y, Z jsou atributy (jednoduché nebo složené) daného relačního schématu a nechť mezi dvojicemi atributů platí: X Y Y Z (Y X). Pak je atribut Z tranzitivně závislý na atributu X.
Normální formy relací Relace R je v 1 NF, jestliže jsou všechny její atributy atomické, tj. dále nedělitelné. Toto omezení je příliš silné a stává se hlavní nevýhodou relačních databází.
Normální formy relací Relace R je v 2 NF, je-li v první normální formě (1 NF) a jestliže pro každý neklíčový atribut platí, že je úplně funkčně závislý na primárním klíči.
Normální formy relací Relace R je v 3 NF, je-li ve 2 NF a platí-li, že žádný neklíčový atribut není tranzitivně závislý na žádném klíči relace R.
Normální formy relací Relace R je v Boyce-Coddově NF ( BCNF), je-li v 1 NF a platí-li pro každou funkční závislost X A , která není triviální, že X je klíčem v R a A je neklíčový atribut.
Příklady normálních forem (1NF) Stát Město Název auta Počet ČR Mladá Boleslav Škoda Fabia 100 150 Německo Kolín n/R Opel Vectra 20 80 25 Francie Paříž Renault 24
Příklady normálních forem (2NF) Název Stát Město Název auta Počet D1 ČR Mladá Boleslav Škoda Fabia 100 150 D3 Německo Kolín n/R Opel Vectra 20 80 25 D6 Francie Paříž Renault 24
Příklady normálních forem (2NF) Číslo Typ Druh Výška 1 Smrk Jehličnatý 5 2 Jedle 3 12 4 Dub Listnatý 8
Příklady normálních forem (2NF) Funkční závislosti atributů: Číslo Typ Číslo Druh Číslo Výška Typ Druh Číslo Typ & Typ Druh ↔ Číslo Druh Relace není v 3NF – tranzitivní závislost Aby byla relace v 3NF: Dekompozicí relace v 2NF dostaneme relace v 3NF.
Příklady normálních forem (3NF) Číslo Typ Výška 1 Smrk 5 2 Jedle 3 12 4 Dub 8
Příklady normálních forem (3NF) Typ Druh Smrk Jehličnatý Jedle Dub Listnatý
Příklady normálních forem (BCNF) Odstraňuje závislosti kandidátů primárního klíče. Zaměstnanec (Číslo_zam, RČ, Jméno, Příjmení, Funkce) Kandidáti PK: Číslo_zam a RČ Funkční závislosti: Kromě všech závislostí neklíčových atributů na kandidátech PK, ex. i závislost kandidátů PK navzájem. Relace není v CBNF. Dekompozice: Zaměstnanec (Číslo_zam, Jméno, Příjmení, Funkce) a RČ_zaměstnanců (Číslo_zam, RČ) Obě relace jsou v BCNF
Dedukce funkčních závislostí Nechť R je relační schéma a A, B, C je podmnožina jeho atributů. Dále předpokládejme funkční závislosti: A B a B C. Z těchto závislostí lze předpokládat A C (tranzitivita). Označme F jako množinu funkčních závislostí pro R (A B a B C) a X Y jako libovolnou funkční závislost. Řekneme-li, že F logicky implikuje X Y, pak každý prvek relačního schématu R, který splňuje závislosti v F, splňuje i závislost X Y a zapisujeme F = X Y V našem případě relačního schématu R pak tuto skutečnost zapíšeme: A B, B C= A C
Uzávěr množiny funkčních závislostí F+ je uzávěrem F tehdy, platí-li, že všechny závislosti v F+ jsou logickými důsledky v F. A zapisujeme: F+ = X Y F = X Y
Kandidáti primárního klíče a funkční závislosti Mějme schéma R(A1,A2,....,An) a funkční závislosti F. Nechť X je podmnožina {A1,A2,....,An}. Pak o X lze říci, že je kandidátem primárního klíče v R, jestliže: 1. X A1A2....,An je v F+ Závislost všech atributů A1,A2,....,Anna atributu X je daná nebo logicky vyplývá. 2. Neexistuje Y X, pro které by platilo Y A1A2....,An v F+.
Armstrongovy axiomy 1. Reflexivita Jestliže Y X U, pak závislost X Y je logicky implikována. Na složeném atributu A1A2,....An je funkčně závislý každý atribut Ai, který je jeho složkou. 2. Augmentace Jestliže platí X Y ve schématu R a Z je podmnožinou atributů U, pak taky platí: XZ YZ (XZ je zkrácené označení X Z). 3. Tranzitivita Jestliže platí X Y a zároveň Y Z, pak taky platí X Z
Armstrongovy axiomy Příklad: Mějme schéma R(A,B,C,D) s funkčními závislostmi A C, B D. Zvolme primárním klíčem složený atribut AB jako jediný. Dokažte, že AB je jediným kandidátem primárního klíče. 1. A C daná závislost 2. AB ABC augmentace atributy AB 3. B D daná závislost 4. ABC ABCD augmentace atributy ABC 5. AB ABCD tranzitivita Všechny atributy relačního schématu R jsou závislé na klíči AB a přitom nejsou závislé na jeho složkách A, B.
Dodatečná deduktivní pravidla 1. Pravidlo spojení X Y, X Z = X YZ 2. Pravidlo pseudotranzitivity X Y, WY Z = WX Z 3. Dekompoziční pravidlo Jestliže X Y & Z Y, pak X Z
Dodatečná deduktivní pravidla - důkaz Pravidlo 1 X Y daná závislost X XY augmentace X X Z daná závislost XY YZ augmentace Y X XY & X Y YZ implikuje X YZ Pravidlo 2 WX WY augmentace W WY Z daná závislost WX Z tranzitivita Pravidlo 3 Y Z vyplývá z reflexivity X Z tranzitivita
Dodatečná deduktivní pravidla Příklad: Mějme schéma R(A,B,C) a F = A B, B C. Určete F+. Řešení: 1. Za X dosaďte postupně všechny atributy, obsahující A. ABC AB dekompoziční pravidlo A C tranzitivita, vyplývající z F AB BC augmentace B ABC BC tranzitivita 2. Za X dosaďte postupně všechny atributy, které obsahují B, ale neobsahují A. BC B dekompoziční pravidlo B C předpoklad B 0 reflexivita 3. Za X dosaďte všechny atributy, které obsahují C, ale neobsahují ani A, ani B. C C reflexivita C 0 reflexivita 0 0 reflexivita