8 Výpočetní technika Ing. Jan Popelka, Ph.D. odborný asistent 7.4.2017 8 Výpočetní technika Ing. Jan Popelka, Ph.D. odborný asistent katedra informatiky a geoinformatiky Univerzita Jana Evangelisty Purkyně v Ústí nad Labem email: jan.popelka@ujep.cz WWW: http://most.ujep.cz/~popelka Jan Popelka
MS Access – 1. přednáška Databáze Návrh databáze Tabulka Výpočetní technika 2006 7.4.2017 MS Access – 1. přednáška Databáze Návrh databáze Tabulka Jan Popelka
MS Access – Databáze Databáze Lidé mají potřebu evidovat a shromažďovat informace už odpradávna. Celá dnešní moderní společnost je postavena na databázových systémech od evidence občanů, přes zdravotnictví, hospodářství, školství, až po letectví, výzkum nebo síť mobilních telefonů.
MS Access – Databáze Databázi si lze představit jako soubor dat, který slouží pro popis reálného světa. evidence školní knihovny sklad chemikálií evidence studentů telefonní hovory
MS Access – Databáze Entitou rozumíme prvek reálného světa člověk stroj vyučovaný předmět město Entita je popsána nějakými charakteristikami (vlastnostmi).
MS Access – Databáze Vlastnosti entit se většinou označují jako atributy. Pro entitu zaměstnanec lze pozorovat např.: jméno příjmení stav plat dosažené vzdělání
MS Access – Databáze Databáze: evidence zaměstnanců UJEP Entita: zaměstnanec Atributy: číslo zaměstnance, jméno, příjmení, rodné číslo, titul, pozice, fotografie, fakulta, katedra, telefon, email Databáze: evidence hokejistů HC Chemopetrol Entita: hokejista Atributy: jméno, příjmení, post, narozen, výška, váha, číslo dresu, fotografie, 1.utkání, 1. branka, 1.asistence
MS Access – Databáze Schéma databáze se třemi tabulkami a vazbami Tabulka (entita) Tabulka (entita) Databázový záznam Databázový záznam vazba (relace) vazba (relace) vazba (relace) Tabulka (entita) Databázový záznam
MS Access – Databáze Je-li databáze tvořena jen jedinou tabulkou (entitou), pak je podobná seznamu v takové podobě, v jaké jsme s ním pracovali v aplikaci MS Excel. Pro práci s takovou databází lze MS Excel použít. Pokud je tabulek (entit) více, je vhodnější použít databázové aplikace (MS Access, MySQL).
MS Access – Databáze Vazby (relace) mezi entitami. Jednotlivé tabulky mají mezi sebou určitý vztah – jsou něčím spojeny. Např. každý student vysoké školy má jedno téma diplomové práce a opačně je jednomu tématu přiřazen jen jeden student. To hovoříme o vazbě typu 1:1. E-R diagram (Entita – Relace) PRÁCE
MS Access – Databáze Vazba 1:1 RČ Jméno Příjmení 850521/2569 Petr PRÁCE RČ Jméno Příjmení 850521/2569 Petr Novák 845103/7456 Jarmila Zelená 811212/5896 Marek Vostrý RČ Téma Vedoucí 850521/2569 Analýza znečištění vod Ing. Jindřich Truc, CSc. 845103/7456 Větrné elektrárny Mgr. Radek Novák 811212/5896 Staré mapy krajiny Ing. Jan Svačina, Ph.D.
MS Access – Databáze Vazby (relace) mezi entitami Dalším typem je vazba 1:N. Např. student zpracovává semestrální práce a může jich mít více, ale konkrétní práce připadá právě jednomu studentovi. Např. student může být ubytován jen na jedné koleji, ale na jedné koleji je více studentů. S. PRÁCE N
MS Access – Databáze Vazba 1:N RČ Jméno Příjmení 850521/2569 Petr S. PRÁCE RČ Jméno Příjmení 850521/2569 Petr Novák 845103/7456 Jarmila Zelená 811212/5896 Marek Vostrý RČ Předmět Práce 850521/2569 1VT Prezentace medvědi 1BOT Herbář 845103/7456 1STAT Analýza biologických dat
MS Access – Databáze Vazby (relace) mezi entitami Posledním typem vazby je M:N. Zde není žádné omezení. Příkladem by mohla být situace, kdy vyučující na vysoké škole přednáší více předmětů a jeden předmět může přednášet zároveň více vyučujících. VYUČUJÍCÍ PŘEDNÁŠÍ
MS Access – Databáze Vazba M:N. Vyučující Os. číslo Předměty PŘEDNÁŠÍ Vazba M:N. Vyučující Os. číslo Předměty Ing. Jan Popelka, Ph.D 921 1STAT 1ZVT Ing. Václav Synek 612 Předmět Vyučující Místo Forma 1STAT 921 Most DS+KS 621 Ústí nad Labem DS 1VT 312 KS
MS Access – Databáze Vazby mezi entitami lze detailněji zobrazit pomocí E-R-A diagramu (Entita – Relace – Atribut). Kromě entit a relací obsahuje i atributy (sledované vlastnosti) - vazba 1:N. RČ S. PRÁCE PRÁCE
MS Access – Databáze Vazby (relace) mezi entitami ukázka z databáze v programu MS ACCESS
MS Access – Databáze Tvorba „dobře navržených“ tabulek a relací je klíčový a důležitý úkol z hlediska správného dlouhodobého fungování databáze. Pokud bychom v databázovém systému, který již nějakou dobu běží v ostrém provozu, nalezli chybu spočívající ve špatném návrhu databáze, mělo by to nepříjemné důsledky (odstávka systému).
MS Access – Databáze Pro práci s databázovými tabulkami je užitečné (ne-li přímo nutné) mít alespoň jeden atribut (sloupec), jehož hodnota bude jednoznačně identifikovat záznam v tabulce. Pokud taková položka nebude příliš velká (např. v počtu bajtů), zvolíme ji za tzv. primární klíč. Např. v tabulce evidence zaměstnanců UJEP za primární klíč zvolit položku ‚osobní číslo' nebo 'rodné číslo' nebo 'číslo OP'.
MS Access – Databáze Primární klíč má tu vlastnost, že jeho hodnota je jedinečná, tj. pro žádné dva řádky v tabulce nemůže nastat situace, že by hodnota primárního klíče byla totožná.
MS Access – Databáze Databázové systémy většinou umožňují definovat jako primární klíč také kombinaci více atributů, např. dvojici nebo trojici. V takovém případě se mohou některé hodnoty v klíčích opakovat, ale nesmí být shodné žádné n-tice atributů. datum narození + místo narození + jméno + příjmení
MS Access – Databáze Normální formy Pojem normálních forem se používá ve spojitosti s dobře navrženými tabulkami. Správně vytvořené tabulky splňují podmínky nazvané základní normální formy.
MS Access – Databáze 1. normální forma Nejjednodušší normální forma (1NF) říká, že všechny atributy (vlastnosti) jsou atomické, tj. dále již nedělitelné. Např. tabulka ADRESA má sloupce JMÉNO, PŘÍJMENÍ a BYDLIŠTĚ. JMÉNO PŘÍJMENÍ BYDLIŠTĚ jan novák Ostravská 16, Praha 16000 petr nový Svitavská 8, Brno 61400 jan nováček Na bradlech 1147, Ostrava 79002
MS Access – Databáze 1. normální forma - tabulka ADRESA Pokud bychom z této tabulky chtěli vyhledat všechny pracovníky z určitého města, nešlo by to zjistit přímo a jednoduše. A to proto, že atribut BYDLIŠTĚ není atomický, skládá se z několika částí: ULICE, ČÍSLO, MĚSTO a PSČ. JMÉNO PŘÍJMENÍ BYDLIŠTĚ jan novák Ostravská 16, Praha 16000 petr nový Svitavská 8, Brno 61400 jan nováček Na bradlech 1147, Ostrava 79002
MS Access – Databáze 1. normální forma - tabulka ADRESA Správný návrh tabulky respektující 1NF bude vypadat následovně: Obecně bychom se měli snažit, aby obsahem jedné databázové položky byla právě jedna hodnota (určitého databázového typu). JMÉNO PŘÍJMENÍ ULICE ČÍSLO MĚSTO PSČ jan novák Ostravská 16 Praha 16000 petr nový Svitavská 8 Brno 61400 jan nováček Na bradlech 1147 Ostrava 79002
MS Access – Databáze 2. normální forma Tabulka splňuje 2NF, pokud splňuje 1NF a navíc každý atribut (vlastnost), který není primárním klíčem je na primárním klíči úplně závislý. To znamená, že se nesmí v řádku tabulky objevit položka, která by byla závislá jen na části primárního klíče nebo byla na klíči zcela nezávislá.
MS Access – Databáze 2. normální forma Při nesplnění 2NF často dochází k redundanci (opakování záznamů). V tomto případě je v tabulce navíc název pracoviště, protože není splněna 2NF (název pracoviště není závislý na čísle zaměstnance, ale na čísle pracoviště). ČÍSLO JMÉNO PŘÍJMENÍ ČÍS_PRAC NÁZEV_PRAC 1 jan novák 10 studovna 2 petr nový 15 centrála 3 jan nováček 10 studovna
MS Access – Databáze 2. normální forma Obecně převedení do tabulky, která již bude splňovat 2NF, znamená rozpad na dvě nebo více tabulek, kde každá už bude splňovat 2NF - dekompozice relačního schématu. Tabulka ZAMĚSTNANEC Tabulka PRACOVIŠTĚ ČÍSLO JMÉNO PŘÍJMENÍ ČÍS_PRAC 1 jan novák 10 2 petr nový 15 3 jan nováček 10 ČÍSLO NÁZEV 10 studovna 15 centrála 20 kotelna
MS Access – Tabulka Jednoduchá tabulka popisuje nějakou entitu. Skládá se ze sloupců, kterým říkáme atributy a volíme takové vlastnosti, které nás o dané entitě zajímají. U databáze zaměstnanců UJEP nebudu sledovat majetkové poměry jako je typ bydlení, automobil, vybavení domácnosti atd. Tyto vlastnosti budu sledovat v databázi zákazníků pojišťovny nebo banky.
MS Access – Tabulka Datové typy sloupců Při tvorbě tabulky je vhodné uvědomit si jak budou vypadat hodnoty jednotlivých atributů. Do samotné tabulky pak již nebude možné vložit hodnotu, která neodpovídá datovému typu. Většina položek bude obyčejný text (jméno, příjmení, titul), číslo domu a PSČ budou celá kladná čísla.
MS Access – Datové typy Datové typy sloupců v jazyce SQL INTEGER celé číslo <-231 až 231> SMALLINT celé číslo <-32 768 až 32 768> NUMERIC(m,n) desetinné číslo (m je počet platných číslic a n je počet desetinných míst) FLOAT(n) reálné číslo (max. 38 desetinných míst, kde n je počet platných číslic)
MS Access – Datové typy Datové typy sloupců v jazyce SQL CHAR(n) řetězec znaků do max. délky 255 VARCHAR(n) řetězec znaků proměnné délky (vhodné pro texty, n udává počet znaků) DATE datum TIME čas
MS Access – Datové typy Datové typy sloupců v MS Access Text Text a čísla, s nimiž nebudou prováděny výpočty. Maximálně 255 znaků. Memo Dlouhý text nebo kombinace textu a čísel. Maximálně 65 535 znaků. Číslo Čísla (zejména, jsou-li s nimi prováděny další výpočty).
MS Access – Datové typy Datové typy sloupců v MS Access Datum/Čas Kalendářní datum a čas. Zabraňuje vložení neexistujícího data. Umožňuje výpočty (rozdílem dvou dat je počet dní mezi daty). Měna Číslo s peněžním symbolem. Ano/Ne Pole obsahující pouze jednu ze dvou hodnot (Ano/Ne, True/False nebo Zapnuto/Vypnuto).
MS Access – Datové typy Datové typy sloupců v MS Access Automatické s diferencí 1 nebo náhodné číslo číslo. Číslo přiřazuje Access vždy při přidání nového záznamu do tabulky. Objekt Objekt (například tabulka Excelu, OLE dokument Wordu, grafika, zvuky nebo jiná binární data) propojený nebo vložený do tabulky programu Access - maximálně 1 gigabyte (omezeno volným místem na disku).
MS Access – Datové typy Hypertextový odkaz Text nebo kombinace textu a čísel uložená jako text a používaná jako adresa odkazu. Adresa odkazu se může skládat až ze čtyř částí: - zobrazený text: text, který je zobrazen v poli nebo ovládacím prvku, - adresa: cesta k souboru nebo ke stránce (URL), - podadresa: pozice uvnitř souboru nebo stránky, - text zobrazovaný ve žlutém rámečku při ukázání myší nad obsah pole.
MS Access – Datové typy Podtypy typu Číslo Celé číslo <-32 768 ; 32 768> Dlouhé celé číslo <-2,1*109 ; 2,1*109> Jednoduchá přesnost <-3,4*1038 ; 3,4*1038> Dvojitá přesnost <-1,8*10308 ; 1,8*10308> Desetinné číslo <-1,0*1028 ; 1,0*1028> Volba vhodného datového typu snižuje nároky na velikost databáze, ale také urychluje práci Accessu.
MS Access – Datové typy Příklad: Databáze zaměstnanců UJEP v MS Access. Jaké datové typy budou nejvhodnější? Zaměstnanecké číslo Jméno, Příjmení Narozen telefon fotografie mzda pracoviště slovní hodnocení vedoucího Celé číslo Text Datum Text, celé číslo Objekt OLE Celé číslo Text, celé číslo Memo