Datové modelování a typování František Huňka Ostravská univerzita v Ostravě, frantisek.hunka@osu.cz Ferdinand Mácha Charonware, s.r.o. Ostrava, f.macha@seznam.cz
-minutesneededperunit «EconomicResourceType» Raw Material Type -rawmaterialcatalognumber -standardunitcost -qoh used -minutesused policytm «EconomicResourceType» Tool-Machine Type -toolmachinetypedescription PK -quantityowned typify typify «EconomicResource» Tool-Machine -toolmachinenumber PK -dateacquired -totalminusedsinceacquis.. «EconomicResource» Raw Material -rawmaterialtagnumber PK -dateacquired.... PK.... specify -scheduledquantity.. consume.. «EventType» Operation Type -operationtypename PK policybm -standardsequence quantityofrawmaterialperunit used -quantityused 0.. specify -scheduledminutes specify «EconomicCommitment» Scheduled Manufacturing Operation - scheduledoperationnumber PK - scheduledsequence «EconomicEvent» Manufacturing Operation - initiationtimestamp PK - actualduration - actualsequence fulfill 0.. typify duality policyol -laborminutesperunit.. policybm specify.. -scheduledminutes reciprocal participate.. «AgentType» Employee Type -employeetypename PK -startingwage specify «EconomicCommitment» Scheduled Manufacturing Run -productionordernumber PK -budgetedtotallaborcost -budgetedtotalmaterialcost - budgetedtotaltool&machinecost - projectedquantityproduced fulfill 0.. «EconomicEvent» Manufacturing Run - manufacturingrunnumber PK - actualtotalt&mcost - todaterunlaborcost - todaterunmaterialcost - actualquantityproduced «EconomicResourceType» Medical Equipment Type -medicalequipmentcatalognumber PK -standardunitcost -standardgramweight -qoh specify 0.... produce typify «EconomicResource» Medical Equipment typify -medicalequiptagnumber PK -actualgramweight participate -minutes «EconomicAgent» Machinist.. -employeenumber PK.. «EconomicAgent» Assembler -employeenumber PK participate -minutes «EconomicAgent» Electrician -employeenumber PK participate -minutes participate 0.. «EconomicAgent» Scheduler -employeenumber PK participate 0.. «EconomicAgent» Supervisor -employeenumber PK «EconomicAgent» Employee -employeenumber PK -employeename -wage -datehired 2 {complete, disjoint}
Konceptuální modely Minulost získání požadavků na informační systémy a jejich převedení na různé databázové systémy. Klasická třívrstvá architektura konceptuální model je nezávislý na vrstvě uložení, blíže vystihuje modelovanou doménu. 3
Struktura datového modelu Type Meta Model Level Attribute Association Operation Type... Model Level Order Product Type... Employee Data & Process Level Bob Betty Victor 4
Abstrakce Abstrakce představuje nejdůležitější princip pro opětovnou použitelnost. Jedná se o nahrazení konkrétní datové entity, abstraktnější datovou entitou. Uvedená abstrakce nabývá většinou jedné ze dvou následujících forem: generalizace typování 5
Typování - kategorizace Při typování se místo obecnější datové entity definuje datová entita, která reprezentuje typ této datové entity. Tím, že se při typování obecnější datová entita specializuje ne datovou entitou jako při generalizaci, ale instancemi typové datové entity, vytvořená instance dědí nejen strukturu datových atributů obecnější datové entity, ale zároveň i jejich obsah. Uvedené datové entity jsou spojeny asociací. 6
Typ letu - let Instance od TypLetu pak představují různé druhy letů lišící se různou hodnotou plánovaných položek. Instance třídy Let jsou vždy svázány s konkrétní instancí třídy TypLetu a liší se v hodnotách skutečných položek (skutečná doba letu... ). Mají tak přístup k plánovaným atributům. TypLetu -odkud -kam -plánovaná doba odletu -plánovaná doba příletu -plánovaná kapacita Let -skutečná doba odletu -skutečná doba příletu -skutečný počet cestujících -obsazenost jednotlivých sedadel 7
Stratifikované typování Univerzita -rektor Fakulta -dekan Katedra -pocetpracovniku TypUniversity -rektor TypFakulty -dekan Katedra -pocetpracovniku Instance od třídy TypUniversity jsou např. VŠB-TU, ČVUT nebo OU. V rámci instancí VŠB-TU se pak vytváří instance EkF, nebo FEI se svými děkany a společným rektorem. Pro ČVUT a OU je to podobné. V rámci instancí fakult se vytváří konkrétní instance kateder např. katedra matematických metod, informatiky v ekonomii pro EkF nebo informatiky a matematiky pro FEI. 8
Typování & generalizace /2 Typování je podobné generalizaci. V obou případech je využit princip obecnější datové entity. Při generalizaci se tato obecnější datová entita specializuje pomocí konkrétnějších datových entit. Při typování se obecnější datová entita specializuje instancemi typové datové entity. Při typování tak instance typové datové entity odpovídají konkrétnějším datovým entitám u generalizace. 9
Typování & generalizace 2/2 Typování se používá v případě, že seznam typů se mění a je malá důležitost dědění. Generalizace se používá v případě, že seznam specializovanějších entit statický a je větší důležitost dědění. Při generalizaci instance specializovanější datové entity dědí strukturu datových atributů od obecnější datové entity. Při typování specializovanější instance dědí od obecnější instance nejen strukturu datových atributů, ale zároveň i jejich obsah. 0
Typování Datové entity typ se vzájemnými relacemi patří do metaúrovně (směrnice, obecné zákony). Standardní entity vyjadřují operační úroveň (každodenní skutečnost). Mezi operativní úrovní a metaúrovní existuje vzájemný vztah operativní úroveň zachycuje konkrétní případy, které musí (měly by být) splňovat pravidla předepsaná metaúrovní.
Relace mezi pracovními kategoriemi a pracovními vztahy Reditel Pracovni Kategorie Typ Pracovniho Vztahu Namestek Vedouci Odboru Osoba Pracovni Vztah Odborny Pracovnik Generalizace nepružné řešení Typování vhodné řešení 2
Flexibilní reprezentace organizační struktury Firma Typ Organizace Typ Organizacniho Vztahu Divize Organizace Organizacni Vztah Odbor Podobné řešení platí i pro organizační strukturu firem. Výsledné řešení odpovídá vzorům z článku o politikách 3
4
Poznámky 5