Objektovy PostgreSQL?

Radek Kanovsky rk na dat.cz
Úterý Říjen 16 13:48:16 CEST 2001


On Tue, Oct 16, 2001 at 10:43:38AM +0200, Karel Zak wrote:

> > S cim su zatial problemy je rychlost - relacna databaza je z hladiska
> > implementacie jednoduchsia a ma za sebou roky vyvoja, OO databazy
> > su relativne mlade.
>
>  Nevim, nejak moc do veci okolo OO nedelam, ale rekl bych, ze
>  vyvoj se uz dost dlouho drzi objektove-relacnich DB. Take tak 
>  jsem to myslel. Ted nad tim premyslim a stejne mi neni uplne 
>  jasne propojeni tech objektu. Porad my z toho vychazi nejaky 
>  model v kterem budou relace (jinak by to byl navrat k nejakemu
>  hierarchickemu nebo sitovemu modelu)... 

Model u OODB je - jak jinak - objektovy. Kazdy objekt ma svoje OID,
pres ktere je primo pristupny. OID je vetsinou jednoduse mapovano na
misto na disku, kde jsou ulozeny hodnoty atributu. Vztahy mezi objekty
v databazi jsou oproti relacnim databazim primocare. Pokud chci v SQL
dostat polozky faktury, musim na to jit pres ID faktury a v tabulce
polozky_faktury vybrat ze vsech radku ty, ktere maji v polozce ID
hodnotu faktura.ID. Naproti tomu v OODB mam u kazde faktury primo pole
referenci/pointeru na objekty polozek (referencni integrita je tu
teda zarucena jaksi automaticky nebo nema smysl o ni vubec hovorit).
Z toho plyne vysoka rychlost u takto strukturovanych dat. Vyhnete
se pouzivani indexu pro vyhledani provazanych objektu. OODB se velmi
dobre hodi pro aplikace, ktere vyzaduji ukladani slozitych provazanych
struktur, stromu, XML dokumentu (ktere jsou svou povahou stromy a velmi
spatne se ukladaji do relacnich databazi) apod.

Dalsi vyhodou vetsiny OODB je to, ze tridy objektu definuju primo v
jazyce, ve kterem se programuje aplikace. ODMG definuje standard pro
jazyky Java, C++ a Smalltalk pro praci s OODB. Tim se clovek vyhne obcas
schizofrenimu pouzivani dvou jazyku pri vyvoji aplikace (C+SQL apod).
S instancemi objektu se potom pracuje temer stejne, jako kdyby byly
tyto objekty alokovane v pameti. Tedy zadne mapovani vystupu z SQL na
datove typy pouziteho jazyka apod. Vetsina OODB ma i svuj definicni a
dotazovaci jazyk (OQL), ktere jsou take myslim standardizovane.

Na adrese http://www-2.cs.cmu.edu/People/clamen/OODBMS/Manifesto/
je docela dobry popis vlastnosti OODB.

Asi nejvetsim nedostatkem OODB je to, ze neexistuje rozuma open source
OODB. Vetsina dostupnych databazi je necim velmi specialni nebo je v
rozpracovanem stavu. Pokud by nekdo o nejake vedel, mohl by se tady
zminit.

Zdravi,

RadekK


Další informace o konferenci Databases