background image

 

 

Obiektowe bazy danych

Jarosław Koszela

background image

 

 

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

background image

 

 

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)

background image

 

 

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

background image

 

 

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

background image

 

 

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

background image

 

 

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

background image

 

 

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

background image

 

 

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

background image

 

 

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

background image

 

 

Obszary oddziaływania 
obiektowości

algorytmy + struktury danych = programy

[metody + atrybuty] = obiekty

background image

 

 

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

background image

 

 

 

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

background image

 

 

Obiektowe bazy danych

background image

 

 

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ń

;

background image

 

 

 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

background image

 

 

 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

background image

 

 

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

background image

 

 

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, globalny schemat, 
integracja schematów federacyjna baza 
danych ;

background image

 

 

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ć?

background image

 

 

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)? 

background image

 

 

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) 

background image

 

 

ODMG

background image

 

 

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ń;

background image

 

 

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);

background image

 

 

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)

background image

 

 

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++

background image

 

 

ODMG – wersja 2.0 – architektura 
ramowa

background image

 

 

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

p

o

d

st

a

w

o

w

e

background image

 

 

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

background image

 

 

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

background image

 

 

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

..

.

background image

 

 

Kierunek rozwoju obiektowości

System

operacyjny

BD-SQL

aplikacje

aplikacje

Technologia wykorzystywana w obecnie 

eksploatowanych systemach informatycznych

background image

 

 

Kierunek rozwoju obiektowości

System

operacyjny

ORBD

aplikacje

aplikacje

Technologia wykorzystywana w obecnie 

tworzonych systemach informatycznych

COM,

CORBA

background image

 

 

Kierunek rozwoju obiektowości

System

operacyjny

Klasy,

obiekt

Klasy,

obiekty

Technologia „jutra” w tworzeniu

 systemów informatycznych

Klasy,

obiekt

Klasy,

obiekt

background image

 

 

A

B

C

D

E

F

W0

W1

W2

Wn

?

?

?

Rozproszenie jednego obiektowego 
schematu struktury systemu na 
wiele węzłów

background image

 

 

W1

W2

Wn

?

W0

Tworzenie nowego obiektowego 
schematu struktury systemu przy 
wykorzystaniu części (całości) wielu 
istniejących struktur

background image

 

 

Rozproszenie jednego obiektowego 
schematu struktury systemu na 
wiele węzłów

Podstawowe aspekty rozproszenia 

struktury systemu obiektowego :

Efektywne (optymalne) 
rozproszenie struktury 
obiektowego systemu na wiele 
węzłów, przy uwzględnieniu 
kosztów:

rozproszenia (utrzymanie n-
węzłów, niezawodność),

replikacji,

komunikacji,

realizacji zapytań w ROBD,

obsługa transakcji w ROBD,

background image

 

 

Rozproszenie jednego obiektowego 
schematu struktury systemu na 
wiele węzłów

Podstawowe aspekty rozproszenia 

struktury systemu obiektowego :

Zapewnienie użytkownikom 
„przezroczystości” rozproszenia,

zapewnienie spójności, 
integralności OBD,

Zapewnienie odpowiedniego 
poziomu wydajności i 
niezawodności,

stworzenie  „globalnego 
schematu”,

heterogeniczność 
wykorzystywanych środowisk w 
ROBD

„przezroczystość” komunikacji 
pomiędzy węzłami


Document Outline