Objektorienterade databaser

Vid objektorienterad systemutveckling leder analysarbetet fram till en model som befolkas av objekt. Klasser definierar objektens egenskaper, och olika användningsfall visar hur objekt skapas, samverkar och förintas.

En del av dessa objekt är bärare av information som man vid designen vill kunna lagra i en informationsbank. Objekten påminner starkt om poster i en relationsdatabas (RDBMS), och klasserna påminner om tabeller.

Den objektorienterade modellen föreskriver emellertid att objekten, och endast objekten har tillgång till de data de är bärare av (attributen). Det enda tillåtna sättet att växelverka med ett objektät via dess publicerade gränssnitt, metoderna.

Det är således ytligt sett möjligt att transformera en objekorienterad analysmodell genom att dela upp den i en databasdel som implementeras med hjälp av en relationsdatabas, och processdelar som kan kodas i C++ eller COBOL. Hur tilltalande detta konstruktionssät än må te sig för den som investerat i RDBMS-kunskap, så uppstår alltid anpassningsproblem, varav det svåraste är prestandaförlusten. En RDBMS är optimerad för för åtkomst av objektet med hjälp av värdet i ett speciellt utvalt attribut (nyckeln), emedan den objekorienterade paradigmen bygger på att objektet har en egen identitet, helt oberoende av det interna tillståndet. Ett typiskt användningsfall i ett objektorienterat system innehåller växelverkan med ett stort antal objekt av olika klass, vilket i en RDBMS innebär många kostsamma åtkomstoperationer.

Ett objektorienterat databassystem (ODBMS) innehåller åtkomstmekanismer som direkt motsvarar objektmodellen. ODBMS innehåller ett API (anropsgränssnitt) antingen i ett konventionellt programmeringsspråk eller ett säskilt IDL (Interface Definition Language). Användningen av objektorientering i databassystem, och framför allt i distrubuerade system medför fantastiska möjligheter, men också en rik flora av problem. Standardiseringsarbete bedrivs inom ODMG, som är en underavdelning inom OMG (Object Management Group).