Relačná databáza
Databáza založení na relačnom modely, který sdružuje data do relací (tabulek).
Relačná algebra
RA je POUZE dotazovací formalismus
každý výraz v RA lze preložit na SELECT príkaz
Selekce(restrikce) - KINO(NazevKina=”OC Smichov“)
Projekce - FILM[JmenoFilmu, Reziser]
Přirozené spojení ( Join) - NA_PROGRAMU * FILM
+množinové operácie
Vyhodnocuje se zleva → doprava.
SQL (Structured Query Language) jazyk
DDL - data def lang - create, views, integrinté obmedzenia
DML - data management lang. - CRUD
TCL - transaction control lang. - transakcie - commit, rollback
DCL - data control language - prístupy, admin
Integritné obmedzenia
Deklaratívne:
Procedurálne:
- na strane klienta
Databázová transakce
Databázová transakce je skupina příkazů, které převedou DB z jednoho konzistentního stavu do druhého.
Stavy transakce
Aktivní (Active)
- Od začátku transakce (od-kdy probíhají DML příkazy)
Částečně potvrzený
- Po provedení poslední operace transakce
Potvrzený (Commited)
- Po úspěšném zakončení (po operaci COMMIT)
Chybný (Failed)
Zrušený
- Po skončení ROLLBACK
Vlastnosti transakcí – ACID
• Atomicity (atomicita)
- Transakce musí buď proběhnout celé, nebo vůbec.
• Consistency (Konzistence)
- Transformace DB vždy z konzist. stavu do jiného konzist. stavu.
• Independece (Nezávislosti)/ Izolatio
- Dílčí efekty jedné transakce nejsou viditelné jiným transakcím.
• Durability (Trvanlivost)
- Efekty úspěšně ukončené (potvrzené) transakce jsou trvale uloženy.
DB žurnály
Zotavenie z chyby
Globální chyby (vliv na vice transakcí)
• Spadnutí systému (výpadek elektřiny) – důsledek je obecně ztráta vyrovnávací paměti
• Systémové chyby (uváznutí, výpadek session) – ovlivní transakce, nikoli celou DB
• Chyby médií (incident na disku) – ohrožení části i celé DB.
▪Rozsah škod záleží na módu v které DB běží (u Oracle).
- Archivní – vystavení DB ze záložní kopie a použití žurnálu k REDO (znovuudělání) všech
ukončených transakcí, které nejsou ve vystavené kopii DB
- Ne-archivní – vrácení se k plné záloze systému nebo obětujeme poškozená data
Lokální chyby (v jedné transakci)
• Logické chyby, kterou mohou být odchyceny a ošetřeny na úrovni transakce – voláním ROLLBACK
Synchronizační body (timestamps)– po restartu systému
Časové známky (timestamps v hlavičkách DB souborů) sloužící k nalezení místa (v žurnálu), odkud je třeba začít s rekonstrukcí DB
Prokládání transakcí – paralelní zpracování
Úrovně pohledu na data - Konceptuální
Přínos:
• Pochopení objektů aplikace uživateli (zákazníkem) i projektanty – dobrá forma dokumentace.
• Integrace různých uživatelských pohledů.
• Výsledkem je vstup pro realizaci DB.
Úrovně pohledu na data - Implementační (Databázová)
• Vztahuje se ke konkrétnímu DB modelu a používá jeho konstrukční dotazovací a manipulační prostředky
o Síťový, hierarchický, relační, objektový, objektově-relační, XML, NoSQL
• Volba modelu určuje prostředky pro:
o Vytváření struktury databáze (DDL).
o Tvorbu aplikací (DML, dotazovací jazyk, TCL, DCL).
o Např.:
▪ Relační model – SQL
▪ Objektový mdel – OQL
▪ XML model – Xpath
Úrovně pohledu na data - Fyzický
Jde o fyzické uložení dat (sekvenční soubor, indexy, clustery,..). Uživatelé (programátoři) jsou od ní odstíněni databázovou vrstvou (DBMS).
Fyzická organizace tabulky (Oracle) • HEAP tabulka • HEAP tabulka s indexy • Tabulka s indexovanou organizací • Tabulka ve shluku (cluster)
Základní typy souboru - DB
Halda:
• je nehomogenní soubor záznam· obvykle proměnné délky. Vkládané záznamy jsou umísťovány ve
vymezeném prostoru disku za sebou. Nalezení záznamu má časovou složitost O(n).
Sekvenční soubor
• obsahuje záznamy v sekvenčním pořadí. Záznamy jsou typicky seřazeny podle pořadí přidání, nebo podle
jednoho klíče.
• Výhodou seřazeného sekvenčního souboru, v případě využití média s přímým přístupem, je možnost docílit
složitosti O(log n) pro vyhledání záznamu.
• Nevýhodou je výpočtově náročnější seřazení obsahu při manipulací s daty.
Indexovaný soubor
• je tvořen primárním souborem a indexy pro různé vyhledávací klíče. Indexují se záznamy (ne bloky)
Základní typy indexů
Bitová mapa
Indexuje pomocí binární matice, která obsahuje předem vypočítané odpovědi na jednoduché otázky (true/false), a to pro každý záznam.
B-Strom (Balanced Tree)
Je m-ární strom se specifickou sadou omezení.
Průměrná nehorší složitost operací (search, insert, delete) je O (log n). Paměťová složitost je O(n