You are on page 1of 31

UNIVERZITET U NOVOM SADU

FAKULTET TEHNIČKIH NAUKA

GEOPROSTORNE BAZE PODATAKA

RELACIONI MODEL PODATAKA SA OBJEKTNIM PROŠIRENJIMA


Relacioni model sa objektnim proširanjima
§  Objektno-relacione baze podataka omogućuju alternativan pristup korištenju
objektne paradigme unutar sistema za upravljanje bazama podataka.
§  Objektni model i objektne baze podataka reprezentuju tzv. Revolucijski pristup
smeštanju i upravljanju kompleksnim objektima u sistemima baza podataka.
•  Pristup se prije svega ogleda u integraciji koncepata objektno-orijentisanih programskih
jezika u koncepte baze podataka.

Laboratorija za geoinformatiku 2.
Objektno-relacioni model
§  Objektno-relacioni model i objektno-relacione baze podataka, reprezentuju tzv.
evolucijski pristup, koji se ogleda u integraciji objektne paradigme u relacioni
model podataka, i njegovim proširenjem objektno-orijentisanim
karakteristikama.

Laboratorija za geoinformatiku 3.
Objektno-relacioni model
§  Osnovna postavka objektno-relacionog modela i objektno-relacionih baza
podataka je upravljanje objektima i pravilima, uz očuvanje kompatibilnosti sa
relacionim modelom i relacionim bazama podataka.
§  Konsenzus nad objektno-relacionim modelom ostvaren je SQL-2003
standardom, i svi glavni proizvođači sistema za upravljanje bazama podataka
nastoje, u što je moguće većem obimu implementirati taj standard.

Laboratorija za geoinformatiku 4.
Objektno-relacioni model
§  Objektno-relacioni model proširuje tradicionalni relacioni model osnovnim objektnim konceptima,
kao što su:
•  apstraktni tipovi podataka,
•  učaurenje,
•  polimorfizam,
•  nasleđivanje itd.

§  Na taj način, podržava se i relacioni i objektni model podataka, odnosno podržava se


delotvornost i funkcionalnost relacionih baza podataka, uz istovremeno proširenje modela
podataka objektnim konceptima, koji omogućuju upravljanje kompleksnim podacima.

Laboratorija za geoinformatiku 5.
Objektno-relacioni model
§  Razvoj objektno-relacionih baza podataka bazira se na saznanju da relacioni
sistemi odgovaraju zahtevima aplikacija koje upravljaju "jednostavnim podacima
sa kompleksnim upitima".

Laboratorija za geoinformatiku 6.
Klasifikacijska matrica aplikacija koje koriste baze
podataka

Sistem
datoteka

Laboratorija za geoinformatiku 7.
Objektni aspekti
§  Objektno-relacioni model karakterišu dva osnovna koncepta:
•  Korisnički definisani tipovi podataka i
•  Relacije
•  čiji elementi mogu biti primerci korisničkih tipova podataka.
•  objektne relacije.

§  Jedna važna osobina korisničkih tipova podataka je da mogu biti (kao i


standardni, jednostavni tipovi) domeni atributa standardnih relacija.

Laboratorija za geoinformatiku 8.
Objektni aspekti
§  Koncept korisničkih tipova podataka omogućuje kreiranje aplikacijski
specifičnih, proizvoljno kompleksnih tipova podataka.
•  Konceptom se prekoračuje jedno od osnovnih ograničenja rigorozno definisanog relacionog
modela, koji podrazumijeva i zahteva, da domeni atributa relacije budu prosti (atomarni,
nedeljivi).
•  Korisnički-definisani tip utemeljen na konceptu apstraktnih tipova podataka,
•  definicija, pored atributa, podrazumeva i specifikaciju operacija nad tim tipom podataka.

Laboratorija za geoinformatiku 9.
Objektni aspekti
§  Koncept relacije iz relacionog modela i dalje je jedan od osnovnih koncepata
objektno-relacionog modela, ali je proširen dopuštanjem atributima n-torki
relacija, da kao domene ne moraju imati samo proste, nego i korisničke tipove
podataka.
•  Ako su elementi relacije primerci korisničkog tipa podataka, onda takvu relaciju nazivamo
objektnom relacijom.

Laboratorija za geoinformatiku 10.


Objektni aspekti
§  Za razliku od relacionog, ne postoji formalna definicija objektnog modela
•  ODMG specifikacija

§  Objektno-relacioni model bazira se na konceptima objektne paradigme

Laboratorija za geoinformatiku 11.


Objektni aspekti
1. Apstraktni tipovi podataka – mogućnost definisanja klase podataka koja se
sastoji od atributa i operacija, uz skrivanje detalja njihove implementacije
2. Nasleđivanje – mogućnost da više tipova podataka dele atribute i operacije
3. Identitet objekata – svaki primerak apstraktnog (korisnički-definisanog) tipa
podataka poseduje jedinstveni identifikator, nevidljiv korisnicima
4.  Polimorfizam – egzistencija više operacija s istim imenom, a s različitom
semantikom, tj. mogućnost rada nad različitim tipovima podataka

Laboratorija za geoinformatiku 12.


Korisnički-definisani tipovi podataka
§  Posebni korisnički-definisani tip baziran je na izvornom tipu, i može biti
•  predefinisani (INTEGER, SMALLINT, FLOAT, REAL, CHARACTER, DATE, …),
•  kolekcijski (ARRAY, ROW, MULTISET) ili
•  referentni tip (REF).

§  Strogo su tipizirani
•  Njihove vrednosti se ne mogu direktno koristiti u izrazima sa vrednostima izvornih tipova,
nego se moraju eksplicitno transformisati korištenjem CAST operatora.

Laboratorija za geoinformatiku 13.


Strukturirani korisnički-definisani tipovi podataka
§  U objektno-relacionom modelu, korisnik može kreirati proizvoljan broj
strukturiranih tipova podatka, i koristiti ih kao domen atributa, kao tip
promenljive, kreirati primerke tog tipa kao vrednosti ili kao objekte, itd.
§  Koncept strukturiranog korisnički-definisanog tipa može se posmatrati kao
implementacija koncepta apstraktnog tipa podataka, jer kao i apstraktni tip
podataka posjeduje tri komponente:
•  Naziv - jedinstveni naziv korisnički-definisanog tipa
•  Atribute - koji modeliraju strukture (stanje) tipa
•  Metode - operacije koje definišu semantiku (ponašanje) tipa

Laboratorija za geoinformatiku 14.


Strukturirani korisnički-definisani tipovi podataka
§  Opšti, pojednostavljeni oblik sintaksne konstrukcije za kreiranje korisnički-
definisanog tipa ima oblik:
CREATE TYPE naziv tipa [ UNDER naziv supertipa ]
[ <odjeljak eksternog tipa> ]
[ AS reprezentacija ]
[NOT] INSTANTIABLE
[ NOT ] FINAL
[specifikacija tipa referenciranja ]
[ tip konverzije ]
[ lista specifikacije metoda ]

Laboratorija za geoinformatiku 15.


§  klauzulom INSTANTIABLE dopušteno je kreiranje vrednosti odnosno primeraka
(objekata) tog tipa

Laboratorija za geoinformatiku 16.


Atributi
§  Vrednost, odnosno stanje primerka korisnički-definisanog tipa definisano je
vrednostima njegovih atributa.
§  Domeni atributa mogu biti
•  predefinisani prosti tipovi (INTEGER, FLOAT, CHARACTER, DATE, TIMESTAMP, ...),
•  kolekcijski tip (ARRAY, MULTISET) ili
•  neki drugi korisnički-definisani tip, ali ne i sam tip unutar kojeg su definisani.

§  Rekurzivna definicija korisnički-definisanih tipova nije dopuštena.

Laboratorija za geoinformatiku 17.


Atributi
CREATE TYPE Geometry
AS (
TopologyDimension SMALLINT DEFAULT –1,
CoordinateDimension SMALLINT DEFAULT 2,
SRID INTEGER DEFAULT NULL
)
NOT INSTANTIABLE
NOT FINAL

Laboratorija za geoinformatiku 18.


Metode
§  Semantika (ponašanje) korisnički-definisanog tipa definisana sa skupom specijalnih funkcija,
koje se nazivaju metode.

§  Za razliku od funkcija, koje nisu pridružene nekom tipu, svaka metoda je eksplicitno pridružena
jednom tipu (odnosno više tipova, ako su ih ti tipovi nasledili).
•  Korisnički-definisani tip kojem je metoda eksplicitno pridružena naziva se njenim pridruženim tipom.
•  Sve metode pridružene jednom tipu deklarišu se zajedno s tipom.
•  Ta se deklaracija sastoji od deklaracije signatura metoda, kao dela definicije strukture tipa, dok se njihova
implementacija može pojaviti i na nekom drugom mestu.
•  Deklaracija metoda dio je CREATE TYPE naredbe i nalazi se u delu lista specifikacije metoda.

Laboratorija za geoinformatiku 19.


Metode
§  U objektno-relacionom modelu razlikujemo tri tipa metoda:
•  statične metode,
•  operišu nad samim tipom
•  metode primerka
•  operišu nad primercima klase
•  metode konstruktori

Laboratorija za geoinformatiku 20.


Metode
§  Ukoliko se eksplicitno specificira tip metode (STATIC, INSTANCE ili
CONSTRUCTOR) ta specifikacija prethodi rezervisanoj riječi METHOD.
§  Ako tip metode nije specificiran, podrazumijeva se da se radi o metodi primerka
(INSTANCE).

Laboratorija za geoinformatiku 21.


Metode
§  Specifikacija signature metode sadrži njeno ime, kao i listu parametara i tipova.
S obzirom da su metode funkcije, moraju imati specificiran tip vrednosti koje
vraćaju kao rezultat.
§  Signatura metode može sadržavati i neke opcionalne klauzule, kojima se
specificiraju njene dodatne karakterstike.
§  Opcionalne klauzule mogu se specificirati u proizvoljnom redosledu

Laboratorija za geoinformatiku 22.


Opcionalne klauzule
§  Naziv jezika u kojem je metoda implementirana.
•  Ako jezik nije naveden, podrazumijeva se SQL.
•  Ako metoda nije implementirana u SQL jeziku, stil liste parametara.

§  Specifikacija sadržavanja SQL naredbe (CONTAINS SQL) i nepristupanja bazi


podataka ili nesadržavanja SQL naredbe (NO SQL).
•  Pristup bazi, bez promene podataka (READS SQL DATA), ili uz promjenu podataka
(MODIFIES SQL DATA).
•  Ukoliko se ne specificira niti jedna klauzula, podrazumijeva se CONTAINS SQL.

Laboratorija za geoinformatiku 23.


Opcionalne klauzule
§  Ako metoda za zadato stanje baze uvek vraća isti rezultat kao odgovor za
zadani skup vrednosti argumenata, odgovarajuća klauzula je DETERMINISTIC.
•  Ukoliko klauzula nije specificirana, podrazumijeva se NOT DETERMINISTIC.

§  Ponašanje metode u slučaju nedefinisanih (NULL) vrednosti parametara:


•  njeno eksplicitno izvršenje (CALLED ON NULL INPUT) ili
•  vraćanje nedefinisane vrednosti kao rezultata (RETURNS NULL ON NULL).

Laboratorija za geoinformatiku 24.


Metode
CREATE TYPE Geometry
AS (
TopologyDimension SMALLINT DEFAULT –1,
CoordinateDimension SMALLINT DEFAULT 2,
SRID INTEGER DEFAULT NULL
)
NOT INSTANTIABLE
NOT FINAL
METHOD Dimension () RETURNS SMALLINT,
METHOD CoordDim () RETURNS SMALLINT,
METHOD getSRID () RETURNS INTEGER,
METHOD Envelope () RETURNS Polygon,
METHOD GeometryType () RETURNS CHARACTER VARYING (32),
METHOD IsEmpty () RETURNS INTEGER,
METHOD IsSimple () RETURNS INTEGER,

Laboratorija za geoinformatiku 25.


Metode
CREATE METHOD GeometryType ()
RETURNS CHARACTER VARYING (32)
FOR Geometry
RETURN
CASE
WHEN SELF IS OF (Point) THEN ‘Point’
WHEN SELF IS OF (LineString) THEN ‘LineString’
WHEN SELF IS OF (CircularString) THEN ‘CircularString’
WHEN SELF IS OF (CompoundCurve) THEN ‘CompoundCurve’
WHEN SELF IS OF (Polygon) THEN ‘Polygon’
WHEN SELF IS OF (CurvePolygon) THEN ‘CurvePolygon’
ELSE
‘greška: Nepostojeći tip’
END CASE

Laboratorija za geoinformatiku 26.


Nasleđivanje
§  Konceptom nasleđivanja u objektno-relacinom kontekstu omogućuje se
kreiranje novog strukturiranog tipa P, kao podtipa drugog strukturiranog tipa S.
Tako kreirani novi tip P naziva se podtipom, a tip S je njegov direktni supertip.
•  Podtip P nasljeđuje sve atribute i metode od supertipa S.

§  Nasleđivanjem je moguće naslediti atribute i metode samo jednog supertipa


§  Klauzula UNDER

Laboratorija za geoinformatiku 27.


Nasleđivanje
CREATE TYPE Point UNDER Geometry
AS (
X DOUBLE PRECISION DEFAULT NULL,
Y DOUBLE PRECISION DEFAULT NULL
)
INSTANTIABLE
NOT FINAL
CONSTRUCTOR METHOD Point
(aWKT CHARACTER LARGE OBJECT(32), aSRID INTEGER)
RETURNS Point
SELF AS RESULT
DETERMINISTIC
RETURNS NULL ON NULL INPUT,
METHOD getX()
DETERMINISTIC
RETURNS DOUBLE PRECISION,
METHOD getY()
DETERMINISTIC
RETURNS DOUBLE PRECISION

Laboratorija za geoinformatiku 28.


Polimorfizam i preklapanje
OVERRIDING METHOD ExteriorRing ()
RETURNS LineString,

OVERRIDING METHOD ExteriorRing (aCurve Curve) RETURNS Polygon,

OVERRIDING METHOD InteriorRings ()


RETURNS LineString ARRAY[512]

Laboratorija za geoinformatiku 29.


Korisnički-definisane funkcije konverzije
§  Korisnički-definisani tipovi strogo su tipizirani
§  Nije moguće npr. dodeljivanje vrednosti jednog tipa vrednosti nekog drugog tipa
§  Nad tipom su moguće samo one operacije (metode) koje su definisane za taj tip

Laboratorija za geoinformatiku 30.


Korisnički-definisane funkcije konverzije
CREATE METHOD ToPolygon

RETURNS Polygon

FOR Geometry

BEGIN

IF SELF IS OF (Polygon) THEN

RETURN SELF;

END IF;

IF SELF.IsEmpty () THEN

RETURN SELF;

END IF;

RETURN NEW Polygon ()

END

CREATE CAST (Geometry AS Polygon)

WITH METHOD ToPolygon ()

AS ASSIGNEMENT

Laboratorija za geoinformatiku 31.

You might also like