DATOVÉ MODELOVÁNÍ A TYPOVÁNÍ

Podobné dokumenty
Datové modelování a typování

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ

6 Objektově-orientovaný vývoj programového vybavení

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

7.5 Diagram tříd pokročilé techniky

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

DBS Konceptuální modelování

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

UML. Unified Modeling Language. Součásti UML

Modelování procesů s využitím MS Visio.

OOT Objektově orientované technologie

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

7.5 Diagram tříd pokročilé techniky

Modelování informačních systémů s využitím jazyka UML. Jaroslav Šmarda

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

TRANSFORMACE RELAČNÍHO DATOVÉHO MODELU NA OBJEKTOVÝ TRANSFORMATION OF RELATIONAL TO OBJECT DATA MODEL

Znalostní systém nad ontologií ve formátu Topic Maps

Modelování propojených podnikových procesů s využitím modelu REA

Tvorba informačních systémů

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Modelování webových služeb v UML

1. Dědičnost a polymorfismus

Modelování podnikových procesů na bázi vlastnických vztahů a jejich směny (systém rea)

Obsah. Zpracoval:

Architektury Informačních systémů. Jaroslav Žáček

7 Jazyk UML (Unified Modeling Language)

Úvod do principů objektově orientovaného programování

7 Jazyk UML (Unified Modeling Language)

2. Konceptuální model dat, E-R konceptuální model

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

7.3 Diagramy tříd - základy

Tvorba informačních systémů

EXTRAKT z mezinárodní normy

Budování architektury pomocí IAA

Principy UML. Clear View Training 2005 v2.2 1

TÉMATICKÝ OKRUH Softwarové inženýrství

Návrh IS - UML. Jaroslav Žáček

7.3 Diagramy tříd - základy

Návrh IS - UML. Jaroslav Žáček

Metody popisu systému, základy UML

Vyřešené teoretické otázky do OOP ( )

Úvod do databázových systémů 6. cvičení

Kolaborativní aplikace

Analýza a modelování dat. Přednáška 4

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

Architektury Informačních systémů. Jaroslav Žáček

Diagramy tříd - základy

Objekty, třídy, vazby 2006 UOMO 30

POROVNÁNÍ RELAČNÍHO A OBJEKTOVÉHO DATOVÉHO MODELU V KONSTRUKCI DATABÁZOVÝCH SYSTÉMŮ

WEBOVÉ SYSTÉMY PORADENSKÝCH SLUŽEB WEB-BASED ADVISORY SERVICE SYSTEMS. Milan Mišovič, Jana Andrýsková

Návrh softwarových systémů - architektura softwarových systémů

Unifikovaný modelovací jazyk UML

Univerzita Pardubice Fakulta ekonomicko-správní Ústav systémového inženýrství a informatiky

Řízení přístupových práv databázový návrhový vzor

Modelování řízené případy užití

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Databázové systémy. Ing. Radek Holý

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

TÉMATICKÝ OKRUH Softwarové inženýrství

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Návrhové vzory OMO, LS 2014/2015

Databázové modelování. Analýza Návrh konceptuálního schématu

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Analýza a modelování dat. Helena Palovská

Databázové systémy. Vztahy a relace. 3.přednáška

Usage of modular scissors in the implementation of FEM

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Teorie systémů TES 7. Výrobní informační systémy

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Konceptuální modelování. Pavel Tyl

Ontologie. Otakar Trunda

Problém identity instancí asociačních tříd

Aplikační software. Řízení lidských zdrojů PRAHA Zpracoval: Ing. Pavel Branšovský pro potřebu VOŠ a SŠSE

Problémové domény a jejich charakteristiky

Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux.

PV167 Projekt z obj. návrhu IS. 26. března 2008

Architektura softwarových systémů

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

Karta předmětu prezenční studium

Databázové systémy úvod

ADAPTIVITA INFORMAČNÍCH SYSTÉMŮ INFORMATION SYSTEM ADAPTIVITY

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

Business Process Modeling Notation

Návrh a implementace algoritmů pro adaptivní řízení průmyslových robotů

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

Základní informace. Modelování. Notace

Uživatelem řízená navigace v univerzitním informačním systému

Návrh softwarových systémů - architektura softwarových systémů

Střední průmyslová škola Zlín

Metodický rámec budování IS/ICT

Konceptuální datové modely používané při analýze

METODICKÝ RÁMEC IS/ICT

Ruční návrh Připravíme si odpovědi na základní otázky Co chceme řešit (projektovat) a proč Komu to bude sloužit Jaký užitek z toho bude mít uživatel I

Transkript:

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 ABSTRAKT: Datové modelování poskytuje celou řadu mechanismů a nástrojů pro tvorbu konceptuálních modelů. Datové modely stále častěji využívají k pružným a snadno adaptovatelným řešením kromě vlastního modelu také meta-model. Jednou ze sémantických abstrakcí, která se využívá na tvorbu meta-modelu je typování. Příspěvek se zabývá oběma formami abstrakce datových modelů a to generalizací a typováním. Uvádí společné a rozdílné vlastnosti. Dále uvádí použití vzoru responsibility jak v hierarchické struktuře dat, tak v kompozici datových entit. ABSTRACT: Data modeling provides a number of mechanisms and tools for conceptual models creation. Data models use often frequently apart from their own model also a meta-model for flexible and easy adaptable solutions. One of the semantic abstractions, which is utilized for the metamodel creation, is typing. Paper deals with both forms of data model abstractions that are generalization and typing. It describes common and different properties. Furthermore it introduces using of the Responsibility pattern both in hierarchical structure and in the composition of data entities. KLÍČOVÁ SLOVA: datové modelování, datové abstrakce, konceptuální model, typování Úvod Konceptuální modely mají své stálé místo při tvorbě podnikových informačních systémů. Jejich původní záměr a cíl se poněkud rozšířil s vývojem dalších programových paradigmat zejména s objektově orientovanou perspektivou. To vyústilo v zavedení třívrstvé architektury pro tvorbu informačních systémů, kde právě prostřední vrstva je tvořena doménově závislým konceptuálním modelem. Je snaha, aby vytvořené konceptuální modely byly pružné ke změnám a tedy bez velkých problémů akceptovaly změny v modelované doméně. Typování podle [3] power types představuje důležitý mechanismus, který patří k sémantickým abstrakcím vrstvy meta-modelu. Existují dobře popsané návrhové vzory viz [4], které popisují konkrétní použití těchto vzorů při návrhu podnikových informačních systémů. Navíc konceptuální modely se staly výborným prostředkem při procesu reengineeringu. 2 Konceptuální datové modely Konceptuální modely podniků mohou být využity jak pro modelování podnikových procesů, tak pro aktuální programový návrh informačních systémů. Historicky byly konceptuální modely primárně použity k získání požadavků na informační systémy a k hladkému převodu těchto požadavků na různé databázové systémy resp. souborově orientované informační systémy. Konceptuální modely začínají specifikací požadavků a ústí do konceptuálního 29

schéma (konkrétního databázového systému). Později bylo použití konceptuálních modelů rozšířeno na konstrukce a modely libovolného typu domény, které používá množinu konstruktů teoretického modelování, které zachycují způsob existence reality. V oblasti podnikového prostředí se tato realita kromě dalších věcí hlavně skládá z podnikových procesů a podnikových rolí. Další oblast, ve které konceptuální modely našly bohaté uplatnění je oblast business process reengineeringu. V klasické třívrstvé architektuře tvoří konceptuální model prostřední vrstvu a je nezávislý na vrstvě uložení. Takto konceptuální modely blíže vystihují modelovanou doménu a jsou nezávislé na uložení dat. 3 Struktura datového modelu Meta-model je model, který se používá k popisu různých druhů (typů) modelů. Např. metamodel entitě relačního diagramu a data flow diagramu bude definovat instance typů jako např. typ entity, typ relace, typ atributu, typ procesu, datové úložiště a datový tok. V objektově orientovaných modelech, bude meta-model obsahovat typ asociace, typ atributu, typ metody a typ operace. Tyto typy meta-modelu vytváří pak horní vrstvu modelu a diktují způsob, jakým bude spodnější vrstva vyjádřena. Např. typ operace bude umožňovat na úrovni modelu pouze konkrétní operace. Stručně můžeme říci, že meta-model obsahuje typy, jehož instance jsou zase typy. Obr. Úroveň meta-modelu, modelu, dat a procesů Úroveň meta-modelu nabývá na významu se zvyšující se potřebou rychlé adaptace programového vybavení novým podmínkám. Existuje i návrhový vzor reflexe, který se zabývají uvedenou problematikou. Např. v programovacím jazyce Java pak k dispozici celá knihovna java.util.reflection, která poskytuje řadu tříd a metod pro získání informací o meta- 30

modelu. Na podobném principu jsou také založeny tzv. anotace, které se objevují od verze Java 5 a výše. Uvedená metaúroveň má ale také velký význam při praktickém datovém modelování. Na této úrovni mohou být uložena pravidla, která se pak mohou používat za běhu vlastního programu. Také tato úroveň vede k návrhu pružnějších a změnám odolných datových modelů. Nejčastěji se pro tuto činnost využívá sémantická abstrakce typování v literatuře [3] označena jako power types. Typování bývá často opomíjeno jednak proto, že konkrétní programovací prostředek nemusí tento typ abstrakce podporovat a jednak také proto, že častěji před typováním bývá upřednostněna generalizace. Proto si nejdříve popíšeme základní vlastnosti obou konceptů a jejich výhody a nevýhody. 4 Generalizace a typování Abstrakce představuje nejdůležitější princip pro opětovnou použitelnost. Konkrétně se jedná 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í. 4. Generalizace Generalizací se rozumí zobecnění specializované datové entity do obecnější datové entity; mezi těmito entitami se stanoví relace generalizace. Generalizaci lze charakterizovat těmito specifickými vlastnostmi: existuje jen mezi datovými entitami (třídami), nepřenáší se na instance, způsobuje dědění datových atributů a relací z obecnější do specializovanější datové entity, každá instance od obecnější entity dědí pouze strukturu datových atributů, nikoli však obsah, je to relace typu nebo existuje-li k jedné obecnější datové entitě více specializovanějších entit, daná instance se vytvoří právě k jedné z nich. Na následujícím obrázku jsou pomocí diagramu tříd UML uvedeny dva ilustrativní případy generalizace. Abstraktnější třídy Osoba a Lokalita deklarují datové atributy a metody, jejichž strukturu zdědí specializovanější podtřídy. Obr. 2 Příklady použití generalizace 3

Např. třída Osoba deklaruje následující atributy: jméno, rok narození. Třída Muž deklaruje specializovanější atributy: počet manželek a zdědí atributy jméno, rok narození. Třída Žena deklaruje specializovanější atributy: počet narozených dětí a zdědí atributy jméno, rok narození. 4.2 Typování 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 a to 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. Na obrázku 3 jsou pomocí diagramu tříd UML uvedeny stejné příklady jako na předchozím obrázku, ale s použitím typování. Jedná se o typování osob a typování lokalit. Uvedené datové entity jsou spojeny asociací. Typ Lokality Lokalita Obr. 3 Příklady použití typování TypOsoby jsou instance Muž (jméno, rok narození, počet manželek) a Žena (jméno, rok narození, počet narozených dětí) a instance od třídy Osoba pak patří buď pod Muže nebo Ženu. Hodnoty datových atributů zůstávají stejné pro všechny specializované instance. Obdobně TypLokality představuje konkrétní kategorii lokality, kde instance lokalita představuje konkrétní specializaci. Jinými slovy, instance TypOsoby a TypLokality obsahují obecné informace, které jsou pak přístupné všem konkrétním instancím třídy Osoba resp. Lokalita. Typování se dále hlavně používá v případech kategorizace entit např. ProductType a Produkt viz obr. 4. ProductType (Objednávka) obsahuje všechny plánované položky (plánovaná váha, plánované složení příměsí). Instance třídy ProductType pak představují různé objednávky lišící se různou hodnotou plánovaných položek. Instance třídy Product jsou vždy svázány s konkrétní instancí třídy ProductType a liší se v hodnotách skutečných položek (skutečná váha, skutečné složení příměsí). ProductType -planovane_polozky Product -skutecne_polozky Obr. 4 Využití typování pro plánované a skutečné položky. 32

4.3 Shrnutí 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. 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. 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í. 5 Použití typování v datových modelech V praxi se často setkáváme s problematikou modelování hierarchie rolí. Využití generalizace je možné, ale přináší celkově strnulé, ne příliš adaptivní řešení, vzhledem ke změnám. Máme tím na mysli změny obsazení dané role jinou osobou, resp. změnu rolí pro danou osobu. Řešením je, nejdříve odstranit danou instanci a pak vytvořit novou instanci s odpovídající rolí. Reditel Namestek Vedouci Odboru Odborny Pracovnik Obr. 5 Řešení pomocí generalizace a typování problematiky hierarchie rolí 33

Použití typování vede k pružnějším strukturám. Entity (typy), v našem případě PracovníKategorie a TypPracovnihoVztahu, představují úroveň tzv. metamodelu. Entity Osoba a PracovniVztah, pak představují úroveň model. Použití typování v tomto případě vychází z návrhového vzoru responsibility uvedeného v [3]. Pracovní kategorie představují konkrétní role, tedy ředitel, náměstek, vedoucí odboru, odborný pracovník. Instance Osob pak sdílí odpovídající pracovní kategorii. Vzor responsibility je, jak je z obrázku zřejmé, ještě doplněn o typ pracovního vztahu a pracovní vztah. Typem pracovního vztahu může být podřízený, nadřízený a tento typ je pak dále charakterizován konkrétní instancí pracovního vztahu. Typ pracovního vztahu a pracovní vztah je nutným doplňkem uvedené struktury. Následující obrázek popisuje organizační strukturu, která využívá skládání. Použití agregace, v levé části obrázku, vede k nepružné struktuře. Naopak použitím typování umožňuje pružnou strukturu, která snadno akceptuje změny organizační struktury. Obdobně jako na předchozím obrázku, typorganizace a TypOrganizačníhoVztahu představuje úroveň metamodelu a entity Organizace a OrganizačníVztah pak reprezentují konkrétní úroveň modelu. Firma Typ Organizace Typ Organizacniho Vztahu Divize Organizace Organizacni Vztah Odbor Obr. 6 Využití generalizace a typování v případě skládání Využití typování umožňuje také zavedení řady pravidel do meta-modelu, které pomáhají při vlastní realizaci. Atributy typů entit obsahují normativní údaje, které se využívají při implementaci pravidel. Závěr Cílem příspěvku bylo ukázat na důležitost typování jako jedné ze sémantických abstrakcí při návrhu konceptuálních modelů. Jeho použití nejenže vytváří pružné změnám přizpůsobivé modely, ale také umožňuje do vrstvy meta-modelu zavést pravidla, která zlepší strukturování a robustnost celého modelu a zlepší také jeho integritu. Typování jako sémantická abstrakce se využívá také v ontologiích. 34

LITERATURA [] Geerts GL, McCarthy (2006) Policy-Level Specification in REA Enterprise Information Systems. Journal of Information Systems. Vol 20, No. 2 pp. 37-63. [2] Hruby P (2006) Model-Driven Design Using Business Patterns. Springer-Verlag Berlin Heidelberg [3] Martin J, Odell JJ (998) Object-Oriented Methods: a Foundation. Prentice Hall PTR Upper Saddle River, New Jersey [4] Fowler M (997) Analysis Patterns: Reusable Object Model. Addison-Wesley [5] Šašera L, Močovský A, Červeň J (200) Datové modelování v příkladech. Grada [6] Hučka M., Huňka F., Kašík J., Vymětal D. (2008) Modelování podnikových procesů na bázi vlastnických vztahů a jejich směny (systém REA). Systémova integrace ročník 5, číslo 4, 2008 ISSN: 20-9479 [7] Vymětal D., Hučka M., Huňka F., Kašík J. (2008) Production Planning Model Using REA Ontology. E + M Ekonomie a Management ročník: XI, 4 / 2008. ISSN: 22-3609 Příspěvek vznikl za podpory projektu GAČR 402/08/0277 Modelování podnikových procesů na bázi vlastnických vztahů a jejich směny (systém REA). 35