Porovnání relačních a OO datových modelů. Václav Papež 2012

Podobné dokumenty
Database systems. Normal forms

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

Tvorba informačních systémů

8.2 Používání a tvorba databází

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

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

UML. Unified Modeling Language. Součásti UML

Tvorba informačních systémů

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í.

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

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Úvod do databázových systémů

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Gymnázium, Brno, Slovanské nám. 7 WORKBOOK. Mathematics. Teacher: Student:

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

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

Unifikovaný modelovací jazyk UML

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

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

7.3 Diagramy tříd - základy

EXTRAKT z mezinárodní normy

OOT Objektově orientované technologie

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

1. Dědičnost a polymorfismus

Databázové systémy I. 1. přednáška

Databázové systémy Cvičení 5.2

Třída. Atributy. Operace

Principy UML. Clear View Training 2005 v2.2 1

7.3 Diagramy tříd - základy

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

Operátory ROLLUP a CUBE

Diagramy tříd - základy

Databáze I. Přednáška 7

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

WWW jako dynamická knihovna

7.5 Diagram tříd pokročilé techniky

Úvod do databázových systémů

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Otázka č. 1 (bodů za otázku: 4)

Výměnný formát XML DTM DMVS PK

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Database engine (databázový stroj, databázový motor, databázové jádro) Systém řízení báze dat SŘBD. Typy SŘBD podle způsobu práce s daty

DBS Konceptuální modelování

3 druhy UML diagramů

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

Analýza a modelování dat 3. přednáška. Helena Palovská

J. Zendulka: Databázové systémy 4 Relační model dat 1

Úvod do datového a procesního modelování pomocí CASE Erwin a BPwin

7.5 Diagram tříd pokročilé techniky

Přehled změn v XSD aplikace SSZ pro dodávku D8.1.0 Rámcová smlouva na Rozvoj a údržbu Informačního systému katastru nemovitostí v letech

SQL - trigger, Databázové modelování

Hierarchický databázový model

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

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í

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

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

Kapitola 6: Omezení integrity. Omezení domény

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

Úvod do databázových systémů. Ing. Jan Šudřich

SEZNÁMENÍ SE STANDARDEM STEP A JEHO OBJEKTOVĚ ORIENTOVANÝM JAZYKEM EXPRESS

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

Objekty, třídy, vazby 2006 UOMO 30

Jiří Mašek BIVŠ V Pra r ha

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

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

Základy analýzy. autor. Jan Novotný února 2007

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

Metadata, sémantika a sémantický web. Ing. Vilém Sklenák, CSc.

Dolování v objektových datech. Ivana Rudolfová

Objektově relační databáze a ORACLE 8

Kolaborativní aplikace

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

STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

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

Ontologie. Otakar Trunda

Michal Krátký, Miroslav Beneš

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Databázové systémy Cvičení 5.3

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

Databáze I. 1. přednáška. Helena Palovská

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

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

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Maturitní témata Školní rok: 2015/2016

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

Architektura softwarových systémů

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Zápisování dat do databáze

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

Transkript:

Porovnání relačních a OO datových modelů Václav Papež vpapez@kiv.zcu.cz 2012

Přehled prezentace Proč byla práce vytvořena Příklad v podobě mluveného slova Relační model Objektově model UML XML a XSD Souhrn transformačních pravidel Další sémanocké rozšíření

Co je datový model Logicky strukturovaná množina dat Cílem modelu je vytvářet z dat interpretovatelné informace Různé způsoby popisu Slovní vyjádření Relační model Objektový model Ontologie

K čemu to, když je vše popsáno Málo komplexních step by step popisů Většina dokumentů se soustředí na jeden model a nehledá souvisloso s okolím Většinou je popsáno co lze, ne co nelze Málo dokumentů jde od definice po příklad Důležitý souhrn pro další popis transformací (OO model RDF / OWL) Upřesnění častých omylů ER model nemá grafickou syntaxi Relace vs. vztah UML je více než Class diagram Class diagram má více vztahů než jen asociace

Příklad V jednom státě existuje několik univerzit Každá univerzita má několik fakult Každá fakulta má n studentů Jeden studen může studovat více jak jednu fakultu (na různých univerzitách) Student má jméno a unikátní ID v rámci univerzity Fakulta/univerzita má jméno, studenty a děkana/rektora Děkan/Rektor má jméno, příjmení a jedinečné ID v rámci univerzity

Relační... 1/4 Relační model x EnOty- RelaOonal model x Relační databáze x Relační algebra x EnOty- RelaOonal diagram x Databázový systém (SŘBD)

Relační... 2/4 (E. F. Codd) Doména A domain is a set of values of similar type. A domain is simple if all of its values are atomic. Relace Let D 1, D 2,..., D n, be n (n > 0) domains (not necessarily dis?nct). The Cartesian product x{d i : i= 1,2,...,n} is the set of all n- tuples <t 1, t 2,...,t n > such that t i D i for all i. A rela?on R is defined on these n domains if it is a subset of this Cartesian product. Such a rela?on is said to be of degree n. Relace není vztah! RelaOon x RelaOoship Atribut For each tuple component we associate not only its domain, but also its dis?nct index. This we call an apribute. The n dis?nct apributes of a rela?on of degree n dis?nguish the n different uses of the domains upon which that rela?on is defined. A tuple then becomes a set of pairs (A:v), where A is an apribute and v is a value drawn from the domain of A, instead of a sequence (v 1, v 2,...,v n ). A rela?on then consists of a set of tuples, each tuple having the same set of apributes. Schéma A schema for rela?on R with degree n is a list of unique apribute names.

Relační... 3/4 Primární (kandidátní) klíč K is a candidate key of rela?on R if it is a collec?on of apributes of R with the following?me- independent proper?es. (1) No two rows of R have the same K- component. (2) If any apribute is dropped from K, the uniqueness property (1) is lost. Relační model Kolekce relací v tabulární podobě Insert Update Delete Relační algebra Relační databáze A rela?onal database is collec?on of data represented by collec?on of?me- varying tabular rela?ons.

Relační... 4/4 Relační algebra Soubor operací UNION INTERSECTION SET DIFFERENCE THETA- SELECT PROJECTION THETA- JOIN DIVIDE Relační model vs. EnOty- RelaOonal Model Relace vs. Vztahy mezi enotami Struktura hodnot vs. Struktura enot Kartézský produkt domén (relace) vs. Kartézský produkt enot (vztah) ER model má explicitně vyjádřené kardinality a provázání enot

Konstrukce ER modelu 1/3 Jednoduchý význam či kontext pro člověka nemusí být triviální pro strojové zpracování Základní pravidla Podmět EnOta Přísudek Relace Předmět Atribut Příklad University (name, rector, faculoes) Faculty (name, dean, students) Dean (id, name, surname) Rector (id, name, surname) Student (id, name, surname)

Konstrukce ER modelu 2/3 Po odstranění neatomičnoso atributů, využim operací NATURAL- JOIN a vyčlenění primárních klíčů University (name, rector_id, faculoes) Faculty (name, dean_id, students) Dean (dean_id, name, surname) Rector (rector_id, name, surname) Student (student_id, name, surname) Vazby ve složení podmět přísudek- předmět (subject- predicate- object) ONE University has MANY FaculOes ONE University has ONE rector ONE University has MANY students ONE Faculty belongs to ONE University ONE Faculty has ONE dean ONE Faculty has MANY students ONE dean direct ONE Faculty ONE rector direct ONE University ONE student study MANY FaculOes ONE student study MANY UniversiOes

Konstrukce ER modelu 3/3 Po vynechání redundantních vztahů University 1! n! Faculty University 1! 1! Rector Faculty 1! 1! Dean Faculty m...n Student Tímto lze považovat ER model za hotový, grafická reprezentace do modelu nepatří Zpětným přepisem do vět lze otestovat vyjadřovací schopnost modelu

GraNická reprezentace 1/2 Dle zvyklosm, atypicky, UML Dle zvyklosm: EnOta Atribut Vazba a kardinalita

GraNická reprezentace 2/2

Zobecnění modelu Rektor, děkan i student mají stejné atributy jsou konkreozací osoby Fakulta i univerzita jsou insotuce InsOtuOon (ins0tu0on_id, name, director_id) Person (person_id, name, surname) InsOtuOon m! n! Person Nastávají problémy Jak zaručit, že insotuce bude mít jen jednoho ředitele? Jak zaručit, že insotuce bude mít alespoň jednoho studenta?

OO model 1/2 The Core (Won Kim) Objekt Abstraktní reprezentace objektu reálného světa OID Logické x fyzické Komplexní objekt (Set, List, Tuple konstruktory) Atribute Definuje stav objektu PrimiOvní hodnota či objekt Metoda Definuje chování objektu a mění jeho stav Třída Šablona pro objekty Dědičnost Jednoduchá (strom) x vícenásobná (orientovaný graf) Specializace x generalizace

OO model 2/2 Třídy v University příkladu s využimm generalizace Class InsOtute (name, director) Class Person (name, surname, ID) Class Rector extends Person () Class Dean extends Person () Class Student extends Person () Class University extends InsOtute (List of FaculOes) Class Faculty extends InsOtute (List of Students) Jak popsat vztahy mezi třídami? OO model má na rozdíl od ER modelu definovaný modelovací jazyk

UML - Historie

UML 2.0 1/2 14 základních diagramů Diagramy zaměřené na strukturu Diagram tříd, komponent, balíčků, objektů, nasazení, vnitřní struktury, interakcí Diagramy zaměřené na chování Diagram akovit, stavový, sekvenční, případů užim, časování, komunikace XML Metadata Interchange jazyk pro popis UML založený na XML Problémy: UML je nezávislé na implementaci, přesto designer musí brát v potaz implementační technologie (například násobná dědičnost)

UML 2.0 2/2

Konstrukce diagramu tříd 1/2 Třída, atribut, metoda Generalizace Asociace, agregace, kompozice, muloplicita

Konstrukce diagramu tříd 2/2 Závislost Příklad

XML 1/2 Univerzální jazyk pro výměnu / přenos dat

XML 2/2 XML umožňuje popis strukturovaných dat proto je možné popsat i tabulkové struktury, tedy ER model XSD a DTD pro definici struktury XML dokumentů XSD umožňuje definovat dědičnost, zapouzdření, subsotuci apod. proto je možné jím popsat OO model XML popisuje instance x XSD popisuje třídy UML diagram je popsatelný XML a UML je samo popsatelné UML modelem - > Obecně lze jazyk UML popsat v XML

XSD EnOta element Atribut atribut nebo element XSD popisuje hierarchii elementů complextype, simpletype Vztahy dáno zanořením elementu ve struktuře Kardinalita minoccur, maxoccur

XSD - Příklad <xs:complextype name="students"> <xs:sequence> <xs:element name="student" type="student" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> <xs:complextype name="student"> <xs:sequence> <xs:element name="name" type="name"/> <xs:element name="surname" type="surname"/> </xs:sequence> <xs:a ribute name="id" type="id"/> </xs:complextype> <xs:simpletype name="name"> <xs:restricoon base="xs:string"> </xs:restricoon> </xs:simpletype>

Mluvené slovo ER model Mluvené slovo Podmět Podstatné jméno Sloveso Číslovka Ostatní ER model EnOta / atribut Atribut Vztah Kardianlita Silnější omezení, závisloso atd. Musí být vyvozeny z kontextu Opačná transformace se řídí stejnými pravidly a zdravým rozumem.

ER model UML Class diagram ER model Entita Atribut Vztah Kardinalita UML Class diagram Třída Atribut Asociace MulOplicita

UML Class diagram ER model UML class diagram Třída Atribut Zapouzdření Metody Multiplicita Asociace Agregace Compozice Závislot Specializace/ Generalizace ER diagram EnOta Atribut N/A N/A (možnost nahradit databázovými metodami a triggery) Kardianlita; muloplicita musí být zjednodušena (? zastupuje libovolné přirozené číslo kromě 1 či 0) 1 - > 1? > n (omezení NOT NULL) * - > n 0..? - > n?..? > n Vztah Agregace je transformována jako asociace se ztrátou informace je součásm Jako agregace; enota kompozitní třídy musí obsahovat cizí klíč N/A N/A

UML Class diagram - XSD UML Class diagram Třída Atribut Jednoduchý atribut Multiplicita Generalizace / SpeciPikace Asociace Agregace/ Kompozice XSD Complex type Element / sequence type / complex content / complex type Element / a ribute / simple content / simple type Minimal occurrence / maximal occurrence Extension Group Extension / Group / Group a ribute

XSD UML Class Diagram 1/2 XSD Complex type Sequence UML Class Diagram Třída / Atribut N/A All MulOplicita 1 Choice MulOplicita 0..* Occurrence MulOplicita?..? Element Attribute Simple content Complex content Extension Atribut / Třída Atribut Atribut Atribut Generalizace / Specializace

XSD UML Class Diagram 2/2 XSD Group Attribute group Element any Element anyattribute Substitution UML Class Diagram Agregace / Kompozice / Asociace / Generalizace Agregace / Kompozice N/A N/A N/A (alternaova závislost / asociace / generalizace)

Pokračování Vytvoření základních transformačních pravidel pro prostředky sémanockého webu, zejména pak pro konstrukce OWL 2.0

Děkuji za pozornost Dotazy?