Obiektowe bazy danych wprowadzenie Nowe dziedziny zastosowań baz danych: komputerowe wspomaganie projektowania (ang. Computer Aided Design CAD), komputerowe wspomaganie wytwarzania (ang. Computer Aided Manufacturing CAM), systemy wspomagania inżynierii oprogramowania (ang. Computer Aided Software Engineering CASE), geograficzne systemy informacyjne (ang. Geographical Information Systems GIS), systemy komputerowego wspomagania prac zespołowych (ang. Computer Supported Cooperative Work CSCW), systemy multimedialne Wymagania nowych dziedzin zastosowań baz danych: Nowy model danych, umożliwiający modelowanie obiektów o złożonych strukturach i skomplikowanych powiązaniach z innymi obiektami oraz własności dynamicznych obiektów. 139 Obiekty i metody Obiekt - reprezentuje w systemie komputerowym encję modelowanego świata rzeczywistego. Własności statyczne encji są modelowane za pomocą atrybutów obiektu, a jej własności dynamiczne za pomocą operacji wykonywanych na obiekcie. Operacje te są zwane metodami (ang. methods) obiektu. Zbiór wszystkich metod obiektu stanowi jego interfejs z innymi obiektami. Obiekty o takiej samej strukturze i metodach są grupowane w klasy. Obiekty należące do danej klasy są jej wystąpieniami (ang. instance). Formalnie, przez obiekt rozumiemy dwójkę: o = (oid, v), gdzie oid jest unikalnym identyfikatorem obiektu, a v jest wartością obiektu. Wartość obiektu, w zależności od jego struktury, może być wartością atrybutu, krotką wartości lub zbiorem wartości. 141 Obiektowe bazy danych - wprowadzenie Obiektowe bazy danych, które łączą w sobie cechy technologii obiektowych z cechami systemów zarządzania bazami danych: możliwość modelowania złożonych typów danych, hierarchii typów, własności dynamicznych, trwałość przechowywanych w systemie danych, zarządzanie współbieżnym dostępem do danych, możliwość odtworzenia stanu bazy danych po awarii, autoryzację dostępu i deklaratywny język komunikacji z bazą danych. Badania związane z zastosowaniem technologii obiektowej w bazach danych rozwijane są w dwóch kierunkach: 1. opracowania od podstaw koncepcji obiektowych baz danych; 2. rozszerzanie modelu relacyjnego o własności modelu obiektowego, 140 Obiekty i metody - cd. Identyfikatory obiektów Określają tożsamość obiektu niezależnie od stanu wartości jego atrybutów. Identyfikator jest nadawany przez system w momencie tworzenia obiektu, a jego wartość pozostaje niezmienna przez cały czas życia obiektu. Identyfikator ten jest niedostępny dla programów użytkownika. dopuszcza istnienie wielu obiektów o takich samych wartościach atrybutów - obiekty te są rozróżniane właśnie za pomocą identyfikatorów; własność ta wyraźnie odróżnia obiekty od krotek z modelu relacyjnego. Struktura obiektów Jest określona przez zbiór nazwanych atrybutów. Atrybuty są zdefiniowane na dziedzinach, które są zbiorami wartości elementarnych, takich jak liczby naturalne, rzeczywiste, czy łańcuchy znaków, lub klasami. Atrybuty obiektów mogą być wielowartościowe. Atrybuty zdefiniowane na zbiorach wartości elementarnych są nazywane atrybutami prostymi, natomiast zdefiniowane na klasach są nazywane atrybutami złożonymi. 142
Obiekty i metody - cd. umożliwia modelowanie dynamicznych własności encji za pomocą metod obiektów, których specyfikacja, obok specyfikacji struktury obiektów, wchodzi w skład definicji klasy obiektów. Innymi słowy, zmiana stanu obiektu, tj. wartości jego atrybutów, może zostać zrealizowana tylko za pomocą odpowiedniej metody obiektu. Struktura obiektów oraz implementacja metod są ukryte przed użytkownikiem obiektu. Własność ta jest nazywana hermetycznością obiektu (ang. encapsulation). Komunikacja z obiektem odbywa się przez wysyłanie do obiektu komunikatów, które uaktywniają odpowiadające im metody obiektu. Dzięki hermetyczności, zmiana implementacji struktury obiektów i metod nie wpływa na poprawność pracy innych programów odwołujących się do tych obiektów, jeśli tylko interfejs pozostanie niezmieniony. Zewnętrzny interfejs obiektu jest więc zbiorem komunikatów, z którymi są skojarzone metody obiektu. Interfejs ten jest nazywany protokołem. Jedną z konsekwencji hermetyczności jest możliwość jednorodnego operowania na obiektach różniących się strukturą i metodami, a mających taki sam protokół. Własność umożliwiająca uaktywnienie takim samym komunikatem metod obiektów należących do różnych klas jest nazywana polimorfizmem. 143 Klasy i związki Dziedzinami atrybutów mogą również być inne klasy - mówimy wówczas o związkach kompozycji (ang. composition relationships) lub agregacji (ang. aggregation relationships) łączących klasy. Związek kompozycji jest szczególnym rodzajem związku referencyjnego (ang. is-part-of lub composite reference) - związek ten umożliwia modelowanie sytuacji, w której jedna encja jest częścią składową drugiej encji, a więc na przykład związku: silnik_1500_td jest_częścią samochodu Polonez_1500. Obiekt, który wiąże inne obiekty związkiem kompozycji jest nazywany obiektem złożonym (ang. complex lub composite object), natomiast obiekty związane związkiem kompozycji są nazywane obiektami składowymi (ang. component object). Obiekty składowe również mogą być złożone, a zatem obiekt złożony jest w ogólności hierarchią obiektów składowych. 145 Klasy Wszystkie obiekty posiadające taką samą strukturę i metody są grupowane w klasy (ang. class). Klasa jednocześnie definiuje strukturę i zachowanie się obiektu, na które składają się odpowiednio definicje atrybutów oraz definicje i implementacje metod. Dziedzinami atrybutów klasy mogą być wartości elementarne, takie jak liczby, łańcuchy znaków, lub wartości złożone takie jak listy i zbiory. obejmuje pojęcia różnych typów związków między obiektami i między klasami. Atrybuty złożone definiują związki między obiektami - ten typ powiązań nazywa się związkiem referencyjnym. Dwa obiekty są powiązane związkiem referencyjnym jeżeli jeden z nich jest wartością atrybutu drugiego - związki referencyjne umożliwiają modelowanie związków typu: Jan_Kowalski jest_mężem Janiny_ Kowalskiej, lub Jan_Kowalski posiada samochód Polonez_1500. 144 Związki Związek kompozycji nadaje obiektom składowym dodatkową semantykę - obiekty składowe są zależne (ang. depend) i powiązane w sposób wyłączny (ang. exclusive) przez obiekty złożone. Zależność obiektów składowych polega na tym, że ich istnienie jest zależne od istnienia zawierających je obiektów złożonych. Z kolei wyłączność zawierania obiektów składowych polega na tym, że mogą one należeć tylko do jednego obiektu złożonego. Związek kompozycji jest abstrakcją agregacji. Umożliwia ona automatyczne wykonywanie pewnych operacji na wszystkich powiązanych nim encjach. Związki takie umożliwiają modelowanie obiektów złożonych. Klasy połączone w taki sposób tworzą graf skierowany (w pewnych przypadkach może on być cykliczny). 146
Związki cd. Związki referencyjne, które nie są związkami kompozycyjnymi są nazywane słabymi związkami referencyjnymi (ang. weak reference) [Kim87]. Definicja i implementacja metod znajduje się w klasie a nie w samym obiekcie. Ponieważ metody są wspólne dla wszystkich instancji, więc unika się w ten sposób wielokrotnego definiowania tej samej metody. Komunikat przesłany do obiektu uaktywnia jego metodę, znajdującą się w jego klasie. Jedną z podstawowych własności klasy jest jej zdolność do tworzenia obiektów (ang. instantiation). Nowy obiekt jest tworzony za pomocą metody klasy. Metoda ta jest określana konstruktorem (ang. constructor). Sama klasa jest również obiektem bazy danych instancją klasy systemowej, zwanej metaklasą. Cechą wyróżniającą klasę od innych obiektów jest jej zdolność do tworzenia obiektów. 147 Dziedziczenie cd. Klasy powiązane związkami dziedziczenia tworzą acykliczny graf skierowany (ang. Direct Acyclic Graph DAG), zwany hierarchią dziedziczenia (ang. inheritance hierarchy). Korzeniem tej hierarchii jest zwykle predefiniowana klasa o nazwie Obiekt, implementująca wspólne, najbardziej ogólne, własności wszystkich obiektów. Podklasa dziedziczy atrybuty i metody nie tylko ze swojej bezpośredniej superklasy, ale również, pośrednio, z nadklas znajdujących się wyżej w hierarchii. Instancje klas tworzących hierarchię dziedziczenia są powiązane związkiem jest (ang. is-a). Oznacza to, że każda instancja podklasy jest jednocześnie instancją swej nadklasy. Przykładowo, klasa Samochód dziedziczy z klasy Pojazd, co oznacza, że każdy samochód jest jednocześnie pojazdem. 149 Dziedziczenie System obiektowy umożliwia wywodzenie nowych klas z klas już istniejących. Mechanizm ten nazywa się dziedziczeniem (ang. inhertiance). Klasa wywiedziona nazywa się podklasą (ang. subclass), a klasa, z której wywiedziono inną nadklasą bądź superklasą (ang. superclass). Atrybuty i metody nadklasy są dziedziczone (współdzielone) przez wszystkie podklasy z niej wywiedzione. Podklasa może również zawierać: dodatkowe atrybuty, dodatkowe metody, atrybuty odziedziczone, które zostały przedefiniowane lokalnie, metody odziedziczone, które zostały przedefiniowane lokalnie (dotyczy to zarówno sygnatur metod jak i ich implementacji). 148 Dziedziczenie cd. Jeżeli klasa może dziedziczyć z więcej niż jednej bezpośredniej nadklasy, to mówimy o wielodziedziczeniu (ang. multiple inheritance). Dzięki mechanizmowi dziedziczenia, w systemie nie powstają redundancje związane z definiowaniem tych samych atrybutów i (lub) metod w podklasie, ponieważ zostały one zdefiniowane w superklasie. W wyniku dziedziczenia w wielu klasach istnieją takie same metody, ale operujące na różnych obiektach. W wyniku przedefiniowania w podklasie metod dziedziczonych mogą istnieć metody różniące się semantyką i implementacją. W konsekwencji, ten sam komunikat może uaktywnić metodę obiektów należących do różnych klas. Ta własność nazywa się polimorfizmem (ang. polimorphism) lub wielopostaciowością. 150
Dziedziczenie Przykład: Obiekt UrządzenieElektroniczne moc włącz wyłącz Radio Magnetofon Głowica zakres_częstotliwości głowica kieszeń zmień_zakres zasilacz zwiększ_głośność Zasilacz zmniejsz_głośność odtwórz zapisz otwórz_kieszeń włącz Transformator RadioMagnetofon związek dziedziczenia związek kompozycji Miniświat opisujący urządzenia elektroniczne - klasy i związki między nimi 151 Dziedziczenie Przykład: Zbiór wszystkich klas i łączących je związków tworzy schemat obiektowej bazy danych. Obiektowy model danych zawiera bogaty zbiór operacji modyfikacji schematu bazy danych: struktury obiektów, implementacji metod oraz grafu dziedziczenia, które umożliwiają modelowanie ewolucyjnej natury świata rzeczywistego. 153 Dziedziczenie Przykład: Obiektowe bazy danych Charakterystyka nowych dziedziny zastosowań systemów baz danych: Wspólną cechą wszystkich tych systemów jest potrzeba trwałego przechowywania danych, a więc wykorzystanie obiektowych baz danych 152 154
Obiektowe bazy danych Prototypowe bazy danych: Exodus (Uniwersytet Wisconsin), ObServer, Ode (AT&T), Orion (MCC), Zeitgeist (Texas Instruments). Komercyjne bazy danych: Itasca (MCC, komercyjna wersja Oriona), GemStone (Servio Corporation), ObjectStore (Object Design), Ontos (Ontologic) i O2 (O2 Technology). Cechy obiektowych baz danych Efektywne zarządzanie trwałymi obiektami W systemach obiektowych trwałość obiektów uzyskuje się na dwa sposoby: umieszczaniu obiektów (tworzonych przez aplikację) w tzw. obszarze pamięci trwałej (ang. persistent memory), jawny ich zapis na serwerze bazy danych przed zakończeniem programu. Dostęp do obiektów bazy danych za pomocą proceduralnego języka programowania i języka deklaratywnego Powiązania między obiektami przechowywanymi w bazie danych tworzą skomplikowane grafy - użytkownik musi mieć możliwość nawigowania między pojedynczymi obiektami bazy danych (za pomocą poleceń sformułowanych proceduralnie), musi mieć również możliwość wyszukiwania całych zbiorów obiektów. Zapytania w języku deklaratywnym (zwanym w skrócie OQL lub OSQL), z zastosowaniem predykatów. Ograniczeniem jest jednak to, że polecenia OQL mogą być kierowane tylko do tych klas obiektów, które są zorganizowane w zbiory. Wszystkie inne klasy obiektów są dostępne za pomocą poleceń sformułowanych proceduralnie. 155 157 Efektywne zarządzanie trwałymi obiektami Serwery obiektowych baz danych można podzielić na dwie następujące kategorie: serwery stron (ang. page servers) i serwery obiektów (ang. objects servers). Serwery stron charakteryzują się tym, że zarządzają stronami pamięci (są to obszary pamięci o stałej długości), na których znajdują się obiekty. Oznacza to, że do aplikacji są przesyłane nie pojedyncze obiekty, ale całe strony zawierające żądane obiekty. Aplikacja jest odpowiedzialna za odszukanie obiektu na stronie. Serwerami stron są m.in. Exodus i ObjectStore. Serwery obiektów zarządzają pojedynczymi obiektami lub grupami powiązanych z sobą obiektów. Do aplikacji są przesyłane tylko żądane przez nią obiekty. W tym przypadku serwer jest odpowiedzialny za odnalezienie obiektu w bazie danych. Niektóre z tych serwerów interpretują obiekty tylko jako ciągi bajtów m.in. ObServer i Zeitgeist. Inne interpretują również semantykę obiektów m.in. Orion i O2. 156 Dostęp do obiektów bazy danych... Odczytanie obiektu złożonego odbywa się szybko ponieważ w obiekcie złożonym znajdują się bezpośrednie wskazania (identyfikatory) do obiektów składowych - z tego względu obiektowe bazy danych lepiej niż relacyjne nadają się do przechowywania obiektów o strukturze złożonej. Problem optymalizacji wykonywania zapytań. Wynikiem zapytania jest zbiór obiektów, które mogą się składać z innych obiektów. Obiekty będące wynikiem zapytania mogą również pochodzić z różnych klas, np. obiekty klasy Magnetofon i RadioMagnetofon (zob. przykład). Dodatkowo, w predykatach poleceń OQL można odwoływać się do metod obiektów, które mogą wywoływać inne metody innych obiektów. Optymalizator powinien dokonać analizy implementacji struktury i metod obiektów, co z kolei narusza własność hermetyczności. W systemie obiektowym optymalizator nie posiada wystarczających informacji do tego aby przekształcić graf operacji do bardziej optymalnego. 158
Dostęp do obiektów bazy danych... Język OQL: GemStone, Itasca/Orion, ObjectStore, Ontos, i O2 Języki proceduralne: Exodus język C++ i jego rozszerzenia w języku E; GemStone język OPAL, oparty o Smalltalk, Itasca/Orion Common Lisp rozszerzony o mechanizmy programowania obiektowego; Ontos i ObjectStore używają C++; Ode wykorzystuje się O++, będący rozszerzeniem C++; O2 język C++ i język O2C będący rozszerzeniem C. 159 Zarządzanie współbieżnym dostępem do danych i zarządzanie transakcjami Wprowadzenie typów blokad o mniejszej restryktywności niż wyłączna blokada do zapisu umożliwia osiągnięcie większej współbieżności aplikacji bazy danych. Nowe typy blokad są definiowane razem z operacjami. Blokady te są nazywane blokadami semantycznymi (ang. semantic locks). Metody blokowania dla obiektowych baz danych nie mogą również ignorować niektórych specyficznych typów powiązań między obiektami. Na przykład założenie blokady na złożony obiekt samochód powinno być równoznaczne z zablokowaniem wszystkich jego obiektów składowych. Stąd proponowane metody realizują hierarchiczne blokowanie nie tylko w hierarchii ziarnistości, ale również w hierarchiach dziedziczenia i kompozycji. 161 Zarządzanie współbieżnym dostępem do danych i zarządzanie transakcjami W systemach obiektowych, podobnie jak w relacyjnych, do synchronizacji dostępu do danych wykorzystuje się blokady zakładane na obiektach (m.in. Exodus, Itasca/Orion, ObjectStore, Ontos, O2). Konieczne rozszerzenie o dodatkowe mechanizmy - wynika to z faktu złożoności obiektów i istnienia hierarchii klas. W modelu obiektowym obiekty składowe są powiązane z obiektami, na które się składają w takim przypadku zablokowanie obiektu złożonego powinno spowodować zablokowanie również wszystkich obiektów składowych. W obiektowych bazach danych bogatsza niż w modelu relacyjnym semantyka operacji wymaga rozszerzenia zbioru typów blokad. 160 Zarządzanie współbieżnym dostępem do danych i zarządzanie transakcjami W procesie projektowania (aplikacje CAD, CSCW) wykorzystuje się transakcje o długim czasie trwania (np. dni, miesiące). Model zarządzania transakcjami w systemach obiektowych, został wzbogacony o mechanizm transakcji zagnieżdżonych (ang. nested transactions). Transakcja zagnieżdżona to taka, w ramach której rozpoczęto inną (zagnieżdżoną w niej) transakcję. W ten sposób transakcje tworzą strukturę drzewiastą. Istnieje możliwość zatwierdzania poszczególnych transakcji składowych przed zatwierdzeniem całej transakcji. Mechanizm zarządzania transakcjami o długim czasie trwania został zaimplementowany m.in. w systemach ObjectStore, Ontos; natomiast mechanizm zarządzania transakcjami o krótkim czasie trwania został zaimplementowany we wszystkich innych systemach. 162
Wywodzenie wersji danych Obiektowe bazy danych muszą wspierać wywodzenie i przechowywanie wersji projektowanych elementów. Również sam schemat bazy danych może podlegać ewolucji, np. na skutek dostosowywania jego struktury do zmieniających się potrzeb systemu informatycznego. Tak więc, obiektowe bazy danych muszą dostarczać mechanizmów umożliwiających wywodzenie i zarządzanie wersjami zarówno obiektów jak i klas. Istniejące modele, prototypy i produkty komercyjne można podzielić na takie, które wspierają wywodzenie wersji: obiektów, pojedynczych klas, klas powiązanych związkami kompozycji i dziedziczenia, całych schematów, całych baz danych. 163 Wywodzenie wersji danych cd. a) b) B B V1 A A V1 V1 V1 V2 V3 V2 V3 wersja bieżąca wiązanie związek wywodzenia Sposoby wiązania obiektów Wielowersyjny obiekt A składa się tylko z jednej wersji V1, natomiast wielowersyjny obiekt B składa się z trzech wersji: V1, V2, V3. Dwie ostatnie wersje zostały wywiedzione z V1.Zazwyczaj jedna z wersji (wybrana przez projektanta lub wywiedziona jako ostania) jest tzw. wersją bieżącą (ang. working version, current version). Każda wersja jest jednoznacznie identyfikowana przez identyfikator wersji (ang. version stamp), nadawany jej przez system. 165 Wywodzenie wersji danych cd. Obiekt wielowersyjny Rozwiązania alternatywne i wersje czasowe (historyczne) modeluje się za pomocą wersji obiektów (ang. object version). Zbiór wszystkich wersji danego obiektu wraz ze związkami łączącymi te wersje jest tzw. obiektem wielowersyjnym (ang. multiversion object). Poszczególne wersje obiektu są połączone związkami wywodzenia (ang. derivation relationships), oznaczającymi fakt wywiedzenia jednej wersji obiektu z innej. Tworzą one tzw. drzewo wywodu wersji (ang. version derivation tree). 164 Wywodzenie wersji danych cd. Wyróżnia się dwa sposoby wiązania wersji obiektów: wiązanie statyczne (ang. static binding) i wiązanie dynamiczne (ang. dynamic binding). Wersje dwóch obiektów są połączone wiązaniem statycznym, gdy wartością atrybutu obiektu pierwszego jest identyfikator konkretnej wersji obiektu drugiego. Wersje dwóch obiektów są połączone wiązaniem dynamicznym, gdy wartością atrybutu obiektu pierwszego jest identyfikator obiektu wielowersyjnego, do którego należy wersja obiektu drugiego Te same wersje obiektów składowych są współdzielone przez wiele wersji obiektów złożonych. 166
Rozproszenie danych Współczesne zastosowania systemów informatycznych charakteryzują się dostępem do danych z wielu odległych komputerów. Obiektowa baza danych powinna m.in. posiadać mechanizmy umożliwiające rozpraszanie danych i zarządzanie takimi danymi, mechanizmy replikowania danych, oraz zaimplementowane protokoły zatwierdzania transakcji rozproszonych. Z istniejących systemów tylko Exodus, GemStone i Itasca/Orion umożliwiają rozproszenie danych. Transakcje są zatwierdzane za pomocą rozproszonego protokołu 2 PC. GemStone umożliwia również replikowanie danych. 167 Obiektowo relacyjne bazy danych Do komercyjnych obiektowo relacyjnych baz danych zalicza się m.in.: Illustra (Informix Software, Inc.), Informix Universal Server (Informix Software, Inc.), OpenODB (HP), Oracle8 (Oracle Corporation), UniSQL (UniSQL, Inc.). Cechy obiektowo relacyjnych baz danych Rozszerzalny system typów danych Projektant bazy danych może definiować nowe typy danych o dowolnie złożonej strukturze. Natomiast serwer zarządza danymi nowych typów tak, jak danymi typów predefiniowanych, m.in. umożliwia definiowanie struktur fizycznych (np. indeksów), synchronizuje współbieżny dostęp. 169 Bezpieczeństwo danych Bezpieczeństwo danych posiada dwa aspekty: możliwość odtworzenia stanu bazy danych po awarii sprzętu i oprogramowania, Exodus umożliwia odtworzenie stanu bazy danych po awarii oprogramowania, systemu operacyjnego i procesora. Po ponownym uruchomieniu serwera, zmiany dokonane przez zatwierdzone transakcje zostają zapamiętane w bazie danych, natomiast wszystkie inne zmiany zostają wycofane. ochrona danych przed niepowołanym dostępem, Dostęp do danych powinien być ograniczony za pomocą praw dostępów. GemStone, Orion i O2 posiadają taką cechę. Dodatkowym mechanizmem ochrony danych są również perspektywy, które zostały zaimplementowane tylko w systemie O2. 168 Obiektowo relacyjne bazy danych - cechy Obsługa typów niestandardowych Oprócz nowych typów danych projektant może definiować związane z nimi operacje, określające specyficzne własności behawioralne danych. Procedury i funkcje związane z relacjami W bazie danych można definiować i przechowywać procedury i funkcje składowane, związane z relacjami bazy danych. Elementy aktywne W bazie danych można definiować i przechowywać elementy aktywne wyzwalacze (ang. database triggers), reagujące na zdarzenia zachodzące w systemie. Wyzwalacze te mogą być związane zarówno z relacjami, jak i typami niestandardowymi. 170
Komercyjne obiektowo relacyjne bazy danych Oracle8 Nowa wersja serwera bazy danych Oracle8 umożliwia m.in.: definiowanie nowych typów danych wraz z metodami umożliwiającymi ich przetwarzanie dzięki temu, Oracle8 może być z powodzeniem stosowany do przechowywania danych pochodzących m.in. z systemów takich jak CAD/CAM, GIS, systemów multimedialnych; efektywne zarządzanie ogromnymi zbiorami danych dzięki tej własności Oracle8 może znaleźć zastosowanie w systemach multimedialnych i magazynach danych (ang. Data Warehouse); wykorzystanie równoległości przetwarzania danych co ma szczególne znaczenie w systemach analizy danych OLAP (ang. On Line Analythical Processing), w których wykonuje się skomplikowane obliczenia (np. statystyczne) na ogromnej liczbie danych; dostęp do danych za pomocą sieci Internet dla ogromnej liczby użytkowników co jest niezwykle ważne w dobie ogromnego rozwoju technologii Web. 171 Komercyjne obiektowo relacyjne bazy danych UniSQL W systemie UniSQL (UniSQL, Inc.) rozszerzono model relacyjny o następujące własności modelu obiektowego: możliwość definiowania relacji złożonych (zagnieżdżania relacji w sobie), tj. takich, w których wartością atrybutu jednej krotki jest nie pojedyncza wartość ale inna krotka; hermetyczność relacji oznacza to, że projektant systemu może skojarzyć z daną relacją zbiór operacji na poszczególnych jej atrybutach lub całych krotkach; związki dziedziczenia między relacjami oznacza to, że projektant systemu może zdefiniować hierarchię dziedziczenia relacji, podobnie jak hierarchię dziedziczenia klas w modelu obiektowym. W takim przypadku podrelacja dziedziczy wszystkie atrybuty i operacje swojej nadrelacji. Możliwe jest również dziedziczenie z wielu relacji równocześnie. 173 Komercyjne obiektowo relacyjne bazy danych Oracle8 oferuje ponadto obiektowo zorientowane środowisko projektowania Sedona, które znacznie zwiększa efektywność projektowania i pielęgnowania aplikacji oraz generowania aplikacji w językach programowania wysokiego poziomu. Wraz z serwerem w wersji 8, są dostarczane pakiety oprogramowania wspomagającego administrowanie systemem: Oracle8 Server Managed Backup and Recovery i Oracle Enterprise Manager. Pierwszy z nich umożliwia zautomatyzowanie m.in. procesów tworzenia kopii bezpieczeństwa bazy danych i odtwarzania stanu bazy danych po awarii. Drugi służy do zarządzania systemem rozproszonych lub zcentralizowanych systemów baz danych. Korzystając z tego pakietu, administrator ma dostęp z jednej konsoli do odległych węzłów, co umożliwia efektywne i łatwe zarządzanie nimi (m.in. zdalne monitorowanie i strojenie). 172 Komercyjne obiektowo relacyjne bazy danych UniSQL rozszerzenia cd. Funkcjonalność języka zapytań dla takiej bazy danych została rozszerzona o: zapytania nawigujące w relacjach zagnieżdżonych (ang. path queries), zapytania wyznaczające krotki o strukturze złożonej, możliwość wywoływania w zapytaniach operacji zdefiniowanych dla relacji, zapytania wyznaczające zbiory krotek w ramach relacji tworzących hierarchię dziedziczenia, t.j. wyznaczające krotki relacji i krotki wszystkich podrelacji. OpenODB, Illustra i Informix Universal Server Systemy takie jak: OpenODB (HP), Illustra i Informix Universal Server (Informix Software, Inc.) wykorzystują system zarządzania relacyjną bazą danych (SZRBD) do przechowywania obiektów. 174
Komercyjne obiektowo relacyjne bazy danych OpenODB, Illustra i Informix Universal Server Nad SZRBD znajduje się warstwa oprogramowania, która umożliwia przekształcenie klasy obiektów do takiej postaci, aby mogła on być przechowana w relacyjnej bazie danych (i odwrotnie). Klasy obiektów są reprezentowane za pomocą relacji, atrybuty i metody stanowią atrybuty relacji, natomiast same obiekty są krotkami relacji. Podejście to ma tę zaletę, że można zbudować system obiektowo relacyjny, o dużej funkcjonalności, w oparciu o dobrze zaimplementowany system relacyjny. Przez co budowa nowego systemu jest szybsza i mniej kosztowna, a sam system wykorzystuje wszystkie cechy SZRBD. Takie podejście zmniejsza jednak efektywność systemu, gdyż transformacja obiektów z modelu relacyjnego do obiektowego (i odwrotnie) zabiera czas. Jest to szczególnie ważne w aplikacjach, które przetwarzają duże ilości danych. 175