Model obiektowy bazy danych
Zasady modelu obiektowego bazy danych Podstawowym składnikiem modelu jest obiekt odpowiadający obiektowi rzeczywistości, który ma określoną strukturę danych i zachowanie, opisywane zbiorem metod przyporządkowanych obiektowi. Zbiór obiektów o takiej samej strukturze typów danych i takim samym zbiorze metod stanowi klasę obiektów (typ). Do typu zdefiniowanego przez użytkownika należy zbiór obiektów, zwany też kolekcją obiektów, albo odchodząc od języka obiektowego – zbiór instancji typów. Klasy czy też typy mogą mieć złożoną strukturę. Do ich definicji używa się rozbudowanego zbioru konstruktorów: krotka, zbiór, wielozbiór, lista i tabela. Elementami tej struktury mogą być wartości i odsyłacze do innych obiektów. Każdy obiekt ma swój unikalny identyfikator, który jest niezmienny w całym cyklu życia obiektu. Jest on niezależny od wartości danych opisujących obiekt. Rozwiązanie to nawiązuje do identyfikatorów zapisów wykorzystywanych w hierarchicznych i sieciowych bazach danych.
Zasady modelu obiektowego bazy danych Między klasami obiektów mogą być definiowane zależności strukturalne dwóch typów: agregacji-dekompozycji i generalizacji-specjalizacji. Za pomocą agregacji-dekompozycji można definiować obiekty złożone z innych obiektów, tzw. agregaty. Za pomocą generalizacji-specjalizacji w ramach klasy można wyodrębnić podklasy różniące się między sobą atrybutami lub metodami albo zastosować działania odwrotne. Przykład takich zależności przedstawia rysunek. Między klasami powiązanymi zależnością generalizacji-specjalizacji występuje zjawisko dziedziczenia. Podklasy dziedziczą atrybuty i metody od klasy nadrzędnej. Praktycznie oznacza to, że dany element opisu klasy jest definiowany tylko raz w klasie najwyższej. Jest on następnie wykorzystywany we wszystkich klasach podrzędnych. Klasy mogą być powiązane zależnościami asocjacyjnymi. Wiążą one wystąpienia klas, niepowiązanych zależnościami strukturalnymi. Struktura wewnętrzna obiektu jest niedostępna dla innych obiektów. Obiekty mogą oddziaływać na siebie tylko za pomocą dopuszczalnych komunikatów. Komunikaty te stanowią wywołania metod zdefiniowanych dla danej klasy obiektów. Jest to zjawisko hermetyzacji obiektów.
Propozycje standaryzacyjne ODMG-93 Zawierają definicje modelu obiektów, języka definiowania obiektów ODL, języka zapytań OQL oraz definicje powiązań z obiektowymi językami programowania. ODMG-93 zawiera kilka specyficznych definicji i założeń: Do obiektu mogą być dołączone typy, przy czym wszystkie obiekty jednego typu mają taką samą strukturę i zachowanie. W modelu zdefiniowano wiele typów predefiniowanych. Operacje są zdefiniowane poprzez sygnatury; sygnatura określa nazwę operacji, nazwy i typy argumentów oraz zwracanej wartości. Stan obiektu jest definiowany przez wartości zbioru atrybutów przyporządkowanych obiektowi; atrybuty te mogą być albo wartościami realnymi (literałami), albo łącznikami do innych obiektów; łączniki te mają charakter binarny i mogą definiować tylko trzy typy związków: 1:1, 1:n, n:m. Zakłada się możliwość definiowania kluczy jako wyznaczonych atrybutów typu.
Perspektywy i wersje obiektów W obiektowych bazach danych dużego znaczenia nabierają perspektywy i tzw. wersje obiektów. Perspektywy, inaczej mówiąc modele zewnętrzne bazy danych, mogą przybierać w relacyjnych bazach danych skomplikowane formy. Mogą one być definiowane jako: Klasy wirtualne, czyli podzbiory obiektów klas rzeczywistych. Klasy wirtualne mające obiekty wirtualne. Schematy wirtualne, stanowiące podzbiory klas rzeczywistych i powiązań między nimi. Schematy wirtualne, będące zbiorem klas rzeczywistych i wirtualnych. Użytkownicy obiektowej bazy danych mogą więc dysponować całkowicie przekształconymi obrazami obiektów w stosunku do rzeczywistej bazy danych. Zarządzanie wersjami obiektów polega na udostępnianiu użytkownikowi bazy danych możliwości tworzenia i utrzymywania nowych wersji obiektu dzięki obiektom źródłowym. Rozwiązanie to jest szczególnie przydatne we wszystkich zastosowaniach związanych z modelowaniem i projektowaniem. Wiele obiektowych SZBD wspiera w sposób jawny tworzenie i utrzymywanie kolejnych wersji obiektów.