8.2 Používání a tvorba databází Slide 1
8.2.1 Základní pojmy z oblasti relačních databází Slide 2
Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3
Pojmy tabulka, pole, záznam Databáze = soustava navzájem propojených tabulek. Tabulka se zkládá z polí jednotlivé sloupce (data různého typu), a záznamů řádků, bývá jich (sta)tisíce. Slide 4
Význam a nasazení databází Pro různé druhy evidovaných údajů různé databázové aplikace. Účetnictví příjmy a výdaje. Mzdy a perzonalistika evidence pracovníků. Skladové hospodářství evidence zboží. Řízení výroby evidence výrobků. Adresář evidence adres a přátel. U lékaře, ve škole, v bankách, odjezdy vlaků,... Slide 5
Typické okno Účetní systém Pohoda Editace vybraného záznamu Seznam jednotlivých záznamů Slide 6
Data, datové typy Data jsou uložena v navzájem propojených tabulkách. Data jsou uložena nezávisle na programu, který s nimi pracuje. Pole v tabulce jsou různých datových typů definují se při vytváření tabulky. Text, čísla, datum,... Slide 7
Primární klíč = jednoznačná identifikace záznamu, nebo-li pole, které má pro každý záznam unikátní hodnotu většinou je to pomocné pole s číslem řádku, při vytvoření nového záznamu se doplňuje automaticky nazývá se např. ID Slide 8
Index a jeho význam pro rychlé vyhledávání Index je způsob řazení tabulky. Index vytvoří pomocný soubor s řazením tabulky podle určitého pole. K jedné tabulce může být více indexů. Protože se záznamy propojují pomocí klíčů v tabulce je primární klíč vždy současně indexem (ale ostatní indexy už klíči být nemusí). Slide 9
Primární klíč a cizí klíč Máme dvě tabulky např. žáci a třídy, každá má svůj primární klíč. Propojím je v tzv. dotazu tak, že se k žákům bude před ID třídy načítat její název. Vytvoříme tzv. relaci mezi tabulkami. relační databáze Primární klíč tabulky třídy použijeme jako cizí klíč v tabulce žáci. Slide 10
Slide 11
Referenční integrita Integrita ~ konzistence dat obecně je chápána tak, že data odrážejí skutečný reálný stav. (Pokud odešel nějaký žák ze školy, měl by také být jeho záznam smazán v tabulce žáci.) Referenční integrita představuje konzistenci vazeb mezi záznamy tabulek. Smažeme z tabulky třídy jeden záznam třeba, 2.N. Pokud ale v tabulce žáci existují záznamy, které obsahují vazbu na tuto třídu, bude porušena referenční integrita. Dnešní aplikace tuto situaci nepřipustí. Slide 12
Databáze klient-server Data uložena centrálně na serveru. Klienti ~ jednotlivé počítačové stanice mohou přistupovat k datům podle stanovených pravidel. Slide 13
Databáze na serveru je většinou tvořena jedním velkým souborem, do jehož vnitřku nikdo nemůže nahlížet jinak než pomocí odpovídajícího databázového klienta ze stanice sítě. různá přístupová práva přístum z jakéhokoliv místa v síti výkonnost serveru operace s daty archivace dat (vícenásobná) výpadky servru útoky nepovolanými osobami (z Internetu) Slide 14
8.2.2 Základy SQL Slide 15
Jazyk SQL Structured Query Language = strukturovaný dotazovací jazyk obecný standartizovaný jazyk pro práci s databázemi obsahuje příkazy pro definici dat, přístupová práva k datům, manipulaci s daty, řízení transakcí, a další. Slide 16
Jazyk SQL je standartizovaný, proto může pracovat v různých databázových systémech téměř stejným způsobem tvůrci databází používají svá vlastní rozšíření, ale základní příkazy fungují všude je to vnitřní nástroj, proto když v e-shopu vyberete kategorii, program převede váš požadavek na dotaz SQL a pošle do databázového systému, ten ho provede a vrátí záznamy, splňující zadanou podmínku Slide 17
Příkazy CREATE, ALTER, DROP definice dat SELECT, INSERT, UPDATE, DELETE manipulace s daty FROM, WHERE, ORDER BY spojky, řazení dat Příklad: SELECT jmeno, prijmeni FROM zaci ORDER BY prijmeni SELECT * FROM zaci WHERE hodin>=50 ORDER BY hodin DESC Slide 18
Návrh databází návrh podnikové složité databáze je vysoce odborná činnost 1. Návrh konceptu řešení 2. Návrh logické struktury dat 3. Implementace návrhu do konkrétního db systému Slide 19
Návrh konceptu Cílem je vytvořit odraz reálného problému ve formalizovatelné podobě. Používají se tzv. entity samostatně definovatelné položky, které se v problému vyskytují. Je nutné formálně popsat jejich obsah, vztahy a vlastnosti (atributy). Např.: žáci, učitelé, třídy a jejich vazby, známky, systém klasifikace a jeho pravidla, atd. Slide 20
Relace Při rozboru entit je potřeba definovat vztahy mezi nimi pomocí různých typů relací: Relace 1 : 1 př: třída třídní učitel. Relace 1 : N př: třída žáci. Relace M : N př: žáci sportovní kroužky Slide 21
Návrh struktury tabulek Návrh databáze sestává zejména z návrhu struktury potřebných tabulek a relací mezi nimi. K tomu se používají tzv. E-R (entiti-relantionship) diagramy. E-R diagram je složitý, vyjadřuje obsah, vztahy a vlastnosti (atributy) jednotlivých entit. Slide 22
Slide 23
Návrh z E-R diagramu Každá entita samostatná tabulka Přimární klíč identifikátor entity Jednotlivé relace propojení tabulek pomocí klíčů Vztahy M:N dělíme na M:1 a 1:N Slide 24
Konec 8. kapitoly Slide 25