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



Podobné dokumenty
Databáze I. Přednáška 7

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

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

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

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

Oracle XML DB. Tomáš Nykodým

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

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

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

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

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

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

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

Jazyk PL/SQL Úvod, blok

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

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

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

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

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

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

5. POČÍTAČOVÉ CVIČENÍ

DUM 12 téma: Příkazy pro tvorbu databáze

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

Střední průmyslová škola Zlín

Text úlohy. Systémový katalog (DICTIONARY):

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

POKROČILÉ POUŽITÍ DATABÁZÍ

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

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

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

S databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

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

Databázové systémy trocha teorie

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

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

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

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

Michal Krátký, Miroslav Beneš

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

Databázové systémy úvod

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Tvorba informačních systémů

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í

Databázové systémy. Cvičení 6: SQL

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

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

B Organizace databáze na fyzické úrovni u serveru Oracle

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

13. blok Práce s XML dokumenty v databázi Oracle

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

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

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

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

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

Tvorba informačních systémů

Databáze I. 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ů

Základy relačních databází, jejich využití v programování webu

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

Objektově orientované databáze. Miroslav Beneš

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

Návrh a tvorba WWW stránek 1/14. PHP a databáze

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

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Tvorba informačních systémů

Transformace konceptuálního modelu na relační

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

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

12. blok Pokročilé konstrukce SQL dotazů - část II

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

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

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:

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

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

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

Databáze. Logický model DB. David Hoksza

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

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

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

DBS Transformace konceptuálního schématu na

Hierarchický databázový model

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Základy objektové orientace I. Únor 2010

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

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

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

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

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

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

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

30. března Je možné dle analýzy implementovat systém tak, aby splňoval požadavky zadavatele?

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

Transkript:

Objektově relační databáze a ORACLE 8 Ludmila Kalužová VŠB - TU Ostrava, Ekonomická fakulta, Katedra informatiky v ekonomice, Sokolská 33, 701 21 Ostrava 1 Abstrakt V současné době existuje velký počet fungujících aplikací relačního typu. Zároveň však jsou známy i nedostatky relačního konceptu, které mají za následek hledání dokonalejší formy mapování objektivní reality. Jedno z možných řešení je objektová orientace databázových systému cestou rozšíření relační koncepce. Objektově relační přístup umožňuje verze 8 databázového systému firmy ORACLE. Prvky objektového rozšíření jsou stručně specifikovány v příspěvku. 1. ÚVOD Objektově relační databáze jsou v literatuře řazeny k třetí generaci databázových systémů. Tato generace zahrnuje systémy, které čerpají z objektově orientovaného přístupu (druhou generací se chápe čistě relační koncepce a první pak síťová a hierarchická koncepce). Požadavky na objektově relační databáze byly specifikovány již v roce 1990 Manifestem třetí generace databázového systému, který prezentovala skupina odborníků v databázové oblasti a dále tyto požadavky konkretizoval M. Stonebraker v roce 1996. Hlavní rysy objektové orientace databázových systémů jsou zde prezentovány spíše cestou rozšíření stávající relační koncepce, než její úplnou náhradou. Jedná se o: zajištění kompatibility s existujícími relačními databázemi ponechání jazyka SQL volitelně primární klíče existenci pohledů mechanizmus tvorby relací. Dále se doporučuje vypustit z datového modelu jakékoliv fyzické charakteristiky konkrétního systému řízení báze dat, což vlastně podporuje normu ANSI SPARC z roku 1973. Konečně navrhuje převzít progresivní prvky z objektově orientovaného přístupu, kterými jsou komplexní datové typy, dědičnost objektů, zapouzdření objektů a akceptace funkcí, perzistentní programovací jazyk. 117

Firma Oracle Corp., která je vedoucím světovým výrobcem databázového softwaru, se svou verzí 8 (uvedenou na trh v roce 1997) orientovala na rozšíření jazyka SQL o objektově orientované prvky. V následující kapitole jsou analyzovány prvky objektového rozšíření databázového systému ORACLE 8. 2. OBJEKTOVĚ RELAČNÍ DATABÁZOVÝ SYSTÉM ORACLE 8 Jádrem databázového systému Oracle 8 zůstává relační databáze, verze 8 tedy zachovává kontinuitu směrem k předchozím verzím. Navíc jsou implementovány některé rysy objektově orientované koncepce, což dává systému charakter objektově relačního SŘBD. K prvkům objektového rozšíření patří: abstraktní datové typy Abstraktní datový typ je tvořen jedním nebo několika atomickými typy. V relační tabulce je možné definovat sloupec, který používá definovaný abstraktní datový typ reprezentující několik atributů. Tento datový typ lze použít v deklaraci jiných tabulek. Příkladem může být definice datového typu adresa, která je složena z atributů směrovací číslo, město, ulice, číslo domu: CREATE TYPE adresa_ty AS OBJECT (psc VARCHAR2(5), mesto VARCHAR2(20), ulice VARCHAR2(25), cislo NUMBER(5)); Uvedený datový typ lze použít například při deklaraci tabulky osoba: CREATE TABLE osoba (idcislo VARCHAR2(5), prijmeni VARCHAR2(25), jmeno VARCHAR2(15), adresa adresa_ty); Systém pak vytváří metody pro řízení dat, což jsou programy pojmenované podle datového typu Při výběru konkrétního atributu abstraktního datového typu je třeba provést jeho kvalifikaci jménem sloupce tabulky: SELECT adresa.psc FROM osoba WHERE jmeno = KOVÁŘ ; Abstraktní datové typy lze použít k definování objektových tabulek. Více tabulek může sdílet stejný typ, typy mohou být hierarchicky řazeny, tedy daný typ se může odkazovat 118

na jiný typ. To má samozřejmě dopad na proces analýzy datových struktur, neboť abstraktní datové typy je třeba identifikovat jako takové a pak určit struktury, v nichž budou tyto typy vnořeny. K abstraktním datovým typům mohou být dále definovány příslušné metody určující chování dat vážících se k typu. kolekce Kolekcemi se zde rozumí proměnná pole a vnořené tabulky. Vnořená tabulka je vyjádřena jako sloupec jiné (hlavní) tabulky. Ke každému řádku hlavní tabulky může existovat více řádků vnořené tabulky. Takto je možné mapovat vztah kardinality 1:N. Základem pro vnořenou tabulku je definovaný datový typ. Například vnořenou může být tabulka položky do hlavní tabulky objednávka: CREATE TYPE polozka_ty AS OBJECT (idzbozi VARCHAR2(6), mnozstvi NUMBER, smlcena NUMBER); CREATE TYPE polozky_nt AS TABLE OF polozka_ty; CREATE TABLE objednavka (cislo NUMBER(6), datum DATE, polozky polozky_nt) NESTED TABLE polozky STORE AS polozky_nt_tab; V hlavní tabulce objednavka je pak tento typ přiřazen sloupci polozky. Definice hlavní tabulky dále musí specifikovat jméno vnořené tabulky, do níž se příslušná data uloží (polozky_nt_tab). Důsledkem pro uživatele je možnost realizace výběrů bez použití operace spojení s využitím funkce THE : SELECT prehled.idzbozi, prehled.mnozstvi FROM THE(SELECT polozky FROM objednavka WHERE cislo = 111) prehled; Aplikace vnořených tabulek v konkrétním datovém modelu je součástí analytické úvahy. Se vnořenou tabulkou nelze pracovat samostatně, tvoří nedílný celek s hlavní tabulkou. Jejich totální uplatnění může způsobit jednak podstatné zhoršení výkonové charakteristiky databáze, jednak zkomplexnění struktury databáze prakticky znemožňující její pružnou aktualizaci (jde o vícenásobné vnoření struktury sloužící různým aplikacím). Proměnné pole je množinou atributů stejného datového typu. Specifikuje se jako abstraktní datový typ s jedním atributem definovaným jako proměnné pole o maximálním počtu opakování. V tabulce se uvádí tento abstraktní datový typ jako jeden 119

sloupec. Například v tabulce firma bude vložen sloupec telefon s datovým typem proměnné pole: CREATE TYPE telefony_va AS VARRAY(7) OF VARCHAR2(10); CREATE TABLE firma (ico VARCHAR2(9), telefony telefony_va,...); Takto každý řádek tabulky obsahuje ve sloupci telefony opakující se hodnoty údaje. Pro vkládání dat do sloupce tohoto typu systém řízení báze dat vytváří příslušné metody. Nelze však specifikovat dotaz na prvky pole pomocí SELECTu, je nutno použít jazyka PL/SQL s příkazem cyklu. Výběry dat z proměnných polí nejsou tedy triviální. Samotná firma Oracle Corp. dále upozorňuje na zhoršení výkonových charakteristik databázového systému při použití proměnných polí zejména u tabulek s velkým počtem řádků (kardinalitou). Každé proměnné pole má také určitý rozměr (maximální počet hodnot), který nemusí vyhovovat všem aplikacím využívajícím téhož pole. Pak je nutno buďto poli přiřadit nejvyšší rozměr ze všech aplikací, nebo definovat více proměnných polí. Obě možnosti mají své nevýhody, ať už v efektivnosti zpracování, nebo v opakovaném využití definovaných abstraktních datových typů. velké datové objekty Jedná se o možnost uložení velkého datového objektu (obvykle obrazové informace, zvukové sekvence, textu či prostorového obrazce) o rozsahu do 4 GB. Objekty mohou být jednoho ze čtyř typů: BLOB - binární objekt CLOB - znakový objekt BFILE - binární data uložená mimo databázi a zpracovatelná jen pro čtení NCLOB - sloupec typu CLOB podporující vícebytovou množinu znaků. S výjimkou objektů typu BFILE lze přistupovat i k částem těchto objektů pro výběr i aktualizaci. Manipulace s velkými datovými objekty může probíhat s využitím řady prostředků: OCI (Oracle Call Interface), API (Applications Programming Interfaces), DBMS_LOB využívající jazyka PL/SQL obohaceného o specifické funkce a procedury. odkazy V systému platí princip, že pro každý objekt je generován jedinečný identifikátor OID. Tabulka obsahující tyto objekty se v systému nazývá objektovou tabulkou. Namísto tradičního řešení vztahů v relačním datovém modelu pomocí primárních a cizích klíčů je pak použito odkazů, které jsou typickým rysem v systému při migraci relační aplikace s objektově relačním či objektovým přístupem. Objekty, na které směřují odkazy 120

z jiných objektů, se nazývají referenčními objekty. Jsou od odkazujících se objektů fyzicky odděleny. Odkazy jsou vlastně směrníky na řádky tabulky (= objekty). Objektová tabulka se vytvoří pomocí abstraktního datového typu: CREATE TYPE pracovnik_ty AS OBJECT (id_cis VARCHAR2(5), prijmeni VARCHAR2(25), jmeno VARCHAR2(15)); CREATE TABLE pracovnik OF pracovnik_ty; Odkaz na referenční objekt probíhá pomocí typového konstruktoru REF, přičemž může z daného typu objektu směřovat i více odkazů na různé typy nebo i na stejný typ objektu (to umožňuje řešit konceptuální situaci více různých vztahů mezi dvěmi entitami). Výše uvedený příklad objektové tabulky může být doplněn následujícím způsobem: CREATE TYPE katedra_ty AS OBJECT (cis_kat VARCHAR2(3), nazev VARCHAR2(25), vedouci REF pracovnik_ty); CREATE TABLE katedra of katedra_ty; Takto je definován odkaz směřující z objektové tabulky katedra do objektové tabulky pracovnik. Pokud z daného objektu existuje odkaz na více řádků téže tabulky, možným řešením je vytvoření vnořené tabulky odkazů. V tabulkách mohou existovat odkazy i na neexistující objekty. Pokud dojde k vypuštění řádku z tabulky, na nějž existují odkazy z jiné tabulky, odkaz na původní OID zůstává v platnosti. Je třeba však říct, že samotná existence a využívání primárních (kandidátních) klíčů není v protikladu s principem jedinečné identifikace objektů pomocí OID. Primární klíč obecně pro daný objekt (řádek) plní jednak funkci jednoznačné identifikace jednak funkci prostředku pro jednoznačné vyhledávání objektu (řádku) uživatelem. OID identifikátor plní první z těchto funkcí. Pokud však uživatel požaduje jednoznačnou specifikaci objektu za účelem výběru či aktualizace, musí se opřít o primární (kandidátní) klíč. Dá se tedy říci, že role primárního klíče je u objektově relačních systémů oslabena, nikoliv však zcela eliminována. 121

objektové pohledy Objektové pohledy dovolují použít objektové koncepty na již existující relační databázi, aniž by došlo ke změně stávajících aplikací. Jedná se o prostředky pro definování objektů na existujících relačních strukturách. metody Metoda je tvořena blokem příkazů jazyka PL/SQL sloužícím k definování přístupu k objektu. Systém Oracle ji stanovuje jako část specifikace abstraktního datového typu. Tělo metody se definuje v rámci příkazu CREATE TYPE BODY. Uživatel může používat metodu na datovém typu, pro který je definována. Metoda může být definována buďto jako funkce (vrací jednu hodnotu) nebo jako procedura (nevrací hodnotu). 3. ZÁVĚR Tyto nové prvky přinášejí změnu v přístupu návrhu datové základny, je třeba provést analýzu návrhu datových typů s cílem jejich použití ve více tabulkách. Rovněž k těmto typům lze specifikovat metody, které definují jejich chování. Z uvedených rysů vyplývají dvě skupiny inovací. Jedna je založena na rozšíření relačního mechanismu, druhá na objektovém návrhu s možností využití existujících relačních struktur. Praxe ukáže do jaké míry nebo ke které z variant se uživatel přikloní. LITERATURA [1] Stonebraker, M.: Object-Relational DBMSs, The Next Great Wave, Morgan Kaufmann Publ., Inc., San Francisco, 1996 [2] Simon, A. R.: Strategic Database Technology: Management for the Year 2000, Morgan Kaufmann Publishers, Inc., 1995 [3] Koch, G., Loney, K.: ORACLE 8, The Complete Reference, Osborne McGraw-Hill Comp., Berkeley, 1997 122