Obiektowe Bazy Danych (obd) - własności charakterystyka (obd) ; wielowersyjne bazy danych, metody zarządzania obiektowymi bazami danych.
Około 90% obecnie występujących baz danych to bazy relacyjne (Oracle, Progress, DBase, Informix, FoxPro, Access, Gupta). Przed nimi były baza hierarchiczne i sieciowe. Zaletami relacyjnych są: prostota struktur danych, nieproceduralny język zapytań (co ma być wyszukane, nie jak) - deklaratywny. Na standardzie SQL’a., niezależność fizyczna i logiczna danych (logika - aplikacja, fizyka - nośnik),optymalizatory zapytań, ochrona danych
Prostota może być jednak także wadą, czasami proste związki nie wystarczają, wymagane są złożone struktury (zwłaszcza ich związki) (np. obrazy graficzne, zasłanianie i odsłanianie powierzchni). Przy danych tekstowych chcielibyśmy operować różnymi metodami.(np. analizy leksykograficzne).
Występują 2 trendy rozwoju:
• wzbogacenie relacyjnego o inne, bardziej złożone związki lub możliwości (np. Informix), gdzie użytkownik może definiować swoje relacje np. graficzne
• obiektowe bazy danych
Relacyjny model danych ma 2 nieadekwatności: statyczną i dynamiczną
Statyczna - relacje na ogół odzwierciedlają rzeczywistość. W tabeli chcemy zapisać najważniejsze cechy, atrybuty modelu. Tabele później możemy modyfikować. Może powstać tabela nie odzwierciedlająca rzeczywistości. (Przy użyciu prostych semantyczne związków możemy utworzyć bezsensownie strukturę)
Dynamiczna - dane powinny być kojarzone z operacjami na nich wykonywanymi, powinny stanowić całość. Te bazy nie łączą tabel, relacji z metodami, funkcjami DBMS (np. wyszukiwanie danych). Wyeliminować można to przez powstanie baz obiektowych. Obiekty (atrybuty i metody) są proste i złożone. Istnieją hierarchia kompozycji obiektów i hierarchia dziedziczenia metod.
Obiektowa baza danych - występują obiekty z metodami i 2 hierarchie: kompozycji i dziedziczenia metod. Obiekty należą do klas. Obiektowe BD zapewniają:
■ ochronę danych,
• wsp ółbieżność
• oddzielenie struktury fizycznej i logicznej
• spójność bazy danych (nie może powstać stan dwuznacznych danych po operacji)
Istnieją 3 rodzaje obiektowych baz danych:
1) Cechy baz danych dodano do obiektowego języka programowania (Gem Stone). Dane w obiektach należą do klas. (Między nimi przesyłane są komunikaty: nazwa odbiornika, nazwa metody i parametry metody)
2) Do cech systemu baz danych mających język programowania nieobiektowego dodano obiektowe podejście (Ontos na C++). Cechy - prosty zapis struktury połączonych z metodami.
3) Podejście obiektowe dodane do relacyjnych BD. Niekoniecznie muszą to być relacje, mogą być obiekty (IRIS). Bardzo rozbudowane, język SQL także rozbudowany do OSQL (obiektowego). Są obiekty i są funkcje. Popularnym przykładem jest także 02 - obiektowy. Działamy na zdegenerowanych obiektach do postaci relacyjnej. POET - baza z dość ciężkim interfejsem wyszukiwania danych (trzeba pisać program w C++ by móc na niej pracować, nie ma selecfa)
Obiekty mogą być powiązane różnorako, Przez przynależność do klas i... Przy modyfikacji atrybutu obiektu musimy wziąć pod uwagę, czy nie jest komponentem bardziej złożonego obiektu. Metody blokowania muszą dotyczyć hierarchii dziedziczenia i kompozycji. Struktury - drzewa kompozycji muszą być zapamiętane. Modyfikacja i algorytm bardzo skomplikowane. Wsp ółbieżność - algorytm wydłużony - operowanie może być tradycyjne. Występuje w dużym stopniu problem spójności danych - także rozbudowany algorytm. Ponadto występują kłopoty z indeksowaniem.
Wielowersyjne BD np. proces projektowania samochodu przez kilka zespołów, w pewnym momencie projekt musi być widoczny dla innych zespołów. Muszą występować warianty historyczne, w algorytmie podejmowania decyzji ważną rolę grają stare wartości. Są dwa lypy takich baz:
• z wersj ami ob iektów - historyczne
• z wersj ami ob iektów - wariantowe
W systemie baz danych istnieje wiele wersji obiektów, nie muszą być ze sobą spójne. Mogą istnieć elementy nie tworzące kompletnej wersji (wariantowe), wielowersyjne zaś:
■ z wersj ami ob iektów
• z wersjami baz danych
Z wersjami baz danych występuje problem redundantności, z reguły występują systemy z wersjami obiektów. Wśród obiektów wyróżnia się obiekt generyczny - ostatni, aktualny. Do hierarchii kompozycji, dziedziczenia dochodzi hierarchia wariantów (wersji). Może to być postać rozbudowanego grafit skierowanego (drzewo wywodu wersji - dla każdego obiektu). W drzewie wywodu wersji wszystkie muszą być blokowane w wypadku blokady. Powinno się też eliminować powtarzanie informacji w wersjach.
Każdy obiekt musi mieć identyfikator. W przypadku wersji - także jej identyfikator. Nie wszystkie obiekty muszą mieć wersje.
Wersje z bazami danych. Blokujemy obiekty w całej wersji - jest to o wiele prostsze jeśli chodzi o redundancję. Przy blokowaniu wykorzystujemy drzewo hierarchii wersji. Transakcje są realizowane w jednej wersji, a także w innych wersjach: obiektowe - wewnątrz jednej wersji BD a bazowe - na wielu wersjach