You are on page 1of 18

Fakultet sportskih nauka

SEMINARSKI RAD Predmet:Informatika i raunarske tehnologije Tema:Baze podataka

Student: Manji Velibor 08/09RST

Mentor: Prof. dr Branko Latinovi

Januar 2011

Sadrzaj Uvodu u baze podataka.................................................................................... 3 Osnovni pojmovi vezani uz baze podataka........................................................3 Sistem za upravljanja bazom podataka..............................................................4 Ciljevi koji se nastoje postii koritenjem baza podataka...................................5 Arhitektura baze podataka.............................................................................. ...6 Jezici za rad s bazama podataka...................................................................... 7 Softverski paketi za rad s bazama podataka......................................................8 Zivotni ciklus baze podataka..............................................................................8 Fizicka grada bazepodataka..............................................................................9 Integritet i sigurnost podataka...........................................................................12

UVOD U BAZE PODATAKA Baza podataka je skup podataka nekog informacionog sistema. Ona sadri sve podatke razliitih objekata poslovnog sistema, kao to su npr. poslovni partneri, projekti, proizvodi, usluge, fakture ugovora itd... Podaci od kojih se sastoji baza podataka se obrauju u jednoj aplikaciji ili informacionom sistemu. Savremen je nain pohrane podataka u raunarsku bazu koja ima niz prednosti s obzirom na ostale medije u kojima se pohranjuju podaci. U baze podataka moemo pohranjivati sve oblike zapisa podataka-tekstne u veini sluajeva te podatke koji opisuju slike (pokretne ili nepokretnevideozapis) ili zvuk. Kako se radi o podacima razliitih medijskih vrsta, govori

se o multimedijskim podacima, a baza koja sadri takvu vrstu podataka se zove multimedijska baza podataka. Bazom podataka upravlja tzv. sistem za upravljanje bazom podataka, skraeno DBMS (Data Base Management System) te radi i sljedee: obavlja sve operacije na bazi podataka, kontrolie i nadgleda rad te je na razliite naine zatita baze podataka. Baze podataka predstavljaju vii nivo rada s podacima u odnosu na klasine programske jezike.Rije je o tehnologiji koja je nastala s namjerom da se uklone slabosti tradicionalne automatskeobrade podataka iz 60-tih i 70-tih godina 20. vijeka. Ta tehnologija osigurala je veu produktivnost, kvalitetu i pouzdanost u razvoju aplikacija koje se svode na pohranjivanje i pretraivanje podataka u raunaru. Podaci su istovremeno dostupni raznim korisnicima i aplikacijskim programima. Ubacivanje, promjena,brisanje i itanje podataka obavlja se posredstvom zajednikog softvera. Korisnici i aplikacije pritomne moraju poznavati detalje fizikog prikaza podataka, ve se referenciraju na logiku strukturu baze.Bazama podataka veinom imaju pristup sve zainteresovane osobe, ali ponekad postoje i ogranienja pristupa nekim dijelovima podataka, a nije tako rijetko odbijen pristup svim podacima za odreene osobe. Iz tih razloga je jako bitna zatita baze podataka. Takoer moe doi do oteenja baze podataka u raunarskom sistemu iz vie razloga. Osnovni pojmovi vezani uz baze podataka Baza podataka je skup meusobno povezanih i primjereno oblikovanih podataka nekog sistema. Baza sabire podatke koji su ranije pripadali pojedinanim aplikacijama i ujedinjuje ih u jednu cjelinu koja time postaje zajednikom osnovom za rad svih aplikacija informacionog sistema. Ujedinjavanje podataka ne mora znaiti i njihovo prostorno smjetanje na istu lokaciju. Pojmom ujedinjavanje ovdje oznaavamo izbor, oblikovanje i kontrolu osnovnih podataka nekog sistema. Rezultat nazivamo modelom podataka za dani sistem. Na temelju modela podataka, uspostavlja se baza podataka iji sadraj onda pravi zajedniku osnovu za sve podsisteme (aplikacije) tog sistema. Baza podataka je alatka za prikupljanje i organizovanje informacija. U njoj moete da skladitite informacije o ljudima, proizvodima, kao i o bilo emu drugom. Veliki broj baza podataka poinje da se kreira u vidu liste u programu za obradu teksta ili unakrsnoj tabeli. Kako lista raste, pojavljuju se suvini i nedosledni podaci. Razumijevanje podataka u formi liste postaje oteano, a osim toga postoji ogranien broj naina pretraivanja ili izvlaenje podskupova podataka u cilju redigovanja. Kada ovi problemi ponu da se pojavljuju, bilo bi dobro prebaciti podatke u bazu podataka koja se kreira pomou sistema za upravljanje bazama podataka (DBMS)

Sistem za upravljanje bazom podataka (Data Base Management System - DBMS) je posluitelj (server) baze podataka. On oblikuje fiziki prikaz baze u skladu s traenom logikom strukturom.Takoe, on obavlja u ime klijenata sve operacije s

podacima. Dalje, on je u stanju podrati razne baze, od kojih svaka moe imati svoju logiku strukturu, no u skladu s istim modelom. Isto tako, brine se za sigurnost podataka, te automatizuje administrativne poslove s bazom. Podaci u bazi su logiki organizovani u skladu s nekim modelom podataka. Model podataka jeskup pravila koja odreduju kako moe izgledati logika struktura baze. Model ini osnovu za koncipiranje, projektovanje i implementiranje baze. Veina sistema baza podataka se grade oko jednog odreenog modela podataka, iako je u porastu zajedniko proizvodima da nude podrku za vie od jednog modela. Za bilo koji logiki model mogu biti mogue razliite fizikalne provedbe, a veina e proizvoda ponuditi korisniku neki nivo kontrole u ugaanju fizikalne provedbe, poto uinjeni izbori imaju znaajan uinak na performansu. Primjer toga je odnosni model: sve ozbiljne provedbe odnosnog modela doputaju stvaranje indeks, koji omoguuju brzi pristup redovima u tabeli, ako su poznate vrijednosti odreenih stupaca. Model podataka nije samo nain strukturisanja podataka: on definie skup operacija koje se mogu izvoditi na podacima. Odnosni model, definie operacije kao to su selekcija ili odabir, projekcija i spajanje. Iako ove operacije ne moraju biti eksplicitne u odreenom query jeziku, one omoguuju temelje na kojima je query jezik izgraen. Dosadanji DBMS-i obino su podravali neki od sljedeih modela: Ravni model Ravni model sastoji se od pojedinanog, dvodimenzionalnog reda elemenata podataka, gdje se za sve lanove datog stupca pretpostavlja da su sline vrijednosti, te da su svi lanovi reda povezani jedni s drugima. Na primjer, stupci za ime i lozinku mogu se koristiti kao dio sigurnosnog sistema baze podataka. Svaki red bi imao specifinu lozinku povezanu sa individualnim korisnikom. Stupci tabele esto imaju tip povezan s njima, definiui ih kao oznake podataka, datum ili vremensku informaciju, cjelinu ili brojeve lebdeih taaka. Mreni model Mreni model (definiran prema CODASYL specifikaciji) organizuje podatke upotrebom dvije fundamentalne konstrukcije, nazvane zapisi i skupovi. Zapisi sadre polja (koja mogu biti organizovana hijerarhijski kao u COBOL-u). Skupovi definiu odnose "jednog prema svima" izmeu zapisa: jedan vlasnik, mnogo lanova. Zapis moe biti i vlasnik i lan u bilo kojem broju skupova. Operacije mrenog modela navigacijske su u stilu da: program odrava tekui poloaj i upravlja od jednog do drugog zapisa slijedei odnose u kojima uestvuje zapis. Zapisi mogu biti smjeteni dobavljanjem kljunih vrijednosti. Iako nije bitno obiljeje modela, mrena baza podataka provodi skup odnosa sredstvima pokazivaa koji direktno adresiraju mjesto zapisa na disku. To daje izvrsne povratne performanse na raun operacija poput uitavanja i reorganizacije baze podataka. Hijerarhijski model. Specijalni sluaj mrenog. Baza je predoena jednim stablom ili skupom stabala. vorovi su tipovi zapisa, a hijerarhijski odnos nadredeni-podredeni izraava veze
5

meu tipovima zapisa. Objektni model. Inspirisan je objektno-orijentiranim programskim jezicima. Baza je skup trajno pohranjenih objekata koji se sastoje od svojih internih podataka i metoda (operacija) za rukovanje s tim podacima. Svaki objekt pripada nekoj klasi. Izmedu klasa se uspostavljaju veze nasljedivanja, agregacije, odnosno medusobnog koritenja operacija. Dimenzijski model U dimenzijskom modelu baza podataka se sastoji od jedne velike tabele injenica koje su opisane upotrebom dimenzija i veliina. Dimenzija omoguava kontekst injenice, a koristi se u upitnicima za zajedniko grupisanje srodnih injenica. Dimenzije tee da budu zasebne, a esto su i hijerarhijske; na primjer, mjesto moe ukljuivati zgradu, regiju i dravu. Veliina je koliina koja opisuje injenicu kao to je dohodak. Vano je da veliine mogu biti znaajno nagomilane - na primjer, dohodak s razliitih mjesta moe se zajedno pridodati. Dimenzijski model se esto provodi na vrhu odnosnog modela upotrebom zvjezdaste eme koja se sastoji od jedne tabele koja sadri injenice i okolne tabele koja sadri dimenzije. Komplicirane dimenzije mogu posebno biti prikazane upotrebom nogostrukih tabela. Spremite podataka moe sadravati mnogostruke zvjezdaste eme koje meusobno dijele dimenzijske tablice, omoguujui im da se zajedno koriste. Pojavljivanje sa standardnim skupom dimenzija vaan je dio dimenzijskog modeliranja. Ciljevi koji se nastoje postii koritenjem baza podataka Spomenuli smo da baze podataka predstavljaju vii nivo rada s podacima u odnosu na klasine programske jezike. Taj vii nivo rada se ogleda u tome to tehnologija baza podataka nastoji ispuniti sljedee ciljeve: Fizika nezavisnost podataka. Razdvaja se logika definicija baze od njene stvarne fizike grae.Znai, ako se fizika graa promijeni (na primjer, podaci se prepiu u druge datoteke na drugim diskovima), to nee zahtijevati promjene u postojeim aplikacijama. Logika nezavisnost podataka. Razdvaja se globalna logika definicija cijele baze podataka od lokalne logike definicije za jednu aplikaciju. Znai, ako se logika definicija promijeni, to nee zahtijevati promjene u postojeim aplikacijama. Lokalna logika definicija obino se svodi na izdvajanje samo nekih elemenata iz globalne definicije, uz neke jednostavne transformacije tih elemenata. Fleksibilnost pristupa podacima. U starijim mrenim i hijerarhijskim bazama, staze pristupanja podacima bile su unaprijed definisane, dakle korisnik je mogao pretraivati podatke jedino onim redoslijedom koji je bio predviden u vrijeme projektovanja i implementiranja baze. Danas se zahtijeva da korisnik moe slobodno prebirati po podacima, te po svom nahodenju uspostavljati veze medu podacima. Ovom zahtjevu zaista zadovoljavaju jedino relacijske baze. Istovremeni pristup do podataka. Baza mora omoguciti da veci broj korisnika istovremeno koristi iste podatke. Pritom ti korisnici ne smiju ometati jedan

drugoga, te svaki od njih treba imati osjeaj da sam radi s bazom. uvanje integriteta. Nastoji se automatski sauvati korektnost i konzistencija podataka, i to u situaciji kad postoje greke u aplikacijama, te konfliktne istrovremene aktivnosti korisnika. Mogunost oporavka nakon kvara. Mora postojati pouzdana zatita baze u sluaju kvara hardvera ili greaka u radu sistemskog softvera. Zatita od neovlatenog koritenja. Mora postojati mogunost da se korisnicima ogranie prava koritenja baze, dakle da se svakom korisniku reguliu ovlatenja to on smije a to ne smije raditi s podacima. Zadovoljavajua brzina pristupa. Operacije s podacima moraju se odvijati dovoljno brzo, u skladu s potrebama odredene aplikacije. Na brzinu pristupa moe se uticati odabirom pogodnih fizikih struktura podataka, te izborom pogodnih algoritama za pretraivanje. Mogunost podeavanja i kontrole. Velika baza zahtijeva stalnu brigu: praenje performansi, mijenjanje parametara u fizikoj gradi, rutinsko pohranjivanje rezervnih kopija podataka, regulisanje ovlatenja korisnika. Takoe, svrha baze se vremenom mijenja, pa povremeno treba podesiti i logiku strukturu. Ovakvi poslovi moraju se obavljati centralizirano. Odgovorna osoba zove se administrator baze podataka. Arhitektura baze podataka Arhitektura baze podataka sastoji se od tri sloja. Fiziki nivo odnosi se na fiziki prikaz i raspored podataka na jedinicama vanjske memorije. To je aspekt koji vide samo sistemski programeri. Sam fiziki nivo se moe dalje podijeliti na vie pod-nivoa apstrakcije, od sasvim konkretnih staza i cilindara na disku, do ve donekle apstraktnih pojmova datoteke i zapisa kakve susreemo u klasinim programskim jezicima. Raspored arhiviranja opisuje kako se elementi logike definicije baze preslikavaju na fizike uredaje. Globalni logiki nivo se odnosi na logiku strukturu cijele baze. To je aspekt koji vidi projektant baze odnosno njen administrator. Zapis logike definicije naziva se ema. ema je tekst ili dijagram koji definie logiku strukturu baze, i u skladu je sa zadanim modelom. Dakle imenuju se i definiu svi tipovi podataka i veze medu tim tipovima, u skladu s pravilima koristenog modela. Takode, ema uvodi i ogranienja kojim se uva integritet podataka. Lokalni logiki nivo se odnosi na logiku predodbu o dijelu baze kojeg koristi pojedina aplikacija. To je aspekt kojeg vidi korisnik ili aplikacijski programer. Zapis jedne lokalne logike definicije zove se pogled. To je tekst ili dijagram kojim se imenuju i definiu svi lokalni tipovi podataka i veze medu tim tipovima, opet u skladu s pravilima koritenog modela. Takode, pogled zadaje preslikavanje kojim se iz globalnih podataka i veza izvode lokalni. Za stvaranje baze podataka potrebno je zadati samo emu i poglede. DBMS tada automatski generie potrebni raspored arhiviranja i fiziku bazu. Administrator moe samo donekle uticati na fiziku gradu baze, podeavanjem njemu dostupnih parametara. Programi i korisnici ne pristupaju direktno fizikoj bazi, ve dobivaju ili arhiviraju podatke posredstvom DBMS-a. Komunikacija programa odnosno korisnika s DBMS-om obavlja se na lokalnom logikom nivou.
7

Jezici za rad s bazama podataka Komunikacija korisnika odnosno aplikacijskog programa i DBMS-a odvija se pomou posebnih jezika. Ti jezici tradicionalno se dijele na sljedee kategorije: Jezik za opis podataka (Data Description Language - DDL). Slui projektantu baze ili administratoru u svrhu zapisivanja eme ili pogleda. Dakle tim jezikom definiemo podatke i veze medu podacima, i to na logikom nivou. Koji puta postoji posebna varijanta jezika za emu, a posebna za poglede. Naredbe DDL obino podsjeaju na naredbe za definisanje sloenih tipova podataka u jezicima poput COBOL, PL/I, C, Pascal. Jezik za manipulisanje podacima (Data Manipulation Language - DML). Slui programeru za uspostavljanje veze izmedu aplikacijskog programa i baze. Naredbe DML omoguuju manevrisanje po bazi, te jednostavne operacije kao to su upis, promjena, brisanje ili itanje zapisa. U nekim softverskim paketima, DML je zapravo biblioteka potprograma: naredba u DML svodi se na poziv potprograma. U drugim paketima zaista se radi o posebnom jeziku: programer tada pise program u kojem su izmijeane naredbe dvaju jezika, pa takav program treba prevoditi s dva prevodioca (DML-precompiler, obini compiler). Jezik za postavljanje upita (Query Language - QL). Slui neposrednom korisniku za interaktivno pretraivanje baze. To je jezik koji podsijea na govorni jezik Naredbe su neproceduralne, dakle takve da samo specificiraju rezultat koji elimo dobiti, a ne i postupak za dobijanje rezultata. Ovakva podjela na tri jezika danas je ve prilino zastarjela. Naime, kod relacijskih baza postoji tendencija da se sva tri jezika objedine u jedan sveobuhvatni. Primjer takvog integriranog jezika za relacijske baze je SQL: on slui za definisanje podataka, manipulisanje i pretraivanje. Integrirani jezik se moe koristiti interaktivno ili se on moe pojavljivati uklopljen u aplikacijske programe. Gore pomenute vrste jezika nisu programski jezici. Dakle ti jezici su nam nuni da bi se povezali s bazom, no oni nam nisu dovoljni za razvoj aplikacija koje e neto raditi s podacima iz baze. Tradicionalni nain razvoja aplikacija koje rade s bazom je koritenje klasinih programskih jezika (COBOL, PL/I, C, Pascal . . . ) sa DML-naredbama. U 80-tim godinama 20. vijeka bili su dosta popularni i tzv. jezici 4. generacije (4-th Generation Languages - 4GL): rije je o jezicima koji su bili namijenjeni iskljuivo za rad s bazama, te su zato u tom kontekstu bili produktivniji od klasinih programskih jezika opte namjene. Problem s jezicima 4. generacije je bio u njihovoj nestandardnosti: svaki od njih je u pravilu bio dio nekog odredenog softverskog paketa za baze podataka, te se nije mogao koristiti izvan tog paketa (baze). U dananje vrijeme, aplikacije se najee razvijaju u standardnim objektno orijentisanim programskim jezicima (Java, C++, . . .

). Za interakcije s bazom koriste se unaprijed pripremljene klase objekata. Ovakva tehnika je dovoljno produktivna zbog koristenja gotovih klasa, a rezultirajui programse lako dotjeruje, uklapa u vee sisteme ili prenosi s jedne baze na drugu.

Softverski paketi za rad s bazama podataka Baze podataka se u pravilu realizuju koritenjem nekog od provjerenih softverskih paketa. Gotovo svi dananji softverski paketi podravaju relacijski model i SQL. Svaki od njih sadri svoj DBMS, uobiajene klijente, te biblioteke i alate za razvoj aplikacija. Svaki paket isporuuje se u verzijama za razne raunarske platforme. Konkurencija medu proizvodaima softvera za baze podataka je izuzetno velika, tako da je posljednjih godina esto dolazilo do njihovog nestanka, spajanja ili preuzimanja. Lista relevantnih softverskih paketa zato je svake godine sve kraa. Jedino osvjeenje predstavlja nedavna pojava public-domain sotvera poput MySQL. Osnovne karakteristike SQL jezika SQL (Structured Query Language) je dua relacijskog modela, a razvio ga je IBM poetkom 70-ih godina. American National Standard Institute (ANSI) i International Standards Organization (ISO) standardizirali su SQL 1986. godine (verzija SQL-86). Trenutno vaei standard datira iz 1992. odakle potiee i novi naziv SQL-92. Svi sistemi za upravljanje bazama podataka nastoje to vie slijediti originalni standard, ali pokuavaju i obogatiti SQL razliitim opcijama koje nisu standardizovane. Zato se esto mogu uoiti razlike u sintaksi SQL naredbi koje se koriste u razliitim bazama podataka. Svaka baza podataka dolazi s alatom koji korisniku doputa unoenje i izvravanje SQL naredbi (query = upit). Svaka naredba zavrava interpunkcijskim znakom taka-zarez (;), a ukoliko se instrukcija prostire kroz vie redova, znak ';' stavlja se na kraj posljednjeg reda. Kada se SQL naredba ukljuuje u drugi programski jezik (Embedded SQL), ona zavrava na nain svojstven tom jeziku. Iako je SQL no-case-sensitive, odnosno ne razlikuje mala i velika slova, uobiajeno je da se kljune rijei piu velikim slovima. Podjela SQL-a i osnovne naredbe SQL se dijeli na etiri "podjezika": Data Definition Language (DDL) sastoji se od naredbi za definisanje objekata baze podataka: npr. CREATE, DROP i ALTER Data Manipulation Laguage (DML) sastoji se od naredbi za manipulisanje podacima u bazi: npr. INSERT, DELETE, UPDATE Data Control Lanuage(DCL) sastoji se od naredbi za kontrolu podataka i njihovu sigurnost: npr. GRANT i REVOKE Data Query Language (DQL) sastoji se od naredbi za pretraivanje i dohvaanje podataka u bazi : npr. SELECT Naredba SELECT jedna je od najkoritenijih SQL naredbi, a njena snaga

naroito dolazi do izraaja upotrebom razliitih operatora, funkcija i kljune rijei WHERE. Zivotni ciklus baze podataka Uvodenje baze podataka u neko preduzee ili ustanovu predstavlja sloeni zadatak koji zahtijeva timski rad strunjaka raznih profila. To je projekt koji se moe podijeliti u pet faza: analiza potreba, modeliranje podataka, implementacija, testiranje i odravanje. Analiza potreba Prouavaju se tokovi informacija u prduzeu. Uoavaju se podaci koje treba arhivirati i veze meu njima. U preduzeima, gdje postoje razne grupe korisnika, pojavit e se razni pogledi na podatke. Te poglede treba uskladiti tako da se eliminise redundancija i nekonzistentnost. Na primjer, treba u raznim pogledima prepoznati sinonime i homonime, te uskladiti terminologiju. Analiza potreba takode treba obuhvatiti analizu transakcija (operacija) koje e se obavljati nad bazom podataka, budui da to moe isto imati uticaja na sadraj i konani oblik baze. Vano je procijeniti frekvenciju i obim pojedinih transakcija, te zahtjeve na performanse. Rezultat analize je dokument koji se zove specifikacija potreba. Modeliranje podataka Razliiti pogledi na podatke, otkriveni u fazi analize, sintetizuju se u jednu cjelinu globalnu emu. Precizno se utvruju tipovi podataka. ema se dalje dotjeruje tako da zadovolji neke zahtjeve kvaliteta. Takoe, sema se prilagodava ogranienjima koje postavlja zadani model podataka, te se dodatno modifikuje da bi bolje mogla udovoljiti zahtjevima na performanse. Na kraju se iz eme izvode pod-eme za pojedine aplikacije (grupe korisnika). Implementacija Na osnovu seme i pod-pema, te uz pomo dostupnog DBMS-a, fiziki se realizuje baza podataka na raunaru. U DBMS-u obino postoje parametri kojima se moe uticati na fiziku organizaciju baze. Parametri se podeavaju tako da se osigura efikasan rad najvanijih transakcija. Razvija se skup programa koji realizuju pojedine transakcije te pokrivaju potrebe raznih aplikacija. Baza se inicijalno puni podacima. Testiranje Korisnici probno rade s bazom i provjeravaju da li ona zadovoljava svim zahtjevima. Nastoje se otkriti greke koje su se mogle potkrasti u svakoj od faza razvoja: dakle u analizi potreba, modeliranju podataka, implementaciji. Greke u ranijim fazama imaju tee posljedice. Na primjer, greka u analizi potreba uzrokuje da transakcije moda korektno rade, no ne ono to korisnicima treba ve neto drugo. Dobro bi bilo kad bi takve propuste otkrili prije implementacije. Zato se u novije vrijeme, prije prave implementacije, razvijaju i priblini prototipovi baze podataka, te se oni pokazuju korisnicima. Jeftinu izradu prototipova omoguuju jezici 4. generacije i objektnoorijentisani jezici. Odravanje Odvija se u vrijeme kad je baza ve ula u redovnu upotrebu. Sastoji se od sljedeeg: popravak greaka koje nisu bile otkrivene u fazi testiranja; uvodenje promjena zbog novih zahtjeva korisnika; podeavanje parametara u DBMS u svrhu poboljavanja performansi. Odravanje zahtijeva da se stalno prati rad s bazom, i to tako da to

praenje ne ometa korisnike. Administratoru baze podataka trebaju stajati na raspolaganju odgovarajui alati (utility programi). FIZIKA GRADA BAZE PODATAKA Elementi fizike grae Baza podataka se u fizikom smislu svodi na gomilu bitova pohranjenih na magnetskim diskovima. Takav doslovni nain gledanja je bez sumnje istinit, ali on ne omoguuje da stvarno razumijemo fiziku gradu baze. Umjesto toga, bolje je posmatrati malo apstraktnije objekte, kao to su zapisi, datoteke I pointeri. Rije je o prvom, sasvim niskom nivou apstrakcije koji je vrlo blizak fizikoj stvarnosti. Vanjska memorija raunara Operativni sistem racunara dijeli vanjsku memoriju u jednako velike blokove. Veliina bloka je konstanta operativnog sistema, i ona moe iznositi na primjer 512 byte ili 4096 byte. Osnovna operacija s vanjskom memorijom je prenos bloka sa zadanom adresom iz vanjske memorije u glavnu, ili obratno. Dio glavne memorije koji uestvuje u prenosu zove se buffer. Blok je najmanja koliina podataka koja se moe prenijeti; na primjer ako elimo proitati samo jedan byte iz vanjske memorije, tada moramo prenijeti cijeli odgovarajui blok, pretraiti buffer u glavnoj memoriji i izdvojiti traeni byte. Vrijeme potrebno za prijenos bloka nije konstantno ve ovisi o trenutnom poloaju glave diska. Ipak, to vrijeme (mjereno u milisekundama) neuporedivo je vee od vremena potrebnog za bilo koju manipulaciju u glavnoj memoriji (mjereno u mikro- i nanosekundama). Zato je brzina nekog algoritma za rad s vanjskom memorijom odreena brojem blokova koje algoritam mora prenijeti, a vrijeme potrebno za raunanje i manipulisanje u glavnoj memoriji je zanemarivo. Datoteke Osnovni problem fizikog prikazivanja baze podataka je organizacija datoteke. Datoteka je konani niz zapisa istog tipa pohranjenih u vanjskoj memoriji. Tip zapisa zadaje se kao uredena n-torka osnovnih podataka (komponenti), gdje je svaki osnovni podatak opisan svojim imenom i tipom (int, float, character string, . . . ). Primijetimo da je tip zapisa definisan neto ue nego na primjer u C-u, naime nije dozvoljena hijerarhijska ni varijabilna grada zapisa. Sam zapis sastoji se od konkretnih vrijednosti osnovnih podataka. Zapisi fiksne duine, dakle jedan zapis ima tano jednu vrijednost svakog od osnovnih podataka i ta vrijednost je prikazana fiksiranim brojem byte-ova. Tipine operacije koje se obavljaju nad datotekom su: ubaciti novi zapis, promijeniti zapis, izbaciti zapis, nai zapis ili zapise gdje zadani podaci imaju zadane vrijednosti. Sloenost grae datoteke zavisi od toga koliko efikasno elimo obavljati pojedine od ovih operacija. Klju je osnovni podatak, ili kombinacija osnovnih podataka, ija vrijednost jednoznano odreuje zapis. Ukoliko ima vie kandidata za klju, tada odabiremo jedan od njih da bude primarni klju. Ne mora svaka datoteka imati klju, jer mogu postojati zapisi-duplikati. Zapis je obino znatno manji od bloka. Stoga se vie zapisa sprema u jedan blok. Uzimamo da je u bloku smjeten cijeli broj zapisa, to
11

znai da je dio bloka moda neiskoriten. Adresa zapisa gradi se kao uredeni par. Kod nekih organizacija datoteka neka mjesta za zapise u bloku mogu ostati prazna. Pointeri Pointer je vrijednost unutar jednog zapisa koja pokazuje na neki drugi zapis (u istoj ili drugoj datoteci). Pointer moe biti: adresa zapisa (fiziki pointer), vrijednost primarnog kljua (logiki pointer). Postoje i prelazni oblici izmedu fizikog i logikog pointera, na primjer redni broj zapisa; ali smisao takvih vrijednosti zavisi o konkretnoj organizaciji datoteke. Pointeri omoguuju uspostavljanje veze izmeu zapisa, dakle oni omoguuju da iz jednog zapisa pristupimo drugom. Pointer-adresa omoguuje brzi pristup. Pointer-klju je spor - on samo implicitno odreduje zapis kojeg tek treba pronai nekim mehanizmom za traenje na osnovu kljua. Prisustvo pointera-adrese moe uzrokovati probleme kod auriranja ili reorganizovanja datoteke. Ako na zapis pokazuje pointer-adresa, kaemo da je zapis prikovan (pinned) - zapis se naime ne smije fiziki pomicati sa svog mjesta jer bi nakon pomaka pointer pogresno pokazivao. Jedini nain da pomaknemo prikovani zapis je da auriramo i pointer, ali problem je da za zadani zapis obino ne znamo gdje se sve mogu nalaziti pointeri koji na njega pokazuju. Prisustvo pointera-kljua ne uzrokuje nikakve probleme kod auriranja ili reorganizacije datoteke. To je i razlog zato koristimo takve pointere. Fizika graa cijele baze Cijela baza je graena kao skup datoteka. Zapisi u datotekama mogu biti meusobno povezani pointerima. Sve operacije s bazom svode se na osnovne operacije sa datotekama. Ukoliko imamo posla s relacijskim bazama, tada se svaka relacija prikazuje jednom datotekom. Atributi relacije odgovaraju osnovnim podacima u zapisu. Jedna n-torka relacije prikazana je jednim zapisom. Primarni klju relacije odreduje primarni klju datoteke. Primijetimo da se ovakvim fizikim prikazom uvodi umjetni redoslijed meu atributima relacije, te umjetni redoslijed n-torki. No, relacijski DBMS u stanju je promijeniti taj redoslijed prilikom rada s relacijom. Osim osnovnih datoteka koje odgovaraju pojedinim relacijama, fizika grada relacijske baze moe sadravati i dodatne pomone datoteke koje ubrzavaju pretraivanje i uspostavljanje veza meu podacima.Tipini primjeri takvih datoteki su indeksi. Pristup na osnovu primarnog kljua Vana operacija u radu s datotekama je pristup na osnovu primarnog kljua. Dakle, za zadanu vrijednost primarnog kljua treba odrediti adresu zapisa koji sadri tu vrijednost kljua. Jednostavna datoteka Zapravo se radi o odsustvu bilo kakve organizacije. Zapise datoteke poredamo u onoliko blokova koliko je potrebno. Blokovi koji ine datoteku mogu biti povezani u vezanu listu ili moe postojati tablica adresa svih blokova.Traenje zapisa sa zadanom vrijednou kljua zahtijeva sekvencijalno itanje cijele datoteke , sve dok ne naiemo na traeni zapis. Ako je datoteka velika, mora se uitati mnogo blokova, pa pristup traje

dugo. Da bi ubacili novi zapis, stavljamo ga na prvo slobodno mjesto u prvom nepopunjenom bloku, ili prikljuujemo novi blok ukoliko su svi postojei blokovi popunjeni. Ako su zapisi prikovani, tada ne smijemo zaista izbacivati zapise, ve ih samo moemo proglasiti nevaeim. No ako zapisi nisu prikovani, tada ih smijemo izbacivati, pa e se time ispranjena mjesta koristiti kod buduih ubacivanja. Promjena zapisa obavlja se bez ogranienja. Hash datoteka Zapise datoteke smjestamo u P pretinaca, oznaenih rednim brojevima 0, 1, 2, . . . , P 1. Svaki pretinac sastoji se od jednog ili vise blokova. Zadana je tzv. hash funkcija h, koja daje redni broj h(k) pretinca u kojem se treba nalaziti zapis s vrijednou kljua k. Skup moguih vrijednosti kljua obino je znatno vei od broja pretinaca. Vano je da h uniformno distribuira vrijednosti kljua na pretince. Tada se nee deavati da se pretinci neravnomjerno pune. Datoteka s indeksom Indeks je mala pomona datoteka koja olakava traenje u velikoj (osnovnoj) datoteci. Najee se pojavljuju dvije varijante datoteke s indeksom. Indeks-sekvencijalna organizacija zahtijeva da zapisi u osnovnoj datoteci budu sortirani po vrijednostima kljua (na primjer uzlazno). Blokovi ne moraju biti sasvim popunjeni. Dodajemo tzv. razrijedeni indeks. Svaki zapis u indeksu odgovara jednom bloku osnovne datoteke i oblika je (k, a), gdje je k najmanja vrijednost kljua u dotinom bloku, a je adresa bloka. Sam indeks je takoe sortiran po kljuu i za sada zamiljamo da je jednostavno organizovan. Indeks-direktna organizacija doputa da zapisi u osnovnoj datoteci budu upisani u proizvoljnom redoslijedu. Dodajemo tzv. gusti indeks. Svaki zapis u indeksu odgovara jednom zapisu osnovne datoteke i oblika je (k, a), gdje je k vrijednost kljua u dotinom zapisu osnovne datoteke, a je pointeradresa zapisa iz osnovne datoteke. Za razliku od nesortirane osnovne datoteke, indeks je sortiran po kljuu. Zamiljamo da je indeks jednostavno organizovan. Prednost indeks-direktne organizacije u odnosu na indeks-sekvencijalnu je jednostavnije ubacivanje i izbacivanje. Takoe, manje je rasipanje memorije u osnovnoj datoteci. Daljnja prednost je mogunost odgovora na pitanje da li postoji zadana vrijednost kljua, bez da uopte itamo osnovnu datoteku. Mana indeks-direktne organizacije je: znatno vei indeks. INTEGRITET I SIGURNOST PODATAKA uvanje integriteta Pod uvanjem integriteta baze se misli na uvanje korektnosti i konzistentnosti podataka. Integritet se lako moe naruiti na primjer pogrenim upisom neopeznih korisnika ili pogrenim radom aplikacijskog programa. Voljeli bismo kad bi se baza podataka mogla sama braniti od naruavanja integriteta. U tu svrhu, suvremeni DBMS-i dozvoljavaju projektantu baze da definie tzv. ogranienja (constraints). Rije je o pravilima koje korektni i konzistentni podaci moraju zadovoljavati. Kod svake promjene podataka DBMS e automatski provjeravati da li su sva ogranienja zadovoljena. Ako

13

neko ogranienje nije zadovoljeno, tada DBMS nee izvriti traenu promjenu, ve e poslati poruku o greci. Ogranienja kojima se uva integritet domene Izraavaju injenicu da vrijednost atributa mora biti iz zadane domene. Zahtjev da vrijednost primarnog atributa ne smije biti prazna takoe spada u ovu kategoriju. Ogranienja kojima se uva integritet unutar relacije uva se korektnost veza izmedu atributa unutar relacije. Najvaniji primjer takvog ogranienja je ono koje trai da dvije n-torke unutar iste relacije ne smiju imati jednaku vrijednost kljua. Stariji DBMS-i orijentisani na SQL nisu pruali mogunost da se direktno izrazi svojstvo kljua. Postojao je dodue jedan zaobilazni nain - UNIQUE indeks. Noviji standardi za SQL predvidaju klauzulu PRIMARY KEY odnosno UNIQUE unutar naredbe CREATE, to znai da se traeno ogranienje za klju moe eksplicitno zadati. Ogranienja kojima se uva referencijalni integritet uva se korektnost i konzistentnost veza izmeu relacija. Uglavnom je rije o ogranienjima koja se odnose na strani klju, dakle na atribut u jednoj relaciji koji je ujedno primarni klju u drugoj relaciji. Svaka vrijednost takvog atributa u prvoj relaciji mora biti prisutna i u drugoj relaciji. Stariji DBMS-i orijentisani na SQL nisu pruali mogunost da se izrazi svojstvo stranog kljua. Odgovarajuu provjeru morao je obavljati aplikacijski program. Noviji standardi za SQL predvidaju klauzulu FOREIGN KEY u naredbi CREATE, kojom se zadaje odgovarajue ogranienje. Istovremeni pristup Veina baza podataka po svojoj prirodi je viekorisnika. Znai jedan te isti podatak, pohranjen na jednom mjestu, potreban je raznim osobama i raznim aplikacijama, moda ak u isto vrijeme. Obino je rije o prividnoj istovremenosti. DBMS mora paljivo koordinirati konfliktne radnje. Svaki korisnik treba imati utisak da sam radi s bazom. Transakcije i serijalizabilnost Rad korisnika s bazom podataka svodi se na pokretanje unaprijed definisanih procedura, tzv. transakcija. Makar jedna transakcija sa korisnikog stanovita predstavlja jednu nedjeljivu cjelinu, ona se obino realizuje kao niz od nekoliko elementarnih zahvata u samoj bazi. Lokoti i zakljuavanje Lokoti su pomoni podaci koji slue za koordinaciju konfliktnih radnji. Baza je podijeljena na vie dijelova, tako da jednom dijelu odgovara tano jedan lokot. Transakcija koja eli pristupiti nekom podatku najprije mora uzeti odgovarajui lokot i time zakljuati dotini dio baze. im je obavila svoju operaciju, transakcija treba vratiti lokot i time otkljuati podatke. Kad transakcija naide na podatke koji su ve zakljuani, ona mora ekati dok ih prethodna transakcija ne otkljua. Time se zapravo izbjegava istovremeni pristup istom podatku. Oporavak U toku svog rada, baza podataka moe se nai u neispravnom stanju. Razlozi koji mogu dovesti do oteenja baze su: prekid transakcije (naredba ROLLBACK WORK, posljedica kontrole istovremenog

rada, nestanak struje, . . . ); pogrean rad same transakcije; greka u DBMS-u ili operativnom sistemu; hardverska greka ili ak fiziko unitenje cijelog raunara. Od savremenog DBMS-a oekuje se da u svim ovim sluajevima omogui oporavak baze, dakle njen povratak u stanje koje je to aurnije i pritom jo uvijek konzistentno. Taj povratak bi se trebao obavljati po mogunosti automatski, ili bar na relativno jednostavan nain. Da bi oporavak bio mogu, DBMS osim same baze mora odravati jo i neka pomona sredstva; tipino to su: rezervna kopija baze (backup copy) i urnal datoteka (journal file, log file). Rezervna kopija i urnal datoteka omoguuju razne vrste oporavka. Dva najvanija oblika su: neutralizacija prekinute ili pogrene transakcije, te ponovno uspostavljanje baze nakon njenog znatnijeg oteenja. Rezervna kopija baze Dobija se snimanjem cijele baze na drugi medij (magnetska traka ili drugi disk), i to u trenutku kad je baza u konzistentnom stanju. Za vrijeme kopiranja ne smije se obavljati nikakva transakcija koja mijenja podatke. Stvaranje rezervne kopije je dugotrajna operacija koja ometa redovni rad korisnika. Zato se kopiranje ne obavlja suvie esto, ve periodino po unaprijed predvienim terminima (na primjer jednom sedmino). urnal datoteka Rije je o datoteci gdje je ubiljeena istorija svake transakcije koja je mijenjala bazu nakon stvaranja zadnje rezervne kopije. Za jednu transakciju urnal evidentira: identifikator transakcije, adresu svakog podatka kojeg je transakcija promijenila, zajedno s prethodnom vrijednou tog podatka (pre-image) i novom vrijednou (post-image), kontrolne take (checkpoints) u napredovanju transakcije: taka poetka, taka isporuke (commit) odnosno odustajanja (rollback). Neutralizacija jedne transakcije Rije je o rutinskoj i vrlo estoj operaciji koju DBMS obino obavlja automatski. Primjenjuje se za neutralizaciju transakcije koja je poela pisati u bazu ali nije dola do kraja. Isti postupak mogao bi se primijeniti za neutralizaciju ve dovrene transakcije za koju se ustanovilo da je pogrena. Svodi se na to da se podacima koje je transakcija mijenjala vrate prethodne vrijednosti. Uobiajeni postupak naziva se odmotavanje unatrag (roll-back): ita se urnal i pronalaze se stare vrijednosti (pre-images) podataka koje je transakcija mijenjala; te stare vrijednosti se ponovo upisuju na odgovarajua mjesta u bazu. Ponovno uspostavljanje baze Rije je o vanrednoj i opsenoj operaciji koja se pokree na zahtjev administratora. Primjenjuje se nakon znatnijeg oteenja baze ili u sluaju njenog potpunog unitenja. Svodi se na ponovni upis svih podataka. Uobiajeni postupak naziva se odmotavanje prema naprijed (roll-forward). U urnalu moraju biti upisane posebne kontrolne tacke koje oznaavaju trenutke kad je baza jo bila konzistentna. Postupak je tada sljedei: uspostavlja se stanje baze zabiljeeno zadnjom rezervnom kopijom (snimanje s magnetskih traka na disk);

15

odredi se zadnja (posebna) kontrolna taka u urnalu; proita se dio urnala od poetka do zadnje kontrolne take; ponovo se unose u bazu promjene podataka (post-images), i to redom za svaku isporuenu transakciju iz promatranog dijela urnala. Nakon ovoga, uspostavit e se stanje baze koje odgovara zadnjoj (posebnoj) kontrolnoj taci. To je najbolje to se moe uiniti. Zatita od neovlatenog pristupa Baza podataka mora biti zatiena od nedoputenih ili ak zlonamjernih radnji. Osnovni vid zatite je fiziko ogranienje pristupa do samog raunara. Zatim, ograniava se udaljeni pristup do raunara kroz mreu. Ali prvenstveno je zanimljiv finiji softverski vid zatite, koji je ugraden u DBMS. Njime se ljudima koji imaju mogunost rada na dotinom raunaru ograniavaju mogunosti rada s bazom. Identifikacija korisnika Uobiajeno je da svaki korisnik baze ima svoje korisniko ime (username) i lozinku (password). Da bi smio raditi s bazom, korisnik se mora predstaviti DBMS-u navoenjem imena, te mora dokazati svoj identitet navodenjem lozinke. DBMS raspolae popisom korisnikih imena i pripadajucih lozinki. Ukoliko korisnik navede ime i lozinku koji ne odgovaraju popisu, DBMS mu ne doputa rad. Zatita se zasniva na tajnosti lozinke. DBMS se moe osloniti na imena i lozinke koji ve postoje u operativnom sistemu raunara, ili se moe sluiti vlastitim popisom. Ovlatenja Pogled odreduje kako korisnik vidi podatke, ali on ne odreuje ta korisnik moe raditi s tim podacima. Osim pogleda, DBMS uz korisnika vee njegova ovlatenja (authorities). Uobiajena ovlatenja u SQL-u su: SELECT - ovlatenje itanja podataka iz zadane relacije; INSERT - ovlatenje ubacivanja novih n-torki u zadanu relaciju; DELETE - ovlatenje brisanja n-torki u zadanoj relaciji; UPDATE - ovlatenje mijenjanja podataka u zadanoj relaciji; ALTER - ovlatenje mijenjanja grae zadane relacije CONNECT - ovlatenje korisniku raunara da se smije prijaviti za rad s bazom; DBA - ovlatenje koje korisniku daje status administratora baze . Neka korisnikova ovlatenja zadaju se posebno za svaku relaciju, a neka se zadaju univerzalno. Ovlatenje UPDATE se kod nekih DBMS-a moe zadati posebno za svaki atribut. U velikom bazama podataka, brigu oko zatite od neovlatenog pristupa preuzima administrator baze. On upisuje popis korisnika, zadaje poglede i podeava ovlatenja. Da bi sve to mogao raditi, sam administrator mora imati najvea mogua ovlatenja. Neka od posebnih administratorovih ovlatenja su: pravo stvaranja ili brisanja cijelih relacija ili indeksa; pravo definisanja pogleda ili brisanja tih pogleda; pravo upravljanja fizikim resursima od kojih se gradi baza (prostor na disku, datoteke); pravo davanja i oduzimanja ovlatenja drugim korisnicima baze. U nekim DBMS-ima administrator moe neke od svojih specifinih ovlatenja prenijeti drugima. Tako na primjer administrator moe nekom korisniku dati ovlatenje UPDATE za zadanu relaciju, uz dozvolu da taj korisnik to isto ovlatenje dalje daje drugim korisnicima.

Zakljuak Cilj ovog rada bilo je upoznavanje sa osnovama baza podataka u raunarstvu. Koristei strunu literaturu i pojmove objanjeno je kako nastaju,koji je njihov primarni cilj,kako se upravlja podacima u njima,kako ih zatiti i kontrolisati. Upoznali smo se sa pojedinim modelima, njihovim manama i prednostima. Takodje prezentovani su nam i osnovni jezici koji se koriste pri radu sa bazama podataka.

17

Literatura 1.Informatika/Raunalstvo za srednje kole,Nina Lipljin i Ljiljana Milija,ProMil,Zagreb 2008 2.Raunarstvo i informatika,Slobodan B.Vuji,Mikro knjiga,Beograd 2001 3. PHP i MySQL: razvoj aplikacija za Web, prevod treeg izdanja, Luke Welling i Laura Thomson,Beograd 2006

You might also like