Microsoft Access Databáze s více tabulkami Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie
Databáze s více tabulkami standardní databáze se většinou skládá z více tabulek každá tabulka obsahuje data tvořící jeden celek a tyto ceky jsou pak propojeny konkrétním vztahem relace (vztah) je vždy definována mezi dvěma tabulkami relace mezi tabulkami je realizována pomocí atributu, který je společný pro obě tabulky (např. IČO studované školy v tabulce student a IČO v tabulce škola) -2-
Databáze Studium Ahoj! Vzpomínáte jak jsme začínali s databázemi? Na kartičky? Dnes takovou databázi vyrobíme. Bude mít dvě tabulky: Studenti (Rodné číslo, Jméno, Příjmení, Bydliště, Datum narození, email, IČO studované školy) a Školy (IČO, název, ředitel, adresa, typ školy, email, školné) Postup je jednoduchý. Po dokončení jedné tabulky jednoduše založte druhou. Data žádná nevyplňujte. -3-
Databáze s více tabulkami obě tabulky obsahují stejný atribut (i když není stejně pojmenován): tabulka Školy IČO a tabulka Studenti IČO studované školy aby fungovala relace musí mít oba atributy STEJNÝ DATOVÝ TYP -4-
Relace vytvořené tabulky je třeba před vyplněním dat propojit pomocí relace na kartě Databázové nástroje na kartě Nástroje pro Relace se zvolí tlačítko Zobrazit tabulku kliknutím na název tabulky a následně na tlačítko přidat se tabulka vloží do relace -5-
Definování relace po vložení tabulek do Relace je třeba tabulky relací propojit velikost zobrazené tabulky se dá změnit uchopením a tažením jejího okraje atributy se propojí tak, že se jeden z atributů v jedné tabulce uchopí a PŘETÁHNE SE nad atribut v druhé tabulce (atributy se mohou jinak jmenovat, ale musí mít stejný význam a musí mít stejný datový typ -6-
Definování relace po přetažení atributu na atribut související v druhé tabulce je třeba nastavit vlastnosti relace související atributy referenční integrita hlídá pořádek v databázi s více tabulkami pro správnou funkčnost relace je třeba zajistit REFERENČNÍ INTEGRITU (hlídá změny v souvisejících záznamech, chrání před neúmyslným smazáním relačního atributu -7-
Referenční integrita po zapnutí referenční integrity se uplatní kardinalita mezi propojenými atributy (většinou 1:N) Aktualizace souvisejících polí v kaskádě: pokud dojde ke změně údaje atributu v primární tabulce, relace nebude fungovat, dokud se nezmění související atribut ve druhé tabulce (např. v tabulce školy se přepíše IČO na jiné, v tabulce Studenti ale zůstane IČO původní tedy záznamy spolu podle relace nesouvisí). Aktualizace automaticky změní i související atribut) ZÁZNAMY SPOLU SOUVISÍ NA ZÁKLADĚ STEJNÉ HODNOTY V ATRIBUTECH VLOŽENÝCH DO RELACE (např. IČO a IČO studované školy) -8-
Referenční integrita Odstranění souvisejících polí v kaskádě: pokud je v primární tabulce (např. Školy) smazán záznam v související tabulce (Studenti) zůstanou atributy s hodnotou shodnou se smazaným záznamem (např. IČO smazané školy u studenta). Takový atribut již netvoří žádnou dvojici se záznamem v primární tabulce a je tedy nefunkční (např. student studuje na neexistující škole). Odstranění souvisejících polí automaticky vymaže hodnoty atributu smazaného záznamu ve všech souvisejících záznamech v druhé tabulce. -9-
Dokončená relace naprostá většina relací obsahuje jeden atribut, který je primárním klíčem a atribut, který klíčem není. Vzniká tak relace s kardinalitou 1:N relace se odstraní kliknutím na spojovací čáru pravým tlačítkem a výběrem Odstranit dodatečné úpravy relace se provedou poklepáním na spojovací čáru relace se uloží ikonou s disketou nebo zavřením okna -10-
Zadávání dat do tabulek data se nejprve zadávají do PRIMÁRNÍ TABULKY (tabulka, jejíž primární klíč je součástí relace) a teprve POTOM do tabulky související (nejdříve tabulka školy, pak studenti) záznam v související tabulce se propojí se záznamem v primární tabulce zapsáním stejné hodnoty jakou má požadovaný záznam v primární tabulce (např. IČO studované školy v tabulce Studenti musí být stejné jako IČO některé ze zapsaných škol v tabulce Školy -11-
Jde to i lépe po vyplnění tabulky Školy je možné zadat data do tabulky Studenti pro propojení studenta s konkrétní školou je třeba studentovi do atributu IČO studované školy zapsat IČO školy tedy je třeba si jej pamatovat = velmi nepraktický způsob zápisu pokud vyplníme záznam v primární tabulce (Školy) objeví se na začátku řádku symbol + ve čtverci. tento symbol lze rozevřít a do zobrazené podtabulky zapsat studující studenty na této škole -12-
Takhle to jde lépe primární tabulka s vyplněným záznamem a symbolem + na začátku řádku primární tabulka s rozevřenou související tabulkou kam lze zapsat studenty -13-
Závěrečný úkol Tak to zopakujeme celé. Vytvořte databázi s názvem Zdravotnictví. Tabulka Nemocnice: Název, Ředitel, IČO, Akciová společnost (ano/ne), Adresa Tabulka Zaměstnanci: Rodné číslo, Jméno, Příjmení, Funkce, Délka praxe, IČO zaměstnavatele Mezi tabulkami vytvořte relaci a vyplňte tabulku několika vzorovými záznamy. Mějte se! -14-
Konec prezentace -15-