Komplexní datové modelování Tomáš Hrabal JOIN opakování databáze: IS - Studijní materiály, 9. přednáška https://is.muni.cz/auth/el/1421/podzim2018/VIKBB68/um/09_prednaska/books_c omplex.sqlite Opakování WHERE a HAVING dohromady Vypiš všechny vydavatelství mající v názvu “a” a počet knih jejichž název je delší než 9 vydaných tímto vydavatelstvím. Vydaných knih od tohoto vydavatelství musí být mezi 100 - 300. OPAKOVÁNÍ POUŽITÍ LEFT JOIN A DŮLEŽITOSTI POŘADÍ TABULEK Najdi všechny knihy a spočítej používané jazyky (i knihy bez jazyku). Vypiš jazyk a počet knih v něm napsaných. Najdi všechny knihy s vyplněným jazykem. Vypiš jazyk a počet knih v něm napsaných. Vypiš všechny jazyky a k nim spočítej počet knih v něm napsaných. Co když kniha nemá v databázi jazyk nebo vydavatele? Co když má kniha více jazyků? VAZBA MEZI TABULKAMI M:N ● knihu může napsat více autorů (kniha : autor == 1:N ) ● autor může napsat více knih (kniha : autor == N:1) ------ M:N ● vztah předmět a učitel ● vztah diskuze pod předmětem a diskuzní příspěvek ● vztah student a předmět VAZEBNÍ TABULKA ODKAZUJÍCÍ SE NA PRIMÁRNÍ KLÍČE SPOJOVANÝCH TABULEK - pro zobrazení vztahu M:N se používá vazební tabulka (v našem případě books_authors) - na každém řádku se zobrazuje v jakém vztahu je kniha (book_id) a autor (author_id) skrze primární klíče tabulek knih (books) a autorů (authors) GROUP a GROUP_CONCAT Vypiš knihu a všechny autory knihy. Vypiš knihy, autory knihy a počet autorů knihy. Seřaď podle počtu autorů sestupně. DISTINCT - “spojí” duplicitní záznamy Vypiš počet unikátních autorů pomocí tabulky books_authors. Vypiš autory s nejvíce napsanými knihami a počet jejich knih. Seřaď podle počtu knih sestupně. Vyřaď duplicity podle názvu! (můžete vyzkoušet i podle id knihy) Pokud používáme agregační funkce, je třeba se zamyslet nad čím používáme GROUP. Název knihy nemusí být to samé jako id knihy. V optimální databázi bychom např. unikátní knihy našli pomocí ISBN. V naší se musíme spolehnout na název knihy, který ale unikátnost nezajišťuje. Vypiš knihy autora s id 3563. Vypiš knihy autora se jménem “Jaroslav Peprník”. Vypiš vydavatele, počet knih a počet autorů knih kde: Jméno vydavatele je kratší než 10 znaků, název knihy začíná nebo končí na “1” a počet autorů je více než 3. Seřaď podle počtu knih sestupně.