Databázové systémy UIN010 Středa 17:20 – 19:45 Povinnosti: 2/1 Z, Zk (písemka na Z + ústní)
Databázové systémy UIN010 Kontakty konzultačky: po dohodě telefon: 777 171 858, 777 116 363 e-mail: lenka.kebortova@digres.cz www: carolina.mff.cuni.cz/~kebortov/databaze.html 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Literatura J. Pokorný, I. Halaška: Databázové systémy. FEL ČVUT, 1998 J. Pokorný: Základy implementace souborů a databází. UK Praha, 1997 J. Pokorný, I. Halaška: Databázové systémy. Vybrané kapitoly a cvičení. UK, 1998 J. Pokorný: Databázové systémy a jejich použití v informačních systémech. Academia, 1992 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Syllabus Základní rysy databázové technologie. Konceptuální modelování, E-R model, integritní omezení. Relační datový model. Metody převodu z konceptuálního schématu do schématu v relačním modelu. Normální formy. Dekompozice a syntéza. Dotazovací jazyky. Relační algebra. Relační kalkul. Jazyk SQL. Architektury a implementace databázových systémů: host-terminál, klient-server, distribuované systémy, transakční zpracování. Základní organizace souborů na vnější paměti. 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Trocha historie 2.polovina 50.let uživatel zahrnuje ve svém programu popis dat, data, algoritmy pro zpracování dat programy pracují zvlášť a s omezeným množstvím dat 1.polovina 60.let zpočátku data oddělena od programů programy již mohou pracovat nad více množinami dat. následuje mohutný nárůst množství zpracovávaných dat systémy pro zpracování souborů záznamy uchovávány v různých souborech pro výběr či přidávání záznamů napsány různé aplikace přináší však také celou řadu nevýhod 16.1.2019 Databázové systémy UIN010
Nevýhody SPZS Redundance a nekonzistence Obtíže v přístupu k datům Problém s atomicitou Problém se souběžným přístupem Problém s bezpečností Nízké prostředky pro vytváření vazeb mezi záznamy 2.polovina 60.let – vznik systémů řízení bází dat (SŘBD) 16.1.2019 Databázové systémy UIN010
Databázový systém = Databáze + SŘBD + Správce dat Systém řízení bází dat speciální programové vybavení, s jehož pomocí je organizována správa databáze přístup k datům prostřednictvím SŘBD data uložena v databázi, jejich popis není součástí uživatelských programů nezávislost dat na uživ. programech a naopak data udržována jednotně a jejich struktury navrhovány centrálně Databázový systém = Databáze + SŘBD + Správce dat 16.1.2019 Databázové systémy UIN010
Specifikace dat v databázi Dvě úrovně pohledu fyzická úroveň – JAK jsou data ukládána … fyzické schéma databáze logická úroveň – JAKÁ data jsou ukládána … logické schéma databáze 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Návrh databáze Výsledkem by mělo být (logické) schéma databáze popis objektů a vztahů mezi nimi prostředek pro vytvoření: databázový model kolekce pojmů, na kterých je vybudován jazyk pro popis dat a vztahů mezi nimi fyzické schéma implementace logických struktur 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Návrh databáze Externí schémata Logické schéma Konceptuální schéma Fyzické schéma poloautomatické 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Konceptuální schéma Entity Relationship Model (P. Chen 1976) soubor pojmů, s jejichž pomocí se popisuje realita existuje i lineární textová notace, známější a častěji užívaná je grafická podoba tzv. ER-diagram Pojmy, které ER-model nabízí: entita = objekt reálného světa, který je odlišitelný od ostatních objektů, v diagramu reprezentovány obdélníky vztah mezi entitami = uspořádané n-tice entit, reprezentovány kosočtverci propojenými s příslušnými obdélníky, obecně n-ární atribut = vlastnosti entit či vztahů 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Užívané notace entitní typ – entita, vztahový typ – vztah entita – instance entity, vztah – instance vztahu Identifikátor (identifikační klíč) entitního (resp. vztahového) typu jeden nebo skupina atributů typu, které rozlišují jednotlivé entity navzájem Pozn. V některých případech mohou být součástí identifikátoru i jiné atributy než entitě vlastní. 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Neatomické atributy Skupinové (složené) atributy Vícehodnotové atributy ADRESA MĚSTO ULICE ČÍSLO TELEFON 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Kardinalita vztahu integritní omezení pro vztahy, které celé konceptuální schéma přibližuje realitě Př. Vztah 1:1 kino promítá nejvýše jeden film, film je promítán v nejvýše jednom kině. Obecně zahrnuje také případy 1:0 nebo 0:1. KINO FILM promítá 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Vztah 1:N kino může promítat více než jeden film, film je promítán v nejvýše jednom kině. Pozor na směr vztahu! Vztah M:N film může být promítán ve více než jednom kinu. Funkční závislost Př. Film může být promítán v nejvýše jednom kinu, ale kino může promítat více než jeden film. film jednoznačně určuje kino, v němž je promítán funkční závislosti kina na filmu 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Členství ve vztahu existence entity bez zapojení do některého vztahu vs. zapojení každého výskytu entity do některého vztahu nepovinné resp. povinné členství ve vztahu Př. Platí: Každý zaměstnanec musí být zařazen do alespoň jednoho z oddělení. Oddělení může existovat i bez přidělených zaměstnanců. členství entitního typu Zaměstnanec je ve vztahu Pracuje povinné existenční závislost Zaměstnanec Oddělení pracuje 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Slabé entitní typy součástí identifikátoru mohou být i jiné atributy než entitě vlastní na základě hodnot vlastních atributů nerozlišíme mezi dvěma instancemi jednoho entitního typu slabý entitní typ instance jsou identifikovatelné povinným vztahem k instanci entity jiného typu (identifikační vlastník) identifikační vztah (dvojitý kosočtverec) identifikační závislost Identifikační závislost implikuje existenční závislost. Ne naopak!!! Exemplář Kniha (1,1) (0,n) 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 ISA hierarchie obdoba dědičnosti u objektově-orientovaných programo-vacích jazyků generalizace vs. specializace Př. Osoba (ID, Jméno, Datum narození, Bydliště) Učitel … Osoba + platový výměr, titul Student … Osoba + obor, ročník jediný entitní typ Osoba s umělým atributem typ_osoby dva nové podtypy typu Osoba – Učitel a Student Učitel (platový výměr, titul) is a Osoba Student (obor, ručník) is a Osoba 16.1.2019 Databázové systémy UIN010
Grafická podoba ISA vztahu OSOBA UČITEL STUDENT !Identifikace je jedna z věcí, které se dědí! 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 n-ární vztah dosud binární, ale obecně n-ární vztahy problémy s kardinalitou dekompozice do binárních vztahů Zákazník Pobočka Účet M N 1 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Možné dekompozice Účet Zákazník Pobočka nebo Zákazník Účet Pobočka 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Rekurzivní vztahy Součásti složenina komponenta sestává se Př. Osoby dítě matka otec N 1 Team hraje s (1,n) rodina rodina 16.1.2019 Databázové systémy UIN010
Databázové systémy UIN010 Náhrady konstrukcí cílový systém nemusí připouštět všechny zmíněné pojmy snaha o náhradu takových konstrukcí dekompozice vztahu M:N Úkol Zaměstnanec (1,m) (1,n) nový entitní typ … formální a obsahující klíče entit ZÚ Zaměstnanec Úkol (1,n) (1,m) (1,1) 16.1.2019 Databázové systémy UIN010