Univerzitet u Beogradu Matematički fakultet Internet baze podataka

Similar documents
Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

Podešavanje za eduroam ios

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Uvod u relacione baze podataka

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

STRUČNA PRAKSA B-PRO TEMA 13

Port Community System

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija

SAS On Demand. Video: Upute za registraciju:

Struktura i organizacija baza podataka

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći:

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Advertising on the Web

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09

Otpremanje video snimka na YouTube

IZRADA TEHNIČKE DOKUMENTACIJE

FAKULTET ZA POSLOVNU INFORMATIKU

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

JavaScript podrska u radu sa greskama

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

BENCHMARKING HOSTELA

Priprema podataka. NIKOLA MILIKIĆ URL:

Uvod u web okruženje SQL

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

Programiranje III razred

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

Web usluge. Web usluge

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU

IMPLEMENTACIJA TEHNIKA ZA POVEĆANJE BROJA PODRŽANIH KONKURENTNIH KORISNIKA VEB SAJTA

3D GRAFIKA I ANIMACIJA

1. Instalacija programske podrške

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

DIPLOMSKI RAD iz predmetа Razvoj veb aplikacija

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

Windows Easy Transfer

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

DEFINISANJE TURISTIČKE TRAŽNJE

Tutorijal za Štefice za upload slika na forum.

Klasterizacija. NIKOLA MILIKIĆ URL:

PROJEKTNI PRORAČUN 1

Uvod u razvoj portala na dotcms platformi Introduction in portal development on dotcms platform

CIM KONCEPT PREDUZEĆA - OSNOVNI TERMINI I DEFINICIJE CIM COMPANY CONCEPT, FUNDAMENTAL TERMS AND DEFINITIONS 1. UVOD

СТРУКТУРА СТАНДАРДА СИСТЕМАМЕНАЏМЕНТАКВАЛИТЕТОМ

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Bušilice nove generacije. ImpactDrill

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

KREIRANJE DINAMIČKIH INTERFEJSA ZASNOVANIH NA META-ŠEMAMA CREATION OF DYNAMIC INTERFACES BASED ON META-SCHEMES

Mindomo online aplikacija za izradu umnih mapa

FAKULTET TEHNIČKIH NAUKA

POSLOVNA INTELIGENCIJA

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

ALEN BARAĆ RAZVOJ DINAMIČKIH WEB APLIKACIJA DIPLOMSKI RAD

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

11. LabVIEW. 1. rukuje instrumentacionim programom, 2. kontroliše izabrani hardver, 3. analizira prikupljene podatke, 4. prikazuje rezultat.

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice

VEB APLIKACIJA ZA IZBOR RESTORANA

Mašinsko učenje Uvod. Bojan Furlan УНИВЕРЗИТЕТ У БЕОГРАДУ ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ

Nejednakosti s faktorijelima

Mogudnosti za prilagođavanje

WEB APLIKACIJA ZA IZRADU VIZUELNOG IDENTITETA KOMPANIJE - Diplomski rad -

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

SQL standard podrzava sledece vrste ogranicenja: Ogranicenja domena Ogranicenja tabela i kolona Opsta ogranicenja

Rešavanje problema pomoću računara

PANEVROPSKI UNIVERZITET APEIRON FAKULTET ZA POSLOVNU INFORMATIKU BANJA LUKA. Specijalističke studije TEMA: WEB DNEVNIK

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

Sadržaj. Projektovanje informacionih sistema Information Systems Design - uvodno predavanje - Prof. drlatinović Tihomir

SISTEMI ZA UPRAVLJANJE SADRŽAJEM

Primena OLAP tehnika u analizi otplate duga klijenata Banke Poštanske štedionice a. d.

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011.

Implementacija sparsnih matrica upotrebom listi u programskom jeziku C

IZRADA PORTALA O PROGRAMSKOM JEZIKU PYTHON U SUSTAVU ZA UREĐIVANJE WEB SADRŽAJA

TEHNO SISTEM d.o.o. PRODUCT CATALOGUE KATALOG PROIZVODA TOPLOSKUPLJAJUĆI KABLOVSKI PRIBOR HEAT-SHRINKABLE CABLE ACCESSORIES

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

IMPLEMENTACIJA PODLOGE ZA SARADNJU KROKI ALATA SA ALATIMA ZA UML MODELOVANJE OPŠTE NAMENE

Ali kako znati koja maksimalna plata pripada kojem sektoru? GROUP BY in SELECT Obično se uključuje GROUP BY kolona u SELECT listi.

za STB GO4TV in alliance with GSS media

Aplikacija za podršku transferu tehnologija

MODEL OBJEKTI - VEZE KONCEPTI MODELA METODOLOGIJA MODELIRANJA

ZAVOD ZA AUTOMATIKU I PROCESNO RAČUNARSTVO FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SVEUČILIŠTE U ZAGREBU HTTP PROTOKOL OTVORENO RAČUNARSTVO

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

APLIKACIJA ZA ŠIFROVANJE FAJLOVA NA WEB-U

MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08

How To Set Up and Use the SAP ME Earned Standards Feature

Office 365, upute za korištenje elektroničke pošte

Algoritamski aspekti razvoja i implementacije Web pretraživača

ЗАВРШНИ (BACHELOR) РАД

Programiranje za Internet

Transcription:

Univerzitet u Beogradu Matematički fakultet Internet baze podataka Seminarski rad iz predmeta Baze podataka-napredni koncepti 2010/2011 šk.god. Profesor: Student: Dr Gordana Pavlović-Lažetić Mirjana Maljković, 2028/2010

Uvod Zahtevi za efikasnijim i bržim pristupom podacima doveli su do neophodnosti pristupa bazama podataka preko Interneta. Spajanjem veb tehnologija i tehnologija baza podataka omogućen je jednostavniji, jeftiniji i platformski nezavisan pristup mnogobrojnim podacima. Imajući u vidu te prednosti, mnoge organizacije razvijaju svoje informacione sisteme sa arhitekturom zasnovanom na Internet standardima. Pristupom bazama podataka preko Interneta omogućena je i elektronska trgovina (eng. e-commerce), koja je danas široko zastupljena. Elektronska trgovina omogućava svim tipovima organizacija da plasiraju i prodaju proizvode i usluge milionima korisnika na globalnom tržištu. Veb aplikacije Slika 1: Ukupan broj sajtova na svim domenima u periodu decembar 1995 - mart 2011 Prvi veb sajtovi su bili statičkog karaktera, odnosno činili su ih skup HTML stranica čiji je sadržaj nepromenljiv. Vremenom se javila potreba za pravljenjem dinamičkih veb sajtova koji koriste baze podataka za čuvanje podataka. Dinamički veb sajtovi omogućavaju korisnicima prikaz različitih podataka, zavisno od njihovih potreba i prava. Pored prikaza trenutnih vrednosti podataka, moguće je i njihovo menjanje, što je dovelo i do brzog rasta elektronskog poslovanja (npr. naručivanje različitih proizvoda preko Interneta). Dinamički sajtovi se nazivaju i veb aplikacije. Veb se sastoji od mreže računara koji se dele na: veb servere (koji obezbeđuju informacije) i klijente (koji zahtevaju informacije). Veb serveri i klijenti razmenjuju informacije pomoću protokola HTTP (Hyper Text Transfer protocol) koji definiše strukturu poruka. Moguće je koristiti i druge komunikacione protokole, npr. SSL. Klijent šalje zahtev veb serveru preko veb pretraživača. Preko URL (Uniform Resorce Locator) zadaje se lokacija i dokument kome klijent želi da pristupi. URL može da sadrži i dodatne podatke, npr. vrednosti koje klijent zadaje preko forme. Ako je tražen statički dokument (npr. HTML stranica) koji se nalazi na veb serveru, server ga pronalazi i vraća kao odgovor klijentu. Ako zahtev traži podatke koji se nalaze u bazi podataka, veb server pravi upit i šalje ga bazi podataka. Nad bazom podataka se izvršava upit i rezultat se vraća veb serveru, koji zatim na osnovu rezultata upita generiše stranicu koja se šalje klijentu kao odgovor. Isto tako, klijent može da pošalje podatke veb serveru, koji ih zatim prosleđuje bazi podataka radi čuvanja. Arhitektura veb aplikacija Veb aplikacije najčešće imaju troslojnu arhitekturu (slika 2) koju čine: prezentacioni sloj Veb stranice sa ugrađenim kodom koji se izvršava u veb pretraživačima na strani klijenta čine prezentacioni sloj. Prezentacioni sloj obezbeđuje i jednostavnu kontrolu i proveru korisničkog unosa koji se zadaje preko forme. srednji sloj 1

Kod koji se izvršava na strani veb servera predstavlja srednji sloj. Na njemu je implementirana poslovna logika aplikacije. Srednji sloj kontroliše koji podaci moraju biti obezbeđeni pre izvršavanja neke akcije, određuje i upravlja nizom koraka koji moraju biti izvršeni, uspostavlja vezu sa bazom podataka i dinamički pravi odgovore koji se šalju klijentu. On je odgovoran za sve različite uloge koje su uključene u aplikaciju. sloj baze podataka Sistem za upravljanje bazom podataka koji obezbeđuje pristup i upravljanje podacima predstavlja sloj baze podataka. Slika 2: Troslojna arhitektura Veb server i sistem za upravljanje bazom podataka mogu se nalaziti na jednoj mašini ako je obim poslovanja manji ili srednji, ili na različitim mašinama ako je obim poslovanja veliki. Sajtovi sa velikim obimom poslovanja koriste i n-slojnu arhitekturu u kojoj su veb serveri i baze podataka replicirani kao bi se opterećenje rasporedilo na više mašina. Tehnologije prezentacionog sloja Za predstavljanje podataka na Internetu najčešće se koristi HTML (Hypertext Markup Language), koji je osnovni jezik za pravljene veb stranica. Pomoću HTML-a definiše se izgled stranice koristeći razne oznake i njihove atribute. Pošto HTML sadrži određen broj oznaka čije je značenje definisano jezikom, on је pogodan samo za prikaz strukture dokumenta, ali nije pogodan za predstavljanje strukture podataka u dokumentima opšte namene. Da bi se rešio taj problem razvijen je XML (Extensible Markup Language) koji dozvoljava definisanje novog skupa oznaka koje mogu biti korišćene za definisanje strukture bilo kog podatka ili dokumenta. Za definisanje načina prikaza podataka koji se čuvaju u XML dokumentu koristi se XSL (Extensible Style Language). Veb pretraživači povećavaju svoju funkcionalnost pomoćnim programima (eng. plug-in) koji se automatski pozivaju od strane veb pretraživača kada je potrebno. Koriste se za pravilno rukovanje podacima koji nisu izvorno podržani veb pretraživačem, npr. za prikaz PDF dokumenta pokrenuće se Adobe Acrobat Reader da bi se dokument prikazao na računaru klijenta. Pravljenje interaktivnih sajtova je moguće i korišćenjem skript jezika JavaScript. Kod napisan na ovom jeziku ugrađen je u veb stranicu i preuzima se zajedno sa veb stranicom i izvršava se kada se desi određen događaj, npr. pritisne se miš. Programi napisani na programskom jeziku JavaScript se najčešće koriste za validaciju podataka unetih preko forme. Tehnologije srednjeg sloja Srednji sloj najčešće čine veb server sa dodatnim programima koji proširuju njegove mogućnosti. Veb serveri su u mogućnosti da sadrže samo datoteke statičkog sadržaja, kao što su HTML ili XML stranice, i da odgovore na zahteve za nekom od statičkih datoteka. Tako se veb serveru dodaju programi koji su u mogućnosti da obrade zahteve za koje je potreban pristup podacima iz baza podataka. Dodatni program na osnovu zahteva koji je prosledio klijent, formira upit i šalje ga bazi podataka. Na osnovu rezultata upita dinamički se pravi odgovor koji veb server vraća klijentu. Program koji predstavlja proširenje veb servera za baze podataka je poznat i kao srednji sloj 2

između veba i baza podataka. Slika 3 prikazuje interakciju između veb pretraživača, veb servera i srednjeg sloja između veba i baza podataka. Slika 3: Obrada zahteva Dodatni programi mogu biti napisani na programskim jezicima kao što su C, C++ ili Perl, koji pomoću protokola CGI (Common Gateway Interface) dobijaju podatke zadate preko forme. Takvi programi se često nazivaju CGI skriptovi. CGI skriptovi se izvršavaju svaki put kada korisnik pošalje zahtev, zbog čega može doći do znatnog usporavanja performansi. Umesto CGI skriptova mogu se koristiti API (Application Program Interface) koji predstavljaju biblioteke rutina koje se izvršavaju na veb serveru kao da su njegov sastavni deo. Veb server sa API proširenjima sam obrađuje zahtev, zbog čega je ovaj metod brži i zauzima manje resusra od CGI skriptova. Isti API se koristi za sve zahteve, zbog čega je brži od CGI skripta. Još jedna prednost je što API-ji koriste zajedničku vezu sa bazom podataka, dok CGI skriptovi svaki put prave novu. Nedostatak API-ja je što greška u njemu može da sruši server jer API koristi isti memorijski prostor kao veb server. Još jedan način proširenja mogućnosti veb servera je ugrađivanjem programskog jezika u okviru HTML stranice. Kada klijent zahteva HTML stranicu koja sadrži delove koda napisane na programskom jeziku, veb server stranicu prosleđuje posebnom programu (eng. engine) koji čita stranicu i izvršava te delove. Delovi napisani na programskom jeziku mogu da sadrže pozive ka bazama podataka i upite koji se postavljaju nad podacima. Rezultat je HTML stranica koja sadrži oblikovane podatke. Ovaj pristup koriste: JSP (Java Server Pages) tehnologija razvijena od strane kompanije Sun Microsystems, koja koristi programski jezik Java za obradu podataka i HTML ili XML za formatiranje i prikaz podataka. ColdFusion tehnologija koja kao programski jezik koji se umeće u stranicu koristi skript jezik CFML (ColdFusion Markup Language). Pomoću posebnog programa pristupa bazi podataka i pravi HTML stranicu koja sadrži i formatira podatke koji treba da se prikažu. PHP skript jezik koji se koristi na strani servera za ugrađivanje naredbi za dodavanje i prikazivanje podataka u HTML stranici. Nezavisan je od servera i veb pregledača i obezbeđuje ugrađenu podršku za najzastupljenije baze podataka, kao i ODBC. ASP (Active Server Pages) Microsoft tehnologija koja u veb stranicu ugrađuje naredbe napisane na skript jezicima Visual Basic Script ili Jscript. Koristi ADO (ActiveX Data Objects, pripremljene programske biblioteke koje su ugrađene u Microsoft veb serverima) za rad sa bazama podataka na Internetu. 3

Drajveri Pošto različite baze podataka svoje podatke organizuju na različite načine, program koji želi da pristupi bazi podataka koristi poseban program, drajver, koji bazu podataka predstavlja na uopšten način. Drajver ima dva interfejsa, jedan za komunikaciju sa specifičnim sistemom za upravljanje bazom podataka, a drugi za komunikaciju sa aplikacijom. Sistemi za upravljanje bazama podataka sadrže skup drajvera (ponekad se nazivaju maternji drajveri ) koji predstavljaju međuvezu ka određenoj bazi podataka. Ostali drajveri rade sa različitim bazama podataka. Na primer, ODBC (Open Database Connectivity) je standard razvijen od strane kompanije Microsoft, ali ga koriste mnogi proizvođači. Upotreba standardnih drajvera omogućava pristup podacima iz bilo koje baze podataka, bez obzira koji se sistem za upravljanje koristi. Programima napisanim na programskom jezika Java, drajever JDBC (Java Database Connectivity) omogućava da pristupe bilo kojoj bazi koja koristi SQL upitni jezik. Ovakva arhitektura omogućava dinamički pristup bazama podataka preko veb stranica, odnosno korisnik može da vidi trenutno stanje baze podataka na različite načine, kao i da je pretražuje i menja. Vremenom se zahtevi od veb aplikacija povećavaju. Zahteva se i sposobnost komunikacije i razmene podataka među veb aplikacijama, kao i sa drugim sistemima koji nisu zasnovani na vebu. Sistemi moraju biti u mogućnosti da razmenjuje podatke u formatu zasnovanom na standardu. To je i jedna od uloga XML-a. EXTENSIBLE MARKUP LANGUAGE (XML) Prvo se očekivalo da će se podaci razmenjivati preko veba u obliku HTML stranica, čime bi se obezbedio i formatiran prikaz podataka u veb pretraživaču. Međutim, ne postoji lak način da aplikacija dobije podatke iz HTML stranice jer oznake opisuju kako nešto izgleda na veb stranici, ali nisu pogodne za manipulaciju podacima (npr. redni broj, datum, stavku, količinu ili cenu iz narudžbine je teško izdvojiti). Da bi se rešio taj problem razvijen je nov jezik za označavanje, poznat kao Extensible Markup Language ili XML. XML je meta jezik koji se koristi za predstavljanje i manipulaciju podacima. XML je razvijen da bi olakšao razmenu struktuiranih dokumenata preko Interneta, kao što su narudžbine ili fakture. World Wide Web Consortium (W3C) je 1998. godine objavio prvu definiciju XML 1.0 standarda. XML je, kao i HTML, izveden iz SGML (Standard Generalized Markup Language), međunarodnog standarda za objavljivanje i distribuciju kompleksnih tehničkih dokumenata. XML se bavi opisom i predstavljanjem podataka, a ne načinom na koji su podaci prikazani. Obezbeđuje semantiku koja olakšava razmenu i upravljanje struktuiranim dokumentima. Osim što se koristi kao format za razmenu podataka, XML je postao važan i za skladištenje podataka. Prednosti XML-a su što je: standardizovan - dostupni su mnogi proizvodi od mnogih proizvođača koji su implementirali preproruke W3C-a za XML; jednostavan - tehnologija je laka za učenje i implementaciju i postoje mnogi tutorijali i knjige na raspolaganju; samoopisan - ne mora da postoji detaljan opis formata ili šema koja opisuje sadržaj. Document Type Definitions (DTD) i XML Schema Da bi se podaci koji se razmenjuju pomoću XML dokumenata razumeli, mora da postoji način koji opisuje oznake koje se koriste u njima. Jedan od načina da se opišu oznake je korišćenjem DTD (Document Type Definition). DTD je datoteka sa dtd ekstenzijom koja definiše sintaksna pravila ili 4

validne elemenate za XML dokumenta. Nedostatak DTD je što obezbeđuje ograničenu semantičku vrednost, kao što su tipovi podataka ili pravila validacije podataka. Da bi se rešio taj problem, W3C je objavio standard XML Schema koji obezbeđuje bolji način da se opišu XML podaci. XML Schema je jezik za definisanje podataka koji se koriste za opisivanje strukture (elemente, njihove tipove podataka, tipove odnosa, opsege i podrazumevane vrednosti elemenata) XML dokumenata. Jedna od glavnih prednosti je što ima terminologiju i osobine bliske bazama podataka. Na primer, pomoću XML Schema mogu se definisati uobičajeni tipovi podataka koji postoje u bazama podataka, kao što su datum, ceo ili decimalni broj, zatim lista važećih vrednosti, neopohodni elementi, itd. Za razliku od DTD, koji koristi jedinstvenu sintaksu, XML Schema koristi sintaksu koja podseća na XML sintaksu. Na slici 4 je prikazan deo XML dokumenta sa odgovarajućim DTD-om i šemom napisanom na XML Schema. Postoje i drugi načini opisivanja podataka, npr. pomoću RELAX NG. XML Prikaz Slika 4: Primer dela XML dokumenta sa odgovarajućim DTD i šemom na XML Schema Jedna od glavnih prednosti XML-a je što je odvojena struktura podataka od prezentacije i obrade. Odvajanjem podataka i prezentacije, isti podaci se mogu predstaviti na različite načine. Extensible Style Language (XSL) obezbeđuje mehanizam za prikaz XML podataka. XSL se koristi za definisanje pravila za formatiranje i prikaz XML podataka. XSL specifikacija je podeljena na dva dela: Extensible Style Language Transformations (XSLT) i XSL style sheets. Veze Linkovi su osnovna funkcionalnost Interneta jer omogućavaju povezivanje jednog resursa sa drugim. Koriste se za smanjenje količine redudantnih podataka, tako što povezuju slične resurse. XLink obezbeđuje povezivanje između XML dokumenata. Upiti Razvijeno je nekoliko upitnih jezika za postavljanje upita nad XML podacima. Neki od njih su nastali u istraživanjima o polu-struktuiranim podacima kao što su: OQL, Quilt, YaTL, XML-QL, XQL i Lorel. W3C radna grupa razvija upitni jezik XML Query Language (XQuery) na osnovu Quilt. 5

XPath XPath koristi apstraktnu, logičku strukturu XML dokumenta, kojeg vidi kao drvo čvorova. Vrednosti koje vraća XPath upit se smatraju čvorovima. Tipovi čvorova koji postoje u XPath modelu podataka dokumenta su: tekstualni čvorovi, čvorovi elemenata, atribut čvorovi, koreni čvor, čvorovi imenskih prostora, čvorovi instrukcija za procesiranje i čvorovi komentara. XPath je kao regularni izrazi (koristi obrasce za pretraživanje u tekstu) za XML čvorove. Standardizovan je od strane W3C. XPath izraz definiše put od vrha do dna kroz drvo, sve do željenih čvorova. Svaki nivo čvora je odvojen kosom crtom, slično kao kod putanja u sistemskim datotekama. Sadrži funkcije za pristup informacijama o čvorovima u dokumentu, kao i za manipulaciju niskama, brojevima i Bulovim vrednostima. Primeri XPath upita: /gatech_student/name - pronalazi sve elemente name koji su deca korenog elementa gatech_student; //age - bira sve elemente age; /gatech_student[@gtnum] - bira sve atribute gtnum elemenata gatech_student. XPath može da se koristi kao osnova za upitni jezik, ali nedostaju neke osobine, kao što su grupisanje, sortiranje, spajanje dokumenta i tipovi podataka. XQuery XQuery je upitni jezik za postavljanje upita nad kolekcijom XML podataka. Kolekcije mogu biti podaci iz XML datoteka, XML baza podataka ili relacionih baza podataka. Upiti mogu da kombinuju podatke iz nekoliko izvora. XQuery je izgrađen nad XPath. Dodaci koji ne pripadaju XPath-u, sintaksno i funkcijski liče na upitni jezik SQL. XQuery se sastoji od tri različita jezika: jezika sa sintaksom koja je čoveku laka za razumevanje, jezika sa XML sintaksom za mašine (XQueryX) i formalnog algebarskog jezika koji koristi XQuery procesor. Osnovni pojmovi u XQuery su FLWOR izrazi. FLWOR je akronim za izraze for, let, where, order by i return. for klauzula se koristi za iteraciju kroz čvorove, a let za dodeljivanje promenljivih. Obe klauzule određuju niz torki koje mogu da se filtriraju ili uređuju preko where i order by klauzula. Kada se torke izfiltriraju i urede vraćaju se pomoću return klauzule. FLWOR može da se koristi za izgradnju jednostavnih ili složenih fragmenata XML-a. XQuery ima veliki broj funkcija, uključujući funkcije za niske, poređenje vremena, manipulaciju čvorovima, konverzije tipova i Bulovu algebru. Mogu da se definišu i korisničke funkcije. Funkcije mogu biti rekurzivne. Postoje aritmetički operatori i operatori za poređenje. Neke od XQuery implementacija su: XQEngine,QuiP, XQuark, Galax, Qizx/open, XQJ. Sposobnosti ažuriranja Za ažuriranje XML dokumenata može da se koristiti jezik XUpdate koji je zasnovana na XPath i koristi se za određivanje koji čvor treba da se obriše ili ažurira ili gde treba da se umetne nov čvor. Mogu se koristiti i XQuery ekstenzije koje se primenjuju u nekim XML alatima. Podaci naspram dokumenta Datoteke koje koriste XML se mogu podeliti na datoteke orijentisane ka podacima i datoteke orjentisane ka dokumentima. Datoteke orijentisani ka podacima koriste XML samo za prenos podataka i obično su namenjene za obradu od strane računara. Imaju prilično pravilnu strukturu, sa preciznim podacima i malo ili nimalo mešovitim sadržajem. Podaci iz takvih XML datoteka se najčešće čuvaju u tradicionalnoj bazi 6

podataka i uvoze se i izvoze iz njih pomoću funkcija ugrađenih u bazi podataka (XML omogućene baze podataka). Datoteke orijentisane ka dokumentima se najčešće prave da budu čitljive i ljudima i računarima. Oni imaju manje pravilnu strukturu i obično imaju mešovit sadržaj. Razlika između datoteka orijentisanih ka podacima i dokumentima nije uvek jasna. Mnoge datoteke su orijentisane ka podacima ali su polu-struktuirane. Polu-struktuirani podaci su nepravilni i mogu brzo da menjaju strukturu, zbog čega relacione baze podataka za skladištenje nisu pogodne. Sposobnost XML-a da čuva polu-strukturirane podatke (kao i strukturirane i nestrukturirane podatke) je jedna od njegovih prednosti. Baze podataka i XML XML i srodni alati imaju mnoge osobine baza podataka: skladištenje (XML dokumenti), šeme (DTD, XML Schema, itd.), upitne jezike (XQuery, XPath, XQL, XML-QL, QUILT, itd.), itd. Međutim, nedostaje efikasno skladištenje, indeksi, sigurnost, transakcije, integritet podataka, višekorisnički pristup, okidači, itd. Ovi nedostaci mogu biti prevaziđeni skladištenjem XML podataka u XML bazama podataka. Različiti tipovi XML baza podataka Postoje tri vrste XML baza podataka: omogućene (enabled), prirodne (native) i hibridne. XML omogućene baze podataka (XEnDB) su izgrađene nad postojećima bazama podataka, najčešće relacionim. Mapiranjem XML podataka u relacionu bazu podataka omogućava se korišćenje svih osobina i performansi sistema za upravljanje relacionim bazama podataka. Zbog strukture XMLa, mapiranje često daje veliki broj tabela ili nenormalizovanu reprezentaciju. Mapiranje često dovodi do gubitka fizičke i logičke strukture XML podataka do nekog stepena (gube se uputstva za obradu, komentari, poredak elemenata, itd.), zbog čega se dešava da XML dokument koji se izveze iz baze razlikuje od onog koji je uvezen. Većina poznatih sistema za upravljanje bazom podataka nude XML omogućene baze podataka, kao što su IBM DB2, Oracle 10g i SQL Microsoft Server. Prirodne XML baze podataka (NXD) su posebno napravljene za skladištenje XML dokumenata. Članovi XML:db liste za slanje pošte (eng. mailing list) su NXD definisali na sledeći način: Definiše (logički) model za XML dokumenta i čuva i vraća dokumenata prema tom modelu. Model mora da sadrži elemente, atribute, PCDATA i redosled u dokumentu. Primeri takvih modela su XPath model podataka, XML Infoset, i modeli koje podrazumeva DOM i događaji u SAX 1.0. XML dokument je osnovna jedinica (logičkog) skladištenja, kao što relaciona baza podataka ima red u tabeli kao osnovnu jedinicu (logičkog) skladištenja. Nije obavezno da postoji neki određeni fizički model za skladištenje. Na primer, može se graditi na relacionoj, hijerarhijskoj, ili objektno-orijentisanoj bazi podataka, a može se koristiti prikladniji format za skladištenje kao što su indeksirane, komprimovane datoteke. XML ne podržava direktno tipove podataka, međutim, ove informacije se mogu odrediti preko šeme. Neke NXD zahtevaju da kolekcija bude povezana sa šemom, a neke ne. Transakcije su podržane u mnogim NXD. Zaključavanje se često vrši na nivou korena dokumenta, jer bi, npr. brisanje čvora koji je više u hijerarhiji uticalo i na uklanjanje čvora koji se ažurira u isto vreme, a nalazi se niže u hijerarhiji. Jedna od prednosti NXD je mogućnost da vrate XML dokumenta baš onakva kakva su bila pre unosa u bazu podataka, zbog čega su najkorisnije za skladištenje dokumenta orijentisanih ka dokumentima. U NXD se pored dokumenta mogu čuvati i podaci. Neke od prirodnih baza podataka su: dbxml, Ipedo XML database, Sedna, Tamino, Timber, Virtuoso. 7

Hibridne XML baze podataka (HXD) su baze podataka koje u zavisnosti od potrebnih osobina, mogu se posmatrati kao NXD ili kao XEnDB. Granice između XEnDB i NXD su nejasne. Tradicionalne baze podataka podržavaju XML operacije i NXD može da koristi eksternu relacionu bazu podataka za skladištenje fragmenta dokumenta. Kompresija Ponavljanje oznaka i struktura XML podataka utiče na povećanje veličine podataka, a samim tim i na povećanje troškova obrade i skladištenja podataka i razmene podataka preko veba. Zbog toga je posebno važno pronalaženje efikasnih tehnika za kompresiju XML dokumenata. Tehnike za kompresiju XML dokumenata se mogu podeliti u dve grupe: grupa koja podržava postavljanje upita nad kompresovanim dokumentima i grupa koja ne podržava upite nad kompresovanim dokumentima. Na slici 5 je dat pregled nekih tehnika za kompresiju. XML specijalizovani jezici Slika 5: Tehnike za kompresiju XML dokumenata XML dozvoljava da stručnjaci iz različitih oblasti, kao što su matematika, hemija, finansije ili životna sredina razviju XML šeme koje definišu jezike za označavanje. Ovi specijalizovani XML jezici su važni za razmenu podataka iz tih oblasti. Postoje stotine specijalizovanih XML jezika koji su definisani za neku oblast. Neki od jezika koji su postigli određeni nivo standardizacije i prihvatanja su MathML za matematički sadržaj, SMIL za interaktivne multimedijalne prezentacije, XBRL za poslovno i finansijsko izveštavanje, GML za geografske informacije, itd. MathML MathML (Mathematical Markup Language) je XML jezik za opisivanje matematičke notacije, čiji je cilj da se poveća dostupnost matematičkog sadržaja na vebu. Postoje dve kategorije MathML elemenata. Prvu kategoriju čine oznake za prezentaciju koje se koriste za opis dvodimenzionalnog rasporeda i prezentaciju matematičkih izraza (Presentation MathML). Drugu kategoriju čine oznake za sadržaj koje obezbeđuju pristup semantici izraza (Content MathML). Postoji veliki broj istraživanja o pretraživanju matematičkih formula u digitalnim bibliotekama i na Internetu, koji su kao rezultat dali nekoliko matematičkih pretraživača (MSE) koji koriste MathML za predstavljanje matematičkog sadržaja, kao što su: MathDex ili MathWebSearch. Mathdex je pretraživač gde korisnici mogu zadati matematičke izraze kao termine za pretraživanje zajedno sa tekstom. Matematički simboli se posmatraju kao tekst, a Apache Lucene se koristi za pretraživanje teksta. Sav sadržaj (u PDF, LaTex ili nekom drugom formatu) se pretvara u XHTML + MathML format radi indeksiranja. MathML termini su normalizovani i čuvaju se kao sekvence oznaka kodirane tekstom. Termini za pretraživanje se na sličan način prevode, a pretraga se 8

vrši na isti način kao na Apache Lucene. Konačna rang lista rezultata se izračunava na osnovu strukturne sličnosti termina upita sa matematičkim izrazima u dokumentima. MathWebSearch je MSE koji koristi semantički pristup. Podržava MathML za prezentaciju i sadržaj, kao i OpenMath. Za čuvanje matematičkih formula koristi indekse zasnovane na drvetu poznate pod nazivom substitution-tree indexing. Za postavljanje upita koristi jednostavan mehanizam koji predstavlja proširenje baznog formata zasnovanog na XML-u. Proširenje se sastoji od četiri oznake (mq:query, mq:and, mq:or, mq:not) i četiri atributa (mq:target, mq:generic, mq:anyorder i mq:anycount). Oznaka mq:query se koristi za obuhvatanje izraza pretrage. Oznake mq:and, mq:or i mq:not predstavljaju logičke operatore koji mogu da imaju atribut mq:target pomoću kojeg se zadaje opseg operatora (može biti dokument ili term). Logički operatori mogu sadržati oznake baznog XML formata. Atributi mq:generic, mq:anyorder i mq:anycount mogu da se koriste uz bilo koju oznaku osnovnog formata. Atribut mq:generic označava da term treba da odgovara bilo kom podtermu u indeksu. Atribut mq:anyorder označava da se redosled dece može zanemariti. Atribut mq:anycount definiše broj pojavljivanja određene bazne oznake. U radu [12] predložen je matematički upitni jezik koji predstavlja proširenje sintakse standardnih upita nad tekstom. Zadati upiti se mapiraju u upite napisane na upitnom jeziku XParth/XQuery. Pretpostavlja se da je matematički sadržaj predstavljen pomoću Content MathML. Jezik je fokusiran na matematičku notaciju koja se najčešće koristi i koju podržava Content MathML 2.0 u oblasti aritmetike, algebre, računa, itd. Pored toga, razvijena je sintaksa za matrice, diferencijalne jednačine, integrale i kompoziciju funkcija. Uvedeni su džokeri, koji omogućavaju postavljanje složenijih upita u kojima je moguće zadati samo delove izraza. Džokeri koji su dodati su: $ - predstavlja jedan term, koji može da bude varijabla, broj, ime matrice ili funkcije, itd. Npr. f($) odgovara funkciji sa tačno jednim argumentum, npr. f(x). -- - predstavlja jedan ili više termova. Npr. --+-- odgovara sin+cos ili A+B... - predstavlja jednog ili više uzastopnih članova u nizu ili jednog ili više čvorova na istom nivou u parsiranom drvetu. Npr. matrix(a+--+b,c+--+d,..,15) odgovara matrix(a+f(2,3)+b,c+4+d,12,13,15). - predstavlja nula ili više uzastopnih članova u nizu. Postoje i simboli za odvajanje sa određenom semantikom, koji zajedno sa džokerima omogućavaju pretragu strukture. Oni su:, - odvaja stavke u nizu ili argumente funkcije ili kolone u matrici; ; - odvaja redove u matrici; @ - označava primenu funkcije. Npr. @(x+1) odgovara bilo kojoj funkciji sa argumentom x+1. Moguće je zadati i tip terma. GML GML (Geography Markup Language) je standard zasnovan na XML-u za geografske informacije koje je razvio konzorcijum OpenGIS (OGC). GML se koristi za prenos i skladištenje geografskih informacija, uključujući i prostorna i neprostorna svojstva geografskih oblika. Mehanizam i sintaksa koju GML koristi za predstavljanje geografskih informacija u XML su definisani u specifikaciji OpenGlS. GML je postao glavni standard za elektronsku razmenu podataka između veb aplikacija i distribuiranih informacionih sistema. Za bolje postavljanje upita i ažuriranje GML dokumenata moguće je proširiti upitni jezik za XML dokumenta sa prostornim operatorima. Takav upitni jezik se može koristiti za upite nad alfanumeričkim karakteristikama XML dokumenta, kao i nad topološkim vezama između dva prostorna regiona. U [8] je opisano kako se XQuery može proširiti prostornim operatorima koji se mogu pojaviti u for, let, where i return klauzulama FLOWR izraza. Neki od 9

operatora koji su dodati su za udaljenost, konveksni omotač, presek, uniju, razliku i poređenja. U zavisnosti od zahteva, ove funkcije kao argumente mogu imati skalarne vrednosti ili kolekcije. Povratna vrednost može biti tipa boolean, skalarna vrednost ili kolekcija. Koristeći ove operatore rešenje upita Pronaći spisak imena svih država u Indiji kroz koje teče reka Gang bi bilo: Zaključak FOR $c in document( Country.xml ) //Country{Name= India] FOR $s in document ( State.xml )//State FOR $r in document( River.xml )//river[name= ganga ] WHERE intersection($c/shape,$s/shape)==1 and intersection($s/shape,$r/shape)==1 RETURN <statename> <stname>$s/name/text()<stname> </statename> U ovom radu je dat kratak prikaz oblasti Internet baze podataka. Pored arhitekture današnjih veb aplikacija i njihove povezanosti sa bazama podataka, prikazani su smo neki aspekti XML-a, jednog od formata za razmenu informacija preko Interneta. Pristupom bazama podataka preko Interneta milionima korisnika je omogućen brži i efikasniji pristup mnogim podacima u svakom trenutku i sa bilo koje pozicije (pored računara, podacima je moguće pristupiti i preko mobilnih uređaja, npr. mobilnih telefona). Reference [1] Database Technologies: Concepts, Methodologies, Tools and Applications, Information Science Reference, John Erickson, 2009 [2] Internet and Web-Based Database Technology, Amjad A. Abdullat [3] The Internet Encyclopedia, Hossein Bidgoli, Volume 1 and 3, John Wiley & Sons, 2004 [4] Modern Database Management, Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden, 8th ed. [5] An Investigation of Index Formats for the Search of MathML Objects, Yoshinori Hijikata, Hideki Hashimoto and Shogo Nishida Graduate School of Engineering Science, Osaka University [6] Search Systems for Math Information Retrieval: A Survey A. Muhammad, M. S. H. Khiyal [7] Comparative Research of XML Compression Technologies, Sheng Zhang, Xiaoling Bao, Jian Shu, Sha Chen [8] A Query Language for Information Retrieval from GML, Sobhana N.V [9] http://www.rpbourret.com/xml/xmlanddatabases.htm [10 ]http://www.w3.org/tr/xquery-update-10/ [11] A Search Engine for Mathematical Formulae, Michael Kohlhase and Ioan A. S ucan [12] An Extensive Math Query Language, A. Youssef and M. E. Altamimi, Pojavljuje se u: Proceedings of 16th International Conference on Software Engineering and Data Engineering, 2007 [13] XML and Databases for Internet Applications, Gerardo Trinidad [14] An XML-based Database of Molecular Pathways, David Hall, 2005 [15] XML for DB2, Information Integration, Bart Steegmans, Ronald Bourret, Owen Cline, Olivier Guyennet, Shrinivas Kulkarni, Stephen Priestley, Valeriy Sylenko, Ueli Wahli [16] Querying XML XQuery, XPath, and SQL/XML in Context, Jim Melton and Stephen Buxton, 2006 10