12. Postrelační databázové systémy

Podobné dokumenty
12. Postrelační databázové systémy

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

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura

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

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

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

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

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

J. Zendulka: Databázové systémy - 1 Úvod Intuitivní vymezení pojmu databáze

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

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

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

Jazyk PL/SQL Úvod, blok

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

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

Objektově orientované databáze. Miroslav Beneš

Oracle XML DB. Tomáš Nykodým

Databázové a informační systémy

RELAČNÍ DATABÁZE. Cíl:

Tvorba informačních systémů

Databázové systémy úvod

5. Formalizace návrhu databáze

2 Konceptuální modelování a návrh databáze

Ukládání a vyhledávání XML dat

Objektové a objektově relační databázové stroje. J. Pokorný M. Valenta

2 Konceptuální modelování a návrh databáze

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

Objektově relační model

Maturitní otázky z předmětu PROGRAMOVÁNÍ

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

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Základy objektové orientace I. Únor 2010

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

Michal Krátký, Miroslav Beneš

Databázové a informační systémy Jana Šarmanová

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Objektově relační databáze

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Databázové systémy trocha teorie

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

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

Abstraktní datové typy Objektový přístup v Oracle

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

Object Query Language. Daniel Fromek Miroslav Novotný

OQL. (Object Query Language) Michal Bartoš Filip Bureš

Vysoká škola ekonomická v Praze

Databázové systémy úvod

5. Formalizace návrhu databáze

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

Databázové systémy úvod

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Databáze v MS ACCESS

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

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

Úvod do GIS. Atributy a jejich vztah k prostoru. Pouze podkladová prezentace k přednáškám, nejedná se o studijní materiál pro samostatné studium.

Úvod do databázový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ů

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

OQL. Jakub Kýpeť, Ondřej Heřmánek

7.3 Diagramy tříd - základy

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

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

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

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

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

7.5 Diagram tříd pokročilé techniky

Tvorba informačních systémů

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Datové modelování II

Použití databází na Webu

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

4. lekce Přístup k databázi z vyššího programovacího jazyka

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

DATABÁZOVÉ SYSTÉMY. Vladimíra Zádová, KIN, EF TUL - DBS

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

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

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

Západočeská univerzita FAKULTA APLIKOVANÝCH VĚD

InterSystems Caché Post-Relational Database

7.5 Diagram tříd pokročilé techniky

9. Transakční zpracování

Operátory ROLLUP a CUBE

UNIVERZITA PARDUBICE

Architektura softwarových systémů

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

OO a OR databáze. Jaroslav Pokorný MFF UK, Praha

6. Fyzická (interní) úroveň databázového systému

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

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Transkript:

12. Postrelační databázové systémy 12.1. Nové oblasti aplikací databázových technologií... 2 12.2. Objektově-orientované databáze... 5 12.3. Objektově-relační databáze... 12 12.4. Další typy databází a SŘBD a trendy rozvoje DB technologie 17 Literatura... 18 J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 1 - relační DBS ( klasické ) typická oblast aplikací: mnoho uživatelů s jednoduchými daty (skalární hodnoty atributů, krátké záznamy, typicky pevné délky,,) a manipulacemi, Adresa jako atomický typ (znakový řetězec) vs. adresa jako struktura, resp. objekt. - nové oblasti aplikací - CAD, CASE, multimediální databáze, informační systémy úřadů (OIS), datové sklady, XML,... omezení relačních systémů nevyhovuje. 12.1. Nové oblasti aplikací databázových technologií Návrhové DB (CAD, CASE) - složité objekty, užitečnost rozlišování typu objektu a samotného objektu s jednoznačnou identifikací, vzájemné odkazy pomocí této identifikace, hierarchie objektů - vztahy A_PART_OF složené objekty - relativně malý počet výskytů objektů daného typu - správa vývoje (verze objektů) J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 2

Multimediální DB - text, grafika, číslicově zpracovaný obraz a zvuk Informační systémy úřadů (Office Information Systems) - dokumenty různých typů, vzájemná provázanost objektů, toky dokumentů, plánovací kalendáře apod. Datové sklady - vícerozměrný pohled na data, speciální operace (OLAP Online Analytic Processing). XML (Extendable Markup Language) - Standard pro výměnu strukturovaných dat v podobě tzv. XML dokumentu, model dokumentu je výrazně odlišný od relačního modelu dat. Hlavní požadavky nových aplikačních oblastí - možnost používání složitých datových typů - možnost využití výhod objektové orientace Podpora relačních SŘBD (SQL-92 a PSM) - datový typ BIT VARYING,CHAR VARYING,... (typy BLOB) - uložené procedury J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 3 Řešení - přímé využití služeb správy souborů - mapování na relační SŘBD - rozšíření OO programovacích jazyků o správu perzistentních objektů - objektově-orientované SŘBD (OOSŘBD) - rozšíření relačních SŘBD o složité typy a OO rysy - objektově-relační SŘBD (ORSŘBD) - další podpora relačních SŘBD (pro datové sklady, multimédia, XML apod.) - specializované SŘBD a databáze J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 4

12.2. Objektově-orientované databáze Objektově-orientovaný datový model Struktura objektu - atributy nejen nabývající skalárních hodnot - operace (zprávy) - metody Třídy objektů Dědičnost - hierarchie dědičnosti Polymorfismus Identita objektu Složené objekty - hierarchie zahrnutí (containment) Perzistentní OO programovací jazyky a OOSŘBD Varianty rozšíření jazyků o podporu perzistence a funkcí SŘBD - knihovny pro podporu perzistence - integrace prostředků do jazyka J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 5 Způsoby řešení perzistence Perzistence na úrovni třídy - deklarace třídy jako perzistentní, zpravidla SŘBD chápe jako schopné perzistence Perzistence při vytvoření objektu - při vytvoření objektu se řekne, zda je objekt perzistentní nebo ne Perzistence označením - objekt je vytvořen jako přechodný (transient), ale později může být explicitně označen jako perzistentní Perzistence dosažitelností - několik objektů je deklarovaných jako (kořenové) perzistentní objekty a všechny další objekty přímo čí nepřímo odkazované z těchto objektů jsou také perzistentní Uložení perzistentních objektů - definice tříd v katalogu, objekty (hodnoty atributů) v databázi, metody často v obyčejných souborech J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 6

Přístup k perzistentním objektům Pojmenováním objektů - vhodné jen pro malý počet objektů Podle OID Uložením do kolekcí a průchodem kolekcí - zpravidla podpora několika typů kolekcí (jsou také objekty s operacemi) množina, multimnožina, seznam apod. - extent třídy kolekce všech objektů dané třídy s automatickým vkládáním/vyřazením při vytvoření/zrušení objektu dané třídy. To umožňuje pracovat se třídami podobně jako relacemi (objekt odpovídá n-tici relace). - obvykle podpora všech tří způsobů přístupu (pojmenované zpravidla jen extenty), v extentech zpravidla jen persistentní objekty. GemStone, Jasmine, O2, ODE, Objectivity, ObjectStore,... - manipulačním jazykem zpravidla C++ nebo Smalltalk, navigační programování, případně i podpora pro deklarativní dotazování (např. OSQL v O2, resp. OQL (viz dále)) J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 7 Standard ODMG-93 (verze 1.0 v roce 1993, 3.0 v roce 2000) - V roce 1991 vznikla skupina ODMG (Object Database Management Group) zahrnující přední společnosti dodávající či vyvíjející OO databázové produkty. Cílem byla snaha o standardizaci v oblasti OO databázových jazyků (viz http://www.odmg.org/). Zahrnuje Objektový model dat (neformální definice) Jazyk ODL (Object Definition Language) pro definici objektového schématu Deklarativní dotazovací jazyk OQL (Object Query Language) Vazbu OOSŘBD na C++ (jak implementovat ODL a OQL v prostředí C++, jak psát přenositelné programy pro manipulaci s perzistentními objekty v C++ - tzv. C++OML(Object Manipulation Language)) Vazbu OOSŘBD na Smalltalk Vazbu OOSŘBD na jazyk Java J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 8

* Předmět 1 sestává_z * Modul má_prerekvizitu * je_prerekvizitou popis v ODL: interface Predmet // vlastnosti typu (třídy): ( extent Predmety keys cislo) // vlastnosti instance (objektu): { attribute String nazev; attribute String cislo; relationship List <Modul> sestava_z_modulu inverse Modul::je_modulem{order_by Modul::cislo}; relationship Set <Predmet> ma_prerekvizity J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 9 inverse Predmet::je_prerekvizitou; relationship Set <Predmet> je_prerekvizitou inverse Predmet::ma_prerekvizity; // operace instance: void nabíika (in Integer semestr) raises (jiz_nabizeny); void zruseni (in Integer semestr) raises (nenabizeny); } popis v C++ ODL: class Predmet: public Persistent_Object { // vlastnosti typu: static Ref<Set><Ref<Predmet>>> Predmety // vlastnosti instance: String nazev; String cislo; List <Ref<Modul>> sestava_z_modulu inverse Modul::je_modulem; Set <Ref<Predmet>> ma_prerekvizity inverse Predmet::je_prerekvizitou;... } J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 10

- manipulace - C++ s využitím knihoven zabudovaných tříd - dotazovací jazyk (OQL) umožňuje definovat pojmenovaný dotaz q jako hodnotu výrazu e [define q as] e Najdi předmět s názvem Databázové systémy. define dsi as select x from x in Predmety where x.nazev="databázové systémy" Jaké prerekvizity (název předmětu, číslo předmětu) má předmět s názvem Databázové systémy. define prerekv_dsi as select struct(nazev: y.nazev, cislo: y.cislo) from x in Predmety, y in x.ma_prerekvizity where x.nazev = "Databázové systémy" J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 11 12.3. Objektově-relační databáze - podpora nenormalizovaných (které nejsou v 1NF) relací, rozšíření relačního modelu o bohatší typový systém a OO rysy - řada těchto rysů zahrnuta v SQL-99 a podporována předními výrobci relačních systémů (např. Oracle od verze Oracle 8) Zanořené relace (nested relations) - domény atributů mohou obsahovat buď atomické (skalární) nebo relační (zanořené relace) hodnoty Titul (nazev, seznam_autoru, vydavatel, rok_vydani, klicova_slova) Složité datové typy Kolekce - množiny, multimnožiny, pole - v SQL-99 jen pole seznam_autoru VARCHAR(20) ARRAY[10] J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 12

Rozsáhlé objekty (LOB Large OBjects) - CLOB rozsáhlá znaková data, BLOB rozsáhlá binární data foto BLOB(1MB) - aplikace pracující s rozsáhlým objektem obvykle obdrží jako výsledek SQL dotazu ne celý objekt, ale lokátor pro manipulaci s objektem z hostitelského prostředí Uživatelem definované typy (UDT) - jednoduché nebo strukturované (objektové u Oracle) CREATE TYPE TVydavatel AS ( nazev VARCHAR(20), pobocka VARCHAR(20)) CREATE TYPE TTitul AS ( nazev VARCHAR(20), autori VARCHAR(20) ARRAY[10], rok_vydani INTEGER, vydavatel TVydavstel, klicova_slova VARCHAR(30) ARRAY[5]) CREATE TABLE Titul OF Ttitul /* objektová (Oracle) */ J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 13 - UDT může mít metody CREATE TYPE TZamestnanec AS (...) METHOD zvysplat (procento FLOAT) CREATE METHOD zvysplat FOR TZamestnanec BEGIN SET SELF.plat = SELF.plat+(SELF.plat*procent)/100 END Konstruktor - funkce se stejným jménem jako UDT Dědičnost - na úrovni typů nebo tabulek (viz generalizace/specializace) - pouze jednoduchá dědičnost a nepřekrývající se podtypy CREATE TYPE TOsoba AS (...) CREATE TYPE TStudent UNDER TOsoba AS (...) CREATE TABLE Osoba OF TOsoba CREATE TABLE Student OF TStudent J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 14

Typ reference (REF) - lze vytvářet explicitní reference řádků tabulek, stejně jako u objektových databází, tj. nejen použitím cizích klíčů CREATE TYPE TPredmet AS ( zkratka CHAR(3), nazev VARCHAR(20), garant REF(TOsoba) SCOPE Osoba) CREATE TABLE Predmet OF TPredmet - reference je omezená (v našem případě na řádky tabulky Osoba) - podle SQL-99 musí mít každá tabulka, na kterou se odkazujeme prostřednictvím typu REF, atribut s identifikátorem řádku, tzv. sebeodkazující (self-referential) atribut CREATE TABLE Osoba OF TOsoba REF IS oid SYSTEM GENERATED - identifikátor může být generovaný systémem, uživatelem nebo odvozený z primárního klíče J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 15 Procedury a funkce - tělo procedur, funkcí a metod může být definováno pomocí procedurálních komponent SQL-99 nebo externě použitím nějakého programovacího jazyka, jako je Java, C nebo C++, případně specializovaného procedurálního jazyka (např. PL/SQL u Oracle) - procedurální konstrukty SQL-99 dávají SQL vyjadřovací sílu srovnatelnou s programovacími jazyky - vychází z SQL-92/PSM - příkazy cyklu WHILE, REPEAT, FOR, IF-THEN-ELSE, přiřazení SET, signalizace výjimečných stavů a zpracování výjimek apod. Použití příkazu cyklu FOR pro zpracování výsledku dotazu DECLARE n INTEGR DEFAULT 0; FOR a AS /* implicitní deklarace kurzoru */ SELECT stav FROM Ucet WHERE pobocka = Jánská DO SET n = n + r.stav END FOR J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 16

12.4. Další typy databází a SŘBD a trendy rozvoje DB technologie Logicky orientovaný model - deduktivní databáze (DATALOG) Modelování prostorových dat - prostorové databáze, GIS Podpora modelování času - temporální databáze (TSQL) Podpora aktivity databází - aktivní databáze Multimediální databáze - podobnostní vyhledávání, efektivní vyhledávání XML databáze efektivní ukládání dokumentů a vyhledávání Systémy na podporu rozhodování - OLAP, datové sklady, získávání znalostí z databází Integrace a interoperabilita informačních systémů Přístup k databázím z WWW, Web jako databáze J. Z endulka: Databázové systémy 12 Postrelační databázové systémy 17 Literatura 1. Silberschatz, A., Korth H.F, Sudarshan, S.:Database System Concepts. Fourth Edition. McGRAW-HILL. 2001, str. 307 360. 2. Pokorný, J.: Databazová abeceda. Science, Veletiny, 1998, str. 39 42, 49 52, 109 118. J. Zendulka: Databázové systémy 12 Postrelační databázové systémy 18