Databázové systémy přednáška+cvičení
Základní pojmy Databáze Všechna potřebná (uložená) data dané organizace Databázový (řídící) systém Specializovaný software pro efektivní práci s daty. Jaké služby by měl DBS poskytovat? Definici databáze, efektivní manipulaci databáze, souběžný přístup, ochranu dat, zotavení se z chyb.
Základní pojmy Administrátor dat Rozhoduje o logické struktuře uložených dat na základě znalosti potřeb organizace, určuje způsob manipulace s daty, odpovídá za bezpečnostní politiku přístupu k databázi. Administrátor databáze Odpovídá především za technickou stránku správného chodu DB systému, uložení dat na fyzické úrovni, zálohování dat.
Databáze
Návrh databáze Máme-li data reprezentovat v databázi, jak vybereme jejich strukturu na konceptuální úrovni? Konceptuální modelování analyzuje požadavky a zobrazuje tyto požadavky určitými grafickými prostředky bez ohledu na to, který databázový systém budeme následně používat, jak budou data fyzicky uložena. Základními prvky jsou entity, vztahy a atributy. Jedním z hojně používaných postupů je entitně- relační (ER) modelování, které používá různé grafické notace - např. Chen Notation (Peter Chen, 70. léta), Crow’s Feet Notation (Richard Barker, 80. léta) a také grafické vyjádření pomocí UML. 2
ER Model ER model pracuje s následujícími základními pojmy: entita, entitní množina, vztahy, kardinalita vztahu (násobnost, multiplicita vztahu), atributy (vlastnosti), kandidátní klíč, primární klíč.
Entita, entitní množina Entita je objekt reálného světa, který je schopen samostatné existence a je jednoznačně odlišitelný od ostatních objektů (v jistém smyslu podobná instanci třídy). Entitní množina - množina entit podobného typu, které mají stejné vlastnosti (atributy). V jistém smyslu je podobná třídě. ER model je statický koncept – obsahuje pouze strukturu dat a neuvažuje operace nad daty. Nezahrnuje tedy v sobě metody – na rozdíl od třídy. Příklad: STUDENT, PŘEDMĚT představují entitní množiny, student JanNovák, rč. 8315301234 je entita, předmět Makroekonomie je entita.
Vztahy mezi entitními množinami V binárním vztahu entitních množin může v principu být každá entita jedné množiny ve vztahu s každou entitou druhé množiny. Je ale běžné, že multiplicita tohoto vztahu je omezena. Kardinalita (násobnost, multiplicita) vztahu určuje kolik entit jedné entitní množiny se vztahuje k jedné entitě druhé entitní množiny. Participace ve vztahu určuje, zda do vztahu vstupují všechny entity dané entitní množiny či nikoliv. V ER modelu je možné vyjádřit i ternární vztahy i vztahy vyššího stupně, i když jsou poměrně vzácné.
Příklad vztahu Mezi studentem a předmětem může být například vztah: „student si zapsal předmět“, jehož kardinalita je m:n, tj. jeden student si může zapsat více předmětů a na jeden předmět se může zapsat více studentů. Participace ve vztahu bude povinná na straně studenta: každý student musí mít zapsán alespoň jeden předmět. Na druhé straně ale může existovat předmět, na který není nikdo zapsán – tj. na straně předmětu je nepovinná participace.
Atribut, kandidátní klíč, primární klíč Atribut – vlastnost entity nebo vztahu doména atributu – množina přípustných hodnot, jednoduchý atribut – dále nedělitelný (atomický), složený atribut – např. adresa (město, ulice, PSČ), Kandidátní klíč – minimální množina atributů, která jednoznačně identifikuje každou entitu. Primární klíč – kandidátní klíč, který byl vybrán k jednoznačné identifikaci entit. Příklad: má-li STUDENT atributy rodné číslo a číslo studenta, tak každý z nich je kandidátní klíč a jako primární klíč je vhodné vybrat číslo studenta.
Rozšířený ER model (EER model) Zavádí další pojmy supertřídu / podtřídu Supertřída – entitní množina, zahrnující jedno nebo více seskupení svých instancí, které vyžadují reprezentaci v datovém modelu. Podtřída – seskupení instancí dané entitní množiny, které vyžaduje reprezentaci v datovém modelu. Příklad: Supertřída: Zaměstnanec Podtřídy: Pedagog, THP, Dělník
Dědičnost atributů Entita v podtřídě reprezentuje tutéž entitu jako v supertřídě – zdědí atributy supertřídy a může mít navíc další atributy. Podtřída je sama o sobě také třídou, může tedy mít také podtřídy. Tato hierarchie tříd se někdy nazývá IS-A hierarchie. Multiplicita a vztahu mezi supertřídou a podtřídou je 1:1.
UML doménový model, diagram tříd
Procvičování Vytvořte konceptuální model na základě následujícího popisu: Nakladatelství má několik dceřiných společnosti, vydávajících různé edice (vydavatelské řady). V databázi jsou uložené informace o všech dceřiných společnostech, které potřebují editoři, administrátoři a manažeři o knihách, autorech, editorech a o objednávkách titulů od jednotlivých prodejců a o finančních otázkách nakladatelství. Předpokládáme, že platí následující podniková omezení: Jeden autor může napsat více knih (titulů). Kniha může mít více autorů. Jeden editor může pracovat na více knihách a na jedné knize může pracovat více editorů. Každá kniha má jednoho vydavatele, ale každý vydavatel může vydávat více knih. Na jedné objednávce prodejce může být jedna nebo více knih.
Procvičování 2 Při zasílání objednaných titulů se často stává, že některý z objednaných titulů není na skladě, a tak se objednané tituly mohou expedovat po částech. Kontrakt uzavírá nakladatel na titul - (předpokládá se souhlas všech spoluautorů). Obchodník může objednat jeden a více titulů, každý titul může objednávat více obchodníků. Honorář za titul se odvíjí od počtu prodaných výtisků (tantiémy – určité procento z ceny prodaných výtisků). V daném roce je honorář určen na základě daného podílu pro dané rozpětí prodaných výtisků. (Například je –li prodáno do 500 kusů, příslušný podíl na zisku může být 0,1 a při prodaných 501 až 1000 výtisků to může být 0,15 apod.) Pořadí autorů na titulní stránce je důležité, neboť se od něj odvíjí rozdělení honoráře za titul mezi jednotlivé autory.