Bazy obiektowe czy relacyjne?

Zaleta 3. Logiczne rozproszenie bazy

W bazie relacyjnej można dość dowolnie rozdzielać tabele na różne serwery w sieci, natomiast właściwie nie ma możliwości dzielenia tabeli na dwie lub więcej subtabel. Jeśli nawet można je wykonać, powoduje to sporo kłopotów z dostępem do tabeli. W bazie obiektowej jednostką informacji jest obiekt i nie ma on ściśle przydzielonego miejsca: może znajdować się w dowolnym miejscu sieci komputerowej.

Korzystając z mechanizmów komunikacji międzyobiektowej opracowanych przez Object Management Group i zaimplementowanych przez wielu producentów w postaci tzw. brokerów obiektowych (Object Request Broker - ORB), obiekty łatwo komunikują się między sobą w sieci. Ponadto są one na ogół znacznie mniejsze niż tabele bazy.

Największą rolę w rozpowszechnianiu baz obiektowych odgrywa Internet.

Bazy obiektowe doskonale sprawdzają się jako repozytoria obiektów w

lokalizacjach WWW. Ujawniło się to także zmienionym podejściem ich

producentów, adaptujących swe produkty do użycia języka Java, chociaż do niedawna preferowali oni SmallTalk i C++.

Zaleta 4. Stworzone dla Web

Jeżeli spojrzeć na Web z punktu widzenia realizacji technicznej, to ta sieć składa się wyłącznie z obiektów. Jeżeli więc trzeba zapamiętać obiekt, należy zapisywać go w bazie jako obiekt, nie zaś jako kombinację elementów, które w momencie użycia należy dopiero składać w obiekt.

Gdy w bazie relacyjnej zapisujemy obraz, należy przygotować odpowiedni program konwersji, umożliwiający zapisanie go w strukturze tabel bazy. Przy odczytywaniu trzeba dokonać konwersji do postaci nadającej się do wyświetlania. Natomiast nie jest to potrzebne w bazie obiektowej - kod (metoda) jest dołączony do obiektu.

Baza obiektowa czy obiektowo-relacyjna?

Kilkanaście lat temu programiści zajmujący się bazami danych musieli

zmienić sposób myślenia o bazach z kategorii hierarchii na

myślenie o tabelach, relacjach, łączeniu tabel, formach normalnych itp.

Historia się powtarza, tyle że teraz trzeba zacząć myśleć w kategoriach

obiektów.

Powszechna jest opinia, że aby programista zaczął myśleć w kategoriach obiektów, konieczne jest intensywne szkolenie, trwające na ogół co najmniej 6 miesięcy. Jest to jeden z poważnych powodów powolnej adaptacji techniki obiektowej, nie tylko w obsłudze baz danych.

Próbowano połączyć dwa sposoby myślenia proponując bazy relacyjno-obiektowe, w których obiekty są automatycznie rozkładane na elementy nadające się do zapisania w tabelach. Z zewnątrz widać było otoczkę obiektową, choć w rzeczywistości baza nadal jest relacyjna. Na rynku istnieją produkty "dopasowujące" typowe bazy relacyjne Informixa, Oracle'a czy IBM do obiektowego sposobu widzenia świata.

Wielcy producenci także włączają się do tego sposobu zapisywania danych, oferując własne rozszerzenia obiektowe. Niektórzy zdecydowali się wspierać standard komunikacyjny ORB i stosować język Java do programowania dostępu do danych.

Czy bazy obiektowo-relacyjne są dobrym podejściem do problemu zapisywania obiektów? Takie przekonanie wyrażają wszyscy producenci relacyjnych baz danych, natomiast zwolennicy baz czysto obiektowych uważają je - w najlepszym razie - za protezę.

Historia się powtarza

Dwadzieścia lat temu pojawienie się baz relacyjnych wywołało ogromną falę krytyki tego rozwiązania w porównaniu z panującymi niepodzielnie bazami hierarchicznymi. Działają wolniej, zużywają ogromne zasoby mocy obliczeniowej komputera, nie są dostatecznie bezpieczne, nie nadają się do obsługi dużych baz danych, nie zapewniają dostatecznej wydajności transakcyjnej itd.

I cóż się okazało? Bazy relacyjne pokonały choroby wieku dziecięcego i dziś są uważane za wzorzec, jeśli chodzi o przechowywanie danych. To samo zapewne nastąpi w przypadku baz obiektowych. Nie oznacza to bynajmniej, że bazy relacyjne znikną. Obecnie nadal wiele dużych zbiorów danych jest obsługiwanych przez bazy hierarchiczne. Podobnie bazy relacyjne jeszcze długo będą koegzystować z bazami obiektowymi. Do pewnych zastosowań, np. do intensywnego przetwarzania transakcyjnego, nie można ich zastąpić bazami obiektowymi.


TOP 200