Databáze 2013/2014 Konceptuální model DB RNDr. David Hoksza, Ph.D. http://siret.cz/hoksza
Osnova Organizace Stručný úvod do DB a DB modelování Konceptuální modelování Cvičení - ER modelování
Náplň přednášky a cvičení Přednáška Cvičení Konceptuální a logické modelování Konceptuální (ER) model Logický (relační) model Jazyk SQL DDL, DML Jazyk T-SQL procedurální programování procedury, funkce, triggery transakce ER a relační modelování SQL - MS SQL Server T-SQL - MS SQL Server
Zápočet & zkouška Docházka nepovinná Zápočet 2 (praktické) zápočtové testy každý > 60% (max. 1 opravný pokus) 1. 8. 4. 2014 - konceptuální modelování + SQL dotazování 2. 20. 5. 2014 - T-SQL Zkouška zkouškový test konceptuální modelování, SQL dotazování, teorie 100-90 (A), 90 80 (B), 80 70 (C), 70 60 (D), 60 50 (E), < 50 (F)
Co je databázový systém DBS = SŘBD + DB Databázový systém (DBS) = Databáze (DB) data + metadata + Může trochu lišit v různých DBS Systém Řízení Báze Dat (SŘBD) zapouzdřuje DB nadstavba na daty (pamět, procesy, ) DBS = DBMS + DB DataBase System (DBS) = Database (DB) + Database Management System (DBMS)
Typy DBS Hlavní typy DBS RDBMS relační ODBMS objektový ORDBMS objektově-relační Požadavky přístup k datům (data access) perzistence dat (persistency) současný přístup více uživatelů (concurrency control) datová integrita (data integrity) obnova DB (recovery)
Umístění DB v informačních systémech (IS) Prezentační vrstva Aplikační vrstva Datová vrstva (DBS)
Model/schéma databáze úrovně abstrakce
Modelování z pohledu vývoje systému
ER model Entitně(Entity)- vztahový(relationship) model vhodné pro modelování plochých (vnitřně nestrukturovaných) dat nevhodné pro modelování multimediálních (vnitřně strukturovaných) dat 2 typy objektů Entity třídy objektů stejného typu Vztahy vztahy mezi entitami Atributy vlastnosti entit a vztahů konceptuální schéma = ER model
ER model - software Komerční Volně dostupný Rational Rose Enterprise Architect Toad Data Modeler Case Studio Microsoft Visio Oracle SQL Developer Data Modeler MySQL Workbench Open ModelSphere ER Studio
Extrémně zjednodušeno!!! Modelový systém MHD autobusy Entity AUTOBUS sériové číslo, rok výroby, typ, SPZ, RIDIC ID, jméno, datum narození, Vztahy LINKA ZAJISTUJE AUTOBUS AUTOBUS RIDI RIDIC LINKA číslo, odkud, kam,
Integritní omezení (IO) Sada pravidel, která musí data splňovat, aby byla zachována tzv. integrita databáze Může jít o omezení na úrovni hodnot atributů (např. cena musí být kladná, datum musí být v daném intervalu, atd.), nebo vztahů (např. referenční integrita) IO pro autobusový systém atribut ID identifikuje řidiče každou linku musí zajišťovat alespoň jeden autobus věk řidiče nesmí být vyšší než 60 dvě různé linky nesmějí mít stejná čísla číslo linky musí být celé kladné číslo
Entity Entita RIDIC Entita + atribut RIDIC + jmeno (nejednoznačné) Entita LINKA Entita + atribut LINKA + cislo (jednoznačné)
Atributy Existuje více různých způsobů pro vyjádření entit, atributů a vztahů!!! Nepovinný atribut Vícehodnotový atribut Složený atribut
ER model - atributy Identifikační atribut (jednoznačně definující objekt v rámci třídy) Víceatributový identifikátor Více identifikačních atributů
ER model - vztah Vztah Binární vztah Vztah s definovanou kardinalitou (násobnost vztahu), parcialitou (povinnost býti ve vztahu)
ER model vztah (parcialita, kardinalita) Linka je operována až n řidiči řidič může jezdit maximálně na jedné lince Linka je operována až n řidiči řidič může jezdit právě na jedné lince Linka je operována právě jedním řidičem řidič může jezdit právě na jedné lince Linka je operována právě jedním řidičem řidič může jezdit maximálně na jedné lince Linka je operována až n řidiči řidič může jezdit až na n linkách
ER model - vztah Vztah může být doplňen atributem Zjemňuje granularitu vztahu vyjadřuji skutečnost, že řidič má přidělenu danou linku, ale pouze v určité dny N-ární (ternární, kvaternární, ) vztah Kardinalita a parcialita se váže ke všem entitám ve vztahu, tj. autobus je řízen právě jedním řidičem na právě jedné lince
ER model rekurzivní vztah Rekurzivní vztah vzniká, když je entita ve vztahu se sama sebou Kardinality se značí pro každý ze směrů -> různé role mají různé kardinality
ER model slabá entita Slabý entitní typ je (spolu)identifikován entitou/entitami ke které/kterým se váže Do vztahu vstupuje vždy s kardinalitou (1,1) smíšený identifikátor externí identifikátor
ER model průniková entita Vztah M:N lze převést na tzv. průnikový entitní typ, tj. 2 vztahy 1:N
ER model ISA hierarchie ISA (Is-A) hierarchie umožňuje sdílení atributů podobným způsobem jako dědění v OOP Podentity dědí jak atributy tak vztahy nadřazené entity
ER model ISA hierarchie dekompozice I
ER model ISA hierarchie dekompozice II
ISA hierarchie dekompozice III
ER model komplexní příklad Vyrobeno v aplikaci ER-to-SQL (ke stažení zde) http://siret.ms.mff.cuni.cz/skopal/bakalari.htm
Typy vizualizace konceptuálního modelu zdroj: wikipedia.org