+ All Categories
Home > Documents > Úvod do databázových systémů

Úvod do databázových systémů

Date post: 17-Jan-2016
Category:
Upload: hani
View: 40 times
Download: 0 times
Share this document with a friend
Description:
Úvod do databázových systémů. Cvičení 05. Ing. Pavel Bednář [email protected] http://pavelbednar.aspone.cz. Relační datový model. Relační schéma - PowerPoint PPT Presentation
23
Úvod do databázových systémů Cvičení 05 Ing. Pavel Bednář [email protected] http:// pavelbednar.aspone.cz
Transcript
Page 1: Úvod do databázových systémů

Úvod do databázových

systémů

Cvičení 05

Ing. Pavel Bednář[email protected]://pavelbednar.aspone.cz

Page 2: Úvod do databázových systémů

Relační schémaRelač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. RelaceRelace 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. O relaci R říkáme, že je typu R nebo že

je instancí relačního schématu R. Stupeň relace

Relační datový model

Page 3: Úvod do databázových systémů

Relační datový model

Page 4: Úvod do databázových systémů

Relační datový model

Page 5: Úvod do databázových systémů

Schéma relační databázeJe konečná množina relačních schémat R1(A1,f1), R2(A2,f2), ... , Rm(Am,fm)..

Relační databázeV 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.

Relační datový model

Page 6: Úvod do databázových systémů

Homogenita sloupců Atomické atributy Nezáleží na pořadí řádků a sloupců Každý řádek (záznam) je jednoznačně

identifikovatelný.

Relační datový model

Page 7: Úvod do databázových systémů

Pro formulaci požadavků na výběr dat z relační databáze

Pracuje s celými relacemi Operátory RA se aplikují na relace,

výsledkem jsou opět relace.

Relační algebra

Page 8: Úvod do databázových systémů

Operace◦ Sjednocení R ∪ S = { x | x R ∨ x S }◦ Průnik R ∩ S = { x | x R ∧ x S }◦ Rozdíl R - S = { x | x R ∧ x S }◦ Kartezský součin R × S = { rs | r R ∧ s S }

rs = { r1, …,rm,s1, …, sn}

Operace sjednocení a průnik musí být mezi shodnými relacemi

Výsledek operace v RA je bez duplicit.

Relační algebra

Page 9: Úvod do databázových systémů

Příklad: R ∪ S

Nelze udělat sjednocení, protože to nejsou shodné relace

Relační algebra

jméno příjmení katedraRadostav Fasuga 456Eduard Lyko 454Michal Krátký 456

jméno příjmeníPetr DlouhýJiřina BenešováPetr Dlouhý

∪ =

Page 10: Úvod do databázových systémů

Příklad: R ∪ S

Relační algebra

jméno příjmeníRadostav FasugaEduard LykoMichal Krátký

jméno příjmeníRadostav FasugaEduard LykoMichal KrátkýPetr DlouhýJiřina Benešová

∪ =příjmení jménoDlouhý PetrBenešová JiřinaDlouhý Petr

Page 11: Úvod do databázových systémů

Relační algebra Příklad: R ∩ S

jméno příjmeníDavid JežekDlouhý PetrMarie VlčkováBenešová JiřinaDlouhý Petr

∩ =jméno příjmeníDlouhý PetrDavid JežekBenešová JiřinaKarel Dlouhý

jméno příjmeníDlouhý PetrDavid JežekBenešová Jiřina

Page 12: Úvod do databázových systémů

Relační algebra Příklad: R - S

jméno příjmeníDavid JežekKresta MojmírMarie VlčkováBenešová KláraDlouhý Petr

- =jméno příjmeníDlouhý PetrDavid JežekBenešová JiřinaKarel Dlouhý

jméno příjmeníKresta MojmírMarie VlčkováBenešová Klára

Page 13: Úvod do databázových systémů

Příklad: X × Y

Relační algebra

login jméno příjmenífas123 Radostav FasugaLyk001 Eduard LykoKra222Michal Krátký

příjmení město dopravaFasuga Ostrava autoFasuga Brno vlakKrátký Olomouc letadloBeneš Ostrava pionýr

login jméno X.příjmení Y.příjmení město dopravafas123 Radostav Fasuga Fasuga Ostrava autofas123 Radostav Fasuga Fasuga Brno vlakfas123 Radostav Fasuga Krátký Olomouc letadlofas123 Radostav Fasuga Beneš Ostrava pionýrLyk001 Eduard Lyko Fasuga Ostrava autoLyk001 Eduard Lyko Fasuga Brno vlakLyk001 Eduard Lyko Krátký Olomouc letadloLyk001 Eduard Lyko Beneš Ostrava pionýrKra222 Michal Krátký Fasuga Ostrava autoKra222 Michal Krátký Fasuga Brno vlakKra222 Michal Krátký Krátký Olomouc letadloKra222 Michal Krátký Beneš Ostrava pionýr

× =

Page 14: Úvod do databázových systémů

Projekce Selekce Spojení Přirozené spojení

Relační operace

Page 15: Úvod do databázových systémů

Z tabulky studentů, vybereme login a příjmení.

T = Student [login,příjmení]

Relační algebra

jméno příjmení loginDavid Ježek JEZ032Dlouhý Petr DLO351Marie Vlčková VLC0043Benešová Jiřina BEN391Dlouhý Petr DLO102

příjmení loginJežek JEZ032Petr DLO351Vlčková VLC0043Jiřina BEN391Petr DLO102

T

Page 16: Úvod do databázových systémů

Z tabulky studentů, vybereme studenty, kteří jsou ve druhém a vyšším ročníku

T = Student(ročník >= 2)

Relační algebra

Tpříjmení login ročníkJežek JEZ032 2Petr DLO351 1Vlčková VLC0043 3Jiřina BEN391 2Petr DLO102 1

příjmení login ročníkJežek JEZ032 2Vlčková VLC0043 3Jiřina BEN391 2

Page 17: Úvod do databázových systémů

Obecné spojení X [A>C] Y

Relační algebra

A B C3 s 15 c 27 t 3

C D E2 ff s2 gg t3 hh c6 jj d

A B X.C Y.C D E3 s 1 2 ff s3 s 1 2 gg t3 s 1 3 hh c3 s 1 6 jj d5 c 2 2 ff s5 c 2 2 gg t5 c 2 3 hh c5 c 2 6 jj d7 t 3 2 ff s7 t 3 2 gg t7 t 3 3 hh c7 t 3 6 jj d

X Y X × YA B X.C Y.C D E

3 s 1 2 ff s3 s 1 2 gg t3 s 1 3 hh c3 s 1 6 jj d5 c 2 2 ff s5 c 2 2 gg t5 c 2 3 hh c5 c 2 6 jj d7 t 3 2 ff s7 t 3 2 gg t7 t 3 3 hh c7 t 3 6 jj d

3 > 2A B X.C Y.C D E3 s 1 2 ff s3 s 1 2 gg t3 s 1 3 hh c3 s 1 6 jj d5 c 2 2 ff s5 c 2 2 gg t5 c 2 3 hh c5 c 2 6 jj d7 t 3 2 ff s7 t 3 2 gg t7 t 3 3 hh c7 t 3 6 jj d

A B X.C Y.C D E3 s 1 2 ff s3 s 1 2 gg t3 s 1 3 hh c3 s 1 6 jj d5 c 2 2 ff s5 c 2 2 gg t5 c 2 3 hh c5 c 2 6 jj d7 t 3 2 ff s7 t 3 2 gg t7 t 3 3 hh c7 t 3 6 jj d

A B C D E5 c 2 ff s5 c 2 gg t7 t 3 hh c

X [ A > C] Y

Page 18: Úvod do databázových systémů

Clen(rc,jmeno,prijmeni,email)Titul(cislo_titulu,nazev_cez, nazev_angl, delka)Pujceno(rc,cislo_titulu,datum)

1. Číslo titulu, který byl alespoň jednou půjčen Pujceno[cislo_titulu]2. Číslo titulu, který dosud nebyl půjčen Titul[cislo_titulu] – Pujceno[cislo_titulu]3. RČ člena, který si půjčil film číslo 123 (Pujceno(cislo_titulu=123))[rc]4. RČ člena, který si půjčil alespoň jeden film, ale ne film 123 Pujceno[rc]-((Pujceno(cislo_titulu=123))[rc])5. RČ člena, který si nepůjčil film 123 Clen[rc]-((Pujceno(cislo_titulu=123))[rc])

Příklady

Page 19: Úvod do databázových systémů

Clen(rc,jmeno,prijmeni,email)Titul(cislo_titulu,nazev_cez, nazev_angl, delka)Pujceno(rc,cislo_titulu,datum)

6. RČ člena, který si půjčil jiný film než 12 (Pujceno(cislo_titulu<>123))[rc]

7. RČ člena, který si půjčil pouze film 123 Pujceno[rc]-((Pujceno(cislo_titulu<>123))[rc])8. Najděte názvy filmů, které byly alespoň jednou půjčeny (Pujceno[cislo_titulu][*]Titul)[nazev_cesky]9. Najděte jména členů, kteří si dosud nepůjčili žádný film ((Clen[rc]-Pujceno[rc])[*]Clen)[jmeno, prijmeni]10. Najděte názvy filmů, které si půjčili členové s příjmením Novák ((((Clen(prijmeni=‘Novák‘))[*]Pujceni)[cislo_titulu])[*]Titul)[nazev_cesky]

Příklady

Page 20: Úvod do databázových systémů

LÉKAŘ(licence,jménoL,specializace)PACIENT(ČP,jménoP,adresa,telefon,narození)NÁVŠTĚVA((licence,ČP,typ,datum,diagnóza,cena)

1. seznam všech specializací lékařů Lekar[specializace]2. jmenný seznam všech ortopédů Lekar(specializace=‘ortoped‘)[jmenoL]3. jmenný seznam pacientů starších 65 let Pacient(narozeni<1943)[jmenoP]4. seznam licencí lékařů, které navštívila paní Marie Nová (Pacient(jmenoP=‘Marie Nova‘)[cp][*]Navsteva)[licence]5. jména lékařů, kteří byli na návštěvě domů na zavolání (Navsteva(typ=‘domu na zavolani‘)[licence][*]Lekar)[jmenoL]

Příklady

Page 21: Úvod do databázových systémů

LÉKAŘ(licence,jménoL,specializace)PACIENT(ČP,jménoP,adresa,telefon,narození)NÁVŠTĚVA((licence,ČP,typ,datum,diagnóza,cena)

6. jména a adresy pacientů, kteří byli vyšetřeni dr. Lomem dne 23.5.93

((Lekar(jmenoL=‘Lom‘)[licence][*]Navsteva)(datum=’23.5.1993‘)[cp][*]Pacient)[jmenoP,adresa]

7. jména a adresy pacientů, kterým byla určena diagnóza HIV+ (Navsteva(diagnoza=‘HIV+‘)[cp][*]Pacient)[jmenoP, adresa]8. jména a specializace lékařů, kteří určili diagnózu vřed na

dvanácterník (Navsteva(diagnoza=‘vred na Dvanacterniku‘)[licence][*]Lekar)[jmenoL, specializace]

9. jména a adresy pacientů, kteří byli vyšetřováni pouze dr. Čermákem

(((Lekar(jmenoL=‘Cermak‘)[licence][*]Navsteva)[cp])-((Lekar(jmenoL<>Cermak)[licence][*]Navsteva)[cp]))[*]Pacient)[jmenoP, adresa]

Příklady

Page 22: Úvod do databázových systémů

LÉKAŘ(licence,jménoL,specializace)PACIENT(ČP,jménoP,adresa,telefon,narození)NÁVŠTĚVA((licence,ČP,typ,datum,diagnóza,cena)

10. jména a adresy pacientů, kteří byli vyšetřováni dr. Čermákem.

(Lekar(jmenoL=Cermak)[licence][*]Navsteva)[cp][*]Pacient)[jmenoP,adresa]

11. jména a adresy pacientů, kteří nebyli vyšetřováni dr. Čermákem

(Pacient[cp]-(Lekar(jmenoL=Cermak)[licence][*]Navsteva)[cp])[*]Pacient)[jmenoP, adresa]12. Seznam jmen pacientů i lékařů Lekar[jmenoL] ∪ Pacient[jmenoP]

Příklady


Recommended