Bazy obiektowe czy relacyjne?

Bazy obiektowe i relacyjne łączą się w serwerach uniwersalnych, ale nadal nie ma pewności, czy ten nowy model przechowywania danych jest dobrze dostosowany do potrzeb firm handlowych, produkcyjnych i usługowych.

Bazy obiektowe i relacyjne łączą się w serwerach uniwersalnych, ale

nadal nie ma pewności, czy ten nowy model przechowywania danych jest dobrze dostosowany do potrzeb firm handlowych, produkcyjnych i usługowych.

Analizując sytuację w naszej firmie, najpierw należy określić, czy w

bazie relacyjnej przechowujemy takie elementy, jak obrazy, grafikę lub dane przestrzenne. Jeśli tak, to należy się zastanowić, czy może istnieć lepszy sposób ich przechowywania niż obecnie oferowany przez bazy relacyjne?

Podpowiedź brzmi: wystarczy zastosować bazę obiektową.

Nim jednak podejmiemy tę ważną decyzję, trzeba zdać sobie sprawę, że w miarę rozwoju Internetu będzie istniało coraz większe zapotrzebowanie na bazy obiektowe - nie ma bowiem lepszego sposobu przechowywania wielu multimedialnych typów danych niż obiektowa baza danych.

Tak więc zamiast zastanawiać się, czy w przyszłości stosować bazę obiektową, trzeba raczej zastanawiać się, w jakim stopniu należy ją stosować obok bazy relacyjnej? Najwięksi producenci systemów baz danych, tacy jak IBM, Informix, Oracle i Sybase adaptują technikę obiektową w różnym tempie - od obietnic, po dostawy hybryd "obiektowo-relacyjnych". Puryści obiektowi nie są entuzjastami tych rozwiązań wskazując, że zalety baz czysto obiektowych spowodują, iż w niezbyt dalekiej przyszłości staną się one dominującą techniką przechowywania danych. Czy tak się stanie? Oto kilka zalet obiektowej techniki baz danych.

Zaleta 1. Złożone typy danych

Informacja staje się coraz bardziej kompleksowa, co wynika głównie z coraz bardziej złożonych sposobów działania biznesu, większych oczekiwań szefów przedsiębiorstwa w zakresie informacji potrzebnej im do podejmowania decyzji oraz wymagań analityków i dyrektorów finansowych firmy. Uzyskanie informacji o średniej bieżącej sprzedaży najlepiej sprzedających się produktów w każdym z ostatnich 13 tygodni (bieżący "kwartał") przekracza możliwości współczesnych baz relacyjnych.

Jak twierdzą entuzjaści baz obiektowych, takie pytania pokazują limit

możliwości techniki relacyjnej, gdy zarówno dane, jak zapytania stają się złożone. Gdy operujemy na jednej tabeli, baza relacyjna radzi sobie

znakomicie. Jeśli jednak trzeba wykonać połączenie wielu tabel (operacja join), wydajność bazy relacyjnej znacznie zmniejsza się. Co gorsze, aby zapisać dane w bazie relacyjnej, trzeba podzielić je na dane "atomowe", pasujące dokładnie do miejsca przeznaczonego na nie w tabelach. Jeżeli zależności między danymi są proste, nie stanowi to problemu. Jeśli jednak zależności są złożone, proces przypomina trochę wstawianie samochodu do garażu przez rozbieranie go na części i umieszczanie ich na półkach.

W bazach obiektowych zwiększona wydajność zapytań wynika z dwóch rzeczy. Po pierwsze, obiekt to nie tylko część danych. Po drugie, zawiera on także dostatecznie wiele kodu, aby "wiedzieć", czym jest i jakie są jego relacje z innymi obiektami.

Zaleta 2. Zwiększona wydajność i elastyczność

Zależności między instancjami obiektów w bazie nie buduje się w chwili

tworzenia zapytania do bazy, tak jak to ma miejsce w bazie relacyjnej. Są one obliczane w chwili zapisywania instancji obiektu do bazy. Ponieważ w większości zastosowań związanych z podejmowaniem decyzji liczba zapytań znacznie przekracza liczbę transakcji wpisywanych do bazy, zapytania - zwłaszcza te, które wymagają łączenia obiektów - wykonywane są szybciej.

Jest tu pewne podobieństwo do dawnych baz hierarchicznych, w których zależności między elementami były definiowane i ustalone na stałe w momencie projektowania bazy. Z tego powodu bazy hierarchiczne były bardzo szybkie i nadal są stosowane, chociaż ich struktura jest niezbyt elastyczna.

Natomiast bazy obiektowe są elastyczne z tego powodu, że obiekty można definiować i zmieniać im definicje na bieżąco. Możliwość dziedziczenia właściwości klasy, tworzenie nowych subklas przez dodawanie nowych właściwości przyśpiesza opracowanie aplikacji i raportów.

Nie oznacza to, że bazy obiektowe wyeliminują trud pisania kodu

i przyspieszą wszystkie operacje na danych; ich możliwości ujawnią się w pełni dopiero w aplikacjach obiektowych.