SlideShare a Scribd company logo
1 of 13
Download to read offline
DOMAĆI RAD
               (datum 17.02.2011.)

              Tema: Baza podataka




Predmet: UPRAVLJANJE ISTRAŽIVANJEM I RAZVOJEM
                Prof. dr Vukašin Ilić




                                        Tanja Damnjanović
                                     Broj indeksa: 044/07/13
UVOD

        Najranija poznata upotreba termina baza podataka potiče iz 1963. godine, a kao
jedinstvena reč postala je u ranim ‘70 – im godinama, u Evropi. Prvi sistemi upravljanja baze
podataka razvili su se ’60 – ih godina, kao što je pomenuto. Začetnik u tom polju je bio Charles
Bachman. Bachmanovi rani radovi pokazuju da je njegov cilj bio stvaranje delotvorne upotrebe
novih uređaja, jer se do tada obrada podataka temeljila na bušenim karticama i magnetskoj traci,
pa je tako serijska obrada bila dominanta aktivnost. Dva ključna modela su se pojavila u to
vreme. CODASYL je razvio mrežni model baziran na Bachmanovim idejama, te se hijerahjiski
model koristio u sistemu koji je razvio North American Rockwell, a kojeg je kasnije prihvatio
IBM.

       Pre svega, treba pomenuti da je bila prvo ručna obrada podataka. Zatim, pojavom PS
dolazi se do klasične obrade podataka gde se svaki poslovni informacioni sistem sastoji iz
funkcionalnih jedinica, a svaka funkcionalna jedinica ima posebnu obradu podataka. Daljim
razvitkom tehnologije dolazi se do baza podataka koja predstavlja najsloženiji oblik strukture
baze podataka i koriste je svi procesi.

        Prve primene mašina za računanje su ustavri bile implementacije jednostavnih baza
podataka. Među mašinama za računanje treba istaći kalkulator Blaise Pascala. Godine 1884.
Herman Holerith je prijavio patent – sistem za automatsku obradu podataka o popisu
stanovništva u SAD – u. Podaci na bušenim karticama su ručno ubacivani u uređaj za očitavanje,
a obrada se odnosila na prebrojavanje. Programiranje se odnosilo na izbor vrste prebrojavanja, a
radilo ručnim prespajanjem kontakata. Dotadašnja obrada podataka popisa trajala je 10 – ak
godina, a sa Holerithovim izumom vreme obrade bilo je smanjeno na šest nedelja. Tako je popis
stanovništva iz 1890. godine bio prva automatizovana baza podataka, koja se u suštini sastojala
od hiljada kutija punih bušenih kartica. Od Holerithove kompanije nastao je današnji IBM.

        U godinama nakon Drugog svetskog rata, u kompanijama i vladinim institucijama počeli
su se pojavljivati primitivni elektronski računari. Oni su se često koristili upravo za jednostavne
linearne baze podataka, najčešće za računovodstvo. Ipak, vrlo brzo, bogati kupci su počeli da
zahtevaju više od njihovih ekstremno skupih mašina. Sve je to vodilo do ranih relacionih baza
podataka. Zanimljivo, ove rane aplikacije su nastavile da koriste Holerithove bušene kartice,
neznatno modifikovane u odnosu na orifinalni dizajn. Nefleksibilnost polja iste dužine, baze
podataka pokretane 80 kolonskim bušenim karticama, učinile su rane računare metom napada i
šala i potpunom misterijom za običnog čoveka.

        Većina baza podataka se odnosila na specifične programe napisane za specifične baze
podataka. Za razliku od modernih sistema koji mogu biti primenjeni na potpuno različite baze
podataka, ovi sistemi su bili usko povezani za bazu podataka da bi osigurali brzinu na uštrb
fleksibilnosti.




                                                2
1. KLASIČNA OBRADA PODATAKA

      Klasična obrada podataka je obrada gde se kod svake funkcionalne jedinice vršila
posebna obrada, što je dosta usporavalo proces rada informacionih sistema.

           Osnovni nedostaci ovakve obrade podataka su:
              • Redudansa podataka, odnosno višestruko pamćenje istih podataka je
                 neminovno. Ako uzmemo za primer neko preduzeće, gde se isti podaci o
                 proizvodima pamte i nekoliko desetina puta , ili neki komunalni informacioni
                 sistem, gde se isti podaci o građanima pamte i stotinu puta, dolazi do velikih
                 problema pri njihovom ažuriranju, kao i do povećanja troškova obrade podataka.
              • Zavisnost programa od organizacije podataka. Programi su zavisni i od
                 logičke i od fizičke strukture podataka. Fizička struktura je način memorisanja
                 podataka na spoljnim memorijama (hard disk, CD, flash... ), a logička struktura je
                 struktura podataka koja je predstavljena programeru. U klasičnim datotekama
                 razlika fizičke i logičke strukture podataka je mala. Odnosno, programeru se
                 praktično direktno prikazuje način na koji su podaci memorisani na spoljnoj
                 memoriji. Logička zavisnost se ogleda u tome što program zavisi, na primer, od
                 naziva i redosleda polja u zapisu, a fizička se ogleda u tome što program zavisi od
                 distribucije datoteka po čvorovima računarske mreže, izabranih metoda pristupa,
                 načina sortiranja i slično. U suštini, logička i fizička organizacija podataka su
                 prilagođene konkretnom programu.
              • Niska produktivnost u razvoju informacionog sistema (IS). Jedan od uzroka
                 niske produktivnosti u razvoju IS je struktuiranje podataka u nekom IS. Čak i
                 kada postoje svi podaci koji se u nekoj novoj aplikaciji zahtevaju, a nalaze se u
                 različitim datotekama, sa različitim fizičkim organizacijama, zadovoljenje nekog
                 jednostavnog informacionog zahteva .
              • Sistem datoteka je nezadovoljavajuće pouzdan, ne garantuje očuvanje
                 tačnosti i konzistentnosti podataka pri mogućim hardverskim i softverskim
                 otkazima.
              • Sistem datoteka ne obezbeđuje zadovoljavajuće očuvanje tačnosti i
                 konzistentnosti podataka pri višestrukom paralelnom korišćenju podataka.1

       Ovo su osnovni problemi klasične poslovne obrade podataka koji su zahtevali bitne
tehnološke promene. Od šezdesetih godina do danas, oblast sistema za upravljanje bazom
podataka se veoma brzo razvija, tako da je danas dostigla potpunu zrelost. Sistem za upravljanje
bazom podataka (Slika 1.2)2 je jedan složeni softverski sistem koji treba da omogući:
          • Skladištenje podataka sa minimumom redudanse;
          • Pouzdanost podataka i pri mogućim hardverskim i softverskim otkazima;
          • Pouzdano paralelno korišćenje zajedničkih podataka od strane više ovlašćenih
              korsnika;
          • Logičku i fizičku nezavisnost programa od podataka. Iako se, po pravilu, fizički
              podaci pamte samo jednom, svaki korisnik dobija svoju sopstvenu logičku sliku
1
    Lazarević B., Marjanović Z., Ančić N., Babarogić S., Baze podataka, FON, Beograd 2003, str. 2-3.
2
    Lazarević B., Marjanović Z., Ančić N., Babarogić S., Baze podataka, FON, Beograd 2003, str. 4.

                                                          3
podataka, strukturu i/ili kolekciju operacija nad njima, kakva njemu najviše
              odgovara.
          •   Jednostavno komuniciranje sa bazom podataka preko jezika bliskih korisniku, to
              je tzv. upitni jezik, da bi se neprofesionalni korisnici lako uključili i uveli u razvoj
              informacionog sistema, a profesionalnim programerima značajno povećala
              produktivnost.




         Slika 1. Savremena obrada podataka – sistem za upravljanje bazom podataka

        Podaci su sada, umesto razbacani po nezavisnim datotekama, organizovani u jednostavnu
bazu podataka. Podaci sada postaju resurs u nekom sistemu i njima se upravlja na jednostavan
način isto kako se upravlja i sa drugim resursima poslovnih sistema.




                                                 4
2. BAZA PODATAKA

       Baza podataka se može najopštije definisati kao zbirka podataka koja postoji relativno
dugo i koju koristi i održava više korisnika, odnosno programa (aplikacija).

        Baza podataka služi za brzo pretraživanje i pristup, zajedno sa sistemom za
administraciju, organizovanje i memorisanje tih podataka iz ugla koisnika. Korisnici pristupaju
bazi podataka prvenstveno preko upitnika. Korišćenjem ključnih reči i svsrstavanjem komandi,
korisnici mogu brzo da pronađu, preurede, grupišu i odaberu oblast u mnogim zapisima koje
treba vratiti, ili pomoću kojih treba sastaviti izveštaje o naročitoj skupini podataka u skladu sa
pravilima dotičnog sistema vođenja baze podataka.

        Jednostavno rečeno, baza podataka je softwerska konstrukcija namenjena za analizu i
pretraživanje grupe srodnih i povezanih podataka, kao što su podaci o kupcima, pacijentima,
telefonskim brojevima i sl.
        Spomenuli smo da baze podataka predstavljaju veću zbirku rada sa podacima u odnosu
na klasične programske jezike. Ta veća zbirka rada ogleda se u tome što tehnologija baza
podataka nastoji, i u velikoj meri uspeva, da ispuni sledeće ciljeve.

        Fizička nezavisnost podataka. Razdvaja se logička definicija baze od njene stvarne
fizičke građe. Znači, ako se fizička građa promeni (na primer, podaci se prepišu u druge datoteke
na drugim diskovima), to neće zahtevati promene u postojaćim aplikacijama.

       Logička nezavisnost podataka. Razdvaja se globalna logička definicija cele baze
podataka od lokalne logičke definicije za jednu aplikaciju. Znači, ako se logička definicija
promeni (na primer, uvede se novi zapis ili veza), to neće zahtevati promene u postojaćim
aplikacijama. Lokalna logička definicija obično se svodi na izdvajanje samo nekih elemenata iz
globalne definicije, uz neke jednostavne transformacije tih elemenata.

        Fleksibilnost pristupa podacima. U starijim mrežnim i hijerarhijskim bazama, put
pristupanja podacima bio je unapred definisan, dakle korisnik je mogao pretraživati podatke
jedino onim redosledom koji je bio predviđen u vreme projektovanja i implementiranja baze.
Danas se zahteva da korisnik može slobodno prebirati po podacima, te prema svom nahođenju
uspostavlja vezu među podacima. Ovom zahtevu zaista zadovoljavaju jedino relacijske baze.

        Istovremeni pristup do podataka. Baza mora omogućiti da veći broj korisnika
istovremeno koristi iste podatke. Pritom, ti korisnici ne smeju ometati jedan drugoga, svaki od
njih treba da radi sam sa bazom podataka.

         Čuvanje integriteta. Nastoji se automatski sačuvati korektnost i konzistencija podataka i
to u situaciji kad postoje greške u aplikacijama, te konfliktne istovremene aktivnosti korisnika.

       Mogućnost oporavka nakon kvara. Mora postojati pouzdana zaštita baze u slučaju
kvara hardvera ili grešaka u radu sistemskog softvera.




                                                5
Zaštita od neovlašćenog korišćenja. Mora postojati mogućnost da se korisnicima
ograniče prava korišćenja baze, dakle da se svakom korisniku regulišu ovlašćenja šta on sme da
radi sa podacima, a šta ne sme da radi.

       Zadvoljavajuća brzina pristupa. Operacije s podacima moraju da se odvijaju dovoljno
brzo u skladu s potrebama određene aplikacije. Na brzinu pristupa može se uticati odabirom
pogodnih fizičkih struktura podataka, te izborom pogodnih algoritama za pretraživanje.

         Mogućnost podešavanja i kontrole. Velika baza zahteva stalnu brigu: praćenje
perfomansi, menjanje parametara u fizičkoj građi, rutinsko pohranjivanje rezervnih kopija
podataka, regulisanje ovlašćenja korisnika. Takođe, svrha baze se vremenom menja, pa
povremeno treba podesiti i logičku strukturu. Ovakvi poslovi moraju da se obavljaju
centralizovano. Odgovorna osoba se zove administrator baze podataka. Administratoru trebaju
stajati na raspolaganju razni alati i pomagala.

        Danas baze podataka sadrže podatke različitih medijskih vrsta, pa se zato govori o
multimedijskim podacima, a baze koje sadže takve podatke nazivaju se multimedijskim bazama
podataka. Pored tekstualnih podataka, tu su i podaci koji opisuju slike (nepokretne ili pokretne,
kada govorimo o videozapisu) ili zvuk. Zavisno od vrste i namene podataka u bazi podataka, kao
i načinima korišćenja podataka, razlikujemo baze:

           1. formativnih podataka,
           2. neformativnih podataka i
           3. baze znanja.

        Formativna baza podataka se najčešće koristi i to kroz relacijsku tabelu koju ćemo
kasnije objasniti. Današnje baze podataka su najčešće relacijske i široka je primena ovakvih baza
podataka.

        Neformativna baza podataka sadrži tekstualne ili različite multimedijske podatke.
Ponekad se govori i o bazi dokumenata koja sadrži: stručne ili naučne članke, novinske tekstove,
bibliografske podatke, ili druge tekstualne podatke, zatim slike, videozapise, zvukovne podatke i
sl.,a njih nije prikladno prikazivati u tabličnom obliku. U svetu postoji niz ovakvih baza
podataka i gotovo su redovno dostupne na Internetu, s tim što se neke od njih naplaćuju, jer je i
informacija danas roba, kao i svaka druga, čiju cenu određuje potražnja. Pronalaženje
dokumenata iz baze podataka obavlja se navođenjem ključnih reči vezanih za naslov, autore, ili
za sadržaj traženih dokumenata. Na Internetu postoje specijalizovani pretraživači kao što su,
jedni od najboljih, Google i Yahoo, kao i drugi. Dokumenti su pri tome razasuti na raznim
računarima širom sveta, ali korisnik dolazi do istih na isti način, kao da se oni nalaze u jednoj
bazi podataka. Dakle, Internet predstavlja jednu nehomogenu bazu dokumenata koju je na ovaj
način moguće pretraživati.

       Baze znanja sadrže znanja prikazana u različitim oblicima. Tako prikazano znanje može
se upotrebiti korišćenjem različitih mehanizama zaključivanja. Na ovaj način se na primer u
ekspertnim sistemima i drugim sistemima koji se temelje na znanju, mogu rešavati različiti



                                               6
problemi, kao što su: dijagnoza uzroka grešaka u složenim sistemima, finansijska predviđanja,
konfiguracija računarskih sistema, planiranje projekata, itd.

       Brigu o podacima, vezama među podacima, ispravnosti podataka i svemu ostalom na
sebe preuzima sistem za upravljanje podacima u bazi podataka DBMS – Database Management
Systems. To je jedan aspekt sa kojeg se pristupa izučavanje baza podataka, a drugi je modeli
podataka, koji su međusobno povezani.

               •    sistemi za upravljanje bazom podataka DBMS – specifična tehnologija obrade
                    podataka, odnosno softverski sistem koji obezbeđuje osnovne funkcije obrade
                    velike količine podataka: jednostavno pretraživanje i održavanje podataka,
                    pouzdanost i sigurnost, paralelno korišćenje istog skupa podataka.
               •    modeli podataka – specifične teorije pomoću kojih se specifikuje i projektuje
                    neka konkretna baza podataka ili informacioni sistem, uopšte.

        I jedan i drugi aspekt imaju izuzetno veliki značaj za razvoj informacionih tehnologija.
Istorijski, sistemi za upravljanje bazom podataka predstavljali su revoluciju u tehnologiji obrade
podataka, a modeli podataka revoluciju u metodološkim pristupima razvoju informacionih
sistem.

       Ako govorimo o organizaciji podataka, takodje je od velikog značaja kada želimo da
radimo sa bazom podataka. Jedan od ključnih aspekata, dobrog kreiranja baze podataka jeste
kako će podaci biti organizovani u bazi podataka. Da bi postigli dobro kreiranu bazu podataka,
podatke bi trebalo organizovati tako da su lako dostupni i da omogućavaju lako održavanje baze
podataka.

                                             2.1. Modeli baze podataka

        Tehnologija baza podataka je znatno izmenila i unapredila metodologiju razvoja
informacionih sistema. Informacioni sistem treba da omogući da se preko njega sagleda stanje i
ponašanje realnog sistema i da se na osnovu toga donesu odluke koje će sistem voditi ka
ostvarivanju postavljenih ciljeva. Zbog toga informacioni sistem treba da bude model realnog
sistema u kome deluje, a razvoj informacionog sistema se u velikoj meri svodi na nalaženje
odgovarajućeg modela realnog sistema.3

        Sistem se može definisati kao skup objekata (entiteta) i njihovih međusobnih veza.
Objekti u sistemu su sve što neko modeluje i proglasi za objekat, a mogu biti fizički, koncepti,
događaji i drugo. Objekti se u modelu nekog sistema opisuju preko svojih svojstava (atributa).
Na slici 1.4 je prikazana ilustracija ove defenicije i na njoj se vidi da su objekti povezani kao
elementi u nekom organizacionom sistemu. Skup objekata koji predstavlja posmatrani sistem
opisuje se preko ulaza u sistem, a odgovarajuće dejstvo sistema na okolinu, preko njegovih
izlaza.




3
    Lazarević B., Marjanović Z., Ančić N., Babarogić S., Baze podataka, FON, Beograd 2003, str. 11.

                                                          7
Slika 2. Sistem

Sistem ima i svoje stanje koje se menja pod dejstvom ulaza, a ova promena se reflektuje na
izlaz. Stanje sistema se definiše kao skup informacija o prošlosti i sadašnjosti sistema koji je
potreban da bi se, pod dejstvom budućih poznatih ulaza, mogli odrediti budući izlazi. Stanje
sistema opisuje fundamentalne karakteristike sistema, u jednom trenutku vremena ono
predstavlja skup objekata sistema, skup njihovih međusobnih veza i skup vrednosti njihovih
atributa u tom trenutku vremena.

       Svaki SUBP zasnovan je na nekom modelu podataka, mada postoje modeli, kao što je
Model objekti – veze, na primer, koji isključivo služe za projektovanje baza podataka. U ovom
radu cemo se bazirati najviše na relacioni model, ali postoje i:

   1.   Model objekti – veze
   2.   Relacioni model
   3.   Objektni model
   4.   Objektno – relacioni model
   5.   Aktivne baze podataka
   6.   XML kao model podataka

        Centralizovana baza podataka poseduje sve međusobno povezane datoteke na jednoj
fizičkoj lokaciji. Centralizovane baze podataka na velikim, mainframe računarima predstavljaju
dominantan oblik baza podataka, u prvom redu zbog enormnih troškova drugih alternativa.
Datoteke postižu veći stepen međusobne konzistentnosti ukoliko su sve smeštene na jednoj
lokaciji, pošto se lakše može upravljati promenama koje nastaju na nekima od njih. Datotekama
se može pristupiti samo preko centralizovanog host računara, koji se lako može zaštiti od
neautorizovanog pristupa. Takođe, ukoliko dođe do nekakvih neželjenih oštećenja datoteka,
njihovo obnavljanje je lakše izvršiti sa centralne lokacije. Kao i svi centralizovani sistemi,
centralizovana baza podataka trpi ogromne posledice ukoliko dođe do oštećenja dela njenih
podataka. Ukoliko se dogodi neka greška pri obradi podataka na računaru na kome se nalazi
centralizovana baza podataka, svi korisnici trpe posledice. Pri tome, brzina pristupa podacima je
često veliki problem kada su korisnici raspoređeni na prostorno velikim udaljenostima.

        Distribuirana baza podataka smešta kompletne kopije baze podataka, ili neke njene
delove, na više lokacija, koje su obično prostorno blizu korisnika (videti sliku 3). Postoje dva
tipa distribuiranih baza podataka: replicirane i deljive.


                                               8
Replicirane baze podataka sadrže kompletne kopije cele baze podataka na više lokacija,
u prvom redu da bi se izbegle katastrofalne posledice od mogućih oštećenja podataka koje su
karakteristične za centralizovane baze podataka, kao i da bi se povećala brzina pristupa
podacima. Postoji veliki problem u održavanju konzistentnosti između podataka koji se nalaze na
repliciranim bazama podataka, prilikom dodavanja novih podataka, modifikovanja i brisanja
podataka.

        Deljive baze podataka su izdeljene, tako da svaka lokacija sadrži deo podataka iz cele
baze podataka (obično deo podataka koji je potreban određenom korisniku). Ovakav tip baza
podataka obezbeđuje brz pristup podacima, bez potrebe za repliciranjem promena na više
lokacija.

                                        2.1.1. Relacioni model

       Relacioni model je teorijski zasnovao E.F.Codd krajem ’70-ih godina. Prve realizacije na
računaru bile su suviše spore i neefikasne. Razvojem računara efikasnost relacionih baza se
poboljšava, te u današnje vreme većina DBMS – ova koristi relacioni model.

        Termin relaciona baza podataka dolazi od činjenice da ona koristi relaciju (odnos)
umesto datoteke. Relacija je tabela sastavljena od slogova. Unutar jedne tabele može postojati
samo jedna vrsta slogova ili entita. Relacione tabele pokazuju logičke, a ne fizičke odnose, a
zanemaruje redosled podataka, odnosno slogova uključenih u relaciju. Relacioni model odvaja
bazu podataka od operativnog sistema kao i od aplikacije. Kada se da zahtev za informacije,
sistem napravi tabelu koja sadrži te informacije. Standardni programski jezik za izražavanje
pristupa podacima i manipulaciju sa tabelama u relacionoj bazi podataka se naziva SQL
(Structured Query Language). U ovom jeziku, pitanja na jednostavnom engleskom jeziku se
automatski prevode u SQL. U ovom slučaju, softverski program koji se zove Natural language
(prirodni jezik) koji dozvoljava upite u ograničenoj formi prirodnog jezika, analizira korisnikov
upit, prevodi ga u upit na SQL, prenosi SQL zahtev DBMS-u i daje na displeju podatke
korisniku.

        Cilj relacione baze podataka je da se što brže i jednostavnije dođe do traženog podatka.
Kao kada želimo da nešto teško i složeno razumemo, obično ga delimo na male, logičke celine i
pokusavamo da usredsredimo svu pažnju na pojedinačne delove. Tako isto i sa podacima,
raščlanjuju se na manje delove sve do traženog podatka. Relaciona baza podataka je, prosto
rečeno, «kontejner» za te male delove i njihove međusobne veze.

        Relaciona baza podataka se sastoji od jedne ili više (dvodimenzionalnih) tabela koje
međusobno mogu biti povezane. Svaka tabela čuva istvrsne podatke, kao na primer podatke o
nekoj osobi, predmetu i slično. Svaki red u tabeli predstavlja jedan slog u tabeli (najmanja grupa
podataka u bazi koja u potpunosti opisuje neki od koncepata koje baza modelira), a svaka kolona
jedno od polja unutar tog sloga. Dakle, slog može biti grupa podataka koja opisuje npr. neku
osobu, a polja unutar tog sloga mogu sadržati ime, prezime, adresu stanovanja, ili datum rođenja
te osobe. Slog se u literaturi naziva entitet, a polje se naziva atribut. Svaki slog tabele se može
jednostavno indentifikovati putem jedne ili kombinacijom vrednosti nekog od polja tog sloga. To
polje, ili kombinaciju polja, nazivamo primarni deo ili osnovni ključ. Tako neku osobu može

                                                9
jednostavno indentifikovati pomoću matičnog broja ili kombinacija vrednosti polja imena i
prezimena.

        U jednoj tabeli može postojati više polja ili kombinacija polja koji mogu biti kao primarni
ključ. Pored toga što primarni ključ ima ulogu jednostavnog indentifikovanja sloga, on igra
ulogu i u povezivanju tabela. Uzmimo da naša tabela ustvari predstavlja listu pisaca. Pored te
tabele imamo i listu knjiga, te je potrebno ove dve tabele povezati kako bismo znali koji je pisac
napisao koju knjigu. Ako u slog knjige ubacimo polje koje sadrži vrednost primarnog ključa
pisca, ove dve tabele su povezane. Ovo novo polje, koje isključivo služi za povezivanje dve
tabele, u tabeli se zove strani ključ. Ovakav način povezivanja podataka nazivamo relacioni
model baza podataka. O ovom modelu ce biti detaljnije opisano u nastavku seminarskog rada.

        Pre nego što damo primer relacione baze podataka, da objasnimo šta čini jednu tabelu
relacione baze podataka.

       Atributi
          • Svaka kolona relacije sadrži vrednost jednog atributa, entiteta ili veze koja se
             prikazuje relacionom (tablicom);
          • Atribut ima svoje ime kojim se razlikuje od ostalih atributa;
          • Vrednost jednog atributa su podaci iste vrste ili tipa;
          • Skup vrednosti jednog atributa zovemo domenom atributa;
          • Vrednost atributa treba biti jednostruka i jednostavna, ne sme da se rastavlja na
             delove;
          • Toleriše se ponekad da vrednost atributa nije definisana ili upisana (ne ostaje);
          • Broj atributa je stepen relacije.

       n-torke
           • Jedan red relacije predstavlja primerak entiteta ili beleži vezu između dva ili više
              primeraka entiteta;
           • Primerak zovemo n-torka;
           • U jednoj relaciji ne mogu biti dve jednake n-torke;
           • Broj n-torki je kordinalnost relacije;
           • Relacija ne propisuje redosled svojih n-torki ili atributa. Permutacijom kolona ili
              reda dobija se drugi zapis, ali ista relacija.

       Ključ
       Ključ čine kolone čija je vrednost jednobrazna. Pomoću ključa se identifikuju atributi.
Moguće je da postoji više skupova atributa koji zadovoljavaju navedena svojstva, pa se tada
jedan od njih proglašava primarnim ključem. Skup atributa koji čine primarni ključ, zovu se
primarni atributi. Vrednost primarnog atributa ne bi ni u jednoj n-torki smela biti neupisana
(nedefinisana)!




                                                10
Entitet
       Entiteti su ključni objekti iz realnog sveta.

           •   Svaki tip entiteta prikazuje se jednom relacijom;
           •   Atributi entiteta postaju atributi relacije;
           •   Pojedini primerci entiteta prikazuje se n-torkama relacije;
           •   Primarni ključ entiteta postaje primarni ključ relacije;
           •   Postojanje veza s drugim entitetima može zahtevati dodavanje još nekih atributa;
               Npr. entitet STUDENT postaje relacija: STUDENT (indeks, ime, adresa, pol, ...).


                           2.1.2. Kreiranje relacione baze podataka

        U fazi projektovanja logičkog modela baze podataka, koristi se dijagram entiteta i veza
(engl. entity-relationship diagram, ER diagram). ER dijagram se sastoji od entiteta, atributa i
veza. Pravougaonicima su prikazani entiteti, ovalnim elementima su prikazani atributi, a
romboidima su prikazane veze. Lista atributa za svaki entitet je prikazana pored prikaza entiteta.

       Entitet predstavlja osobu, proces ili događaj iz korisničkog okruženja. Posmatrajmo
primer baze podataka fakulteta. STUDENT i PROFESOR predstavljaju primere entiteta. Entiteti
određenog tipa se grupišu u klase entiteta. Instancu nekog entiteta predstavlja reprezentacija
određenog entiteta. Tako, na primer, Marko Marković predstavlja jednu instancu entiteta
STUDENT (tj. predstavlja jednog konkretnog studenta).

       Entiteti imaju atribute, ili osobine, koji opisuju karakteristike entiteta. U primeru baze
podataka fakulteta, atributi za STUDENTA bi mogli biti BROJ INDEKSA, IME i ADRESA.
Primeri atributa za PROFESORA bi bili ŠIFRA PROFESORA, IME i KATEDRA.

        Instance entiteta imaju identifikatore, tj. atribute koji služe za jednoznačno određivanje
instance entiteta. Na primer, identifikator za instance STUDENTA predstavlja BROJ INDEKSA.
Identifikatori se podvlače u ER dijagramu.




                                                 11
1                        1
                                    Student                        Može             Parking dozvola
                                                                   imati
        Jedan student može
        slušati više kurseva
                                                 M
                                                         Jedan student može       Jednu parking dozoiu
                                       Može
                                                         imati samo jednu         može imati tačno
                                       slušati
                                                         parking dozvolu          jedan student
         Jedan kurs može slušati
         više studenata                          M

                                     Kurs
       Jedan kurs može držati
       samo jedan profesor                       1
                                       Može
                                       držati




       Jedan profesor može držati                M
       više kurseva

                                    Profesor



                                          Slika 3. ER dijagram

        Entiteti su povezani jedni sa drugima pomoću veza, koje mogu uključivati veći broj
entiteta. Broj entiteta u vezi predstavlja stepen veze. Veze stepena 2 se nazivaju binarne veze.

       Postoje tri tipa binarnih veza: 1:1, 1:M, M:M.

   •   U 1:1 (jedan-prema-jedan) vezi jedna instanca prvog entiteta je u vezi sa tačno jednom
       instancom drugog tipa. Na slici 5 vidimo vezu STUDENT-PARKING DOZVOLA kao
       vezu tipa 1:1, koja povezuje jednog studenta sa tačno jednom dozvolom za parking.
       Dakle, nijedan student nema više od jedne dozvole za parking, niti jedna dozvola za
       parking može da se dodeli više od jednom studentu.
   •   Drugi tip veze, 1:M (jedan-prema-više) predstavljen je na primeru veze KURS-
       PROFESOR. Ova veza znači da jedan profesor može držati više kurseva, ali jedan
       određeni kurs drži jedan određeni pofesor.
   •   Treći tip veze, M:M (više-prema-više) predstavljen je na primeru veze STUDENT-
       KURS. Ova veza znači da jedan student može slušati veći broj kurseva, a da jedan kurs
       sluša veći broj studenata.

       ER dijagrami se u sledećoj fazi projektovanja baze podataka prebacuju u tabele.
Dijagrami pomažu u razumevanju odnosa koji vladaju među podacima i olakšavaju proces
projektovanja tabela.




                                                     12
2.2. Sistemi za upravljanje bazama podataka

        Program (ili grupa programa) koji omogućavaju pristup bazama podataka su poznati pod
imenom sistemi za upravljanje bazama podataka, SUBP (engl. database management system,
DBMS). SUBP omogućavaju organizacijama da centralizuju podatke, da efikasno upravljaju
njima i omogućavaju pristup podacima u bazi pomoću aplikacionih programa. SUBP deluje kao
interfejs između aplikativnih programa i samih podataka i obezbeđuju alate pomoću kojih
korisnici mogu da dodaju nove, brišu postojeće, održavaju, štampaju, pretražuju, selektuju,
sortiraju i modifikuju podatke.

        Sistemi za upravljanje bazama podataka omogućavaju da više korisnika deli podatke.
Međutim, kako postoji veliki broj različitih korisnika, tako su i njihovi zahtevi ka podacima koji
se nalaze u bazi različiti. Kako omogućiti da jedna baza zadovolji potrebe različitih korisnika?
Na primer, kako koncipirati bazu podataka tako da radnici u prodaji mogu da vide samo podatke
iz baze vezane za kupce i magacin, dok radnicima iz odeljenja ljudskih resursa treba ograničiti
pristup isključivo ka ličnim podacima zaposlenih?

        Sistemi za upravljanje bazama podataka rešavaju ove i slične probleme tako što
obezbeđuju dva pogleda na podatke u bazi: fizički i logički pogled. Fizički pogled sadrži podatke
o tome gde i na koji način su podaci zaista smešteni. Korisnici baze podataka, međutim, ne treba
da se opterećuju takvim detaljima. Na kraju krajeva, korisnika baze podataka interesuje kako da
koristi informacije, a ne na koji način su one smeštene. Logički pogled, ili korisnički pogled,
predstavlja podatke u formatu koji je koristan za korisnika. Dakle, ovaj pogled saopštava
korisniku šta se od podataka nalazi u bazi.

       Jedna od prednosti SUBP je da (mada uvek postoji samo jedan fizički pogled podataka)
obezbeđuje postojanje većeg broja različitih logičkih pogleda – pa čak i po jedan za svakog
pojedinačnog korisnika, ako je to potrebno. Ova karakteristika omogućava da korisnik koristi
podatke u bazi, a da pri tom ne vodi računa o raznim tehničkim pitanjima vezanim za podatke
(kako fizički pristupiti podacima i slično).




                                               13

More Related Content

Similar to Domaći rad 1

Baze podataka - Stefan Nikolić - Silvana Ivković
Baze podataka - Stefan Nikolić - Silvana IvkovićBaze podataka - Stefan Nikolić - Silvana Ivković
Baze podataka - Stefan Nikolić - Silvana IvkovićNašaŠkola.Net
 
Nasa skola baze_podataka_stefan_nikolic
Nasa skola baze_podataka_stefan_nikolicNasa skola baze_podataka_stefan_nikolic
Nasa skola baze_podataka_stefan_nikolicDragan Ilić
 
Baze podataka
Baze podatakaBaze podataka
Baze podatakagrujam
 
Informatika
InformatikaInformatika
Informatikabobantos
 
Upotreba wizard a za izradu upita
Upotreba wizard a za izradu upitaUpotreba wizard a za izradu upita
Upotreba wizard a za izradu upitatoticaaa
 
Pitanja kss (1)
Pitanja  kss (1)Pitanja  kss (1)
Pitanja kss (1)Milos Ilic
 
Softver za upravljanje koji ne zavisi od uređaja jovana lukić ii5
Softver za upravljanje koji ne zavisi od uređaja  jovana lukić ii5Softver za upravljanje koji ne zavisi od uređaja  jovana lukić ii5
Softver za upravljanje koji ne zavisi od uređaja jovana lukić ii5lukicka
 
Prosirivi markerski jezik xml
Prosirivi markerski jezik xmlProsirivi markerski jezik xml
Prosirivi markerski jezik xmlgoranseminarski
 
21.čas.operativni sistemi
21.čas.operativni sistemi21.čas.operativni sistemi
21.čas.operativni sistemiLjiljana Rehner
 
Kreiranje baze podataka u Access-u
Kreiranje baze podataka u Access-uKreiranje baze podataka u Access-u
Kreiranje baze podataka u Access-uDejan Pejčić
 
General M-Files Brochure (Web) A4 EU Serbian
General M-Files Brochure (Web) A4 EU SerbianGeneral M-Files Brochure (Web) A4 EU Serbian
General M-Files Brochure (Web) A4 EU SerbianVladimir Radulovic
 
Entitet, organizacija, baza i access
Entitet, organizacija, baza i accessEntitet, organizacija, baza i access
Entitet, organizacija, baza i accessSanja Jovanovic
 
Увод у рачунарске мреже
Увод у рачунарске мрежеУвод у рачунарске мреже
Увод у рачунарске мрежеMilena Milutinović
 
informacioni+sistemi.ppt
informacioni+sistemi.pptinformacioni+sistemi.ppt
informacioni+sistemi.pptVlada Nedic
 
Uvod u sisteme.pdf
Uvod u sisteme.pdfUvod u sisteme.pdf
Uvod u sisteme.pdfVlada Nedic
 

Similar to Domaći rad 1 (20)

Baze podataka - Stefan Nikolić - Silvana Ivković
Baze podataka - Stefan Nikolić - Silvana IvkovićBaze podataka - Stefan Nikolić - Silvana Ivković
Baze podataka - Stefan Nikolić - Silvana Ivković
 
Nasa skola baze_podataka_stefan_nikolic
Nasa skola baze_podataka_stefan_nikolicNasa skola baze_podataka_stefan_nikolic
Nasa skola baze_podataka_stefan_nikolic
 
Nasa skola baze_podataka_stefan_nikolic
Nasa skola baze_podataka_stefan_nikolicNasa skola baze_podataka_stefan_nikolic
Nasa skola baze_podataka_stefan_nikolic
 
Baze podataka
Baze podatakaBaze podataka
Baze podataka
 
Informatika
InformatikaInformatika
Informatika
 
Upotreba wizard a za izradu upita
Upotreba wizard a za izradu upitaUpotreba wizard a za izradu upita
Upotreba wizard a za izradu upita
 
Pitanja kss (1)
Pitanja  kss (1)Pitanja  kss (1)
Pitanja kss (1)
 
Softver za upravljanje koji ne zavisi od uređaja jovana lukić ii5
Softver za upravljanje koji ne zavisi od uređaja  jovana lukić ii5Softver za upravljanje koji ne zavisi od uređaja  jovana lukić ii5
Softver za upravljanje koji ne zavisi od uređaja jovana lukić ii5
 
Baze podataka
Baze podatakaBaze podataka
Baze podataka
 
1.BAZE PODATAKA VIII
1.BAZE PODATAKA VIII1.BAZE PODATAKA VIII
1.BAZE PODATAKA VIII
 
Prosirivi markerski jezik xml
Prosirivi markerski jezik xmlProsirivi markerski jezik xml
Prosirivi markerski jezik xml
 
21.čas.operativni sistemi
21.čas.operativni sistemi21.čas.operativni sistemi
21.čas.operativni sistemi
 
Kreiranje baze podataka u Access-u
Kreiranje baze podataka u Access-uKreiranje baze podataka u Access-u
Kreiranje baze podataka u Access-u
 
General M-Files Brochure (Web) A4 EU Serbian
General M-Files Brochure (Web) A4 EU SerbianGeneral M-Files Brochure (Web) A4 EU Serbian
General M-Files Brochure (Web) A4 EU Serbian
 
Entitet, organizacija, baza i access
Entitet, organizacija, baza i accessEntitet, organizacija, baza i access
Entitet, organizacija, baza i access
 
Увод у рачунарске мреже
Увод у рачунарске мрежеУвод у рачунарске мреже
Увод у рачунарске мреже
 
informacioni+sistemi.ppt
informacioni+sistemi.pptinformacioni+sistemi.ppt
informacioni+sistemi.ppt
 
Softver racunara
Softver racunaraSoftver racunara
Softver racunara
 
Uvod u sisteme.pdf
Uvod u sisteme.pdfUvod u sisteme.pdf
Uvod u sisteme.pdf
 
информатика 1
информатика 1информатика 1
информатика 1
 

Recently uploaded (8)

OIR6-L1.pptx
OIR6-L1.pptxOIR6-L1.pptx
OIR6-L1.pptx
 
OIR4-L3.pptx
OIR4-L3.pptxOIR4-L3.pptx
OIR4-L3.pptx
 
SEKTE - lovci na duse, vrste i funkcionisanje.ppsx
SEKTE - lovci na duse, vrste i funkcionisanje.ppsxSEKTE - lovci na duse, vrste i funkcionisanje.ppsx
SEKTE - lovci na duse, vrste i funkcionisanje.ppsx
 
OIR-V3.pptx
OIR-V3.pptxOIR-V3.pptx
OIR-V3.pptx
 
OIR5-L2.pptx
OIR5-L2.pptxOIR5-L2.pptx
OIR5-L2.pptx
 
OIR4-L2.pptx
OIR4-L2.pptxOIR4-L2.pptx
OIR4-L2.pptx
 
OIR4-L1.pptx
OIR4-L1.pptxOIR4-L1.pptx
OIR4-L1.pptx
 
OIR5-L1.pptx
OIR5-L1.pptxOIR5-L1.pptx
OIR5-L1.pptx
 

Domaći rad 1

  • 1. DOMAĆI RAD (datum 17.02.2011.) Tema: Baza podataka Predmet: UPRAVLJANJE ISTRAŽIVANJEM I RAZVOJEM Prof. dr Vukašin Ilić Tanja Damnjanović Broj indeksa: 044/07/13
  • 2. UVOD Najranija poznata upotreba termina baza podataka potiče iz 1963. godine, a kao jedinstvena reč postala je u ranim ‘70 – im godinama, u Evropi. Prvi sistemi upravljanja baze podataka razvili su se ’60 – ih godina, kao što je pomenuto. Začetnik u tom polju je bio Charles Bachman. Bachmanovi rani radovi pokazuju da je njegov cilj bio stvaranje delotvorne upotrebe novih uređaja, jer se do tada obrada podataka temeljila na bušenim karticama i magnetskoj traci, pa je tako serijska obrada bila dominanta aktivnost. Dva ključna modela su se pojavila u to vreme. CODASYL je razvio mrežni model baziran na Bachmanovim idejama, te se hijerahjiski model koristio u sistemu koji je razvio North American Rockwell, a kojeg je kasnije prihvatio IBM. Pre svega, treba pomenuti da je bila prvo ručna obrada podataka. Zatim, pojavom PS dolazi se do klasične obrade podataka gde se svaki poslovni informacioni sistem sastoji iz funkcionalnih jedinica, a svaka funkcionalna jedinica ima posebnu obradu podataka. Daljim razvitkom tehnologije dolazi se do baza podataka koja predstavlja najsloženiji oblik strukture baze podataka i koriste je svi procesi. Prve primene mašina za računanje su ustavri bile implementacije jednostavnih baza podataka. Među mašinama za računanje treba istaći kalkulator Blaise Pascala. Godine 1884. Herman Holerith je prijavio patent – sistem za automatsku obradu podataka o popisu stanovništva u SAD – u. Podaci na bušenim karticama su ručno ubacivani u uređaj za očitavanje, a obrada se odnosila na prebrojavanje. Programiranje se odnosilo na izbor vrste prebrojavanja, a radilo ručnim prespajanjem kontakata. Dotadašnja obrada podataka popisa trajala je 10 – ak godina, a sa Holerithovim izumom vreme obrade bilo je smanjeno na šest nedelja. Tako je popis stanovništva iz 1890. godine bio prva automatizovana baza podataka, koja se u suštini sastojala od hiljada kutija punih bušenih kartica. Od Holerithove kompanije nastao je današnji IBM. U godinama nakon Drugog svetskog rata, u kompanijama i vladinim institucijama počeli su se pojavljivati primitivni elektronski računari. Oni su se često koristili upravo za jednostavne linearne baze podataka, najčešće za računovodstvo. Ipak, vrlo brzo, bogati kupci su počeli da zahtevaju više od njihovih ekstremno skupih mašina. Sve je to vodilo do ranih relacionih baza podataka. Zanimljivo, ove rane aplikacije su nastavile da koriste Holerithove bušene kartice, neznatno modifikovane u odnosu na orifinalni dizajn. Nefleksibilnost polja iste dužine, baze podataka pokretane 80 kolonskim bušenim karticama, učinile su rane računare metom napada i šala i potpunom misterijom za običnog čoveka. Većina baza podataka se odnosila na specifične programe napisane za specifične baze podataka. Za razliku od modernih sistema koji mogu biti primenjeni na potpuno različite baze podataka, ovi sistemi su bili usko povezani za bazu podataka da bi osigurali brzinu na uštrb fleksibilnosti. 2
  • 3. 1. KLASIČNA OBRADA PODATAKA Klasična obrada podataka je obrada gde se kod svake funkcionalne jedinice vršila posebna obrada, što je dosta usporavalo proces rada informacionih sistema. Osnovni nedostaci ovakve obrade podataka su: • Redudansa podataka, odnosno višestruko pamćenje istih podataka je neminovno. Ako uzmemo za primer neko preduzeće, gde se isti podaci o proizvodima pamte i nekoliko desetina puta , ili neki komunalni informacioni sistem, gde se isti podaci o građanima pamte i stotinu puta, dolazi do velikih problema pri njihovom ažuriranju, kao i do povećanja troškova obrade podataka. • Zavisnost programa od organizacije podataka. Programi su zavisni i od logičke i od fizičke strukture podataka. Fizička struktura je način memorisanja podataka na spoljnim memorijama (hard disk, CD, flash... ), a logička struktura je struktura podataka koja je predstavljena programeru. U klasičnim datotekama razlika fizičke i logičke strukture podataka je mala. Odnosno, programeru se praktično direktno prikazuje način na koji su podaci memorisani na spoljnoj memoriji. Logička zavisnost se ogleda u tome što program zavisi, na primer, od naziva i redosleda polja u zapisu, a fizička se ogleda u tome što program zavisi od distribucije datoteka po čvorovima računarske mreže, izabranih metoda pristupa, načina sortiranja i slično. U suštini, logička i fizička organizacija podataka su prilagođene konkretnom programu. • Niska produktivnost u razvoju informacionog sistema (IS). Jedan od uzroka niske produktivnosti u razvoju IS je struktuiranje podataka u nekom IS. Čak i kada postoje svi podaci koji se u nekoj novoj aplikaciji zahtevaju, a nalaze se u različitim datotekama, sa različitim fizičkim organizacijama, zadovoljenje nekog jednostavnog informacionog zahteva . • Sistem datoteka je nezadovoljavajuće pouzdan, ne garantuje očuvanje tačnosti i konzistentnosti podataka pri mogućim hardverskim i softverskim otkazima. • Sistem datoteka ne obezbeđuje zadovoljavajuće očuvanje tačnosti i konzistentnosti podataka pri višestrukom paralelnom korišćenju podataka.1 Ovo su osnovni problemi klasične poslovne obrade podataka koji su zahtevali bitne tehnološke promene. Od šezdesetih godina do danas, oblast sistema za upravljanje bazom podataka se veoma brzo razvija, tako da je danas dostigla potpunu zrelost. Sistem za upravljanje bazom podataka (Slika 1.2)2 je jedan složeni softverski sistem koji treba da omogući: • Skladištenje podataka sa minimumom redudanse; • Pouzdanost podataka i pri mogućim hardverskim i softverskim otkazima; • Pouzdano paralelno korišćenje zajedničkih podataka od strane više ovlašćenih korsnika; • Logičku i fizičku nezavisnost programa od podataka. Iako se, po pravilu, fizički podaci pamte samo jednom, svaki korisnik dobija svoju sopstvenu logičku sliku 1 Lazarević B., Marjanović Z., Ančić N., Babarogić S., Baze podataka, FON, Beograd 2003, str. 2-3. 2 Lazarević B., Marjanović Z., Ančić N., Babarogić S., Baze podataka, FON, Beograd 2003, str. 4. 3
  • 4. podataka, strukturu i/ili kolekciju operacija nad njima, kakva njemu najviše odgovara. • Jednostavno komuniciranje sa bazom podataka preko jezika bliskih korisniku, to je tzv. upitni jezik, da bi se neprofesionalni korisnici lako uključili i uveli u razvoj informacionog sistema, a profesionalnim programerima značajno povećala produktivnost. Slika 1. Savremena obrada podataka – sistem za upravljanje bazom podataka Podaci su sada, umesto razbacani po nezavisnim datotekama, organizovani u jednostavnu bazu podataka. Podaci sada postaju resurs u nekom sistemu i njima se upravlja na jednostavan način isto kako se upravlja i sa drugim resursima poslovnih sistema. 4
  • 5. 2. BAZA PODATAKA Baza podataka se može najopštije definisati kao zbirka podataka koja postoji relativno dugo i koju koristi i održava više korisnika, odnosno programa (aplikacija). Baza podataka služi za brzo pretraživanje i pristup, zajedno sa sistemom za administraciju, organizovanje i memorisanje tih podataka iz ugla koisnika. Korisnici pristupaju bazi podataka prvenstveno preko upitnika. Korišćenjem ključnih reči i svsrstavanjem komandi, korisnici mogu brzo da pronađu, preurede, grupišu i odaberu oblast u mnogim zapisima koje treba vratiti, ili pomoću kojih treba sastaviti izveštaje o naročitoj skupini podataka u skladu sa pravilima dotičnog sistema vođenja baze podataka. Jednostavno rečeno, baza podataka je softwerska konstrukcija namenjena za analizu i pretraživanje grupe srodnih i povezanih podataka, kao što su podaci o kupcima, pacijentima, telefonskim brojevima i sl. Spomenuli smo da baze podataka predstavljaju veću zbirku rada sa podacima u odnosu na klasične programske jezike. Ta veća zbirka rada ogleda se u tome što tehnologija baza podataka nastoji, i u velikoj meri uspeva, da ispuni sledeće ciljeve. Fizička nezavisnost podataka. Razdvaja se logička definicija baze od njene stvarne fizičke građe. Znači, ako se fizička građa promeni (na primer, podaci se prepišu u druge datoteke na drugim diskovima), to neće zahtevati promene u postojaćim aplikacijama. Logička nezavisnost podataka. Razdvaja se globalna logička definicija cele baze podataka od lokalne logičke definicije za jednu aplikaciju. Znači, ako se logička definicija promeni (na primer, uvede se novi zapis ili veza), to neće zahtevati promene u postojaćim aplikacijama. Lokalna logička definicija obično se svodi na izdvajanje samo nekih elemenata iz globalne definicije, uz neke jednostavne transformacije tih elemenata. Fleksibilnost pristupa podacima. U starijim mrežnim i hijerarhijskim bazama, put pristupanja podacima bio je unapred definisan, dakle korisnik je mogao pretraživati podatke jedino onim redosledom koji je bio predviđen u vreme projektovanja i implementiranja baze. Danas se zahteva da korisnik može slobodno prebirati po podacima, te prema svom nahođenju uspostavlja vezu među podacima. Ovom zahtevu zaista zadovoljavaju jedino relacijske baze. Istovremeni pristup do podataka. Baza mora omogućiti da veći broj korisnika istovremeno koristi iste podatke. Pritom, ti korisnici ne smeju ometati jedan drugoga, svaki od njih treba da radi sam sa bazom podataka. Čuvanje integriteta. Nastoji se automatski sačuvati korektnost i konzistencija podataka i to u situaciji kad postoje greške u aplikacijama, te konfliktne istovremene aktivnosti korisnika. Mogućnost oporavka nakon kvara. Mora postojati pouzdana zaštita baze u slučaju kvara hardvera ili grešaka u radu sistemskog softvera. 5
  • 6. Zaštita od neovlašćenog korišćenja. Mora postojati mogućnost da se korisnicima ograniče prava korišćenja baze, dakle da se svakom korisniku regulišu ovlašćenja šta on sme da radi sa podacima, a šta ne sme da radi. Zadvoljavajuća brzina pristupa. Operacije s podacima moraju da se odvijaju dovoljno brzo u skladu s potrebama određene aplikacije. Na brzinu pristupa može se uticati odabirom pogodnih fizičkih struktura podataka, te izborom pogodnih algoritama za pretraživanje. Mogućnost podešavanja i kontrole. Velika baza zahteva stalnu brigu: praćenje perfomansi, menjanje parametara u fizičkoj građi, rutinsko pohranjivanje rezervnih kopija podataka, regulisanje ovlašćenja korisnika. Takođe, svrha baze se vremenom menja, pa povremeno treba podesiti i logičku strukturu. Ovakvi poslovi moraju da se obavljaju centralizovano. Odgovorna osoba se zove administrator baze podataka. Administratoru trebaju stajati na raspolaganju razni alati i pomagala. Danas baze podataka sadrže podatke različitih medijskih vrsta, pa se zato govori o multimedijskim podacima, a baze koje sadže takve podatke nazivaju se multimedijskim bazama podataka. Pored tekstualnih podataka, tu su i podaci koji opisuju slike (nepokretne ili pokretne, kada govorimo o videozapisu) ili zvuk. Zavisno od vrste i namene podataka u bazi podataka, kao i načinima korišćenja podataka, razlikujemo baze: 1. formativnih podataka, 2. neformativnih podataka i 3. baze znanja. Formativna baza podataka se najčešće koristi i to kroz relacijsku tabelu koju ćemo kasnije objasniti. Današnje baze podataka su najčešće relacijske i široka je primena ovakvih baza podataka. Neformativna baza podataka sadrži tekstualne ili različite multimedijske podatke. Ponekad se govori i o bazi dokumenata koja sadrži: stručne ili naučne članke, novinske tekstove, bibliografske podatke, ili druge tekstualne podatke, zatim slike, videozapise, zvukovne podatke i sl.,a njih nije prikladno prikazivati u tabličnom obliku. U svetu postoji niz ovakvih baza podataka i gotovo su redovno dostupne na Internetu, s tim što se neke od njih naplaćuju, jer je i informacija danas roba, kao i svaka druga, čiju cenu određuje potražnja. Pronalaženje dokumenata iz baze podataka obavlja se navođenjem ključnih reči vezanih za naslov, autore, ili za sadržaj traženih dokumenata. Na Internetu postoje specijalizovani pretraživači kao što su, jedni od najboljih, Google i Yahoo, kao i drugi. Dokumenti su pri tome razasuti na raznim računarima širom sveta, ali korisnik dolazi do istih na isti način, kao da se oni nalaze u jednoj bazi podataka. Dakle, Internet predstavlja jednu nehomogenu bazu dokumenata koju je na ovaj način moguće pretraživati. Baze znanja sadrže znanja prikazana u različitim oblicima. Tako prikazano znanje može se upotrebiti korišćenjem različitih mehanizama zaključivanja. Na ovaj način se na primer u ekspertnim sistemima i drugim sistemima koji se temelje na znanju, mogu rešavati različiti 6
  • 7. problemi, kao što su: dijagnoza uzroka grešaka u složenim sistemima, finansijska predviđanja, konfiguracija računarskih sistema, planiranje projekata, itd. Brigu o podacima, vezama među podacima, ispravnosti podataka i svemu ostalom na sebe preuzima sistem za upravljanje podacima u bazi podataka DBMS – Database Management Systems. To je jedan aspekt sa kojeg se pristupa izučavanje baza podataka, a drugi je modeli podataka, koji su međusobno povezani. • sistemi za upravljanje bazom podataka DBMS – specifična tehnologija obrade podataka, odnosno softverski sistem koji obezbeđuje osnovne funkcije obrade velike količine podataka: jednostavno pretraživanje i održavanje podataka, pouzdanost i sigurnost, paralelno korišćenje istog skupa podataka. • modeli podataka – specifične teorije pomoću kojih se specifikuje i projektuje neka konkretna baza podataka ili informacioni sistem, uopšte. I jedan i drugi aspekt imaju izuzetno veliki značaj za razvoj informacionih tehnologija. Istorijski, sistemi za upravljanje bazom podataka predstavljali su revoluciju u tehnologiji obrade podataka, a modeli podataka revoluciju u metodološkim pristupima razvoju informacionih sistem. Ako govorimo o organizaciji podataka, takodje je od velikog značaja kada želimo da radimo sa bazom podataka. Jedan od ključnih aspekata, dobrog kreiranja baze podataka jeste kako će podaci biti organizovani u bazi podataka. Da bi postigli dobro kreiranu bazu podataka, podatke bi trebalo organizovati tako da su lako dostupni i da omogućavaju lako održavanje baze podataka. 2.1. Modeli baze podataka Tehnologija baza podataka je znatno izmenila i unapredila metodologiju razvoja informacionih sistema. Informacioni sistem treba da omogući da se preko njega sagleda stanje i ponašanje realnog sistema i da se na osnovu toga donesu odluke koje će sistem voditi ka ostvarivanju postavljenih ciljeva. Zbog toga informacioni sistem treba da bude model realnog sistema u kome deluje, a razvoj informacionog sistema se u velikoj meri svodi na nalaženje odgovarajućeg modela realnog sistema.3 Sistem se može definisati kao skup objekata (entiteta) i njihovih međusobnih veza. Objekti u sistemu su sve što neko modeluje i proglasi za objekat, a mogu biti fizički, koncepti, događaji i drugo. Objekti se u modelu nekog sistema opisuju preko svojih svojstava (atributa). Na slici 1.4 je prikazana ilustracija ove defenicije i na njoj se vidi da su objekti povezani kao elementi u nekom organizacionom sistemu. Skup objekata koji predstavlja posmatrani sistem opisuje se preko ulaza u sistem, a odgovarajuće dejstvo sistema na okolinu, preko njegovih izlaza. 3 Lazarević B., Marjanović Z., Ančić N., Babarogić S., Baze podataka, FON, Beograd 2003, str. 11. 7
  • 8. Slika 2. Sistem Sistem ima i svoje stanje koje se menja pod dejstvom ulaza, a ova promena se reflektuje na izlaz. Stanje sistema se definiše kao skup informacija o prošlosti i sadašnjosti sistema koji je potreban da bi se, pod dejstvom budućih poznatih ulaza, mogli odrediti budući izlazi. Stanje sistema opisuje fundamentalne karakteristike sistema, u jednom trenutku vremena ono predstavlja skup objekata sistema, skup njihovih međusobnih veza i skup vrednosti njihovih atributa u tom trenutku vremena. Svaki SUBP zasnovan je na nekom modelu podataka, mada postoje modeli, kao što je Model objekti – veze, na primer, koji isključivo služe za projektovanje baza podataka. U ovom radu cemo se bazirati najviše na relacioni model, ali postoje i: 1. Model objekti – veze 2. Relacioni model 3. Objektni model 4. Objektno – relacioni model 5. Aktivne baze podataka 6. XML kao model podataka Centralizovana baza podataka poseduje sve međusobno povezane datoteke na jednoj fizičkoj lokaciji. Centralizovane baze podataka na velikim, mainframe računarima predstavljaju dominantan oblik baza podataka, u prvom redu zbog enormnih troškova drugih alternativa. Datoteke postižu veći stepen međusobne konzistentnosti ukoliko su sve smeštene na jednoj lokaciji, pošto se lakše može upravljati promenama koje nastaju na nekima od njih. Datotekama se može pristupiti samo preko centralizovanog host računara, koji se lako može zaštiti od neautorizovanog pristupa. Takođe, ukoliko dođe do nekakvih neželjenih oštećenja datoteka, njihovo obnavljanje je lakše izvršiti sa centralne lokacije. Kao i svi centralizovani sistemi, centralizovana baza podataka trpi ogromne posledice ukoliko dođe do oštećenja dela njenih podataka. Ukoliko se dogodi neka greška pri obradi podataka na računaru na kome se nalazi centralizovana baza podataka, svi korisnici trpe posledice. Pri tome, brzina pristupa podacima je često veliki problem kada su korisnici raspoređeni na prostorno velikim udaljenostima. Distribuirana baza podataka smešta kompletne kopije baze podataka, ili neke njene delove, na više lokacija, koje su obično prostorno blizu korisnika (videti sliku 3). Postoje dva tipa distribuiranih baza podataka: replicirane i deljive. 8
  • 9. Replicirane baze podataka sadrže kompletne kopije cele baze podataka na više lokacija, u prvom redu da bi se izbegle katastrofalne posledice od mogućih oštećenja podataka koje su karakteristične za centralizovane baze podataka, kao i da bi se povećala brzina pristupa podacima. Postoji veliki problem u održavanju konzistentnosti između podataka koji se nalaze na repliciranim bazama podataka, prilikom dodavanja novih podataka, modifikovanja i brisanja podataka. Deljive baze podataka su izdeljene, tako da svaka lokacija sadrži deo podataka iz cele baze podataka (obično deo podataka koji je potreban određenom korisniku). Ovakav tip baza podataka obezbeđuje brz pristup podacima, bez potrebe za repliciranjem promena na više lokacija. 2.1.1. Relacioni model Relacioni model je teorijski zasnovao E.F.Codd krajem ’70-ih godina. Prve realizacije na računaru bile su suviše spore i neefikasne. Razvojem računara efikasnost relacionih baza se poboljšava, te u današnje vreme većina DBMS – ova koristi relacioni model. Termin relaciona baza podataka dolazi od činjenice da ona koristi relaciju (odnos) umesto datoteke. Relacija je tabela sastavljena od slogova. Unutar jedne tabele može postojati samo jedna vrsta slogova ili entita. Relacione tabele pokazuju logičke, a ne fizičke odnose, a zanemaruje redosled podataka, odnosno slogova uključenih u relaciju. Relacioni model odvaja bazu podataka od operativnog sistema kao i od aplikacije. Kada se da zahtev za informacije, sistem napravi tabelu koja sadrži te informacije. Standardni programski jezik za izražavanje pristupa podacima i manipulaciju sa tabelama u relacionoj bazi podataka se naziva SQL (Structured Query Language). U ovom jeziku, pitanja na jednostavnom engleskom jeziku se automatski prevode u SQL. U ovom slučaju, softverski program koji se zove Natural language (prirodni jezik) koji dozvoljava upite u ograničenoj formi prirodnog jezika, analizira korisnikov upit, prevodi ga u upit na SQL, prenosi SQL zahtev DBMS-u i daje na displeju podatke korisniku. Cilj relacione baze podataka je da se što brže i jednostavnije dođe do traženog podatka. Kao kada želimo da nešto teško i složeno razumemo, obično ga delimo na male, logičke celine i pokusavamo da usredsredimo svu pažnju na pojedinačne delove. Tako isto i sa podacima, raščlanjuju se na manje delove sve do traženog podatka. Relaciona baza podataka je, prosto rečeno, «kontejner» za te male delove i njihove međusobne veze. Relaciona baza podataka se sastoji od jedne ili više (dvodimenzionalnih) tabela koje međusobno mogu biti povezane. Svaka tabela čuva istvrsne podatke, kao na primer podatke o nekoj osobi, predmetu i slično. Svaki red u tabeli predstavlja jedan slog u tabeli (najmanja grupa podataka u bazi koja u potpunosti opisuje neki od koncepata koje baza modelira), a svaka kolona jedno od polja unutar tog sloga. Dakle, slog može biti grupa podataka koja opisuje npr. neku osobu, a polja unutar tog sloga mogu sadržati ime, prezime, adresu stanovanja, ili datum rođenja te osobe. Slog se u literaturi naziva entitet, a polje se naziva atribut. Svaki slog tabele se može jednostavno indentifikovati putem jedne ili kombinacijom vrednosti nekog od polja tog sloga. To polje, ili kombinaciju polja, nazivamo primarni deo ili osnovni ključ. Tako neku osobu može 9
  • 10. jednostavno indentifikovati pomoću matičnog broja ili kombinacija vrednosti polja imena i prezimena. U jednoj tabeli može postojati više polja ili kombinacija polja koji mogu biti kao primarni ključ. Pored toga što primarni ključ ima ulogu jednostavnog indentifikovanja sloga, on igra ulogu i u povezivanju tabela. Uzmimo da naša tabela ustvari predstavlja listu pisaca. Pored te tabele imamo i listu knjiga, te je potrebno ove dve tabele povezati kako bismo znali koji je pisac napisao koju knjigu. Ako u slog knjige ubacimo polje koje sadrži vrednost primarnog ključa pisca, ove dve tabele su povezane. Ovo novo polje, koje isključivo služi za povezivanje dve tabele, u tabeli se zove strani ključ. Ovakav način povezivanja podataka nazivamo relacioni model baza podataka. O ovom modelu ce biti detaljnije opisano u nastavku seminarskog rada. Pre nego što damo primer relacione baze podataka, da objasnimo šta čini jednu tabelu relacione baze podataka. Atributi • Svaka kolona relacije sadrži vrednost jednog atributa, entiteta ili veze koja se prikazuje relacionom (tablicom); • Atribut ima svoje ime kojim se razlikuje od ostalih atributa; • Vrednost jednog atributa su podaci iste vrste ili tipa; • Skup vrednosti jednog atributa zovemo domenom atributa; • Vrednost atributa treba biti jednostruka i jednostavna, ne sme da se rastavlja na delove; • Toleriše se ponekad da vrednost atributa nije definisana ili upisana (ne ostaje); • Broj atributa je stepen relacije. n-torke • Jedan red relacije predstavlja primerak entiteta ili beleži vezu između dva ili više primeraka entiteta; • Primerak zovemo n-torka; • U jednoj relaciji ne mogu biti dve jednake n-torke; • Broj n-torki je kordinalnost relacije; • Relacija ne propisuje redosled svojih n-torki ili atributa. Permutacijom kolona ili reda dobija se drugi zapis, ali ista relacija. Ključ Ključ čine kolone čija je vrednost jednobrazna. Pomoću ključa se identifikuju atributi. Moguće je da postoji više skupova atributa koji zadovoljavaju navedena svojstva, pa se tada jedan od njih proglašava primarnim ključem. Skup atributa koji čine primarni ključ, zovu se primarni atributi. Vrednost primarnog atributa ne bi ni u jednoj n-torki smela biti neupisana (nedefinisana)! 10
  • 11. Entitet Entiteti su ključni objekti iz realnog sveta. • Svaki tip entiteta prikazuje se jednom relacijom; • Atributi entiteta postaju atributi relacije; • Pojedini primerci entiteta prikazuje se n-torkama relacije; • Primarni ključ entiteta postaje primarni ključ relacije; • Postojanje veza s drugim entitetima može zahtevati dodavanje još nekih atributa; Npr. entitet STUDENT postaje relacija: STUDENT (indeks, ime, adresa, pol, ...). 2.1.2. Kreiranje relacione baze podataka U fazi projektovanja logičkog modela baze podataka, koristi se dijagram entiteta i veza (engl. entity-relationship diagram, ER diagram). ER dijagram se sastoji od entiteta, atributa i veza. Pravougaonicima su prikazani entiteti, ovalnim elementima su prikazani atributi, a romboidima su prikazane veze. Lista atributa za svaki entitet je prikazana pored prikaza entiteta. Entitet predstavlja osobu, proces ili događaj iz korisničkog okruženja. Posmatrajmo primer baze podataka fakulteta. STUDENT i PROFESOR predstavljaju primere entiteta. Entiteti određenog tipa se grupišu u klase entiteta. Instancu nekog entiteta predstavlja reprezentacija određenog entiteta. Tako, na primer, Marko Marković predstavlja jednu instancu entiteta STUDENT (tj. predstavlja jednog konkretnog studenta). Entiteti imaju atribute, ili osobine, koji opisuju karakteristike entiteta. U primeru baze podataka fakulteta, atributi za STUDENTA bi mogli biti BROJ INDEKSA, IME i ADRESA. Primeri atributa za PROFESORA bi bili ŠIFRA PROFESORA, IME i KATEDRA. Instance entiteta imaju identifikatore, tj. atribute koji služe za jednoznačno određivanje instance entiteta. Na primer, identifikator za instance STUDENTA predstavlja BROJ INDEKSA. Identifikatori se podvlače u ER dijagramu. 11
  • 12. 1 1 Student Može Parking dozvola imati Jedan student može slušati više kurseva M Jedan student može Jednu parking dozoiu Može imati samo jednu može imati tačno slušati parking dozvolu jedan student Jedan kurs može slušati više studenata M Kurs Jedan kurs može držati samo jedan profesor 1 Može držati Jedan profesor može držati M više kurseva Profesor Slika 3. ER dijagram Entiteti su povezani jedni sa drugima pomoću veza, koje mogu uključivati veći broj entiteta. Broj entiteta u vezi predstavlja stepen veze. Veze stepena 2 se nazivaju binarne veze. Postoje tri tipa binarnih veza: 1:1, 1:M, M:M. • U 1:1 (jedan-prema-jedan) vezi jedna instanca prvog entiteta je u vezi sa tačno jednom instancom drugog tipa. Na slici 5 vidimo vezu STUDENT-PARKING DOZVOLA kao vezu tipa 1:1, koja povezuje jednog studenta sa tačno jednom dozvolom za parking. Dakle, nijedan student nema više od jedne dozvole za parking, niti jedna dozvola za parking može da se dodeli više od jednom studentu. • Drugi tip veze, 1:M (jedan-prema-više) predstavljen je na primeru veze KURS- PROFESOR. Ova veza znači da jedan profesor može držati više kurseva, ali jedan određeni kurs drži jedan određeni pofesor. • Treći tip veze, M:M (više-prema-više) predstavljen je na primeru veze STUDENT- KURS. Ova veza znači da jedan student može slušati veći broj kurseva, a da jedan kurs sluša veći broj studenata. ER dijagrami se u sledećoj fazi projektovanja baze podataka prebacuju u tabele. Dijagrami pomažu u razumevanju odnosa koji vladaju među podacima i olakšavaju proces projektovanja tabela. 12
  • 13. 2.2. Sistemi za upravljanje bazama podataka Program (ili grupa programa) koji omogućavaju pristup bazama podataka su poznati pod imenom sistemi za upravljanje bazama podataka, SUBP (engl. database management system, DBMS). SUBP omogućavaju organizacijama da centralizuju podatke, da efikasno upravljaju njima i omogućavaju pristup podacima u bazi pomoću aplikacionih programa. SUBP deluje kao interfejs između aplikativnih programa i samih podataka i obezbeđuju alate pomoću kojih korisnici mogu da dodaju nove, brišu postojeće, održavaju, štampaju, pretražuju, selektuju, sortiraju i modifikuju podatke. Sistemi za upravljanje bazama podataka omogućavaju da više korisnika deli podatke. Međutim, kako postoji veliki broj različitih korisnika, tako su i njihovi zahtevi ka podacima koji se nalaze u bazi različiti. Kako omogućiti da jedna baza zadovolji potrebe različitih korisnika? Na primer, kako koncipirati bazu podataka tako da radnici u prodaji mogu da vide samo podatke iz baze vezane za kupce i magacin, dok radnicima iz odeljenja ljudskih resursa treba ograničiti pristup isključivo ka ličnim podacima zaposlenih? Sistemi za upravljanje bazama podataka rešavaju ove i slične probleme tako što obezbeđuju dva pogleda na podatke u bazi: fizički i logički pogled. Fizički pogled sadrži podatke o tome gde i na koji način su podaci zaista smešteni. Korisnici baze podataka, međutim, ne treba da se opterećuju takvim detaljima. Na kraju krajeva, korisnika baze podataka interesuje kako da koristi informacije, a ne na koji način su one smeštene. Logički pogled, ili korisnički pogled, predstavlja podatke u formatu koji je koristan za korisnika. Dakle, ovaj pogled saopštava korisniku šta se od podataka nalazi u bazi. Jedna od prednosti SUBP je da (mada uvek postoji samo jedan fizički pogled podataka) obezbeđuje postojanje većeg broja različitih logičkih pogleda – pa čak i po jedan za svakog pojedinačnog korisnika, ako je to potrebno. Ova karakteristika omogućava da korisnik koristi podatke u bazi, a da pri tom ne vodi računa o raznim tehničkim pitanjima vezanim za podatke (kako fizički pristupiti podacima i slično). 13