AP11, IN11 Základy datového modelování
Zadání
(návrh datových struktur; ER diagramy; entity, atributy, vztahy; grafické vyjádření)
Vypracování
Návrh datových struktur
Cílem datového modelování je navrhnout kvalitní datovou strukturu pro konkrétní aplikaci a databázový systém, který bude tato aplikace využívat k uložení dat.
1)
Datový model definuje neměnné atributy a strukturu dat a slouží pro návrh datové struktury.
2)
Konceptuální datový model je zobecněním konkrétní implementace datové struktury v relační databázi – lze jej přenášet do různých implementačních prostředí.
3)
ER diagramy
Entity
Entita je objekt, který existuje, je odlišitelný od ostatních objektů, je potřebný a uchováváme o něm informace (např. osoba, firma, strom)
Entita je popsána svým názvem a množinou atributů
Množina entit je skupina entit stejného typu, které sdílejí stejné vlastnosti (např. skupina všech osob, firem, stromů)
4)
Atributy
Atribut je popisná vlastnost (všech členů) entitní množiny nebo vztahu, jejíž hodnotu chceme uchovat a používat v systému; každý atribut má přiřazen i datový typ
Doména atributu je množina povolených hodnot pro každý atribut
Typy atributů:
jednoduché atributy (např. jméno) a složené atributy (např. datum)
atributy s jednoduchou hodnotou (např. jméno) a s násobnou hodnotou (např. telefonní čísla)
nulové atributy (např. nemá telefon) (null)
odvozené atributy (např. věk)
5)
Klíče
Klíč je podmnožina atributů
6)
Superklíč množiny entit je množina jednoho nebo více atributů, jejichž hodnoty jednoznačně určují entitu
7)
Kandidátní klíč je minimální superklíč;
8)
Primární klíč je jeden zvolený kandidátní klíč
9)
Vztahy
Vztah je spojení mezi několika entitami, které evidujeme a o němž uchováváme informace
Vztahová množina je množina vztahů stejného druhu, také může mít atributy (např. množina vztahů vkladatel mezi množinami entit zákazník a účet může mít atribut (poslední) datum přístupu)
Stupeň vztahu ukazuje počet množin entit, které jsou součástí množiny vztahů (nejčastěji binární)
Role je vztah na jedné množině entit (např. když zaměstnanec je nadřízený jiného zaměstnance)
Četnost vztahů označuje počet entit, se kterými mohou být ostatní entity propojeny pomocí vztahů (1:1, 1:N, M:N)
Existenční závislost – existence entity
x závisí na existenci entity
y (
y je dominantní,
x podřízená), jakmile je entita
y (např. půjčka) smazána, pak musí být smazány všechny s ní spojené entity
x (např. splátky). Dominantní množina entit se nazývá
silná, podřízená množina entit se nazývá
slabá – ta nemá primární klíč, protože závisí na existenci silné množiny entit, musí být spojena vztahem 1:N, primární klíč slabé množiny je tvořen
primárním klíčem silné množiny a
parciálním klíčem slabé množiny
10)
Specializace
Generalizace
Kombinujeme několik množin entit, které sdílejí stejné rysy, do množiny entit vyšší úrovně – specializace a generalizace jsou vzájemně inverzní, na ER diagramu se znázorňují stejně.
Entita nižší úrovně
dědí všechny atributy a účasti ve vztazích z množiny entit vyšší úrovně
12)
Příklad generalizace – převzato z prezentace č. 1 do cvičení z předmětu PB154 Základy databázových systémů
Agregace
Agregace umožňuje vytvářet vztahy mezi vztahy, se vztahem zacházíme jako s abstraktní entitou
13)
Příklad agregace – převzato z prezentace č. 2 do cvičení z předmětu PB154 Základy databázových systémů
Grafické vyjádření
slabá množina entit – dvojitý obdélník
silná množina entit – obdélník
atribut – elipsa
vícehodnotový atribut – dvojitá elipsa
odvozený atribut – čárkovaná elipsa
atribut primárního klíče – podtržení
atribut parciálního klíče – přerušované podtržení
množina vztahů – kosočtverec
generalizace, specializace – trojúhelníková komponenta IS-A
agregace – zahrnutí vztahu i s entitními množinami do obdélníku
14)
Grafické znázornění prvků – převzato z prezentace č.1 do cvičení z předmětu PB154 Základy databázových systémů
Podněty, co lze zmínit dále
Předměty
FI:PB154 Základy databázových systémů (podzim 2007), prof. Ing. Pavel Zezula, CSc.
FI:PB155 Databázové systémy a jejich aplikace (podzim 2007), RNDr. Pavel Hajn, CSc.
FI:PB007 Analýza a návrh systémů (podzim 2007), RNDr. Jaroslav Ráček, Ph.D.
FI:PV063 Aplikace databázových systémů (jaro 2008), RNDr. Pavel Hajn, CSc.
Použitá literatura
-
-
-
prezentace Modelování dat pro předmět PB007, autorem je RNDr. Jaroslav Ráček, Ph.D. a doc. Ing. Jiří Sochor, CSc. (přístupné jen pro studenty předmětu)
RÁČEK, Jaroslav. Strukturovaná analýza systémů. 1.vyd. Brno: Vydavatelství MU, 2006. 103 s. ISBN 80-210-4190-0.
Kam dál?
Vypracuje
Jitka Pospíšilová ICQ: 218703195 mám <99%>, alespoň si to myslím, prosím doplňujte, pokud k tomu máte, co dodat
Otázku si přečetl pan RNDr. Vlastislav Dohnal a rámcově prošel. Jeho podněty pro doplnění textu, opravy nesrovnalostí a odstranění matoucích či k otázce se nevztahujících textů byly do otázky zaneseny. Tato kontrola je jen rámcová, stále se může stát, že v otázce zůstala zapomenutá chybka či nesrovnalost, vyučující za toto nenese odpovědnost, berte tuto rámcovou kontrolu jako formu pomoci od vyučujících pro studenty.
Nahoru
Diskuze
mam par drobnych pripomienok:
- bolo by dobre ujednotit terminy „entitna mnozina“ a „mnozina entit“, je to len kozmeticka zalezitost :) ja som viac zvyknuty na ten prvy termin…
- doplnit co to je parcialny klic
- skoro vsade, kde pouzivas „entita“ by podla mna mala byt „entitna mnozina“, pretoze entita je konkretny vyskyt objektu a vztahy a ine modelujeme medzi entitnymi mnozinami
entita je slangovy vyraz pro entitni mnozinu. Ale je treba na to upozornit.
To Petr Kott: pozor, rozhodne si nemyslim, ze by entita mel byt nejaky slangovy vyraz…
Entita je objekt, o kterem uchovavame informace a ktery je reprezentovan atributy a nazvem (tedy entita je nejaka osoba, rostlina apod.).
Množina entit (či entitní množina, dle mě je to naprosto zaměnitelné) je skupina entit stejného typu, které sdílejí stejné vlastnosti (tedy skupina všech osob, rostlin).
To Dusan Katona:
Terminy „entitni mnozina“ a „mnozina entit“ jsem nesjednocovala, protoze spoustu vet jsem primo citovala ze skript a tam byly uvedene presne tak, jak je mam.
Rozhodne si nemyslim, ze by se dal termin „entita“ a „entitni mnozina“ tak lehce zamenovat, radeji jsem jej nechala tak, jak byl ve skriptech. Nanejvys by slo polemizovat o definici vztahu… ja si myslim, ze ale vztah je opravdu spojeni mezi entitami, kdezto mnozina vztahu uz se vztahuje k entitinim mnozinam, ale jista si tam az zas tak moc nejsem.
Otazka jiz prosla kontrolou a ohledne nespravneho pouziti terminu entit a entitnich mnozin k ni nebyly pripominky, pokud ale mas nejake velke pochybnosti, napis mi primo priklady, kde bys to urcite nahradil a ja se jeste zeptam vyucujiciho, jak to ma spravne byt.
Spatne jsem se vyjadril. Je to samozrejme jak rikas. Ja jen chtel rict, ze casto se zamenuje termin entita a entitni mnozina. Entitou se pak mysli entitni mnozina (slangove). Ale rychle na vse zapomente, nechci vam jeste motat hlavy s takovyma blbostma.:)
To Petr Kott:
Parciální klíč (též deskriptor) je množina atributů slabé entitní množiny, které společně s primárním klíčem silné entitní množiny tvoří
primární klíč slabé ent. množiny.
(odpověď pana Dohnala, nevim, zda ji mám dodat i do textu, v podstatě už jen doplňuje, co je v textu řečeno… navíc si někteří z vás často stěžují, že otázky už jsou i tak strašně dlouhé a že nemám moc věcí přidávat)
Diky. Uz je to jasne.
Mam len taku otazku, nie uplne chapem tejto vete (resp. jej 2. casti):
Cílem datového modelování je navrhnout kvalitní datovou strukturu pro konkrétní aplikaci a databázový systém, který bude tato aplikace využívat k uložení dat.
Pod navrhnout databazovy system, ktory bude tato aplikacia vyuzivat k ulozeni dat si predstavujem navrhnutie Oracle alebo ineho dbms :) Co sa teda mysli tym databazovym systemom?
Mám malú otázku: Dvojitá elipsa znamená zložený atribút, alebo atribút s násobnou hodnotou?
znamena to atribut s nasobnou hodnotou (vicehodnotovy atribut), slozeny se asi nejak nevyznacuje
Ok, díky :) Mám pocit, že ten zložený môžeš normálne nakresliť ako strom elíps (tuším sme to tak na cvikách robili, ale ruku by som za to do ohňa nedal)