Geodatabáze – cvičení 5 Mgr. Josef Chrást (269703@mail.muni.cz) znak_PrF_cerny_RGB.emf Obsah cvičení —Kombinování dat z více tabulek ◦Spojení –WHERE –JOIN —Databáze oblíbených filmů ◦Návrh tabulek ◦Integritní omezení –Doménová –Referenční ◦Spojení - SELECT ◦ ◦ 29.10.2013 2 Spojení —Kombinace sloupců z více tabulek do jediného výsledku dotazu —Spojení ◦Křížové –kartézský součin vstupních množin ◦Vnitřní – spojení na základě vazby primárního a cizího klíče ◦Vnější –zahrnutí nespárovaných řádků alespoň jedné z tabulek 29.10.2013 3 Vnitřní spojení —WHERE — — —JOIN ◦ — Př. : 1) SELECT nazev_filmu, zanr FROM filmy JOIN zanr_filmu ON filmy.id_film = zanr_filmu.id_film 2) SELECT nazev_filmu, zanr FROM filmy JOIN zanr_filmu USING (id_film) 29.10.2013 Př. : 1) SELECT nazev_filmu, zanr FROM filmy, zanr_filmu WHERE filmy.id_film = zanr_filmu.id_film AND reziser_prij = ‘Frič’ 4 Filmová databáze —Nedostatky z minule ◦Jedna tabulka ◦Omezené množství uložených informací ◦Porušení podmínek základních normálních forem –Atomičnost uložených informací –Závislost na celém primárním klíči –Bez závislostí mezi neklíčovými atributy ◦ – 29.10.2013 nazev reziser_prij rok_produkce hodnoceni_csfd delka zeme_puvodu zanr_filmu Forrest Gump Zemeckis 1994 95 142 USA Drama/Komedie/Romantický Tenkrát na Západě Leone 1968 91 166 Itálie/USA Western/Dobrodružný … id_film nazev kod_zanru popis_zanru 1 Dědictví aneb Kurvahošigutntág Ko Komedie 2 Sedm statečných W Western 3 U pokladny stál Ko Komedie … 5 Cvičení —Navrhněte databázi oblíbených filmů obsahující popisné informace o filmech (český název, anglický název, rok produkce, žánr, …) a jejich hereckém obsazení (jméno, příjmení, datum narození, …). —Dbejte na správnou volbu datových typů, omezení sloupců a definování odpovídající referenční integrity! —Úkoly —Vypište z tabulek všechny komedie i s hereckým obsazením a proveďte jejich seřazení sestupně podle hodnocení ČSFD? —V jakých filmech (dle žánru) hraje Váš oblíbený herec (herečka)? Uveďte český i německý název filmu a proveďte jejich seřazení vzestupně podle roku produkce. — — — — — 29.10.2013 6 Integritní omezení —Primární klíč — — — — —Cizí klíč — 29.10.2013 Př. : 1) CREATE TABLE filmy (id_film INT PRIMARY KEY, nazev VARCHAR (40), …) 2) CREATE TABLE filmy (id_film INT CONSTRAINT pk_filmy PRIMARY KEY, …) 3) CREATE TABLE filmy (id_film INT, nazev VARCHAR (40), …, PRIMARY KEY (id_film)) 4) CREATE TABLE filmy (id_film INT, …, CONSTRAINT pk_filmy PRIMARY KEY (id_film)) 5) ALTER TABLE filmy ADD CONSTRAINT pk_filmy PRIMARY KEY (id_film)) Př. : 1) CREATE TABLE zanr_filmu (id_film INT, zanr_filmu TEXT, PRIMARY KEY (id_film, zanr_filmu), FOREIGN KEY (id_film) REFERENCES filmy (id_film)) 2) ALTER TABLE zanr_filmu ADD CONSTRAINT fk_zanr_filmu FOREIGN KEY (id_film) REFERENCES filmy (id_film) 7 Filmová databáze ERD_cviceni5.jpg 29.10.2013 8