DATOVÉ MODELOVÁNÍ ER MODEL Základní pojmy Entita věc reálného světa (objekt) rozlišitelný od jiných objektů. Př) banky s identifikačním číslem 999, účet s č. účtu 100. Entitní množina - množina entit téhož typu, které sdílí tytéž vlastnosti (atributy). Př), Atribut - vlastnost entity, která nás v kontextu daného problému zajímá. Př) : čísloa, jméno, příjmení, adresa, Vztah asociace mezi několika entitami. Př) s číslem klienta K999 účet s číslem účtu U100. Vztahová množina - množina vztahů téhož typu, které sdílí tytéž vlastnosti. Př) pro vztah mezi entitami typu a Pozn.: Někdy také entita, resp. instance entity ve významu entitní množiny, resp. entity. Analogicky pro vztahové množiny a vztahy. U100 U150 K999 K628 K123 U48 U79 U100 U150 U48 U79 K999 K628 K123
Typy atributů Jednoduché (simple) a složené (composite) atributy Entitní množina Složené jméno adresa atributy Složky křestní prostřední příjmení ulice město PSČ atributu číslo jméno číslobytu Jednohodnotové (single-valued) a vícehodnotové (multiple-valued) Př) telefon může-li být několik čísel - lze omezit minimální a maximální počet hodnot Prázdné (null) atributy - mohou nabývat speciální hodnoty NULL - různý význam: chybějící - existuje, ale neznáme neznámá - nevíme, zda existuje Odvozené atributy - hodnotu lze odvodit od jiných atributů nebo entit Př) věk, datnarození; početdisposob Parametry vztahů Jméno vztahové množiny, jméno role vyjadřuje význam vztahu jméno vztahové množiny jméno role k
Stupeň Zaměstnanec nadřízený unární (reflexivní) binární Programátor používá Projekt ternární Jazyk Kardinalita (cardinality), - maximální počet vztahů daného typu (vztahové množiny), ve kterých může participovat jedna entita (1,M, případně přesněji). Zaměstnanec nadřízený 1 unární (reflexivní) 1 binární Programátor ternární používá Jazyk Projekt
Členství (membership)/účast (participation) - minimální počet vztahů daného typu (vztahové množiny), ve kterých musí participovat jedna entita (0 volitelné, 1 povinné). - také účast entitní množiny ve vztahové částečná (partial)/úplná (total). Zaměstnanec 1.. nadřízený 0..1 unární (reflexivní) 1 0.. binární Programátor 0.. ternární používá 1.. Jazyk 0.. Projekt - kardinalita i členství předují omezeni (constraint) Atributy vztahu čísloa jméno adresa telefon 0.. disponuje limit 0.. čísloúčtu
Používané notace Název Název IČO Adresa 1 M Číslo zboží Barva Telefon Je dodáváno - my budeme používat notaci odvozenou z jazyka UML (Unified Modeling Language) Doporučení pro kreslení ERD Jména srozumitelná, musí vyjadřovat význam entitních a vztahových množin entitní množiny: podstatná jména vztahové množiny: slovesa, předložky je-li jméno vztahové množiny jasné ze jmen entitních množin, není nutné uvádět Několik různých vztahových množin mezi stejnými entitními čísloa jméno adresa telefon 1 disponuje čísloúčtu disponuje limit
Celkový systém by neměl být zahrnut do ERD Banka 1 má Identifikátor (klíč, primární klíč) entity a vztahy musí být identifikovatelné hodnota identifikátoru musí být unikátní (a minimální) identifikátorem je jednoduchý nebo složený atribut situace, kdy používáme složené identifikátory: unikátnost hodnoty jen v rámci vyvíjeného systému (ne celého vesmíru) Entitní množina nebo atribut? Automobil <<PK>> výrčíslo? barva Automobil <<PK>> výrčíslo má Barva 1 <<PK>> barva Pravidlo: Je-li hodnota atributu důležitá, i když neexistuje žádná entita s touto hodnotou jako vlastností, pak bychom ji měli modelovat jako entitu. Atributy a vztahy 1:M zaregistrovala Osoba <<PK>> rodnéčíslo 1 Vozidlo <<PK>> poznznačka datregistrace? Osoba <<PK>> rodnéčíslo 1 Vozidlo <<PK>> poznznačka datregistrace zaregistrovala datregistrace
Náhrada vztahů M:M vazební entitní množinou <<PK>> čísloa jméno adresa telefon 0.. disponuje disponuje limit 1.. <<PK>> čísloúčtu <<PK>> čísloa jméno adresa telefon Disponuje <<PK>> čísloa 1 1.. <<PK>> čísloúčtu limit <<PK>> čísloúčtu 0.. 1 Generalizace/specializace S2 S1 S3 B1 B2 <<PK>> čísloúčtu s tav S4 S5 B3 Spořitelní Běžný Spořitelní úro k Běžný limitčerpání - také ISA vztah - pojmy entitní množina vyšší/nižší úrovně (také nadtřída/podtřída) - dědičnost atributů a účasti ve vztahových množinách - hierarchie/svazy (lattice) generalizace - identifikátor entitních množin nižší úrovně
Slabé (weak) entitní množiny - silná (strong) entitní množina má identifikátor tvořený mi atributy - slabá entitní množina nemá identifikátor tvořený mi atributy identifikující vztahová množina <<PK>> čísloúčtu identifikující dominantní (nezávislá) <<weak>> 1 0..1 Příkaz <<D>> pořčíslo <<identif>> typ částka datum diskriminátor (dílčí identifikátor) slabá (závislá) Rysy slabé entitní množiny: o identifikátor = identifikátor_dominantní + diskriminátor o existenční závislost slabé na identifikující Slabá nebo silná entitní množina? Pravidlo1: Jako slabou modelovat tehdy, kdy entita kompletně zmizí při odstranění odpovídající identifikující entity. Př) Objednávka PoložkaObjednávky Pravidlo2: Cokoliv s atributem, který je jednoznačný, by nemělo být modelováno jako slabá entitní množina. Pravidlo3: Jsme-li na pochybách, modelujeme jako silnou entitní množinu.