Teorie zpracování dat

28
1 Teorie zpracování dat RELAČNÍ DATOVÝ MODEL

description

Teorie zpracování dat. RELA ČNÍ DATOVÝ MODEL. RELA ČNÍ DATOVÝ MODEL. Cíl : Po prostudování celé kapitoly budete umět definovat relaci, relační schéma a schéma relační databáze, rozumět definicím a na příkladech vysvětlit jednotlivé pojmy, - PowerPoint PPT Presentation

Transcript of Teorie zpracování dat

Page 1: Teorie zpracování dat

1

Teorie zpracování dat

RELAČNÍ DATOVÝ MODEL

Page 2: Teorie zpracování dat

2

RELAČNÍ DATOVÝ MODEL

Cíl: Po prostudování celé kapitoly budete umět

• definovat relaci, relační schéma a schéma relační databáze, rozumět definicím a na příkladech vysvětlit jednotlivé pojmy,

• vyhledávat informace v relační databázi pomocí dotazovacího jazyka procedurálního – relační algebry i deskriptivního jazyka SQL,

• definovat pojem funkční závislost mezi podmnožinami atributů, rozumět mu a bezpečně rozeznávat funkční závislosti v praktických úlohách,

• definovat pomocí normálních forem i vysvětlit na příkladech, co je dobře navržené relační schéma a na základě toho navrhnout optimální strukturu relační databáze.

Page 3: Teorie zpracování dat

3

RELAČNÍ DATOVÝ MODEL

5.1. Základní pojmy RDM

Definice 5.1.

Relační schéma R je výraz tvaru R(A, f), kde R je jméno schématu, A = {A1,

A2,..., An} je konečná množina jmen atributů, f je zobrazení přiřazující každému

jménu atributu Ai neprázdnou množinu, kterou nazýváme doménou atributu Di, tedy

f(Ai) = Di.

Definice 5.2.

Relace R s relačním schématem R je konečná podmnožina kartézského součinu domén Di, příslušejících jednotlivým atributům Ai, tedy

R D1 x D2 x ...x Dn.

Číslo n nazýváme stupněm relace, o relaci R říkáme, že je typu R nebo že je instancí relačního schématu R.

Page 4: Teorie zpracování dat

4

RELAČNÍ DATOVÝ MODEL

Příklad 5.1.: Typ entity Zam(jméno, rodcis, kat, plat, fce)

Jméno relačního schématu: Zam

Množina jmen atributů: A = {jméno, rodcis, kat, plat, fce}

Domény: Djméno … množina možných jmen

Drodcis … množina 10ciferných čísel, kde …

Zobrazení: f(jméno) = Djméno

f(plat) = Dplat

Relační schéma: Zam ({jméno, rodcis, kat, plat, fce}, f)

Page 5: Teorie zpracování dat

5

RELAČNÍ DATOVÝ MODEL

Příklad 5.2.: Relační schéma: Zam ({jméno, rodcis, kat, plat, fce}, f)

Relace: Zam Djmeno x Drodcis x Dkat x Dplat x Dfce

Zam ={(Čáp,1234567890,433,4000,docent),

(Holub,23455667788,456,2000,asistent),

(Kos,6655443322,455,2500,asistent),

(Orel,8877665544,454,5000,docent),

…}

Page 6: Teorie zpracování dat

6

RELAČNÍ DATOVÝ MODEL Příklad 5.3.: Relační schéma: Zam({jméno, rodcis, kat, plat, fce}, f)

Zobrazení relace tabulkou (modře kartézský součin, bíle prvky relace)

Jméno rodcis kat plat fce

Anděl Jiří 12345 456 3000 odb.as.

Anděl Jiří 12345 456 3000 doc

Anděl Jiří 12345 456 3000 prof

Anděl Jiří 12345 456 4000 odb.as.

...

Beneš Jan 12345 456 3000 odb.as.

Beneš Jan 12345 456 3000 doc

Beneš Jan 12345 456 3000 prof

...

Žižka Karel 34567 567 8000 prof

...

Žižka Karel 99999 999 10000 prof

Page 7: Teorie zpracování dat

7

RELAČNÍ DATOVÝ MODEL definice pojmů

Definice

Schéma relační databáze je konečná množina relačních schémat R1(A1,f1),

R2(A2,f2),. . . , Rm(Am,fm).

Definice

Relační databází v daném časovém okamžiku je konečná množina relací R1, R2, ..., Rm, tzv. aktuálních relací, kde Ri je typu Ri.

Page 8: Teorie zpracování dat

8

RELAČNÍ DATOVÝ MODEL vlastnosti

• relační databáze odráží část reality odpovídající aplikačním úlohám, není tedy prvkem relace jakýkoli prvek z

D1 x D2 x ... x Dn

ale jen prvky vyhovující zadaným podmínkám vyjádřeným jako integritní omezení (IO pro objekty = které objekty z reality mají být do relace zahrnuty).

• o množině relací (relační databázi) R1, ..., Rk, vyhovujících daným IO

řekneme, že je konzistentní

• databázové relace jsou proměnné v čase

• změny jsou realizovány 4 databázovými operacemi

Page 9: Teorie zpracování dat

9

RELAČNÍ DATOVÝ MODEL vlastnosti

Z definice relace vyplývají tyto jejich tabulkové vlastnosti

• homogenita sloupců (prvky domény)

• každý údaj (hodnota atributu ve sloupci) je atomickou

položkou

• na pořadí řádků a sloupců nezáleží (jsou to množiny prvků/atributů)

• každý řádek tabulky je jednoznačně identifikovatelný

hodnotami jednoho nebo několika atributů (primárního

klíče)

Page 10: Teorie zpracování dat

10

RELAČNÍ DATOVÝ MODEL

Realizace vazeb v relačním modelu

Relační model obecně realizuje vazbu pomocí relace, v níž každou entitu do vazby vstupující zastupuje její primární klíč.

V některých případech (vazby 1:1, 1:M) však není nutné použít samostatnou vazební tabulku, ale stačí doplnění tabulky na straně M o další atribut - cizí klíč.

vazba_1kN.swf

vazba_1k1.swf

vazba_MkN.swf

vazba_unarni.swf

vazba_ternarni.swf

Page 11: Teorie zpracování dat

11

RELAČNÍ DATOVÝ MODEL 2 úlohy

2 základní úlohy (relačního) modelu

1. Návrh „správné“ struktury databáze bez redundancí – funkční závislosti, normální formy

2. Vyhledávání informací z databáze – (dotazovací) relační jazyky

Page 12: Teorie zpracování dat

12

Relační jazyky• JMD je prostředek pro změny obsahu databáze, obsahuje

4 databázové operace: INSERT, SELECT, UPDATE, DELETE

Jazyky pro formulaci požadavků na výběr dat z relační databáze - dotazovací jazyky - jsou 2 typů:

1. jazyky založené na relační algebře, kde jsou výběrové požadavky vyjádřeny jako posloupnost speciálních operací prováděných nad daty; je tedy zadán algoritmus, jak vyhledat požadované informace;

2. jazyky založené na predikátovém kalkulu, které požadavky na výběr zadávají jako predikát charakterizující vybranou relaci; je úlohou překladače jazyka nalézt odpovídající algoritmus;

tyto jazyky se dále dělí na - n-ticové relační kalkuly

- doménové relační kalkuly

• Oba typy ekvivalentní možnostmi formulace výběrových podmínek.

• Skutečně realizované jazyky mají bohatější syntaxi a další funkce.

Page 13: Teorie zpracování dat

13

Relační algebra

Relační algebra (RA) je dotazovací jazyk pracující s celými relacemi.

Operátory RA se aplikují na relace, výsledkem jsou opět relace.

Pro operace , , - musí být relační schémata shodná.

Základní množinové operace relační algebry pro relace R a S:

• sjednocení relací téhož stupně R S = {x | x R x S}

• průnik relací R S = {x | x R x S}

• rozdíl relací R - S = {x | x R x S}

• kartézský součin relace R stupně m a relace S stupně n

R x S = {rs | r R s S}, kde rs = {r1,...,rm,s1,...sn}

Page 14: Teorie zpracování dat

14

Relační algebra

Příklad 1. Jsou dány relace R, S, určete T = R S

Page 15: Teorie zpracování dat

15

Relační algebra

Příklad 2. Jsou dány relace R, S, určete T = R S

Page 16: Teorie zpracování dat

16

Relační algebra

Příklad 3. Jsou dány relace R, S, určete T = R S

Page 17: Teorie zpracování dat

17

Relační algebra

Příklad 4. Jsou dány relace R, S, určete T = R S

Page 18: Teorie zpracování dat

18

Relační algebra

Příklad 5. Jsou dány relace R, S, určete T = R - S

Page 19: Teorie zpracování dat

19

Relační algebra příklad relací X, Y

X Y X x Y

A B C C D E A B X.C Y.C D E

3 s 1 2 ff s 3 s 1 2 ff s

5 c 2 2 gg t 3 s 1 2 gg t

7 t 3 3 hh c 3 s 1 3 hh c

6 jj d 3 s 1 6 jj d

5 c 2 2 ff s

5 c 2 2 gg t

5 c 2 3 hh c

5 c 2 6 jj d

7 t 3 2 ff s

7 t 3 2 gg t

7 t 3 3 hh c

7 t 3 6 jj d

Page 20: Teorie zpracování dat

20

Relační algebra

Další operace jsou relační:

• projekce relace R stupně n na komponenty B {A1,...An},

R[B] = {r[B] | r R}, kde R[B] = (ri1, . . . , rim) pro r R

• selekce (výběr řádků) z relace R podle podmínky P je

R(P) = {r | r R P(r)}

• spojení relací R s atributy A a S s atributy B dle relačního operátoru

= {<, =, >,...} v atributu Ai relace R a v atributu Bj relace S je

R[AB]S = {rs | r R s S r[Ai] s[Bj]}

R[A*B]S = {R[A=B]S} pro operátor = , bez duplicitního sloupce

• přirozené spojení relací R(A) a S(B)

R[*]S = ((RxS)[P])[A1,...,Ak,C1,..,Cm+n-k]

kde ze součinu RxS se vyberou řádky se stejnými hodnotami u

stejnojmenných atributů obou relací R a S

Page 21: Teorie zpracování dat

21

Relační algebra

Příklad 6. Z tabulky R vyberte atributy B a C. Zapíšeme T = R [ B, C ].

Page 22: Teorie zpracování dat

22

Relační algebra

Příklad 7. Z tabulky S vyberte atributy A a C. Zapíšeme T = S [A, C].

Page 23: Teorie zpracování dat

23

Relační algebra

Příklad 8. Z tabulky R vyberte řádky, pro které platí podmínka A>2. Zapisujeme

T = R ( A > 2 ).

Page 24: Teorie zpracování dat

24

Relační algebra příklad relací X, Y

X Y X x Y

A B C C D E A B X.C Y.C D E

3 s 1 2 ff s 3 s 1 2 ff s

5 c 2 2 gg t 3 s 1 2 gg t

7 t 3 3 hh c 3 s 1 3 hh c

6 jj d 3 s 1 6 jj d

5 c 2 2 ff s

X [A >C ] Y 5 c 2 2 gg t

A B C D E 5 c 2 3 hh c

5 c 2 ff s 5 c 2 6 jj d

5 c 2 gg t 7 t 3 2 ff s

7 t 3 hh c 7 t 3 2 gg t

7 t 3 3 hh c

7 t 3 6 jj d

Page 25: Teorie zpracování dat

25

Relační algebra příklad relací X, Y

X Y X x Y

A B C C D E A B X.C Y.C D E

3 s 1 2 ff s 3 s 1 2 ff s

5 c 2 2 gg t 3 s 1 2 gg t

7 t 3 3 hh c 3 s 1 3 hh c

6 jj d 3 s 1 6 jj d

5 c 2 2 ff s

X [*] Y 5 c 2 2 gg t

A B C D E 5 c 2 3 hh c

5 c 2 ff s 5 c 2 6 jj d

5 c 2 gg t 7 t 3 2 ff s

7 t 3 hh c 7 t 3 2 gg t

7 t 3 3 hh c

7 t 3 6 jj d

Page 26: Teorie zpracování dat

26

Relační algebra

Příklad: Mějme relace Učitel U (ČU, jméno, fce, plat) Úvazek V (ČU, ČP, hodin)

Najděte čísla učitelů, kteří

vyučují alespoň jeden předmět

nevyučují žádný předmět

vyučují předmět P2

vyučují alespoň jeden předmět, ale ne předmět P2

nevyučují předmět P2

vyučují jiný předmět, než P2

vyučují pouze předmět P2

Najděte jména učitelů, kteří

vyučují alespoň jeden předmět

Page 27: Teorie zpracování dat

27

Relační algebra

Příklad: Mějme relace Učitel U (ČU, jméno, fce, plat) Úvazek V (ČU, ČP, hodin)

Najděte čísla učitelů, kteří

vyučují alespoň jeden předmět V[ČU]

nevyučují žádný předmět U[ČU] - V[ČU]

vyučují předmět P2 (V(ČP = 'P2'))[ČU]

vyučují alespoň jeden předmět, ale ne předmět P2

V[ČU] - ((V(ČP = 'P2'))[ČU])

nevyučují předmět P2 U[ČU] - ((V(ČP = 'P2'))[ČU])

vyučují jiný předmět, než P2 (V(ČP <> 'P2'))[ČU]

vyučují pouze předmět P2 ((V(ČP = 'P2'))[ČU]) - ((V(ČP <> 'P2'))[ČU])

Najděte jména učitelů, kteří vyučují alespoň jeden předmět

(V[ČU][*]U)[jméno]

Page 28: Teorie zpracování dat

28

Relační algebra

Mezi základní databázové operace patří mimo vyhledávání dále vkládání, rušení a modifikace jednotlivých prvků relace.

Operace vložení nového prvku relace se provádí speciálním příkazem

INSERT INTO R VALUES (hod1, hod2, ..., hodn)

Operace rušení prvků se provádí ve dvou krocích. Nejprve se formuluje výběr prvků určených ke zrušení (operací vyhledání) a poté se speciální operací pro výmaz prvky z relace zruší. Obě operace se často zapíší jediným příkazem.

DELETE FROM R WHERE vyhledávací_výraz

Operace modifikace se opět provádí ve dvou krocích: vyhledání prvků pro modifikaci a po změně hodnot jejich opětovné zařazení.

UPDATE R SET atrib=hodn WHERE vyhledávací_výraz