Obiektowe bazy danych
Opracował : Jarosław Koszela
Warszawa 15.02.2001
Tematyka
•
Podstawowe pojęcia z zakresu
obiektowości
•
Obszar oddziaływania obiektowości
•
Podstawowe założenia nakładane na
OBD
•
Cechy i kryteria oceny OBD
•
ODMG
Geneza obiektowości w
informatyce
•
1967 rok
– powstanie języka Simula-
67 (klasy, dziedziczenie, funkcje
wirtualne)
•
1980 rok
– powstanie języka
Smalltalk (do dziś uważany jako
wzorzec obiektowości)
•
Powstanie i rozwój metod, notacji
wykorzystujących obiekty w procesie
projektowania systemów
informatycznych (OMT, UML);
•
Rozwój narzędzi i technologii
wykorzystujących obiekty (OOL, OBL;
CORBA,COM; ODB, RAD)
•
Mechanizm abstrakcji
– budowa
abstrakcyjnych struktur i operowanie
tymi strukturami bez wnikania w ich
budowę;
•
Mechanizm kompozycji i dekompozycji
– grupowanie struktur w coraz
większe bryły; dekomponowanie
złożonych struktur na mniejsze
elementy i możliwość rozpatrywania
tych elementów niezależnie od całości
i od pozostałych elementów;
•
Ponowne użycie
– możliwość
wykorzystanie wcześniej stworzonych
obiektów w innych projektach;
Podstawowe pojęcia
•
Obiekt (instancja)
– byt abstrakcyjny
lub rzeczywisty opisujący pewne
pojęcie lub rzecz obserwowaną w
świecie rzeczywistym, mogący
posiadać stan i swoje zachowanie
(behawior);
•
Klasa
– zbiór obiektów o jednakowej
strukturze wewnętrznej (atrybutach i
metodach);
•
Tożsamość obiektu
– każdy obiekt
rozróżnialny jest poprzez swoje
niezależne istnienie (byt) – adres
fizyczny, adres strukturalny, surogat;
Podstawowe pojęcia
•
Hermetyzacja
– zasada odgradzania
od świata zewnętrznego szczegółów
realizacyjnych abstrakcji programowej
(procedury, modułu, klasy).
Obudowywanie danych polega na
udostępnianiu na zewnątrz tylko
niezbędnych metod działania na
obiekcie danych, wyraźnym
oddzieleniu jego interfejsu od
implementacji.
•
Powiązania (związki, asocjacje)
–
obiekty mogą być połączone poprzez
specjalne powiązania
(wskaźniki/referencje ; fizyczne,
symboliczne);
Podstawowe pojęcia
•
Hierarchia klas i dziedziczenie
– klasy
są organizowane w hierarchię (lub
inną strukturę) zakresów
znaczeniowych; Klasy potomne
dziedziczą niezmienniki (definicje
atrybutów, metod, zdarzeń, itp.);
•
Operacje, metody, komunikaty
–
procedury wykonywane wewnątrz
obiektu. Obiekt wykonuje jedną z
przypisanych do niego operacji po
wysłaniu do niego komunikatu
określającego jej nazwę i parametry;
Podstawowe pojęcia
•
Polimorfizm (późne wiązanie)
–
możliwość określania za pomocą
jednej nazwy wielu metod (działań na
obiektach), których właściwy dobór
odbywa się w trakcie wykonania
programu (metod, typów);
•
Trwałość
– niektóre obiekty zachowują
swój stan dłużej niż czas pojedynczego
uruchomienia programu. Trwałość jest
podstawową własnością obiektów
przechowywanych w bazach danych;
Podstawowe pojęcia
•
Inżynieria oprogramowania
– metody
analizy i projektowania SI, notacje
graficzne (OMT, Booch, Coad/Yourdon,
UML, ...);
•
Języki programowania
– powstanie
nowej grupy języków OBL (Smalltalk,
Eiffel, Object C, ...) , modernizacja
języków strukturalnych- OOL (C, C++,
Pascal, Modula, Ada, ...) oraz
powstanie i rozwój nowych środowisk
programistycznych (4GL, RAD)
Obszary oddziaływania
obiektowości
•
Bazy danych
– rozszerzenie SZRDB o
elementy związane z ideą
obiektowości (Oracle, IBM DB2/UDB2,
Informix, Sybase, SQL3, SQLJ,
PL/SQL, itd..) , powstanie i rozwój
SZOBD (GemStone, O2, Versant,
ObjectStore, Poet, Intersystems, OQL,
OSQL, itd. );
•
Współdziałanie systemów
heterogenicznych
– rozwój innych
systemów inf. opartych o klasy i
obiekty (np. systemy operacyjne) oraz
możliwość wymiany informacji
pomiędzy niezależnie budowanymi
heterogenicznymi systemami (OMG
CORBA, COM/DCOM)
Obszary oddziaływania obiektowości
Obszary oddziaływania
obiektowości
algorytmy + struktury danych = programy
[metody + atrybuty] = obiekty
Podstawowe założenia nakładane na
obiektowe bazy danych :
•
obowiązkowe
– złożone obiekty,
tożsamość obiektów, hermetyzacja, typy
lub klasy, dziedziczenie, przesłanianie i
późne wiązanie metod, rozszerzalność,
kompletność obliczeniowa, trwałość,
zarządzanie pamięcią pomocniczą,
współbieżność, odtwarzanie oraz
udogodnienia dla zapytań ad hoc.
Obiektowe bazy danych
•
opcjonalne
– wielokrotne
dziedziczeniem (wielobazowe), kontrola
typów i wnioskowanie o typie,
rozproszenie bazy danych, transakcje
projektowe (długie lub zagnieżdżone)
oraz wersje;
•
otwarte
– projektanci systemów mają
pewną dowolność co do ich wyboru –
paradygmat programowania , system
typów , system reprezentacji;
Obiektowe bazy danych
Obiektowe bazy danych
Cechy obiektowych baz danych
•
Język schematu
- jasny, naturalny,
uniwersalny, powszechnie akceptowany
model danych i odpowiadający temu
modelowi język opisu danych;
•
Języki zapytań
- zapytania
interakcyjne ad hoc, zagnieżdżanie
zapytań;
•
Programowanie poprzez języki
zapytań
-bezszwowa integracja języka
zapytań (języka deklaratywnego) z
językiem programowania (językiem
imperatywnym); perspektywy,
zapamiętane procedury, reguły;
•
Optymalizacja zapytań
;
•
Obiektowe programowanie wizyjne
(wizualne);
•
Interfejsy (wiązania)
do
programowania aplikacji (API) dla
popularnych języków programowania;
•
Wygodne środowisko
do tworzenia i
uruchamiania aplikacji;
•
Dynamiczna autoryzacja dostępu
;
•
Sprawne zarządzanie pamięcią
zewnętrzną, indeksowanie, buforowanie,
odśmiecanie;
•
Rozszerzalność, skalowalność
,
dynamiczna ewolucja schematu
Cechy obiektowych baz danych
•
Wspomaganie dla więzów
integralności i aktywnych reguł;
•
Biblioteki klas
- dobrze
udokumentowane, uniwersalne,
elastyczne i minimalne oraz inne środki
ponownego użycia;
•
Zintegrowanie systemu z bogatym
zestawem narzędzi i udogodnień
(data
mining, CASE, data warehouses, pakiety
statystyczne, ...);
Cechy obiektowych baz danych
•
Zarządzanie transakcjami
- kryterium
ACID
– niepodzielność (Atomicity)
– zgodność (Consistency)
– izolacja (Isolation)
– trwałość (Durability);
•
Składowanie (backup), odwracanie
(rollback) i odtwarzanie (recovery)
;
Cechy obiektowych baz danych
Cechy obiektowych baz danych
•
Wersjonowanie, własności
temporalne, obiekty archiwalne
;
•
Integracja z serwisami Internetowymi
;
•
Współdziałanie systemów
heterogenicznych
– współpraca z
oprogramowaniem komponentowym
(CORBA, OpenDoc, JavaBeans, ActiveX);
•
Architektura klient-serwer
;
•
Zarządzanie rozproszonymi obiektami
,
rozproszone przetwarzanie,
optymalizacja zapytań w systemach
rozproszonych ;
Kryteria oceny obiektowych baz
danych
•
Wydajność (performance)
- jak szybki
jest produkt
•
Skalowalność (scalability)
- jak
produkt będzie działać gdy wzrośnie
liczba użytkowników i objętość danych?
•
Funkcjonalność (functionality)
- jakie
możliwosci i cechy produkt oferuje?
•
Zgodność ze standardami
- czy
produkt uzależnia od jednego
dostawcy?
•
Łatwość użycia (usability)
- ile wysiłku
kosztuje nauczenie się obsługi produktu
i jak łatwo będzie się go używać?
Kryteria oceny obiektowych baz
danych
•
Nieuszkadzalność (reliability)
- jak
często produkt zawodzi?
•
Wspomaganie (support)
- czy
dostawca produktu zapewnia pomoc i
jest odpowiedzialny?
•
Środowisko (environment)
- na jakim
sprzęcie/systemie operacyjnym pracuje
produkt ?
•
Żywotność (viability)
- czy można
oczekiwać, że dostawca będzie
podtrzymywać produkt w przyszłości?
•
Cena (price)
- ile kosztuje produkt (w
krótkim czasie i w oczekiwanym
horyzoncie czasowym)?
ODMG
ODMG - Object Database Management
Group
- Jest to konsorcjum powstałe w
wyniku porozumienia kilkunastu firm
oferujących swoje produkty określane
jako “obiektowe systemy zarządzania
bazami danych”.
Wersje :
•
ODMG-93 wersja 1.1 (grudzień 1993)
•
ODMG-93 wersja 1.2 (styczeń 1996)
•
ODMG wersja 2.0 (sierpień 1997)
ODMG
ODMG
Co podlega standaryzacji?
•
+
Interfejsy
– bez wnętrza OSZBD lub
jego architektury;
•
+
Model obiektowy
(pojęcia,
ograniczenia, terminologia);
•
+
Język definicji obiektów;
•
+/-
Format wymiany informacji
(przekazywania obiektów);
•
+/-
Obiektowy język zapytań;
ODMG
Co podlega standaryzacji?
•
-
Abstrakcje wspomagające język
zapytań
(perspektywy, zapamiętane
procedury, aktywne reguły,...);
•
+
Wiązania do języków
programowania
- C++, Smalltalk,
Java,...;
•
-
Zintegrowany język programowania
aplikacji oparty o język zapytań (do
pisania metod);
•
-
Pomosty ( gateways)
do innych
systemów (np. relacyjnych);
ODMG
Co podlega standaryzacji?
•
-
Administracje systemem
, katalogi
BD, dostęp do katalogów
•
-
Prawa dostępu, bezpieczeństwo
•
-
Narzędzia i usługi
(klasy systemowe,
biblioteki klas)
•
-
Protokoły wymiany informacji w
sieci
(np. IIOP)
ODMG – wersja 2.0
ODMG 2.0:
•
Ramowa architektura OSZBD
•
Model obiektowy
•
Języki specyfikacji obiektów
– język
definicji obiektów ODL (nadzbiór OMG
IDL), format wymiany obiektów
•
Obiektowy język zapytań OQL
(składnia wzorowana na SQL)
•
Wiązanie do C++,
Smalltalk’a, Java
•
Dodatki
- porównanie z modelem
obiektowym OMG, OBD w środowisku
OMG CORBA
BD-
SQL
Tech.Ob.
CORBA
Języki-
Java,C++
ODMG – wersja 2.0 – architektura
ramowa
Bazy relacyjne – bazy obiektowe
Bazy relacyjne
Bazy obiektowe
•
Dane zawarte w tabelach
•
Tabele składają się z
kolumn
•
Typy - predefiniowalne
•
Liczba wierszy zmienna
•
Value-based
•
Nie ma wskaźników lecz
klucze zewnętrzne
•
Obiekt w bazie
reprezentuje obiekt w
świecie rzeczywistym
•
Typ obiektowy (klasa):
•
definicja złożonego
typu danych (może
zawierać inne typy
obiektowe lub ich
kolekcje)
•
procedury (metody) i
operatory do
manipulowania tymi
danymi
•
Identity-based
•
Hermetyzacja
•
Dziedziczenie:
•
strukturalne:
potomek dziedziczy
strukture danych
•
behawioralne:
potomek dziedziczy
metody i operatory
C
e
c
h
y
p
o
d
st
a
w
o
w
e
Bazy relacyjne – bazy obiektowe
Bazy relacyjne
Bazy obiektowe
•
niezależność od języka
programowania
•
sprawdzone, dobrze
zdefiniowana teoria
•
możliwość zarządzania
wielką liczbą danych
•
możliwość złożonych
kryteriów
wyszukiwawczych
•
możliwość dostępu do
danych fizycznych
•
dobre mechanizmy
kontroli dostępu do
danych
•
mechanizmy perspektyw
•
dość łatwa reprezentacja
świata
•
dokładnie reprezentuje
złożone zależności między
obiektami
•
łatwość działania na
złożonych obiektach
•
duża podatność na
zmiany
•
możliwość definiowania
własnych typów, metod
•
dobra integracja z
językami programowania
ogólnego przeznaczenia
(np. C++, Smalltalk)
•
ujednolicony model
pojęciowy - obiektowe
podejście do analizy,
projektowania i
implementacji
Z
a
le
ty
Bazy relacyjne – bazy obiektowe
Bazy relacyjne
Bazy obiektowe
•
brak bezpośredniej
reprezentacji relacji typu
n-m
•
dla trudniejszych
problemów, bardzo dużo
tabel
•
mało naturalna
reprezentacja danych
•
ograniczona podatność
na zmiany
•
brak złożonych typów
danych
•
trudne operowanie na
danych złożonych
•
trudne operowanie na
danych rozproszonych w
sieci heterogenicznej
•
niezgodność z modelem
używanym przez języki
ogólnego przeznaczenia
(impedance mismatch)
•
powiązanie z jednym
językiem programowania
•
słaba obsługa
przeszukiwania danych
•
brak powszechnie
zaakceptowanego języka
zapytań
•
brak możliwości
optymalizacji zapytań
•
trudny lub nawet
niemożliwy dostęp do
fizycznych danych
•
słaba kontrola dostępu
•
małe możliwości
optymalizacji pracy
serwera
W
a
d
y
Bazy relacyjne – bazy obiektowe
Bazy relacyjne
Bazy obiektowe
•
dane są proste, nie
zagnieżdżone, łatwe do
umieszczenia w tablicy
•
dane maja postać bierną,
a procesy korzystające z
danych stale się zmieniają
•
często potrzeba
wyszukać dane
spełniające różnorodne
warunki
•
dane maja złożoną lub
zagnieżdżoną strukturę
zdefiniowana przez
użytkownika
•
dane tworzą hierarchie
•
dane są rozproszone w
sieci heterogenicznej
•
dane dynamicznie
zmieniają swój rozmiar
•
Oracle, Informix,
Sybase, Ingres, DB2,
Ingress, Gupta, Access
•
GemStone, O2,
Persistence, Versant,
POET, Objectivity, ODI
L
e
p
sz
e
g
d
y
..
.
Kierunek rozwoju obiektowości
System
operacyjny
BD-SQL
aplikacje
aplikacje
Technologia wykorzystywana w obecnie
eksploatowanych systemach informatycznych
Kierunek rozwoju obiektowości
System
operacyjny
ORBD
aplikacje
aplikacje
Technologia wykorzystywana w obecnie
tworzonych systemach informatycznych
COM,
CORBA
Kierunek rozwoju obiektowości
System
operacyjny
Klasy,
obiekt
Klasy,
obiekty
Technologia „jutra” w tworzeniu
systemów informatycznych
Klasy,
obiekt
Klasy,
obiekt