katedra informatiky vŠb–technická univerzita ostrava · moderní relacní sˇ rbd umožˇ nují...

40
Tvorba informaˇ cních systém ˚ u 1/40 Konceptuální modelování Tvorba informaˇ cních systém ˚ u Michal Krátký Katedra informatiky VŠB–Technická univerzita Ostrava Tvorba informaˇ cních systém ˚ u, 2008/2009

Upload: others

Post on 08-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 1/40

Konceptuální modelování

Tvorba informacních systému

Michal Krátký

Katedra informatikyVŠB–Technická univerzita Ostrava

Tvorba informacních systému, 2008/2009

Page 2: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 2/40

Konceptuální modelování

Úvod

Obsah

Konceptuální modelování.

Entity Relationship (ER).

Unified Model Language (UML).

Mapování trídního diagramu do relacního ciobjektove-relacního datového modelu.

Page 3: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 3/40

Konceptuální modelování

Úvod

Konceptuální modelování

Konceptuální modelováníKonceptuální modelování je proces vývoje sémantického popisunejakého systému, který je uplatnen pri návrhu a implementacidatabázové aplikace.

Vlastnosti:

Nezávislý na databázi.Definuje omezení kladená na data.

Page 4: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 4/40

Konceptuální modelování

Entity Relationship Diagram (ERD)

Entity Relationship (ER)

Peter Chen, 1976.Entita representuje vec nebo objekt uložený v databázi.Vazby definují zpusob jakým jsou entity spojeny.Atributy jsou vlastností objektu.Typ entity vs. entity.Atributy vs. hodnoty atributu.Rozšírení ER – Enhanced ER (EER), zavedení novýchrysu (dedicnost apod.).

Page 5: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 5/40

Konceptuální modelování

Entity Relationship Diagram (ERD)

Enhanced ER (EER), príklad

c© S.W. Dietrich, S.D. Urban: An Advanced Course in DatabaseSystems, Prentice Hall, 2005.

Page 6: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 6/40

Konceptuální modelování

Unified Model Language (UML)

Unified Model Language (UML)

UML je vizuální, objektove-orientovaný modelovací jazykzachycující strukturální a dynamické aspekty softwarovéhosystému.Na rozdíl od EER, UML je kolekce modelovacích technik,které jsou aplikovány na ruzné aspekty vývoje softwaru.Každá technika poskytuje ruzný statický nebo dynamickýpohled na aplikaci.Kolekci pohledu nazýváme model.

Page 7: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 7/40

Konceptuální modelování

Unified Model Language (UML)

Modelovací techniky UML 1/2

Trídní diagram (Class Diagram) – statický diagramstruktury. Modeluje entity jako trídy s atributy a chováním.Definuje vazby a omezení, které existují mezi trídami.Objektový diagram (Object Diagram) – ukazuje specifickéinstance tríd.Use-Case Diagram – poskytuje popis systému a jehopoužití z pohledu uživatele.Stavový diagram (State diagram) – popisuje stavy objektua zmeny ve stavech, které nastávají jako odpoved’ naudálosti.

Page 8: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 8/40

Konceptuální modelování

Unified Model Language (UML)

Modelovací techniky UML 2/2

Sekvencní diagram (Sequence diagram) – prezentujeinterakce mezi objekty.Diagram aktivit (Activity diagram) – graf toku ukazujícíúlohy, které je nutné vykonat ve výpocetním procesu.Diagram spolupráce (Collaboration diagram) – popisuje jakruzné elementy spolupracují.

Page 9: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 9/40

Konceptuální modelování

Unified Model Language (UML)

Proc UML pro konceptuální modelování databází?

Poskytuje více objektove-orientovaný prístup k návrhudatabáze.

Stejný jazyk pro analýzu databáze i samotné aplikace.

Použitelné pro objektove-relacní i relacní datový model.

UML je založeno na stejných konceptech jako ER.

UML je standardizováno Object Management Group(http://www.omg.org).

Page 10: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 10/40

Konceptuální modelování

Unified Model Language (UML)

UML vs. ER

UML EERtrída typ entityasociace vazbaatribut atributrole rolenásobnost strukturální omezenízobecnení a specializace zobecnení a specializace

Page 11: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 11/40

Konceptuální modelování

Unified Model Language (UML)

Trída

Objekt zájmu v systému.Zabaluje strukturu a chování objektu, který je instancí trídy.Tri cásti: jméno trídy, atributy a metody.

Page 12: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 12/40

Konceptuální modelování

Unified Model Language (UML)

Stereotypy

Možnost rozšírení popisu významu modelované trídy.Uvozen znaky��.� persistent � - trída bude mapována do databázovéreprezentace – relacního schéma.Pojmy: perzistentní vs. neperzistentní.

Page 13: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 13/40

Konceptuální modelování

Unified Model Language (UML)

Atributy

[� stereotype�] [visibility] [/]attributeName [multiplicity]: [type][=initialValue]

� stereotype� – pridání sémantiky k atributu.visibility – + public; # protected; - private./ – oznacuje odvozený atribut.attributeName – jméno atributu.multiplicity – indikuje vícehodnotový atribut.

Page 14: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 14/40

Konceptuální modelování

Unified Model Language (UML)

Príklad: atributy a poznámky

Page 15: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 15/40

Konceptuální modelování

Unified Model Language (UML)

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 oddelenýcárkami.returnType – typ návratové hodnoty.

Page 16: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 16/40

Konceptuální modelování

Unified Model Language (UML)

Príklad: Operace

Page 17: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 17/40

Konceptuální modelování

Unified Model Language (UML)

Operace v relacním modelu? 1/2

Nastavující/zprístupnující metody (set/get) nejsou zprincipu v databázových systémech použitelné.

Moderní relacní SRBD umožnují implementovat tzv.uložené procedury (stored procedures), které mohou býtvolány klientem.

Napr. uložená procedura v Oracle. Zavoláním proceduryinsert_email(’jan440’) vložíme email studenta sejménem jan440 z tabulky student do tabulky email.

Page 18: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 18/40

Konceptuální modelování

Unified Model Language (UML)

Operace v relacním modelu? 2/2

CREATE OR REPLACE PROCEDURE insert_email(pom_login CHAR)AS pom_email VARCHAR2(60);

BEGINSELECT email INTO pom_email FROM ins.student

WHERE login=pom_login;INSERT INTO email VALUES(pom_email);

END;

Takové procedury jsou velmi výhodné⇒ prenesenífunkcionality na stranu serveru.

Page 19: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 19/40

Konceptuální modelování

Unified Model Language (UML)

Zobecnení a specializace

Obdobné jako u ER (ISA apod.).

Vytvorení hierarchie tríd.

Instance podtrídy je rovnež instancí nadtrídy.

Omezení specializace: mandatory, complete, . . .

Mužeme oznacit abstraktní trídy.

Page 20: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 20/40

Konceptuální modelování

Unified Model Language (UML)

Príklad: zápis specializace

Page 21: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 21/40

Konceptuální modelování

Unified Model Language (UML)

Omezení specializace

Omezení specializace je uvozeno mezi znaky { a }.

mandatory – nejméne k jedné podtríde chceme vytvoritinstanci (využitelné v databázích).

complete – všechny podtrídy jsou již definovány.

incomplete – nejsou definovány všechny podtrídy.

Page 22: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 22/40

Konceptuální modelování

Unified Model Language (UML)

Abstraktní trída

Trída jejíž instance nemuže být vytvorena.

Název trídy italic nebo pred názvem trídy {abstract}.

Potomka abstraktní trídy jehož instanci mužeme vytvoritnazýváme konkrétní trída.

Abstraktní vs. konkrétní operace.

Page 23: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 23/40

Konceptuální modelování

Unified Model Language (UML)

Diskriminátory (Discriminators)

Clenství v podtrídách založené na atributu nadtrídy.Atribut, který urcuje clenství v podtríde nazývámediskriminátor.Pro každou hodnotu atributu musí existovat podtrída.Diskriminátor zapisujeme k cáre specializace apovažujeme jej za pseudo atribut nadtrídy.Specializace je typu mandatory, nadtrída tedy musí býtabstraktní.

Page 24: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 24/40

Konceptuální modelování

Unified Model Language (UML)

Príklad: diskriminátor

Page 25: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 25/40

Konceptuální modelování

Unified Model Language (UML)

Diskriminátor, implementace

Diskriminátor casto naznacuje implementaci dedicnosti vrelacním datovém modelu.

Príklad, tabulka Person:

Login FirstName LastName Address StudentOrTeacherkra28 Jan Král ... Ysob19 Tomáš Sobota ... Nsve11 Barbora Švecová ... N...

Page 26: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 26/40

Konceptuální modelování

Unified Model Language (UML)

Asociace

ER: vazby (relationships).

UML: asociace.

Násobnost: 1:1, 1:N, M:N.

Popis: název, role a násobnost + povinnost v clenství(multiplicita).

Šipkou mužeme naznacit smer asociace.

Page 27: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 27/40

Konceptuální modelování

Unified Model Language (UML)

Príklad: asociace

Název asociace: maZapsan. Vyznacen smer asociace.Role:

maZapsan – Student má zapsán VypsanyKurz.jeNavstevovan – VypsanyKurz je navštevován Studentem.

Násobnost: 0..*:Student má zapsán žádný nebo více VypsanychKurzu.VypsanyKurz je navštevován žádným nebo více Studenty.

Page 28: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 28/40

Konceptuální modelování

Unified Model Language (UML)

Asociacní trída

V trídním digramu mužeme naznacit rozklad vazby M : Npomocí asociacní trídy.

Page 29: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 29/40

Konceptuální modelování

Unified Model Language (UML)

Konkretizace asociace

Konceptuální model muže zahrnovat nekolik úrovní abstrakce.Napr. v prvním TD použijeme asociacní trídu pro naznacenírozkladu vazby M : N, ve druhém TD vazbu rozložíme.

Page 30: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 30/40

Konceptuální modelování

Unified Model Language (UML)

N-ární asociace

Page 31: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 31/40

Konceptuální modelování

Unified Model Language (UML)

Další asociace

Navigability – udán smer asociace pro implementaci(porovnej s klasickou obousmernou asociací).Agregace – asociace typu skládá se z.Složení (composition) – obdoba agregace.Kvalifikovaná asociace – pole asociováno s N hodnotami.Xor – výber ze dvou tríd.

Page 32: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 32/40

Konceptuální modelování

Unified Model Language (UML)

Co ješte umí UML?

Rozhraní v trídním diagramu.

Další diagramy:Objektový diagram,Use-Case Diagram,Stavový diagram,Sekvencní diagram,Diagram aktivit,Diagram spolupráce.

Ne všechny diagramy jsou vhodné pro datovou, funkcní adynamickou analýzu informacního systému.

Page 33: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 33/40

Konceptuální modelování

Unified Model Language (UML)

Mapování trídního diagramu do relacního datovéhomodelu

Konceptuální model musí být prenesen na konkrétní datovýmodel SRBD.

Trídu mapujeme na relacní schéma.Instance trídy⇒ záznam.Množina instancí⇒ relace.Vazbu 1 : 1 a 1 : N mužeme implementovat cizím klícem.Rozklad vazby M:N pomocí vazební tabulky.Validace: rozkladem univerzálního schématu.

Page 34: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 34/40

Konceptuální modelování

Unified Model Language (UML)

Mapování trídního diagramu do relacního datovéhomodelu

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íc (atributworkgroup.course).

Page 35: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 35/40

Konceptuální modelování

Unified Model Language (UML)

Mapování trídního diagramu do objektove-relacníhodatového modelu

Objektove-orientované databáze: Object DataManagement Group (ODMG), Object Query Language(OQL).Nákladná migrace relacních dat, proto vzniklyobjektove-relacní rysy v relacních databázích (SQL99).

Uživatelsky definované datové typy.Možnost definovat atributy a metody.Zavedení dedicnosti.Datový typ ukazatel, reference a dereference.Uložené procedury, triggery: metody uložené v SRBD –prenesení funkcionality na server.

Page 36: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 36/40

Konceptuální modelování

Unified Model Language (UML)

Mapování trídního diagramu do objektove-relacníhodatové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;

Dusledek: atribut address není atomický.

Page 37: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 37/40

Konceptuální modelování

Unified Model Language (UML)

Mapování trídního diagramu do objektove-relacníhodatové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 dedí z typu TPerson, obsahuje metoduauthentication().

Page 38: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 38/40

Konceptuální modelování

Analýza

Analýza

Zadání a specifikace požadavku, (Use-case).

Konceptuální analýza:trídní diagram UML – ruzné úrovne abstrakce (bez/smetodami a atributy, rozklad vazeb M:N atd.),lineární zápis.

Page 39: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 39/40

Konceptuální modelování

Analýza

Analýza

Datová analýza: tabulky a jejich popis (IO, NULL, indexatd.).

Funkcní (a dynamická analýza):Data Flow Diagram nebo prostredky UML (predevšímstavový diagram).Pro netriviální DFD na poslední úrovni je vhodné vytváretscénáre popisující formuláre (jednou z forem jsouminispecifikace).

UML pro analýzu a návrh celé aplikace.

Page 40: Katedra informatiky VŠB–Technická univerzita Ostrava · Moderní relacní Sˇ RBD umožˇ nují implementovat tzv.ˇ uložené procedury (stored procedures), které mohou být

Tvorba informacních systému 40/40

Konceptuální modelování

Analýza

Literatura

S.W. Dietrich, S.D. Urban: An Advanced Course inDatabase Systems, Prentice Hall, 2005.

H. Garcia-Molina, J.D. Ullman, J. Widom: DatabaseSystems, The Complete Book. Prentice Hall, 2002.

Object Management Group (OMG): Unified ModelLanguage (UML). (http://www.omg.org), 2006.

Object Data Management Group (ODMG): The Standardfor Storing Objects, (http://www.odmg.org), 2006.

M. Krátký, R. Baca: Databázové systémy.http://db.cs.vsb.cz/edu/dbsys.pdf, 2009.