Tvorba informačních systémů 1/40 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009
Tvorba informačních systémů 2/40 Úvod Obsah. Entity Relationship (ER).. Mapování třídního diagramu do relačního či objektově-relačního datového modelu.
Tvorba informačních systémů 3/40 Úvod je proces vývoje sémantického popisu nějakého systému, který je uplatněn při návrhu a implementaci databázové aplikace. Vlastnosti: Nezávislý na databázi. Definuje omezení kladená na data.
Tvorba informačních systémů 4/40 Entity Relationship Diagram (ERD) Entity Relationship (ER) 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), zavedení nových rysů (dědičnost apod.).
Tvorba informačních systémů 5/40 Entity Relationship Diagram (ERD) Enhanced ER (EER), příklad c S.W. Dietrich, S.D. Urban: An Advanced Course in Database Systems, Prentice Hall, 2005.
Tvorba informačních systémů 6/40 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.
Tvorba informačních systémů 7/40 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.
Tvorba informačních systémů 8/40 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í.
Tvorba informačních systémů 9/40 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).
Tvorba informačních systémů 10/40 UML vs. ER 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
Tvorba informačních systémů 11/40 Třída 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.
Tvorba informačních systémů 12/40 Stereotypy Možnost rozšíření popisu významu modelované třídy. Uvozen znaky. persistent - třída bude mapována do databázové reprezentace relačního schéma. Pojmy: perzistentní vs. neperzistentní.
Tvorba informačních systémů 13/40 Atributy [ 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.
Tvorba informačních systémů 14/40 Příklad: atributy a poznámky
Tvorba informačních systémů 15/40 Operace [ stereotype ] [visibility] methodname [parameters]: [returntype] stereotype další význam operace. visibility + public; # protected; - private. methodname název metody. parameters seznam dvojic typ/název oddělený čárkami. returntype typ návratové hodnoty.
Tvorba informačních systémů 16/40 Příklad: Operace
Tvorba informačních systémů 17/40 Operace v relačním modelu? 1/2 Nastavující/zpřístupňující metody (set/get) nejsou z principu v databázových systémech použitelné. Moderní relační SŘBD umožňují implementovat tzv. uložené procedury (stored procedures), které mohou být volány klientem. Např. uložená procedura v Oracle. Zavoláním procedury insert_email( jan440 ) vložíme email studenta se jménem jan440 z tabulky student do tabulky email.
Tvorba informačních systémů 18/40 Operace v relačním modelu? 2/2 CREATE OR REPLACE PROCEDURE insert_email(pom_login CHAR) AS pom_email VARCHAR2(60); BEGIN SELECT email INTO pom_email FROM ins.student WHERE login=pom_login; INSERT INTO email VALUES(pom_email); END; Takové procedury jsou velmi výhodné přenesení funkcionality na stranu serveru.
Tvorba informačních systémů 19/40 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,... Můžeme označit abstraktní třídy.
Tvorba informačních systémů 20/40 Příklad: zápis specializace
Tvorba informačních systémů 21/40 Omezení specializace Omezení specializace je uvozeno mezi znaky { a }. mandatory nejméně k jedné podtřídě chceme vytvořit instanci (využitelné v databázích). complete všechny podtřídy jsou již definovány. incomplete nejsou definovány všechny podtřídy.
Tvorba informačních systémů 22/40 Abstraktní třída 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.
Tvorba informačních systémů 23/40 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í.
Tvorba informačních systémů 24/40 Příklad: diskriminátor
Tvorba informačních systémů 25/40 Diskriminátor, implementace Diskriminátor často naznačuje implementaci dědičnosti v relačním datovém modelu. Příklad, tabulka Person: Login FirstName LastName Address StudentOrTeacher kra28 Jan Král... Y sob19 Tomáš Sobota... N sve11 Barbora Švecová... N...
Tvorba informačních systémů 26/40 Asociace ER: vazby (relationships). UML: asociace. Násobnost: 1:1, 1:N, M:N. Popis: název, role a násobnost + povinnost v členství (multiplicita). Šipkou můžeme naznačit směr asociace.
Tvorba informačních systémů 27/40 Příklad: asociace 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.
Tvorba informačních systémů 28/40 Asociační třída V třídním digramu můžeme naznačit rozklad vazby M : N pomocí asociační třídy.
Tvorba informačních systémů 29/40 Konkretizace asociace Konceptuální model může zahrnovat několik úrovní abstrakce. Např. v prvním TD použijeme asociační třídu pro naznačení rozkladu vazby M : N, ve druhém TD vazbu rozložíme.
Tvorba informačních systémů 30/40 N-ární asociace
Tvorba informačních systémů 31/40 Další asociace Navigability udán směr asociace pro implementaci (porovnej s klasickou obousměrnou asociací). Agregace asociace typu skládá se z. Složení (composition) obdoba agregace. Kvalifikovaná asociace pole asociováno s N hodnotami. Xor výběr ze dvou tříd.
Tvorba informačních systémů 32/40 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. Ne všechny diagramy jsou vhodné pro datovou, funkční a dynamickou analýzu informačního systému.
Tvorba informačních systémů 33/40 Mapování třídního diagramu do relačního datového modelu Konceptuální model musí být přenesen na konkrétní datový model SŘBD. Třídu mapujeme na relační schéma. Instance třídy záznam. Množina instancí relace. Vazbu 1 : 1 a 1 : N můžeme implementovat cizím klíčem. Rozklad vazby M:N pomocí vazební tabulky. Validace: rozkladem univerzálního schématu.
Tvorba informačních systémů 34/40 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) Asociace je tedy implementována cizím klíč (atribut workgroup.course).
Tvorba informačních systémů 35/40 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 (SQL99). Uživatelsky definované datové typy. Možnost definovat atributy a metody. Zavedení dědičnosti. Datový typ ukazatel, reference a dereference. Uložené procedury, triggery: metody uložené v SŘBD přenesení funkcionality na server.
Tvorba informačních systémů 36/40 Mapování třídního diagramu do objektově-relačního datového modelu, Oracle 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), address TAddress,... ) NOT FINAL NOT INSTANTIABLE; Důsledek: atribut address není atomický.
Tvorba informačních systémů 37/40 Mapování třídního diagramu do objektově-relačního datového modelu, Oracle 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); Typ TTeacher dědí z typu TPerson, obsahuje metodu authentication().
Tvorba informačních systémů 38/40 Analýza Analýza Zadání a specifikace požadavků, (Use-case). Konceptuální analýza: třídní diagram UML různé úrovně abstrakce (bez/s metodami a atributy, rozklad vazeb M:N atd.), lineární zápis.
Tvorba informačních systémů 39/40 Analýza Analýza Datová analýza: tabulky a jejich popis (IO, NULL, index atd.). Funkční (a dynamická analýza): Data Flow Diagram nebo prostředky UML (především stavový diagram). Pro netriviální DFD na poslední úrovni je vhodné vytvářet scénáře popisující formuláře (jednou z forem jsou minispecifikace). UML pro analýzu a návrh celé aplikace.
Tvorba informačních systémů 40/40 Analýza Literatura 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. M. Krátký, R. Bača: Databázové systémy. http://db.cs.vsb.cz/edu/dbsys.pdf, 2009.