datab - univerzita...
TRANSCRIPT
Databáze 2011/2012
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í o Konceptuální (ER) model
o Logický (relační) model
• Jazyk SQL – DDL, DML
• Jazyk T-SQL o procedurální programování
• procedury, funkce, triggery
o 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 o 2 (praktické) zápočtové testy
o každý > 60% (max. 1 opravný pokus)
1. 31. 10. 2012 - konceptuální modelování + SQL dotazování
2. 12. 12. 2012 - T-SQL
• Zkouška o zkouškový test + diskuze
• konceptuální modelování, SQL dotazování, T-SQL programování
• 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 DBS = DBMS + DB
• DataBázový Systém
(DBS) =
o Systém Řízení Báze Data (SŘBD)
• zapouzdřuje DB
• nadstavba na daty
+
o DataBáze (DB)
• data + metadata
• DataBase System (DBS)
=
o DataBase Management
System (DBMS)
+
o DataBasee (DB)
DBMS • Typy DBMS
o RDBMS
• relační
o ODBMS
• objektový
o ORDBMS
• objektově-relační
• Požadavky
o přístup k datům (data access)
o perzistence dat (persistency)
o datová integrita (data
integrity)
o současný přístup více uživatelů
(concurrency control)
o obnova DB (recovery)
o …
Pohled na informační systém (IS)
Prezentační vrstva
Aplikační vrstva
Datová vrstva
(DBS)
Modelování DBS – úrovně abstrakce
Modelování z pohledu vývoje IS
ER model • entitně(Entity)-vztahový(Relationship) model
o vhodné pro modelování “plochých” (vnitřně nestrukturovaných) dat
o nevhodné pro modelování multimediálních (vnitřně strukturovaných) dat
o konceptuální schéma = ER model
o 2 typy objektů
• Entity
o třídy objektů stejného typu
• Vztahy
o komunikace mezi entitami
• Atributy
o vlastnosti entit a vztahů
• software o komerční: Rational Rose, Enterprise Architect, Toad Data Modeler,
Microsoft Visio, ER Studio,
o free: Oracle SQL Developer Data Modeler, MySQL Workbench, Open ModelSphere
Modelový systém IS pro MHD
• Entity o AUTOBUS
• Sériové číslo
• Rok výroby
• Typ
• SPZ
• …
o RIDIC • Jméno
• ID
• Datum narození
• …
o LINKA • Číslo
• Odkud
• Kam
• …
• Vztahy o LINKA ZAJISTUJE AUTOBUS
o AUTOBUS RIDI RIDIC
• Integritní omezení (IO) o atribut ID identifikuje řidiče
o každou linku musí zajišťovat
alespoň jeden autobus
o věk řidiče nesmí být vyšší než 60
o dvě linky nesmějí mít různá čísla
o doména číslo linky musí být
celé kladné číslo
o …
ER model - entita • Entita
o RIDIC
• Entita + atribut o RIDIC + jmeno (nejednoznačné)
• Entita o LINKA
• Entita + atribut o LINKA + cislo (jednoznačné)
ER model - atributy
• 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 (kardinalita, parcialita)
• 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 o 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 o 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 • Do vztahu vstupuje
vždy s kardinalitou (1,1)
• Slabý entitní typ je
(spolu)identifikován
entitou/entitami ke
které/kterým se váže
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
dedění v OOP
• Podentity dědí jako
atributy, tak vztahy
nadřazené entity
ER model – ISA hierarchie – dekompozice I
ER model – ISA hierarchie – dekompozice II
ER model – 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
ER model – typy vizualizace
zdroj: wikipedia.org