Tvorba informačních systémů Michal Krátký 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký Tvorba informačních systémů 1/35
Konceptuální modelování v UML Konceptuální modelování... Mapování třídního diagramu do relačního či objektově-relačního datového modelu. c 2006 Michal Krátký Tvorba informačních systémů 2/35
Konceptuální modelování Konceptuální modelování je proces vývoje sémantického popisu nějakého systému, který je uplatněn v návrhu a implementaci databázové aplikace. Nezávislý na databázi. Definuje omezení kladená na data. c 2006 Michal Krátký Tvorba informačních systémů 3/35
Peter Chen, 1976. Entita representuje věc nebo objekt uložený v databázi. Vazby definují způsob jakým jsou entity spojeny. Atributy jsou vlastností objektů. Typ entity vs. entity. Atributy vs. hodnoty atributů. Rozšíření ER Enhanced ER (EER). c 2006 Michal Krátký Tvorba informačních systémů 4/35
UML je vizuální, objektově-orientovaný modelovací jazyk zachycující strukturální a dynamické aspekty softwarového systému. Na rozdíl od EER, UML je kolekce modelovacích technik, které jsou aplikovány na různé aspekty vývoje softwaru. Každá technika poskytuje různý statický nebo dynamický pohled na aplikaci. Kolekci pohledů nazýváme model. c 2006 Michal Krátký Tvorba informačních systémů 5/35
Modelovací techniky UML 1/2 Třídní diagram (Class Diagram) statický diagram struktury. Modeluje entity jako třídy s atributy a chováním. Definuje vazby a omezení, které existují mezi třídami. Objektový diagram (Object Diagram) ukazuje specifické instance tříd. Use-Case Diagram poskytuje popis systému a jeho použití z pohledu uživatele. Stavový diagram (State diagram) popisuje stavy objektů a změny ve stavech, které nastávají jako odpověd na události. c 2006 Michal Krátký Tvorba informačních systémů 6/35
Modelovací techniky UML 2/2 Sekvenční diagram (Sequence diagram) prezentuje interakce mezi objekty. Diagram aktivit (Activity diagram) graf toků ukazující úlohy, které je nutné vykonat ve výpočetním procesu. Diagram spolupráce (Collaboration diagram) popisuje jak různé elementy spolupracují. c 2006 Michal Krátký Tvorba informačních systémů 7/35
Proč UML pro konceptuální modelování databází? Poskytuje více objektově-orientovaný přístup k návrhu databáze. Stejný jazyk pro analýzu databáze i samotné aplikace. Použitelné pro objektově-relační i relační datový model. UML je založeno na stejných konceptech jako ER. UML je standardizováno Object Management Group (http://www.omg.org). c 2006 Michal Krátký Tvorba informačních systémů 8/35
UML vs. ER Konceptuální modelování v UML UML třída asociace atribut role násobnost zobecnění a specializace EER typ entity vazba atribut role strukturální omezení zobecnění a specializace c 2006 Michal Krátký Tvorba informačních systémů 9/35
Třída Konceptuální modelování v UML Objekt zájmu v systému. Zabaluje strukturu a chování objektu, který je instancí třídy. Tři části: jméno třídy, atributy a metody. c 2006 Michal Krátký Tvorba informačních systémů 10/35
Stereotypy Konceptuální modelování v UML Možnost rozšíření sémantiky modelované třídy. Uvozen znaky. persistent - třída bude mapována do databázové reprezentace. Perzistentní vs. neperzistentní. c 2006 Michal Krátký Tvorba informačních systémů 11/35
Atributy Konceptuální modelování v UML [ stereotype ] [visibility] [/] attributename [multiplicity]: [type] [=initialvalue] stereotype přidání sémantiky k atributu. visibility + public; # protected; - private. / označuje odvozený atribut. attributename jméno atributu. multiplicity indikuje vícehodnotový atribut. c 2006 Michal Krátký Tvorba informačních systémů 12/35
Příklad: atributy Konceptuální modelování v UML c 2006 Michal Krátký Tvorba informačních systémů 13/35
Operace Konceptuální modelování v UML [ stereotype ] [visibility] methodname [parameters]: [returntype] stereotype přidání sémantiky k operace. visibility + public; # protected; - private. methodname název metody. parameters seznam dvojic typ/název oddělený čárkami. returntype typ návratové hodnoty. c 2006 Michal Krátký Tvorba informačních systémů 14/35
Příklad: Operace Konceptuální modelování v UML c 2006 Michal Krátký Tvorba informačních systémů 15/35
Zobecnění a specializace Obdobné jako u ER (ISA apod.). Vytvoření hierarchie tříd. Instance podtřídy je rovněž instancí nadtřídy. Omezení specializace: mandatory, complete,... Abstraktní třídy. c 2006 Michal Krátký Tvorba informačních systémů 16/35
Příklad: zápis specializace c 2006 Michal Krátký Tvorba informačních systémů 17/35
Omezení specializace Uvozena mezi znaky { a }. mandatory nejméně k jedné podtřídě chceme vytvořit instanci. complete všechny podtřídy jsou definovány. incomplete nejsou definovány všechny podtřídy. mandatory je uživatelsky definované omezení určené pro databázové modelování. c 2006 Michal Krátký Tvorba informačních systémů 18/35
Abstraktní třída Konceptuální modelování v UML Třída jejíž instance nemůže být vytvořena. Název třídy italic nebo před názvem třídy {abstract}. Potomka abstraktní třídy jehož instanci můžeme vytvořit nazýváme konkrétní třída. Abstraktní vs. konkrétní operace. c 2006 Michal Krátký Tvorba informačních systémů 19/35
Diskriminátory (Discriminators) Členství v podtřídách založené na atributu nadtřídy. Atribut, který určuje členství v podtřídě nazýváme diskriminátor. Pro každou hodnotu atributu musí existovat podtřída. Diskriminátor zapisujeme k čáře specializace a považujeme jej za pseudo atribut nadtřídy. Specializace je typu mandatory, nadtřída tedy musí být abstraktní. c 2006 Michal Krátký Tvorba informačních systémů 20/35
Příklad: diskriminátor c 2006 Michal Krátký Tvorba informačních systémů 21/35
Asociace Konceptuální modelování v UML ER: vazby (relationships). UML: asociace. 1:1, 1:N, M:N. Popis: název, role a násobnost (multiplicita). Šipkou můžeme naznačit směr asociace. c 2006 Michal Krátký Tvorba informačních systémů 22/35
Příklad: asociace Konceptuální modelování v UML Název asociace: mazapsan. Vyznačen směr asociace. Role: mazapsan Student má zapsán VypsanyKurz. jenavstevovan VypsanyKurz je navštěvován Studentem. Násobnost: 0..*: Student má zapsán žádný nebo více VypsanychKurzů. VypsanyKurz je navštěvován žádným nebo více Studenty. c 2006 Michal Krátký Tvorba informačních systémů 23/35
Asociační třída Konceptuální modelování v UML Rozklad vazby M:N. c 2006 Michal Krátký Tvorba informačních systémů 24/35
Konkretizace asociace Rozklad vazby M:N. c 2006 Michal Krátký Tvorba informačních systémů 25/35
N-ární asociace Konceptuální modelování v UML c 2006 Michal Krátký Tvorba informačních systémů 26/35
Další asociace Konceptuální modelování v UML Navigability udán směr asociace pro implementaci (porovnej s klasickou obousměrnou asociací). Agregace. Složení (composition). Kvalifikovaná asociace pole asociováno s N hodnotami. Xor výběr ze dvou tříd. c 2006 Michal Krátký Tvorba informačních systémů 27/35
Co ještě umí UML? Rozhraní v třídním diagramu. Další diagramy: Objektový diagram, Use-Case Diagram, Stavový diagram, Sekvenční diagram, Diagram aktivit, Diagram spolupráce. c 2006 Michal Krátký Tvorba informačních systémů 28/35
Mapování třídního diagramu do relačního datového modelu Třídy => relační schéma. Instance třídy => záznam. Množina instancí => relace. Rozklad vazby M:N. Metody mohou být nahrazeny uloženými procedurami (přenesení funkcionality na server). c 2006 Michal Krátký Tvorba informačních systémů 29/35
Mapování třídního diagramu do relačního datového modelu CREATE TABLE course ( id NUMBER(4) PRIMARY KEY, name VARCHAR2(50) NOT NULL, day VARCHAR2(2) NOT NULL, time VARCHAR2(11)) CREATE TABLE workgroup ( id NUMBER(2) PRIMARY KEY, name VARCHAR2(20) NOT NULL UNIQUE, course NUMBER(4) REFERENCES course NOT NULL) c 2006 Michal Krátký Tvorba informačních systémů 30/35
Mapování třídního diagramu do objektově-relačního datového modelu Objektově-orientované databáze: Object Data Management Group (ODMG), Object Query Language (OQL). Nákladná migrace relačních dat, proto vznikly objektově-relační rysy v relačních databázích. Uživatelsky definované datové typy. Možnost definovat atributy a metody. Zavedení dědičnosti. Datový typ ukazatel. Reference a dereference. Využití SQL. c 2006 Michal Krátký Tvorba informačních systémů 31/35
Mapování třídního diagramu do objektově-relačního datového modelu CREATE OR REPLACE TYPE TAddress AS OBJECT ( street VARCHAR2(30), city VARCHAR2(30), PSC NUMBER(5)); CREATE OR REPLACE TYPE TPerson AS OBJECT ( login VARCHAR2(6), fname VARCHAR2(20), sname VARCHAR2(20), address TAddress,... ) NOT FINAL NOT INSTANTIABLE; c 2006 Michal Krátký Tvorba informačních systémů 32/35
Mapování třídního diagramu do objektově-relačního datového modelu CREATE OR REPLACE TYPE TTeacher UNDER TPerson ( department REF TDepartment, room REF TRoom, enlistment REF TEnlistment, title VARCHAR2(30), STATIC FUNCTION authentication (login VARCHAR2, password VARCHAR2, md NUMBER) RETURN REF TTeacher); c 2006 Michal Krátký Tvorba informačních systémů 33/35
Analýza Konceptuální modelování v UML Zadání a specifikace požadavků. Konceptuální analýza: třídní diagram (analýza databáze i celé aplikace). Datová analýza: pro relační model lineární zápis, tabulky, atributy a jejich popis (IO, NULL, index atd.). Funkční (a dynamická analýza): Data Flow Diagram nebo prostředky UML. c 2006 Michal Krátký Tvorba informačních systémů 34/35
Literatura Konceptuální modelování v UML S.W. Dietrich, S.D. Urban: An Advanced Course in Database Systems, Prentice Hall, 2005. H. Garcia-Molina, J.D. Ullman, J. Widom: Database Systems, The Complete Book. Prentice Hall, 2002. Object Management Group (OMG): Unified Model Language (UML). (http://www.omg.org), 2006. Object Data Management Group (ODMG): The Standard for Storing Objects, (http://www.odmg.org), 2006. c 2006 Michal Krátký Tvorba informačních systémů 35/35