4. Relační algebra. Databáze použité v příkladech. Operace. Selekce. jméno relace(selekční podmínka)



Podobné dokumenty
Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat).

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

J. Zendulka: Databázové systémy 4 Relační model dat 1

Databázové systémy BIK-DBS

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

Relační model dat (Codd 1970)

2. Konceptuální model dat, E-R konceptuální model

Databázové systémy. * relační algebra. Tomáš Skopal. - relační model

Michal Valenta DBS Databázové modely 2. prosince / 35

Terminologie v relačním modelu

6. SQL složitější dotazy, QBE

DBS relační DB model, relační algebra

Databáze I. Přednáška 2

Výroková a predikátová logika - VII

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

5. Formalizace návrhu databáze

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace

Databázové systémy Cvičení 5

platné nejsou Sokrates je smrtelný. (r) 1/??

5. Formalizace návrhu databáze

Databázové systémy Cvičení 5.3

Predikátová logika. prvního řádu

Okruh č.3: Sémantický výklad predikátové logiky

Databáze I. Přednáška 6

Integrace relačních a grafových databází funkcionálně

4.2 Syntaxe predikátové logiky

Analýza a modelování dat 3. přednáška. Helena Palovská

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

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

UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY. Přírodovědecká fakulta RELAČNÍ DATABÁZE (DISTANČNÍ VÝUKOVÁ OPORA) Zdeňka Telnarová. Aktualizovaná verze 2006

4. blok část A Logické operátory

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Sémantika predikátové logiky

Výroková a predikátová logika - VI

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Matematika B101MA1, B101MA2

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

Úvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz

Databázové systémy. Přednáška č. 5

Informační systémy ve zdravotnictví. 6. cvičení

Jazyk S Q L základy, příkazy pro práci s daty

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

Dotazování v relačním modelu a SQL

Jazyk matematiky Matematická logika Množinové operace Zobrazení Rozšířená číslená osa

Funkční schéma Datové schéma Integrita modelu s realitou

Diagram výskytů a vztahů

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Logika XI. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

1 Mnohočleny a algebraické rovnice

Výroková logika. Teoretická informatika Tomáš Foltýnek

1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7

Převyprávění Gödelova důkazu nutné existence Boha

Výroková a predikátová logika - VII

Princip rozšíření a operace s fuzzy čísly

DBS Databázové modely

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Matematická logika. Rostislav Horčík. horcik

0. ÚVOD - matematické symboly, značení,

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Databázové systémy. Cvičení 2

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

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

6. blok část C Množinové operátory

Výroková a predikátová logika - II

RELACE, OPERACE. Relace

Matematická analýza 1

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Databázové systémy. Ing. Radek Holý

prof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. BI-ZMA ZS 2009/2010

Formální sémantika SQL dotazování

Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce

teorie logických spojek chápaných jako pravdivostní funkce

Jazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Matematická logika. Rostislav Horčík. horcik

Věta o dělení polynomů se zbytkem

Databáze SQL SELECT. David Hoksza

Databáze. Logický model DB. David Hoksza

Databázové systémy. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 3) Základní relační operace Databázové systémy 1 / 37

Logické programy Deklarativní interpretace

1 Predikátová logika. 1.1 Syntax. jaký mohou mít formule význam (sémantiku). 1. Logických symbolů: 2. Speciálních (mimologických) symbolů:

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

DBS Normální formy, normalizace

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Úvod do databázových systémů 10. cvičení

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Fuzzy množiny, Fuzzy inference system. Libor Žák

SINGULÁRNÍ VÝROKY: Jednoduchý singulární výrok vznikne spojením singulárního termínu s termínem obecným pomocí spony=slova je.

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

DBS Databázové modely

Otázka č. 1 (bodů za otázku: 4)

8.2 Používání a tvorba databází

Databázové systémy IDS

Databázové systémy Cvičení 5.2

Transkript:

4. Relační algebra Databáze použité v příkladech FIRMA ZAMĚSTNANEC (Číslo, Příjmení, Jméno, Pohlaví, Plat, Oddělení, Nadřízený) ODDĚLENÍ (Číslo, Název, Místo, Vedoucí) PROJEKT (Číslo, Název, Oddělení) PRÁCE (Číslo, Zaměstnanec, Projekt, Hodiny) DÍTĚ (Číslo, Rodič, Jméno) KNIHOVNA KNIHA (CisloKnihy, Název, Autor, Ţánr, Rok) ŢÁNR (Id, Název) VÝTISK (EvidCislo, CisloKnihy, Nakladatel, Pořízeno, Cena, Jazyk) AUTOR (Id, Příjmení, Jméno, Stát) ČTENÁŘ (Id, Příjmení, Jméno, Město, Ulice, PSČ, DatumOd, DatumDo) VÝPŮJČKA (Id, Výtisk, Čtenář, Půjčeno, Vráceno ) REZERVACE (Id, CisloKnihy, Čtenář, Datum) NAKLADATELSTVÍ (Id, Název, Město, Stát) FILMY nenormalizovaná DB filmů!!! KINO (NázevK, Adresa) PROGRAM (NázevK, JménoF, Datum) FILM (JménoF, Herec, Rok) BANKA nenormalizovaná DB!!! KLIENT (Číslo, Jméno, Osoba, Adresa) POHYB (Druh, Konto, Identifikace, Datum, Měna, Částka) KONTO (Číslo, Majitel, Datum, Zůstatek, Měna) Operace kartézský součin ( součin ) sjednocení průnik rozdíl projekce selekce ( restrikce ) spojení x x předpokládá kompatibilní operandy tj. stejný řád relací a rovnost domén, které si odpovídají specificky databázové operace Selekce selekční podmínka(jméno relace) jméno relace(selekční podmínka)

Příklad 4.1 : Relace ZAMĚSTNANEC (Osobní_číslo, Jméno, Příjmení, Adresa, Oddělení, Plat, Nadřízený) Vybereme podmnoţinu n-tic z relace ZAMĚSTNANEC, kteří pracují v oddělení 4 Oddělení = 4(ZAMĚSTNANEC) Příklad 4.2 : Relace ZAMĚSTNANEC (Osobní_číslo, Jméno, Příjmení, Oddělení, Plat, Nadřízený) Vybereme podmnoţinu n-tic z relace ZAMĚSTNANEC, kteří mají plat menší neţ 15 000 Plat 15000(ZAMĚSTNANEC) Relace, která je výsledkem selekce, má tytéţ atributy jako relace původní. Podmínka pouţitá v selekci můţe být tvaru Jméno atributu operátor porovnání Jméno atributu Jméno atributu operátor porovnání Konstanta Operátor porovnání je z mnoţiny,,,,,, konstanta je z domény daného atributu. Podmínky mohou být libovolně spojovány pomocí AND, OR, NOT Příklad 4.3 : (Plat 10000 AND Oddělení =1) OR ( Plat 20000 AND Oddělení=3) (ZAMĚSTNANEC) Selekce je komutativní tj. podm1( podm2 (Relace)) = podm2( podm1 (Relace)) podm1( podm2... ( podmn (Relace)..))= podm1 AND podm2 AND podmn(relace) Poznámka: Pořadí podmínek v konjunkci by mělo být stanoveno smysluplně závisí na tom rychlost vyhodnocení dotazu Příklad 4.4: Výběr záznamů praţských zaměstnanců z oddělení 5 Předpoklad: firma má cca 1000 zaměstnanců, 10 oddělení pouze desetina není z Prahy předpokládáme rovnoměrné rozloţení zaměstnanců na odd. Adresa obsahuje 'Praha' ( Oddělení = 5 (ZAMĚSTNANEC)) Oddělení = 5 ( Adresa obsahuje 'Praha' (ZAMĚSTNANEC)) cca 1000+100 porovnání cca 1000+900 porovnání

Projekce Π Seznam atributů (Jméno relace) Jméno relace[seznam atributů] Příklad 4.5 : Zajímají nás jména, příjmení a plat zaměstnanců Π Jméno, Příjmení, Plat (ZAMĚSTNANEC) Příklad 4.6 : Názvy a sídla nakladatelství Relace NAKLADATELSTVÍ (Id_nakladatelství, Název, Město, Ulice, Stát, Majitel) Π Název, Město, Stát (NAKLADATELSTVÍ) NAKLADATELSTVÍ [Název, Město, Stát ] Π Seznam atr1 (Π Seznam atr2 (Jméno relace))= Π Seznam atr1 (Jméno relace) platí jen tehdy, je-li seznam atr1 podmnoţinou seznam atr2. Příklad 4.7 : Π Jméno, Příjmení, Plat ( Oddělení = 4 (ZAMĚSTNANEC)) ZAMĚSTNANEC (Oddělení = 4)[Jméno, Příjmení, Plat] Můţeme pojmenovat jednotlivé výsledné relace a rozepsat ODD4 ( Oddělení = 4 (ZAMĚSTNANEC) VYSLEDEK Π Jméno, Příjmení, Plat (ODD4) Příklad 4.8 :Vypsat čísla všech zaměstnanců, kteří buďto pracují na odd 5, nebo jsou přímými nadřízenými zaměstnance pracujícího na odd 5. ZAMĚSTNANEC (Číslo, Příjmení, Jméno, Město, Ulice, PSČ, Oddělení, Nadřízený) ODD5_ZAM ( Oddělení = 5 (ZAMĚSTNANEC) VYSL1 Π Číslo (ODD5_ZAM) VYSL2 Π Nadřízený (VYSL1) VYSLEDEK VYSL1 VYSL2 Množinové operace sjednocení, průnik, rozdíl relací dá se pouţít na kompatibilní relace.

Konvence atributy výsledné relace označujeme jmény podle první relace, duplicitní záznamy se odstraňují ( při sjednocení ) Komutativita, asociativita R S = S R, ( R S ) T = S ( R T ) R S = S R, R ( S T ) = ( R S) T Kartézský součin ( kříţový součin, kříţové spojení ) nevyţaduje kompatibilní operandy. Výsledek R( A 1, A 2,..., A a ) x S( B 1, B 2,..., B m ) je relace Q (A 1, A 2,..., A a, B 1, B 2,..., B m ), která má n+m atributů a obsahuje záznam pro kaţdou kombinaci záznamů vţdy jeden z R a druhý z S. Příklad 4.9 : Potřebujeme vypsat seznam dětí všech zaměstnaných ţen ŢENY_ZAM Pohlaví = Z (ZAMĚSTNANEC) ŢENY Π Číslo, Jméno, Příjmení (ŢENY_ZAM) DĚTI_ŢEN ŢENY x DĚTI AKT_DĚTI Číslo = Číslo_ rodiče (DĚTI_ŢEN) VYSLEDEK Π Jméno, Příjmení, Akt_děti.Jméno (AKT_DĚTI) SPOJENÍ se pouţívá, pokud potřebujeme zkombinovat související (navzájem si odpovídající) záznamy ze dvou relací do jediného záznamu. Příklad 4.10: Vypsat jména, příjmení manaţerů včetně oddělení, které vedou Relace ZAMĚSTNANEC (Osobní_číslo, Jméno, Příjmení, Oddělení, Plat, Nadřízený) ODDĚLENÍ (Číslo, Název, Vedoucí) MANAŢER ODDĚLENÍ Vedoucí = Číslo ZAMĚSTNANEC VYSLEDEK Π Jméno, Příjmení, Název (MANAŢER) Příklad 4.10 : pomocí jiného způsobu zápisu (ZAMĚSTNANEC [Číslo = Vedoucí]ODDĚLENÍ)[Jméno, Příjmení, Název]

Příklad 4.11: Vypsat názvy knih, které má vypůjčeny čtenář Petr Svoboda databáze KNIHOVNA z příkladu 3.16 PŮJČENO VÝPŮJČKY_S Vráceno = null VÝPŮJČKA ( Příjmení='Svoboda' AND Jméno='Petr' ČTENÁŘ) Číslo průkazky=čtenář PŮJČENO VÝTISKY _S Π Evidenční_číslo (VÝPŮJČKY _S * VÝTISK) VYDÁNÍ_S Π Kniha (VÝTISKY _S Vydání = Číslo_vydání VYDÁNÍ) NÁZVY_S Π Název (VYDÁNÍ _S * KNIHY) Obecně R Spojovací podmínka S R [Spojovací podmínka] S Výsledek spojení R( A 1, A 2,..., A a ) a S( B 1, B 2,..., B m ) je relace Q (A 1, A 2,..., A a, B 1, B 2,..., B m ), Q obsahuje jeden záznam pro kaţdou kombinaci záznamů vţdy jeden z R a jeden z S -tak, ţe tato kombinace vyhovuje spojovací podmínce. Ještě obecněji spojovací podmínka můţe mít formu Podmínka 1 AND podmínka 2 AND.... podmínka n, kde kaţdá podmínka je tvaru A i θ B j, A i je atribut z R, B j je atribut z S, A i a B j mají tutéţ doménu a θ je jeden z operátorů,,,,, tzv. THETA SPOJENÍ EQUIJOIN spojení přes rovnost PŘIROZENÉ SPOJENÍ (*) Příklad 4.12: Relace ODDĚLENÍ (Číslo_odd, Název, Vedoucí) PROJEKT (Číslo, Název, Číslo_odd, Datum_zahájení) ODD ODDĚLENÍ (Číslo_odd, Název) PROJ_ODD PROJEKT * ODD Atribut Číslo_odd se nazývá spojující atribut

Příklad 4.13: Najít adresu kina, kde je na programu Forest Gump Relace KINO (NázevK, AdresaK) PROGRAM (NázevF, NázevK, Datum, Hodina) NázevK, AdresaK ( NázevK ( NázevF = Forest Gump (PROGRAM)) * KINO) Obecná definice přirozeného spojení Q R* ( seznam1 ), ( seznam2 ) S V tomto případě seznam1 specifikuje seznam i atributů z R a seznam2 určuje seznam i atributů z S. Seznamy jsou pouţity k sestavení podmínek testujících shodnost mezi dvojicemi odpovídajících atributů, podmínek jsou pak spolu spojeny pomocí spojky and.ve výsledné relaci jsou ponechány pouze atributy ze seznamu1. Můţe se stát, ţe výsledkem bude prázdná relace. Obecně, pokud R se skládá z n R n-tic a S z n s n-tic, můţe mít výsledek spojující operace mezi R a S celkem 0 aţ n R * n S n-tic. Poměr mezi výsledkem spojení a maximální hodnotou n R * n S udává tzv. spojovací selektivitu, coţ je vlastnost kaţdé spojovací podmínky. Není-li uvedena ţádná spojovací podmínka, dostáváme vlastně kartézský součin kříţové spojení. Operace relační algebry,,,, tvoří úplnou množinu, neboť kaţdá další operace relační algebry se dá vyjádřit jako kombinace těchto operací. R S ( R S ) (( R S ) ( S R )) R Spojovací podmínka S selekční podmínka(rxs) Polospojení Levé polospojení relací se schématy R(A) a R(B) se dá definovat pomocí spojení a projekce jako A ( R t 1 t 2 S ) dle jiného způsobu zápisu R < t 1 t 2 ] S = (R [ t 1 t 2 ] S ) [A] Pravé polospojení Polospojení přes rovnost polospojení přes rovnost vybraných společných atributů Přirozené polospojení polospojení přes rovnost všech společných atributů

Příklad 4.14 : R A B C S B C D E 8 2 3 2 4 2 3 1 2 3 2 3 2 3 1 1 4 1 4 5 6 3 6 7 2 3 4 7 3 8 9 7 2 5 T je levé polospojení R < A<B ] S T A B C U A B C 1 2 3 8 2 3 1 1 4 1 2 3 1 1 4 U je levé přirozené polospojení přes atributy B, C Příklad 4.15 : Najdi kina, kde nedávají ţádný film s Michel Pffeifer KINO[NázevK] ((FILM(Herec= Pffeifer Michel )[NázevF])*(PROGRAM[NázevK, NázevF]))[NázevK] Strom dotazu příkladu 4.15 [NázevK] [NázevK] KINO * [NázevF] [NázevK, NázevF] (Herec = Pffeifer Michel ) PROGRAM FILM Vnější spojení levé ( event. pravé ) Přirozené vnější spojení

N-ticový relační kalkul pouţívá přirozený pohled na relaci jako na mnoţinu n-tic (řádků, záznamů ) Termy - n-ticové proměnné - komponenty n-ticových proměnných ( tečková notace ) - atomické konstanty ( hodnoty přímo z nějaké domény ) Predikátové symboly,,,,, NRK je zaloţen na pojmu formule ( podobný smysl jako v predikátové logice ) Atomická formule R(x) R relace, x n-ticová proměnná x.a y.b A, B atributy, x, y n-ticové proměnné x.a k k konstanta Logické spojky and, or, not, implies Příklad 4.16 : dotaz najdi adresy všech kin x.adresa where KINO(x) jiná syntaxe ( vlastně projekce Adresa ( KINO) ) Příklad 4.17 : dotaz najdi všechny herce hrající ve filmu Top Gun film.herec where FILM(film) and film.názevf = Top Gun ( vlastně selekce a projekce Herec ( NázevF = Top Gun (FILM)) ) Příklad 4.18 : Najdi všechna kina, kde hrají film Matrix x.názevk where PROGRAM(x) and x.názevf= Matrix Příklad 4.19 : Najdi všechny praţské firmy mající konto v bance x.jméno where KLIENT(x) and x.adresa like Praha and x.osoba= P Obecně dotazy mají tvar : seznam komponent-proměnných where formule Kvantifikátory existenční exists univerzální forall

Příklad 4.20: p.název_k where PROGRAM(p) and exists f ( FILM(f) and p. NázevF = f. NázevF and f.herec = Hanks Tom ) Příklad 4.21: p.názevf where PROGRAM(p) and forall x (PROGRAM(x) implies exists y (PROGRAM(y) and y.názevk = x.názevk and p.názevf = y. NázevF) ) Zobecnění exists x (F(x)) (1) přepíšeme, pokud omezíme x na relaci R jako exists x ( R(x) and F (x) ) (2) podobně forall x ( F(x) ) (3) zobecníme jako forall x ( R(x) and F (x) ) (4) kde výrazy (2) a (4) definují tzv. omezené kvantifikátory, které můţeme psát jako exists x R ( G(x) ) forall x R ( G(x) ) kde formule G neobsahuje výskyty proměnné x s kvantifikátory exists nebo forall Příklad 4.22: p.názevk where PROGRAM(p) and forall f FILM (f.herec= Gibson Mel implies exists q PROGRAM (q.názevk=p.názevk and q.názevf=f.názevf)) Příklad 4.23: p.názevk where PROGRAM(p) and forall f FILM (f.herec= Gibson Mel implies not exists q PROGRAM (q.názevk=p.názevk and q.názevf=f.názevf))

Doménový relační kalkul Souvisí těsněji s predikátovou logikou, pouţívá jednoduché proměnné. Je-li R( A, B, C ) schéma relace, pak R(x, y, z) znamená totéţ jako R(u) v n-ticovém kalkulu. Atomické formule se zapisují i s atributy (konvence zajišťující nezávislost atributů na pořadí) tj. místo R(x, y, z) píšeme R(A:x, B:y, C:z) Termy - proměnné a konstanty Atomické formule R(A 1 :t 1, A 2 :t 2,..., A n :t n ) t 1 t 2 Formule se tvoří stejně jako v NRK, princip vyuţití formulí v dotazech je podobný jako v NRK. Příklad 4.24: projekce adr where exists k ( KINO ( NázevK :k, Adresa:adr )) Příklad 4.25: selekce h where exists r ( FILM (NázevF: Titanic, Herec : h, Rok : R ) ) Příklad 4.26: spojení nazk, adr, nazf, dat where ( PROGRAM ( NázevK : nazk, NázevF: nazf, Datum:dat) and KINO ( NázevK:nazK, Adresa: adr ) ) Konvence vynechávat exists ve formulích tvaru exists x ( R(..., A:x,... ), kde x není vícekrát ve formuli - Příklad 4.27 : adr where ( KINO ( Adresa : adr ) ) h where ( FILM (NázevF: Titanic, Herec : h ) )

Příloha 1 : část relačního schématu BANKA uvaţujme následující relace KLIENT Číslo Jméno Osoba Adresa 00001 Suchánek Jakub F Praha, Dukelská 10 00002 GAMA s. r. o. P Brno, Blahoslavova 113 00003 ALEA s. r. o. P Písek, Praţská 1425 00004 Vrána Jiří F Praha, Vladislavova 1512 00005 EKOSTAV a. s. P Č. Budějovice, Lidická 12 00006 Janoušek Pavel P Písek, Táborská 177 00007 Dvorský Petr F Č. Budějovice, Česká 501 POHYB Druh Účet Identifikace Datum Měna Částka 1 AX 00112233 001 12.09.97 CZK 17 500 2 AX 00221111 003 13.09.97 DEM 24 860 2 BX 01010202 001 14.09.97 GBP 13 500 1 BX 03132333 133-66-89/0100 13.09.97 DEM 28 600 1 CX 01010100 199-58-699/0800 14.09.97 ATS 65 000 1 CX 22112244 2951-856/4200 15.09.97 ATS 19 800 2 BX 03132333 002 16.09.97 CND 7 200 2 CX 01010100 001 17.09.97 DEM 29 500 2 AX 45674567 17-44-694/7100 18.09.97 DEM 36 400 2 BX 00025678 19-25-169/7100 19.09.97 DEM 145 000 2 BX 00032345 135-1587/4200 11.09.97 ITL 25 150 000 1 BX 00121444 17-258-23/7100 13.09.97 DEM 24 300 1 AX 00221111 148-568/0600 14.09.97 USD 49 100 1 CX 01010100 126-235/0800 15.09.97 CZK 2 564 000 ÚČET Číslo Majitel Datum Zůstatek Měna AX 00112233 00001 25.01.1996 25 000 CZK AX 00221111 00004 17.04.1994 175 000 DEM AX 12345678 00006 29.07.1995 80 000 USD AX 32132132 00001 24.05.1997 12 000 DEM AX 45674567 00006 28.10.1996 235 000 CZK BX 00025678 00002 17.04.1998 758 000 CZK BX 00032345 00005 19.07.1996 4 250 600 ATS BX 00121444 00005 27.12.1997 78 000 GBP BX 00123123 00002 08.11.1993 115 000 ATS BX 01010202 00003 14.03.1987 175 000 NLG BX 03132333 00005 25.02.1987 265 000 DEM CX 01010100 00003 30.05.1970 1 250 000 CZK CX 22112244 00005 18.06.1970 758 000 CZK

Příloha 2 : část relačního schématu FILMOVÁ DISTRIBUCE uvaţujme následující relace KINO NázevK Adresa Vesmír ČB, Lannova 110 Orion Písek, Blahoslavova 113 Blaník ČB, Lidická 12 Ponrepo Tábor, Česká 501 PROGRAM NázevK NázevF Datum Vesmír Kolja 12.09.2007 Vesmír Forest Gump 13.09.2007 Vesmír Forest Gump 14.09.2007 Orion Titanic 13.09.2007 Orion Smrtonosná zbraň 14.09.2007 Orion Matrix 15.09.2007 Orion Top Gun 16.09.2007 Orion Forest Gump 17.09.2007 Orion Síť 18.09.2007 Orion Apollo 13 19.09.2007 Blaník Nebezpečné myšlenky 11.09.2007 Blaník Matrix 13.09.2007 Blaník Matrix 14.09.2007 Ponrepo Kleopatra 15.09.2007 FILM NázevF Herec Rok Kolja Svěrák Zdeněk 1996 Forest Gump Hanks Tom 1994 Nebezpečné myšlenky Pfeiffer Michel 1995 Apollo 13 Hanks Tom 1993 Smrtonosná zbraň Gibson Mel 1987 Smrtonosná zbraň Glover Dan 1987 Kleopatra Burton Richard 1970 Kleopatra Taylor Elisabeth 1970 Top Gun Cruise Tom 1986 Top Gun Kilmer Val 1986 Titanic DiCaprio Leonardo 1997 Titanic Winslet Kate 1997 Síť Bullock Sandra 1995 Nebezpečná rychlost Bullock Sandra 1994 Nebezpečná rychlost Reeves Keanu 1994 Matrix Reeves Keanu 1999

Ještě několik příkladů na závěr NRK 1. Vypsat, které filmy z roku 1998 se hrají v kině Blaník p.jménof where (PROGRAM(p) and p.názevk= Blaník and exists f (FILM(f) and f. NázevF =p. NázevF and f.rok=1998) 2. Vypsat firmy, které mají pouze devizová konta k.jméno where KLIENT(k) and k.osoba= P and not exists t ( t.majitel=k.číslo and t.kod= CZK ) ÚČET 2. Vypsat firmy, které mají pouze devizová konta k.jméno where KLIENT(k) and k.osoba= P and forall t ( t.majitel=k.číslo implies t.kod <> CZK ) ÚČET 3. Zjistit jména lidí (fyzických osob), kteří měli v uplynulém měsíci jednotlivý příjem více než 1000000 Kč k.jméno where KLIENT(k) and k.osoba= F and exists t (ÚČET (t) and t.majitel=k.cislo and exists p (POHYB(p) and p.účet=t.cislo and p.druh=1 and p.mena= CZK and p.castka>1000000)) Relační algebra 3. ((POHYB(Druh=1 and Měna = CZK and Částka>1000000)) [Účet= Číslo] ÚČET [Majitel=Číslo] (KLIENT(osoba= F ) [Číslo,Jméno])) [Jméno] 3. jiná notace Jméno ( osoba= F KLIENT)* Majitel=Číslo ÚČET * Číslo=Účet ( Druh=1 and Měna = CZK and Částka>1000000 POHYB) 3. Jméno ( Jméno,Číslo ( osoba= F KLIENT)) * Majitel=Číslo ( Číslo, Majitel ÚČET) * Číslo=Účet ( Účet ( Druh=1 and Měna = CZK and Částka>1000000 POHYB))

DRK 4. Film, který dávají ve všech kinech, kde něco hrají f where forall k (PROGRAM (NázevK:k) implies PROGRAM (NázevF:f, NázevK:k)) f where not exists k (PROGRAM (NázevK:k) and not PROGRAM (NázevF:f, NázevK:k)) 5. Kino, v němž nedávají žádný film k where not exists f (FILM (NázevF:f) and PROGRAM (NázevF:f, NázevK:k)) 6. Kino, kde dávají všechny filmy s Keanu Reevesem k where forall f (FILM (JménoF:f, Herec: Reeves Keanu ) implies PROGRAM (NázevK:k, NázevF:f)) Literatura: [1] ELMASRI, R., NAVATHE, S., B. Fundamentals of Database Systems, 5th edition. Addison- Wesley, 2007. ISBN 978-03-213-6957-4. [2] SILBERSCHATZ, A., KORTH H. F., SUDARSHAN S. Database System Concepts, 5 th edition, New York: McGraw-Hill, 2006. ISBN 978-0-07-295886-7 [3] CONOLLY, T., BEGG, C., HOLOWZAK R. Profesionální průvodce tvorbou databází. Praha: Computer Press, a. s., 2009. ISBN 978-80-251-2328-7. [4] HERNANDEZ, M., J. Návrh databází. Praha: Grada, 2006. ISBN 80-247-0900-7. [5] POKORNÝ, J. Databázová abeceda. Veletiny: Science, 1998, ISBN 80-86083-02-2. [6] POKORNÝ, J., HALAŠKA, I. Databázové systémy, 2. vydání. Praha Vydavatelství ČVUT, 2003, ISBN 80-01-02789-9.