Professional Documents
Culture Documents
Baze Predavanja 1 - Uvod
Baze Predavanja 1 - Uvod
Borivoje Miloevi
UVOD
Od samog poetka korienja raunara, obrada razliitih vrsta podataka, bila je jedan odosnovnih zadataka. Podaci i informacije su postali pokretaka snaga modernog poslovanja u celom svetu. Kada elimo da imamo kvalitetne informacije o svim segmentima naeg poslovnog ili ak i privatnog ivota najbolje je da na odreeni nain organizujemo sve podatke koje mogu da nam prue informacije koje su od velike vanosti u trenutku kada su nam potrebne. Pogotovo se to odnosi na situacije kada u kratkom roku moramo doneti neku kvalitetnu ili sudbonosnu odluku. Tada bi bilo najbolje da podaci za svaki pojedini element budu organizovani tako da se mogu smestiti u tabele sa jedinstvenim zaglavljem. Moe, a veoma esto i mora da bude vie tabela koje bi obuhvatile sve segmente naeg interesovanja. Svi ti segmenti se neretko zbog svoje prirode moraju organizovati u posebne tabele, a te tabele se mogu povezivati preko odreenih zajednikih elemenata. Skup vie tih tabela koje slue jednom zajednikom cilju, zajedno sa njihovim veznim elelmentima naziva se BAZOM PODATAKA. Njihov zajedniki cilj se odnosi na svoenje veoma brze i uspene infrormacije o svim dogaajima koji se deavaju unutar jedne celine.
Motivacija Da bi se stekla precizna slika o bazama podataka, nije dovoljno samo definisati pojam baze podataka Potrebno je prvo baze podataka sagledati u kontekstu njihovog istorijskog razvoja
izvorno nastao u raunarskoj industriji, a njegovo se znaenje proirilo popularnom upotrebom toliko da Evropska direkcija za baze podataka ( koja za baze podataka donosi prava za intelektualno vlasnitvo ) ukljuuje i neelektronske baze podataka unutar svoje definicije.
Svaki se zapis za bolji odgovor i razvrstavanje obino prepoznaje kao skup elemenata ( injenica ) podataka. Predmeti vraeni u odgovoru na upite postaju informacije koje se mogu koristiti za stvaranje odluka koje bi inae mogle biti mnogo tee ili nemogue za stvaranje.
zapamenih u raunaru na sistemski nain, takav da joj se raunarski program moe obratiti prilikom odgovaranja na problem.
Raunarski program korien za upravljanje i ispitivanje baze podataka nazvan je sistem upravljanja bazom podataka (SUBP) ili DBMS ( Data Base Management System ). Svojstva i dizajn sistema baze podataka ukljueni su u prouavanje informatike nauke. Naziv baza podataka se strogo govorei odnosi na zbirku zapisa, a na softver bi se trebalo odnositi kao na sistem upravljanja bazom podataka ili SUBP. Kada je kontekst jedinstven, mnogi administratori za baze podataka i programeri ipak koriste termin baza podataka da pokriju oba znaenja.
Informacija Definicija: Informacija je rezultat obrade, manipulacije i organizacije podataka na nain koji daje znanje korisniku. Drugim reima, to je kontekst u kojem su podaci uzeti.
Znaenja informacija 'Informacija' kao koncept ima mnotvo znaenja, od svakodnevnih pa do tehnikih upotreba. Opte govorei, koncept informacije je usko povezan sa notacijama ogranienja, komunikacije, upravljanja, podataka, oblika, instrukcije, znanja, znaenja, mentalnog podraaja, uzroka, opaaja i predstavljanja. Informacijsko doba Mnogi ljudi govore o informacijskom dobu kao uvodu za doba znanja ili drutvo znanja, informacijskom drutvu, informacijskoj tehnologiji pa iako su informatika, nauka o informaciji i raunarstvo esto u sreditu pogleda, re "informacija" je esto koriena bez obraanja odgovarajue panje na razliita znaenja koja je poprimila.
S pojmom informacija susreemo se u najraznovrsnijim situacijama, od upotrebe u svakodnevnom ivotu do one u specijalizovanim naunim podrujima. Ona predstavlja osnovno obeleje infromacionog doba, informacione nauke, tehnologije i drutva. Od mnotva znaenja koja posjeduje, u ovom delu obraen je onaj aspekt informacije koji je povezuje sa konceptom poruke. Budui da se podatak i informacija neretko koriste kao sinonimi, vano je napraviti distinkciju izmeu njih. Naime, definicija informacije glasi: Da su to podaci stavljeni u znaenje
Drugim riima, podatak je beskoristan sve dok ne prenosi neku informaciju. Prema sledeoj definiciji informacija je: Skup znakova koji korisniku neto znae, odnosno otkrivaju neto novo. Informacija je pojam sa mnogo znaenja zavisno od konteksta, ali je kao pravilo usko povezana s konceptima kao to su znaenje, znanje, percepcija, instrukcija, komunikacija i razni mentalni procesi. Jednostavno reeno, informacija je primljena i shvaena poruka. Ali pre svega, ona je rezultat procesiranja, manipulisanja i organizovanja podataka na naina da isti nadograuju znanje osobe koja informaciju prima.
Informacioni sistem
1. Sistemi za obradu podataka - vre automatsku obradu velikog broja podataka, npr. kontrola inventara, obrauni bankovnih rauna, popisi, itd. 2. Upravljaki informacioni sistemi - vre automatsku analizu podataka i proizvode informacije korisniku za upravljanje poslom, npr. mesena analiza prodaje, albe klijenata. 3. Sistemi za podrku odluivanju - vre specijalne analize koje se tiu stratekih problema odluivanja u upravljanju, npr. dugorono planiranje nabavke ili izgradnje fabrike ili izbora snabdevaa sirovina sa najboljim balansom kvalitete - cena, pouzdanost snabdevanja.
Tehnologija baza podataka je znatno izmenila i unapredila metodologiju razvoja informacionih sistema (IS). Konvencionalne metode razvoja IS polaze od toga da je uloga IS da zatvori "povratnu spregu" u procesu upravljanja nekim realnim sistemom. Zato se terminu "informacioni sistem" obino i dodavao atribut "upravljaki". Na osnovu ovakvog poloaja IS u pocesu odluivanja, problem projektovanja IS, u uem smislu, moe se postaviti na sledei nain: Dati su podaci o stanju sistema i okolini. Date su informacije potrebne za upravljanje. Projektovati IS koji e podatke o stanju sistema i okolini transformisati u informacije potrebne za upravljanje.
UPRAVLJANJE
UPRAVLJA^KI ULAZI
SISTEM
STANJE SISTEMA
INFORMACIONI SISTEM
OKOLINA
PODACI O OKOLINI
Ovako postavljen zadatak, svodi se na projektovanje u uem (tehnikom) smislu, projektovanje i implementaciju programa na osnovu dobro specificiranih zahteva. Meutim, u praksi, niti su dati podaci o stanju sistema i okolini, niti informacije potrebne za upravljanje, pa se postavka problema projektovanja mora proiriti i obuhvatiti celokupan razvoj IS kroz sledee opte korake: Analiza i specifikacija zahteva korisnika ( specifikacija podataka o stanju sistema, okolini i informacija potrebnih za upravljanje ). Projektovanje IS u uem smislu.
Razvoj informacionog sistema (RIS )izvodi kroz etiri sledee faze : Aktivnost 1. Funkcionalno modeliranje, Aktivnost 2. Informaciono modeliranje, Aktivnost 3. Aplikativno modeliranje i Aktivnost 4. Implementacija.
treba da omogui postavljanje modela, tj.definisanje studije koja koncipira reinenjering poslovnih procesa u irinu.Ova aktivnost se definie kroz tri podaktivnosti: Polazi se od svesti o potrebi razvoja informacionog sistema, i to povezane, pre svega, sa donoenjem strategijske odluke rukovodeeg menadmenta o sprovoenju reinenjeringa poslovnih procesa. Kao rezultat treba dobiti stablo poslovnih procesa kako ih vidi vodei menadment.
Funkcionalno modeliranje
1. Funkcionalna dekompozicija
Treba da omogui da se analizom dokumenata i sprovoenjem intervjua moe identifikovati okvir reinenjeringa poslovnih procesa. Rezultat ove faze rada su Tehniki preduslovi i "studija " ili "idejni projekat" kao dokument za dalju aktivnost.
3. Tehniki preduslovi
je kljuni momenat gde do izraaja dolazesposobnost i znanje visokostrunog kadra iz oblasti menadmenta i informatike. U ovoj fazi poeljno je angaovanje i spoljnih eksperata.Ova aktivnost se definie kroz sledee etiri podaktivnosti:
Informaciono modeliranje
Kao rezultat ovog rada treba da bude definisano detaljno stablo aktivnosti sa odgovarajuim detaljnim dekompozicionim dijagramima Ova aktivnost otvara "crnu kutiju", koja je buduim korisnicima uvek bila nepoznata, jer nisu mogli da prate razmiljanja projektanata informacionog sistema. Prvi put korisnici uzimaju aktivno uee i u ovom delu i prvi put projektanti informacionog sistema crtajuono to predstavlja njihovo iskustvo i saznanje o poslovanju konkretnog preduzea i to su oni osmislili u svojoj glavi. Treba da da opis osobina u prethodno definisanim entitetima. Osobine entiteta se definiu kroz identifikaciju atributa za svaki entitet,definisanje odgovarajuih kljueva i sprovoenja postupka normalizacije. Predstavlja sintezu prethodne dve aktivnosti itreba da definie poslovna ogranienja i pravila ponaanja.
2. Kreiranje ER modela
Aplikativno modeliranje
posmatra se sa stanovita izabranog sistemaza upravljanje bazama podataka (SUBP).Ova aktivnost se posmatra kroz sledee tri podaktivnosti:
3. Izrada aplikacije
Treba da se realizuje korisniki pogled na podatke, tj. dase definiu meniji, forme, upiti i izvetaji.
omoguuje izvoenje promena vezanih za na in rukovoenja i primene informacionih tehnologija.Ova aktivnost se posmatra kroz sledee tri podaktivnosti: Treba da da ocenu uraene korisnike aplikacije, omogui izmene u toku uvoenja, izradi uputstva za korisnike i obui same korisnike. Treba da omogui testiranje sprovedenih aktivnosti u okviru postavljenog SUBP gde se ocenjuju performanse tog sistema. Izvodi se kad se pree u fazu eksploatacije novopostavljenog sistema. Ovde se drastino pokazuju sve manjkavosti i neregularnosti vezane za sprovedeni reinenjering poslovnih procesa i definiu odgovarajue korektivne akcije.
Implementacija
1. Uvoenje
2. Testiranje
3. Odravanje
ta uraditi: To je pitanje na koje korisnik daje odgovor opisujui svoja oekivanja, nain interakcije i razliite aktere. U kom domenu: je pitanje koje treba da sadri opis domena ili okruenja u kome aplikacija treba da egzistira i bitne po aplikaciju elemente domena. Kako: dobija odgovor u fazi projektovanja dizajna. Odgovor je rezultat projektantskog iskustva i vetine. Kojom vetinom: je pitanje o neophodnim znanjima i vetinama za izgradnju aplikacije.
ISTORIJAT BAZA PODATAKA: Najranija poznata upotreba termina baza podataka potie iz 1963. god. kada je Drutvo za razvoj sistema uzelo pod pokroviteljstvo simpozijum pod naslovom Razvoj i upravljanje raunarsko centriranom bazom podataka. Baza podataka kao jedinstvena re postala je uobiajena u Evropi u ranim 1970-ima, a krajem decenije koristila se u glavnim amerikim novinama. ( Banka podataka, sinonimni termin, koristio se vrlo rano u novinama Washington Post, 1966. )
Prvi sistemi upravljanja bazom podataka razvijeni su u 1960-ima. Zaetnik u tom polju bio je Charles Bachman. Bachmanovi rani radovi pokazuju da je njegov cilj bio stvaranje delotvornije upotrebe novih ureaja s trenutnim pristupom memoriji koji su postali dostupni: do tada se obrada podataka temeljila na buenim karticama i magnetskoj traci, pa je tako serijska obrada bila dominantna aktivnost. Dva su se kljuna modela podataka pojavila u to vreme: CODASYL je razvio mreni model baziran na Bachmanovim idejama, pa se ( oigledno nezavisno ) hijerarhijski model koristio u sistem koji je razvio North American Rockwell, a koga je kasnije prihvatio IBM kao kamen temeljac svoje proizvode.
Tokom 1980-ih istraivaka aktivnost se usredsredila na sisteme distribuiranih baza podataka i na sisteme baza podataka, meutim taj je napredak imao mali uinak na trite. Druga vana teoretska zamisao bio je funkcionalni model podataka, ali bez obzira na neke specijalizovane primene u genetici, molekularnoj biologiji itd. svet nije na njega obratio veliku panju. U 1990-im panja se prebacila na baze podataka orijentisane prema objektu. To je izazvalo nekakav uspeh u poljima gdje je bilo potrebno rukovati kompleksnijim podacima nego to bi se mogli komotno nositi opisani sistemi: prostorne baze podataka, inenjerski podaci ( ukljuujui odlagalita softverskog inenjerstva ), multimedijski podaci. Neke od tih ideja prihvatili su komercijalisti, koji su kao posledicu integrisali nove osobine u svoje proizvode. U 2000-im pomodno podruje za inovacije postale su XML baze podataka. XML baze podataka pokuavaju ukoniti tradicionalnu podelu izmeu dokumenata i podataka, doputajui svim organizacijskim informacijskim resursima da se dre na jednom mestu bez obzira da li su visoko strukturirani ili ne.
PRETEA BAZA - Klasina organizacija datoteka IS je sainjavao skup nezavisnih aplikacija Svaka aplikacija - sopstvene datoteke Skladite podataka - skup datoteka Podaci o istom entitetu u razliitim datotekama Vremenom, takav IS dolazi u kontradikciju sa samim sobom
RADNI NALOG
PRATE]A DOKUMENT.
OBRA^UNSKI LIST
OTPREMNICA
LANSIRANJE PROIZVODNJE
PRODAJA
PROIZVODI
RADNA MESTA
TEHN. POSTUPAK
RADNA LISTA
RADNICI
KUPCI
FINALNI PROIZVODI
Sistemski dijagram" jednog skupa "aplikacija" u nekom informacionom sistemu. Svaka aplikacija je razvijana posebno Koristi svoje "privatne" datoteke sa fizikom strukturom podataka pogodnom za tu aplikaciju.
Redundansa podataka, odnosno viestruko pamenje istih podataka je neminovno. Na primer, isti podaci o proizvodima se, u nekoj proizvodnoj radnoj organizaciji pamte i nekoliko desetina puta, ili isti podaci o graanima u nekom komunalnom informacionom sistemu i stotinu puta. Viestruko skladitenje istih podataka dovodi do nepremostivih problema pri njihovom auriranju. Kada se neki podatak promeni, to se mora uiniti na svim mestima na kojima se on uva. To, ne samo da znaajno poveava trokove obrade podataka, nego je organizaciono praktino neizvodljivo, pa se, u raznim izvetajima, pojavljuju razliite verzije istog podatka.
Zavisnost programa od organizacije podataka. Programi su zavisni i od logike i od fizike strukture podataka. Fizika struktura podataka definie nain memorisanja podataka na spoljnim memorijama. Logika struktura je struktura podataka koja je predstavljena programeru. U klasinim datotekama razlika fizike i logike strukture podataka je mala. Zavisnost programa od logike strukture se ogleda u tome to program zavisi, na primer, od naziva i redosleda polja u zapisu, to ubacivanje novog polja u zapis ili bilo kakvo drugo restruktuiranje zapisa, koje ne menja sadraj podataka koje program koristi, ipak zahteva i izmenu samog programa. Fizika zavisnost se ogleda u tome to program zavisi od izabrane fizike organizacije datoteke i izabrane metode pristupa, naina sortiranja i slino.
U osnovi i logika i fizika organizacija podataka su prilagoene konkretnom programu. Novi zahtevi za informacijama, iz podataka koji ve postoje u datotekama, mogli bi zahtevati izmenu fizike i logike strukture podataka, a to bi zahtevalo izmene u ranije razvijenim programima. Umesto toga, obino se za novi program stvara nova datoteka, a to dalje poveava redundansu podataka.
Niska produktivnost u razvoju informacionog sistema (IS). Struktuiranje podataka u nezavisan skup datoteka je jedan od uzroka veoma niske produktivnosti u razvoju IS. Na primer, ak i kada postoje svi podaci koji se u nekoj aplikaciji zahtevaju, ali se oni nalaze u razliitim datotekama, na raznim medijumima, sa razliitim fizikim organizacijama, zadovoljenje i nekog jednostavnog informacionog zahteva iziskuje znaajne programerske napore. Nad strukturom podataka predstavljenom velikim brojem nezavisnih datoteka veoma je teko razviti softverske alate za brz i visoko produktivan razvoj aplikacija i za neposrednu komunikaciju korisnika sa sistemom.
Zapravo se radi o odsustvu bilo kakve organizacije. Zapise datoteke reamo u onoliko blokova koliko je potrebno. Blokovi koji ine datoteku mogu biti povezani u vezanu listu (svaki blok sadri adresu idueg bloka) ili moe postojati tablica adresa svih blokova.
Jednostavna datoteka
Traenje zapisa sa zadanom vrednou kljua zahteva sekvencijalno itanje cele datoteke (ili bar pola datoteke u proeku), sve dok ne naemo na traeni zapis. Ako je datoteka velika, moramo uitati mnogo blokova, pa pristup traje dugo. Da bi ubacili novi zapis, stavljamo ga na prvo slobodno mesto u prvom nepopunjenom bloku, ili prikljuujemo novi blok ukoliko su svi postojei blokovi popunjeni.
Baze otvorenog Komercijalne baze koda podataka MySQL PostgreSQL Cloudscape Firebird HSQLDB Ingres MaxDB MonetDB SQLite tdbengine Oracle IBM DB2 Informix InterBase Progress Microsoft SQL Server DBase Foxpro InterBase
Do nedavno su se velike baze podataka mogle pokretati samo na mainframe kompjuterima. Do kraja 80-tih i poetka 90-tih godina 20. veka obrada podataka na mejnfrejm kompjuterima je bio jedini izbor za organizacije kojima je bio potrebano obimno procesiranje podataka kao i podrka za veliki broj korisnika. Mejnfrejmovi su bili u upotrebi preko 20 godina a glavni razlog za njihovu dugovenost je bila njihova pouzdanost. Sposobnost mejnfrejmova da istovremeno podravaju veliki broj korisnika dok istovremeno vri brzo prikupljanje informacija i njihovo prosleivanje doprineo je njegovoj prihvaenosti u oblasti velikih firmi i korporacija. Obrada podataka na mejnfrejmovima je oznaivala da se sva procesiranja obavljaju na glavnom raunaru mejnfrejmu. Mejnfrejm je zaduen za: - pokretanje sistema za upravljanje relacionim bazama podataka (RDBMS), -da upravlja aplikacijama koje pristupaju sistemu za upravljanje relacionom bazom podataka i -da odrava komunikacije izmeu mejnfrejma i udaljenih terminala. Inteligentni terminal je kao to mu i samo ime implicira bio ogranien na prikazivanje teksta i prihvatanje podataka koje je korisnik na njemu unosio.
Najvea mana obrade podataka na mejnfrejmovima je bila to to su bili veoma skupi. Kupovina i odravanje mejnfrejmova je mogla da kota i po nekoliko miliona dolara. Mejnfrejmovi su skupi za korienje jer jo zahtevaju posebne uslove instalacije ( posebne prostorije sa posebnim napajenjem i kontrolom temperature ) , zahtevao je ekstenzivnu podrku i nisu koristili uobiajene kompjuterske komponente. Mejnfrejmovi su , umesto korienja standardnih kompjuterskih komponenata, koristili hardver i softver koji je proizvodio sam proizvoa kompjutera. Ovakav pristup proizvoaa je ograniavao kupca kompjutera na relativno ogranien skup dodatnog hardvera kao i softverskih reenja.
PC/File server je postao popularan krajem 80-tih godina 20 veka kada su poslovni korisnici poeli da se okreu PC raunarima kao alternativu mejnfrejmovima. Korisnicima se dopalo to to su sada mogli sami i sa lakoom da razvijaju svoje aplikacije kroz etvrtu generaciju programskih jezika ( 4GL ). Jeftin i lak za korienje softver kao npr. Lotus 1-2-3, dBASE i Word Perfect je omoguio zaposlenima i kunim korisnicima da kreiraju dokumenta i upotrebljavaju baze podataka brzo i precizno. Obrada podataka PC/File serverom je podrazumevala pokretanje i aplikacije RDBMS-a na samom PC raunaru. Druga veoma vana tehnologija je bila lokalna mrea (LAN) i njena integracija u firmama irom sveta. Radilo se dakle o relacionoj bazi podataka u heterogenom mrenom okruenju. Iako su korisnici bili naviknuti na terminalske konekcije ka firminom mainframe-u , sada su fajlovi koji su se obraivali mogli da sauvaju na lokalnom kompjuteru i da im se pristupa sa nekog drugog kompjutera prikljuenog na istu mreu. Na PC-u se izvravalo svo RDBMS procesiranje dok se fajl server koristio kao centralizovana oblast za skladitenje podataka. Nakon to je Apple Macintosh uveo grafiki interfejs (Graphic User Interface GUI) kompjuteri su pored jeftinosti i solidne procesorske snage postali i laki za korienje.
Glavna negativna strana PC/File server procesiranja je to se svo procesiranje baze podataka izvravalo na PC raunaru. Kada bi se poslao upit fajl serveru on ne bi procesirao upit ve bi vratio sve podatke koji su potrebni za obraivanje tog upita. To je dovodilo do umanjenja performansi i drastinom poveanju zaguenja mree. Tokom ovog vremena brzih promena i napretka pojavio se novi tip sistema. Nazvan je Client/Server i moe se rei da je on odgovor na negativne strane obrade podataka na mejnfrejmovima i PC/File serverima. Kombinovanjem obraivake snage mejnfrejma sa fleksibilnou i cenom PC-a, obrada podataka metodom Client/Server je spojila sve prednosti prethodnih tehnologija.
Client/Server obrada se moe definisati kao logika podela korisnikog interfejsa i upravljanje bazom podataka. Client kompjuter, esto nazivan i radna stanica, kontrolie korisniki interfejs. Na njemu se korisniku predstavlja informacija u slici i tekstu i na njemu takoe korisnik unosi podatke. Serverski kompjuter se stara o upravljanju bazom podataka. Na njemu se vri manipulacija podacima, smetaju svi podaci, i sa njega se prosleuju podtrebni podaci odreenom korisniku. Sve obrade nad podacima se obavljaju na ovom raunaru.
Client/Server metoda obrade informacija je postala popularna zbog : Pristupnost obrada podataka ovom metodom je drastino jeftinija od metode mejnfrejma. Client/Server je baziran na otvorenoj arhitekturi to omoguava da vie proizvoaa proizvodi konkurentne proizvode i time da snizi cenu za razliku od mejnfrejmova ije je elemente proizvodio proizvoa samog mejnfrejma i time diktirao cene. Client/Server je uglavnom baziran na PC raunarima pa je i drastinan pad cena raunara doveo do dalje pristupanosti celokupnog sistema. Brzina razdvajanje obrade informacija izmeu klijenta i servera smanjila je zaguenje mree to je dovelo da klijent/server ima performanse jednog mejnfrejma. Prilagodljivost klijent/server arhitektura je daleko otvorenija od mejnfrejm arhitekture. To je omoguilo stvaranje jednog sistema kod koga je softver nabavljen od jednog proizvoaa sistema za upravljanje bazama podataka, hardver od drugog proizvoaa a softver za razvoj aplikacija od treeg proizvoaa. Tako sada kupci mogu da odaberu komponente koje im najvie odgovaraju. Pojednostavljen pristup podacima Klijent/Server poveava dostupnost podataka masama korisnika. Sa njim pristup podacima nije ogranien na one koje razumeju proceduralno programiranje. Naprotiv pristup podacima je obezbeen softverskim paketima koji prikrivaju svu kompleksnost pristupa podacima. Softver za obradu teksta, rad sa tabelama su samo primeri uobiajenih softverskih paketa koji omoguavaju lak pristup podacima.
Oracle korporacija je nesumnjivo lider u softveru za baze podataka u oblasti velikih firmi i preduzea. Oracle-ove baze su u irokoj upotrebi u razliitim tipovima aplikacija i veoma su popularne zbog malog broja mana : Svestranost Oracle u ponudi ima puno proizvoda za e-commerce koji se integrie sa njihovim bazama podataka to pomae u procesu dizajniranja, pravljenja i korienja aplikacija za baze podataka. Stabilnost Oracle-ovi serveri veoma retko zataje to je veoma bitno onima kojima su baze podataka potrebne 24h dnevno. GUI Oracle nudi veliki broj GUI alata za upravljanje bazama podataka na taj nain olakavajui rad. Bezbednost novije verzije sada imaju toolkit za obezbeivanje sigurnosti tako to obezbeuje enkripciju osetljivih podataka unutar baze podataka. Vie platformska podrka populane verzije Oracle-a ukljuuju i verzije za MS Windows kao i za sve popularniji Linux.
Oracle
Oracle
Mane: Potencijalno visoki trokovi posedovanja. (Total Cost of Ownership TCO) Oracle-ovi serveri baza podataka zahtevaju najmodernije hardverske resurse ( najbitnije procesor i RAM memorija ) da bi radili na prihvatljivom nivou.
Poput Oracle-a, Microsoft je kljuni igra u oblasti baza podataka, mada konstantno mora da pristie druge pogotovu u oblasti Interneta i e-komerca. Iako je Microsoft priznati lider u oblasti desktop operativnih sistema tu prednosti nije preneo na oblast elektronske trgovine. Prednosti MS SQL su : Visoka stabilnost. MS SQL Server nudi stabilnost koja je dizajnirana da bude u skladu sa Windows OS. Lakoa korienja. MS SQL Server nudi prepoznatljiv GUI koji se koristi i u Windows operativnim sistemima tako da je vreme uenja korienja svedena na minimun. Saglasnost sa ANSI SQL-92. Potpuno je kompatibilan sa ANSI SQL-92 standardom i ak ga u nekim stvarima poboljava.
Mane : Zahvaljujui brojnim sigurnosnim propustima na nivou operativnog sistema mnogi ozbiljniji korisnici izbegavavaju da ulau novac u MS SQL Server za potrebe firmi. Dodatno, primoravanje za restartom host raunara da bi se update-ovala baza podataka ili softver odbija mnoge potencijalne korisnike kojima je potrebna 24-asovna dostupnost bazi podataka. Viskoka cena posedovanja (TCO). Poput operativnih sistema na kojima radi MS SQL Server je veoma hardverski zahtevan. Potrebno mu je mnogo procesorske snage kao i velika koliina slobodne RAM memorije. Ovaj aspekt najvie pogaa mala preduzea, koja pored licenciranja MS SQL Servera od par hiljada dolara, raunajui trokove za nabavku samog operativnog sistema kao i dodatnog softvera i hardvera da bi pokrenuli bazu podataka, imaju velike izdatke. Vlasnika svojina. Poto MS SQL Server nije multi platformski, neki potencijalni kupci se usteu od kupovine poto onda zavise samo od jednog dobavljaa. Ako se dobavlja odlui da znaajno povisi cene dodataka ili ispravki softvera morali bi da uu u nepredviene trokove.
Novopridolica u polju RDBMS-a, PostgreSQL se brzo uzdigao. Dosta je stabilan za tako nov proizvod ali je jo dosta rada pred njim da bi mogao u znaajnijoj meri da konkurie velikim igraima. Prednosti :
Saglasnost sa SQL-92. PostgreSQL se najvie pridrava SQL-92 standarda. Multiplatformska dostupnost. Distribucije PostgreSQL-a su dostupne za najkorienije kompjuterske platforme ukljuujui Windows 2000/NT i MacOS X. Kao Open Source paket stie sa mnogim verzijama Linux operativnog sistema. Niski trokovi posedovanja (TCO). Softver PostgreSQL baza-server je dostupan za minimalne izdatke. Softver je BESPLATAN to je potencijalno prednost u odnosu na Oracle ili Microsoft SQL Server.
Mane : Relativno ogranieno prihvatanje. Iako PostgreSQL podrava veoma vane funkcije velikih RDBMS proizvoda naroito transakcije, on je sporiji u odnosu na konkurenciju ( posebno u odnosu na Oracle ). To je moda i jedini razlog to PostgreSQL nije prihvaen od mnogih velikih firmi.
IBM-ova Informix serija servera je usmerena ka velikim aplikacijama za baze podataka. Informix je popularan RDBMS jer iza njega stoji jedan gigant kao to je IBM to se i odraava na njegove karakteristike. Prednosti : Raznovrsna proizvodna linija. Informix u ponudi ima irok spektar servera u zavisnosti od potreba korisnika. Poev od on-line transakcija do paralenlnog procesiranja i dr. Informix proizvodi optimizovane servere za gotovo sve poznate potrebe. Multiplatformska dostupnost. Informix radi na mnotvu platforma i takoe nudi alat koji pomae pri razvijanju aplikacija. Dokumentacija i podrka. Za razliku od najveih konkurenata Oracle-a i Microsoft-a IBM na svom Web sajtu nudi dokumentaciju za Informix koja je na zavidnom nivou.
Mane : Viskoka cena posedovanja. Kao i kod najveih konkurenata potrebno je imati veoma jak hardver koji bi pokretao server kako su to zamislili programeri IBM-a to je esto preveliko optereenje za male firme pa ga one iz tog razloga najee izbegavaju.
Iako je najmlai od gore pomenutih SQL servera MySQL daje najbolje iz sveta baza podataka. Dostupan je za ubedljivo najvie raunarskih platformi. Trenutno je dostupan za Linux, Windows 95/98/2000/NT, Solaris, FreeBSD, MacOS X, HP-UX, AIX, SCO, SCI Irix, Dec OSF i BSDi. Linux verzije rade na mnotvu arhitektura kao to su Intel libc6, Aplha, IA64, SPARC i S/390. Dostupnost na svim ovim platformama samo je jo vie doprinela njegovoj popularnosti i primeni. Pored obinog MySQL servera postoji i poboljana verzija MySQL-Max. MySQL-Max pored servera sadri i tabele za zatitu transakcija kao to je Inno DB ili Berkeley DB. MySQL je dostupan kao binarni fajl ili kao source kod. Ako vam je potrebno da svojoj aplikaciji dodate MySQL osobine dovoljno je uzeti source kod MySQL-a i modifikovati ga za vae potrebe. MySQL je pod zatitom GNU General Public Licence (GPL) i GNU Lesser General Public Licence (LGPL) i u veini sluajeva je besplatan. MySQL takoe ima puno interfejsa za programiranje aplikacije ( Application Programming Interface API ) koji programeru dozvoljavaju da pristupa i oblikuje bazu podataka. API-i su dostupni za C, C++, Tcl, Python, PHP i Perl. Neki od najpopularnijih za programiranje Web interfejsa su PHP i Perl.
Test brzine
ARHITEKTURA
Arhitektura najveeg broja sistema baza podataka odgovara predlogu ANSI/SPARC studijske grupe Amerikog nacionalnog instituta za standarde, i poznata je kao ANSI arhitektura. Ova arhitektura predstavljena je hijerarhijom apstrakcija, pri emu svaki nivo hijerarhije ukljuuje specifini nain predstavljanja, reprezentaciju, objekata, odnosa medu objektima i operacija nad objektima. Hijerarhijska arhitektura omoguuje prirodnu dekompoziciju i efikasni razvoj sistema za upravljanje bazama podataka.
ARHITEKTURA
Neophodna su neka intelektualna sredstva (alati) i to: (1) Model podataka kao intelektualno sredstvo za prikazivanje objekata sistema, njihovih atributa i njihovih meusobnih veza ( statikih arakteristika sistema ) preko logike strukture baze podataka. (2) Model procesa kao intelektualno sredstvo za opisivanje dinamike sistema, dejstva ulaza na stanje sistema i izlazne transformacije, preko programa nad definisanim modelom podataka.
Podatak je neka kodirana injenica iz realnog sistema, on je nosilac informacije. Informacija je protumaeni ( interpretirani ) podatak.
(1) Struktura modela, odnosno skup koncepata za opis objekata sistema, njihovih atributa i njihovih meusobnih veza. (2) Ogranienja - semantika ogranienja na vrednosti podataka koja se ne mogu predstaviti samom strukturom modela, a koja u svakom trenutku moraju biti zadovoljena. Ova ogranienja se obino nazivaju pravilima integriteta modela podataka. (3) Operacije nad konceptima strukture, pod definisanim ogranienjima, preko kojih je mogue opisati dinamiku sistema u modelima procesa.
Modeli podataka
Na osnovu definicije, oigledno je da svaki model podataka treba da zadovolji dva bitna kriterijuma: -Da poseduje koncepte pogodne za modeliranje realnih sistema. -Da se njegovi koncepti, struktura, ogranienja i operacije mogu jednostavno implementirati na raunaru.
Modeli podataka
Modeli podataka su se pojavili pedesetih godina prolog veka a mogu se klasifikovati na: modele druge generacije -hijerarhijski, mreni, relacioni i modele tree generacije -objektni model podataka. modele prve generacije -programski jezici,
Modeli podataka
Modeli podataka klasifikovani u generacije redom ine:
Prvu generaciju ine konvencionalni programski jezici, koji se takoe mogu tretirati kao modeli podataka. Koncepti za opisivanje strukture u njima su tipovi podataka kojima raspolau ( prosti i agregirani tipovi kao to su rekord, vektor, skup, koji se meusobno ne mogu eksplicitno povezivati na eljene naine, pa se zato model podataka u njima predstavlja kao skup nepovezanih datoteka ). Ogranienja nad ovim tipovima obino nije mogue direktno postaviti, a same operacije nisu dovoljno mone. Oni nisu dovoljno pogodni za modeliranje realnog sistema ( zato je programiranje u njima teko ), ali se model realnog sistema opisan pomou njih moe direktno implementirati na raunaru.
Modeli podataka
Drugu generaciju ine tri klasina modela baze podataka, hijerarhijski, mreni i relacioni model. Ovi modeli poseduju semantiki bogatije koncepte za opis strukture ( mogue je definisati nain povezivanja zapisa - rekorda, odnosno bazu podataka kao skup meusobno povezanih podataka ) i znatno monije ( makro ) operacije. Zbog toga su pogodniji za opis realnog sistema, a postoje i komercijalno raspoloivi softveri, SUBP, za njihovu direktnu implementaciju na raunaru. Treu generaciju ine tzv. semantiki bogati modeli podataka i objektni modeli podataka ( Model objekt iveze, Semantic Data Model ( SDM ), Proireni relacioni model, Semantike mree i drugi ), koji poseduju semantiki bogate koncepte za opis realnog sistema, ali za njih jo uvek ne postoje softveri preko kojih bi se direktno mogli implementirati na raunaru.
Modeli podataka
Imajui u vidu karakteristike generacije modela podataka, zadovoljavajui metodoloki pristup projektovanju baza podataka bi mogao da bude sledei:
(1) Koristei neki model Tree generacije, formirati semantiki bogat model realnog sistema koji se analizira. (2) Prevesti dobijeni model u neki od modela Prve ili Druge generacije, u zavisnosti od softvera kojim se raspolae i drugih inioca i na taj nain implementirati bazu podataka na raunaru. Postupak prevoenja sa semantiki bogatijeg, na semantiki siromaniji model moe se uvek formalizovati, pa samim tim i automatizovati.
Modeli podataka
Model podataka Model podataka predstavlja sredstvo za izgradnju modela realnog sistema. Model podataka obuhvata reprezentaciju nekih objekata iz realnog sveta i osnosa izmeu ovih objekata. Cilj je da se obezbedi informacija o statikim i dinamikim osobinama realnog sistema. Sastoji se od tri komponente:
Strukturalna komponenta modela podataka definie strukture nad skupom atributa i nad skupom podataka. Sadri skup primitivnih koncepata i skup pravila za izgradnju koncepta. Integritetna komponenta modela podataka definie ogranienja nad vrednostima atributa, veze izmeu podataka i medusobnu uslovljenost podataka. Operacijska komponenta modela podataka definie operacije nad strukturama podataka i modelira dinamike osobine realnog sistema.
Modeli podataka
Kategorije modela podataka
Konceptualni model podataka nudi koncepte, koji odgovaraju krajnjem korisnlku. To su entiteti, atributi i veze. Fiziki model podataka nudi koncepte za opis detalja o fizikom nainu memorisanja podataka u raunaru. Sadri: formate slogova, ureenost slogova i puteve pristupa. Implementacioni model podataka nudi koncepte koji odgovaraju krajnjem korisniku, ali nisu daleko od naina na koji su podaci organizovani u raunaru.
Modeli podataka
Hijerarhijski model baze podataka:
Hijerarhijski model baze podataka pojavio se pedesetih godina prolog veka. Premda nam na prvi pogled hijerarhijski pristup problemu izgleda i deluje kao prihvatljiv, razumljiv i jednostavan ( u svakodnevnom ivotu naviknuti smo na hijerarhijske strukture, od autoriteta roditelja u porodici, preko firme u kojoj radimo, vojske u kojoj smo sluili vojni rok, preduzea u kome smo zaposleni, crkve ili neke druge institucije kojoj pripadamo ), potrebno je naglasiti da je sa stanovita optimalnog projektovanja i manipulacije podacima, re o nepovoljnom modelu. Loa strana hijerarhijskog modela je u prvom redu nedostatak egzaktne matematike teorije koja bi omoguila njegovu punu implementaciju na raunaru.
Modeli podataka
Primer1
Pretpostavimo da je u nekoj firmi potrebno projektovati informacioni sistem ( bazu podataka ) internog kolovanja za slubenike. Preduzee dri itav niz razliitih kurseva na razliitim lokacijama u gradu. Neki od kurseva se nastavljaju jedan na drugi, pa je uspeno zavren prethodni kurs, uslov za upis narednog. Odgovarajua baza podataka, nazovimo je DOKVALIFIKACIJA, treba za svaki kurs da sadri ove informacije: broj kursa, naziv kursa, mesto i vreme odravanja, broj kursa koji je uslov za uspeno pohaanje sledeeg, detalje o predavaima (ime, prezime, adresa,.. ), detalje o polaznicima (ime, prezime, ocena, itd ). Struktura hijerarhijskog modela esto se predstavlja grafiki. Sa skice je vidljivo da hijerarhijska struktura ima svoj naziv, svoju osnovu ili koren (DOKVALIFIKACIJA), koja se u zavisnosti od strukture dalje grana "prema dole".
Modeli podataka
U konkretnom sluaju osnova, DOKVALIFIKACIJA, ima svoje dve podtabele koje je slede. To su: USLOV i KURSEVI pri emu tabela USLOV mora biti logiki povezana sa tabelom KURSEVI ( mora se znati ta je preduslov za pohaanje nekog narednog kursa ). Tabela USLOV nema svojih podtabela, dok tabela KURSEVI ima dve, dva "naslednika": dve podtabele i to: NASTAVNICI i POLAZNICI
Modeli podataka
Precizno definisana meusobna povezanost atributa pojedinih tabela definie uspostavljenu hijerarhiju kao to je to sluaj u poslednjem primeru: KURSEVI -POLAZNICI, KURSEVI- NASTAVNICI, ili DOKVALlFIKACIJA -USLOV
Hijererhijskim modelom sve veze meu tabelama, odnosno meu atributima pojedinih tabela, moraju biti precizno definisane. Ima sluajeva za koje je u hijerarhijskom modelu teko, a nekada i nemogue, nai reenje. To se posebno odnosi na sluajeve kada jedan roditelj moe imati vie naslednika, ali i svaki naslednik moe imati vie roditelja".
Modeli podataka
Mreni model
Mreni model informacionog sistema nastao je kao proirenje hijerarhijskog. Osnovna razlika, nazovimo to poboljanje, u odnosu na hijerarhijski model, lei u injenici da se dozvolilo da "naslednik" ima vie "roditelja", to znai da ovakav model prihvata i veze tipa M:N. Na taj nain veze meu slogovima pojedinih tabela, grafiki interpretirane, lie na paukovu mreu odakle je model i dobio ime.
Modeli podataka
Relacioni model
Relacioni model je danas najpopularniji model baza podataka i to zahvaljujui pre svega sledeim osobinama:
1. 2. 3.
struktura modela je veoma jednostavna, baza podataka predstavlja skup tabela, i mogua je formalno-matematika interpretacija tabela.
Kao to mu i samo ime govori, ovaj model se zasniva na tabelama i relacijama meu njima. Kako se i relacija (veza) izmeu tabela moe u relacionom modelu opet prikazati kao tabela, u relacionom modelu sve je definisano samo tabelama. Obzirom da se podaci u informacionom sistemu menjaju u vremenu ( prate proces ) relaciona baza podataka se sastoji od vremenski promenljivih tabela ( relacija ) koje mogu biti bazne i izvedene.
Modeli podataka
Bazne tabele se jo nazivaju i fizike tabele, jer one postoje na memorijskom medijumu raunara -disku, a izvedene relacije se mogu dobiti iz baznih relacija operacijama koje se definiu nad baznim tabelama.
Izvedene tabele nastaju kao rezultat neke operacije nad fizikim tabelama i postoje samo u operativnoj memoriji raunara ( ali ne i na disku ) jedno izvesno vreme -dok su nam potrebne, pa se stoga nazivaju i virtualne. Ako virtualna tabela ima i svoje ime naziva se pogled ( view ) i formalno se moe koristiti kao fizika tabela uz napomenu da se u njoj ne nalaze memorisani podaci nego se koriste originalni podaci iz baznih tabela. Shodno tome, podaci se preko pogleda ne mogu ni menjati, sem ako je to pogled nad podacima iz samo jedne tabele i uz jo neka ogranienja. Na ovaj nain se poveava pouzdanost podataka ( izmena podataka je strogo kontrolisana ) i bitno se smanjuje redundanca podataka. Redundanca podataka je viestruko memorisanje istih podataka na vie mesta u informacionom sistemu.
KODOVA PRAVILA
Osnovno ili nulto pravilo koje predstavlja "conditio sine qua non" u relacionim bazama podataka glasi: Svaki sistem za upravljanje bazama podataka, koji se smatra, ili koji jeste, relacioni, mora imati mogunost upravljanja bazom podataka na relacioni nain i relacionim metodama.
KODOVA PRAVILA
1. Predstavljanje informacija Sve informacije u relacionoj bazi podataka moraju logiki biti predstavljene na isti nain: vrednostima podataka u tabelama - relacijama. 2. Logika dostupnost podacima Svaki podatak mora imati takozvanu "atomarnu" vrednost, koja logiki mora biti dostupna korisniku uz pomo: -imena relacije u kojoj se nalazi, -vrednosti primarnog kljua i imena atributa u toj relaciji. 3. Mogunost prikazivanja nepostojee informacije Relaciona baza podataka mora podravati koncept nultog podatka, odnosno nulte vrednosti ( Null vrednost ). Pod pojmom nultog podatka podrazumeva se vrednost nekog atributa koja u da-tom trenutku nije poznata. To nije vrednost koja je predstavljena nulom ili nizom nula, nizom praznih ( blank ) mesta, ili nizom bilo kojih drugih znakova. To je jednostavno, trenutno nepoznata vrednost podataka, i predstavlja specifikum i najkontroverzniji aspekt relacionog modela baze podataka. -Tako atribut telefon u relaciji slubenik ima Null vrednost u trenutku primanja nekog slubenika u radni odnos, ukoliko taj slubenik u trenutku zasnivanja radnog odnosa nema svoj telefonski broj.
KODOVA PRAVILA
4. Dinamiki katalog Relaciona baza podataka mora biti tako prezentirana da autorizovani korisnici mogu primeniti neki od "relacionih jezika" na sve podatke u njoj. Pod ovim se podrazumevaju i sistemski katalozi, zatim relacije koje su u toku rada za stalno, ili na ogranieni vremenski rok, programski kreirane (tzv. dinamiki katalozi), a koje sadre neke nove informacije. 5. Softverski paket za manipulaciju bazom podataka Mnogi softverski paketi omoguavaju danas manipulisanje podacima unutar baze podataka, i oni su manje ili vie prilagoeni korisniku -manipulatoru. Svaki od njih sadri programski jezik koji pomou precizno definisane sintakse, i na korisniku blizak nain, omoguava:
-definisanje tabela, -definisanje atributa, unoenje podataka, -definisanje proizvoljnog "pogleda" na bazu podataka, -manipulaciju podacima, -postavljanje ogranienja korisnicima, autorizaciju korisnika,te -upravljanje proizvoljnim transakcijama.
KODOVA PRAVILA
6. Nezavisnost integriteta baze Nijedno ogranienje integriteta podataka (sigurnosti ouvanja podataka) ne sme se pri organizaciji logikog modela relacione baze podataka nai u aplikativnom delu programa dostupnom irem broju korisnika, nego iskljuivo u delovima koji su pod kontrolom administratora baze. Drugim reima, pravila integriteta se definiu u okviru baze podataka. Ogranienja u relacionom modelu: u relacionom modelu je potrebno ograniiti vrednosti nekih atributa u pojedinim relacijama. Sam domen atributa ve predstavlja odreeno ogranienje (starost, cena, itd...). Postoje tzv. opta ogranienja koja vae za svaki relacioni model i koja se nazivaju pravilima integriteta relacionog modela. -Integritet entiteta: Nijedan atribut koji je primarni klju ili deo primarnog kljua neke bazne relacije ne moe da uzme null vrednost. -Referencijalni intergritet: Skup vrednosti spoljnjeg kljua relacije R1 mora biti podskup skupa vrednosti primarnog kljua relacije R2 sa kojom se povezuje relacija R1. Relacije R1 i R2 ne moraju biti razliite.
KODOVA PRAVILA
Ostala pravila koja definiu kvalitet i koja mora da ispuni neki sistem za upravljanje bazama podataka da bi se smatrao relacionim:
7. Jezikom tree generacije se ne mogu zaobii pravila integriteta definisana relacionim jezikom; 8. Mogunost kreiranja pogleda i definisanja operacija nad njima; 9. Nad pogledima se mogu izvravati i operacije odravanja baze podataka; 10. Aplikacioni programi ostaju nepromenjeni ako se promene bazne tabele (sem u sluaju promene strukture tabela); 11. Aplikacioni programi ostaju nepromenjeni ako se promeni fizika organizacija baze ili fiziki metod pristupa; 12. Sve navedene karakteristike su nezavisne od distribucije baze podataka.
koristi jezik za definiciju podataka za definiciju opte logike strukture baze podataka definie i preslikavanja konceptualnog u interni i konceptualnog u eksterni nivo
Promenom fizike strukture baze: nije neophodno menjati optu logiku strukturu (emu), ve samo preslikavanje eme u interni nivo Promenom strukture eme baze: podeme ostaju nepromenjene, menja se samo preslikavanje eme u podeme
Razvoj konceptualnog nivoa, odnosno upravljanje podacima u sistemu. Izbor fizike organizacije baze podataka i metoda pristupa. Definicija i realizacija preslikavanja konceptualni interni i konceptualni - eksterni nivo, odnosno definisanje ili pomo u definisanju podema. Obezbeenje sigurnosti i integriteta baze podataka. Definisanje strategija oporavka baze podataka posle moguih oteenja. Praenje performansi sistema.
Programer razvija svoju aplikaciju nad njemu pogodnom logikom strukturom koja predstavlja njegov "pogled" na celokupnu bazu podataka. On za to koristi neki konvencionalni programski jezik (COBOL, PL/I, C, C++, UML i drugi), koji se naziva "jezik domain" (Host Language), u koga se ugrauju naredbe DDL-a ( Data Definition Language ) i naredbe jezika za rukovanje podacima u bazi podataka (Data Manipulation Language - DML). Za korisnike neprofesionalce obino postoji i neki neproceduralni upitni jezik (Query Language).
Mnogi usluni programi za obavljanje ovih funkcija stoje administratoru baze podataka na raspoloenju: Rutine za punjenje baze podataka (BP), "Dump/restore" rutine, Rutine za fiziku reorganizaciju BP, Rutine za statistike korienja podataka. Meutim, njegov osnovni alat je renik ( katalog ) baze podataka ( Data Dictionary ). Renik baze padataka je baza podataka o bazi podataka ( meta baza podataka ) i u njemu su opisani svi objekti sistema ( podaci, fizike i logike strukture, prava korienja i slino ). Renik podataka se puni prilikom definisanja odgovarajuih objekata u sistemu.
Konkurentna obrada: Poto se podatak pamti samo jednom, vie programa istovremeno ( konkurentno ) zahteva pristup istim podacima. SUBP mora obezbediti da se konfliktni zahtevi i neeljene intreferencije programa do kojih u ovoj situaciji moe da doe, uspeno razree. Zatita podataka: Zatita podataka se obino posmatra sa dva aspekta, ouvanja integriteta baze podataka i sigurnost podataka. Termin integritet baze podataka se koristi da oznai tanost, korektnost podataka u bazi. Integritet baze podataka moe da narui neka greka u programu ili neki sistemski otkaz. Sigurnost baze podataka se odnosi na zatitu baze od neovlaenog korienja i auriranja podataka. Problem je izraen kod dinamikih baza podataka na Internetu. I jedan i drugi problem, u uslovima integrisane baze podataka, postaje oigledno mnogo sloeniji, nego u uslovima konvencionalne obrade, gde svaka aplikacija ima "privatnu" datoteku u kojoj se podaci jednostavno tite, a naruavanje integriteta ima samo lokalne posledice.
Oporavak baze podataka: Ako se u bazi podataka svaki podatak uva samo na jednom mestu, ako se poslovanje celog sistema zasniva na ovakvoj bazi podataka, tada neki otkazi sistema mogu imati katastrofalne posledice. Zbog toga je neophodno da SUBP, preko periodinog kopiranja baze podataka na "arhivske memorije" i pamenja transakcija koje su se izmeu dva kopiranja dogodile, omogui efikasan oporavak baze podataka posle nekog otkaza. Zbog sloenosti navedenih osnovnih i pomonih funkcija SUBP su sloeni i veoma skupi softverski sistemi. Meutim prednosti koje pruaju su takve da se i pored visoke cene gotovo svuda uvode.
baze od njene stvarne fizike grae. Znai, ako se fizika graa promeni (na primer, podaci se prepiu u druge datoteke na drugim diskovima), to nee zahtevati promene u postojeim aplikacijama.
definicija cele baze podataka od lokalne logike definicije za jednu aplikaciju. Znai, ako se logika definicija promeni (na primer uvede se novi zapis ili veza), to nee zahtevati promene u postojeim aplikacijama. Lokalna logika definicija obino se svodi na izdvajanje samo nekih elemenata iz globalne definicije, uz neke jednostavne transformacije tih elemenata.
konzistencija podataka, i to u situaciji kad postoje greke u aplikacijama, i konfliktne istrovremene aktivnosti korisnika.
uvanje integriteta. Nastoji se automatski sauvati korektnost i Mogunost oporavka posle kvara. Mora postojati pouzdana Zatita od neovlaenog korienja. Mora postojati
zatita baze u sluaju kvara hardvera ili greaka u radu sistemskog softvera.
mogunost da se korisnicima ogranie prava korienja baze, dakle da se svakom korisniku reguliu ovlaenja sta on sme a sta ne sme raditi sa podacima.
Zadovoljavajua brzina pristupa. Operacije sa podacima moraju se odvijati dovoljno brzo, u skladu sa potrebama odredine aplikacije. Na brzinu pristupa moe se uticati izborom pogodnih fizikih struktura podataka, i izborom pogodnih algoritama za pretraivanje. Mogunost podeavanja i kontrole. Velika baza zahteva stalnu brigu: praenje performansi, menjanje parametara u fizikoj grai, rutinsko snimanje rezervnih kopija podataka, regulisanje ovlaenja korisnika. Takoe, svrha baze se vremenom menja, pa povremeno treba podesiti i logiku strukturu. Ovakvi poslovi moraju se obavljati centralizovano. Odgovorna osoba za to zove se administrator baze podataka.
A. Osnovne - upravljanje redundancom - zajedniko korienje podataka - ograniavanje neautorizovanog pristupa - obezbeenje vie interfejsa - predstavljanje kompleksnih veza meu podacima - obezbeenje integriteta ogranienja -BACKUP i RECOVERY
B. Dopunske - mogunosti da se primene standardi - fleksibilnost - smanjenje vremena razvoja aplikacije - posedovanje aurnih informacija - uteda (ekonominost)
NEZAVISNOST PODATAKA
NEZAVISNOST PODATAKA je mogunost korienja podataka bez poznavanja detalja o reprezentaciji podataka. U konvencionalnoj obradi aplikacioni programer mora znati odgovor na sledea tri pitanja pre bilo kakve manipulacije nad podacima: Kakav je format podataka? Gde su podaci locirani? Kako se pristupa podacima? Odgovori na ova tri pitanja se ugrauju u aplikacioni program. Promena bilo koje od ovih stavki zahteva promenu aplikacionog programa. U bazi podataka korisniku je za korienje podataka dovoljno da zna njihov informacioni sadraj. Nema potrebe da zna gde su smeteni, kako su predstavljeni i kako se pristupa podacima. Zato nezavisnost podataka? Doputa izmene sadraja, lokacije, reprezentacije i organizacije baze podataka bez reprogramiranja aplikacionih programa koji koriste bazu podataka Doputa izmene hardvera i softvera sistema bez reprogramiranja aplikacija korisnika Doputa da se izste baze podataka podaci organizuju na drugaiji nain za svakog korisnika. Svaki korisnik ima sopstveni pogled na podatke. Pojednostavljuje razvoj aplikacionih program Nudi centralizovano upravljanje podacima, ime se obezbeuje sigurnost i integritet baze podataka.
Centralizovana baza podataka terminalski pristup Podrazumeva smetaj podataka na jednom mestu ( sredinjem raunaru) i terminalski pristup od strane korisnika. Ovakav pristup znai da se svi zahevi i obrade podataka vre na sredinjem raunaru, na kome su smeteni i podaci. Korisnik preko terminala, jedino unosi svoje zaheve, i dobija prikaz rezultata eljenih operacija. Ovakav nain organizacije baze postavlja velike zaheve na host raunaru, koji osim smetaja svih podataka, vri i sve operacije obrade podataka, njihovog formatiranja i prikaza. Zato host raunar mora imati vrlo veliku procesorsku snagu i visoke performanse.
a)
Mnogi korisnici za koje se rade baze podataka po svojoj prirodi su distribuirani na vie lokacija. Uzmimo primer mnogih multinacionalnih kompanija, koje imaju podrunice diljem sveta. Svaka podrunica u mestu u kojem se nalazi formira svoju lokalnu bazu podataka, a sve te baze zatim se povezuju u distribuiranu bazu podataka, koja objedinjava sve lokalne baze. Distribucijom baze podataka poveava se raspoloivost i pouzdanost sistema. U sluaju ispada bilo kog raunara u mrei, podaci na tom mestu postaju nedostupni korisnicima, ali su podaci na svim ostalim mjestima sauvani i dostupni. U distribuiranim sistemima se koristi tehnika repliciranja istih podataka na vie lokacija u mrei. Zbog obrade manjih baza podataka, brzina obrade na pojedinim mjstima je vea u odnosu na brzinu koju bi imao sistem koji obrauje veliku centralizovanu bazu.
b)
c)
Struktura DBMS
Struktura DBMS
DDL kompilator Obrauje definicije ema pripremljene na jeziku DDL i opise ovih ema smeta u katalog odakle ih mogu koristiti ostale komponente. Run - Time procesor baze podataka Rukuje pristupom bazi podataka u toku izvrenja programa. Izvrava operacije pretraivanja i auriranja nad bazom podataka. Za pristup disku koristi usluge sistema za upravljanje memorisanim podacima. Procesor upita Rukuje upitima visokog nivoa pri interaktivnom reimu rada. Obavlja leksiku i sintaksnu analizu upita i generie poziv run-time procesora baze podataka koji izvrava traenu operaciju. Predkompilator Izdvaja DML naredbe iz aplikativnog programa koji je pisan na nekom host programskom jeziku i alje u DML kompilator koji ih prevodi u objektni kod za pristup bazi podataka. Ostali deo programa se alje host kompilatoru. Objektni kodovi iz ovih kompilatora se mogu linkovati i formirati transakcije za potrebe parametarskih korisnika. Ove transakcije se mogu pozivati iz formi i menija. Katalog DBMS-a Sadri opis baze podataka koji obuhvata imena datoteka,elemenata podataka, detalje o nainu memorisanja svake datoteke, informacije o preslikavanju ema i ogranienja baze podataka.
korisnici
korisnici aplikacija aplikativni programi aplikativni programeri sistemski pozivi interaktivni korisnici upiti administrator baze podataka
ema baze podataka
DML prekompajler
procesor upita
DDL kompajler
SUBP
disk
datoteke podataka
renik podataka
DBMS obezbeuje poseban jezik za svaku kategoriju korisnika baze podataka. Korisnicima su na raspolaganju sledei jezici: Jezik za opis podataka (Data Description Language - DDL) Ako DBMS nema striktno odvojene nivoe, tada se DDL koristi za specificiranje konceptualne i interne eme. Ako su konceptualni i interni nivo strogo odvojeni, tada se DDL koristi samo za specificiranje konceptualne eme. DDL moe biti ugraen u neki programski jezik opte namene ili moe biti poseban jezik. U drugom sluaju DDL naredbe moraju imati takvu sintaksu da se mogu lako mainski identifikovati. DBMS ima DDL kompilator koji prevodi DDL naredbe i kompiliran opis ema memorie u katalogu baze podataka. Jezik za definisanje naina memorisanja podataka (Storage Definition Language -SDL) Ako su razdvojeni konceptualni i interni nivo, tada se SDL koristi za specificiranje interne eme. Preslikavanje iz konceptualne u internu emu moe biti definisano u jednom od ova dva jezika. Jezik za definisanje pogleda (View Definition Language - VDL) Ako DBMS ima striktno razdvojena sva tri nivoa, tada se VDL koristi za specificiranje eksternih ema i njihovo preslikavanje u konceptualnu emu. Jezik za rad sa podacima (Data Manipulation Language - DML). DML se koristi za pretraivanje, umetanje, brisanje i modifikaciju podataka u bazi podataka. Moe biti neproceduralni ili proceduralni jezik. Neproceduralni DML je jezik visokog nivoa koji moze biti interaktivni, kada se DML naredbe unose direktno sa terminala, ili ugraen u neki programski jezik (C,C++, PASCAL, COBOL, PL/I). Ako su DML naredbe ugraene u neki programski jezik, tada moraju biti tako projektovane da ih DML kompilator moe lako identifikovati. DML visokog nivoa koji se moe interaktivno koristiti naziva se uptini jezik. Proceduralni DML je jezik niskog nivoa koji mora biti ugraen u neki programski jezik opte namene. Takav jezik ita i upisuje u bazu podataka slog po slog. Programski jezik opte namene u koji su ugraene DML naredbe naziva se HOST jezik, a DML je tada njegov podjezik.
Intrfejsi DBMS-a
DBMS obezbeuje poseban interfejs za svaku kategoriju korisnika baze podataka. Na raspolaganju su sledei interfesi: - Interfejs baziran na meniju DBMS za spregu sa korisnikom nudi meni. Pri formulaciji zahteva sistem vodi korisnika pomou serije menija, tako da korisnik ne mora pamtiti komande i sintaksu upitnog jezika. - Interfejs baziran na formama Za spregu sa korisnikom DBMS nudi forme. Pri formulaciji zahteva korisnik treba samo da ispuni odreena polja u formi. Neki DBMS-i imaju jezik za specifikaciju forme, koji pomae programeru pri definisanju novih formi. - Grafiki interfejs DBMS za spregu sa korisnikom nudi grafiki prikaz. ema baze podataka se prikazuje u obliku dijagrama i korisnik formira upit manipuliui elementima ovog dijagrama. Za izbor objekata sa prikazane eme moe se koristiti mi ili svetlosno pero.Grafiki interfejs se esto koristi u kombinaciji sa menijem. - Interfejs na prirodnom jeziku Ovaj interfejs prihvata zahtev formulisan na nekom prirodnom jeziku (na primer, engleskom) i pokuava da ga razume i obradi. - Interfejs za parametarske korisnike Za parametarske korisnike, koji imaju mali broj zahteva koji se ponavljaju, projektuje se poseban komandni jezik. Poeljno je da svaka komanda bude pridruena nekom funkcionalnom tasteru. - Interfejs za administratora baze podataka Administrator baze podataka ima privilegovan pristup bazi podataka, on kreira raune, postavlja parametre sistema, dodeljuje i oduzima pristupne privilegije, aurira eme. Za administratora baze podataka se projektuje poseban komandni jezik koji mu omoguava obavljanje ovih aktivnosti.
OBJEKAT POSMATRANJA - ENTITET Proces po definiciji predstavlja stalnu promenu jedne ili vie veliina u vremenu u svetu koji nas okruuje ( na primer temperatura vazduha, natalitet, bruto nacionalni dohodak, optereenosti elektroenergetskog sistema, itd. ). Veliine koje se ne menjaju u vremenu nisu interesantne sa stanovita eksploatacije podataka. To su najee prirodne konstante kao to su; Ludolfov broj pi, ubrzanje zemljine tee g, dielektrina konstanta vakuuma EQ i tome slino. Njihovu vrednost je dovoljno poznavati samo jedanput, jer se ona ne menja u vremenu. Podaci su promjenjive ali diskretne a ne kontinualne veliine, pa postupak analize i praenja procesa preko podataka ( postupak sinteze baze podataka ), zahteva provoenje neke vrste analogno-digitalne (A/D) konverzije. A kako se iz diskretne baze podataka nova informacija moe dobiti samo obradom diskretnih podataka - i nova informacija je onda uvek diskretna veliina. Da bismo izveli pomenutu "A/D konverziju", i neki kontinualni proces opisali ogranienim brojem diskretnih vrednosti, prisiljeni smo da definiemo modelobjekat koji predstavlja "digitalnu sliku" odnosno nae "vienje" za nas interesantnog dela realnog svijeta. Dobijeni rezultat naziva se onda model (deli realnog sveta, a u strunoj literaturi naziva se jo i entitet, objekat ili model-objekat.
ENTITET ili objekat, po svojoj prirodi moe biti razliit kao na primer: do okruenja ( lan kolektiva, aparat, zgrada ) apstraktni pojam (neka mera, neije zvanje, boja, ) dogaaj ( udes, postupak upisa studenata, ) asocijacija (kao to su polaznik- kurs, predmet- nastavnik, itd). Obeleanje tipa entiteta E(A1,A2,...,An), gde su E ime klase entiteta, a Ai (i=1,n) odabrani atributi entiteta E. Primer: RADNIK(IME, DATUM_ROENJA, ADRESA, TELEFON, SEKTOR, LD, LAN_POROD) RADNIK(IME,SEKTOR,LD) RADNIK(MATINI_BROJ_RADNIKA,MATINI_BROJ_GR AANA, IME_RADNIKA) Ovi tipovi entiteta modeliraju na razliite naine entitet RADNIK.
Konkretizacija (pojava) tipa entiteta To je skup podataka o odreenom entitetu. Primer: Za tip entiteta RADNIK(IME,SEKTOR,LD), mogue pojave su: SAVA KRSTI,INSTITUT,1500 JOVAN RISTI,TEST,850
Svojstva objekata opisuju se preko atributa. Skup dozvoljenih vrijednosti koje moe imati neki atribut naziva se domen. Vodimo rauna: - Ako odaberemo premalo atributa, model e biti jednostavan za predstavljanje i analizu, ali e mu verodostojnost biti mala. - A ako se model opie mnotvom atributa, njegovoj verodostojnosti se nee moi prigovoriti, ali mu kompleksnost postaje takva da manipulacija podacima postaje teka ili neizvodljiva, a dobijene informacije konfuzne. Prema tome: Prepoznavanje prave mere pri modelovanju nekog procesa ( izboru relevantnih atributa ) jedan je od osnovnih zadataka projektanta, i to ne samo informacionog sistema.
Shema relacije
#JMBG
0910965155014 1807970155012
Ime
Marko Ana Ivan Ana
Prezime
Markovi Anti Ivanovi Marijanovi
Mesto_roenja
Nis Beograd Zajecar Nis
Drava_roenja
RS RS RS RS
Kardinalnost relacije
2508975255013 0204960255014 .
kolona
Red relacije
Atribut (obeleje)
To je zajednika osobina, koju poseduju svi entiteti jedne klase. Primer: Atributi radnika: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Atributi automobila: - ime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - naziv - datum roenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - proizvoa - adresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - kubatura - telefon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - vlasnik - sektor, gde radi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - registarski broj - lini dohodak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - datum registracije - lanovi porodice Primer: Atributi studenata jednog fakulteta: - broj indeksa - ime - smer - godina - datum upisa - ocene
Obeleavanje atributa
Stil A Obeleavaju se velikim slovom sa crticom ili znakom za podvlaenje kao poveznikom izmeu rei.
Stil B Obeleavaju se nizom rei, koje se piu malim slovima, osim prvog slova svake rei. Nema delimitera izmeu njih. Primer: Ime DatumUpisa BojaKola
Vrednost atributa Svaki entitet za svaki atribut ima odreenu vrednost, odnosno POJAVU. Primer: Vrednosti atributa entiteta RADNIK su: - Ime = MIKA PERI - Adresa = T.Rajia 33, 19350 Knjaevac - Datum Roenja = 03/09/1962 - Kuni Telefon = 019-41-123 - Zanimanje = dipl.donosa pene za brijanje - Projekti = (P1,P2,P3) - Sektor = Majstor oka - LD = 450
Jednovrednosni i vievrednosni atributi Za odreeni entitet atribut moe imati jednu ill vie vrednosti. Primer: - Atribut DATUM_ROENJA entiteta RADNIK moe imati samo jednu vrednost - Atribut PROJEKTI entiteta RADNIK moe imati vie vrednosti (P1,P7,P16)
NULL vrednost atributa Neki atributi mogu biti bez vrednosti za neki entitet. Tada se kreira NULL vrednost. Primer: Ako radnik IVANA GOCI nema telefon u stanu, atribut TELEFON za ovog radnika e imati NULL vrednost.
To je skup vrednosti iz kojeg semantiki definisani objekat uzima vrednosti. Obeleavanje domena: dom(Ime_atributa) = (domen1,domen2,...) Primer: dom(BOJA_KOLA) = (bela,crvena,zelena) dom(OCENA STUDENTA) = (5,6,7,8,9,10)
Domen atributa
Konkretizacija atributa
To je konkretna vrednost koju atribut uzima iz svog domena da predstavi podatak o odreenom entitetu. Samo konkretizacija atributa moe predstavljati podatak. Primer: Student PERA ILI ima broj indeksa RE 5034/88. Tada je podatak Pera Ili konkretizacija atributa IME_STUDENTA, a RE 5034/88 konkretizacija atributa BROJ_INDEKSA.
- Dekomponovanje sloenih atributa ADRESA_STUDENTA ( ULICA, BROJ_ZGRADE, BROJ_STANA, GRAD, POTANSKI_BROJ, ZEMLJA, KARAK_BROJ_ZEMLJE) IME_STUDENTA(IME,SREDNJE_SLOVO,PREZIME) DATUM_UPISA(DAN,MESEC,GODINA)
Izvedeni atributi To je atribut ije se vrednosti dobijaju primenom nekog algoritma na vrednosti drugih atributa ( elementarnih, sloenih, izvedenih ). Vrednost izvedenog atributa je izvedeni podatak. Primer: Atribut SREDNJA_OCENA studenta se moe dobiti primenom srednje vrednosti na atribute OCENA u entitetu STUDENT. Atribut BROJ_ZAPOSLENIH se izvodi iz broja radnika koji rade u sektoru.
To je atribut ili skup atributa koji je jedinstven za sve pojave odreenog tipa entiteta. Svaki tip entiteta poseduje bar jedan klju. Klju K relacije R je podskup atributa od R, koji ima sledea svojstva: 1. Vrednosti atributa iz K jednoznano odreuju n-torku u R. 2. Ako izbacimo iz K bilo koji atribut, tada se naruava 1. svojstvo Budui da su sve n-torke u R meusobno razliite, K uvek postoji, jer skup svih atributa zadovoljava svojstvo 1. Izbacivanjem suvinih atributa dolazi se do podskupa koji zadovoljava svojstvo 2.
Jedan tip entiteta moe imati vie kljueva. To su kljuevi kandidati. Jedan odkljueva kandidata je primarni a ostali su sekundarni. Primer: U tipu entiteta RADNIK klju moe biti IME, MATINI_BROJ_RADNIKA, MATINI_BROJ_STANOVNIKA.
Obeleavanje primarnog kljua moe biti na dva naina: - Primarni klju u tipu entiteta se podvlai kontinualnom linijom - Iza imena primarnog kljua se stavlja povisilica (#). Primer:
Svi atributi koji pripadaju kljuu tipa entiteta nazivaju se kljunim atributima, dok su ostali sporedni atributi. Atributi, koji pripadaju primarnom kljuu nazivaju se primarnim, a ostali atributi su tada neprimarni.
RELACIJA:
BINARNA RELACIJA R, koja se uvodi u skup S={Si[i=1,n]} ili izmeu skupova S1={Si[i=1,n1]} i S2={Si[i=1,n2]} , predstavlja pravilo povezivanja (stavlja u odnos) elemenata skupa S ili skupova S1 i S2. Binarna relacija R je podskup Dekartovog proizvoda SxS ili S1xS2. Binarna relacija R izmeu skupova S1 i S2 definie dva preslikavanja, R:S1->S2 i R:S2->S1. Svojstvo ovih preslikavanja koje je posebno znaajno za modeliranje podataka je kardinalitet. Kardinalitet je broj objekata skupa S1 koji je u vezi sa objektima iz skupa S2 i obrnuto. N-ARNA RELACIJA Rn, izmeu skupova S1,S2,...,Sn predstavlja pravilo povezivanja redom elemenata skupova S1,S2,...,Sn. Rn je podskup Dekartovog proizvoda S1xS2x...xSn. U isti skup podataka se moe uvesti proizvoljan broj relacija.
Graf relacija
Ako je binarna relacija R definisana u skupu S, tada se ureeni par G=(S,R) naziva graf relacije. Elementi skupa S={s1 ,s2,...,sn} su vorovi grafa, a elementi skupa R= {(si,sj) } grane grafa. Ako je par (si,sj) iz skupa R, tada vor si povezujemo sa vorom sj sa orijentacijom grane od si ka sj. Primer: S = ( Jugoslavija, Austrija, Maarska, Rumunija) Relacija (R) je "je sused". Graf relacije (R) je: r = { (Jugoslavija, Austrija), (Jugoslavija, Maarska), (Jugoslavija, Rumunija), (Austrija, Maarska), (Maarska, Rumunija) } Primer: S1 =( Ni, Beograd, Skoplje, Bar, Sarajevo) S2 = ( Srbija, Crna Gora, Makedonija) Relacija (R) je "nalazi se u". Graf relacije (R) je: r {(Ni, Srbija), (Beograd, Srbija), (Skoplje, Makedonija), (Bar, Crna Gora) }
Primer:
Pretpostavimo, da u sektoru za urbanizam, ele da imaju informacije o svim ulicama. Entitet, je prema tome ULICA, a relevantni atributi kojima se opisuje ulica mogli bi biti: naziv, duina, irina, vrsta kolovoza, godina izgradnje, broj kua itd., dok podatak o promeni temperature gornjeg sloja asfalta, u ovome sluaju, nee biti relevantan. Entitet ULICA ematski moemo predstaviti kao: ULlCA < naziv, duina, irina, vrsta_kol., god_izg., broj_kua... >
Veliina, odnosno duina, tabele u kojoj se nalaze svi podaci o svim ulicama u optini, zavisi od broja ulica i mora imati onoliko redova, slogova, ili n-torki koliko ima ulica u toj optini. Dakle, broj redova jednak je broju pojedinanih primeraka - objekata nekog entiteta. Izgradnjom nove ulice, novi podaci za tu ulicu se onda jednostavno dopisuju u ve postojei spisak, u postojeu tabelu. Prema tome, svaka tabela mora da ima definisano:
ime ili naziv tabele, spisak atributa i vrednosti atributa, to jest podatke upisane u polja.
Primer:
Neka druga tabela, u istom sektoru optine, moe da sadri podatke o nekom drugom entitetu, na primer, stambenim zgradama. Nazovimo tu tabelu ZGRADA, a skup za nju relevantnih atributa mogao bi biti: ZGRADA < ulica, kuni_br., god_izg., br_sprat., br_stanova... .>
Ulica je, kao to vidimo, u datoteci ZGRADA atribut, dok je u prethodnom primeru tabela imala taj naziv. Prema tome atribut u nekoj tabeli moe biti naziv neke druge tabele. O tome treba voditi rauna kada se neki proces opisuje podacima, da ne bi dolo do zabune. Izbor imena atributa i tabela diktiran je prije svega naim eljama, interesima i "pogledima" (view) koje na realni svijet hoemo da "bacimo" preko podataka koje posedujemo, odnosno koje informacije oekujemo da iz njih moemo dobiti. Izbor imena tabele nije kritian i u praksi se proporuuje da izabrano ime tabele asocira na prirodu procesa u entitetu koji se prati podacima. Meutim, prilikom izbora imena atributa treba biti obazriv, jer osnovno pravilo kae da: atribut mora biti tako odabran da se moe i mora opisati samo jednim elementarnim (atomarnim) podatkom.
Pristup podacima
Osim osnovnih datoteka koje odgovaraju pojedinim relacijama, fizika graa relacione baze moe sadrati i dodatne pomone datoteke koje ubrzavaju pretraivanje i uspostavljanje veza meu podacima. Tipini primeri takvih datoteka su:
Hash datoteka Datoteka s indeksom
Hash datoteka
Zapise datoteke smetamo u P pregrada, oznaenih rednim brojevima 0, 1, 2, . . . , P 1. Svaka pregrada se sastoji od jednog ili vie blokova. Zadaje se tzv. hash funkcija (h), koja daje redni broj h(k) pregrade u kojoj se treba nalaziti zapis sa vrednou kljua k. Skup moguih vrednosti kljua obino je znatno vei od broja pregrada. Vano je da (h) uniformno distribuira vrednosti kljua na odgovarajue pregrade. Tada se nee deavati da se pregrade neravnomerno pune.
Hash datoteka
Zapis sa zadanom vrednou kljua k traimo tako da izraunamo h(k), i sekvencijalno pretraimo h(k)-ti pregradu. Ako je hash funkcija zaista uniformna, i ako je broj pregrada dobro odabran, tada ni jedna od pregrada nije suvie velika. Pristup na osnovu kljua zahteva svega nekoliko itanja bloka (obino oko 2 itanja).
Hash datoteka
Kao primer, promatramo zapise o studentima fakulteta koje elimo spremati u hash datoteku sa 1024 (= 210) pregrada. Definicija tipa zapisa u jeziku C izgleda ovako:
typedef struct { int SNO; // Matini borj char SNAME[20]; // Ime enum {1,2,3,4} LEVEL; // Godina enum {M,F} GENDER; // Pol } STUDENT;
Podelimo 10 bitova u rednom broju pregrade na sledei nain: 4 bita za SNO, 3 bita za SNAME, 2 bita za LEVEL, 1 bit za GENDER. Zadajemo sledee hash funkcije, gde su v1, v2, v3, v4 vrednosti za SNO, SNAME, LEVEL, GENDER respektivno: h1(v1) = v1 % 16 (ostatak kod deljenja sa 16), h2(v2) = (broj znakova u v2 koji su razliiti od blanko) % 8, h3(v3) = v3 1, h4(v4) = (0 za v4 jednak M, 1 inae).
Tada je redni broj pregrade za zapis (58651, Smith, 3, M) zadan sa (1101|101|10|0)2 = (748)10.
Datoteka sa indeksom
Indeks je mala pomona datoteka koja olakava traenje u velikoj (osnovnoj) datoteci. Izloiemo dve varijante datoteke sa indeksom.
Indeks sekvencijalna
a),
adresa
Da bi u osnovnoj datoteci nali zapis sa zadanom vrednou kljua k0, itamo indeks i traimo najvei k1 takav da je k1 k0 i pritom par (k1, a1) postoji u indeksu. Zatim uitamo i pretraimo blok sa adresom a1. Pristup po primarnom kljuu zahteva (u najgorem sluaju) onoliko itanja bloka koliko ima blokova u indeksu +1.
Doputa da zapisi u osnovnoj datoteci budu upisani u proizvoljnom redosledu. Dodajemo tzv. gusti indeks. Svaki zapis u indeksu odgovara jednom zapisu osnovne datoteke i oblika je (k, a), gdje je k vrednost kljua u dotinom zapisu osnovne datoteke, a je pointer adresa zapisa iz osnovne datoteke. Za razliku od nesortirane osnovne datoteke, indeks je sortiran po kljuu.
Traenje. elimo u B-stablu pronai par (k, a), gde je k zadana vrednost kljua, a je pointer adresa traenog zapisa u osnovnoj datoteci. U tu svrhu sledimo put od korena do lista koji bi morao sadravati k. To se radi tako da redom itamo unutranje vorove oblika (a0, k1, a1, k2, a2, . . . ,kr, ar), i uporedimo k sa k1, k2, . .., kr. Ako je ki k < ki+1, dalje itamo vor na koga ukazuje ai. Ako je k < k1, dalje itamo vor sa adresom a0. Ako je k kr, koristimo adresu ar. Kad nas taj postupak konano dovede u list, traimo u njemu zadani k.
Invertovana datoteka
Uvodimo sekundarni indeks - to je mala (pomona) datoteka koja olakava pristup zapisima velike (osnovne) datoteke na osnovu podatka koji nije klju. Sekundarni indeks za podatak A sastoji se od zapisa oblika (v, {p1, p2, p3, . . .}), gde je v vrednost za A, a {p1, p2, p3, . . .} je skup pointera na zapise u osnovnoj datoteci u kojima A ima vrednost v. Ukoliko postoji ovakav indeks, kae se da je osnovna datoteka invertovana po podatku A. Datoteka koja je invertovana po svakom od svojih podataka zove se potpuno invertovana datoteka.
Invertovana datoteka
Kao primer, posmatramo tabelarni prikaz datoteke nastavnika na fakultetu. Ako invertujemo tu datoteku po svakom podatku osim IME, dobijamo gusti primarni indeks za klju MAT_BR i tri sekundarna indeksa za ODELJ, STAROST i ZVANJE. Indeks za STAROST sadri intervale umesto pojedinanih vrednosti.
pointer MAT_BR IME ODELJ STAROST ZVANJE
a1 a2 a3 a4 a5 a6 a7 a8 a9
35 26 37 55 45 32 24 34 52
Invertovana datoteka
MAT_BR 12453 16752 27453 34276 37564 43257 45643 56321 57432 pointer a1 a2 a3 a4 a5 a6 a7 a8 a9 Pointer za zapis
intervali
? STAROST=23
Pristup na osnovu bilo kojeg podatka ostvaruje se tako da u odgovarajuem indeksu pronaemo zadanu vrednost podatka, proitamo popis pointera, i za svaki od pointera proitamo zapis u osnovnoj datoteci. Invertovana organizacija omoguuje i brz odgovor na pitanja o postojanju ili broju zapisa sa zadatim svojstvima.