DBS Flashcards
Relačná databáza
Databáza založení na relačnom modely, který sdružuje data do relací (tabulek).
- Vztahy mezi entitami (relace) je realizovány cizími klíči
- Vyhodnocení dotazu nezávisí na fyzickém uložení dat.
- Formální abstrakce textových souboru
- Relační kalkul a relační algebra
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:
- pri vytvorení schéma/tabuľky
- strážené DBMS
- PK, FK
- UNIQUE, NOT NULL, CHECK, DEFAULT
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.
- Chránit data
- Poskytnout korektní, rychlý a asynchronní přístup
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)
- Nelze pokračovat v normálním průběhu transakce
- Využívá se transakčního žurnálu (log) – tam jsou „změnové vektory“
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
- Jsou záznamy, které uchovávají informace o průběhu transakcí a slouží k zotavení po vzniklé chybě.
- Musí být obsahovat záznamy o každé transakci.
- Umožňuje implementaci Atomicity a Durability.
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í
- Nejčastěji jsou naloženy na dynamickém zamykání a odemykání objektů v DB.
Úrovně pohledu na data - Konceptuální
- Zabývá se modelováním reality.
- Snaží se nebýt ovlivněna budoucími prostředky řešení.
- Používá grafické notace (ER model nebo UML diagramy).
- Používá parcialitu a kardinalitu (NE KLÍČE)
• Parcialita – určuje povinnost ve vztahu (Film musí být na programu alespoň 1 kina)
• Kardinalita – určuje mohutnost vztahu mezi entitami ( žádný / 1:1 / 1:N / M:N )
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