background image

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: 

 

1)  Obiekt 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 

 

2)  Atrybuty i metody: 

Obiekt charakteryzuje się jednym lub więcej atrybutami i jedną lub więcej metodami, które operują 

na wartościach atrybutów. 

 

3)  Klasa: 

Wszystkie obiekty, które mają ten sam podzbiór atrybutów i metod mogą być zgrupowane w jednej 

klasie. 

 

background image

4)  Hierarchia 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ć atrybutu i 

metody od nadklasy (czasami kilku nadklas -  dziedziczenie wielokrotne). 

 

5)  Hermetyzacja 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. 

 

4)  Polimorfizm 

W  zależności  od  bieżącego  kontekstu  obiektów  mogą  one  różnie  reagować  na  przychodzące 

komunikaty.  Jednej  interfejs  dostępu  do  obiektu  może  być  wykorzystany  do  realizacji  różnych 

zadań-algorytmów. 

 

Największa zaletą modelu obiektowego jest to, że przy jego wykorzystaniu można w sposób bardziej 

naturalny  niż  w  przypadku  modelu  obiektowego  przedstawić  sytuacje  zachodzące  w  świecie 

rzeczywistym.  Najprostszym  przykładem  jest  choćby  możliwość  przechowywanie  obiektów 

złożonych.  W  relacyjnej  bazie  danych  w  kolumnie  wiersza  można  przechowywać  tylko  pojedynczą 

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.  

 

 

 

 

Przykładowe oprogramowanie do zarządzania bazami danych wykorzystujące model obiektowy  (za 

Wikipedia): 

Caché 

Cerebrum 

ConceptBase 

Db4o 

eXtremeDB 

ENCORE 

Facets (dawniej znana jako GemStone-J) 

Gemstone Database Management System 

Generic Object Oriented Database System (GOODS) [2] 

Haley Systems 

background image

JADE 

Jasmine Object Database 

JDOInstruments 

JODB (Java Objects Database) [3] 

Magma Object Database [4] 

MyOODB [5] 

ObjectDB [6] 

Objectivity/DB 

ObjectStore 

ONTOS 

Orient ODBMS (oprogramowanie) [7] 

Ozone Database Project [8] 

Perst 

Statice 

Versant Object Database [9] 

Zope Object Database 

 

W praktyce są one jednak wykorzystywane niezwykle rzadko.