Fakulta elektrotechniky a informatiky jiri.zechmeister@upce.cz Databázové systémy I Přednáška 1 Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky jiri.zechmeister@upce.cz
Databázové systémy 1 - př. 1 Cíl předmětu IDAS1 Seznámit posluchače se základy práce s SQL databázemi, s návrhem databázových modelů. Zvládnutí základů práce s konkrétním databázovým systémem(Oracle11g). Studenti si v praxi vyzkouší programování nad databázovým systémem. Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Požadavky na studenty Aktivní účast na cvičení Povoleny 3 neomluvené absence Zpracování a obhájení semestrální práce Splnění praktického testu Absolvování ústní zkoušky Zápočty z loňských let se neuznávají Databázové systémy 1 - př. 1
Přehled probírané látky Relační databáze, databázový server, tabulka. Nástroje pro administraci a práci s daty. Fáze návrhu databáze, relace, E-R diagramy. Normální formy (přehled), normalizace. Vytváření tabulek, integritní omezení, primární a cizí klíče. Příkaz Select, Vnitřní a vnější spojení tabulek, podmínky. Databázové systémy 1 - př. 1
Přehled probírané látky Spojení tabulek, logické operátory, funkce. Jazyk SQL, DDL, DML. Datové typy., základy SQL – CREATE/DROP TABLE, SELECT, Insert, Update, Delete. Souhrnné a skupinové dotazy. Pohledy a vnořené dotazy, množinové operátory. Aliasy, funkce pro datum, čas, práce s řetězci, práce s hodnotou NULL. Databázové systémy 1 - př. 1
Přehled probírané látky Sekvence, Indexy. Systémový katalog. Databázové systémy 1 - př. 1
Doporučená literatura Milan Šimůnek SQL, kompletní kapesní průvodce. Praha: Grada Publishing, 1999. Ryan K. Stephens, Ronald R. Plew Naučte se SQL za 21 dní. Computer Press, 2004. Databázové systémy 1 - př. 1
Doporučená literatura James R. Groff, Paul N. Weinberg SQL – kompletní průvodce. Computer Press, 2005. T. Conolly, C. Begg, R. Holowczak Databáze: Profesionální průvodce tvorbou efektivních databází Computer Press, 2009. Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Odkazy na internetu Například http://tahiti.oracle.com – oficiální dokumentace Oracle http://kubu.wz.cz/help/sql/sql_templates.html http://www.techonthenet.com/sql/index.php http://www.oracle.com http://www.dbsvet.cz/ http://interval.cz/serialy/sql-structured-query-language/ Poznámka: Internet je plný chybných informací. Je třeba dobře zvážit zdroje, ze kterých čerpáme. Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Sběr dat a informací 40 000 př.n.l. Jeskynní malby 3 500 př.n.l. Písmo 105 n.l. Papír 1 450 n.l. Knihtisk 1 870 n.l. Telefon 1 906 n.l. Radiové vysílání 1 926 n.l. TV vysílání (o 2 roky později v barvě) 1 950 n.l. Počítač 1 960 n.l. Počítačové sítě 1 993 n.l. WWW služba v síti Internet atd. … satelitní a digitální pozemní TV vysílání, IP broadcast Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Sběr dat a informací Produkujeme ročně několik mld. GB Facebook v roce 2011 generoval denně přes 130 TB dat 90% objemu všech dat bylo vygenerováno během posledních dvou let V roce 2020 se předpokládá, že se množství vygenerovaných dat znásobí 44x oproti roku 2009 Pro představu 1 KB = 103 B 1 MB = 106 B 1 GB = 109 B 1 TB = 1012 B (tera) 1 PB = 1015 B (peta) 1 EB = 1018 B (exa) = 109 GB = mld. GB Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Data vs. Informace Data: • vyjádření skutečností formálním způsobem tak, aby je bylo možno přenášet nebo zpracovat (např. počítačem) • číselné nebo jiné symbolicky vyjádřené (reprezentované) údaje a hodnoty nějakých entit nebo událostí • jakékoli fyzicky (materiálně) zaznamenané znalosti (vědomosti), poznatky, zkušenosti nebo výsledky pozorování procesů, projevů, činností a prvků reálného světa (reality) • surovina, z níž se tvoří informace Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Data vs. Informace Informace: • sdělitelný poznatek, který má smysl a snižuje nejistotu • smysluplné interpretace dat a vztahů mezi nimi • data zpracovaná do formy využitelné pro rozhodování: a) vysvětlením, co znamenají b) uspořádáním (např. knihy v knihovně, telefonní čísla v seznamu) c) uvedením do kontextu (souvislostí, vztahů k jiným údajům) Databázové systémy 1 - př. 1
Organizace dat v kartotékách Databázové systémy 1 - př. 1
Organizace dat v kartotékách Problémy: duplicity údajů v různých kartotékách (různě uspořádaných) velké objemy dat Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Řešení s rejstříky Databázové systémy 1 - př. 1
Rozdělení do více propojených záznamů Databázové systémy 1 - př. 1
Uložení dat v databázích Všechna data v počítačích uložena ve fyzických a logických strukturách. Fyzická struktura – obvykle soubory na discích nebo diskových polích, soubory se organizují do adresářů Mnohé dokumenty obsahují data ve formě tabulek, každý sloupec má svůj název a obsahuje hodnoty stejného datového typu Číslo Jméno Příjmení Narozen 107 Karel Pilař 12.7.1963 219 Josefína Krátká 23.1.2002 Databázové systémy 1 - př. 1
Hierarchický databázový model data strukturována hierarchicky (znázorňuje obrácený strom) Vztah reprezentován termíny rodič a potomek Tabulka rodiče přidružena k jedné nebo více tabulkám potomků, ale tabulka potomků může být přiřazena pouze k jedné tabulce rodiče. Uživatel přistupuje přes kořenovou tabulku a před stromovou strukturu se postupně propracovává k hledaným datům Databázové systémy 1 - př. 1
Hierarchický databázový model Databázové systémy 1 - př. 1
Hierarchický databázový model Vlastnosti modelu + rychlost, + zapracovaná referenční integrita záznamy bez vztahu k tabulce rodiče (lze řešit fiktivními prvky) problém se vztahy N:M, které nejsou podporovány (vede na redundanci dat) Databázové systémy 1 - př. 1
Hierarchický databázový model Databázové systémy 1 - př. 1
Síťový databázový model Pokus o vyřešení problémů hierarchické databáze uzel reprezentuje skupinu záznamů množinová struktura reprezentuje vztahy ve vztahu je jeden uzel je definován jako vlastník, druhý jako člen 1 záznam v uzlu vlastník může být v relaci k 1 či více záznamům v uzlu člen 1 záznam v uzlu člen může být v relaci k 1 záznamu v uzlu vlastník mezi dvěma uzly může být více množin spojení člen nemůže existovat bez vztahu na uzel typu vlastník Databázové systémy 1 - př. 1
Síťový databázový model Vlastnosti modelu: + rychlost, + možnost začít z libovolného uzlu vyžaduje znalost množinové struktury, - problematické změny struktury databáze Databázové systémy 1 - př. 1
Síťový databázový model Databázové systémy 1 - př. 1
Relační databázový model Poprvé představen 1969 (Dr. Edgar F. Codd) – IBM Založeno na Teorii množin Predikátové logice prvního řádu Umožňuje vysoký stupeň nezávislosti dat základ pro zvládnutí sémantiky dat použití množinově orientovaných jazyků Databázové systémy 1 - př. 1
Relační databázový model Pojmy relačního modelu Relace – tabulka se sloupci a řádky (proto relační model) Atribut – pojmenovaný sloupec relace Datová n-tice – řádek relace Doména – množina přípustných hodnot pro jeden nebo více atributů Relační databáze – kolekce normalizovaných tabulek Databázové systémy 1 - př. 1
Relační databázový model Vlastnosti relace Má jméno, které ji odlišuje od všech ostatních Každý člen n-tice obsahuje právě jednu hodnotu Každý atribut má jedinečné jméno Všechny hodnoty atributu jsou ze stejné domény Pořadí atributů je nevýznamné Neexistují duplicitní n-tice Pořadí n-tic je nevýznamné Databázové systémy 1 - př. 1
Relační databázový model Klíče Atribut, nebo skupina atributů, která jednoznačně definuje n-tici. Superklíč – atribut, nebo skupina atributů, která jednoznačně definuje n-tici Kandidátní klíč – superklíč obsahující minimální počet atributů k jednoznačné identifikaci n-tice Primární klíč – zvolený kandidátní klíč, který definuje n-tici Cizí klíč – atribut, nebo skupina atributů, která odpovídá kandidátnímu klíči v jiné nebo stejné relaci Databázové systémy 1 - př. 1
Relační databázový model Další pojmy relačního modelu NULL – představuje hodnotu, která je prázdná, neplatná nebo neznámá Entitní integrita – každá n-tice musí mít plně vyplněný primární klíč Referenční integrita – existuje-li cizí klíč, musí být prázdný, nebo plně odpovídat kandidátnímu klíči v jiné tabulce Databázové systémy 1 - př. 1
Relační databázový model Zvládnutí pojmů z relačního modelu je nezbytné pro další studium Pro zjednodušení však dále budeme používat pojmy tabulka, sloupec a záznam Relace = tabulka Atribut = sloupec N-tice = záznam Databázové systémy 1 - př. 1
Co je to relační databázový systém Sada nástrojů pro efektivní a spolehlivé ukládání dat a pro manipulaci s nimi Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Několik pojmů Databáze - data a nástroje zajišťující jejich ukládání a manipulaci s těmito daty Databázový server – soubor programových prostředků určených pro práci s daty, včetně organizace a realizace přístupu klientů k těmto datům Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Několik pojmů Database (báze dat, databáze) uspořádaná množina dat ve formě záznamů, které jsou navzájem v určitém vztahu a jsou přístupné s pomocí systému řízení báze dat uživatelé databáze k ní mohou přistupovat (pracovat s ní) dvěma způsoby: • operace čtení (předchází výběr – SELECT) • operace zápisu (INSERT, UPDATE, DELETE) Database Management System – DBMS (systém řízení báze dat – SŘBD) • programový systém umožňující vytvoření, údržbu a použití báze dat • řídicí systém databáze, který sídlí mezi vlastní fyzickou vrstvou (daty) a uživatelem. Díky této vrstvě nemusí uživatel při práci s databází vědět naprosto nic o její skutečné fyzické podobě a způsobu, jakým jsou data uložena a udržována. Database application – (databázová aplikace) program, který umožňuje uživatelům přístup k datům v databázi prostřednictvím formulářů pro zadávání dat, formulářů pro zadávání dotazů a sestav Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Několik pojmů funkce DBMS základní funkce: přenášení (načítání) dat z místa jejich uložení (např. z pevného disku) do místa jejich zpracování (operační paměť) a zpět. Podmínkou efektivnosti této procedury je strukturování dat v místě jejich uložení (např. na záznamy a položky). 1. definování a redefinování dat v databázi (data definition) – organizace datových souborů (vytváření a změny datových struktur) 2. vytváření obsahu databáze – aktualizace datových souborů (vkládání dat, změny, aktualizace dat) (data transformation) 3. výběr a výstup (prezentování, zobrazování, prohlížení) dat z databáze (data presentation) Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Několik pojmů funkce DBMS 4. tvorba vstupních formulářů (obrazovek, pohledů) a výstupních sestav 5. kontrola integrity dat (data integrity) – poskytuje metodu nebo metody pro definování a zajištění správnosti dat 6. kontrola přístupových práv (určuje, kdo a jak může přistupovat k datům) (security management) 7. zpravidla obsahuje i programovací jazyk pro vytváření vlastních aplikací (programming interface) Databázové systémy 1 - př. 1
Základní relační operace klasické množinové operace u množinových operací (kromě kartézského součinu) se předpokládá, že obě tabulky, které do operace vstupují jako operandy, mají tyto vlastnosti: • jsou stejného stupně, tj. mají stejný počet sloupců • každý i-tý sloupec z obou tabulek je definován na stejné doméně (tj. položky jsou v obou tabulkách definovány ve stejném pořadí a jako položky stejného typu) Databázové systémy 1 - př. 1
Základní relační operace sjednocení: vytvoří novou tabulku, která obsahuje všechny řádky obou výchozích tabulek průnik: vytvoří tabulku, která bude obsahovat pouze totožné řádky z obou relací množinový rozdíl: vytvoří tabulku, ve které budou všechny řádky první vstupní tabulky kromě těch, které se vyskytují i v druhé tabulce symetrický rozdíl: vytvoří tabulku, ve které budou všechny řádky obou tabulek s výjimkou těch, které se vyskytují v obou tabulkách kartézský součin: vytvoří novou tabulku tak, že spojuje řádky z obou tabulek systémem každý s každým. Počet sloupců výsledné tabulky je součet počtu sloupců obou vstupních tabulek. Počet řádků je součin počtu řádků obou vstupních tabulek. Databázové systémy 1 - př. 1
Speciální relační operace Projekce výběr sloupců tabulky – vertikální podmnožina Databázové systémy 1 - př. 1
Speciální relační operace Restrikce výběr určité věty (záznamů, řádků) z tabulky na základě stanovené podmínky – horizontální podmnožina Databázové systémy 1 - př. 1
Speciální relační operace Spojení tabulek propojení tabulek, které obsahují alespoň jednu stejnou položku (resp. mají alespoň po jedné položce založené na stejné doméně), výsledek zřetězení řádek dvou množin dat provedeného podle jednoho nebo více zadaných pravidel Příklad spojení: Seznam čtenářů knihovny a seznam měst, v nichž tito čtenáři bydlí (spojovací položkou je kód města) Databázové systémy 1 - př. 1
Pohled za hranice relačního modelu Objektově orientovaný model degraduje relační databázi na skladiště dat vývojář se stará o všechny aspekty databáze obsahuje charakteristiky objektově orientovaných jazyků Databázové systémy 1 - př. 1
Pohled za hranice relačního modelu Objektově relační model přidání objektově orientovaných prvků (třídy, zapouzdření, dědičnost) cílem pracovat se složitějšími typy dat (audio, video, stavební projekty) Datové sklady Databázové systémy 1 - př. 1
Databázové systémy 1 - př. 1 Děkuji za pozornost. Otázky Databázové systémy 1 - př. 1