Anda di halaman 1dari 6

ARHITEKTURA OBJEKTNIH SUB Osnovni elementi arhitekture objektnih baza: 1)Objektni model-na kome treba da bude zasnovan svaki

objektni SUBP izveden iz OMG modela. OMG je objektni model definisan kao zajednikaosnova za obejktne programske jezike, komunikaciju objekata u nekoj klijent-server arhitekturi i objektne baze podataka. 2)Objektni specifikacioni jezik- slui da opie kao skup meusobno povezanih objekata. Objekltni specifikacioni jezik ODL ima ulogu JOP-a u konvencionalnim SUBP 3)Objektni upitni jezik-neproceduralni jezik za postavljanje upita i modifikaciju baze podataka koji se naziva OQL. Ovaj upitni jezik ima znatno vee mogunosti koje proizilaze iz bogatije strukture objektnog modela. 4)C++, smalltalk ili java java jeziki povez-posebne nezavisne komponente arhitekture koje pokazuju kako se u C++ ugrauju mogunosti manipulacije prezistentnim objektima, mehanizmi za povezivanje sa SQL-om, upravljanje transakcijama i sl. Za razliku od konvencionalnih JMP jezika, JMP u objektnim bazama se kroje prema jeziku domaina, proizvodei jedinstveno okruenje za razvoj programa i manipulaciju podacima. Zbog toga se podrazumeva da u ODMG rhitekturi postoji posebna komponenta za C++, posebna za Java ii posebne za Smalltalk razvojno okruenje. Zbog toga je mogue da se nad jednom objektnom bazom istovremeno izvravaju programsi napisani u razliitim jezicima. SPECIFIKACIJA I IMPLEMENTACIJA TIPOVA Svaki tip ima jednu specifikaciju i jednu ili vie implementacija. Pod specifikacijom eksterna karakteristika vidljive korisniku tipa: opreracije koje mobu biti potvane, osobine kojima se moe pristupiti i izuzeci koji mogu biti pobueni pri izvoenju operacija. Specifikacija treba da bude nezavisna od implementacije. Implementacija tipa definie interne karakteristike objekata datog tipa. Mogue je definisati vie implementacija jedne specifikacije u jednom ili vie razliitih jezika. Implementacija tipa nije vidljiva korisniku. Odvajanje specifikacije od implementacije tipa veoma bitno jer se na taj nain ostvaruje uaurenje objekta, apstrakcija koja omoguava korienje servisa koji objekat prua okolini, bez poznavanja naina njegove implementacije, bez uticaja pri izmenama implementacije.Specifikacija tipa se daje preko koncepta interfejs ili preko klase. Interfejs se ne moe direktno instancirati i slui da se preko njega definiu operacije koje e naslediti neki korisniki definisani objekti. Klasa predstavlja i apstraktno stanje i ponaanje tipa objekta i moe se instancirati. Definicija literala da samo apstraktno stanje tipa literala npr iskaz. U bilo kom programskom jeziku, implementacija tipa ostvaruje preko strukture podataka za opis stanja i skupa metoda, preko kojihv su implementirane operacije tipa. U veini programskih jezika postoji koncept klase, klasa je u objektnim jezicima osnovni mehanizam za implementaciju tipova objekta. Koncepta klase u objektnim programskim jezicima ne treba izjednaavati sa pojmom klasa u objektnom modelu. Specifikacija tipova neke baze podataka se definie preko ODL-a a njihova implementacija u okviru jezikih poveza. METODE PONAANJA OPERACIJA Ponaanje tipa predstavlja se skupom operacija. Specifikacija operacija se daje koristei sledeu sintaksu: Specifik_open::tip_reziltat naziv_oper raises Lista_arum::argument, lista argumenata Argument:: parametar_argumenta specifik:tipa_arugmenta naziv_argumenta Parametar_argumenta:: in out inout Lista_naziv_izuzetak::naziv_izuzetak lista_naziva_izuzetka

Argument operacije moe biti bilo koji tip. Neke operacije ne moraju da vrate vrednost: U ODMG operaciji se specifikuje samo u okviru tipova kojima pripadaju. Ne postoje operacije specifikovane izvan tipova u model. Ime operacije je jedninstveno u okviru jednog tipa. Razliiti tipovi mogu imati razliite operacije sa istim imenom, za njih kaemo da su preoptereena: Kada se pozove operacija sa preoptereenim imenom sistem mora da odlui koja e se od istoimenih oprecija izvriti. U okviru specifikacije operacije definie se koji se izuzetak okida kada nastupi neka planirana greka u izvrenju operacija. Izuzeci definiu akcije koje se preduzimaju kada nastupi greka u izvrenju operacije. Specifikacija operacija u ODMG je identina specifikacija operacija u OMG CORBA standardu, ime se obezbeije distribuiranje objekta baze podataka. OBJEKTNI UPITNI JEZIK-OQL Objektni upitni jezik OQL je deo ODMG standarda i namenjen je prethodno opisanom objektnom modelu. OQL je konstruisan tako da jednostavno komunicira sa ODMG jezikim povezima C++, Smalltalk i JAVA. Upiti napisani u OQL-u mogu da vrate objekat iji tipovi odgovaraju skupu tipova u tim jezicima. Sintaksa OQL-a je veoma slina SQL-ovoj sa dodatnim mogunostima koje prua ODMG objektni model koji ima mnogo bogatiji skup tipova. Kao ni SQL, ni OQL nije raunski kompletan i zato ga je neophodno povezati sa pomenutim objektinim jezicima. OQL nije za razliku od SQL-a izveden iz nekog strogo definisanog teorijskog modela. OQL je definisan kao jedan jezik koji ne operie samo sa primitivnim tipovima podataka, njihovim agregacijama i skupovima tih agregacija, ve i sa mnogo sloenijim strukturama, listama, nizovima ... OQL je funkcionalni jezik u kome se operatori slobodno koriste vodei rauna da operandi potuju odgovarajui tip. Rezultat tipa je uvek neki neki ODMG tip i moe biti ponovo podvrgnut OQL upitima. OBJEKTINI RELACIONI MODEL-KORISNIKI DEFINISANI TIPOVI Najznaajniji modeli podataka na kojim se zasnivaju SUBP-ovi su relacioni i objektni model. Relacije koje ine konvencionalnu relacionu bazu podataka su normalizovane strukture, sa jednostavnim predefinisanim tipovima podataka nad kojima su definisani njihovi atributi. Objektno relacionog modela i objektno relacionih sistema nastoje da integriu najbolje karakteristike relacione i objektne tehnologije. Konceptualni model objektno relacionih baza podataka sastavljen je od skupa meusobno povezanih relacija ali domeni atributa relacije ne mogu biti samo osnovni predefinisani tipovi podataka ve i korisniki definisani osnovni i sloeni tipovi podataka koji mogu biti organizovani u genetalizacione hijerarhije tipova. Osnovna ideja preuzeta iz objektne tehnologije sadrana je u mogunosti definisanja novih potencionalno kompleksnih tipova podataka. Korisniki efinisani tipovi su tipovi koje definie korisnik i koji se koriste na isti nain kao i predefinisani tipovi. Uvoenjem korisnikih definisanih tipova pojednostavljuje se razvoj i odravanje aplikacija jer definisanje tipova moe da koristi vee aplikacija. Korisniki definisani tip moe biti distinkt tip i strukturni tip. SQL:1999 TRIGERI Okida_i (trigeri) predstavljaju posebno klasu SQL procedura koja se izvrava automatski kod izvravanja akcijskih upita(UPDATE, INSERT, DELETE) na pojedinim tablicama u bazi. Trigeri se uglavnom koriste kao oblik proirenja provjere integriteta i suvislosti podataka prema logici procesa kojeg opisuje baza. Okida_i su uvijek vezani uz tablice, pri _emu jedna tablica

moe imati vie okida_a. Mogu_e je definirati posebne okida_e za svaki tip promjene koja se vri u tablici (unos, promjena ili brisanje podataka), ili zajedni_ke okida_e za razli_ite promjene. Okida_i sadravaju SQL instrukcije u obliku sli_nom kao i SQL procedure. Okida_i se izvravaju odmah nakon to zavri instrukcija koja ih okida. Okida_e nije mogu_e vezati uz poglede ili sistemske tablice u bazi podataka. Primjenom okida_a zabranjuju se ili ponitavaju (rollback) promjene kojima se kri integritet podataka. Okida_i omogu_avaju uvo_enje stroih i sloenijih ograni_enja od onih koja se definiraju preko CHECK ograni_enja. Za razliku od CHECK ograni_enja koje djeluje samo na nivou definirane tablice, okida_ moe pristupiti drugim tablicama, te provjeravati sloenije uvjete integriteta. Pomo_u okida_a mogu_e je ustanoviti razliku izme_u stanja tablice prije promjena i nakon promjena i poduzeti odgovaraju_e akcije u vezi tih promjena. Nakon nastupanja promjena u odre_enoj tablici (zbog unosa, brisanja ili promjene podataka), interni mehanizam baze podataka stvara dvije privremene tablice naziva deleted i inserted. Tablica deleted pohranjuje kopije svih redova na koje djeluju instrukcije DELETE ili UPDATE. Primjenom instrukcije DELETE odre_eni redovi se briu iz izvorne tablice i prebacuju u privremenu tablicu naziva deleted. Princip rada Tablica inserted pohranjuje kopije svih novouneenih redova u promatranu tablicu. To zna_i da se djelovanjem instrukcije INSERT novi redovi dodaju istovremeno u tablicu u bazi i sistemsku privremenu tablicu inserted. Nakon unosa podataka instrukcijom INSERT redovi u tablici inserted predstavljaju kopiju novounesenih redova u osnovnoj tablici. Operacije auriranja (UPDATE) tretiraju se kao slijed brisanja i unosa; podaci prije promjene prenose se u privremenu tablicu deleted, a novopromijenjeni podaci u inserted tablicu. Prilikom formiranja okida_a potrebno je definirati - ime(naziv) okida_a - tablicu uz koju je okida_ vezan - akciju koja aktivira okida_ - niz SQL instrukcija koje se izvravaju aktiviranjem okida_a. naziv_okida_a ime okida_a. Mora zadovoljavati pravilo imenovanja objekata u bazi i biti jedinstveno u bazi. ime_tablice predstavlja naziv tablice za koju se vezuje okida_.

Ne moe se navesti naziv pogleda, budu_i okida_e nije mogu_e vezati uz poglede. [DELETE] [,] [INSERT] [,] [UPDATE] | [INSERT] [,] [UPDATE] - predstavljaju klju_ne rije_i kojima se odre_uje tip akcije, koji svojim izvrenjem aktivira okida_. Potrebno je navesti bar jednu opciju. Ukoliko se isti okida_ definira za vie razli_itih akcija navode se u obliku liste odvojene zarezom, pri _emu nije bitan redoslijed navo_enja. IF UPDATE (naziv_kolone) - izraz kojim se provjerava akcija unosa ili auriranja navedene kolone u tablici. Ova opcija ne primjenjuje se u okida_ima koji su vezani za operaciju brisanja (DELETE). U izrazu je mogu_e navesti ve_i broj kolona. Prilikom aktiviranja okida_a (trigera), SQL izrazi navedeni u sklopu okida_a izvravaju se na na_in kao i u SQL procedurama (stored procedures). Prilikom navo_enja SQL instrukcija u sklopu okida_a treba eliminirati mogu_nost da okida_ vra_a bilo kakve podatke, jer bi takvi podaci poremetili akciju koja se vri na tablici. Stoga se u deklariranju SQL instrukcija u okida_u nikad ne koriste SELECT izrazi koji vra_aju rezultat u obliku prikaza. - sve promjene podataka koje je izvrila teku_a transakcija se ponitavaju (rollback) uklju_uju_i i promjene koje eventualno stvara sam okida_. - okida_ nastavlja sa normalnim izvravanjem svih preostalih instrukcija nakon ROLLBACK izraza. Ako neka od instrukcija koje slijede u okida_u vri promjene na podacima te promjene se normalno izvravaju. - slijed SQL instrukcija ili procedura koja sadri instrukciju koja je okinula okida_ odmah se prekida i preostale instrukcije koje slijede se ne izvravaju. Okida_ djeluje na na_in da svaku izvrnu instrukciju koja ga pokre_e podrazumijeva kao dio transakcije. DEFINISANJE TIPOVA XML DOKUMENATA Postoje vie naina za definisanje tipova dokumenata. World Wide Web Consurtium je ponudio 2 standardna naina: 1)XML 1.0. DTD specifikacija 2)XML Scheme- koja je postala preporuka W3 konzurcijuma XML Scheme se sve vie koriste za opis tipova dokumenata zbog toga to podrava definiciju tipa podatka i to poseduje napredniji mehanizam poveznica elemenata u XML dokumentu. Veoma je bitno i to to XML Scheme data preko XML sintakse to omoguava njeno procesiranje kao bilo kog drugog XML dokumenta. OPERACIJA SA XML DOKUMETIMA Mogu se definisati navigacioni i specifikacione operacije. Pod navigacionim operacijama se podrazumevaju operacije koje omoguavaju kretanje kroz XML dokument, adresiranje

pojedinih njegovih komponenti. Specifikacione operacije su u stvari upiti preko kojih se definie deo XML dokumenta koji se eli u rezultatu i uslov koji takav dokument treba da zadovolji. Skup operacija koje nazivamo navigacione operacije definisane su Xpath specifikacijom. Upitni jezik Xquery daje konstrukcije za iskaz specifikacionih oprecija. Pored toga i ovde se moe govoriti o povezivanju XML-a sa konvencionalnim i objektnim programskim jezicima kao i o specifinim jezicima koji transformiu jedan XML dokument u drugi. XPATH Je jezik koji omoguava adresiranje delova ili navigacija do delova XML dokumenta. Osim toga on omoguava i osnovnu manipulaciju stringova, borjevima i logikim podacima. XML dokument se posmatra kao stablo vorova. Pored toga definie se vor koji se naziva koren dokumenta. Koren dokumenta je jedan fiktivni, bezimeni vor ije je dete osnovni element XML dokumenta. vor se adresira preko izraza putanja. Izraz putanja je niz od jednog ili vie koraka razdvojenih sa /. Adresiranje polaznog vora na osnovu imena podrazumeva odreeni implicitni apsolutni izraz putanja iji je prvi vor neimenovani koren dokumenta. U izrazu putanja korak se definie sas : niz_ose::test_cvora -osa pravac posmatranog korena putanje u stablu, -test vora- korak u putanji dovodi do skupa vorova razliitog tipa i naziva. -predikat- dodatno se selektuju oni vorovi iz skupa vorova koji zadovoljavaju dati predikat. Xpath definie 4 tipa funkcija: 1)Funkcija vorova- u zavisnosti od redosleda pojavljivanja vorova u skupu definiu se funkcije koje daju redni broj pojavljivanja vora u dokument-redosledu. To su funkcije last() i position(). Funkcija position() vraa redni broj pojavljivanja cvora u nekom skupu. Funkcija last() vraa redni broj poslednjeg pojavljivanja.Tekstualne funkcije omoguavaju manipulaciju sa stringom. String je bilo koji odreeni niz karaktera. Funkcija substring izdvaja podniz iz datog niza poev od pozicije p u duini d. Funkcija translate omoguava zamenu karaktera u datom nizu string i to zamenjujui sve karaktere koji se pojavljuju u prvom nizu sa karakterima sa odgovarajuih pozicija u nizu. Logika funkcija definiu se i logike promenljive koje se mogu koristiti u izrazima poreenja i to false() i true() a ta negaciju se koriste funkcije not. Numerike funkcije omoguavaju manipulaciju sa brojevima i to su round, floor i ceiling koje omoguavaju zaokruivanje realnog broja. Funkcija sum() vraa sumu svih vorova ija je string-vrednost broj. XQUERY-XML UPITNI JEZIK Xquery predstavlja XML upitni jezik. Upiti se formiraju na osnovu nekoliko vrsta izratza kombinovanih u sloenije izraze korienjem odgovarajuih operatora. Xquery predstavlja da su za dokumente koji se koriste u upitu definisane XML eme. Xquery koristi sve osnovne tipove podataka definisane XML emom. Ako ema nije definisana Xquery pretpostavlja difolt emu u kojoj svi elementi imaju tip anyType, a svi atributi anySimpleType. Xquery definie funkciju za identifikovanje XML dokumenta, document koja identifikuje XMl dokument preko URI adrese. Xpath obezbeuje da se iz dokumenta izvue neki njegov deo koji zadovoljava definisani uslov. Xpath izrazi omoguavaju samo selektovanje postojeih vorova XMl dokumenta pa se strogo definiu nove vrste upita preko FLWR izraza, flower.Opti iskaz ovog izraza je sledei: FOR,LET,WHERE,RETURN. U FOR i LET klauzoli definiu se razliite vrste promenjlivih nad putanjama XML dokumenata. Promenljive se oznaavaju sa prefiksom $. Let dodeljuje promenljivoj vrednost izraza putanje dok FOR klauzula definie iterator promenljive koja uzima vrednost iz skupa

vorova definisanog preko putanje. Jedan FLWR izraz moe sadrati vee FOR ili LET klauzula. WHERE klauzula definie uslove za selekciju rezultata ija se porvera pokree za svaku vrednost iterator promenljive definie FOR klauzulom. RETURN definie XML strukturu rezultata upita. Moe se formirati nova struktura stabla kombinujui vrednost promenljivih i konstrukcije novih vorova koristei XML sintaksu. U uslovu kao i u rezultujuoj xml konstrukciji mogu se koristiti funkcije definisane u Xpath-u za manipulaciju sa atomskim vrednostima i vorovima. Zaa identifikaciju kolekcije XML dokumenta nad kojom se postavlja upit koristi se funkcija collection koja definie skup XML dokumenta identifikovan preko iste URI adrese. Ako dokumenti po kojim se eli da postavi upit nisu na istoj URI adresi neophodno je postaviti upit sa operacijom spajanja. Operacija spajanja vie XML dokumenata definie se preko deklaracije iterator promenjljivih. Naime u jednoj FOR klauzuli se moe definisati vie promenljivih koje uzimaju vrednosti iz razliitih izraza putanje. U FLWR izrazima moe se koristiti distinct values koja ima istu ulogu kao i klazula DISTINCT u SQL-u. Funkcija distinct values se moe koristiti pri definisanju promenjlivih. Xquery je funkcionalni jezik. On omoguava definisanje bilo kojeg izraza kao funkcije iji su argumenti sekvence i koji vraa sekvence. FLWR izraz moe posmatrati kao funkcija koja vraa sekvencu. FLWR izraz se moe koristiti kao argument u drugim funkcijama. XQuery definie i operacije nad sekvencama i to operacije unije preseka i razlike koje vraaju sekvence eleminiui duplikate. Xquery omoguava korienje kako uslovnih izraza if then else tako i kvantifikujuih izraza.

Anda mungkin juga menyukai