You are on page 1of 30

UNIVERZITET APEIRON FAKULTET INFORMACIONIH TEHNOLOGIJA BANJA LUKA Vanredne studije Smjer „Nastavnička informatika”

Predmet RDBMS (SQL administracija & CASE alati)

„ RELACIONi MODEL BAZa PODATAKA ”
(seminarski rad)

Predmetni nastavnik Prof. dr Zoran Ž. Avramović, dipl.inž.elek.

Student

Saša Blagojević
Index br. 83/11

Banja Luka, decembar 2011.

Sadržaj

1. 2. 2.1. 2.2. 2.3. 3. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9. 3.10. 3.11. 3.12. 3.13. 3.14. 3.15. 4. 5.

Uvod............................................................................................................................. Šta je baza podataka ?.................................................................................................. Organizacija podataka.................................................................................................. Kreiranje baze podataka............................................................................................... PRISTUPI BAZAMA PODATAKA- programski jezici (sredstva)............................ Relacioni model baza podataka.................................................................................... Nastanak i razvoj relacionog modela baze podataka................................................... Relacioni sistem za upravljane bazama podataka........................................................ Relaciona Algebra........................................................................................................ Predstavljanje podataka................................................................................................ Pristup podacima.......................................................................................................... Sistemski tretman „NULL“ vrijednosti........................................................................ Neprekidan pristup dinamičkom katalogu relacionog modela..................................... Sveobuhvatan jezik za rad sa podacima....................................................................... Ažuriranje pogleda....................................................................................................... Dodavanje, brisanje i modifikovanje na visokom nivou.............................................. Fizička nezavisnost...................................................................................................... Logička nezavisnost..................................................................................................... Integritetska nezavisnost.............................................................................................. Distribuciona nezavisnost............................................................................................ Rad sa jezicima niskog nivoa....................................................................................... Zaključak..................................................................................................................... Literatura.....................................................................................................................

1 2 3 4 5 6 11 12 15

1. Uvod
Od samog početka korištenja računara, obrada različitih vrsta podataka, bila je jedan od osnovnih zadataka. Podaci i informacije su postali pokretačka snaga modernog poslovanja na 2

Zapadu pa i u cijelom svijetu. Kada želimo da imamo kvalitetne informacije o svim segmentima našeg poslovnog ili čak i privatnog života najbolje je da na određeni način organizujemo sve podatke koje mogu da nam pruže informacije koje su od velike važnosti u trenutku kada su nam potrebne, pogotovo se to odnosi na situacije kada u kratkom roku moramo donijeti neku kvalitetnu ili sudbonosnu odluku. Tada bi bilo najbolje da podaci za svaki pojedini element budu organizovani tako da se mogu smjestiti u tabele sa istovrsnim zaglavljem. Može, a veoma često i mora da bude više tabela koje bi obuhvatili sve segmente našeg interesovanja. Svi ti segmenti se nerijetko zbog svoje prirode moraju organizirati u posebne tabele, a te tabele se mogu povezivati preko određenih zajedničkih elemenata. Skup više tih tabela koje služe jednom zajedničkom cilju, skupa sa njihovim veznim elelmentima naziva se BAZOM PODATAKA. Njihov zajednički cilj se odnosi na svođenje veoma brze i uspješne infrormacije o svim događajima koji se dešavaju unutar jedne cjeline. Kada kucamo nešto u Wordu, vršimo neke tabelarne proračune u Exelu u više tabela onda imamo dodira sa bazom podataka. To je u svari pitanje organizacije naših podataka. Ako ispisujemo datoteke u Wordu i smještamo ih po određenim direktorijima na neki način organizujemo bazu podataka. U slučaju kada naša baza postane toliko komplikovana da nismo više u stanju da jednostavno kontrolišemo tok i razvoj podataka potrebno je preći na viši stepen organizacije podataka i početi razmišljati o sistemu za upravljanje bazom podataka. Postoji više sistema za rad sa bazama podataka kao što su: DBMS, ACCESS, FOXPRO, ORACLE, MICROSOFT SQL, DB2, XM.

2. Šta je baza podataka ?
Jednostavno rečeno, BAZA PODATAKA je softverska konstrukcija namjenjena za pohranjivanje, analizu i pretraživanje grupe srodnih i povezanih podataka, kao što su podaci o kupcima, pacijentima, telefonskim brojevima i sl.

3

U jednoj tabeli može postojati više polja ili kombinacija polja koji mogu biti kao primarni ključ. te je potrebno ove dvije tabele povezati kako bi smo znali koji je pisac napisao koju knjigu. prezime. a polja unutar tog sloga mogu sadržavati ime.1. Slog se u literaturi još ponegdje naziva i entitet. Ovakav način povezivanje podataka nazivamo relacioni model baza podataka. Pored te tabela imamo i listu knjiga. Svaki red u tabeli predstavlja jedan slog u tabeli (najmanja grupa podataka u bazi koja u potpunosti opisuje neki od koncepata koje baza modelira). Dakle.). a polje se naziva atribut. Uzmimo da naša tabela ustvari predstavlja listu pisaca. Pored toga što primarni ključ ima ulogu jedinstvenog identificiranja sloga on igra ulogu i u povezivanju tabela. ove dvije tabele su povezane. a svaka kolona jedno od polja unutar tog sloga. Svaki slog tabele se može jedinstveno identificirati putem jedne ili kombinacijom vrijednosti nekog od polja tog sloga. To polje ili kombinaciju polja tada nazivamo primarni dio ili osnovni ključ.Baza podataka sastoji se od jedne ili više (dvodimenzionalnih) tabela koje međusobno mogu biti povezane. podatke o nekoj osobi. Svaka tabela čuva istovrsne podatke (npr. adresu stanovanja ili datum rođenja te osobe. neku osobu. predmetu i sl. Tako neku osobu može jedinstveno identifikovati njen matični broj ili kombinacija vrijednosti polja imena i prezimena. Organizacija podataka 4 . 2. Ako u slog knjige ubacimo polje koje sadrži vrijednost primarnog ključa pisca. Ovo novo polje (koje iskljućivo služi za povezivanje dvije tabele) u tabeli se zove strani ključ. slog može biti grupa podataka koja opisuje npr.

Potrebno je upravljati smještanjem podataka i očuvanja tih podataka od namjernih i nenamjernih uništenja tj. Potrebno je smanjiti mogućnost koliko je moguće da se isti podatak zapisuje više puta (redundacija). da ne dođe do gubitka integriteta podataka. Jedan od ključnih aspekata. To utiče i na pouzdanost informacija koje se dobiju iz tih podataka. dobrog kreiranja baze podataka jeste kako će podaci biti organizovani u bazi podataka. Da bi postigli dobro kreiranu bazu podataka.Organizacija podataka je od veoma velikog značaja kada želimo raditi sa bazom podataka. te kakav je odnos među tim podacima. 2.2. Treba odrediti koji će podaci ulaziti u bazu podataka. Neke podatke treba zaštititi od toga da ih neovlašteni korisnici ne mijenjaju što se zove tajnost ili privatnost podataka. zatim koji će se podaci smjestiti u određene tabele među kojima će biti uspostavljen odnos. jedinstvene vrijednosti svih podataka pri ažuriranju. podatke bi trebalo organizovati tako da su lako dostupni i da omogućavaju lako održavanje baze podataka. jer višestrukim zapisivanjem nastaju problemi očuvanja stvarne. Kreiranje baze podataka 5 .

odrediti ciljeve. ako hoćemo graditi kuću potreban nam je nacrt kako će izgledati i sl. 6 . uprava kluba će u jednu tabelu staviti i zaposlene i članove. visini plate i sl. telefonskom broju. dok zaposleni zhtjevaju i informacije o broju socjialnog osiguranja.U svakodnevnom životu da bi počeli nešto praviti. potreban nam je recept. Bilo bi dobro da definisane zadatke specifikujemo u određeni dokument koji nam može pomoći da budemo usredsređeni na zadatak našeg programa. kreirati potrebno je da unaprijed odredimo dizajn. također prethodno trebamo organizovati podatke. Obje grupe zahtjevaju informaciju o imenu. Ako hoćemo da pripremimo neko jelo. Ali ako napravimo više tabela gdje se svaki podatak pojavljuje samo jednom i mi ćemo prilikom izmjena novu informaciju upisivati samo jednom. nacrt. Prilikom organizovanja podataka u tabele možemo lako odrediti da li neki podatak pripada toj tabeli ili ne. adresi. npr. ako neki klub želi da prati informacije o svojim članovima i zaposlenima. Pri kreiranju baze podataka. Ciljevi dizajniranja/kreiranja: • eliminisati suvišne podatke • omogućiti brzo pronalaženje pojedinačni podataka • sačuvati jednostavno održavanje baze podataka Ključne aktivnosti pri kreiranju baze podataka su: • Modeliranje aplikacije • Definisanje podataka neophodnih za aplikaciju • Organizovanje podataka u tabelama • Uspostavljanje međusobnih veza između tabela • Uspostavljanje zahtjeva indeksiranja i vrednovanja podataka • Izrada i snimanje svih potrebnih upita u vezi sa aplikacijama Modeliranje aplikacije se odnosi na postupak pri kojem definišemo zadatke koje aplikacija treba da obavi.

Ona se obično koristi za smještaj opštevažećih ulaznih podataka. Ovi upiti rade brže od upita koji se izrađuju zadavanjem naredbe programa koda. Upotreba upita ima nekoliko prednosti: premještanje aplikacije u server okruženje je jednostavnije. unošenje izmjena u SQL naredbu je jednostavnije. Kada neko u toku aplikacije unese takvu oznaku.programski jezici (sredstva) 7 . Tabela pretraživanja je još jedan pristup smještaju informacija s ciljem sprječavanja pojave suvišnih informacija i povećanje tačnosti unošenja podataka. Kada normalizujemo podatke. isti br. kada je potrebno da pristupimo podacima želimo da vidimo informacije iz svih tabela na jednom mjestu. Međutim. Taj skup zapisa se formira upotrebom SQL naredbe u kojoj navodimo željena polja.3. Tabela dijete je tabela u kojoj svi unijeti podaci dijele zajedničku informaciju koja je smještena u nekoj drugoj tabeli. lokacije polja i odnos između tabela i te naredbe možemo smjestiti kao upit u bazu podataka. njihove zajedničke podatke stavimo u jednu tabelu. Ako uzmemo za primjer neku porodicu gdje su kod svih ista prezimena. ista adresa. SQL naredbu možemo lakše koristiti na više mjesta u programu ili u više programa. program provjerava u odgovarajućoj tabeli da li ta oznaka stvarno postoji. a imena u drugu u tom slučaju tabela koja sadrži imena članova je tabela dijete. tabela dijete.Drugi način da se podaci normalizuju jeste da se formira tzv. a različita imena. međusobno povezane informacije obično smještamo u nekoliko tabela. telefona. Pristupi bazama podataka. Dobro kreirana baza podataka omogućava: • minimalno vrijeme potrebno za pronalaženje zapisa • smještanje podataka na najefikasniji način tako da baza ne postane suviše velika • najjednostavnije ažuriranje podataka • zahvaljujući svojoj fleksibilnosti uključivanje novih funkcija koje bi se od programa mogle zahtjevati 2. Da bismo to postigli moramo formirati skupove zapisa koji objedinjuju međusobno povezane informacije iz nekoliko tabela.

aplikaciji vraća podatke iz baze. Zbog toga svaki DBMS pored SQL podržava bar još jedan programski jezik pomoću kojeg se mogu izvršiti kompleksne operacije. kao što su tekst fajlovi. nebi mogla biti izvršena bez direktne ili indirektne upotrebe SQL jezika. OLE DB i JDBC. postoje još neki programski jezici (sredstva) za pristup podacima koji se nazivaju Database API. što može znatno ugroziti performanse aplikacije. 3. prilikom pristupa ODBC bazama podataka sve naredbe za bazu podataka i svi podaci iz nje moraju proći kroz ovaj dodatni sloj. Služi za pristup MS Access bazama podataka. Aplikacije za upravljanje bazama podataka pozivaju funkcije u OBDC-u. Niti jedna operacija na bazama podataka. a to su: ODBC. Relacioni model baza podataka 8 . DAO. ADO – nova tehnologija iz Mikrosofta čiji je cilj da zamijeni DAO kao standardni objektni model za pristup bazama podataka. OLE DB. Acces. Često. DAO također omogućava pristup ODBC izvorima podataka i tu leži i njegov najveći nedostatak.SQL omogućava puni pristup podacima u relacionim bazama podataka (kao što su: Oracle.mail sistemi i dr.0. ADO… ODBC –pomoću njega programeri mogu raditi sa tabelarnim podacima. SQL Server. kao što je OLAP kocke. SQL omogućava i definisanje i modifikaciju izgleda tabela unutar baze podataka. izvršena direktno iz DBMS-a ili preko korisničke aplikacije. i dr. Pošto se oslanja na Access. Dakle. OLE DB – se pojavio kao odgovor problemu pristupanja komleksnije organizacije podataka . To je nova verzija ODBC-a. JDBC. kao što su SQL baze podataka ili sa multidimenzionalnim podacima. e. JDBC – je ekvivalent ODBC tehnologije namjenjen upotrebi prilikom razvoja aplikacija DAO – se javlja kao rješenje u pravljenju objektnog modela za pristup bazi podataka koji sprečava da dođe do eventualnih grešaka pri programiranju ODBC.) tako što korisnik opiše podatke koje želi da vidi. a ODBC putem svojih drajvera za baze podataka. sam SQL nije dovoljan ukoliko je potrebno izvršiti neki upit u tačno određeno vrijeme ili ga ponoviti nekoliko puta. On je sastavni dio Visual Basica.

Zbog toga se unutrašnji nivo često i zove “nivo fizičke baze podataka”.1. i poznata je kao ANSI arhitektura. Hijerarhijska arhitektura omogućuje prirodnu dekompoziciju i efikasni razvoj sistema za upravljanje bazama podataka. 9 . objekata.1. samo što je njihova reprezentacija pogodnija za korisnika od fizičke (na višem je nivou apstrakcije). Sledeći nivo ANSI arhitekture je konceptualni (logički) i predstavlja način na koji se podaci iz fizičke baze podataka predstavljaju korisniku u opštem slučaju. To znači da se na konceptualnom nivou mogu “vidjeti” svi podaci iz fizičke baze podataka. Najviši nivo ANSI arhitekture je spoljašnji nivo koji predstavu o podacima iz baze prilagođava potrebama specifičnih korisnika ili grupa korisnika. Modelom podataka predstavlja se logička struktura svih podataka u bazi i skup operacija koje korisnik može izvršiti nad tim podacima. Reprezentacija koja se nalazi na “srednjem”. Globalna ANSI arhitektura sistema baza podataka može se predstaviti shemom na slici 1. koja u računarskom sistemu jedina zaista postoji. reprezentaciju. pri čemu svaki nivo hijerarhije uključuje specifični način predstavljanja. Ova arhitektura predstavljena je hijerarhijom apstrakcija. odnosa među objektima i operacija nad objektima. konceptualnom nivou ANSI hijerarhije zove se model podataka. Slika 1. On je najbliži fizičkoj reprezentaciji baze podataka.Arhitektura najvećeg broja sistema baza podataka odgovara predlogu ANSI/SPARC studijske grupe Američkog nacionalnog instituta za standarde. Najniži nivo ANSI arhitekture je unutrašnji nivo.

dok se postojanje nekih podataka može od nekih korisnika i sakriti. baza podataka o studentima može da sadrži podatke iz dosijea studenata. datumima polaganja. spoljašnji nivo hijerarhije) nalaze iznad modela u hijerarhiji apstrakcija. Nastanak i razvoj relacionog modela baze podataka 10 . Isti podaci iz fizičke baze podataka (i sa konceptualnog nivoa). ostali. Na primjer. nagradama. sa ličnim podacima i podacima o uspjehu (predmetima. iz razloga zaštite ili udobnosti). Na spoljašnjem nivou.1. lični podaci koji mogu da identifikuju studenta. pa se pogledi (podmodeli. korisnicima statističkih obrada ova baza podataka može se predstaviti kao da sadrži samo podatke o uspjehu (npr. NASTAVNI PLAN. u virtuelnoj tabeli USPJEH PO PREDMETIMA). ocjenama. Na konceptualnom nivou podaci mogu biti predstavljeni tabelama DOSIJE. od kojih se svaki sastoji od apstraktne slike dijela baze podataka. skrivaju se od statističkih aplikacija. Različitim podgrupama korisnika mogu odgovarati još apstraktnije predstave o podacima. koje odgovaraju višim nivoima podmodela. 3. Zato postoji tačno jedan model podataka u sistemu. na ovom nivou mogu se raznim korisnicima predstaviti na razne načine. kaznama) svakog studenta. Primarni cilj modela podataka u kontekstu baza podataka jeste da obezbjedi formalni sistem za predstavljanje podataka i manipulisanje podacima u bazi podataka. NAGRADE I KAZNE i POLAGANJE. i veći broj spoljašnjih pogleda. koji se odnosi na cjelokupnost baze podataka.Pojedini korisnici ili grupe korisnika mogu imati svoja sopstvena specifična gledanja na model podataka (npr.

uposlenika IBM korporacije i trenutno je najraširenija paradigma za razvoj podataka. Relacija je tabela sastavljena od slogova. Unutar jedne tabele može postojati samo jedna vrsta slogova ili entiteta. Kada se da zahtjev za informacijama. koji se zove Natural language (prirodni jezik) i koji dozvoljava upite u ograničenoj formi prirodnog jezika. Relacione tabele pokazuju logičke. Relacioni model odvaja bazu podataka od operativnog sistema kao i od aplikacije. prevodi ga u upit na SQL. U ovom jeziku. Relacioni model je smišljen početkom osamdesetih godina od strane Ted Codda. pitanja na jednostavnom engleskom jeziku se automaski prevode u SQL. U ovom slučaju softverski program.Relaciona baza podataka se sastoji od serije dvodimenzionalnih tabela. a ne fizičke odnose.2. Standardni programski jezik za izražavanje pristupa podacima i manipulaciju sa tabelama u relacionoj bazi podataka se naziva SQL (Structured Query Language). a zanemaruje redosljed podataka odnosno slogova uključenih u relaciju. prenosi SQL zahtjev DBMS-u i daje na displeju podatke korisniku. Termin "relaciona baza podataka" dolazi od činjenice da ona koristi relaciju (odnos) umjesto datoteke. analizira korisnikov upit. 3. Relacioni sistem za upravljane bazama podataka 11 . sistem napravi tabelu koja sadrži te informacije.

F.Za realizaciju koncepta baze podataka pored odgovarajuće hardverske opreme potrebno je obezbediti i programsku podršku (software). Za sprovođenje ove funkcije koristi se jezik za manipulaciju podacima (DML . On poznaje fizičku i logičku strukturu baze na jednoj strani i zahtjeve korisnika programa na drugoj strani.Data Base Management System). Osnovni princip na kojem se zasnivaju pravila glasi: “Svaki sistem koji tvrdi da je relacioni sistem za upravljanje bazom podataka. što mu omogućava da djeluje kao specifičan posrednik (interface). memorijskog kapaciteta i dr. baza podataka izložena je promjenama korisničkih zahtjeva. Osnivač relacione teorije E. izdvojila u odnosu na druge baze podataka (hijerarhijske i mrežne). DBMS u opštem slučaju ima dvije osnovne funkcije. Druga funkcija omogućava kontrolisan pristup do memorisanih podataka i prikazivanje podataka na zahtjev korisnika.Data Definition Language).Data Manipulation Language). Baza podataka i aplikacije koje se na nju oslanjaju podložni su čestim promjenama. veće brzine. još 1985. DBMS ima ulogu da obezbjedi korisniku uvijek istu dostupnost podataka bez obzira na eventualne promjene. godine.). Osim periodičnih promjena izazvanih razvojem opreme (pojava “moćnijih” računara.Relation Data Base Management System) omogućava obavljanje najrazličitijih operacija nad relacijama i kombinovanje relacija da bi korisniku obezbjedio odgovore na sva pitanja koja imaju smisla s obzirom na sadržaj baze podataka. to jest zbirku programa koja predstavlja sistem za upravljanje bazom podataka (DBMS .Codd. Novi uslovi i pravila poslovanja reflektuju se ne samo na promjene parametara korisničkih programa aplikacija. već i na promjene u fizičkoj i logičkoj strukturi baze podataka. Relacioni sistem za upravljanje bazom podataka (RDBMS . Ova funkcija se obavlja pomoću jezika za definisanje podataka i strukturu podataka (DDL . U njoj su podaci prezentovani skupovima vremenski promenljivih relacija. definisao je 12 strogih pravila koja mora zadovoljiti RDBMS da bi s pravom nosio epitet “relacioni”. Prva je da memoriše i održava podatke koji izražavaju svojstva posmatranih objekata (entiteta). Relaciona baza podataka se svojom razvijenom teorijskom osnovom i jednostavnim izražavanjem odnosa između podataka u obliku dvodimenzionalnih tabela. ili se 12 .

Zato se. a na fizičkom nivou organizovati tako da njihovo održavanje bude najlakše. jeste transakcija. kojim izražava i zadovoljava sve zahtjeve vezane za podatke u bazi. Podatke je na nivou korisnika potrebno struktuirati. Sredstvo kojim sistem za upravljanje bazama podataka omogućuje većem broju korisnika istovremeni pristup podacima. a realizuje se posebnim komponentama koje koristi sistem za upravljanje bazama podataka. Skup postupaka kojima se dolazi do dobro struktuiranih podataka u bazi podataka naziva se metodama logičkog projektovanja baze podataka. Ona se dijelom realizuje mehanizmom pogleda. naziva se metodama fizičkog projektovanja. Transakcija je logička jedinica posla i može da se sastoji od jedne ili većeg broja radnji nad bazom podataka. tj. kao i prava izvršenja raznih operacija nad tim objektima. koji u stvari te zahtjeve izvršava. zove se autorizacija. ali i specifičnim podsistemom autorizacije i prava korisnika. 13 . sa korisničke tačke gledišta. a operisanje njima najefikasnije. Poseban značaj u radu sa relacionim bazama podataka ima struktuiranje i organizacija samih podataka. pri čemu obezbeđuje uslov da podaci i odnosi među njima. uz punu bezbjednost i korektnost podataka. Upravljanje transakcijama omogućuje da se svi zahtjevi korisnika korektno izvršavaju.do danas. Osnovna komponenta sistema za upravljanje relacionim bazama podataka koju korisnik vidi jeste relacioni upitni jezik. korektno i efikasno. Skup postupaka kojima se podaci fizički organizuju u bazi. poslije završetka transakcije. upitni jezik često identifikuje sa kompleksnim sistemom za upravljanje bazama podataka." Iako je od vremena definisanja pravila . Funkcija SUBP kojom se regulišu prava pristupa pojedinih korisnika pojedinim objektima (podacima i drugim resursima). još uvijek se na tržištu softvera nije pojavio proizvod koji u potpunosti ispunjava svih 12 uslova. mora biti u mogućnosti da u potpunosti upravlja bazom podataka svojim relacionim sposobnostima.tako reklamira. To je sredstvo kojim korisnik ostvaruje komunikaciju sa relacionom bazom podataka. razvoj ovih sistema bio intenzivan. korektno odražavaju realnost koja se tim podacima modelira. tako da im je pristup i održavanje najefikasnije. metodama fizičke organizacije podataka.

kao i metode za njihovo rješavanje. Mada su sistemi za upravljanje distribuiranim bazama podataka takođe relacioni. problemi koji se u njima moraju rješavati. znatno su složeniji nego u centralizovanim sistemima 14 .Značajan segment relacione tehnologije predstavljaju distribuirane baze podataka.

binarna i skupovna operacija koja iz dvije polazne relacije formira novu koja sadrži sve torke koje se nalaze u bilo kojoj ili eventualno u obije polazne relacije. postoji i podjela na tradicionalne skupovne i posebne relacione operacije. Kriterijum je neki logički izraz koji je izračunljiv nad svakom torkom. Dobijena relacija ima istu strukturu kao i polazna. 15 .3. Uz to.3. a vrijednosti atributa u torkama nastale relacije odgovaraju onima u torkama polazne relacije. dok se preostale 3 mogu izvesti iz njih. unarna i posebna operacija koja iz polazne relacije po zadatom skupu atributa formira novu relaciju kao skup torki nad tim atributima. Projekcija (simbol π ) je elementarna.Relaciona Algebra Relaciona algebra spada u kategoriju formalnih upitnih jezika imperativnog karaktera. a rezultati operacija relacione algebre takođe su relacije. nego samo između onih koje zadovoljavaju uslove: • • šeme relacija imaju isti broj atributa. unarna i posebna operacija koja iz polazne relacije po zadatom kriterijumu izdvaja podskup torki. Zadati skup atributa mora biti podskup skupa atributa polazne relacije. Postoji 8 osnovnih operacija relacione algebre: Restrikcija (simbol σ ) je elementarna. Pored osnovne podjele na elementarne i izvedene. Unija (simbol U ) je elementarna. operacije relacione algebre mogu se prema broju operanada (relacija koje učestvuju u operaciji) klasifikovati na unarne (1 operand) i binarne (2 operanda). ali su samo 5 od njih elementarne. atributi šema relacija redom odgovaraju jedni drugim. čini je skup operatora za rad sa relacijama. ustaljeno je gledište da je čini skup od 8 operacija koje se nazivaju osnovnim. Ova operacija nije moguća između bilo koje dve relacije. Operacije relacione algebre Prema prvobitnoj definiciji relacione algebre.

Jednakost naziva atribita nije neophodna. iz tako dobijenih torki izdvajaju se one koje zadovoljavaju zadati uslov P. binarna i skupovna operacija koja iz dvije polazne relacije formira novu koja sadrži sve torke prve relacije koje se nalaze i u drugoj relaciji. koja postaje sasvim jasna tek poslije pogodnog primjera.Navedeni uslovi zajedno čine tzv. gdje su X i Y disjunktni skupovi atributa. Spajanje (simbol >< ) je izvedena. sa torkama dobijenim u dva koraka: • • svaka torka iz prve relacije redom se spaja sa svim torkama iz druge relacije. sa torkama dobijenim tako {to se svaka torka iz prve relacije redom "spoji" sa svakom torkom druge relacije. Ova operacija je moguća samo između unijski kompatibilnih relacija. binarna i skupovna operacija koja iz dvije polazne relacije formira novu koja sadrži sve torke prve relacije koje se ne nalaze u drugoj relaciji. pri čemu šema nastale relacije sadrži redom sve atribute polaznih relacija. Formalna definicija deljenja. binarna i skupovna operacija koja iz dvije polazne relacije formira novu. a nije uvek ni moguća. Dekartov proizvod (simbol × ) je elementarna. Ova operacija je moguća samo između unijski kompatibilnih relacija. uslov unijske kompatibilnosti koji važi i za još dvije skupovne operacije relacione algebre. a Y i Z unijski kompatibilni skupovi atributa u smislu tipa i značenja. Presjek (simbol ∩ ) je izvedena. binarna i posebna operacija koja predstavlja najsloženiju operaciju relacione algebre. Dijeljenje (simbol / ) je izvedena. binarna i posebna operacija koja iz dvije polazne relacije formira novu. Neka je r relacija šeme R(XY) a s relacija šeme S(Z). Razlika (simbol − ) je elementarna. može se iskazati na sledeći način. 16 . Drugi uslov podrazumjeva da atributi odgovaraju po značenju i tipu.

Za uspješno rješavanje problema u oblasti relacione algebre bitno je da imamo uvid u šeme relacija koje nastaju poslije svakog koraka u izračunavanju složenih izraza. Nazivi šema relacija pisani su velikim. Y. Z i slično najčešćeoznačavaju podskupove od X. Radi jasnoće definicija. ponekad se sa r(Y) naglašava da je u pitanju relacija kao skup torki nad skupom atributa Y.Za objašnjenja operacija relacione algebre neophodne su izvjesne napomene o notaciji. praksa je da uz naziv relacije pišemo i atribute u sastavu njene šeme. Iz tog razloga. Nazivi atributa uvijek se pišu velikim slovima. 17 . Pod kardinalnošću relacije N(r) podrazumjeva se broj torki u relaciji r. a nazivi relacija malim slovima. a sa x torka odgovarajuće relacije. Sa X se najčešće označava slup atributa šeme relacije.

3. meta-podacima (kojima su definisani nazivi tabela.definiciji različitih pravila kao što su pravila integriteta.tzv. kolona i dr. 18 . Naime. ili . Na taj način obezbjeđena je jedinstvena struktura podataka i meta-podataka u sistemu. Predstavljanje podataka Svi podaci u relacionoj bazi predstavljaju se na logičkom nivou na jedinstven način .). nezavisno od toga na šta se podaci odnose.preko vrijednosti u tabelama.osnovnim podacima (koji se odnose na vrijednosti atributa). Pod pojmom “svi podaci” podrazumjevaju se podaci koje je korisnik definisao i unio u bazu bez obzira na to da li je riječ o: .4. oni su u relacionoj bazi dostupni kao neke vrijednosti u određenim tabelama. .

osim u slučaju kad se izričito zahtjeva da vrijednosti u nekoj koloni ne smiju biti nedefinisane (dodatno ograničenje NONULL). nezavisno od tipa podataka.6. tabele bez definisanog primarnog ključa gube smisao relacije definisane u relacionom modelu. obaveznom definicijom primarnog ključa za svaku tabelu. RDBMS obezbeđuje jedinstvenu prezentaciju Null vrijednosti. 19 .3. upotrebom tzv. Mnogi sistemi koji se danas na tržištu softvera reklamiraju kao relacioni pokazuju izvjesne nepravilnosti u odnosu na opisano pravilo. a samim tim otežano je i rukovanje podacima. Sistemski tretman „NULL“ vrijednosti Potpuno relacioni sistem za upravljanje bazom podataka obavezno sistemski podržava predstavljanje informacija koje nedostaju u bazi. a na taj način i jednostavno rukovanje tim vrijednostima. Posljedica navedene osobine je da relacioni model omogućava lako rukovanje podacima na logičkom nivou. Null vrijednosti. vrijednosti primarnog ključa i imena kolone (atributa). oni dozvoljavaju kreiranje tabela bez definisanog primarnog ključa.5. Pristup podacima Svakom osnovnom podatku (konkretnoj vrijednosti kolone u nekom slogu tabele) u relacionoj bazi uvijek se može pristupiti korišćenjem kombinacije imena tabele (relacije). U takvim slučajevima. to jest tabela koje sadrže slogove sa potpuno identičnim vrijednostima u svim kolonama. Navedeni problem mogao bi se izbjeći uvođenjem “discipline” u postupku kreiranja relacija. Pristup podacima u takvim tabelama je otežan. kao identifikatori zapisa u tabeli. s obzirom na to da se do podataka dolazi bez primjene postupka sekvencijalne pretrage ili nekog sličnog. Izuzetak predstavljaju kolone primarnog ključa koje. tj. 3. u svakom slučaju manje efikasnog postupka. Null vrijednost je specifičan indikator različit od praznog niza karaktera ili niza “blankova” i različit od nule ili bilo kog drugog broja. Naime. Vrijednost Null može biti potencijalna vrijednost svake kolone bez obzira na njen tip. ne smiju uzeti Null vrijednost.

“On line” uvidom ne vidi se ni jedna izmjena koja nije konačna. Pod pojmom "katalog" podrazumijeva se direktorij u kojem se nalaze sistemske definicije podataka. na kojoj lokaciji. katalog treba da sadrži podatke o lokaciji svakog djela baze. tako da ovlašćeni korisnici mogu primenjivati jedinstveni relacioni jezik za pretragu ovih meta-podataka. U slučaju distribuiranih baza podataka. u relacionoj bazi sve operacije koje mjenjaju opis podataka započinju i završavaju se određenim naredbama kojima se sistem obavještava da je ažuriranje kompletno. Uvidom u katalog podataka može se saznati koje kolone posjeduju određene tabele. Veoma je važna činjenica da pravo pristupa opisu baze imaju samo za to ovlašćeni (autorizovani) korisnici. novo stanje će biti dostupno za čitanje svim ovlašćenim korisnicima. sve dok se stanje u opisu baze konačno ne promjeni. Naime. Katalog nazivamo “dinamičkim” zbog činjenice da definicije podataka koje se mogu vidjeti odgovaraju upravo tekućem stanju u bazi podataka. “On line” pristup katalogu praktično znači da je trenutnom stanju opisa baze obezbeđen neprekidan pristup. koja su ograničenja definisana. ovlašćenim korisnicima je vidljivo stanje prije promjena. Bez obzira na to koji korisnik. Neprekidan pristup dinamičkom katalogu relacionog modela Relacioni sistem posjeduje katalog (riječnik) podataka koji se na logičkom nivou predstavlja na isti način kao i sami podaci. ili u kom djelu opisa baze napravi neku izmjenu. 20 .3.7. kao i druge informacije koje se odnose na sistemske tabele. Međutim.

moraju odvijati u jedinstvenom okruženju. bez napuštanja takvog sveobuhvatnog okruženja.napuštanje datog okruženja. ROLLBACK). . 21 .3. Sveobuhvatan jezik za rad sa podacima Bez obzira na to koliko jezika i koliko načina korišćenja terminala podržava. COMMIT.8. kad je potrebno sačuvati neke međurezultate ili slogove. izbegavaju se sledeći koraci: . Za administratore sistema postojanje sveobuhvatnog jezika omogućava da se. . U navedenih 6 stavki obuhvaćene su sve funkcije jednog RDBMS-a. To podrazumjeva da se svaki zadatak može kompletno izvršiti. a koji sveobuhvatno može da podrži: 1) definiciju podataka 2) definiciju pogleda 3) rukovanje podacima 4) definiciju pravila integriteta 5) prava u sistemu (autorizaciju) 6) granice transakcije (BEGIN. koje se saglasno suštini ovog pravila. izbjegne niz suvišnih koraka. Ilustracije radi. unutar jednog jezika.ulazak u drugu aplikaciju i definisanje nove tabele u njoj.povratak u staro okruženje i unos podataka u kreiranu tabelu. relacioni sistem mora posjedovati bar jedan jezik čije se naredbe mogu izraziti kao niz karaktera sa dobro definisanom sintaksom. prilikom rukovanja podacima.

Pogled se ponaša kao “dinamički prozor” kroz koji se gledaju relacije baze i putem kojeg je moguće vršiti promjene koje će se automatski reflektovati na relacijama baze. odnosno posebne kopije podataka koji se vide kroz pogled. posmatrajmo čitanje cijele relacije. a rezultat svake operacije je takođe neka relacija. već se samo u katalogu baze čuvaju definicije pogleda. Ilustracije radi. Codd naglašava da je “pogled teorijski moguće ažurirati ako postoji vremenski nezavisan algoritam koji nedvosmisleno određuje niz izmjena u baznim relacijama. Ukoliko za svaki slog koji se čita moramo sistemu da 22 . kao i modifikovanje postojećih slogova. Može se reći da su to izvedene tabele nad kojima je moguće definisati upite kao i nad bilo kojim postojećim tabelama u bazi. Ažuriranje pogleda Relacioni sistem poseduje efikasan algoritam za ažuriranje svih pogleda koji se teorijski mogu ažurirati. Rezultat ovog algoritma smješta se u katalog (riječnik) baze podataka. Sve operacije relacione algebre rukuju relacijama kao operandima. U tom smislu u bazi podataka se uvijek rukuje sa relacijama u cjelosti. već i za operacije dodavanja. Ako izdvojimo jedan konkretan slog iz relacije možemo ga posmatrati kao relaciju sa jednim slogom. brisanje i modifikovanje na visokom nivou Ne samo za izdavanje podataka. Pogledi predstavljaju virtuelne relacije koje fizički ne postoje ali se u svakom drugom smislu ponašaju kao relacije. takođe predstavlja relaciju nad samo jednim atributom sa samo jednim slogom (tabela sa jednom kolonom i jednim redom). ne čuvaju se u sistemu." 3. Glavni objekat u relacionoj bazi podataka je relacija.9. Rezultujući skupovi slogova. sistem formira rezultujući skup slogova na osnovu definicije pogleda i podataka u tabelama baze.3. Konkretan podatak (osnovna vrijednost) izdvojen iz baze. brisanja i modifikovanja podataka postoji mogućnost da se rukuje baznim i izvedenim relacijama u cijelosti kao operandima.10. Dodavanje. Pod ažuriranjem pogleda podrazumjevaju se operacije brisanja i dodavanja slogova. Ova činjenica pozitivno utiče na optimizaciju postupka sprovođenja operacija u sistemu. Svaki put kada korisnik čita podatke kroz pogled. čiji je konačni efekat upravo zahtjevana izmjena nad pogledom.

Navedeno pravilo omogućava da se uoče dvije osnovne grupe korisnika u sistemu: projektanti i programeri. Uštede se ostvaruju ne samo u vremenu već i u troškovima komunikacija. modifikovanja i dodavanja slogova. Upotrebom ovakvih upita na visokom nivou izbjegava se prenos pojedinačnih zahtjeva. sistem mora pojedinačno da optimizuje i izvršava svaku od njih. 23 .zadamo posebnu komandu. Kreiranje i brisanje indeksa nad nekom tabelom iz baze. Neophodno je da u sistemu postoji oštra granica između logičkog modela podataka i fizičkog razmještaja podataka na mediju. između ostalog. Osnovna komponenta koja u aktuelnim relacionim sistemima obezbeđuje fizičku nezavisnost je tzv. optimizator SQL naredbi. 3. Aplikacije i programi rukuju podacima isključivo na semantičkom i logičkom nivou.11. Opisano pravilo ima značajnu ulogu u obradi transakcije nad distribuiranom bazom podataka. za svaki slog. ne smije imati uticaja na logičku strukturu programa i naredbi. Činjenica da se relacijama rukuje kao operandima. bave i održavanjem interne organizacije podataka u sistemu. reflektuje se na efikasniju obradu podataka. administratori baze podataka. Kod nerelacionih sistema za upravljanje bazom podataka sami programi bi morali pretrpjeti izmjene u zavisnosti od postojanja indeksa nad određenim tabelama. odziv sistema). dok se administratori baze. Sama fizička organizacija podataka predstavlja internu stvar sistema i ima uticaja jedino na performanse (brzinu pristupa podacima. U slučaju čitanja cijele relacije jednom operacijom. Fizička nezavisnost Relacioni sistemi u obavezi su da zadovolje pravilo fizičke nezavisnosti čija je suština u sljedećem: aplikacioni program i aktivnosti na terminalima ostaju neizmjenjeni kada se promjeni fizička organizacija baze ili fizički metod pristupa podacima. sistem određuje najbolji način pristupa slogovima u globalu za cijelu relaciju. Iste prednosti odnose se i na operacije brisanja. Uloga projektanata i programera je da se bave logičkim dizajniranjem i programiranjem. prema udaljenom sistemu.

Integritetska nezavisnost Sva pravila integriteta definišu se u okviru definicije baze podataka i čuvaju se u katalogu podataka. a ne u aplikacionim programima. Prednost se sastoji u tome što greške u početnom dizajnu modela podataka nemaju teške posljedice i dozvoljavaju naknadne korekcije. čak i u poodmakloj fazi implementacije aplikacije.Optimizator za svaku SQL naredbu određuje optimalan plan izvršenja u smislu vremena odziva i ukupnog utroška resursa sistema. nad novom tabelom uslov je za 3. Ukoliko RDBMS ispunjava uslov ažuriranja pogleda onda će bez problema moći da zadovolji i pravilo logičke nezavisnosti. 3.integritet domena. a da ih kasnije. Logička. za posljedicu imaju jednu veoma važnu prednost koju relacioni sistemi pokazuju u odnosu na nerelacione. Sam proces optimizacije odvija se u trenutku izvršenja naredbe. . Projektanti u tom smislu mogu da bez prevelikog opterećnja kreiraju inicijalne modele podataka. Kada spajamo dvije tabele mogućnost ažuriranja pogleda očuvanje logičke nezavisnosti. Plan izvršavanja naredbe za koji se predviđaju najbolje performanse u obradi bira se na osnovu heurističkih pravila ili statističkih podataka o bazi. aplikacioni programi i aktivnosti na terminalima ostaju logički neoštećeni.12.integritet entiteta. 24 . ponovo dorađuju i prilagođavaju novim zahtjevima. Logička nezavisnost Kada se na tabelama baze izvrše izmjene koje ne izazivaju gubljenje podataka ili logička oštećenja. Integritet podataka djeli se na 4 kategorije: .13. . a sastoji se od analize dostupnih indeksa i načina pristupa podacima. kao i fizička nezavisnost.

Okidač je pokretač procedure koja se automatski poziva kad god dođe do dodavanja. Integritet entiteta podrazumijeva da svaka vrijednost primarnog ključa mora biti jedinstvena na nivou cijele relacije. i . Tako se. kod postojećih relacionih sistema. Okidač je objekat baze koji se čuva u katalogu podataka i svaki je pojedinačno pridružen jednoj tabeli.referencijalni integritet. U slučaju promjene pravila integriteta dolazi do izmjene jednog ili više iskaza ograničenja u katalogu podataka. je korišćenje tzv.. a ima ulogu da onemogući brisanje računa čije stanje nije ravno nuli. za bazu podataka mogu postojati dodatna ograničenja. Kada se pravila integriteta jednom definišu ona sprečavaju upis podataka koji ne zadovoljavaju te definicije (nekonzistentni podaci). ali logička struktura programa i aktivnosti na terminalima ostaju neizmenjeni. dozvoljenog formata za unos podataka. okidača (Triggers).korisnički definisan integritet. Održavanje integriteta domena postiže se navođenjem dozvoljenog tipa podataka. na primjer. Integritet domena određuje skup dozvoljenih vrijednosti kolone. Osim toga. ili zadavanjem skupa mogućih vrijednosti. RDBMS treba da obezbjedi definisanje svih navedenih kategorija integriteta pod jezikom relacionih podataka. pri čemu se navodi koje od operacija dodavanja. Jedino moguće sredstvo za čuvanje integriteta baze podataka. ažuriranja ili brisanja izazivaju njegovo izvršenje. ažuriranja ili brisanja podataka u tabeli. Korisnički integritet omogućava definisanje specifičnih poslovnih pravila. mora biti ispunjen uslov da ni jedna stavka u koloni primarnog ključa ne smije imati NULL vrednost. 25 . koja definišu važeće podatke u bazi. formirana na osnovu određenih pravila poslovanja. za bazu podataka tekućih računa građana u nekoj banci može definisati okidač koji se izvršava prilikom brisanja slogova iz tabele. Referencijalni integritet odražava definisane odnose (relacije) među tabelama kada se u njih dodaju ili se iz njih brišu zapisi. Naime.

Prvi slučaj podrazumijeva da je sistem prvobitno upravljao samo nedistribuiranim podacima. Ova osobina daje veliku moć naredbama jezika podataka na visokom nivou.kada se podaci predistribuiraju. 26 . centralizovani sistem.F. razlikujemo dva tipa arhitekture sistema baze podataka: 1. koje mogu unutar jedne komande kombinovati podatke sa različitih mjesta. ali je došlo do promjene njihovog rasporeda. Relacioni sistem koji je distribuciono nezavistan omogućava da jedna transakcija rukuje podacima sa više udaljenih sistema. i 2. gdje postoji samo jedan primjerak vrijednosti svakog logičkog objekta baze.kada se prvi put uvede distribucija podataka. Distribuciona nezavisnost U zavisnosti od toga koliko primjeraka vrijednosti logičkih objekata iz baze postoji i na koliko lokacija se oni nalaze. distribuirani sistem.3.14. na različitim lokacijama. i . E. U centralizovanom sistemu baza podataka je skup logičkih objekata i njihovih vrijednosti. a da korisnik pri tome ima utisak da se sve odvija u okviru lokalnog sistema.Codd je definisao distribucionu nezavisnost RDBMS-a kao njegovu sposobnost da aplikacioni programi i aktivnosti na terminalima ostanu logički neoštećeni: . U distribuiranom sistemu vrijednost nekog logičkog objekta može imati više primjeraka. U drugom slučaju sistem je već upravljao distribuiranim podacima. memorisanih u više lokalnih baza. a onda je došlo do njihove distribucije.

Kursor u suštini predstavlja objekat definisan SELECT naredbom. 27 . sistem za upravljanje bazom podataka može da sadrži i neke od jezika niskog nivoa (pojedinačni pristup slogovima) i da podržava njihov rad. pravila integriteta i ograničenja. U tom slučaju proces obrade se ne oslanja na zapamćene definicije podataka. i . Rad sa jezicima niskog nivoa Iako u obavljanju svojih funkcija koristi jezike visokog nivoa (princip grupnog pristupa slogovima). uglavnom nisu primjenljive u jezicima kao što su C i PASCAL. Visoke mogućnosti SQL-a u pogledu rukovanja relacijama kao operandima (u cijelosti). nad kojim se mogu realizovati tri operacije: .3. iz jednostavnog razloga što u okruženju ovih jezika relacija nema odgovarajuću prezentaciju. . Uslov koji RDBMS treba da zadovolji je da se u radu sa jezicima niskog nivoa ne smiju narušiti ili zaobići pravila integriteta i ograničenja izražena relacionim jezikom visokog nivoa.dohvatanje sljedećeg sloga iz kursora (FETCH). Kod nerelacionih sistema čest je slučaj da jezici niskog nivoa zaobilaze definicije iz kataloga podataka. Zatvaranjem kursora oslobađa se memorijski prostor aktivnog skupa slogova.15. čitanjem tabela pomoću kursora.otvaranje kursora (OPEN). Otvaranjem kursora formira se aktivni skup slogova (neka vrsta interne kopije slogova koji se smještaju u memoriju).zatvaranje kursora (CLOSE). Nad tim skupom slogova izvršavaju se operacije dohvatanja jednog po jednog sloga sve dok se ne dođe do posljednjeg iz izdvojene grupe. Opisani postupak pojedinačnog pristupa slogovima. obezbeđuje konzistentnost čitanja baze podataka. U cilju prevazilaženja ovog problema morao se obezbjediti pristup i rukovanje podacima na nivou slogova primjenom koncepta kursora (cursor).

integritetske i distribucione nezavisnosti). logičke. koji se zasniva na matematičkoj teoriji skupova. .F. indeksiranih po različitim pojmovima (poljima) i sa više ključeva. . definisao je 12 strogih pravila koje mora poštovati jedan RDBMS. ZAKLJUČAK Relacioni model podataka. Do podatka se u tabeli dolazi direktno pozivanjem odgovarajućeg indeksnog ključa pri čemu se pokazivač automatski pozicionira na slog sa traženim podatkom. unutar jednog jezika. predložen je još 1969. u cilju zaštite epiteta “relacioni”. godine od strane E.4. Već pri njihovom kreiranju mogu se uspostaviti logičke veze između pojedinih tabela preko zajedničkih polja tako da se na lak i jednostavan način dolazi do svih potrebnih podataka.administratorima baze omogućeno je da u svakom trenutku znaju koje se vrste podataka nalaze u bazi i kako se njima može pristupiti. tada istraživača u IBM-ovim laboratorijama. 28 . Osnovne prednosti potpuno relacionog sistema za upravljanje bazom podataka su: . Relacione baze podataka se projektuju u vidu tabela.opšta nezavisnost aplikacionih programa od podataka olakšava razvoj i održavanje informacionih sistema (posljedica fizičke. a sadrži samo polja koja su potrebna korisniku.0.produktivnost programera je poboljšana s obzirom na činjenicu da je podržano iteraktivno testiranje programa i naredbi u jedinstvenom okruženju. koja je privremenog karaktera. Ovaj model je svojim osobinama prevazišao tada aktuelne hijerarhijske i mrežne modele podataka. koji se sve češće iz komercijalnih razloga pripisivao i nekim nerelacionim sistemima za upravljanje bazama podataka. On je takođe i argumentovao postojanje niza pozitivnih efekata koje u praksi postiže sistem ukoliko zadovoljava definisane kriterijume.Codd-a. bilo da se radi o podacima samo iz jedne tabele ili se podaci dobijaju spajanjem više tabela u jednu novu. Osnivač relacionog modela.

promjene pravila poslovanja) ..obrada svih jezika za manipulaciju podacima u relacionom sistemu oslanja se na zapamćene definicije podataka. Poznavanje relacionog modela osnovni je preduslov za uspješno dizajniranje baze podataka koja će podržavati rad prilagodljive i lako dogradive aplikacije. . uključujući pravila integriteta i ograničenja. 29 . brisanja i modifikovanja na visokom nivou.troškovi komunikacija u distribuiranoj bazi podataka su smanjeni zahvaljujući osobini dodavanja. prilikom prilagođavanja programa novim zahtjevima ( promjene performansi sistema.smanjeni su troškovi izmjena opisa podataka u bazi. organizacione promjene.

wikipedia. 5.elitesecurity. 2. 4.Gordana Pavlović-Lažetić Relacione baze podataka – Vladimir Blagojević www. 3.org Priručnik za predmet „Strukture i baze podataka“ Jasmin Heljić Baze podataka – skripta – Robert Manager http://www.Literatura 1.org/ 30 . 6. Uvod u relacione baze podataka .