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) Mgr. Jan veverka
14.3.2012
-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.
Mgr. Jan veverka
14.3.2012
-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 Mgr. Jan veverka
14.3.2012
-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
Mgr. Jan veverka
14.3.2012
-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 Mgr. Jan veverka
14.3.2012
-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 Mgr. Jan veverka
14.3.2012
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) Mgr. Jan veverka
14.3.2012
-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. Mgr. Jan veverka
14.3.2012
-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 Mgr. Jan veverka
14.3.2012
-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 Mgr. Jan veverka
14.3.2012
-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
Mgr. Jan veverka
14.3.2012
-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 Mgr. Jan veverka
14.3.2012
-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!
Mgr. Jan veverka
14.3.2012
-14-
Konec prezentace
Mgr. Jan veverka
14.3.2012
-15-