Model relacyjno-obiektowy

Model relacyjno-obiektowy

Jest mieszanym modelem bazodanowym, a jego zastosowanie jest bardziej powszechne niż w przypadku modelu obiektowego. Dzieje się tak ze względu na trudną implementację i niezadowalającą wydajność (w niektórych zastosowaniach) typowego modelu obiektowego. Model ten pozwala w relacyjnych tabelach tworzyć kolumny, w których przechowywane są dane typu obiektowego, pozwala na definiowanie zmiennych oraz metod, które będą wykonywane na danych wprowadzanych do obiektu.

Obiektowy model danych
Opiera się na koncepcji obiektów (podobnie jak w projektowaniu obiektowym – obiekt jest odwzorowaniem rzeczywistości lub abstrakcji). Odwołania do określonego obiektu w tym modelu bazy danych są wykonywane za pomocą interfejsu, dzięki któremu są zachowane integralność i bezpieczeństwo danych. Obiektowe bazy danych korzystają z obiektowego języka zapytań OQL (Object Query Language). Każdy obiekt ma zaprojektowany interfejs określający metody dostępu do niego. Obecnie coraz popularniejszy staje się standard JDO (Java Data Object) stworzony przez firmę Sun Microsystems. W ramach tego standardu rozwinął się obiektowy język zapytań JDOQL (Java Data Object Query Language). Dość powszechnym niekomercyjnym i relacyjnym systemem baz danych mającym obiektowe rozszerzenie jest PostgreSQL.

Obiektowe bazy danych do przechowywania danych używają obiektów posiadających swoją tożsamość (tożsamość obiektu – identity – która wyznacza jego identyfikator). W obiektowej bazie danych nie może być dwóch identycznych obiektów o identycznych identyfikatorach. Obiekty charakteryzujące się tymi samymi metodami i atrybutami są instancjami tej samej klasy stanowiącej dla nich model. Zwykle fragmentem definicji klasy są atrybuty, które w rozumieniu obiektowego modelu danych odpowiadają atrybutom (kolumnom) relacyjnej bazy danych. Podobnie jak w programowaniu obiektowym, klasy mają przypisane funkcje nazywane metodami, działające w obrębie obiektu. Obiektowy model danych zawiera również koncepcję hermetyzacji, hierarchii klas i dziedziczenia.

Hermetyzacja w zakresie obiektowego modelu danych wpływa na spójność i integralność odwzorowania rzeczywistości, implementując przy tym aspekty inkapsulacji znane z programowania obiektowego.

Relacyjny model danych opracował w latach osiemdziesiątych XX w. Edgar Frank Codd. Opublikował on wówczas jedną z najważniejszych swoich prac pt. Relacyjny model logiczny dla dużych wielodostępnych baz danych. Przedsięwzięcie Codda znalazło entuzjastów na Uniwersytecie Kalifornijskim w Berkeley oraz w firmie IBM. Opracowane wówczas systemy baz danych były rozwijane nie tylko w celach komercyjnych. Larry Ellison, współfundator korporacji Oracle, projekt systemu zarządzania bazami danych oparł na założeniu Codda. Nazwa Oracle jest nie tylko określeniem DBMS, lecz także nazwą kodową projektu CIA, nad którym pracowali założyciele Oracle w korporacji Ampex Corporation.

Oprócz Oracle rozwijały się w tym czasie takie bazy danych, jak Sybase lub Informix, używające języka SQL. W 1985 r. Codd przedstawił 12 zasad opisujących model relacyjny baz danych. Zasady te rozwinął do 333 w książce wydanej w 1990 r. Podstawą relacyjnego modelu baz danych jest teoriomnogościowe pojęcie relacji. Dane przechowuje się w tabelach, nazywanych relacjami, składających się z wierszy (krotek) i kolumn (atrybutów).

Frank Codd określił 12 podstawowych zasad, które musiał spełniać system, by mógł zarządzać relacyjnym modelem danych.