Filmová databáze II
Autor: Ondřej Kořínek
Oblast z RVP Doporučený stupeň | Informační systémy SŠ, případně pokročilejší 2. stupeň ZŠ |
Naplňované výstupy RVP | · identifikuje jejich jednotlivé prvky a vztahy mezi nimi; zvažuje možná rizika při navrhování i užívání informačních systémů · nastavuje zobrazení, řazení a filtrování dat v tabulce, aby mohl odpovědět na položenou otázku; využívá funkce pro automatizaci zpracování dat · vymezí problém a určí, jak při jeho řešení využije evidenci dat; na základě doporučeného i vlastního návrhu sestaví tabulku pro evidenci dat a nastaví pravidla a postupy pro práci se záznamy v evidenci dat · sám evidenci vyzkouší a následně zhodnotí její funkčnost, případně navrhne její úpravu |
Vstupní požadavky na žáky | · Žáci by měli umět vyhledávat informace na internetu, případně na konkrétních webových stránkách. · Žáci by měli umět vytvořit kardinalitu mezi tabulkami. · Žáci by měli být obeznámeni/měli by umět, jakým způsobem se může navrhnout databázová schéma/relace podle zadaných kritérií. · Žáci by měli umět přetransformovat fyzický model dat do příslušného zvoleného programu. · Žáci by měli umět vytvořit tabulky a vložit do nich záznamy. · Žáci by měli umět vytvořit dané dotazy podle zadaných kritérií. · Žáci mohou mít základy jazyku SQL, především DML. |
Cíl aktivity | · Žáci naleznou a kriticky zhodnotí dostupné filmové databáze na internetu. · Žáci navrhnou vlastní filmovou databázi a filmovou databázi podle zadání. · Žáci zhodnotí vlastní i navrženou filmovou databázi podle zadání, zhodnotí klady a zápory daných řešení. · Žáci navrhnou a dle zadání vytvoří funkční filmovou databázi, kterou naplní odpovídajícími daty. · Žáci vytvoří zadané dotazy a určí, o které dotazy se jedná. |
Rozvíjené kompetence | Klíčové kompetence prolínající se s rozvojem digitální gramotnosti žáků: Kompetence k učení
Kompetence k řešení problémů
Kompetence komunikativní
Kompetence sociální a personální · při vytvoření tabulky/tabulek / kardinalit vztahů / entit spolupracuje se spolužáky |
Potřebné vybavení | · PC, internet, webový prohlížeč · MS ACCESS · SQL Server Management Studio + SQL Server |
Časová dotace | 10 – 12 vyučovacích hodin |
Uvedení do problematiky
Daný příspěvek uvádí možnost navržení filmové databáze úplně od začátku. Databázi je možné navrhnout pomocí programů MS ACCESS, resp. SQL Server Management Studio. Záleží, v kterém prostředí vyučující se žáky pracuje. Jak se vytváří tabulky a relace na SQL Serveru, případně, jak je možné naimportovat tabulky z MS ACCESS na SQL Server je uvedeno v příspěvku Filmová databáze III. I v prostředí MS ACCESS se dají psát dotazy pomocí jazyku SQL, pomocí možnosti Zobrazení SQL, takže si žáci mohou daný dotaz vytvořit např. v návrhovém zobrazení a pak si zobrazit i kód v SQL. Kód v tomto prostředí není ovšem tolik přehledný a jsou v něm určité odlišnosti, ale pro základní pochopení jazyku SQL by měl být dostačující. Zvolil jsem i ukázky na SQL Serveru, jelikož se jedná již o profesionální nástroj, který se využívá v praxi. Je možné vše navrhnout pouze v programu MS ACCESS s tím, že žáci dotazy navrhnou pomocí návrhového zobrazení a pak se snaží s pomocí zobrazení SQL pochopit, jaké příkazy v jazyce SQL odpovídají možnosti vytvoření v návrhovém zobrazení. Návrh filmové databáze by mohl být pro žáky zábavný i motivující, protože obvykle žáci nějaký film/seriál sledují a toto téma by jim mohlo být blízké, a i pro ně zajímavé. Daný návrh z bodu 2 již může být pokročilejší návrh databázového systému. Návrh databáze je možné realizovat různými způsoby, v příspěvku je uvedena pouze jedna varianta, aby to pro žáky bylo co nejvíce pochopitelné a případné další návrhy databázových systémů pro ně byly již pochopitelnější a zvládnutelnější. Co by žáci měli již umět, je uvedeno ve výše uvedené tabulce v sekci Vstupní požadavky na žáky. Tato práce může být náplní na celkem velké množství hodin výuky. Proto je snaha o zadání komplexnějšího příkladu. Zadání ovšem není úplně vyčerpávající, může se upravit podle požadavků a zkušeností vyučujících.
Průběh výuky
- Vyhledejte na internetu alespoň 3 webové stránky, které se zabývají filmovými databázemi. Tyto webové stránky zhodnoťte, napište, jaké mají výhody/nevýhody. Kromě výhod uveďte např. jaká je jejich přehlednost, funkcionalita apod. Tj. napište recenzi k daným webovým stránkám. Dále se na zadané filmové databáze podívejte z pohledu databázových systémů a navrhněte, jaké tabulky, resp. kardinalitu vztahů mezi tabulkami by dané filmové databáze mohly mít, tj. jak byste filmovou databázi z pohledu databázových systémů navrhli vy. Navrhněte alespoň pět základních tabulek.
- Navrhněte v programu MS ACCESS/SQL Server Management Studio filmovou databázi podle následujícího zadání. V podkapitole Pravidla pro práci s daty jsou uvedeny entity/tabulky a jaká je mezi nimi kardinalita vztahu. V podkapitole Fyzický model dat jsou uvedeny entity/tabulky s jejich atributy a datovými typy k jejich realizaci ve výše uvedených programech. Atribut, který je primárním klíčem, je vyznačen tučně. Cizí klíče nejsou u atributů entit/tabulek uvedeny.
Pravidla pro práci s daty
Film-Produkce
- Každý/jeden film může distribuovat více produkcí.
- Každá produkce může distribuovat více filmů.
Film-Žánr
- Každý film může obsahovat více žánrů.
- Každý žánr se může vyskytovat ve více filmech.
Film-Recenzent
- Každý recenzent může recenzovat více filmů.
- Každý film může být recenzován více recenzenty.
- U tohoto vztahu chceme dále sledovat Id hvězdy, tj. identifikace herce, který je podle recenzenta ve filmu hvězdou.
- U tohoto vztahu chceme dále sledovat hodnocení, kolik dali jednotliví recenzenti procentuální hodnocení danému filmu.
Film-Režisér
- Každý režisér může režírovat více filmů.
- Každý film může být režírován více režiséry.
Film-Herec
- Každý herec může hrát ve více filmech.
- V každém filmu může hrát více herců.
- U tohoto vztahu chceme dále sledovat roli, kterou daný herec v daném filmu ztvárnil. Datový typ tohoto atributu je text (100).
Herec-Národnost
- Každý herec může být pouze jedné národnosti.
- Každé národnosti může být více herců.
Režisér- Národnost
- Každý režisér může být pouze jedné národnosti.
- Každé národnosti může být více režisérů.
Recenzent – Národnost
- Každý recenzent může být pouze jedné národnosti.
- Každé národnosti může být více recenzentů.
Fyzický model dat
- Film (Id filmu: číslo, Název filmu: text (50), Premiéra: datum, Rozpočet: měna, Tržby: měna)
- Produkce (Id produkce: číslo, Název produkce: text (50))
- Žánry (Id žánru: číslo, Název žánru: text (50))
- Recenzent (Id recenzenta: číslo, Jméno: text (50), Příjmení: text (50), Přezdívka: text (50))
- Národnost (Id národnosti: číslo, Národnost: text (50))
- Režisér (Id režiséra: číslo, Jméno: text (50), Příjmení: text (50))
- Herec (Id herce: číslo, Jméno: text (50), Příjmení: text (50), Datum narození: Datum, Poznámka: text (100))
Zhodnoťte zadání v tomto bodě s vaším řešením, které jste vytvořili v bodě 1.
- Do každé tabulky přidejte minimálně 5 záznamů podle vašeho výběru. Snažte se přidat relevantní informace, které vyhledáte na internetu.
- V programu MS ACCESS/SQL Server Management Studio vytvořte následující dotazy. U každého dotazu uveďte, o jaký typ dotazu se jedná. Na výběr máte následující typy dotazů: výběrový, souhrnný, aktualizační, křížový, přidávací, odstraňovací.
- Vypište seznam herců (všechny informace) z tabulky Herec.
- Vypište seznam filmů (název filmu a premiéru), jejichž tržby byly větší než jejich rozpočet.
- Vypište jméno, příjmení a datum narození herce, kteří se narodili v 90. letech.
- Vypište jméno a příjmení režisérů, jejichž příjmení začíná na písmeno P a seřaďte je sestupně.
- Vypište názvy filmů, které začínají na písmeno U nebo V a seřaďte je vzestupně.
- Vypište, jaké role hrál v jednotlivých filmech daný herec. Seřaďte podle příjmení herce.
- Vypište pouze akční filmy. Seřaďte je podle názvu filmu.
- Vypište film, který měl největší tržby.
- Vypište průměrné rozpočty filmů.
- Vypište, který film byl nejvíce ziskový, podle rozpočtu/tržeb.
- Vypište přehled herců a jakou mají národnost. Pod sebe vypište jméno a příjmení herce, vedle nich do třech sloupečků národnosti a u každého herce bude 1 v tom sloupci/atributu, jaké je národnosti.
- Zvyšte cenu všech rozpočtů filmů o 10%.
- Zvyšte cenu všech rozpočtů filmů o 10%, ale pouze akčních filmů.
Příprava na výuku
- Filmových databází je na internetu mnoho, uvedu vybrané, např. https://www.imdb.com, https://www.csfd.cz/, https://www.fdb.cz . Všechny mají funkcionalitu podobnou, ale mohou se lišit v detailech. Žáci samozřejmě mohou problematiku vidět z různých úhlů pohledů. Např. na FDB.cz je u filmů zároveň vidět seznam herců, jejich role i věk herců, tj. v kolika letech danou postavu ztvárnili. Dalšími ukazateli mohou být třeba žebříčky hodnocení filmů/herců, uvedení, jestli herci získali nějaké ceny, případně, kolikrát byli nominováni. Jestli jsou u jednotlivých filmů např. fotogalerie apod. Z tohoto důvodu by se měl vyučující seznámit alespoň se základní funkcionalitou některé webové stránky, která se zabývá problematikou filmové databáze. Tato část práce je ovšem především na aktivitě žáků, ve které mohou předvést svojí kreativitu.
- V zadání nejsou uvedeny spojovací tabulky mezi kardinalitou vztahu M:N mezi jednotlivými tabulkami. U nich by se měl také nastavit primární klíč. Níže je uvedena kardinalita mezi tabulkami z programu MS ACCESS i se spojovacími tabulkami, kvůli kardinalitě M:N.
Obrázek 1 – Relace podle zadání filmové databáze z bodu 2 v prostředí MS ACCESS
- Přidání záznamů by nemělo být obtížné. Důležité je záznamy do tabulek přidávat od tabulek, které nemají u žádné z kardinalit symbol nekonečna. Tj. nejdříve např. zadávat záznamy do tabulek Národnost (po zadání do této tabulky již můžeme zadávat záznamy do tabulky Herec), Produkce, Film, Žánry…
Pokud žáci pracují v prostředí Management studia, údaje mohou zadat např. v Editaci tabulky nebo pomocí SQL příkazů:
INSERT INTO tabulka (sloupec 1, sloupec 2, sloupec 3, …)
VALUES (hodnota 1, hodnota 2, hodnota 3, …);
Případně:
INSERT INTO tabulka
VALUES (hodnota1, hodnota2, hodnota3, …);
- Níže je uvedeno řešení jednotlivých příkazů v prostředí MS ACCESS i jazyku SQL v SQL Server Management Studio. Příklady jsou řazeny od jednodušších po těžší, ale nemusí to být nutná podmínka. U každého příkladu je uvedeno, o který typ dotazu se jedná. Konkrétně se jedná o pouze tyto typy dotazů: výběrový, souhrnný, aktualizační, křížový. Další, které mají žáci uvedeny, jsou v zadání navíc. Na tomto by se mělo poznat, jestli žáci problematice rozumějí a netipují.
- Dotaz 1: výběrový
Obrázek 2 – Řešení dotazu 1 v MS ACCESS (vlevo) a SQL Server Management Studio (vpravo)
- Dotaz 2: výběrový
Obrázek 3 – Řešení dotazu 2 v MS ACCESS (vlevo) a SQL Server Management Studio (vpravo)
- Dotaz 3: výběrový
Obrázek 4 – Řešení dotazu 3 v MS ACCESS (nahoře) a SQL Server Management Studio (dole)
- Dotaz 4: výběrový
Obrázek 5 – Řešení dotazu 4 v MS ACCESS (vlevo) a SQL Server Management Studio (vpravo)
- Dotaz 5: výběrový
Obrázek 6 – Řešení dotazu 5 v MS ACCESS (vlevo) a SQL Server Management Studio (vpravo)
- Dotaz 6: výběrový
Obrázek 7 – Řešení dotazu 6 v MS ACCESS (nahoře) a SQL Server Management Studio (dole)
- Dotaz 7: výběrový
Obrázek 8 – Řešení dotazu 7 v MS ACCESS (nahoře) a SQL Server Management Studio (dole)
- Dotaz 8: výběrový; Aby se v ACCESSU zobrazil pouze jeden záznam, je potřeba data setřídit a v Zobrazení SQL dopsat za klauzuli SELECT příkaz TOP 1.
Obrázek 9 – Řešení dotazu 8 v MS ACCESS (vlevo) a SQL Server Management Studio (vpravo)
- Dotaz 9: souhrnný; U tohoto typu dotazu v jeho návrhu je potřeba zaškrtnout možnost Souhrny
Obrázek 10 – Řešení dotazu 9 v MS ACCESS (nahoře) a SQL Server Management Studio (dole)
- Dotaz 10: souhrnný
Obrázek 11 – Řešení dotazu 10 v MS ACCESS (vlevo) a SQL Server Management Studio (vpravo)
- Dotaz 11: křížový
Obrázek 12 – Řešení dotazu 11 v MS ACCESS (nahoře) a SQL Server Management Studio (dole)
- Dotaz 12: aktualizační
Obrázek 13 – Řešení dotazu 12 v MS ACCESS (nahoře) a SQL Server Management Studio (dole)
- Dotaz 13: aktualizační
Obrázek 14 – Řešení dotazu 13 v MS ACCESS (nahoře) a SQL Server Management Studio (dole)
Organizace práce
- Žáci vyhledávají na internetu stránky, které se zabývají tematikou filmové databáze. Dané webové stránky mezi sebou hodnotí, tj. píší jejich recenze, které odevzdají a před spolužáky zhodnotí. Dále z funkcionalit filmových databází na vybraných stránkách navrhnou svůj návrh filmové databáze. Svoje návrhy také odevzdají a prezentují před spolužáky.
- Žáci dostanou zadání filmové databáze od vyučujícího, které zrealizují a následně zhodnotí svoje řešení z předcházejícího bodu s návrhem řešení od vyučujícího.
- Žáci přidají do každé tabulky minimálně 5 záznamů, které budou odpovídat realitě, tj. využijí informace z vyhledaných stránek filmových databází.
- Žáci podle zadání vytvoří dané dotazy a ke každému dotazu napíší, o který typ dotazu se jedná.
Na co si dát pozor
- Vyučující by se měl s jednotlivými body zadání/řešení seznámit a vzít v úvahu i různé alternativy, proč např. žáci nemají vhodně nastavené kardinality mezi tabulkami, v čem vidí přínosy konkrétních webových stránek s filmovou databází apod.
Alternativní řešení
- U bodu 1 v Organizaci práce mohou žáci na recenzích i návrhu filmové databáze pracovat nejen samostatně, ale i ve skupině.
- Skupinová práce se dá využít i u bodu 2.
- Dalším prostředím, kde je možné danou filmovou databázi vytvořit, je alternativa k SQL Serveru a Management Studiu: databáze MySQL k SQL Serveru a software phpMyAdmin k Management Studiu.
Zdroje:
- Snímky obrazovek: autor Ondřej Kořínek; zdroj vlastní, prostředí Microsoft Access 2019