970 likes | 1.14k Views
DATABÁZOVÉ SYSTÉMY 01. MS Access. Fyzický model. Vysvětlení pojmu Je to, jakým způsobem je reálný svět vymodelován fyzický pomocí databáze Pojmy fyzického modelu Tabulka (table) Částečně odpovídá v logickém modelu pojme entita Sloupec (column) Odpovídá v logickém modelu pojmu atribut
E N D
DATABÁZOVÉ SYSTÉMY 01 MS Access
Fyzický model • Vysvětlení pojmu • Je to, jakým způsobem je reálný svět vymodelován fyzický pomocí databáze • Pojmy fyzického modelu • Tabulka (table) • Částečně odpovídá v logickém modelu pojme entita • Sloupec (column) • Odpovídá v logickém modelu pojmu atribut • Řádek nebo záznam (row, record) • Odpovídá v logickém modelu pojme n-tice
Vztah ERD a relační model • Entita -> tabulka • Atribut -> sloupec tabulky Tabulka tedy má svůj název a minimálně jeden sloupec.
E/R MODEL – fyzický model Název tabulky • Vypujcky Názvy sloupců tabulky Záhlaví tabulky Řádky – záznamy (rows, records) Tělo tabulky Hodnoty sloupce (values) Sloupce (columns)
Prvky MS Access • Databáze • Tabulka • Dotaz • Formulář • Sestava
Zdroje dat • Tabulka • Dotaz
Tabulka • Tabulka slouží k uchování informací o entitě • Do tabulky se vkládají řádky (=výskyty entity) • Na rozdíl od Excelu (nebo jiných tabulkových kalkulátorů) se během používání databáze nevkládají sloupce (ty jsou vytvořeny při návrhu databáze) • Každý sloupec musí mít definován datový typ (určující jaká informace bude v daném sloupci uložena – text, číslo, datum, obrázek…)
MS Access – vytvoření nové tabulky • Karta Vytvořit – ikonka – Tabulkaa dále jako na předchozím slidu
Tabulka – návrhové zobrazení • Slouží pro detailní definici struktury tabulky • Pr.tl.m. nad konkrétní tabulkou – Návrhové zobrazení
Datové typy sloupců • Text • Číslo • Měna • Datum/čas • ANO/NE • Objekt OLE • Hypertextový odkaz • Příloha • Průvodce s vyhledáním hodnoty
Číslo • Velikost pole – celé číslo nebo desetinné • Formát – obecné číslo nebo pevný • Počet desetinných míst
Nastavení sloupců • Formát – např. velké písmena textu • Velikost pole ve znacích • Definování pravidel zapisování • Záložka „Obecné“ -> „Ověřovací pravidlo“ • Záložka „Obecné“ -> „Ověřovací text“ • Výchozí hodnota • Záložka „Obecné“ -> „Výchozí hodnota“
Primární klíč • Primární klíč se definuje na sloupci tabulky (nebo jako kombinace hodnot několika sloupců) • Primární klíč zajišťuje jedinečnou identifikaci každého výskytu entity (tzn. každého řádku) • Je důležitý pro práci s jednotlivými řádky – pro vyhledání jednoho konkrétního záznamu; zabraňuje uložení zdvojených záznamů do jedné tabulky
Primární klíč • Realizace primárního klíče – vlastnost sloupce (skupiny sloupců) nastavená v databázovém systému (fyzicky se jedná o objekt „index“) • Velmi často se jako primární klíč používá uměle vytvořený sloupec (tzv. „ID“), do kterého se ukládá číselná řada • Tím se eliminuje nutnost volby a dodržování jedinečné hodnoty atributů v tabulce. U některých atributů to ani není možné (např. jedinečnost jména a příjmení, ale i rodné číslo, které by mělo být jedinečné, není na 100 % jedinečné…)
Primární klíč Kolik primárních klíčů můžeme definovat na jedné tabulce? POUZE JEDEN (Může být i složený z více položek)
Alternativní klíč (Alter key AK) • sloupec v tabulce, pomocí kterého také můžeme jednoznačně identifikovat záznam (stejně jako PK) • Na rozdíl od PK však nese reálnou hodnotu (např. RZ_vozidla) • Může být libovolného datového typu
Cizí klíč (Foreign key FK) • Je to primární klíč, který realizuje vazbu do jiné tabulky. má a02kancelar a02id PK a02cislo a02patro … a01zamestnanec a01id PK a02id FK a01rc a01jmeno a01prijmeni a01ulice a01mesto …
Relace v ERD • Relace = vztah • Kardinalita relace: 1:1, 1:N, M:N • M:N nelze realizovat -> nutné upravit na relace 1:N s využitím „spojovací“ tabulky
Relace • Zobrazení - karta Databázové nástroje – ikonka vztahy • Vytvoření relace „škola má třídy“ (nebo také „třídy patří škole“)
Relace mezi dvěma tabulkama • Relace se vytváří v nástroji, který zobrazíme „Databázové nástroje“ -> „Vztahy“ (2007) • Velmi doporučuji vytvářet relace PŘED tím, než do tabulek začneme vkládat data • Před vytvářením relací také vytvořte primární klíče
Relace • Spojíte-li dvě tabulky pomocí sloupců, kde na obou sloupcích je definován primární klíč, Access vytvoří automaticky relaci 1:1 • Spojíte-li dvě tabulky pomocí sloupců, kde pouze jeden z nich je definován jako primární klíč, vytvoří vazbu 1:N • U vazby 1:N můžeme zatrhnout vytvoření „cizího klíče“
Relace v MS Access 2007 • Relace se vytváří v nástroji, který spustíme v nabídce „Databázové nástroje“ -> „Vztahy“ • Nástroj pro vytvoření relace vyžaduje exkluzivní přístup do tabulek (=tabulky NESMÍ být otevřeny v návrhovém režimu!!) • Před definováním relací vytvořte v tabulkách potřebné primární klíče • Doporučuji vytvářet relace PŘED tím, než do tabulek začnete vkládat data
Relace • Spojíte-li dvě tabulky pomocí sloupců, kde na obou sloupcích je definován primární klíč, Access vytvoří automaticky relaci 1:1 • Spojíte-li dvě tabulky pomocí sloupců, kde pouze jeden z nich je definován jako primární klíč, vytvoří vazbu 1:N • Poznámka: U vazby 1:N můžeme zatrhnout vytvoření „cizího klíče“ (volbou „Zajistit referenční integritu“)
Příklad –první tabulka • Vytvořte tabulku ODBERATELE s poli: • ID_ODBERATEL (automatické číslo) • NAZEV (text) • ICO (text) • ADRESA (text)
Příklad – druhá tabulka • Vytvořte tabulku PRODEJ s poli: • ID_PRODEJ (automatické číslo) • ID_ODBERATEL (číslo) • NAZEV_ZBOZI (text) • DATUM (datum) • KUSY (číslo)
Příklad – vytvořte relaci • Vytvořte mezi tabulkami relaci 1:N tak aby platilo, že jeden odběratel může mít více záznamů v tabulce PRODEJ • Relaci nastavte tak, aby v tabulce PRODEJ byl cizí klíč na tabulku ODBERATEL (tzn. aby do tabulky PRODEJ nebylo možné vložit ID odběratele, který neexistuje v tabulce ODBERATEL)
Příklad - relace Primární klíč na tabulce PRODEJ Cizí klíč na v tabulce PRODEJ Poklepáním myši lze vytvořenou Vazbu editovat Primární klíč na tabulce ODBERATEL
Důsledek vytvoření relace • Vytvořená relace se projeví při návrhu dotazů, formulářů a sestav – průvodce pro vytvoření využije existující relace • Prostřednictvím vytvoření relace vytvoříme „cizí klíč“.
K čemu je formulář? • Vkládání, úprava, zobrazení dat • Zdroj dat – tabulka nebo dotaz • Vytvoření: • Automatický formulář (Vytvořit/Formulář) • Průvodce • Návrhové zobrazení
Příklad • V seznamu tabulek označte tabulku „ODBERATELE“ • Vytvořte automatický formulář • Vytvořit / Formulář • Formulář otevřete v „Návrhovém zobrazení“ • Upravte nadpis formuláře • Formulář uložte a spusťte pomocí „Otevřít“ • Zkuste vložit do tabulek data
Formulář - tlačítko • Přidejte do formuláře tlačítko • Nastavte mu vlastnost „zavřít“ – kategorii, akci • Vyzkoušejte funkci tlačítka Poznámka – na tlačítku jsme pomocí průvodce definovali makro.
Pole se vzorcem • Vložte do formuláře label („popisek“) s textem „počet:“ • Vložte do formuláře pole se vzorcem count(ID_ODBERATEL), které bude zobrazovat počet odběratelů
Návod pro pole se vzorcem • Tlačítkem „ab“ vložte pole „nevázaný“ • Ve Vlastnostech zvolte záložku „Datové“ a v řádku „zdroj ovládacího prvku“ klepněte vpravo na tlačítku s třemi tečkami • Spustí se „Tvůrce výrazů“, kde zadejte požadovaný vzorec
Vyzkoušejte • Změnit záhlaví/zápatí formuláře • Vytvořit ve formuláři rámeček • Použít podmíněné formátování (např. položku počet kusů podbarvit zvolenou barvou, je-li počet > 10) • Změnit barvu nadpisu
K čemu jsou dotazy? • Zobrazení, úprava a analýza dat z tabulek • Příkaz k výběru nebo změně dat v tabulce na základě nastavených podmínek • Vytvoření dotazu: • Návrhové zobrazení • Průvodce
Vytvoření dotazu • „Vytvořit“ • „Návrh dotazu“ • Vložení tabulek • Výběr polí • Nastavení vlastností dotazu (např. setřídění)
Vytvoření dotazu – vložení tabulek Je využita vytvořená relace Zde definuji kritéria dotazu
Kritéria dotazu • KritériaPopis >25 and <50 Toto kritérium lze použít u pole typu Číslo, jako je například pole Cena nebo JednotkyNaSkladě. Toto kritérium zahrnuje pouze záznamy, ve kterých pole Cena nebo JednotkyNaSkladě obsahuje hodnotu větší než 25 a menší než 50. • DateDiff ("rrrr", [DatumNarození], Date()) > 30 Toto kritérium je určeno pro pole typu Datum/čas, jako je například pole DatumNarození. Do výsledku dotazu jsou zahrnuty záznamy, ve kterých je počet roků mezi datem narození dané osoby a aktuálním datem větší než 30. • IsNull Toto kritérium lze použít u všech typů polí ke zobrazení záznamů s hodnotou pole Null.
Kritéria - texty • LIKE „S*“ , NOT LIKE „S*“ začíná/nezačíná na S • IS NULL je roven hodnotě NULL • NOT „hodnota“ není roven zadané hodnotě • „“ obsahuje prázdný řetězec (nikoli NULL) • OR, AND logický součet, logický součin • LIKE „[A-D]“ obsahuje písmena A,B,C,D • IN („text1“, „text2“) obsahuje pouze hodnoty text1 nebo text2 • LEN([nazev_pole]) = x délka textu v poli „nazev_pole“ je rovna x znaků • LIKE „K???“ začíná na K a má 4 znaky • Right([Země], 1) = "y„, Left([Země], 1) = „K"
Kritéria - čísla • IN • Matematické operátory - =, <, >, … • BETWEEN x and y • OR, AND • LIKE
Kritérium na datum • Přesně odpovídají určité hodnotě, například 2/2/2006. #2/2/2006# Vrátí záznamy transakcí provedených 2. února 2006. Nezapomeňte hodnotu data vložit mezi znaky #, aby bylo zřejmé, že jde o hodnotu kalendářního data a nikoli textový řetězec. • Neodpovídají určité hodnotě, například 3/3/2006. Not #3/3/2006# Vrátí záznamy transakcí provedených jindy než 3. března 2006. Obsahují hodnoty předcházející určitému datu, například 2/2/2006. < #2/2/2006# Vrátí záznamy transakcí provedených před 2. únorem 2006. • Chcete-li zobrazit transakce provedené k určitému datu či dříve, použijte operátor <= a nikoli operátor < .
Kritéria na datum – příklady použití funkcí • DatePart("m", [DatumProdeje]) = 12 • DatePart("č", [DatumProdeje]) = 1 čtvrtletí • Date(), Now() aktuální datum • Between Date() and Date()-6 • Year([DatumProdeje]) = Year(Now()) And Month([DatumProdeje]) = Month(Now())
Kritéria na přílohy • Chcete-li zahrnout záznamy, které neobsahují žádné přílohy, zadejte do řádku Kritéria hodnotu Is Null. • Chcete-li zahrnout záznamy s přílohami, zadejte hodnotu Is Not Null.