Professional Documents
Culture Documents
Objektni Model Podataka
Objektni Model Podataka
Mario Tuan
Varadin, 2014.
SVEUILITE U ZAGREBU
FAKULTET ORGANIZACIJE I INFORMATIKE
VARADIN
Mario Tuan
Matini broj: 41175/12R
Studij: Informacijski i poslovni sustavi
Mentor:
Doc.dr.sc. Markus Schatten
Sadraj
1. Uvod ...................................................................................................................................... 1
2. Podatkovni objekti ................................................................................................................. 3
2.1. Metode ............................................................................................................................ 3
2.2. Poruke ............................................................................................................................. 3
3. Podatkovne klase ................................................................................................................... 5
3.1. Nasljeivanje .................................................................................................................. 5
3.1.1. Statiko nasljeivanje .............................................................................................. 6
3.1.2. Dinamiko nasljeivanje ......................................................................................... 7
3.1.3. Viestruko nasljeivanje.......................................................................................... 8
4. Objektno-orijentirane baze podataka ................................................................................... 10
4.1. Korisniko suelje ........................................................................................................ 10
4.2. Upiti .............................................................................................................................. 10
5. Zakljuak ............................................................................................................................. 12
6. Literatura ............................................................................................................................. 13
1. Uvod
Ovaj seminarski rad izraen je s svrhom da se objektni model podataka priblii svima
onima koji su moda uli za njega, ali se nikad nisu susreli s njim. Detaljno se opisuje kako su
podaci spremljeni, povezani, te kako se upravlja njima. Pokazati u i neke primjere upita u
nekom sustavu za upravljanje bazom podataka koji je baziran na objektnom modelu podataka.
to je uope model podataka? Model podataka je skup pravila koja odreuju kako
moe izgledati struktura baze podataka i pomou tog modela moemo izraditi vlastitu bazu
podataka. Kako bi ta baza bila izraena po nekom modelu podataka, ne smijemo odstupati od
tih pravila jer inae model nema smisla. Npr. relacijski model podataka ima odreene tipove
podataka koji se mogu koristiti. Ako bi neki sustav za upravljanje bazom podataka bio
koncipiran na relacijskom modelu, a imao bi mogunost definiranja vlastitog tipa podataka,
tada to vie ne bi zadovoljavalo relacijski model podataka. Dakle, sve to postoji u nekoj bazi
podataka, mora omoguavati sve mogunosti opisane u modelu prema kojem je izraena, ali
ne smije odstupati od odreenih pravila.
Kada govorimo o objektnom modelu podataka, kao to i samo ime govori, mislimo na
neke objekte koji mogu predstavljati osobe, skupinu osoba, tvrtke, hranu itd. Znai, neki
objekt u bazi podataka je "objekt" iz realnog svijeta. Za razliku od relacijskog modela koji
govori da podatke spremamo u tablice, npr. zaposlenici neke tvrtke su tablica, jedan red u toj
tablici predstavlja jednu osobu, a stupci su opisi, atributi te osobe. Kod objektnog modela
podataka taj isti primjer bi se predoio tako da jedan objekt predstavlja tvrtku, ali ne sadri
informacije o zaposlenicima, nego veze na zaposlenike. Svakom je zaposleniku dodijeljen
jedan objekt koji sadri sve podatke o njemu, ukljuujui tvrtku u kojoj radi. Sada ako bismo
eljeli listu svih zaposlenika, prvo bismo morali pristupiti objektu tvrtke, te njega upitati za
ispis liste. Tu listu bi kreirao tako da dobije informacije od svakog zaposlenika posebno
pomou veze tih objekata.
2. Podatkovni objekti
Svima je jasno da npr. zaposlenik ima odreene atribute u kojima je sadran opis tog
odreenog zaposlenika, te je prije spomenuto da sadri barem jo jedan atribut koji ga
povezuje s drugim objektima. Pitanje je kako mi zapravo znamo da je neki objekt povezan s
nekim drugim, osim to to vidimo iz njihovih atributa. Odgovor je, pomou operacija koje
izvodi objekt. Svaki objekt u bazi sadri neke atribute po kojima se moe jednoznano
identificirati, te operacije koje se mogu nad tim objektom izvravati. To znai da sustav za
upravljanje bazom podataka zapravo nema neke operacije za pristup, mijenjanje podataka u
objektima, nego se sve to radi tako da koristimo operacije tj. metode koje odreeni objekt
sadrava. Ako metoda sadrava i odgovor tada npr. kod metode ispisa, kao odgovor na nju,
dobivamo ispis nekog sadraja tog objekta.
2.1. Metode
Kako bi uope mogli koristi podatke iz objekata, potrebne su nam metode. Ukoliko
bismo imali 10 atributa u objektu i neke metode koje sveukupno koriste samo 3 atributa, onda
bi ostalih 7 bilo neiskoriteno i bezvrijedno. Jer iako postoji zauzet memorijski prostor za te
vrijednosti, one se nikad ne bi mogle iskoristi bez metoda u tom objektu koje pristupaju
njima. U tome se vidi vanost metoda, jer su nam svi podaci u takvoj bazi bezvrijedni ukoliko
nemamo metode koje im mogu pristupiti.
Kod metoda moramo obratiti pozornost da svaka metoda vrijedi za objekt u kojem je
sadrana. Tako npr. prvi objekt ima metodu ispisa svih sadranih podataka te se njenim
pozivom sve uredno ispisuje. Kada bismo probali pozvati istu metodu ispisa kod drugog
objekta koji ju ne sadri, ne bismo dobili nikakav ispis, nego vjerojatno samo greku.
2.2. Poruke
Prije smo spomenuli da postoje odreeni odgovori kod poziva metoda u nekom
objektu. Ti odgovori mogu biti jednostavni poput ispisa svih podataka objekta, ispis jednog
atributa i sl. Meutim, da bi se dobio neki odgovor, moe se koristiti neka raunska operacija,
to ovisi o metodi, kao npr. ispis plae koja se u metodi preraunava prema satnici i broju sati
rada u nekom mjesecu.
3
3. Podatkovne klase
Prema svemu to sam govorio ranije, u bazi postoje neki objekti koji ne moraju imati
nikakve slinost jedni s drugima, ali ukoliko bi to inilo bazu, podaci bi trebali biti nekako
povezani. Moemo si zamisliti neki objekt zaposlenik koji ima atribute ime, prezime, radno
mjesto. Ako bismo imali ve jednog takvog objekta, a eljeni bismo ponovo kreirati nekog
zaposlenika, tada bi kod njegovog kreiranje ponovo morali dodavati atribute s odreenim
tipom podataka, ponovo kreirati metode i tako za svaki novi objekt.
Upravo zbog tog razloga postoje takozvane podatkovne klase, samo klase u nastavku.
Te klase koristimo kao predloak za objekte, a one same ipak nisu objekt. Kao u primjeru
zaposlenika, klasa bi sadravala atribute s odreenim tipom, ali ne i vrijednosti, jer je to samo
predloak, moemo ga gledati kao "prazan objekt". Isto tako sadri metode nad tim objektom
kojeg moemo po tom predloku kreirati, ali njih ne moemo koristiti jer ne postoje
vrijednosti za atribute. Npr. kada bi se htjelo pozvati metodu klase ispii sve vrijednosti
atributa, to ne bi bilo mogue izvriti jer niti postoji objekt niti vrijednosti atributa, tako da se
metode ne mogu izvravati nad klasama nego samo nad objektima.
Kod kreiranja novog objekta po predloku iz klase, koristili bi npr. metodu Novi
Objekt koja je sadrana u klasi. Ta metoda je dodatna u klasi i nalazi se uz sve ostale metode
koje e objekt dobiti nakon kreiranja iz te klase. Meutim, bilo bi nepotrebno ostaviti takvu
metodu u objektu, jer bi iz tog objekta mogli kreirati novi objekt, a to ve moemo pomou
klase. Iz tog se razloga ta metoda ne nasljeuje iz klase u objekt, nego je ona privatna. Na taj
se nain sprjeava kreiranje objekta iz objekta.
3.1. Nasljeivanje
Zamislimo si neku klasu osoba. Ako imamo neku bazu podataka koja opisuje neki
fakultet, tada znamo da fakultet pohaaju studenti, tamo predaju profesori, asistenti, te postoji
i drugo zaposleno osoblje. Sada ona klasa osoba moe zapravo biti klasa student. Problem se
javlja kod toga to student ima razliite atribute nego to to ima profesor. Tada bismo mogli
kreirati klase student, pa klasa profesor itd. To bi sve jo bilo jednostavno kada bismo imali
atribute ime, prezime, godina studija kod studenta ili radni sta kod profesora. to bi se
dogodilo u sluaju da svaka osoba ima jo deset, dvadeset atributa? Onda bi za svaku klasu
morali dodavati svaki atribut posebno, a te se klase mogu podudarati u nekim atributima kao
to su ime, prezime, datum roenja, mjesto prebivalita, ulica, kuni broj, potanski broj itd.
5
Jo gora situacija bi bila ako za primjer uzmemo automobil. Znamo da veina automobila ima
puno dijelova, ali se opet neke vrste mogu razlikovati po dijelovima, dok veina bude
zajednika.
4.2. Upiti
Upite koristimo kada elimo kreirati nove objekte iz nekih klasa, kada popunjavamo
vrijednosti atributa odreenog objekta i sl. Ako nismo administrator neke baze podataka, tada
neemo moi koristiti sve upite koji postoje za istu bazu, pa se i time moe ograniiti to e
koji korisnik moi mijenjati u bazi podataka. Npr. obini korisnik pristupa javno dostupnoj
bazi podataka koja sadri podatke o stanovnicima neke drave. Njegov upit glasi: ISPIS BY
IME, Pero Peri. Recimo da taj upit vraa sve osobe pod traenim imenom u toj dravi,
zajedno s njegovim identifikacijskim brojem. Sljedei upit glasi: ISPIS ALL BY ID, 111111.
S takvim upitom korisnik dobije ispis svih informacija tono odreene osobe. Poto nije
10
administrator ili korisnik s veim pravom pristupa on e dobiti informacije o nazivu osobe,
starosti i mjestu stanovanja. Isti upit bi administratoru baze vratio sve podatke o toj osobi koje
bi ukljuivale i mjesto roenja, je li osoba zaposlena itd.
To je u objektno-orijentiranoj bazi podataka omogueno na nain da se kreiraju
privatne metode objekata koje ispituju kakav korisnik je uputio zahtjev te se na temelju toga
mogu ispisivati razliiti odgovori na iste upite.
11
5. Zakljuak
Objektni model podataka nastao je zbog razvoja objektno-orijentiranih aplikacija koje
su koristile vlastite tipove podataka. Poto u ostalim modelima podataka nije bilo mogue
kreirati takve tipove, razvilo se objektni model podataka koji je upravo to omoguavao. Na taj
su nain objektno-orijentirane aplikacije dobile mogunost spremanja podataka koji su se
kreirali tijekom njihovog rada u OOBP.
Glavna znaajka objektnog modela podataka je da se koriste objekti koji reprezentiraju
neki objekt iz stvarnoga svijeta. Ti objekti koriste odreenu memoriju kako bi spremili svoje
atribute, a ta memorija moe biti razliite veliine s obzirom da je omogueno kreiranje
vlastitih tipova podataka. Svaki objekt ima i svoje metode pomou kojih razmjenjuje podatke
s drugim objektima te sustavom za upravljanje bazom podataka. Rad OOBP ne bi bio mogu
bez metoda, jer su one jedini nain za pristupanje podacima nekog objekta. Neki objekt moe
koristiti samo metode koje su definirane za njega.
Za lake kreiranje i rad s objektima, postoje i klase koje omoguavaju kreiranje
objekata prema predloku zapisanom u klasi. Taj objekt, instanca klase, nasljeuje sve
atribute i metode osim metode Novi Objekt, koja je privatna za klasu.
Postoji statino i dinamino nasljeivanje klasa. Statiko je kada se iz super klase
nasljeuju atributi i metode u potklasu. Mogue je izostavljanje odreenih atributa i metoda, a
isto tako dodavanje istih po potrebi. Kod dinaminog nasljeivanja kreira se veze izmeu tih
klasa tako da kod kreiranje njihovih instanci dobivamo direktnu vezu izmeu te dvije
instance, ili vie njih, a to omoguuju pokazivai potklase na instancu super klase.
Postoji i viestruko nasljeivanje klasa, koje moe biti ili statino ili dinamino.
Takvim nasljeivanjem nasljeuju se atributi i metode iz vie super klasa u jednu potklasu.
Uglavnom se koristi samo dinamino viestruko nasljeivanje jer se nasljeuju veze na
instance super klase to nam esto treba.
Kako bi upravljali tom bazom podataka moramo koristiti sustav za upravljanje
objektno-orijentiranom bazom podataka. Svaki taj sustav moe imati razliite sistemske klase
koje se ovise o primjeni te baze podataka. Upiti koje moemo poslati bazi podataka, su
zapravo javno dostupne metode koje onda mogu koristiti privatne metode pojedinih objekata.
Takve metode mi kao korisnik ne vidimo, jer se odvijaju u pozadini.
Objektni model podataka nije ba zaivio kako se u poetku mislilo, ali su se ipak
nale primjene za njega u npr. CAD aplikacijama.
12
6. Literatura
[1] Institut fr Informationssysteme und Computer Medien. Object-Oriented Data Model.
Preuzeto 16. travnja 2014. s http://coronet.iicm.edu/is/scripts/lesson04.pdf
Iz gore navedene literature koristio sam strukturu za izradu strukture svojeg seminarskog rada,
te pojam super klasa, potklasa i sistemska klasa i grafiku strukturu objekta.
Ostatak seminara izradio sam na temelju znanja steenog na kolegiju Programiranje 2, na
kojem se cijeli semestar govorilo o objektno-orijentiranom programiranju.
Slike koritene u ovom seminarskom radu su u potpunosti moje intelektualno vlasnitvo, a
izraene su pomou programa Paint tvrtke Microsoft.
13