Relační databáze na příkladu aplikace Microsoft Access Dana Nejedlová Katedra informatiky EF TUL
Základní informace o Microsoft Office Access Program pro správu relačních databází Relational database management system (RDBMS) Systém řízení báze dat (SŘBD) pro relační databáze Existence alternativních řešení (NoSQL databáze pro big data) viz Přednáška na téma Aplikovaná informatika, snímky „Trendy datových skladů“ a „Vývojové směry v BI“. Vhodný pro osobní potřebu jednotlivých lidí malé podniky oddělení velkých podniků jako klient jiných databázových programů Nevhodný pro Client-Server aplikace s velkým počtem přístupů do společné databáze Potom je nutné zvolit například RDBMS Oracle nebo Microsoft SQL Server s daty umístěnými na serveru. Na serveru mohou být uloženy větší databáze než v MS Access. Na server jsou posílány klientskými aplikacemi databázové dotazy a ze serveru jsou posílány jejich výsledky. https://support.office.com/en-us/article/ways-to-share-an-access-desktop-database-03822632-da43-4d8f-ba2a-68da245a0446
Základní databázové pojmy – Relace Relační databáze databáze podle relačního modelu = databáze tvořená tabulkami (relace = tabulka) Relation (relace) Obsah databázové tabulky Vznik termínu viz https://twobithistory.org/2017/12/29/codd-relational-model.html Relationship Vztah mezi tabulkami https://support.office.com/en-us/article/guide-to-table-relationships-30446197-4fbe-457b-b992-2f6fb812b58f V české literatuře je často překládán jako „relace“. https://support.office.com/cs-cz/article/p%C5%99%C3%ADru%C4%8Dka-k-relac%C3%ADm-mezi-tabulkami-30446197-4fbe-457b-b992-2f6fb812b58f
Základní databázové pojmy – Tabulka Název sloupce Sloupec = atribut Tabulka „Zákazník“ Řádek = záznam = record = datová věta Jméno Adresa F Liberec, … P Praha, … Položka Z hlediska návrhu je tabulka tzv. entita. U entity rozlišujeme její typ a výskyt. Typ entity (entity type) objekt, kterému je věnována celá databázová tabulka například „Zákazník“ jako název tabulky a šablona pro jeho data Výskyt entity (instance of an entity type or entity type instance) konkrétní datový řádek tabulky „Zákazník“, tedy data konkrétního zákazníka jako konkrétní hodnoty jeho atributů (vlastností v jednotlivých sloupcích tabulky)
Od tabulky k relační databázi V aplikaci MS Excel jsme tvořili izolované tabulky. Například: Tato tabulka vyjadřuje to, že si zákazník koupil výrobek. Zákazník i výrobek se může v tabulce opakovat. Jak evidovat adresy zákazníků a parametry výrobků? Přidáme do tabulky další sloupce. Takže v řádcích se stejným zákazníkem bude stejná adresa. Tím vznikne redundance neboli nadbytečnost dat. Oprava adresy by znamenala přepsání více řádků tabulky. Co když některé řádky zapomeneme opravit? Data potom budou nekonzistentní. Zákazník Výrobek Množství F POD 2 BON 4 P 3
Návrh relační databáze Snaha o odstranění redundancí Jak? Tabulky dat se rozkládají na více tabulek, aby data byla jen na jediném místě. Adresy jsou například v tabulce zákazníků. Tabulka nákupů zákazníků se na ni odkazuje. MS Excel umí spravovat jednotlivou tabulku. vzorce, třídění, filtrování, grafy MS Access umí spravovat systém tabulek. Kombinuje informace z více tabulek.
Vlastnosti relační databáze Skládá se z jedné nebo více tabulek. Mezi tabulkami jsou nastaveny vztahy. Každý řádek v tabulce jako celek je jiný. To lze zajistit přidáním speciálního sloupečku nebo výběrem určitého sloupečku s jedinečným atributem, který se nazývá primární klíč. Referenční integrita Konzistence mezi tabulkami Databázový program ji sám umí kontrolovat. Například nejdříve je nutné dát zákazníka do tabulky zákazníků a potom teprve je možné dát záznam o objednávce od tohoto zákazníka do tabulky objednávek, není možné vymazat zákazníka z tabulky zákazníků, když má záznam v tabulce objednávek, není možné dát do tabulky zákazníků dva zákazníky se stejným primárním klíčem.
Primární klíče v databázi knihovny Jeden čtenář si může půjčit víc knížek zároveň, ale jednu knížku si nemůže půjčit víc čtenářů zároveň. Primární klíč Primární klíč Primární klíč zvaný Kompozitní klíč, protože se skládá z více atributů (sloupků) a zároveň Cizí klíč, protože se skládá z primárních klíčů v nadřízených tabulkách. Proč je v tabulce „Výpůjčky“ nejvhodnějším primárním klíčem právě kombinace Inventárního čísla a Datumu výpůjčky?
Objekty databáze Microsoft Office Access Vše se ukládá do jediného souboru „*.mdb“ nebo počínaje aplikací Access 2007 „.accdb“.
Tvorba databáze v aplikaci Microsoft Office Access Návrh tabulek a vztahů mezi nimi Import dat do tabulek nebo jejich ruční plnění Tvorba dotazů, formulářů a sestav Jednou vytvořený dotaz či sestava se automaticky aktualizují podle aktuálních dat ve zdrojových tabulkách, takže je stačí vytvořit jen jednou.
Příklad návrhu tabulky v aplikaci Microsoft Office Access Návrhové zobrazení
Příklad návrhu tabulky v aplikaci Microsoft Office Access Zobrazení datového listu
SQL Structured Query Language Standardní jazyk pro správu relačních databází v SŘBD Byl navržen počátkem 70. let 20. století a používá se dodnes. Píší se v něm příkazy a SŘBD je vykonává. MS Access jej automaticky generuje podle akcí uživatele.
Databáze v MS Excel pomocí MS Query a Power Query Volby v MS Excel 2003: Data Importovat externí data - Nový databázový dotaz Volby v MS Excel 2007 a 2010 Uživatel vybere tabulky a jejich sloupečky. Uživatel nastaví relace. Automaticky se vytvoří dotaz (query). Výsledek dotazu se uloží jako tabulka do Excelu a lze jej dodatečně upravovat. http://office.microsoft.com/en-us/excel-help/use-microsoft-query-to-retrieve-external-data-HA010099664.aspx https://support.office.com/cs-cz/article/%C3%9Avod-k-Microsoft-Power-Query-pro-Excel-6e92e2f4-2079-4e1f-bad5-89f6269cd605