旅游业当在新时代焕发新气象
Relaciona baza podataka je poseban tip baze podataka kod kojeg se organizacija podataka zasniva na relacionom modelu. Podaci se u ovakvim bazama organizuju u skup relacija izme?u kojih se defini?u odre?ene veze. Relacija se defini?e kao skup n-torki sa istim atributima, definisanih nad istim domenima iz kojih mogu da uzimaju vrednosti. U relacionim bazama podataka, svaka relacija mora da ima definisan primarni klju?, koji predstavlja atribut pomo?u kojeg se jedinstveno identifikuje svaka n-torka. Relacija opciono mo?e da poseduje i spoljni klju?, preko kojeg ostvaruje vezu sa drugim relacijama.
Upravljanje ovakvim bazama podataka se realizuje preko sistema za upravljanje relacionim bazama podataka. Me?u najpopularnijim takvim sistemima danas su: Microsoft SQL Server, Oracle Database, MySQL i drugi. Ve?ina tih sistema koristi upitni jezik SQL za manipulaciju podacima.
Pojam relacionog modela po?inje da se javlja sedamdesetih godina pro?log veka, a za njegovog osniva?a se smatra Edgar Kod. On je bio rukovodilac u jednom od sektora IBM-a, zadu?enog za proizvodnju ra?unarskih hard diskova. U to vreme, baze podataka su se zasnivale na navigacionom modelu, kojeg je Edgar Kod smatrao neefikasnim, pre svega zbog slabih mogu?nosti pretra?ivanja podataka u njima. Stoga je, 1970. godine, objavio veliki broj kratkih dela o relacionom modelu organizacije podataka, koja su predstavljala uvod u njegovo prvo veliko delo te tematike ?Relacioni model za organizaciju velike koli?ine podataka“. U tom delu je predstavio model, po kojem bi se podaci skladi?tili u tabele umesto u povezane liste, koje su predstavljale osnovu navigacionog modela. Navigacioni model je bio neefikasan i prilikom ?uvanja podataka u kojima bi neki slog morao biti ostavljen prazan. Relacioni model bi to re?avao sme?tanjem podataka u odre?eni broj normalizovanih tabela, s ‘tim da bi se ti opcioni podaci koji ne moraju imati vrednost sme?tali van glavne tabele. Tako?e, Kod je u svom delu naveo i velike prednosti relacionog modela u odnosu na navigacioni, koje se odnose na sme?tanje, brisanje i ?itanje podataka iz baze, jer ne bi postojala potreba za konstantnim prepravljanjem lnkova i pokaziva?a u ?vorovima navigacionog modela. Za manipulaciju podacima u ovakvim bazama, Kod je predlo?io jezik koji se kasnije razvio u SQL. IBM je kasnije, na osnovu Kodove knjige, razvio prve sisteme za upravljanje relacionim bazama podataka, PRTV i IBM Business Systems 12.
Svaka relacija mo?e bez ikakvih problema da se predstavi u tabelarnom obliku, ali i pored toga, relacija i tabela nisu isto. To je iz razloga ?to je kod tabela bitan redosled redova i kolona, dok kod relacija nije bitan redosled atributa i n-torki. Na primer, tabela 1 ima kolone sa redosledom: ime, prezime, jmbg. Tabela 2 ima kolone sa redosledom: jmbg, prezime, ime. Te dve tabele se ne smatraju istim, bez obzira ?to imaju iste nazive kolona. I pored toga ?to relacija i tabela nisu sinonimi, danas se uglavnom svaka relacija naziva tabelom, tj. njeni elementi se poistove?uju sa elementima koji ?ine jednu tabelu. Iz tog razloga su u slede?oj tabeli dati pojmovi iz relacionog i tabelarnog modela koji se odnose na isto.
Tabela | Relacija |
---|---|
Red tabele | N-torka |
Kolona, naziv kolone, vrednost kolone | Atribut, naziv atributa, vrednost atributa |
Tabela | Bazna relacija |
Skup naziva kolona | Relaciona ?ema |
Pogled, rezultat upita | Izvedena relacija |
- N-torka se defini?e kao ure?eni skup od ?n“ elemenata. Na primer, ovaj podskup celih brojeva predstavlja jednu petorku:
- Atribut predstavlja ime kojim se u relacionom modelu, identifikuje svaki od elemenata jedne n-torke. U donjem primeru atributi su "student", "status" i "prosek" a elementi n-torke su "Marko", "Bud?et" i "8.2".
(Student: "Marko", Status: "Bud?et", Prosek: 8.2)
- Relacija se defini?e kao skup n-torki koji imaju iste atribute kojima su identifikovani njihovi elementi, i koji uzimaju vrednosti iz istih domena. Primer relacije:
(Student: "Marko", Status: "Bud?et", Prosek: 8.2) (Student: "Jovan", Status: "Bud?et", Prosek: 9.1) (Student: "Bojan", Status: "Samof", Prosek: 7.8)
U relacionim bazama podataka postoje dve vrste relacija: bazne i izvedene. Bazne relacije su relacije koje se ve? nalaze u bazi podataka, tj. skladi?tene su na hard disku ili nekom drugom medijumu za ?uvanje podataka. Izvedene relacije(ili pogledi) su relacije koje se dobijaju ?itanjem i kombinovanjem podataka iz jedne ili vi?e baznih relacija postavljanjem uslova upitnim jezikom, o kojem ?e biti re?i kasnije.
- Domen predstavlja skup vrednosti koje mo?e da ima konkretni element n-torke. Domeni mogu biti semanti?ki i predefinisani. Predefinisani domeni ve? postoje u jeziku baze podataka i neki primeri tih domena su Integer koji predstavlja skup celih brojeva, Float koji predstavlja skup realnih brojeva, DateTime za predstavljanje datuma i vremena u razli?itim formatima, i drugi. Semanti?ke domene defini?e sam korisnik.
U svakoj relaciji mora da postoji jedan ili vi?e atributa zajedno, ?ije vrednosti jedinstveno identifikuju svaku n-torku u toj relaciji. Taj atribut, ili grupa atributa se naziva primarnim klju?em relacije. U slu?aju kada jedan atribut jedinstveno identifikuje svaku n-torku u relaciji imamo prost primarni klju?, a ako je identifikuju dva ili vi?e atributa, onda je u pitanju slo?eni primarni klju?. Primarni klju? je dakle skup od K elemenata neke relacije, koji moraju da zadovoljavaju slede?a dva uslova: osobinu jedinstvenosti i osobinu neredudantnosti. Osobina jedinstvenosti podrazumeva da ne mogu da postoje bilo koje dve n-torke sa istom vredno??u atributa ?K“. Osobina neredudantnosti podrazumeva da ako se izostavi bilo koji atribut iz K, gubi se osobina jedinstvenosti. U donjem primeru, atribut "?ifra" predstavlja prost primarni klju? relacije.
(?ifra: 432, Student: "Marko", Status: "Bud?et", Prosek: 8.2) (?ifra: 436, Student: "Jovan", Status: "Bud?et", Prosek: 9.1) (?ifra: 527, Student: "Bojan", Status: "Samof", Prosek: 7.8)
Spoljni klju? predstavlja atribut (ili grupu atributa) neke relacije R1, koji u njoj nije primarni klju?, ali jeste u nekoj drugoj relaciji R2. S tim u vezi, relacija R1 se povezuje sa relacijom R2 preko spoljnog klju?a. Da bi veza izme?u te dve relacije bila ispravna, moraju se zadovoljiti pravila referencijalnog integriteta. Ukratko, pod referencijalnim integritetom se podrazumeva da sve vrednosti koje uzima atribut koji predstavlja spoljni klju?, moraju da postoje i u relaciji u kojoj je taj atribut primarni klju?. U primeru koji sledi, atribut "?ifraSmera" predstavlja spoljni klju? u prvoj relaciji, i u ovom slu?aju su zadovoljena pravila referencijalnog integriteta.
Formalizmi za manipulisanje podacima, koji su sastavni deo relacionog modela su : relaciona algebra i relacioni ra?un. Upitni jezici koji su u sastavu konkretnog sistema za upravljanje relacionim bazama podataka se zasnivaju na jednom od ova dva formalizma, ili na njihovoj kombinaciji.
Prema Kodovoj definiciji, relacionu algebru ?ini devet operacija nad relacijama, kojima se mo?e pristupiti svakom podatku u datoj relaciji. Skup nekih relacija, i operacija koje se nad njima izvr?avaju se naziva izraz relacione algebre, i njegov rezultat je uvek relacija. Operacije relacione algebre predstavljaju operacije analogne skupovnim operacijama unije, preseka, razlike i Dekartovog proizvoda. U njih jo? spadaju i specifi?ne relacione operacije koje se dele u dve grupe: unarne i binarne. Unarne operacije se izvr?avaju nad samo jednom relacijom, i u njih spadaju: projekcija i restrikcija. U binarne operacije spadaju: prirodno spajanje, slobodno spajanje i relaciono deljenje.
Uzmimo npr. neku relaciju R sa njenim atributima {A1, A2, …, An}. Neka X predstavlja podskup skupa atributa {A1, A2, …, An}, a Y razliku izme?u skupa X i skupa {A1, A2, …, An}. Tada se relacija R mo?e predstaviti kao R(X,Y). Dakle, rezultat projekcije relacije R na skup atributa X je relacija koja uklju?uje samo atribute iz skupa X.
Operacijom restrikcije se biraju n-torke u celosti koje zadovoljavaju logi?ki izraz naveden u oznaci operacije. Argumenti logi?kog izraza mogu biti: pore?enje vrednosti dva atributa zadate relacije i pore?enje vrednosti jednog atributa zadate relacije sa nekom konstantom. Operacije logi?kog izraza su logi?ke operacije: AND, OR, NOT. Neka je, npr., θ relacijska operacija iz skupa {<,>,≤,≥,≠}, i neka su {Ai, Aj} atributi neke relacije R koji su definisani nad istim domenom. Restrikcija se tada predstavlja slede?im izrazom:
Relacionom unijom se sve n-torke iz dve odabrane relacije predstavljaju jednom relacijom, pod uslovom da su n-torke u tim relacijama iste vrste(npr. n-torke u obema relacijama predstavljaju knjige). Predstavlja se slede?im izrazom:
Pod istim uslovima se realizuju i presek i razlika.
Dekartov proizvod relacija R1 i R2 koje imaju n1 i n2 atributa se defini?e kao relacija R1xR2 sa n1+n2 atributa, ?to prakti?no zna?i da su samo na atribute prve relacije dopisani atributi druge relacije.
Operacija slobodnog spajanja koja se primenjuje na dve relacije R i S koje imaju m i n atributa, daje kao rezultat relaciju sa m+n atributa. Neka je θ relacijska operacija iz skupa {<,>,≤,≥,≠}. Tada se operacija slobodnog spajanja relacija R i S po atributima Ai i Bj realizuje po slede?oj formuli:
Pod prirodnim spajanjem se podrazumeva spajanje po jednakosti, i mo?e se izvesti po jednakosti pojedina?nih atributa dve relacije, ili po jednakosti podskupova odre?enih atributa. Neka imamo relacije R i S sa skupovima atributa {A1, A2, …, An} i {B1, B2, …, Bm}. Neka je X podskup atributa relacije R, a Y podskup atributa relacije S. Neka je Z razlika izme?u X i skupa atributa prve relacije R, a W razlika izme?u Y i skupa atributa druge relacije S. Relacije R i S se tada mogu predstaviti kao R[X,Z] i S[Y,W]. Tada se operacija spajanja relacija R i S po skupovima atributa X,Y defini?e na slede?i na?in:
Operacija deljenja relacije R(X; Y) po zadatom skupu atributa Y drugom relacijom T daje rezultat koji se sastoji od projekcija n-torki relacije R na atribute X i to samo onih projekcija n-torke koje se dekartovski pomno?ene sa svakom vrstom relacije T sadr?e u relaciji R. Neka je R relacija sa atributima {A1, A2, …, An}, Y podskup skupa {A1, A2, …, An}, a X = {A1, A2, …, An} \ Y. Neka relacija T(Z1, Z2, ..., Zk) ima isti broj atributa kao skup Y pri ?emu su parovi odgovaraju?ih atributa definisani nad istim domenima. Operacija deljenja relacije R po skupu atributa Y sa relacijom T defini?e kao:
Relacioni ra?un je drugi formalizam za manipulisanje podacima. Relaciona algebra daje skup operacija za izgradnju relacije rezultata, a relacioni ra?un pru?a notaciju za opisivanje svojstava te relacije rezultata. Relacioni ra?un se bazira na predikatskom ra?unu prvog reda. Edgar Kod je dao dve varijante: relacioni ra?un n-torki i relacioni ra?un domena.
Relacioni ra?un n-torki predstavlja formalizam za izradu izraza relacionog ra?una. Najva?nije njegovo svojstvo je n-torna promenljiva. To je promenljiva koja je vezana za odre?enu relaciju, i kao vrednosti uzima samo njene n-torke. Relacija za koju je vezana n-torna promenljiva se naziva dijapazon n-torne promeljive.
Izraz relacionog ra?una n-torki je oblika { (t1,t2,…,tk) : f }, pri ?emu va?i slede?e:
- t1,t2,…,tk su n-torne promenljive, i njihov skup se naziva ?ciljna lista“.
- f je formula, odnosno kvalifikacioni izraz koji se gradi od ?atoma“ i operacija na sl. na?in:
- Slobodne promenljive u formuli f su one koje se nalaze u ciljnoj listi.
- Ako je R relacija a s n-torna promenljiva vezana za nju, to vezivanje se ozna?ava sa R(S)
- Ako su S i U n-torne promenljive, a konstanta, θ operacija pore?enja {<,>,≤,≥,≠} onda oznaka ?S[i] θ U[j]“ ozna?ava pore?enje i-te promenljive komponente S sa j-tom promenljivom komponente U, i naziva se atom pore?enja.
- Svaki atom je formula. Sve n-torne promenljive atoma su slobodne promenljive u toj formuli.
- Ako su f i g formule, onda su formule i: f AND g, f OR g i NOT f, (Es)(f) i (Es)(f). Pojavljivanje promenljive je vezano u (Es)(f) i (Es)(f).
Primer: Imamo relacije: P koja predstavlja pesmu, I koja predstavlja izvo?a?a i KI koja defini?e koji izvo?a? izvodi koju pesmu. Neka su r, s, t imena n-tornih promenljivih, i P(r), I(t), KI(s) atomi njihovih pripadnosti relacijama. Ozna?imo sa r[i] i-ti atribut promenljive r. Tada su primeri izraza relacionog ra?una:
fr[2] : K(r)g (nazivi svih pesama)
fr[2] : K(r) AND r[3] =’ROCK’g (naslovi svih rok pesama)
Kod relacionog ra?una domena, promenljiva je definisana nad domenom atributa(domenska promenljiva), a ne nad relacijom. Izraz relacionog ra?una domena ima slede?i oblik:
{X1, X2, …, XK | f}
Pri ?emu va?i:
- x1, x2, … , xk su domenske promenljive.
- F je formula relacionog ra?una domena ?ije su slobodne promenljive x1, x2, … ,xk. Ta formula se defini?e na isti na?in kao i kod relacionog ra?una n-torki, sa malo modifikovanim oblikom.
- Ako je R relacija stepena n, a y1, y2, … , yn konstante ili domenske promenljive nad domenima atributa relacije, onda je R(y1, y2, … ,yn) atom. Vrednosti yi moraju biti izabrane tako da y1, y2, …, yn predstavlja n-torku relacije R.
- Ako su x, y domenske promenljive, ?a“ konstanta, a θ operacija pore?enja, onda su x θ a, x θ y atomi. NJihovo zna?enje je da par vrednosti x,y mora biti izabran tako da je pore?enje θ ta?no.
Upitni jezici su namenjeni za komunikaciju sa relacionom bazom podataka, tj. za kreiranje relacionih ?ema i a?uriranje i ?itanje podataka iz relacija. Mogu se najop?tije klasifikovati na: jezike dobijene nadgradnjom proceduralnih programskih jezika, jezike zasnovane na relacionom ra?unu domena ili n-torki, jezike zasnovane na relacionoj algebri i jezike koji se zasnivaju na kombinaciji relacione algebre i relacionog ra?una. Najzastupljeniji upitni jezik danas je SQL(Structured Query Language), razvijen 80-ih godina pro?log veka od strane istra?iva?ke IBM laboratorije u San Hozeu u Kaliforniji. Podr?avaju ga gotovo svi sistemi za upravljanje relacionim bazama podataka. I pored njegove velike rasprostranjenosti, veliki zna?aj se pridaje i upitnom jeziku QUEL(QUEry Language), koji je razvijen tako?e u Kaliforniji, na univerzitetu u Berkliju.
SQL predstavlja poslednju fazu razvoja upitnih jezika od strane istra?iva?ke IBM laboratorije. NJegovi prethodnici razvijeni od strane te IBM laboratorije su bili upitni jezici SQUARE i SEQUEL. SQL standard je objavljen 1989. godine i odmah je bio ?iroko prihva?en na tr?i?tu. Neki od bitnih svojstava su mu: jezik za definisanje podataka(Data Definition Language), jezik za manipulaciju podacima(Data Manipulation Language), spolja?nje i unutra?nje spajanje, kaskadno a?uriranje i brisanje, skupovne operacije (unija, presek i razlika) spajanje itd. Prikaza?emo neke najosnovnije pojmove vezane za ovaj upitni jezik.
Ovaj deo upitnog jezika slu?i za kreiranje i a?uriranje objekata koji ?ine relacionu bazu podataka, a tu spadaju bazne relacije, relacione ?eme, semanti?ki domeni, indeksi itd.
Generi?ki DDL upit za kreiranje bazne relacije(tabele):
CREATE TABLE <naziv tabele>
(<naziv kolone1> <tip podataka> [not null],
<naziv kolone2> <tip podataka> [not null],
... )
Generi?ki DDL upit za kreiranje semanti?kog domena:
CREATE DOMAIN <naziv domena> [AS] <predefinisani tip> [DEFAULT <vrednost>] [[CONSTRAINT <naziv ogranicenja>] CHECK (<ogranicenje>)] ...
Generi?ki DDL upit za izmenu definicije relacije(tabele):
ALTER TABLE <naziv tabele> ADD [COLUMN] <definicija kolone>
Ovaj deo upitnog jezika slu?i za manipulaciju podacima u bazi, tj. za prikazivanje, brisanje, ubacivanje i a?uriranje podataka. S tim u vezi, sastoji se od ?etiri osnovne komande: SELECT, INSERT, UPDATE, DELETE.
Generi?ki upit za ?itanje podataka iz baze, koji se oslanja na operacije restrikcije i projekcije iz relacione algebre.
SELECT < lista atributa > FROM < lista relacija > WHERE < kvalifikacioni izraz >
Generi?ki upit za ubacivanje podataka u bazu:
INSERT INTO naziv_tabele VALUES (vrednost_atr1, vrednost_atr2,. .. )
Generi?ki upit za brisanje podataka iz baze:
DELETE FROM naziv_tabele WHERE [kriterijum selekcije n-torki]
Generi?ki upit za a?uriranje podataka u bazi:
UPDATE naziv_tabele SET(atribut1, atribut2, ...)=(nove vrednosti) WHERE [kriterijum selekcije n-torki]
Operatori unije, preseka i razlike Ove operacije se oslanjaju na istoimene operacije u relacionoj algebri. Primer preseka:
SELECT atribut_1 FROM tabela_1 EXCEPT SELECT atribut_2 FROM tabela_2;
Prema podacima ameri?ke kompanije za istra?ivanje Gartner, pet vode?ih proizvo?a?a sistema za upravljanje relacionim bazama podataka u 2011. godini po prihodu su bili: Oracle, IBM, Microsoft, SAP i Teradata. Trenutno, tri najzastupljenija besplatna sistema za upravljanje relacionim bazama podataka su: MySQL, PostgreSQL, i SQLite. Po istra?ivanju iste kompanije u 2008. godini je procenat kori??enja sistema za upravljanje relacionim bazama na veb-sajtova bio slede?i[1]:
- Oracle Database - 70%
- Microsoft SQL Server - 68%
- MySQL (Oracle Corporation) - 50%
- IBM DB2 - 39%
- IBM Informix - 18%
- SAP Sybase Adaptive Server Enterprise - 15%
- Sybase IQ - 14%
- Teradata - 11%
Udeo na tr?i?tu proizvo?a?a sistema za upravljanje relacionim bazama podataka 2012. godine je bio[2]:
- Oracle - 48,8 %
- IBM - 20,2 %
- Microsoft - 17%
- SAP Sybase - 4,6 %
- Teradata - 3,7 %
- Ostali - 5,8 %
- ↑ ?"Procenat kori??enja SUBP"”. Arhivirano iz originala na datum 2025-08-14. Pristupljeno 2025-08-14.
- ↑ ?"Udeo na tr?i?tu proizvo?a?a relacionih SUBP"”. Arhivirano iz originala na datum 2025-08-14. Pristupljeno 2025-08-14.
- Gordana Pavlovi?-La?eti? - Uvod u relacione baze podataka.
- Hugh Darwen - An introduction to relational database theory --. ISBN 978-87-7681-500-4.
- Branislav Lazarevi?, Zoran Marjanovi?, Nenad Ani?i?, Sla?an Babarogi? - Baze podataka --. ISBN 978-86-7680-144-2.