Filmová databáze III
Autor: Ondřej Kořínek
Oblast z RVP Doporučený stupeň | Informační systémy Střední škola |
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 | Vycházející z předchozího příspěvku Filmová databáze II |
Cíl aktivity | · Žáci nainstalují a nastaví SQL Server a SQL Server Management Studio · Žáci naimportují databáze z programu MS ACCESS na SQL Server pomocí SQL Server Management Studia · Žáci vytvoří kardinality vztahu mezi jednotlivými tabulkami pomocí možnosti Design · Žáci vytvoří struktury tabulek pomocí možnosti Design · Žáci vytvoří tabulky a kardinality vztahu mezi jednotlivými tabulkami pomocí jazyku SQL |
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; žáci musí mít roli administrátora stanice, aby mohli instalovat nový SW, možno vyřešit pomocí dočasných virtuálních strojů · SQL Server Management Studio + SQL Server |
Časová dotace | 4 vyučovací hodiny |
Průběh výuky
Uvedení do problematiky
Tento příspěvek je doplňkem příspěvku Filmová databáze II a uvádí možnost, jak databázi importovat z programu MS ACCESS na SQL Server, případně na SQL Serveru přímo vytvořit dané tabulky a kardinalitu mezi nimi pomocí jazyku SQL (DDL). Vyučujícím může být zvolena jedna z daných možností, buď bod 2, nebo bod 3.
Zadání pro žáky
- Nainstalujte si SQL Server a SQL Server Management Studio.
- Naimportujte filmovou databázi, kterou jste vytvořili v programu MS ACCESS na SQL Server pomocí SQL Server Management Studia. Naimportujte pouze tabulky, danou kardinalitu mezi tabulkami vytvořte pomocí možnosti Design u jednotlivých tabulek.
- Filmovou databázi podle zadání z příspěvku Filmová databáze II vytvořte celou na SQL Serveru pomocí jazyku SQL.
Příprava na výuku
- Instalace by neměla být nikterak složitá, stačí do vyhledávače zadat SQL Server a zvolit nainstalovat např. edici Express a Download SQL Server Management Studio (SSMS), stáhnout a nainstalovat. Při instalaci SQL Serveru je asi nejlepší vybrat typ instalace Basic a pokračovat v doporučeném nastavení. Po nainstalování se zobrazí dialogové okno, které je důležité. Žáci by si měli napsat jméno serveru, aby se k němu potom v počítači dokázali připojit, viz obrázek.
Obrázek 1 – Název serveru; Důležité je celý název vpravo za rovnítkem
Navíc, níže v dialogovém okně je možnost nainstalovat SQL Server Management Studio (SSMS), které nemusejí žáci sami vyhledávat.
Při spuštění Management Studia se zadají/nastaví údaje uvedené na následujícím obrázku. Při lokálním použití na domácím PC doporučuji Windows autentizaci.
Obrázek 2 – Nastavení údajů pro přihlášení do Management Studia
- Níže je uveden postup a upozornění na možné chyby importu, které se mohou přihodit. Je možné, že by si žáci mohli daný postup na internetu najít sami, případně je může vyučující nasměrovat. Je možné, že řešení nemusí být pouze níže uvedené. V postupu jsou uvedeny pouze základní kroky, pokud nějaký krok není uveden, stačí zvolit možnost Next.
- Databázi, kterou máte v programu MS ACCESS, převeďte na typ Databáze aplikace Access 2000. Výsledný soubor bude mít příponu: Microsoft Access Database (.mdb). Převod typu musí být proveden z programu, nelze příponu pouze mechanicky přepsat.
- Připojte se na SQL Server pomocí programu Microsoft SQL Server Management Studio. V něm klikněte pravým tlačítkem myši na svoji (vybranou databázi), zvolte Tasks a Import data, uvedeno níže.
Obrázek 3 – Vybrání importu pomocí SQL Server Management Studia
- Vyberte Microsoft Access a pomocí Browse vyberte příslušnou databázi ve verzi 2000.
Obrázek 4 – Vybrání databáze programu MS ACCESS
- Vyberte možnost Microsoft OLE DB Provider for SQL Server. Mějte správný název serveru. Podle toho, jak se připojujete, vyberte příslušnou Authentication. Pokud máte SQL Server nainstalován na počítači lokálně, zvolte autentizaci Windows.
- Vyberte první možnost
Obrázek 5 – vybrání správné možnosti
- Zaškrtněte tabulky, které chcete importovat. Pokud je v nějaké tabulce v ACCESSU atribut typu Datum, je důležité v tomto kroku kliknout na ikonku tabulky a nastavit pro import místo datového typu Datetime datový typ Date. Pokud by se tak nestalo, je možné, že by se data do tabulky nenaimportovala, vytvořila by se pouze její struktura. Pokud by import neproběhl, ale struktura tabulky by se na SQL Serveru vytvořila, musel by se import takové tabulky provést znovu, ale struktura tabulky na SQL Serveru by se musela odstranit.
Obrázek 6 – Vybrání tabulek pro import
- V dalších krocích, pokud je již možné, se zvolí možnost Finish.
- Mělo by se zobrazit dialogové okno, že import proběhl v pořádku. Pokud je někde nějaký problém, vypíše se a muselo by se postupovat podle instrukcí.
Nyní bude ukázáno, jak se nastaví kardinalita mezi tabulkami.
- Nejdříve se musí nastavit primární klíče v tabulkách.
- Klikneme pravým tlačítkem na tabulku a zvolíme design tabulky
Obrázek 7 – Design tabulky
- V Designu tabulky klikneme pravým tlačítkem na příslušné pole a zvolíme Set Primary Key, změny uložíme, např. při zavření tabulky.
Obrázek 8 – Nastavení primárního klíče
- Nyní nastavíme kardinalitu mezi tabulkami. Je nutné kliknout na podřízenou tabulku, tj. tu, kde bude cizí klíč. Máme tedy tabulku otevřenou v designu jako v předcházejícím kroku. Když máme tabulku otevřenou, klikneme pravým tlačítkem myši kamkoliv do bílé části okna a vybereme možnost Relationships…
Obrázek 9 – Nastavení kardinality vztahu mezi tabulkami
- V příslušném okně zvolíme možnost Add. Zvolíme druhou možnost a klikneme na 3 tečky, viz obrázek.
Obrázek 10 – Nastavení kardinality vztahu mezi tabulkami
- V následujícím dialogovém okně můžeme vybrat pouze propojení primárního klíče (tabulku a následně pole), ovšem nemůžeme vybrat tabulku, která bude podřízená, bude v ní tzv. cizí klíč, proto jsme volili zobrazení podřízené tabulky s cizím klíčem. Nastavíme správně relaci mezi tabulkami, tj. vybereme pod tabulkami příslušné správné atributy. Potvrdíme Ok. Ještě můžeme relaci pojmenovat v Relationship name.
- Pokud bychom chtěli v dané tabulce vytvořit další kardinalitu s další tabulkou, museli bychom po vybrání možnosti Relationships… zvolit opět Add a postupovat stejně podle kroků uvedených výše.
- Pokud bychom si chtěli zobrazit relaci, kterou jsme vytvořili, klikneme na Database Diagrams a vybereme nový. Pokud by to nešlo a zobrazovala by se nám nějaká chyba, tak Management studio zavřeme, otevřeme, případně ještě zkusíme Refresh. Dále přidáme příslušné tabulky.
Obrázek 11 – Vytvoření relace mezi tabulkami
- Pomocí Management Studia mohou žáci vytvořit tabulku i v návrhovém zobrazení, stejně jako v programu MS ACCESS. Možnost je uvedena níže na obrázku.
Obrázek 12 – Vytvoření tabulky v návrhovém zobrazení
Výhoda tohoto postupu je taková, že žáci si mohou zobrazit, jaké datové typy mohou používat, viz následující obrázek. Tj. třeba si mohou zkontrolovat, jestli mají navržené datové typy správně, případně jaké datové typy mají na výběr.
Obrázek 13 – Vytvoření tabulky v návrhovém zobrazení
V této části bude primárně ukázáno vytvoření filmové databáze pomocí příkazů DDL jazyku SQL. Pro inspiraci žáci mohou využít např. následující webové stránky, které obsahují spoustu informací a příkladů, https://www.w3schools.com/.
Pro vytvoření nového dotazu se v SQL Serveru Management Studiu klikne na New Query a napíše se příslušný kód. Důležité při vytváření kardinality vztahu mezi tabulkami je přidat do příslušné tabulky atribut cizího klíče, pomocí CONSTRAINT pojmenovat kardinalitu vztahu. Pozor, i v různých tabulkách musí být tento název odlišný. Nemohu ve více tabulkách pojmenovat kardinalitu vztahu stejným názvem. Pomocí FOREIGN KEY určit, jaký atribut je cizím klíčem. A dále pomocí REFERENCES se odkázat na tabulku, ve které je cizí klíč primárním klíčem. Níže jsou uvedeny obrázky možného navržení daných tabulek. Nejdříve je nadefinovaná tabulka Film a dále jsou nadefinované další tabulky, které s ní souvisejí. Z popisu obrázků by snad mělo být vše jasné. Ve vazebních tabulkách kardinality vztahu M:N, oproti návrhu v předcházejícím příspěvku, jsou uvedeny primární klíče.
Obrázek 14 – Vytvoření tabulky Film pomocí jazyku SQL
Obrázek 15 – Vytvoření kardinality M:N mezi tabulkou Film a tabulkou Produkce.
Obrázek 16 – Vytvoření kardinality M:N mezi tabulkou Film a tabulkou Žánry
Obrázek 17 – Vytvoření tabulky Národnost pomocí jazyku SQL
Obrázek 18 – Vytvoření kardinality M:N mezi tabulkou Film a tabulkou Herec
Obrázek 19 – Vytvoření kardinality M:N mezi tabulkou Film a tabulkou Režisér
Obrázek 20 – Vytvoření kardinality M:N mezi tabulkou Film a tabulkou Recenzent
Organizace práce
- Žáci instalují SQL Server a SQL Server Management Studio.
- Žáci importují filmovou databázi z prostředí MS ACCESS na SQL Server pomocí SQL Server Management Studia. Vytváří kardinality mezi tabulkami.
- Žáci vytváří filmovou databázi pomocí jazyku SQL.
Na co si dát pozor
- Občas pomůže zvolení možnosti Refresh. Případně, kdyby nešla nějaká nastavení, z důvodu rozsahu zde nebudou uvedena, stačí se obvykle z SQL Server Management Studio odhlásit a přihlásit znovu.
Alternativní řešení
- 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 a SQL Server Management Studio