DATABÁZOVÉ SYSTÉMY Flashcards
NÁVRH DATABÁZE
- Návrh databáze vychází z požadavků uživatele. Ty je nutné analyzovat a zjistit, která data má smysl udržovat - a která ne. Dáe v jakých datových strukturách a v jakých vztazích mezi sebou.
NÁVRH DATABÁZE - Konceptuální model
- „jak to bude fungovat“
- Formální popis uživatelské aplikace
- Je založen na chápání světa jako množiny základních objektů – entit a vztahů mezi nimi.
- Nejvyšší úroveň abstrakce, grafický
- Konceptuální modely řeší přesnější vyjádření vztahů ve světě objektů
- konceptuální schéma popisuje objekty aplikace
- Měli by mu rozumět i běžní uživatelé
- Nezávislý na implementaci (DB)
- Obsahuje pouze názvy a vazby
- Podporuje diskusi a komunikaci
Předchází chybám a nedorozumění
NÁVRH DATABÁZE - entity
- Představují objekty/osoby/věci, o kterých je třeba uchovávat informace zaznamenávané podle skutečnosti
- Pojmenování souboru několika podobných objektů
- Lze přirovnat ke třídám objektů stejného typu:
FILM, ZÁKAZNÍK, ZAMĚSTNANEC, ZVÍŘE
Instance je poté jeden případ výskytu entity
NÁVRH DATABÁZE - Atributy
- Blíže popisují vlastnosti entit.
□ Kvantifikují příslušnou entitu
□ Kvalifikují příslušnou entitu
□ Zařazují a přesňují příslušnou entitu
- Je jím jedna hodnota určitého datového typu - např. věk od hodnot 0 do 120
NÁVRH DATABÁZE - Povinnost atributů
- Povinné atributy se značí *
- Volitelné atributy se značí o
- Primární identifikátory se značí #
Unikátní identifikátory se značí U
NÁVRH DATABÁZE - Maticové diagramy
- Jde o metodu identifikaci vztahů mezi entitami
Není u nich zaměřeno na násobnost či povinnost vazeb
NÁVRH DATABÁZE - Kardinalita
- Určuje kolikrát se každá instance dané entity může učastnit specifikovaných vazeb
Např. 1:1, 1:n, n:n
NÁVRH DATABÁZE - Integritní omezení (IO)
- Vymezují korektnost databáze
- Umožňují do výsledné databáze vkládat pouze data, která vyhovují předem definovaným kritériím
- Základní omezení označuje možnost existence nedefinovaného stavu atributu - tedy NULL či NOT NULL
- Další omezení lze zavést jako doplňující podmínku - CHECK
- Kazdému atributu lze definovat klíč:
□ PRIMARY KEY - Primární klíč
□ UNIQUE - Unikátní
□ REFERENCES - Cizí klíč
Pojmenované omezení se uvádí jako CONSTRAINT jméno
NÁVRH DATABÁZE - Systém řízení báze dat (SŘBD)
- Softwarový systém, umožňující definovat, vytvořit a řídit přístup do databáze.
- Kolekce programů, které tvoří rozhraní mezi aplikačními programy a uloženými daty.
ENTITNĚ-RELAČNÍ MODEL
- Metoda datového modelování
- Definuje způsob uložení dat v databázi
- Data modelována tabulkami/relacemi
- Přesně popisuje potřeby uchování dat
- Orientovaný na objekty (entity a vztahy mezi nimi)
- Neřeší implementaci
- Pokrývá současné potřeby s možností dalšího rozvoje
- Výsledkem je konceptuální schéma
- Obsahuje názvy, vazby a atributy entit
- Specifikuje atributy (povinné, volitelné, unikátní)
- Specifikuje vazby
- Obsahuje ERDish věty (jazyk, který popisuje vztahy mezi entitami ve slovním vyjádřením).
Vytváříme logické ERD, tak i fyzické ERD
ENTITNĚ-RELAČNÍ MODEL - logický
- Propracovanější konceptuální model
- Obsahuje pouze entity, jejich atributy a klíče, a vazby mezi entitami
ENTITNĚ-RELAČNÍ MODEL - fyzický
- Jde o implementaci logického ERD modelu v konkrétním databázovém systému
Určuje, jakým způsobem jsou data uložena
NORMÁLNÍ FORMY
- Normální formy jsou určitá pravidla, kterou slouží k uvedení databáze do “optimální” podoby.
- Snahou normálních forem je co nejvíce redukovat redundanci.
NORMÁLNÍ FORMY - 1. Normální forma
- Všechny atributy jsou atomické (co nejvíce oddělené).
- Např. Jméno a příjmení odděleně
- Musíme se zde řídit, zda nějakou databázi chceme např. řadit dle nějakého atributu - např.:
- Pokud chceme někomu jen poslat pohled, adresa může být jen v rámci jednoho atributu
- Pokud budeme v nějaké databázi na základě adresy chtít zjistit, kdo všechno se nachází v Brně, bude již nutné adresu rozdělit.
Většinou dodržení této normální formy vede k vytvoření nové entity:
NORMÁLNÍ FORMY - 2. Normální forma
- Každý neklíčový atribut musí plně závislý na každém kandidním klíči.
- Např. na obrázku níže je pouze číslo účtu závislé na kódu banky.
NORMÁLNÍ FORMY - 3. Normální forma
- Všechny neklíčové atributy musí být vzájemně nezávislé.
DOTAZOVACÍ JAZYKY
- Realizují výběr dat z databází
- Umožňují ovládat databázi prostřednictvím dotazů
- Vlastnosti dotazovacích jazyků:
- Konstruován tak, aby ke každému výrazu jazyka bylo možné přiřadit dotaz
- Konstruován tak, aby pomocí něho šlo vyjádřit jakýkoliv databázový dotaz
- V dnešní době SQL, MongoDB, DMX, Dataloq …
SQL A PROCEDURÁLNÍ ROZŠÍŘENÍ SQL
- SQL - neboli Structured Query Language
- Používán od 70. let
- Používá se pro práci s relačními databázemi
- Umožňují pracovat s data v databázích bez znalosti programovacího jazyka
- Jde o deklarativní jazyk
- Umožňují efektivně implementovat:
- Správu databáze - příkazy pro definici dat
- Správu dat
Dotazování
PL/SQL
- Procedurální rozšíření SQL
- Obsahuje triggery, funkce, procedury a kurzory
- Základní stavební jednotkou je PL/SQL blok
- Základní struktura:
- DECLARE - deklarace konstant a proměnných
- BEGIN - výkonné příkazy bloku
- EXCEPTION - výkonné příkazy obsluh přerušení
- END
Podporuje komentáře
PL/SQL - Procedury PL/SQL
- Program, jehož příkazy jsou uloženy přímo v databázi
PL/SQL - Triggery
- Dá se popsat jako procedura spojená přímo st abulkou.
- Volá se ve chvíli kdy je nad tabulkou zavolán příkaz INSERT, UPDATE nebo DELETE
- BEFORE/AFTER - upřesňující klauzule, jež definují zda trigger procedura má být spuštěna před či po provedení aktivačního příkazu (insert, delete..)
PL/SQL - Funkce
- Vrací nějakou hodnotu
Používá se přímo v příkazu
PL/SQL - Kurzor
Ukazatel víceřádkový výběr
TRANSAKCE, TRANSAKČNÍ PŘÍSTUP KE ZPRACOVÁNÍ DAT
- Databázová transakce je skupina příkazů, které převedou databázi z jednoho konzistentního stavu do druhého
TRANSAKCE, TRANSAKČNÍ PŘÍSTUP KE ZPRACOVÁNÍ DAT - Vlastnosti transakce
- Atomicita – transakce je jako operace dále nedělitelná; buď se provede jako celek nebo se neprovede vůbec. Při neprovedení transakce vyskakuje chybová hláška.
- Konzistence – není porušeno žádné integritní omezení; databáze zůstává i po vykonání transakce v konzistentní stavu
- Izolovanost – operace uvnitř transakce jsou skryty před ostatními operacemi; transakce o sobě navzájem neví. Vrácením transakce není zasažena jiná transakce, jinak i tato musí být vrácena. V důsledku tohoto chování může dojít k tzv. řetězovému vrácení.
- Trvalost – po úspěšném vykonání transakce jsou změny skutečně uloženy v databázi a nemohou být ztraceny
TRANSAKCE, TRANSAKČNÍ PŘÍSTUP KE ZPRACOVÁNÍ DAT - Transakční operace:
- START – označuje začátek transakce
- COMMIT – označuje normální ukončení transakce - uložení změn
- ABORT – označuje nenormální ukončení transakce, transakci je potřeba anulovat
ROLLBACK - situaci se vrací do okamžiku před zahájením transakce
Aktivní – od počátku provádění transakce
Částečně potvrzený – po provedení poslední operace transakce, před COMMIT
Chybný – nelze pokračovat v normálním průběhu transakce - provede se ROLLBACK
Zrušený – po skončení operace ROLLBACK
Potvrzený – po úspěšném vykonání operace COMMIT
TRANSAKCE, TRANSAKČNÍ PŘÍSTUP KE ZPRACOVÁNÍ DAT - Žurnály
- Jde o záznamy provedených transakcí, jež slouží k navrácení databáze do původního stavu kvůli vzniklé chybě
VÝVOJ DATABÁZOVÝCH APLIKACÍ
- Na začátku využítí pouze papírových kartoték, jež lidmi byly uspořádány dle kritérií
- Zpracování dat převedeno na stroje - paměťové médium děrný štítek
- Léta 20. století - s rozmachem počítačů ývoj prvních databází
- 1959 - COBOL pro hromadné zpracování dat
- 1974 - první verze SQL
- V dnešní době noSQL databáze jako např. MongoDB. Ta nevyžaduje jakékoliv schéma a ukládá jakýkoliv typ dat. Umožňoje to uživateli obrovskou flexibilitu.