Obiektowe bazy danych - wprowadzenie (konspekt wykładu)
Pomimo wzrastającego zainteresowania programowaniem obiektowym i obiektowymi bazami
danych, nie opracowano jak dotąd jednego standardu pojęć obiektowych do wykorzystania w językach
programowania i bazach danych. Obecnie systemy relacyjnych baz danych silnie zdominowały rynek
baz danych, a systemy baz obiektowych muszą sobie dopiero wyrobić własne miejsce na tym rynku.
Powszechnie uważa się, że wkrótce zostanie opracowany i uzgodniony standard obiektowego modelu
danych, który umożliwi systemom obiektowych baz danych następnej generacji zajęcie
niekwestionowanego miejsca na rynku baz danych.
Obiektowa baza danych jest zbiorem obiektów, których zachowanie się i stan oraz związki są
określone zgodnie z obiektowym modelem danych. Model danych przedstawia logiczną strukturę obiektów (encji) z prawdziwego świata, nałożonych na nie więzów i związków między tymi obiektami. Z obiektowym podstawowym modelem danych są ściśle związane następujące pojęcia:
Abstrakcja
Każdy obiekt w systemie można rozpatrywać jako model abstrakcyjnego elementu, który może:
– opisywać i zmieniać swój stan,
– komunikować się z innymi obiektami w systemie,
– wykonywać pewne czynności na rzecz innych obiektów,
bez ujawniania, w jaki sposób zaimplementowano dane cechy (Tomasz Marks)
• O
biekt i identyfikator obiektu :
Każda encja pochodząca z rzeczywistego świata jest obiektem bazy danych, z którym jest skojarzony jednoznaczny, systemowy identyfikator.
-
Obiektem jest rzecz lub pojęcie obserwowane w świecie rzeczywistym, którego dotyczy
system informacyjny. Obiekt jest odróżnialny od innych obiektów, ma dobrze określoną
granicę i nazwę
-
Obiektem może też być pewien zamknięty fragment oprogramowania (dana, procedura,
moduł, dokument, okienko dialogu) którym można operować jak zwartą bryłą
(wyszukiwać, kopiować, usuwać, indeksować)
-
Obiekt posiada swoją tożsamość , która wyróżnia go spośród innych obiektów.
Tożsamość obiektu jest niezależna od wartości jego atrybutów (tożsamość= trwały
wewnętrzny identyfikator)
-
Obiekt posiada stan, który może zmieniać się w czasie (bez zmiany tożsamości)
-
Obiekt może być złożony
-
Obiekt może być powiązany z innymi obiektami
-
Obiekt ma przypisane zachowanie tj. zestaw operacji które wolno do niego stosować ( implementacja operacji jest nazywana metodą)
-
Obiekt ma przypisany typ tj. wyrażenie językowe, które ogranicza dopuszczalną budowę
obiektu oraz ustala operacje, które wolno wykonywać na obiekcie
lasa :
Wszystkie obiekty, które mają ten sam podzbiór atrybutów i metod mogą być zgrupowane w jednej
klasie.
• H
ierarchia klas i dziedziczenie :
Klasy w systemie tworzą hierarchię. Klasa może mieć dowolną liczbę podklas może mieć też nadklasę
(czasami kilka nadklas). Obiekty należące do danej klasy mogą dziedziczyć atrybuty i metody od nadklasy (czasami kilku nadklas - dziedziczenie wielokrotne).
• A
trybuty i metody :
Obiekt charakteryzuje się jednym lub więcej atrybutami i jedną lub więcej metodami, które operują
na wartościach atrybutów.
• H
ermetyzacja (enkapsulacja) i przekazywanie komunikatów :
W celu uzyskania dostępu do wartości atrybutów i metod obiektu muszą zostać wysłane odpowiednie
komunikaty. Nie ma innej drogi dostępu do obiektu oprócz ogólnie dostępnego interfejsu, który jest
dla niego określony. Inaczej mówiąc hermetyzacja polega na ukrywaniu szczegółów implementacji
• P olimorfizm
Polimorfizm to wykazywanie rożna form działania podczas wywołania metody w zależności od
tego jakiego typu obiekt jest wskazywany (wywoływany)
Ten sam komunikat wysłany po "dotarciu" do różnych obiektu może wywołać różne działanie.
Największa zaletą obiektowych baz danych jest to, że przy ich wykorzystaniu można wiernie i w
sposób bardziej naturalny przedstawić sytuacje zachodzące w świecie rzeczywistym. Najprostszym
przykładem jest możliwość przechowywanie obiektów złożonych. W relacyjnej bazie danych w kolumnie wiersza można przechowywać tylko pojedyncza atomową wartość. Obiekt złożony składa
się natomiast z innych obiektów, które z kolei same mogą zawierać inne obiekty. Większość obiektów
świata rzeczywistego ma właśnie taki charakter.