Zusammenfassung der Ressource
DBS otázka 1
Anmerkungen:
- Datové modely: konceptuální datový model, databázové modely, fyzický pohled na data. Relační model, relace, normální formy, transakční zpracování (vlastnosti transakcí - ACID).
- Mnohem lepší než ten bordel na eduxu v přednáškách je: www.fit.vutbr.cz/study/courses/DSI/public/pdf/nove/1_uvod.pdf
- Datové modely
Anmerkungen:
- Kolekce konceptuálních nástrojů pro popis objektů reality. Snaží se reprezentovat data, vztahy mezi realnými objekty, sémantiku a integritní omezení.
- Konceptuální model
Anmerkungen:
- Zabývá se modelováním reality, není ovlivněn budoucím prostředkem řešení. Modelován v ER modelu nebo UML class diagramech.
- Orientace na entity (třídy) a vztahy (asociace) mezi nimi.
- Popis reality ne realizace v konkretnim db stroji.
- Pokud se v modelu objeví cizí klíče, jedná se o grafickou podobu relačního modelu
- Výhody
Anmerkungen:
- Společné chápání objektů aplikace uživateli a návrháři. Výsledek je vstupem pro realizaci databáze. Slouží jako dokumentace (zrychluje orientaci ve velkých DB).
- Nevytvoření
Anmerkungen:
- Nízká úroveň pohledu na data, což vede k obtížné komunikaci se zákazníkem a nemožnosti zrealizovat větší databázi. V rozsáhlých DB je obtížné se zorientovat.
- Entity (třídy)
- Slabá entita (identifikační závislost)
Anmerkungen:
- Entita je identifikovaná částečně nebo plně vtahem k jiné entitě. Například Blok (např. A) a Pokoj (105). Pokoj je slabou entitou Bloku (k jeho identifikaci používáme entitu Blok).
- Omezení: slabá entita může mít vztah pouze s max jednou entitou, která jí identifikuje. Tzn Pokoj 105 nemůže být zároveň v Bloku A a v Bloku B...
Každá osoba může mít maximálně 1 profil...
- Vztahy (asociace)
- Kardinalita
Anmerkungen:
- Účast
Anmerkungen:
- Dekompozice
Anmerkungen:
- Každý vztah M:N můžeme dekomponovat na dva vztahy 1:N
- vložíme silnou entitu nebo použijeme slabou entitu (identifikační závislost) ((je si to dost podobné, ale ve druhém vztahu nemá nově vzniklá slabá entita PK(je identifikována původními dvěmi) - Kino může hrát film pouze jednou))
- Rekurzivní vztah
Anmerkungen:
- Vyjádření vztahu mezi zástupci té samé entity (rodič a potomek..)
- ISA hiearchie
Anmerkungen:
- z anglického is a, např: Jednotka - byt nebonebytový prostor. Nevhodné pro role, výhodnější je použití slabé entity..
- Databázový model
Anmerkungen:
- Definují podobu dat v databázi (vztahy mezi nimi..) tzn určují strukturu dat v databázi)
- Relační model
Anmerkungen:
- Rozšiřuje konceptuální model o cizí klíče, splňuje 1NF, relace mají unikátní n-tice (neobsahují duplicitní řádky) (relace = tabulka).
- Vyhodnocení dotazu nezáleží na fyzickém uložení dat
- Silné prostředky pro dotazování - relacni algebra, relacni kalkul, formální abstrakce textových souborů, slouží pro posouzení kvality relačního schématu
- Standardizován pomocí SQL (Structured Query Language)
- Relace
Anmerkungen:
- Nezáleží na pořadí n-tic, neobsahují duplicitní záznamy,
relace = nepřesně řečeno tabulka, prvek relace (n-tice) = řádek této tabulky
- Relace = tabulka,
Schéma relace = záhlaví tabulky,
Atribut = sloupec,
Prvek relace (n-tice) = řádek,
- n-tice
Anmerkungen:
- jeden záznam, prvek relace, řádek v tabulce
- domény atributů, značeno dom(A)
Anmerkungen:
- Schéma relace R(A)
Anmerkungen:
- R(A1:D1, A2:D2) kde A1 je prvni atribut a D1 je jeho doména, R je relace, zkráceně R(A)
- Něco jako záhlaví tabulky
- Schéma relační db (R, I)
Anmerkungen:
- Schéma relařní databáze je množina relací a integritních omezení. Tzn. (R, I), kde R náleží R1, R2... Rn) a I je množina integritních omezení
- Např. schéma databáze s rozvrhem předmětů: Rozvrh(Přednáška, Učitel, Místnost...) a slovně popsané IO
- Klíč schématu
Anmerkungen:
- Klíč K schématu R(A) je podmnožina atributů z A, která jednoznačně určí každou n-tici relace R
- MInimalnost klice
Anmerkungen:
- Neexistuje K' ktere je podmnozinou K a pri tom jednoznacne urcuje kazdou n-tici relace R
- Podklíč
Anmerkungen:
- Pokud se klíč skládá z více atributů, podklíč je každý z těchto atributů.
- Neklíčový atribut
Anmerkungen:
- Atribut, který není podklíčem nebo klíčem dané relace.
- Dotaz
Anmerkungen:
- Dotaz nad schématem S je výraz, který vrací odpověď se schématem T.
Def. obor = všechna uložiště se schématem S
Obor hodnot = všechny relace se schématem T
Data odpovědi pocházejí z databáze
Odpoved nezavisi na fyzickem ulozeni dat
- Síťový model
Anmerkungen:
- Množina záznamů (síť), vztahy pojmenovány, konec 60. let
- Hiearchický model
Anmerkungen:
- Data v hiearchické struktuře (strom), vznik v 60. letech min. století)
- OO model
- Objektově relační model
- Fyzický pohled na data
Anmerkungen:
- http://www.fit.vutbr.cz/study/courses/DSI/public/pdf/nove/6_fyzurDBS.pdf
- Uspořádání souborů
Anmerkungen:
- Soubor:
posloupnost záznamů seskupovaných do bloků tvořících logický celek
- Neuspořádaný soubor (HEAP)
Anmerkungen:
- Neuspořádanost záznamů, záznam se uloží tam, kde je zrovna místo.
- Hashovaný soubor
Anmerkungen:
- Záznamy jsou umisťovánay do bloků na základě hashovaci funkce
- Sekvenční soubor (CLUSTER)
Anmerkungen:
- Logicky podobné záznamy se ukládájí relativně blízko sebe. Klíč pro shlukování se nazývá cluster key (pokud neni použito shlukování clustering, tak se klíči říká jen search key)
- Indexování
Anmerkungen:
- Indexy slouží pro rychlejší vyhledávání dat v databázi. Indexovací struktury většinou odkazují na ID řádku (ROWID), kde se data nacházejí. (tzn klíč)
- B strom řádu m
Anmerkungen:
- Kořen min 2 potomky, pokud není listem.
Každý uzel mimo kořene a listu má min m/2 potomků a max m potomků.
Každý uzel má nejméně m/2 a nejvíce m-1 záznamů (většinou jen klíčů)
Všechny cesty jsou ve stromu stejně dlouhé
- Bitmapové indexy
- Pojmy
- DBMS / SŘBD
Anmerkungen:
- DataBase Management System // Systém řízení bází dat
Programová vrstva, která řídí operace nad databází a poskytuje API.
- RDBMS - relational
- ODBMS - object
- ORDBMS - object-relational
- DB
Anmerkungen:
- Množina strukturovaných perzistentních dat.
DB je nezávislá na programu
- Velké množství dat
- Perzistence
Anmerkungen:
- Data přetrvávají od zpracování ke zpracování.
- Spolehlivost
Anmerkungen:
- Data lze rekonstruovat po chybe (zalohovani)
- Sdílení
Anmerkungen:
- Data sdílena mezi více uživateli, možnost nastavení práv. Možnost práce více uživatelů najednou.
- DDL - data definition language
Anmerkungen:
- Jazyk pro definici dat (např. logické a fyzické schéma) - tzn definuje data, která budou v DB uložena
- Datový slovník
Anmerkungen:
- Obsahuje metadata(data o datech)
- DML - data manipulation language
Anmerkungen:
- Jazyk pro manipulaci s daty tzn update, insert...
- TCL - transfaction control language
Anmerkungen:
- jazyk pro řízení transakcí
- DCL - data control language
Anmerkungen:
- jazyk pro definici přístupových práv k datům
- Dotaz (query)
Anmerkungen:
- Požadavek v dotazovacím jazyku.
- Výsledek dotazu
Anmerkungen:
- Odpoved v podobe datove struktury
- Dotazovací jazyk
Anmerkungen:
- Množina všech výrazů pro konstrukci dotazu
- Integritní Omezení (IO)
Anmerkungen:
- IO jsou tvrzení, které určují, jaká data v databázi mohou být a jaká ne.
- Integrita dat
Anmerkungen:
- Správnost dat z hlediska jejich IO, například věk člověka nesmí být záporné číslo.
- Persistentní data
Anmerkungen:
- Data, která svou životností přesahují dobu běhu aplikačního programu či vypnutí počítače.
- Schéma DB
Anmerkungen:
- Odráží použitý DB model, popisuje strukturu dat v databázi.
- DBS = DB + DBMS
Anmerkungen:
- Hlavní úloha: abstrakce pohledu na data, uživatel nemusí řešit, kde a jak jsou uloženy...
- Normalizace
Anmerkungen:
- Dva přístupy:
normalizační teorie, z konceptuálního modelu. Převod konceptuálního modelu do relačního nemusí nutně vést k vytvoření normalizovaného relačního schématu
- Normalizace se provádí DOKOMPOZICÍ.
Tzn. schéma R(U,F) převedeme na schéma {R(U), R(F)}
- Výsledné schéma by mělo mít stejnou sémantiku. Nové relace by měly obsahovat stejná data, jako před změnou.
- Proč normalizovat
- Redundance
- Aktualizační anomálie
Anmerkungen:
- Změníme li jednu věc, musíme jí změnit vícekrát (vyřeší např. normalizace dekompozicí).
Můžeme přijít o některé informace (např adresa Kina, kdybychom měli Program(jmeno_f, nazev_k, adresa_k) atd.
- Funkční závislost (FZ)
Anmerkungen:
- Neformálně:
NAPŘ:
Ke každému kinu existuje maximálně 1 adresa.
Zapíšeme jako:
NAZEV_K -> ADRESA
Pro každou dvojici kino film existuje max jedno datum, kdy má dané kino film na programu.
(NAZEV_K, JMENO_F) -> DATUM
- FZ vyjadřují IO (integritní omezení). Je vhodné si jendotlivé atributy zkracovat.
- PS -> Z
PS -> Y
==>
PS->ZY
---------------
PS -> S platí vždy
- Sada Funk. zavilosti:
F = {AB->X, X->Z, C->A}
- Armstrongova pravidla
- triviální funkční závislosti (FZ1)
Anmerkungen:
- Pokud Y náleží do X, poté X -> Y
- Tranzitivita
Anmerkungen:
- Jestli ze X -> Y a Y -> Z, pak X->Z
- Kompozice prave strany
Anmerkungen:
- Jestlize X -> A a X -> B, pak X -> AB
- Dekompozice prave strany
Anmerkungen:
- Jestlize X->AB, pak X->A a X->B
- Nalezení klíče
- Tranzitivní uzávěr množiny atributů
Anmerkungen:
- Tranzitivní uzávěr je množiny atributů X+ vzhledem k množině funkčních závislostí F jsou všechy atributy, které jsou závislé na X.
- např:
P -> U, PU->X
P+ = {P, U, X}
- 2NF
- 3NF
Anmerkungen:
- Ríkáme, že schéma relace R je ve 3. normální formě (3NF), jestliže každý neklíčový atribut schématu R není tranzitivně závislý na žádném klíči schématu. (tzn. přímo závislý může být)
Tranz. závislý je třeba C když X -> Y -> C, C je tedy tranz. zavisle na X
- Pokud relace nemá neklíčový atribut, je v 3NF!
- Boyce-Codova normální forma (BCNF)
Anmerkungen:
- Ríkáme, že schéma relace R je v Boyce - Coddove normální forme (BCNF), jestliže pro každou netriviální závislost X -> Y platí, že X obsahuje klíč schématu R.
Netriviální závislost chápu tak, že X se musí skládat z více atributů.
- Každé schéma v BCNF je zároveň ve 3NF, obráceně to neplatí.
Máli schéma jen jednoduché klíče nebo jediný klíč, pak platí, že jeli ve 3NF je i ve BCNF
- Transakční zpracování
Anmerkungen:
- Dva základní požadavky na DBMS: chránit data (zotavení po havárii) a poskytnout korektní, rychlý a asynchroní přístup pro více uživatelů.
- Řízení souběžného zpracování
Anmerkungen:
- Zajišťuje, že každý uživatel přistupuje ke konzistentnímu stavu databáze. Tzn. i asynchroně se dostávájí k těm samým datům v ten samý čas.
- Zotavení z chyb
Anmerkungen:
- Chyba software, programu nebo fyzického uložení dat během transakce nesmí vést k nekonzistenci databáze.
- Globální chyby
- Výpadek serveru (ztráta cache)
- Výpadek komunikace server klient
- Chyby médií (výpadek disku)
- Logické chyby
- Nechtěný výsledek transakce (špatný update, delete..)
- Po pádu
- Roll forward
Anmerkungen:
- Obnovení paměti ze žurnálu, dokončení transakcí, které byly potvrzeny, ale nebyly provedeny (např. zápis na disk)
- Rollback
Anmerkungen:
- Odvolání všech transakcí, které nebyly v době pádu dokončeny.
- Transakce
Anmerkungen:
- Programová jednotka a mechanizmy, které zajistí, že po skončení akce zůstane databáze v konzistentím stavu (i když skončí chybou)
- Během zpracovávání transakce může být databáze dočasně v nekonzistentním stavu.
- Konec transkace
- Explicitní
- Commit (potvrzení)
- Rollback (zrušení)
- Implicitní
- Ukonení session
- Autocommit on
- Začátek transakce
- Konec předchozí
- Zahájení session
- Stavový diagram transakce
- Vlastností transkací (ACID)
- Atomicity - bud probehne transakce celá nebo vůbec
- Consistency - transakce transformuje db z konzist stavu opet do konzist stavu
- Independency - dílčí operace jedné transkace nejsou viditelné ostatním transakcím
- Durability - trvanlivost - efekty úspešné transakce jsou trvale uloženy (persist)
- Rozvrh
Anmerkungen:
- Stará se o něj rozvrhovač, nemělo by docházet k tomu, že si 2 transakce mění data pod rukama.
- Konfliktní operace
Anmerkungen:
- Různé pořadí sériového volání poskytne jiné výsledky