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

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

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

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

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

NĚKOLIK POZNÁMEK K FORMÁLNÍM TECHNIKÁM NÁVRHU OBJEKTOVÝCH DATABÁZÍ COMMENTS TOWARDS THE FORMAL TECHNIQUES OF THE OBJECT DATABASE DESIGN

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á

Tvorba informačních systémů

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

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

MODELOVÁNÍ ZNALOSTNÍCH BÁZI DAT POMOCI NÁSTROJE CRAFT.CASE KNOWLEDGE DATABASE MODELING WITH THE TOOL CRAFT.CASE. Vojtěch Merunka

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

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

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

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

Informační systémy ve zdravotnictví. 6. cvičení

Česká zemědělská univerzita v Praze. Provozně ekonomická fakulta. Katedra informačních technologií

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

NÁSTROJE PRO DATOVÉ MODELOVÁNÍ

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

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

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

6. blok část C Množinové operátory

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

OBJEKTOVÝ PŘÍSTUP V DATABÁZOVÉ TECHNOLOGII

DBS Konceptuální modelování

Okruhy z odborných předmětů

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

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

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3bph)

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

Tvorba informačních systémů

Tvorba informačních systémů

4IT218 Databáze. 4IT218 Databáze

Results of innovation of the course Application software

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

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

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

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

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

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

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

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Operátory ROLLUP a CUBE

Dotazovací jazyky I. Datová krychle. Soběslav Benda

KIV/ZIS cvičení 5. Tomáš Potužák

Databázové systémy úvod

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

ROZVOJ ICT A PDA ZAŘÍZENÍ THE DEVELOPMENT OF ICT AND PDA DEVICES Jiří Vaněk

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Kolaborativní aplikace

SOUVISLOSTI PROBLEMATIKY SYSTÉMOVÉHO MODELOVÁNÍ A TVORBY INFORMAČNÍCH SYSTÉMŮ RELATIONS BETWEEN SYSTEM MODELLING AND INFORMATION SYSTEM DEVELOPMENT

ZÁZNAM PROCESU TVORBY INFORMAČNÍHO SYSTÉMU CAPTURING OF AN INFORMATION SYSTEM DEVELOPMENT

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

Diagram nebo text? Miroslav Benešovský, BenSoft s.r.o

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 Cvičení 5.3

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

6. blok část B Vnořené dotazy

Objektově orientovaný informační systém pro právo

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

KRITIKA NĚKTERÝCH VÝKLADŮ OBJEKTOVĚ ORIENTOVANÉHO PARADIGMATU

Nerelační databázové modely. Helena Palovská

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

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

Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky

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

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

Obsah. Zpracoval:

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

Architektura softwarových systémů

Databáze SQL SELECT. David Hoksza

Databázové systémy úvod

Databázové systémy úvod

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

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

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

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

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

Dotazování v relačním modelu a SQL

DELPHI - NÁSTROJ PRO VÝUKU INFORMAČNÍCH SYSTÉMŮ?

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

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

Základní informace o co se jedná a k čemu to slouží

MBI - technologická realizace modelu

PODPORA VÝUKY MATEMATIKY E-LEARNINGOVÝMI KURZY S MULTIMEDIÁLNÍMI STUDIJNÍMI

Geografické informační systémy p. 1

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

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

UML. Unified Modeling Language. Součásti UML

SYLABUS MODUL BUSINESS MODELOVÁNÍ. Doc. RNDr. Vladimír Krajčík, Ph.D.

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

Formální konceptuální analýza

DATOVÉ MODELOVÁNÍ A TYPOVÁNÍ

ZÁSADY KONCEPTUÁLNÍHO TOTÁLNĚ OBJEKTOVĚ ORIENTOVANÉHO MODELOVÁNÍ

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

Relace x vztah (relationship)

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

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

Transkript:

POROVNÁNÍ RELAČNÍHO A OBJEKTOVÉHO DATOVÉHO MODELU V KONSTRUKCI DATABÁZOVÝCH SYSTÉMŮ COMPARISON OF THE RELATIONAL AND OBJECT-ORIENTED DATA MODEL FOR DATABASE SYSTEMS DEVELOPMENT Tomáš Doskočil, Vojtěch Merunka Anotace Článek na praktickém příkladě databáze ekonomických subjektů porovná vlastnosti relačního a objektového datového modelu ve dvou implementačních prostředích databázových systémů Oracle a Gemstone. Summary The paper will compare features of the relational and object-oriented data model using a practical example of economical subjects in two implementation environments of database systems Oracle and Gemstone. Key words relational and object-oriented data model, database system, Oracle, Gemstone Klíčová slova relační a objektový datový model, databázový systém, Oracle, Gemstone Úvod O objektových databázích a objektově orientovaném přístupu při návrhu informačních systémů se v poslední době mnoho mluví. Ve školách se ale praktické práci s objektovou technologií nevěnuje dostatečná pozornost. Proto jsme se rozhodli naše zkušenosti předat prostřednictvím tohoto článku. Cíl a metodika Cílem je pomocí praktického příkladu databáze ekonomických subjektů demonstrovat rozdíly mezi relačním a objektovým přístupem k modelování databázových systémů. Tyto odlišnosti budou ukázány ve dvou konkrétních prostředích velkých databázových systémů, a to Oracle 9i Server a Gemstone 6.0. for Smalltalk Server. Jedná se o systémy, které byly v letošním školním roce prakticky používány ve výuce. Téma příspěvku je také v souladu s výzkumným záměrem, jehož předmětem je aplikovaný výzkum v oblasti informačního managementu a využití moderních softwarových technologií. Závěry práce a přínosy z očekávané diskuse budou použity k inovaci vyučovaných odborných informatických předmětů v následném školním roce. Podkladem pro sepsání tohoto článku byla především několikaletá zkušenost s výukou předmětu Databázové systémy II. ve 3. ročníku oboru Informatika naší fakulty a práce na již jmenovaném výzkumném záměru.

V článku bude postupováno následujícím způsobem:. Nejprve bude nalezena jednoduchá, ale dostatečně strukturálně bohatá úloha včetně modelových dat. 2. Pro tuto úlohu bude sestaven její konceptuální model podle standardu UML. 3. Poté bude tato stejná úloha naprogramována ve dvou různých implementačních databázových prostředích. Tj. jako relační databáze v Oracle a objektová databáze v Gemstone. 4. Budou vzájemně porovnány oba rozdílné přístupy k implementaci. 5. Obě dvě aplikace budou naplněna stejnými daty. 6. Obě aplikace budou porovnávány pomocí odlišností v implementaci stejných dotazů do obou prostředí. Výsledky popis řešené úlohy Pro názornou demonstraci jsme si zvolili následující jednoduchou databázovou úlohu. Mějme databázi ů, u kterých budeme sledovat kontrakty. Nechť platí, že každému jednomu kontraktu přísluší jeden, ale jeden může mít více kontraktů. Klienti budou dvojího typu: jednotlivé osoby a firmy. U každého kontraktu budeme sledovat následující atributy: číslo, datum a popis. Každá osoba bude mít atributy: jméno, příjmení, adresu (město a ulici) trvalého bydliště, datum narození a věk. Každá firma bude mít atributy název, adresu, a také ředitele a zaměstance, což budou osoby shodného typu jako někteří i. Schéma si lze znázornit na obrázku č. : Osoba jméno (křestní, příjmení) adresa (mesto, ulice) datum narození věk.. * ředitel zaměstnanci Firma jméno adresa Kontrakt číslo datum popis obr. č.. - konceptuální schéma úlohy relační implementace V relačním prostředí jsou entity reálného světa zobrazovány relačními tabulkami. Proto v návrhu musí existovat tabulky pro osoby, firmy a kontrakty vyplývající přímo z konceptuálního schéma úlohy. Adresy osob i firem je možné uložit do jediné tabulky a odkazovat se na ně prostřednictvím vzdálených klíčů. Zobrazení ředitele lze realizovat pomocí vzdáleného klíče od firem na osoby. Pro zaměstnance je nutno vytvořit vazební tabulku mezi osobou a firmou. Vazba od osob ke kontraktům může být vytvořena prostřednictvím dvojice vazebních tabulek osoba-kontrakt a firma-kontrakt nebo tabulkou ů, která sjednocuje osoby i firmy a umožní vytvořit vazbu -kontrakt. V návrhu bude použito druhé řešení, které ve skutečnosti napodobuje způsob, kterým se pracuje v objektovém návrhu. Přesto povede zápis dotazu v obou případech shodně na použití klausule union all, protože v relačním schématu neexistuje polymorfismus.

adresa_ adresa mesto ulice cislo_domu adresa_ osoba krestni_jmeno prijmeni datum_narozeni reditel firma jmeno osoba_ zamestnanec firma kontrakt datum popis obr. č. 2. - relační implementace databáze objektová implementace Objektová implementace na rozdíl od relační dovoluje přímo zobrazit modelovanou realitu, aniž bychom museli úlohu nějak uměle strukturovat do soustavy provázaných tabulek. Na druhou stranu to je ale složitější proces, protože můžeme navrhovat nejen třídy objektů, které do značné míry odpovídají konceptu relační tabulky, ale také množiny objektů, které mohou obsahovat jako prvky objekty z různých tříd. Kromě toho budeme také objekty mezi sebou skládat - například objekt Kontrakt může přímo obsahovat jako svoji datovou složku objekt Klient - tedy ne, že by obsahoval hodnotu nějakého primárního klíče odkazujícího se do množiny Klientů, ale přímé skládání dat. Dále můžeme některé atributy implementovat jako metody, které svoji hodnotu vypočítají. Věk osoby bude počítán z jejího data narození a nebude třeba do databáze někam ukládat jeho číselnou hodnotu. Rovněž tak jméno osoby bude poskytovat metoda, která jej složí z hodnot křestního jména a příjmení. Jeden z možných výsledných návrhů ukazuje obrázek č. 3. Diagram dodržuje standard UML, ale navíc je zde zaveden symbol pro množinu objektů (šestihran) rozlišený od symbolu pro třídu objektů (obdélník). Ke třídám budou ještě zavedena množiny všech instancí s názvy Osoby, Firmy, Kontrakty a dále také množina Klienti obsahující objekty z obou tříd Osoba i Firma. Osoba krestnijmeno prijmeni datumnarozeni vek jmeno.. * Adresa mesto ulice cislodomu reditel zamestanci Firma jméno Osoby Firmy Kontrakt cislo datum popis Kontrakty Klienti obr. č. 3. - objektová implementace databáze

dotazy nad implementovanými databázemi K porovnání zápisu dotazů poslouží následující dotazy: najdi kontrakty firem nad 25 zaměstnanců, najdi zákazníky z Prahy, najdi firmy jejichž ředitel se jmenuje Novák, najdi firmy, jejichž nějaký zaměstnanec se jmenuje Novák, najdi y starší 50 let. Nyní si rozdílnost obou implementací porovnejme v následující tabulce č. : dotaz v SQL v relační databázi dotaz v Gemstone Smalltalku v objektové databázi. Najdi kontrakty firem majících více než 25 zaměstanců select kon.* Kontrakty select: {:k k..zamestanci.size > 25}. from kontrakt kon, firma f where kon._ = f._ and f. in (select firma_ from zamestnanec group by firma_ having count (firma_)>25) 2. Najdi y (osoby i firmy) z Prahy select kli.*, f.jmeno name Klienti select: {:k k.adresa.mesto = 'Praha'}. from kli, firma f, adresa a where kli. = f._ and a. = f.adresa_ and a.mesto = 'praha' union all select kli.*, o.prijmeni name from kli, osoba o, adresa a where kli. = o._ and a. = o.adresa_ and a.mesto = 'praha' 3. Najdi firmy, jejichž ředitel se jmenuje Novák. select f.* Firmy select: {:f f.reditel.prijmeni = 'Novak'}. from firma f, osoba o where f.reditel = o. and o.prijmeni = 'novak' 4. Najdi firmy, jejichž nějaký zaměstnanec se jmenuje Novák. select distinct f.* Firmy select: {:f f.zamestanci.*.prijmeni = 'Novak'}. from firma f, zamestnanec z, osoba o where z.firma_ = f. and z.osoba_ = o. and o.prijmeni = 'novak' 5. Najdi y (jen osoby) starší 50 let. select * Osoby select: {:o o.vek > 50}. from osoba where _ is not null and sysdate-datum_narozeni>(50*365.25) tab. č.. - porovnání dotazů

Jak názorně vyplývá ze zápisu dotazů, tak přednosti objektového datového modelu kromě kratšího a přehlednějšího zápisu jsou: a) Díky skládání objektů nemusíme používat operaci relačního spojení pomocí klíčů (dotazy., 2., 3. a 4.). b) Díky polymorfismu objektů, který dovoluje držet všechny y v jedné množině, nemusíme v dotazech rozlišovat, s jakým typem objektů pracujeme. (dotaz č. 2.) c) Díky implementaci atributů pomocí metod přirozenější dotazování (dotaz č. 5. na věk a dotaz č.. na velikost podmnožiny). Diskuse Na základě posouzení rozdílů datového modelu relační databáze a objektové databáze bylo prokázáno, že nelze jednoduše konvertovat relační databázi do objektového prostředí. Při takovém převodu se nemohou projevit přínosy objektového paradigmatu. Výhodné vlastnosti objektové databázové aplikace, kterou ocení její uživatelé, jsou totiž vyváženy potřebou specifických znalostí nezbytných ke tvorbě takové aplikace. Problematika konverze relačních databází a relačních datových modelů do objektových není zatím příliš prozkoumána. V praxi se používá přístup, kdy je databáze navržena celá znovu. To je jedna z oblastí výzkumu, které se budeme na katedře rozhodně dále věnovat. Závěry Problematika objektových databází je složitá a její pochopení nezbytně vyžaduje praktické zkušenosti s nástrojem. Je samozřejmě třeba mít čistě objektově orientovanou databázi a ne hybrní databázi, které jsou často označovány jako objektově relační. Je tomu tak proto, že u takových systémů zůstává základním médiem provázaná soustava relačních tabulek pomocí klíčů a objektové paradigma je tu omezeno jen na vybrané datové typy uvnitř tabulek. Velkým problémem je tu také cena a dostupnost objektových nástrojů, protože jejich dodavatelé na rozdíl například od firmy Oracle téměř vůbec neposkytují zvýhodněné speciální licence pro účely výuky a výzkumu na univerzitách. Z obou uvedených důvodů není snadné na vysokých školách zavádět prakticky orientovanou výuku objektových databázových technologií. Objektové paradigma má blíže k uvažování člověka než relační. Objektový návrh přirozeněji popisuje svůj vzor v realitě a umožní lépe pochopit a zpracovat modelovaný problém. Na výuce na vysokých školách má podle nás přes všechny problémy nezastupitelnou úlohu, protože právě zde vzniká nová generace budoucích kvalifikovaných tvůrců softwaru absolventů informatických oborů. Literatura [] Abadi M., Cardelli L.: A Theory of Objects, Springer 996, ISBN 0-387-94775-2 [2] Ambler, Scott W.: More Process Patterns - Delivering Large-Scale Systems Using OO Technology, Cambrge University Press - Managing Object Technology Series 999, ISBN 0-52-65262-6 [3] Ambler, Scott W.: Process Patterns - Buing Large-Scale Systems Using OO Technology, Cambrge University Press - Managing Object Technology Series 998, ISBN 0-52-64568-9 Pozorný čtenář jistě zaregistroval, že zde uvedená objektová implementace nepoužívá žádné primární klíče. To, že nemusíme používat primární klíče, pokud je nepotřebujeme, je také jeden z důležitých rysů čistě objektových databází.

[4] Blaha M., Premerlani W.: Object Oriented Modeling and Design for Database Applications, Prentice Hall 998, ISBN 0-3-23829-9 [5] Catell R.G.G. et al.: The Object Database Standard ODMG2.0, Morgan Kaufman 997, ISBN -55860-463-4 [6] Date C.J., An Introduction to Database Systems (6th Edition), 995, Addison-Wesley, ISBN: 0-20-82458-2 [7] Kroha P.: Objects and Databases, McGraw Hill 993 ISBN 0-07-707790-3 [8] Merunka V., Polák J., Carda A.: Umění systémového návrhu, Grada 2003, ISBN 80-247-0424-2 [9] Taylor, Dav A.: Business Engineering with Object Technology, John Wiley 995 ISBN: 04704527 [0] Oracle Corporation [online]. [cit. 2003-07-05]. Dostupný z www: < http://www.oracle.com >. [] GemStone Systems [online]. [cit. 2003-07-05]. Dostupný z www: < http://www.gemstone.com >. Adresa autorů: Tomáš Doskočil, Vojtěch Merunka, Katedra informačního inženýrství, email: {doskocil,merunka}@pef.czu.cz, PEF ČZU v Praze