U objektno orijentisanim bazama podataka (OODB), korisnici mogu postaviti operacije na određenoj bazi podataka, koja se sastoji od objekata koji mogu biti različitih tipova i za koje su operacije postavljene. Oni mogu efikasno rukovati binarnim informacijama kao što su multimedijalni objekti. Još jedna dodatna prednost OODB-a je da se može programirati sa malim proceduralnim razlikama bez uticaja na ceo sistem.
Preduvjeti za kreiranje standarda
Historija objektno orijentisanih OODB baza podataka počinje krajem prošlog veka. Stvoreni su da zadovolje potrebe novih aplikacija. Pretpostavka je bila da će objektno orijentisane baze podataka revolucionisati softverske sisteme tokom 1990-ih. Sada je jasno da to nije slučaj. Međutim, oživljavanje ovog koncepta kroz zajednice slobodnog softvera i identifikacija odgovarajućih aplikacija za njega motiviše preispitivanje karakteristikaOODB, koji je alternativa sveprisutnim relacionim bazama podataka.
Objektno orijentisano pruža fleksibilnost za rukovanje nekim ili svim zahtevima i nije ograničeno na tipove podataka i jezike upita tradicionalnih baza podataka. Ključna karakteristika OODB-a je sposobnost koju oni pružaju programeru, omogućavajući mu da specificira i strukturu složenih objekata i operacije aplikacije. Drugi razlog za kreiranje OODB-a je sve veća upotreba jezika za razvoj softvera.
Baze podataka su postale temelj mnogih informacionih sistema, ali tradicionalne baze podataka je teško koristiti kada su aplikacije koje im pristupaju napisane na C++, Smalltalk ili Javi. Na primjer, 1C objektno orijentirane baze podataka dizajnirane su na način da se mogu direktno integrirati s aplikacijama koje koriste objektno orijentirane jezike usvajanjem njihovih koncepata: Visual Studio. Net, C++, C, Microsoft SQL Server i drugi.
Glavna prednost OODB-a je potpuna eliminacija potrebe za RMs1 (impedansom) sa naknadnim poboljšanjima performansi.
Nedostaci:
- Veoma primitivni mehanizmi konsultacija, bez standardno prihvaćene platforme.
- Ne mogu pohraniti procedure jer se objektima može pristupiti samo u klijentu.
- Nezrelost na tržištu.
- Nema fizičkog grupisanja objekata.
Objektna paradigma
Objektno orijentisane baze podataka su programabilne baze podataka koje skladište složene podatke i njihove odnose direktno bez dodeljivanja redova i kolona, što ih čini pogodnijim za aplikacije koje rade sa velikim serijama. Objekti imaju mnogo-prema-mnogo relacije i dostupni su korištenjem pokazivača koji su pridruženi njima za uspostavljanje odnosa. Kao i svaki programabilni, OODB pruža okruženje za razvoj aplikacija i trajno spremište spremno za eksploataciju. Pohranjuje i manipulira informacijama koje se mogu digitalizirati u obliku objekata, pruža brz pristup i pruža velike mogućnosti obrade.
Osnovni koncepti koji se koriste u objektno orijentiranoj bazi podataka:
- identitet objekta;
- tip konstruktora;
- jezička kompatibilnost;
- hijerarhije tipova i nasljeđe;
- obrada složenih objekata;
- polimorfizam i preopterećenje operatora;
- kreiranje verzija.
Da bismo u potpunosti razmotrili sve aspekte koji karakterišu objektno orijentisanu bazu podataka, važno je napomenuti sve važne paradigme objekata:
- Encapsulation je svojstvo koje vam omogućava da sakrijete informacije za druge objekte, čime se sprječava netačan pristup ili sukobi.
- Nasljeđivanje je svojstvo kojim objekti nasljeđuju ponašanje u hijerarhiji klasa.
- Polimorfizam je svojstvo operacije na koju se može primijenitirazličite vrste objekata.
- Sučelje ili potpis operacije uključuje naziv i tipove podataka njenih argumenata ili parametara.
- Implementacija ili metod operacije specificira se zasebno i može se mijenjati bez utjecaja na interfejs. Korisničke aplikacije mogu raditi s podacima pozivanjem određenih operacija kroz njihova imena i argumente, bez obzira na to kako su implementirane.
Klase i funkcionalnost
Kada se razmatra koncept klasa u OODB-u, potrebno je razlikovati pojmove "klasa" i "tip". Tip se koristi za opisivanje skupa objekata sa sličnim ponašanjem. U tom smislu, zavisi od toga koje se operacije mogu pozvati na objektu. Klasa je kolekcija objekata koji dijele istu internu strukturu, tako da definira implementaciju, dok tip opisuje kako je koristiti.
Izraz instancijacija se odnosi na činjenicu da se instancijacija klase može koristiti za proizvodnju skupa objekata koji imaju istu strukturu i ponašanje kao što ih je postavila klasa.
Svojstvo koje je vrlo važno za evoluciju objekata je to što može promijeniti svoju klasu, uključujući atribute i operacije, uz zadržavanje identiteta. Ovo bi zahtijevalo mehanizam za rukovanje rezultirajućim semantičkim integritetom.
Nasljeđivanje objektno orijentirane baze podataka organizacije omogućava da se klasa definira kao podklasa već postojeće superklase. On će naslijediti sve atribute i metode od potonjeg i može opciono definirativlastiti. Ovaj koncept je važan mehanizam za podršku ponovne upotrebe. Isti dijelovi strukture dvije različite klase mogu se definirati samo jednom u zajedničkoj superklasi, tako da će biti napisano manje koda. Postoje neki sistemi koji dozvoljavaju da klasa bude podklasa više od jedne superklase. Ova karakteristika se naziva višestruko nasljeđivanje za razliku od pojedinačnog nasljeđivanja.
Primjer objektno orijentirane baze podataka
Često je korisno koristiti isto ime za različite, ali slične metode medijske superklase iz slika i video klasa. Mnoge datoteke mogu vidjeti različiti gledaoci. Često imaju potrebu da pregledaju sve fotografije i video zapise metodom „pregled“, a mora se pokrenuti i odgovarajući program. Kada se pozove funkcija i prenese link na video, pokreće se media player. Za implementaciju ove funkcije, prije svega, potrebno je definirati operaciju "prezentacije" u zajedničkoj medijskoj superklasi iz klasa slike i videa. Svaka od podklasa redefinira operaciju traženja za svoje specifične potrebe. Ovo rezultira različitim metodama koje imaju isto ime operacije. U ovom slučaju korištenje ove funkcije ima važnu prednost.
OODB struktura
Objektno orijentisana paradigma se zasniva na inkapsulaciji podataka i koda koji se odnosi na svaki objekat u jednom modulu. Konceptualno, sve interakcije između njega i ostatka sistema se izvode pomoću poruka. Otuda i interfejsizmeđu njih je određen dozvoljenim skupom.
Uopšteno govoreći, svaki objekat je povezan sa skupom:
- Varijable koje sadrže podatke o objektu i odgovaraju atributima ER modela.
- Poruke na koje on odgovara. Svaki može imati ili ne mora imati parametre, jedan ili više.
- Metode, od kojih je svaka kod koji implementira poruke i vraća vrijednost kao odgovor na nju.
Razmjena poruka u OO okruženju ne podrazumijeva korištenje fizičkog SMS-a u kompjuterskim mrežama. Naprotiv, odnosi se na razmjenu zahtjeva između objekata, bez obzira na tačne detalje njihove implementacije. Ponekad izraz poziva metodu da pokrene činjenicu da je poruka poslana objektu i koristi izvršenje odgovarajuće metode.
Identitet objekta
Objektno orijentisani sistem baze podataka obezbeđuje jedinstvenu identifikaciju za svaki nezavisni objekat pohranjen u bazi podataka. Obično se implementira koristeći sistemski generirani jedinstveni identifikator objekta ili OID. OID vrijednost je nevidljiva vanjskom korisniku, ali sistem je koristi interno za upravljanje vezama između objekata.
Glavno svojstvo OID-a je da bude nepromjenjiv. OID vrijednost za određeni objekt se nikada ne smije mijenjati. Time se čuva identitet stvarnog svijeta koji se predstavlja. Također je poželjno da se svaki OID koristi samo jednom, čak i ako je uklonjen iz baze podataka, njegov OID ne bi trebao biti dodijeljen drugom. Također se često smatra neprikladnim zasnivati se na fizičkomadresu objekta u skladištu, budući da njihovo reorganiziranje u bazi podataka može promijeniti OID. Međutim, neki sistemi koriste fizičku adresu kao OID da povećaju efikasnost preuzimanja objekata. Objektno orijentirani okvir automatski nameće relacijska ograničenja, obično primjenjivija: domena, ključ, integritet objekta i referentni integritet.
Tri glavna konstruktora
U OODB-u, vrijednosti ili stanja složenih objekata mogu se kreirati od drugih koristeći konstruktore određenih tipova. Jedan od načina da ih se predstavi je da se svaki od njih zamisli kao triplet (i, c, v), gdje je i jedinstveni identifikator objekta (OID), c je konstruktor, odnosno pokazivač na to kako je vrijednost objekta kreirano, a v je vrijednost ili stanje objekta. Može postojati više konstruktora u zavisnosti od modela podataka i OO sistema.
Tri osnovna objektno orijentirana konstruktora baze podataka:
- atomi;
- torke;
- setovi.
Druge uobičajene upotrebe su liste i grafikoni. Tu je i D domen, koji sadrži sve osnovne atomske vrijednosti direktno dostupne u sistemu. Oni obično uključuju cijele brojeve, realne brojeve, nizove znakova, datume i bilo koju drugu vrstu podataka kojima sistem direktno rukuje. I struktura objekata i operacija su uključene u definicije klasa.
Kompatibilnost sa programskim jezicima
Upotrebljeni su osnovni koncepti objektno orijentisanih baza podatakakao alati za dizajn i kodificirani za rad sa bazom podataka.
Postoji nekoliko mogućih jezika u koje se ovi koncepti mogu integrirati:
- Proširivanje jezika za obradu podataka kao što je SQL dodavanjem složenih tipova i OOP-a. Sistemi obezbeđuju objektno orijentisana proširenja relacionim sistemima, koja se nazivaju objektno orijentisani relacioni sistemi.
- Korišćenje postojećeg objektno orijentisanog programskog jezika i njegovo proširenje za rad sa bazama podataka. Zovu se trajni programski jezici i omogućavaju programerima da rade direktno s podacima bez potrebe da prolaze kroz jezik za obradu podataka kao što je SQL. Nazivaju se postojanim jer podaci nastavljaju postojati nakon završetka programa koji ih je kreirao.
Kada odlučujete koju opciju da koristite, imajte na umu da su uporni jezici obično moćni i da je relativno lako napraviti programske greške koje oštećuju bazu podataka. Složenost jezika otežava automatske optimizacije visokog nivoa, kao što je smanjenje I/O diska. U mnogim aplikacijama je važna mogućnost pravljenja deklarativnih upita, ali postojani jezici trenutno ne dozvoljavaju takve upite bez problema.
Hijerarhija tipova nasljeđivanja
Objektno orijentisane šeme baze podataka obično zahtevaju veliki broj klasa. Međutim, nekoliko klasa je slično jedna drugoj. Da biste omogućili direktnu reprezentaciju sličnosti između njih, morate stavitiih u hijerarhiju specijalizacija. Ovaj koncept je sličan ER modelima. Specijalizacije klasa se nazivaju podklase, koje definiraju dodatne atribute i metode za postojeću klasu. Objekti kreirani sa podklasama nasljeđuju sve od roditelja. Neke od ovih naslijeđenih karakteristika su možda i same posuđene od onih koji su viši u hijerarhiji.
Objekti se smatraju složenim jer zahtijevaju veliku količinu prostora za pohranu i nisu dio standardnih tipova podataka koje obično nudi objektno orijentirano upravljanje bazom podataka (OODBS). Budući da je veličina objekata značajna, SOOBMS može primiti dio objekta i dati ga aplikaciji prije nego što preuzme cijeli objekt. Također može koristiti metode bafera i keširanja kako bi prije vremena dobio dijelove objekta, prije nego što im aplikacija može pristupiti.
OODB omogućava korisnicima da kreiraju nove tipove koji uključuju i strukturu i operacije, u ovom slučaju sistem proširivih tipova. Možete kreirati biblioteke novih tipova definisanjem njihove strukture i operacija. Mnogi od njih mogu pohraniti i primiti veliki strukturirani objekt u obliku nizova i znakova ili bitova, koji se prosljeđuju "kao što jesu" aplikacijskom programu radi interpretacije.
Metoda može direktno pristupiti atributima ciljnog objekta po imenu, uključujući sve naslijeđene od roditeljskih klasa, ali mora pristupiti atributima drugih objekata sa sekundarnim signalima. Koncept vam omogućava da povežete isto ime operatora ili simboldvije ili više različitih implementacija, ovisno o vrsti objekata na koje se odnosi.
Izgradnja aplikacija
Mnoge aplikacije baze podataka koje koriste OO sisteme zahtijevaju više verzija istog objekta. Tipično, aktivnosti održavanja se primjenjuju na softverski sistem kako se njihovi zahtjevi mijenjaju i uključuje promjenu nekih modula razvoja i implementacije. Ako je sistem već pokrenut i ako je potrebno promijeniti jedan ili više modula, programer mora kreirati novu verziju svakog od njih unošenjem promjena.
Imajte na umu da može postojati više od dvije verzije objekta, u slučaju da su potrebne dvije uz originalni modul. Vlastite verzije istog softverskog modula mogu se ažurirati u isto vrijeme. Ovo se zove paralelni objektno orijentisani dizajn baze podataka. Međutim, uvijek dođe tačka u kojoj ih treba spojiti kako bi hibridni OODB uključio promjene koje su napravljene tako da budu kompatibilne.
Objektno orijentisani uslovi
Svi kompjuterski sistemi moraju imati svojstva svoje arhitekture da bi se uzeli u obzir. Na primjer, sistem mora imati tabele da bi se smatrao relacionim. OODB nije izuzetak i sadrži neka osnovna svojstva arhitekture objekta. Međutim, u stvarnom svijetu, mnoga od ovih svojstava se raspravljaju, a neka, kao što je višestruko nasljeđivanje, se smatraju poboljšanjima objektno orijentisanog modela baze podataka, a nekao dio osnovne linije. Na primjer, u objektno orijentiranom jeziku Smalltalk višestruko nasljeđivanje nije podržano, iako se smatra dijelom arhitekture objekta.
Metode za klasu definiraju skup operacija koje se mogu izvesti na objektu. Na primjer, kada se primjenjuje na objekt, on ili vraća vrijednost ili izvodi neku operaciju za ažuriranje vrijednosti. Ponekad ga metode ne vraćaju. Da je metoda dizajnirana da ažurira broj putnika za vozilo, ne bi se vratila nikakva vrijednost, ali bi je element podataka u cilju promijenio.
Objekti su fundamentalni koncept u OODB-u. U suštini, objekti su apstraktni prikaz stvari iz stvarnog svijeta koje su u njemu pohranjene. Objekt je instanca klase u smislu da je isključen iz njene definicije.
O objektu možete razmišljati kao o samostalnom paketu koji ima tri dijela:
- Sopstveni lični podaci, vrednosti podataka.
- Privatne procedure koje će manipulirati vrijednostima kroz definiciju klase.
- Otvorite interfejs tako da ovaj objekat može komunicirati sa drugima.
OODB primjeri
Upotreba OODB-a pojednostavljuje konceptualizaciju jer je prirodnije predstavljati informacije koje treba pohraniti. Za modeliranje strukture ili logike baze podataka, upotreba dijagrama klasa omogućava vam da uvedete klase sa njihovim strukturnim odnosima i nasljeđivanjem. Kako bi se modelirao dio dinamike, interakcije iponašanja između objekata, dijagram sekvence će se koristiti za predstavljanje interakcije između objekata koji se nalaze u privremenom odnosu, opisujući moguća stanja tako da se mogu pronaći s obzirom na promijenjeno stanje nakon što se događaj dogodi.
Primjer objektno orijentirane baze podataka je prikazan ispod.
Imaju ime i životni vijek, koji može biti privremeni ili trajni. OODB ključ je mogućnost koju oni pružaju programeru da specificira koliko će struktura i operacija biti primijenjeno na njih. Postoji fleksibilnost i podrška za rukovanje složenim tipovima podataka. Možete kreirati klase i podklase, na primjer, baza klijenata može imati podklasu ove klijentove veze, i ona će naslijediti sve atribute i karakteristike originalne klase, ovaj pristup vam omogućava brzu i fleksibilnu obradu složenih podataka.