Informatika Flashcards
(119 cards)
Co představuje relační datový model a jaké jsou jeho klíčové pojmy?
* Základní koncept:
o Uložení dat v tabulkách: Data jsou organizována do tabulek (též nazývaných relace), které představují strukturované záznamy.
o Každá tabulka reprezentuje jednu entitu (např. „Učitel“), přičemž každý řádek (n-tice) představuje jednotlivý záznam založený na souboru atributů.
o Atributy a domény: Každý sloupec má unikátní název, datový typ a určenou doménu – množinu všech hodnot, které atribut může nabývat (např. doména příjmení, funkce, kanceláře).
**
* Definice klíčových pojmů:**
o Primární klíč: Jeden nebo více atributů, které jednoznačně identifikují každý záznam v tabulce (např. v relačním schématu „Učitel (ID, jméno, příjmení, funkce, kancelář)“ může sloužit atribut ID).
o Cizí klíč: Atribut nebo kombinace atributů v jedné tabulce, který odkazuje na primární klíč jiné tabulky. Přes tyto odkazy je navázána integrita a propojenost dat napříč tabulkami.
* Pravidla relační tabulky:
o Hodnoty jsou atomické a skalární.
o V tabulce je 1 až n sloupců a 0 až m řádků; jejich pozice není významná.
o Hodnoty ve sloupcích jsou homogenní.
o Každý sloupec je jednoznačně pojmenován a každý řádek je jednoznačně rozlišitelný (primárním klíčem).
Co je relační algebra a jaké jsou její hlavní operace?
* Základní prostředek práce:
o Relační algebra je formální jazyk pro manipulaci s daty uloženými v relacích.
o Její operace umožňují vybírat, kombinovat a transformovat data.
* Hlavní operace:
o Projekce (project): Umožňuje vybrat pouze určité sloupce (atributy) z relace.
o Selekce (select): Slouží k výběru řádků (n-tic), které splňují určitou podmínku.
o Spojení (join): Kombinuje dvě nebo více relací na základě sdílených atributů, čímž vzniká nová relace obsahující informace z obou zdrojů.
* Relačně úplný jazyk:
o Pokud jazyk obsahuje všechny operace relační algebry, lze jím formulovat všechny dotazy nad relační databází.
Jaké jsou klíčové pojmy relační databázové terminologie?
* Databáze (DB):
o Systematicky organizovaná datová struktura, kterou lze představit jako soubor tabulek (relací).
* Tabulka (Relace):
o Datová struktura uspořádaná do sloupců a řádků.
* Pole:
o Průsečík řádku a sloupce; každé pole obsahuje hodnotu danou doménou sloupce.
* Sloupec (atribut):
o Definuje jeden druh informace, kterou tabulka uchovává.
* Řádek (prvek relace, záznam, n-tice):
o Obsahuje veškerou informaci o objektu popisovaném tabulkou; je jednoznačně určen primárním klíčem.
* Primární klíč a cizí klíč:
o Primární klíč jednoznačně identifikuje záznam, zatímco cizí klíče propojují tabulky.
Co jsou Coddova pravidla a jaký mají účel?
* Účel a význam pravidel:
o Coddova pravidla jsou souborem 13 pravidel, která určují, jak by měly fungovat relační databázové systémy, a garantují, že data budou spravována pomocí relačních operací.
* Hlavní pravidla:
o Pravidlo SŘBD: Data musí být spravována výhradně prostřednictvím relačních operací.
o Informační pravidlo: Data jsou reprezentována pouze jako hodnoty v tabulkách.
o Pravidlo zajišťující přístup: Data lze získat pomocí kombinace názvu relace, sloupce a hodnoty primárního klíče.
o Pravidlo zpracovatelnosti neznámých hodnot: Neznámé hodnoty lze získat na základě známých dat.
o Pravidlo relačního katalogu: Celá databáze musí mít svůj popis také ve formě relačního schématu (metadata).
o Pravidlo jazyka: Musí existovat alespoň jeden jazyk, který umožňuje definici dat, manipulaci s daty a práci s transakcemi.
o Pravidlo pohledů: Uživatelům musí být umožněno pracovat s pohledy na data.
o Pravidlo operací: Všechny operace pracují s tabulkami jako s celky.
o Pravidlo fyzické a logické nezávislosti: Výsledky operací nad daty nesmí být ovlivněny změnami ve fyzické struktuře databáze.
o Pravidlo nezávislosti dat na integritních omezeních: Změny v integritních omezeních nemají vliv na výsledky operací, pokud se data nemění.
o Pravidlo nezávislosti dat na distribuci: Výsledky by neměly být ovlivněny způsobem uložení dat v databázi.
o Pravidlo nenarušitelnosti DBMS: Nikdo nesmí obcházet a narušovat pravidla definovaná pro správu databáze.
Co je datová normalizace a jaké jsou její cíle, a jaký je význam redundance dat?
* Datová normalizace:
o Proces organizace struktury databáze za účelem odstranění redundance a zlepšení konzistence.
o Minimalizuje redundanci a anomálie při aktualizaci, vkládání a mazání záznamů.
o Umožňuje efektivní správu dat a zajišťuje optimální využití úložného prostoru.
o Cíl: Rozdělit tabulky tak, aby každá obsahovala pouze související data.
* Redundance dat:
o Opakovaný výskyt stejných dat napříč tabulkami.
o Nevýhody: Zvýšená velikost databáze, inkonzistence dat, vyšší riziko anomálií při operacích s databází.
Co jsou normální formy a jak se liší jednotlivé normální formy?
* 1. normální forma (1NF):
o Tabulka obsahuje pouze atomické (nedělitelné) hodnoty; každý atribut obsahuje pouze jednu hodnotu; všechny řádky jsou unikátní.
* 2. normální forma (2NF):
o Splňuje 1NF a všechny neklíčové atributy závisí pouze na primárním klíči, nikoliv na jeho části.
* 3. normální forma (3NF):
o Splňuje 2NF a neklíčové atributy nejsou závislé transitivně na primárním klíči, tedy eliminuje nepřímé závislosti mezi neklíčovými atributy.
* BCNF (Boyce-Coddova normální forma):
o Vylepšená 3NF, kde každý determinant je kandidátní klíč.
* 4. normální forma (4NF):
o Složený primární klíč nesmí být tvořen z nezávislých dat (řeší multi-valued dependencies).
* 5. normální forma (5NF):
o Složený primární klíč nesmí obsahovat párové cyklické závislosti.
Co je integrita dat a jaké jsou druhy integritních omezení?
* Integrita dat:
o Zajišťuje správnost, úplnost a konzistenci dat v databázi.
o Integritní omezení chrání před neplatnými nebo nechtěnými změnami dat a jsou definována při návrhu databázového systému.
* Druhy integritních omezení:
o Entitní integrita: Primární klíče musí být jedinečné a nesmí obsahovat NULL hodnoty.
o Referenční integrita: Cizí klíče musí odkazovat na existující hodnoty v jiných tabulkách.
o Doménová integrita: Atributy musí obsahovat pouze hodnoty odpovídající jejich doméně (datový typ, rozsah apod.).
Co jsou databázové triggery, jaké typy triggerů existují a k čemu slouží?
* Definice triggerů:
o Automatické akce prováděné databázovým systémem při změnách dat (INSERT, UPDATE, DELETE).
o Mohou být použity k zajištění integrity dat, logování změn nebo spuštění specifických akcí.
o Jsou provedeny vždy bez ohledu na příčinu, která vyvolala změnu.
* Typy triggerů:
o Before triggers: Akce provedené před vykonáním operace.
o After triggers: Akce provedené po vykonání operace.
o Instead of triggers: Používají se místo standardních operací na pohledech (views).
* Příklad:
o Trigger, který před INSERT do tabulky „objednavky“ kontroluje, zda nové množství je větší než 0 – pokud ne, vyvolá chybu.
Shrňte klíčové koncepty datové normalizace, redundance, normálních forem, integrity dat, integritních omezení a databázových triggerů.
- Datová normalizace organizuje strukturu databáze za účelem odstranění redundance a zlepšení konzistence; redukuje anomálie při aktualizacích a správně využívá uložiště.
- Redundance dat se projevuje opakovaným výskytem stejných dat napříč tabulkami, což vede k problémům s konzistencí a zvýšeným nárokům na úložný prostor.
- Normální formy (1NF, 2NF, 3NF, BCNF, 4NF, 5NF) definují postupné odstranění redundance a anomálií v databázi.
- Integrita dat zajišťuje správnost, úplnost a konzistenci dat prostřednictvím entitní, referenční a doménové integrity.
- Databázové triggery jsou automatické akce aktivované při změnách dat, které slouží k udržení integrity, logování změn nebo provádění specifických akcí, přičemž existují before, after a instead of triggery.
**Co je databázová transakce a jaký je její hlavní účel? **
* Definice:
o Databázová transakce je sekvence jedné nebo více operací, která se provádí jako celek.
o Transakce zajišťuje, že data zůstanou konzistentní i při výskytu chyb, například při selhání systému.
o Transakce proběhne celá nebo vůbec.
* Účel:
o Zajistit integritu dat v případě výpadků nebo chyb.
o Umožnit bezpečné sdílení dat mezi více uživateli současně.
o Zajistit konzistenci při provádění složitých operací.
Jaké jsou varianty transakcí z hlediska rozsahu a způsobu zpracování?
* Rozsah:
o Lokální transakce: Probíhá v jednom uzlu.
o Globální transakce: Přesahuje rozsah jednoho uzlu.
* Způsob zpracování:
o Optimistický: Předpokládá se, že nenastane chyba – data se přepisují natvrdo.
o Pesimistický: Změny se zaznamenávají do dočasných objektů (většinou dočasné řádky tabulky, které se poté odstraní a nahradí původní hodnoty).
**Co vyjadřují principy ACID u databázových transakcí? Co vyjadřují principy ACID u databázových transakcí? **
* Atomičnost:
o Všechny operace transakce proběhnou jako celek, nebo se žádná z nich neprovede.
o V případě chyby se všechny změny vrátí zpět – vše nebo nic.
* Konzistence:
o Po dokončení transakce musí být data v konzistentním stavu a splňovat všechna integritní omezení.
* Izolace:
o Současné transakce nemohou negativně ovlivnit jedna druhou; provádějí se tak, jako by byly zpracovány sériově, tedy nezávisle na jiných transakcích.
* Stálost (Durability):
o Po úspěšném dokončení transakce zůstávají změny permanentně uloženy v databázi, i když dojde k výpadku.
o Účinky transakce jsou trvalé.
**Jaké jsou základní fáze databázové transakce? **
- Začátek transakce (BEGIN): Iniciace transakce.
- Operace v transakci: Zahrnují změny dat pomocí příkazů INSERT, UPDATE, DELETE.
- Potvrzení (COMMIT): Zajištění trvalého uložení provedených změn.
- Zrušení (ROLLBACK): Vrácení databáze do původního stavu při chybě.
- SAVEPOINT: Vytvoření bodu návratu v průběhu transakce pro případ odvolání části provedených změn.
**Jaké varianty řešení databázových transakcí existují? **
*** Jednoduché transakce: **
Operace probíhající v jedné databázi.
* Rozdělené transakce (Distributed Transactions):
o Transakce probíhající přes více databází nebo systémů.
o Používá se dvoufázový protokol potvrzení (Two-phase commit) pro synchronizaci.
* Zřetězené transakce:
o Transakce, které jsou logicky propojeny, kde výsledek jedné ovlivňuje následující.
* Nested Transactions (Vnořené transakce):
o Hlavní transakce obsahuje jednu nebo více podtransakcí.
o Pokud podtransakce selže, hlavní transakce se může rozhodnout pokračovat nebo selhat.
Co obsahují jednotlivé úrovně návrhu (konceptuální, logický a fyzický) a jaké jsou jejich cíle?
* Konceptuální modelování:
o Zahrnuje identifikaci entit, vztahů mezi nimi a jejich atributů.
o Využívá grafické reprezentace, jako jsou ER diagramy, UML Class Diagram nebo ISA hierarchie.
o Hlavním cílem je vytvořit model, který je nezávislý na implementaci.
* Logický návrh:
o Transformace konceptuálního modelu do logického modelu (např. relačního).
o Popisuje tabulky, atributy, datové typy a integritní omezení.
o Zohledňuje normalizační proces pro odstranění redundance.
* Fyzický návrh:
o Zahrnuje rozhodnutí o způsobu ukládání dat na disk (indexy, klastrování, sekvenční soubory).
o Optimalizace pro výkon při dotazování a transakcích.
Jaké metody se využívají při vývoji, údržbě a rozvoji databázových systémů a jaké jsou postupy datového modelování?
* Techniky a metody návrhu:
o Datové a funkční modelování: Kombinuje analýzu datových struktur a jejich vztahů s funkcemi systému.
o Normalizace dat: Odstraňuje redundanci a optimalizuje strukturu databáze.
o Analýza událostí: Identifikuje klíčové operace spouštěné uživateli nebo systémem.
o Životní cyklus entit: Sleduje existenci entit od vzniku po zánik v systému.
o Nejrozšířenější metodou je datové modelování vycházející z Chenova E-R modelu.
* Vícestupňová architektura DBS:
o Externí schéma: Pohled koncového uživatele na data.
o Konceptuální schéma: Grafická reprezentace datového modelu (např. ER diagram), vztahy mezi entitami.
o Interní schéma: Jak jsou data fyzicky ukládána (např. indexy, klastrování).
* Postupy datového modelování:
o Zdola nahoru:
Použití univerzální relace s analýzou závislostí mezi atributy (omezeno na malé databázové modely).
o Shora dolů:
- Specifikace entit a množin atributů.
- Definování vztahů (kardinalita, povinnost).
- Přidělení primárních klíčů.
- Transformace konceptuálního modelu na logickou strukturu.
- Prověření z hlediska normalizace a přidělení domén a pravidel manipulace se záznamy.
Jaké jsou dotazovací jazyky, jejich předpoklady a principy?
* Dotazovací jazyky:
o Umožňují přístup k datům uloženým v databázi.
o Jsou standardizovanými nástroji komunikace mezi aplikacemi a databází a slouží k vytváření dotazů, manipulaci a řízení dat.
o Rozdělují se na deklarativní (např. SQL, QBE) a procedurální (např. relační algebra, COBOL – vyžaduje specifikaci algoritmu).
o Neprocedurální jazyky specifikují pouze podmínky požadovaného výstupu.
* Principy dotazovacích jazyků:
o Strukturovaný přístup k datům s podporou základních operací: selekce, projekce, join, agregační funkce.
o Umožňují manipulaci s daty (vkládání, aktualizace, mazání).
* Předpoklady:
o Databáze musí být správně navržena (normalizovaná) se zajištěnou konzistencí a integritou dat.
Co je SQL, jaké jsou jeho základní části a jaká je historie standardizace SQL?
* Definice SQL:
o SQL (Structured Query Language) je standardizovaný deklarativní jazyk pro správu a dotazování relačních databází.
* Části SQL:
o DDL (Data Definition Language):
Definice schématu (CREATE, ALTER, DROP); například CREATE TABLE (vytvoření tabulky), DROP TABLE (zrušení tabulky), CREATE VIEW (přidání pohledu), DROP VIEW (smazání pohledu).
o DML (Data Manipulation Language):
Manipulace s daty (SELECT, INSERT, UPDATE, DELETE); například SELECT pro výběr dat, INSERT pro vložení záznamu, UPDATE pro úpravu záznamu, DELETE pro odstranění záznamu.
o DCL (Data Control Language):
Správa práv pomocí příkazů GRANT a REVOKE.
o TCL (Transaction Control Language):
Řízení transakcí pomocí příkazů COMMIT a ROLLBACK.
* Standardizace SQL:
o SQL bylo poprvé standardizováno v roce 1986 (ANSI) a pozdější verze jsou SQL-92, 1999, 2003, 2008, 2011.
o Hlavní rysy standardu zahrnují zpětnou kompatibilitu, postupnou integraci nových technologií (XML, OOP prvky) a zajištění konzistence napříč implementacemi.
Co je QBE a v čem spočívá jeho využití?
* Definice QBE (Query By Example):
o Neprocedurální dotazovací jazyk, který umožňuje vytvářet dotazy pomocí grafických symbolů.
* Použití QBE:
o Vhodný pro uživatele bez znalosti syntaxe klasických dotazovacích jazyků.
o Podporuje dotazy podle pravidel relační algebry a umožňuje třídění, výpočet součtů a logické vazby (např. v MS Access).
Jaké jsou nevýhody a výhody SQL?
* Nevýhody SQL:
o Některé implementace mají odchylky od standardu, což může vést ke kompatibilitním problémům.
o Omezené možnosti při práci se složitými datovými strukturami.
o Relativně nízká efektivita při provádění specifických operací na velkých objemech dat (někdy je nutná optimalizace na úrovni fyzického návrhu).
o Není vhodné pro kompletní programování aplikací (SQL slouží pouze pro dotazy).
o Nelze definovat vlastní funkce a proměnné.
* Výhody SQL:
o Intuitivní syntaxe, blízká angličtině.
o Podpora práce s velkými objemy dat.
o Flexibilita v konstrukci dotazů.
o Nízké náklady na zaškolení a přenositelnost mezi aplikacemi.
o Dlouhá životnost a konzistence aplikací.
Jaké jsou základní charakteristiky relačních databázových řešení, jak probíhá uložení dat, přístup k datům a jejich ochrana?
* Charakteristika:
o Vycházejí z relačního modelu definovaného E. F. Coddem.
o Data jsou ukládána do tabulek (relací) ve formě řádků (záznamů) a sloupců (atributů).
o Standardizace probíhá podle ANSI a ISO norem.
* Uložení dat, datový model:
o Strukturovaná data jsou ukládána do tabulek, kde každý atribut má definovanou doménu (rozsah povolených hodnot).
o Atributy mají atomické hodnoty, což eliminuje redundanci.
* Přístup k datům:
o Přístup probíhá přes dotazovací jazyk SQL, který umožňuje selekci, manipulaci a třídění dat.
o Umožňuje práci s velkým objemem dat a složitými dotazy.
* Ochrana dat:
o Zajištěna autentizací a autorizací uživatelů.
o Integritní omezení chrání konzistenci dat (např. unikátní klíče, kontrola odkazů mezi tabulkami).
o Datová bezpečnost je doplněna šifrováním.
Jaké jsou hlavní charakteristiky objektových databázových řešení, jak probíhá uložení dat, přístup k datům a jak je zajištěna jejich ochrana?
* Charakteristika:
o Kombinují prvky objektově orientovaného programování a databázových schopností.
o Nejsou standardizována, což umožňuje větší flexibilitu v implementaci.
* Uložení dat:
o Data jsou ukládána jako objekty dle definovaných tříd, což umožňuje práci se složitými datovými strukturami a vztahy.
o Každý objekt má jedinečný identifikátor, který je neměnný po dobu jeho existence.
* Přístup k datům:
o Přístup pomocí ukazatelů (pointers) nebo objektově orientovaných jazyků (např. Java, C#).
o Lze využívat i jazyk SQL; umožňuje efektivní práci s velkým množstvím dat o jednotlivých objektech bez potřeby rozsáhlých dotazů.
* Ochrana dat:
o Přístup k datům je možný pouze přes metody definované v třídě objektu, což eliminuje přímou manipulaci s datovou strukturou.
o Integritní omezení zajišťují správnost a konzistenci uložených dat.
Co představují objektově-relační databázová řešení a jaké jsou jejich hlavní výhody?
- Kombinují aspekty relačních i objektových databází.
- Snaží se sjednotit výhody obou přístupů: standardizaci SQL a flexibilitu a rozšířitelnost objektově orientovaného modelu.
Jaký je účel a princip značkovacích jazyků?
* Účel:
o Značkovací jazyky slouží k rozšíření textu o dodatečné informace, které určují jeho strukturu, význam a způsob zobrazení.
* Jak fungují:
o Používají značky (tagy) a atributy, které poskytují návod k interpretaci a vykreslení obsahu.
* Výhoda:
o Umožňují systematickou organizaci obsahu a přenositelnost mezi různými systémy.
Mouka
Kvasnice
Horká voda
Sůl
Text
), ale nevhodné pro větší projekty. o **Internal**: Styl definovaný uvnitř