Navrhování databází MS Access (2)
Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická škola pro tělesně postižené, Janské Lázně, Obchodní 282 Tento projekt je financován Evropskou unií – Evropským sociálním fondem a státním rozpočtem ČR. Autor:Mgr. Josef Kulhavý Předmět:Informační technologie
Obsah Tvorba databáze1 Primární klíč2 K čemu více tabulek?3 Špatné řešení4 Lepší řešení5 Rozložení vztahu N:N6 Nejlepší řešení7 Výhody rozdělení8 Požadavky na tabulku9 10 Vztahy mezi tabulkami11
Přípravná fáze – Návrh schéma báze dat – Modelování reálného světa Technická fáze – Pomocí jazyka SQL vytváříme databázi na počítači Uživatelská fáze – Užíváme databáze Tvorba databáze 1
Identifikátor (id) Jednou z vlastností musí být vždy nějaký identifikátor (Označení knihy v knihovně, ISBN) – Umožní jednoznačně odlišit jednotlivé položky Jednotlivé tabulky v databázi mohou být provázané – Tabulka Výpůjčky může obsahovat odkazy na tabulku knih Primární klíč 2
K čemu více tabulek? Špatné řešení: – Jediná tabulka = každá výpůjčka se zobrazí jako nový řádek s názvem knihy, autorem, jménem a příjmením čtenáře, … – Hodně údajů se opakuje… Lepší řešení: – Vytvořit dvě tabulky: – Čtenáři – seznam všech čtenářů – Knihy – seznam všech knížek – U čtenáře budeme zapisovat číslo knihy, kterou má zapůjčenou 3
Špatné řešení Č_vČ_kNazevAutorVydavatelRokISBNČ_čJmenoPrijmeniBydlisteZapujceniVraceni 1123NeuniknešCh. LarsonMotto JosefNovákTrutnov15.V28.V 2144U všech čertůI. HoufAlbatros JosefNovákTrutnov15.V28.V 3176Norman a duchovéE.C. KimmelováMladá fronta JosefNovákTrutnov15.V7.VI 4188Zeptej se hvězdK. FischerováMladá fronta PavlínaRůžováNáchod22.V28.V 5123NeuniknešCh. LarsonMotto PavlínaRůžováNáchod22.V23.VI 6202Imagine LogoA. BlahoComputer press X78PavelHorníkÚpice22.V23.VI 7188Zeptej se hvězdK. FischerováMladá fronta PavelHorníkÚpice22.V30.V 8244Zhoubné houbyR. SochaPortál JiříKřížekÚpice29.V30.V 9233Atlas světa pro děti -Junior JiříKřížekÚpice29.V30.V 10144Norman a duchovéE.C. KimmelováMladá fronta JiříKřížekÚpice29.V7.VI 11202Imagine LogoA. BlahoComputer press X99JiříKřížekÚpice29.V7.VI 12176Norman a duchovéE.C. KimmelováMladá fronta JosefNovákTrutnov7.VI23.VI 4
Lepší řešení 5 Č_kNazevAutorVydavatelRokISBNČ_čJmenoPrijmeniBydlisteZapujceniVraceniKniha 123NeuniknešCh. LarsonMotto JosefNovákTrutnov15.V28.V U všech čertůI. HoufAlbatros JosefNovákTrutnov15.V28.V Norman a duchovéE.C. KimmelováMladá fronta JosefNovákTrutnov15.V7.VI Zeptej se hvězdK. FischerováMladá fronta PavlínaRůžováNáchod22.V28.V Imagine LogoA. BlahoComputer press X35PavlínaRůžováNáchod22.V23.VI Zhoubné houbyR. SochaPortál PavelHorníkÚpice22.V23.VI Atlas světa pro děti -Junior PavelHorníkÚpice22.V30.V188 99JiříKřížekÚpice29.V30.V244 99JiříKřížekÚpice29.V30.V233 99JiříKřížekÚpice29.V7.VI144 99JiříKřížekÚpice29.V7.VI202 22JosefNovákTrutnov7.VI23.VI176
Rozložení vztahu N:N Nejlepší řešení: – Přidáme tabulku Výpůjčky – Bude obsahovat atributy (sloupce): Číslo knihy Číslo čtenáře Datum výpůjčky Datum vracení 6
Č_kNazevAutorVydavatelRokISBNČ_vČ_kČ_čZapujceniVraceni 123NeuniknešCh. LarsonMotto V28.V 144U všech čertůI. HoufAlbatros V28.V 176Norman a duchovéE.C. KimmelováMladá fronta V7.VI 188Zeptej se hvězdK. FischerováMladá fronta V28.V 202Imagine LogoA. BlahoComputer press X V23.VI 244Zhoubné houbyR. SochaPortál V23.VI 233Atlas světa pro děti -Junior V30.V V30.V Č_čJmenoPrijmeniBydliste V30.V V7.VI 22JosefNovákTrutnov V7.VI 35PavlínaRůžováNáchod VI23.VI 78PavelHorníkÚpice 99JiříKřížekÚpice Nejlepší řešení 7
Jednoduchost a přehlednost Šetření paměti Pro propojení tabulek je nutnost společných sloupců. Vytváříme malé a jednoduché tabulky, které lze propojit pomocí společných sloupců Braňme nadbytečnosti – opakovatelnosti údajů a nevkládejme zbytečnosti (sloupec lze vždy přidat). Výhody rozdělení 8
Požadavky na tabulku (1) Všechny hodnoty elementární – tj. dále nedělitelné Pořadí sloupců je nevýznamné Pořadí řádků je nevýznamné Řádky musí být rozlišitelné – tabulka nesmí obsahovat dva zcela stejné řádky Špatně: Správně: 9 jmeno Karel Novák Jiří Smetana Eliška Levá Jiřina Filipi jmenoprijmeni KarelNovák JiříSmetana EliškaLevá JiřinaFilipi
Požadavky na tabulku (2) Sloupce jsou homogenní (údaje stejného druhu) Každý sloupec má jednoznačné jméno Sloupec, který jednoznačně určuje řádky v tabulce se označuje jako primární klíč Špatně: Správně: 10 zaměstnanecděti NovákPavel, Anna Smetana2x LeváEva Filipinemá zaměstnanecdítě 13Pavel 13Anna 24? ? 46Eva
Vztahy mezi tabulkami N:1 – Více řádků (N) z jedné tabulky může mít vztah k jedinému řádku (1) z jiné tabulky 1:N – Jediný řádek (1) z jedné tabulky může mít vztah k více řádkům (N) z jiné tabulky N:N – Více řádků (N) z jedné tabulky může mít vztah k více řádkům (N) z jiné tabulky 1:1 – Jediný řádek (1) z jedné tabulky může mít vztah k jedinému řádku (1) z jiné tabulky 11
ani/databaze-uvod/ /soubory/pictures/knihovna-den.jpg Použité zdroje