Konceptuální datový model

Napsal Mgr.Radovan Kaluža (») 7. 9. 2004 v kategorii Databáze, přečteno: 20100×

Konceptuální či sémantické modely jsou pokusem umožnit vytvoření popisu dat v databázi nezávisle na jejich uložení.

Konceptuální či sémantické modely jsou pokusem umožnit vytvoření popisu dat v databázi nezávisle na jejich uložení. Konceptuální model představuje formální popis modelované reality. Hlavními úkoly je nalezení entit, vtahů a atributů. Sémantické modely slouží obvykle k vytvoření schémat s následnou transformací na databázové schéma. Spojíme-li sémantickou a databázovou úroveň, dostáváme se k tzv. objektově-orientovaným SŘBD.

Konceptuální modely používají pojmy:
entita (objekt) - student,předmět
vztah (relationship) - studuje
atributy (vlastnost) - věk, rč

U každého modelu se obvykle řeší 3 komponenty:
1) strukturální - struktura dat
2) manipulace dat - manipulace s daty
3) specifikace integritních omezení

Většinou je podrobně vypracována 1. a 3. komponenta. Manipulace dat bývá řešena na nižší úrovni.

Činnosti při tvorbě E-R modelu:


1. identifikace typů entit jako množiny objektů stejného typu. Např. KNIHA, ABONENT_KNIHOVNY, ZAMESTNANEC označují typy entit.

2. identifikace typů vztahů, do kterých entity identifikovaných typů mohou vstupovat. Např. ABONENT(entita) MA_PUJCEN (vztah) daný EXEMPLAR (entita).

3.na základě přiměřené úrovně abstrakce přiřazení jednotlivým typům entit a vztahů popisné atributy. Např. PRIJMENI (popisný atribut) daného ZAMESTNANCE (entita), DATUM (popisný atribut), do kdy si daný ABONENT (entita) VYPUJCIL (údaj typu vztah) daný EXEMPLAR (entita).

4. formulace integritních omezení (IO) vyjadřujících s větší či menší přesností soulad schématu s modelovanou realitou.

Entita je objekt reálného světa, který je schopen nezávislé existence a je jednoznačně odlišitelný od ostatních objektů

Vztah je vazba mezi dvěma entitami (obecně i více entitami)

Hodnota popisného typu popisným typem budeme rozumět jednoduchý datový typ

Atributem budeme rozumět funkci přiřazující entitám či vztahům hodnotu popisného typu, určující některou podstatnou vlastnost entity nebo vztahu.

Vymezení pojmů entita, vztah a atribut je dosti volné. Vodítkem může být, že v souvislosti s entitami používáme podstatných jmen a se vztahy sloves.

E-R konceptuální model:


E-R model je množina pojmů, které nám pomáhají, na konceptuální úrovni abstrakce popsat uživatelskou aplikaci za účelem specifikovat následně strukturu databáze.

Typ entity, typ vztahu

STUDENT MA_ZAPSAN   PREDMET
S1 Novák ------ P2 Matematika
S1 Novák ------ P7 Fyziky
S2 Mareček ------ P4 Ekonomie
S2 Mareček ------ P8 Databáze
S2 Mareček    ------ P6 Programování

Dva entitní typy: STUDENT a PREDMET
Jeden vztahový typ: MA_ZAPSAN
Dva výskyty (instance) objektu entitního typu STUDENT
Pět výskytů objektu entitního typu PREDMET
Pět výskytů vztahového typu MA_ZAPSAN: S1-P2, S1-P7, S2-P4, S2-P7, S2-P8.

Identifikační klíč
Každá entita musí být jednoznačně identifikovatelná. Atribut (skupina atributů), jehož hodnota slouží k indentifikaci konkrétní entity se nazývá identifikačním klíčem. Entitní typ může mít několik kandidátů na roli identifikačního klíče. V každém konkrétním případě je třeba zvažovat a potom volit tak, aby zvolené atributy skutečně plnily úlohu identifikačního klíče a jejich použití bylo efektivní z hlediska časových a paměťových nároků. Konkrétní výskyt vztahu může být identifikován identifikačními klíči entit, které ve vztahu vystupují.
Např. vztah MA_ZAPSAN mezi STUDENTEM S1 a PREDMETEM P7 může být vyjádřen dvojicí S1, P7.

Integritní omezení pro vztahy

integritní omezení
doménová - definuje množinu prvků, z kterých vybíráme atributy, například jestli se jedná o číslo (int) nebo varchar(20) PK, integer not null
entitní - zajištuje že entita je pouze jedna, definice identifikačního klíče (PK,FK)
referenční - zajišťuje správnost vztahu mezi daty,

typ vztahu (viz.obr)
nezávislá entita (ZAMESTNANEC) - nezávisí na ničem,
existenčně závislá (ODDELENI ve vztahu se zamestnancem - každý zaměstnanec musí být v nějakém oddělení, ale oddělení může být i bez zaměstnance)
identifikační - (MA SKRINKU, nemůže existovat bez zamestnance a bez oddeleni)



Narušení referenční integrity nastává při zápisu, mazání a změně.

3 způsoby záchováni ref.integrity:
restrict - operaci nepovolí, pokud by to mohlo narušit
cascade - dovolí aktualizace, ale upraví všechny záznamy v podřízené tabulce
set null - do FK (cizí klíč) nastaví nulu, ale pokud je to PK tak to nejde

Kardinalita vztahů
Vztah 1:1
Vztah 1:N
Vztah M:N

Kardinalitu vztahu můžeme také vyjádřit tvrzením, že entita jednoho typu jednoznačně (ne)určuje entitu druhého typu. Případně, že entita jednoho typu je (není) determinantem entity druhého typu. Někdy je zaveden pojem funkční závislosti.

Členství ve vztahu
O entitních typech, které jsou zapojeny do vztahu říkáme, že jsou členy vztahu. V této souvislosti mluvíme o povinném (obligatorním) a nepovinném členství ve vztahu.

Příklad:
- Každý zaměstanec musí být zařazen do některého oddělení
- Oddělení může existovat i bez zaměstnanců

Členství entitního typu ZAMESTNANEC ve vztahu je povinné. Entity typu ODDELENI mají členství ve vztahu nepovinné.

Kolečko uvnitř obdélníku na straně entitního typu vyznačuje povinné členství ve vztahu. Obligatorní členství ve vztahu je velmi důležité IO. Vyjadřuje, že instance jednoho entitního typu nemůže existovat bez zapojení do vztahu s instancí druhého entitního typu. Často se pro toto integritní omezení používá pojem existenční závislost. Entitní typ, který má obligatorní členství ve vztahu, je existenčně závislý na jiném entitním typu.

Slabé entitní typy
Součástí klíče některých entitních typů nemusí pouze být jejich vlastní atributy. V takovém případě nemusíme být schopni rozlišit mezi dvěma instancemi jednoho entitního typu na základě hodnot jeho vlastních atributů. V takovém případě mluvíme o slabém entitním typu. Jeho různé instance jsou identifikovatelné tím, že jsou v povinném vztahu k instanci entity jiného typu. Tento druhý entitní typ nazýváme identifikační vlastník a vztahu, který je spojuje identifikační vztah. Slabý entitní typ má vždy povinné členství ve vztahu k tzv. identifikačnímu vlastníku (jedná se tedy o existenční závislost). Opačné tvrzení neplatí. Nelze o každé existeční závislosti mluvit jako o závislosti identifikační. Tedy existenčně závislá entita ještě není slabá entita.

Příklad:

Zaměstnanci školy mohou vypisovat témata diplomových prací, která mohou být stejná. Je nutné je rozlišit např. identifikátorem zaměstnance (Č_ZAM). Entitní typ TEMA_DIPLOM je tedy identifikačně závislý na entitním typu ZAMESTNANEC. Dědí atribut Č_ZAM a teprve s ním je možno vytvořit skutečný klíč dané slabé entitní množiny. Jestliže doplníme entitnímu typu TEMA_DIPLOM nový vlastní atribut, např. Č_TEMATU, který bude schopen plnit úlohu identifikačního klíče, entitní typ přestane být slabý, existenční závislost však zřejmě zůstane. Graficky se entitní typ označuje dvojitým obdélníkem.

MIN-MAX IO
Mějme typ vztahu R(E1,E2). Potom E1:(min1,max1), E2:(min2,max2) označuje minimální, resp. maximální počet výskytů entity daného typu ve vztahové množině R. Nula jako minimum vyjadřuje nepovinné členství ve vztahu. Nepovinné členství ve vztahu vyjadřuje možnost nezávislé existence entity daného typu na entitě druhého typu. Naopak, je-li minimum > 0, je entita existenčně závislá na jiné entitě.

Příklad:
VÝPUJČKA (ČTENÁŘ:(0,4), EXEMPLÁŘ:(0,1))
Konkrétní čtenář nemusí mít vypůjčenou žádnou knihu, může mít současně vypůjčeny až 4 exempláře.
Konkrétní exemplář může být buď v regálu nebo je půjčen v daném okamžiku jen jednomu čtenáři.

Dekompozice M:N vztahu
Situace je stejná jako u datových modelů. Pouze prostředky jsou jiné. Dekompozici provedeme zařazením dalšího entitního typu. Tomuto entitnímu typu se říká průnikový entitní typ.

Příklad:


Výrobek           Součástka
V1 ----------- S1
V1 ----------- S4
V2 ----------- S4
V2 ----------- S2
V2 ----------- S3
V3 ----------- S3

Zavedeme entitní typ ZAČLENĚNÍ

VÝROBEK ZAČLENĚNÍ SOUČÁSTKA
V1 Z1 S1
V1 Z2 S4
V2 Z3 S4
V2 Z4 S2
V2 Z5 S3
V3 Z6 S3

Odpovídající E-R diagram:

Přiřazení popisných atributů
Entitní a vztahové typy jsou popsány úplně až když je každému přidělena množina popisných atributů.


- Pro každý entitní typ je nutno vytvořit samostatnou tabulku atributů, kde se uvádí jméno atributu a IO.
- Typ atributu se zadá hodnotovou množinou (doménou) a množinou operací, které lze na hodnotovou množinu provádět.
- U klíčového atributu je třeba zadat příznak
- někdy se určuje, zda atribut může mít prázdnou hodnotu. Obvykle se označuje NULL.
Je zřejmé, že klíčový atribut nesmí mít hodnotu NULL.

Kombinace E-R diagramu a tabulek, popisujících atributy jednotlivých entitních a vztahových typů,tvoří úplné schéma E-R modelu.

Příklad:
entity:
PACIENT(RODNE ČÍSLO, JMÉNO, ADRESA, VÁHA, VÝŠKA, POČET_LŮŽEK...)
POKOJ(ČÍSLO POKOJE,POČET_LŮŽEK,LOKALITA...)

vztahy: JE_UMÍSTĚN_NA (PACIENT, POKOJ, N:1)
resp.JE_UMÍSTĚN_NA(PACIENT:(1:1), POKOJ:(0:N))

ISA hierarchie, podtypy entit
Speciální atributy představují v abstraktním modelování takové atributy, které danému typu entity přiřazují jeho nadtyp. Atribut je pak podtypem svého nadtypu. Jde o tzv. ISA-hierarchii.

Graficky se ISA-hierarchie zobrazuje takto:

Abstraktní entitní typ OSOBA se zavádí z praktických důvodů proto, že existuje řada společných atributů entit UČITEL a STUDENT a proto má smysl zavést jediný společný entitní typ. Pak je třeba připustit existenci hodnot NULL u těch atributů, které jsou irelevantní s ohledem na konkrétní typ osoby. Entitní typy STUDENT a UČITEL jsou podtypy entitního typu OSOBA. Platí STUDENT JE OSOBA (anglicky IS A). V oblasti umělé inteligence se tomuto vztahu říká ISA vztah.

Neatomické atributy
Konceptuální model, na rozdíl od např. relačního modelu, připouští neatomické atributy. V souvislosti s návazností na příslušný databázový model, konceptuální model má nástroje, ja strukturu atomických atributů vytvořit. Atributy, které lze rozčlenit, se nazývají skupinové (grupped). Některé konceptuální modely připouštějí zavedení vícehodnotového atributu. Např. Autor knihy může být vícehodnotový, tzn., že může existovat více autorů jednoho titulu. Přitom dopředu nevíme, kolik hodnot tento atribut bude mít. Jedná se tedy o vektor proměnné délky.

Korektní konceptuální schéma:
1. Žádný entitní typ nemá v konceptuálním schématu více než jeden zdroj ISA hierarchie
2. ISA vztahy netvoří v E-R diagramu orientovaný cyklus
3. Identifikační typy vztahů netvoří v E-R diagramu orientovaný cyklus (jinak by jeden typ entity byl identifikován pomocí sebe sama)
4. Typ entity v ISA hierarchii, který není zdrojem není identifikačně závislý na žádném entitním typu (je totiž již identifikován svým zdrojem ISA hierarchie)
5. Jména typů entit a vztahů jsou jednoznačná globální jména, jména atributů jsou jednoznačná lokální jména
6. Je-li typ entity zdroj ISA hierarchie, pak má identifikační klíč. Ostatní typy v ISA hierarchii nemají identifikační klíč

Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Aplet z IP 89.176.121.*** | 9.6.2014 16:16
nezávislá entita (ZAMESTNANEC) - nezávisí na ničem,
existenčně závislá (ODDELENI ve vztahu se zamestnancem - každý zaměstnanec musí být v nějakém oddělení, ale oddělení může být i bez zaměstnance)
...zde to máš špatně, zaměstnanec je slabá závislá entita, zatímco oddělení existuje ikdyz není zádný zamestnanec to je nezávislá entita


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
[*1*] [*2*] [*3*] [*4*] [*5*] [*6*] [*7*] [*8*] [*9*] [*10*] [*11*] [*12*] [*13*] [*14*] [*15*] [*16*] [*17*] [*18*] [*19*] [*20*] [*21*] [*22*] [*23*] [*24*] [*25*] [*26*] [*27*] [*28*] [*29*] [*30*] [*31*] [*32*] [*33*] [*34*] [*35*] [*36*] [*37*] [*38*] [*39*] [*40*] [*41*] [*42*] [*43*] [*44*] [*45*] [*46*] [*47*] [*48*] [*49*] [*50*]   [b] [obr]
Odpovězte prosím číslicemi: Součet čísel jedna a deset