+ All Categories
Home > Documents > Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990...

Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990...

Date post: 29-Jun-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
51
Databáze I Přednáška 2
Transcript
Page 1: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Databáze I

Přednáška 2

Page 2: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Transformace E -R modelu do relačního modelu

(speciality)

• zaměříme se na dva případy z předmětu Analýza a modelování dat– reprezentace entitního podtypu

• hierarchie ISA

– reprezentace výlu čných vztah ů

• a ještě– reprezentace n-árního vztahu (n>2) a vztahu

mezi entitami téhož entitního typu

Page 3: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Reprezentace entitního podtypu

OSOBA

RČ JMÉNO

ŽENAMUŽ

DELKA_PRAXEVĚK

• 3 možnosti transformace

Page 4: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

1. Jedna relace

• relace obsahující atributy zdroje relace a všech podtypů, speciální atribut rozlišující podtyp, event. cizí klíče ze vztahů 1:N, 1:1

OSOBA(RČ,JMÉNO,TYP_OS, VĚK, DELKA_PRAXE)

– jedna z hodnot atributů VĚK nebo DÉLKA_PRAXE budou u každého prvku relace (záznamu) mít hodnotu NULL

Page 5: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

2. Relace pouze pro podtypy

• relace pro každý podtyp, obsahující atributy podtypu a atributy zdroje hierarchie (nadtypu) včetně atributu odpovídající klíči zdroje

MUŽ(RČ,JMÉNO,VĚK)ŽENA(RČ,JMÉNO,DELKA_PRAXE)

Page 6: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

3. Relace pro všechny typyv hierarchii

• relace pro každý nadtyp a podtyp, obsahující klíče zdroje a pouze vlastní atributy

OSOBA(RČ,JMÉNO)MUŽ(RČ,VĚK)

ŽENA(RČ,DELKA_PRAXE)

Page 7: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Reprezentace slabého entitního typu

FILM(JMÉNO)KOPIE(ČÍSLO_KOPIE,JMÉNO)

FILM(0,n)(1,1)

KOPIE JE_OD

ČÍSLO_KOPIE JMÉNO

Page 8: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Reprezentace výlu čného vztahu

• 2 možnosti transformace

• nejprve obecně

Page 9: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

1. Pomocí spole čných domén

• pouze, mají-li identifikační klíče K2 a K3 stejnou doménu

E1(K1,ID,K,A)E2(K2,B)E3(K3,C)

– ID je atribut rozlišující typ vztahu, K je atribut pro hodnoty typu K2, K3

Page 10: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

2. Pomocí cizích klí čů

• nemají-li K2 a K3 společné domény, je nutné mít v E1 dva cizí klíče

E1(K1,K2,K3,A)E2(K2,B)E3(K3,C)

– v relaci E1 nesmí být prvek (v tabulce řádek), který by měl současně neprázdnou hodnotu atributu K2 a K3 (jeden z nich musí být NULL), toto je nutné zajistit speciálním integritním omezením (prakticky triggerem)

Page 11: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Příklad

VSTUPENKA(CISLO,JMENO_F,NAZEV,JMENO_F1,STATUS)PREDSTAVENI(JMENO_F,NAZEV,DATUM)

FILMECEK(JMENO_F)

Page 12: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Příklad

Poznámka:

• PREDSTAVENI je slabý entitní typ, identifikačně závislý na entitním typu KINO, proto je klíčem relace dvojice (JMENO_F,NAZEV)

Page 13: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Reprezentace více -árního vztahu

SLUŽBA

ZÁKAZNÍK

ČERPÁ

PROVOZOVNA IDS

ČP

IDZ

DATUM

Page 14: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Reprezentace více -árního vztahu

ZÁKAZNÍK(IDZ)PROVOZOVNA(ČP)

SLUŽBA(IDS)

ČERPÁ(IDZ,ČP,IDS,DATUM)

Page 15: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Reprezentace více -árního vztahu

ZBOŽÍOBCHODNÍK

DODÁVÁ

KAT_ČIDO

DODÁVÁ(IDO_KDO,IDO_KOMU,KAT_Č)

JMÉNO NÁZEV

Page 16: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

IDO JMÉNO

1 Potkan & syn

2 Návnada, nástraha, past

OBCHODNÍK

KAT_Č Název1 Pastička

2 Jed na potkany

ZBOŽÍ

DODÁVÁ

IDO_KDO IDO_KOMU KAT_ Č1 2 1

Page 17: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Reprezentace binárního vztahu mezi entitami stejného typu

DÍL

JE_SOUČÁSTÍ

ID_D

DÍL(ID_D,NÁZEV,ID_PATŘÍ)

NÁZEV

1SE_SKLÁDÁ

N

• vztah 1:N – do relace DÍL přidám cizí klíč:

Page 18: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

DÍL

ID_D NÁZEV ID_PATŘÍ1 Čerpadlo NULL

2 Hřídel 1

3 Lopatkové kolo 1

4 Ložisko 6202 1

Page 19: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Relační algebra

• množina operací, které přiřazují relaci (relacím) jinou relaci– důsledek: výsledek jedné operace může být

argumentem další operace

• na DB relace aplikujeme základní operace:– kartézský sou čin (x)– sjednocení (U)– rozdíl (-)– projekce– selekce– přirozené a théta – spojení

Page 20: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Proč relační algebra?• relační algebra jako matematický kalkul

je silný prostředky pro manipulaci dat– je základem dotazovacího jazyka SQL

• jsou vypracovány vhodné metody návrhu schémat relační databáze– normální formy relací– databáze mají pak „dobré“ vlastnosti

Page 21: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Projekce relace R se schématem R(A) na schéma B, B ⊂ A– značení R[B]– výsledkem je relace se schématem B– z relace vybere atributy podle schématu B– vymaže duplicitní n-tice

• tabulkově:– vybere sloupce podle seznamu B– vymaže duplicitní řádky

Page 22: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Příklad:ČTENÁŘ(RČ, JMÉNO, PŘÍJMENÍ):521006/5678 Josef Novák541212/1234 Josef Houska320612/1234 Franta Kuldanů

• projekce na množinu atributů JMÉNO:ČTENÁŘ[JMÉNO]JosefFranta

Page 23: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Selekce relace R se schématem R(A) podle podmínky ∅– značení R(∅)– výsledkem je relace se schématem A– z relace vybere n-tice, které splňují

podmínku ∅, ∅ je boolský výraz– ve výrazu je možné použít logické spojky

and, or, …

• tabulkově:– vybere řádky, které splňují podmínku ∅– vymaže duplicitní řádky

Page 24: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Příklad:ČTENÁŘ(RČ, JMÉNO, PŘÍJMENÍ):521006/5678 Josef Novák541212/1234 Josef Houska320612/1234 Franta Kuldanů

• selekce dle jména:ČTENÁŘ(JMÉNO=″Franta″)

320612/1234 Franta Kuldanů

Page 25: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Přirozené spojení relace R se schématem R(A) a relace S se schématem S(B)– značení R*S– výsledkem je relace se schématem A∪B– u∈R*S iff u[A]∈R(A) a u[B]∈S(B)– spojím přes co největší množinu společných

atributů (přirozené spojení)

• tabulkově:– spojí řádky, které mají shodné hodnoty

společných sloupců

Page 26: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Příklad:KNIHA(AUTOR, TITUL, ISBN)EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK, ISBN)Němcová Babička 80-85190-38-9Jirásek U nás 80-11111-22-3

1 105 12.1.1990 80-85190-38-92 100 20.3.1990 80-85190-38-93 103 21.3.1990 80-11111-22-3

– největší množina společných atributů je ISBN– výsledek operace spojení bude mít atributy:– PŘÍR_Č, CENA, D_NÁK, ISBN, AUTOR, TITUL

Page 27: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

– spojím každý řádek relace KNIHA s každým řádkem relace EXEMPLÁŘ, do výsledku dám jenom ty, které mají shodnou hodnotu atributu ISBN; atribut ISBN je ve výsledné relaci pouze jednou (vyplývá z operace sjednocení atributů)

KNIHA*EXEMPLÁŘ

1 105 12.1.1990 80-85190-38-9 Němcová Babička2 100 20.3.1990 80-85190-38-9 Němcová Babička3 103 21.3.1990 80-11111-22-3 Jirásek U nás

Page 28: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Θ spojení relace R se schématem R(A) a relace S se schématem S(B)– značení R[D Θ F]S– výsledkem je relace se schématem A∪B– Θ je podmínka spojení, D ∈ A, F ∈ B– u∈R*S iff u[A]∈R(A) a u[B]∈S(B) a

u[R.D] Θ u[S.F]– spojím n- tice, které splňují danou podmínku

• tabulkově:– spojím řádky, u kterých je splněna podmínka Θ

Page 29: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Příklad:

Relace R:

A1 A2 A3

1 A 2

2 X 6

Relace S:

B1 B2 B3

4 8 Ahoj

5 4 Zdar

Relace R[A3<B2]S:

A1 A2 A3 B1 B2 B3

1 A 2 4 8 Ahoj

1 A 2 5 4 Zdar

2 X 6 4 8 Ahoj

Page 30: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Příklad: – Jak zapíši přirozené spojení relací KNIHA

a EXEMPLÁŘ pomocí Θ spojení?

KNIHA(AUTOR, TITUL, ISBN)EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK, ISBN)

– podmínka Θ bude rovnost hodnot atributů ISBN

KNIHA*EXEMPLÁŘ=

KNIHA[KNIHA.ISBN = EXEMPLÁŘ.ISBN]EXEMPLÁŘ

D FΘ

Page 31: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

• operace relační algebry mohu aplikovat na stejnou relaci, tj. relaci mohu spojit i samu se sebou, provést jejich kartézský součin

• příklad Θ spojení relace DÍL se sebou:

DÍL(ID_D,NÁZEV,ID_PATŘÍ)

DÍL[ID_PATŘÍ=ID_D]DÍL

Page 32: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

ID_D NÁZEV ID_PATŘÍ ID_D NÁZEV ID_PATŘÍ

1 Čerpadlo NULL

2 Hřídel 1 1 Čerpadlo NULL

3 Lopatkové kolo 1 1 Čerpadlo NULL

4 Ložisko 6202 1 1 Čerpadlo NULL

Page 33: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

• užitečná je i operace přejmenování atributu nebo přejmenování relace

Page 34: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Kartézský sou čin x relace R se schématem R(A) a relace S se schématem S(B)– značení R x S– výsledkem je relace se schématem, které má

všechny atributy obou relací (společné atributy se vyskytují vícekrát)

– spojím každou n-tice s každou

• tabulkově:– spojím každý řádek s každým

Page 35: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Příklad:KNIHA(AUTOR, TITUL, ISBN)EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK, ISBN)Němcová Babička 80-85190-38-9Jirásek U nás 80-11111-22-3

1 105 12.1.1990 80-85190-38-92 100 20.3.1990 80-85190-38-93 103 21.3.1990 80-11111-22-3

Page 36: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

• výsledek operace kartézský součin

EXEMPLÁŘ x KNIHA

bude mít atributy:– použiji přejmenování atributů:

PŘÍR_Č, CENA, D_NÁK, ISBN_1, AUTOR, TITUL, ISBN_2

– použiji tečkovou notaci a názvy relací

PŘÍR_Č, CENA, D_NÁK, EXEMPLÁŘ.ISBN, AUTOR, TITUL, KNIHA.ISBN

Page 37: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

– spojím každý řádek relace EXEMPLÁŘ s každým řádkem relace KNIHA

EXEMPLÁŘ x KNIHA

1 105 12.1.1990 80-85190-38-9 Němcová Babička 80-85190-38-9

1 105 12.1.1990 80-85190-38-9 Jirásek U nás 80-11111-22-3

2 100 20.3.1990 80-85190-38-9 Němcová Babička 80-85190-38-9

2 100 20.3.1990 80-85190-38-9 Jirásek U nás 80-11111-22-3

3 103 21.3.1990 80-11111-22-3 Němcová Babička 80-85190-38-9

3 103 21.3.1990 80-11111-22-3 Jirásek U nás 80-11111-22-3

Page 38: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

• přirozené spojení lze zapsat pomocí kartézského součinu a operací selekce a projekce takto:

KNIHA * EXEMPLÁŘ=

(KNIHA x EXEMPLÁŘ)(KNIHA.ISBN=EXEMPLÁŘ.ISBN)

[PŘÍR_Č, CENA, D_NÁK, KNIHA.ISBN, AUTOR, TITUL]

Page 39: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Průnik, sjednocení, rozdíl• relace jsou množiny, lze tyto operace

aplikovat i na relace za předpokladu– schémata relací jsou stejná (tabulky mají stejné

sloupce)– domény jsou stejné

• průnik– u∈R∩S iff u∈R a u ∈ S– výsledkem jsou řádky, které jsou současně v

obou tabulkách

Page 40: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

• sjednocení– u∈R U S iff u∈R nebo u∈S– data ze dvou tabulek sloučím do jedné

• rozdíl– u∈R - S iff u∈R a u∉S– vyberu řádky, které jsou v R a nejsou v S

Page 41: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

RČ JMÉNO PŘÍJMENÍ

320612/1234 František Kuldanů

521006/5678 Josef Novák

ČTENÁŘ

ISBN TITUL AUTOR80-11111-22-3 U nás A. Jirásek

80-85190-38-9 Babička B. Němcová

KNIHA

EXEMPLÁŘ

25.3.19901002

D_NÁKCENAPŘÍR_Č

26.3.19901503

25.3.19901001

ISBN

80-85190-38-9

80-85190-38-9

80-11111-22-3

Page 42: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

RČ PŘÍR_Č DAT

320612/1234 1 10.11.2005

521006/5678 3 20.11.2005

SI_VYPŮJČIL

Page 43: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Příklad:• jméno a příjmení čtenáře, kteří mají

vypůjčenu Babičku

(((((KNIHA(TITUL=″Babička″)[ISBN]*EXEMPLÁŘ)[PŘÍR_Č])*SI_VYPŮJČIL)*ČTENÁŘ)[JMÉNO,PŘÍJMENÍ]

jinak((KNIHA(TITUL=″Babička″)[ISBN]*EXEMPLÁŘ*

SI_VYPŮJČIL*ČTENÁŘ)[JMÉNO,PŘÍJMENÍ]

Page 44: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

• rozebereme výraz(((((KNIHA(TITUL=″Babička″)[ISBN]*EXEMPLÁŘ)[PŘÍR_Č])*SI_VYPŮJČIL)*ČTENÁŘ)[JMÉNO,PŘÍJMENÍ]

KNIHA(TITUL=″Babička″)– je selekce, tj. z relace knihy vybereme n-tice, kde

atribut titul má hodnotu „Babička“; výsledkem je relace:

80-85190-38-9 Babička B. Němcová

KNIHA(TITUL=″Babička″)[ISBN]– zde je k selekci přidána projekce, tj. vybereme

pouze sloupec ISBN; výsledkem je relace, označme ji S:

80-85190-38-9

Page 45: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

(KNIHA(TITUL=″Babička″)[ISBN]*EXEMPLÁŘ)– je o spojení relace S (viz předchozí blána) s relací

EXEMPLÁŘ, tj. spojíme každý „řádek“ relace S(obsahuje pouze jeden řádek) s řádky relace EXEMPLÁŘ přes největší množinu společných atributů (zde ISBN); spojíme ty řádky, které mají v relaci S a EXEMPLÁŘ stejnou hodnotu atributu ISBN; výsledek je relace R:

PŘÍR_Č CENA D_NÁK ISBN1 100 25.3.1990 80-85190-38-9

2 100 25.3.1990 80-85190-38-9

Page 46: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

(KNIHA(TITUL=″Babička″)[ISBN]*EXEMPLÁŘ)[PŘÍR_Č]– je aplikace projekce na „modrou“ relaci R z předchozí

blány; vybere se pouze přírůstkové číslo a vymažou se duplicitní řádky; výsledek je relace P:

PŘÍR_Č12

((KNIHA(TITUL=″Babička″)[ISBN]*EXEMPLÁŘ)[PŘÍR_Č])*SI_VYPŮJČIL– je spojení předcházející relace P s relací

SI_VYPŮJČIL, tj. spojí se řádky, které mají shodnou hodnotu atributu PŘÍR_Č; vznikne relace T

Page 47: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

((((KNIHA(TITUL="Babička")[ISBN]*EXEMPLÁŘ)[PŘÍR_Č])*SI_VYPŮJČIL)*ČTENÁŘ– je spojení relace T s relací čtenář, tj. spojí se řádky, které mají shodnou hodnotu atributu RČ

RČ PŘÍR_Č DAT320612/1234 1 10.11.2005

RČ JMÉNO PŘÍJMENÍ PŘÍR_Č DAT

320612/1234 František Kuldanů 1 10.11.2005

Page 48: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

(((((KNIHA(TITUL=″Babička″)[ISBN]*EXEMPLÁŘ)[PŘÍR_Č])*SI_VYPŮJČIL)*ČTENÁŘ)[JMÉNO,PŘÍJMENÍ]– nakonec se provede projekce na atributy JMÉNO,

PŘÍJMENÍ, tj. vyberou se tyto sloupce :

JMÉNO PŘÍJMENÍ

František Kuldanů

Page 49: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

Referenční integrita

• mějme dvě relace R(A), S(B), společná množina atributů C⊂A, C⊂B

• referenční integrita: platíS[C] ⊂ R[C]

• příklad:ČTENÁŘ(RČ, JMÉNO, PŘÍJMENÍ)

SI_VYPŮJČIL(RČ, PŘÍR_Č, DAT_VYP)

cizí klí če

Page 50: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

• referenční integrita:– aby byla splněna referenční integrita, musí

platit:

SI_VYPŮJČIL[RČ] ⊂ ČTENÁŘ[RČ]• srozumitelně:

– v tabulce SI_VYPŮJČIL („podřízené“) se nesmí v poli RČ vyskytnout žádná hodnota (žádné takové rodné číslo), která by nebyla v tabulce ČTENÁŘ („nadřízené“)

• cizí klíč RČ ve SI_VYPŮJČIL by jinak odkazoval na neexistujícího čtenáře v ČTENÁŘ

Page 51: Databáze 1 - Přednáška 2 · 2016. 10. 12. · 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 – nejv ětší množina spole čných

• databázové stroje umějí automaticky zajistit referenční integritu– při výmazu čtenáře se smažou všechny

jeho výpůjčky– při změně hodnoty primárního klíče

(rodného čísla) v tabulce ČTENÁŘ se automaticky změní i rodná čísla v tabulce SI_VYPŮJČIL


Recommended