32
BAZE PODATAKA DBMS- Sistem upravljanja bazom podataka FUNKCIJE SUBP-a OPORAVAK JEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJA SUBP BAZA PODATAKA (Database) je skup međusobno povezanih podataka koji se čuvaju zajedno, tokom dužeg vremenskog perioda, i među kojima ima samo onoliko ponavljanja koliko je neophodno za njihovo optimalno korišćenje pri višekorisničkom radu. SISTEM BAZE PODATAKA je jedinstvo baze podataka i neophodnih hardverskih, softverskih i ljudskih resursa. SISTEM ZA UPRAVLJANJE BAZOM PODATAKA - SUBP (DataBase Management System - DBMS) je softverski sistem koji obezbeđuje osnovne funkcije obrade velike količine podataka: jednostavno pretraživanje, pamćenje i ažuriranje podataka, višestruko paralelno (konkurentno) korišćenje istog skupa podataka, pouzdanost i sigurnost.

Baze Predavanja 2 - Subp

Embed Size (px)

DESCRIPTION

bp

Citation preview

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    BAZA PODATAKA (Database) je skup meusobno povezanih podatakakoji se uvaju zajedno, tokom dueg vremenskog perioda, i meukojima ima samo onoliko ponavljanja koliko je neophodno za njihovooptimalno korienje pri viekorisnikom radu.

    SISTEM BAZE PODATAKA je jedinstvo baze podataka i neophodnihhardverskih, softverskih i ljudskih resursa.

    SISTEM ZA UPRAVLJANJE BAZOM PODATAKA - SUBP (DataBaseManagement System - DBMS) je softverski sistem koji obezbeujeosnovne funkcije obrade velike koliine podataka: jednostavnopretraivanje, pamenje i auriranje podataka, viestruko paralelno(konkurentno) korienje istog skupa podataka, pouzdanost i sigurnost.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    O B R A D A V O Z IL A

    IZ V E T A J 3

    B A Z A PO D A T A K A

    SIST E M Z A U PR A V L JA NJEB A Z O M PO D A T A K A

    O B R A D A LINIHZ A R A D A

    O B R A D A PU T NIHNA L O G A

    IZ V E T A J 1 IZ V E T A J 2 IZ V E T A J 4

    Primer: Hipotetika baza podataka preduzea u oblasti prevoza

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    FUNKCIJE SUBP-a:

    Skladitenje podataka sa minimumom redundanse.Pouzdanost podataka i pri moguim hardverskim i softverskim otkazima.Pouzdano paralelno korienje zajednikih podataka od strane vie ovlaenih korisnika.Logika i fizika nezavisnost programa od podataka.Jednostavno komuniciranje sa bazom podataka preko jezika bliskih korisniku.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    OMOGUUJE

    INTEGRITET BAZE PODATAKA se odnosi na tanost ( dozvoljene vrednosti ) i konzistentnost ( dozvoljene odnose ) podataka. Inegritet podataka moe da narui greka u programu ili sistemski otkaz. Pravila integriteta definiu i akciju koju treba preduzeti kada se narui tanost ili konzistentnost nekih podataka u bazi.

    SIGURNOST BAZE PODATAKA se odnosi na zatitu baze podataka od novlaenog korienja, modifikovanja, namernog oteenja ili unitenja podataka.

    EMA BAZE PODATAKA (Database scheme) opisuje strukturu baze podataka, pravila integiteta i prava korienja. Administrator baze podataka je osoba zaduena za formiranje i modifikovanje eme baze podataka. INDEKS (Index) je struktura podataka koja omoguava bri pristup "indeksiranim " podacima baze. RENIK PODATAKA (Data Dictionary, Catalog) je "baza podataka o bazi podataka", pa se taj deo baze podataka naziva i metabaza podataka. On sadri emu baze podataka i opis indeksa za posmatranu bazu.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    JEZICI BAZA PODATAKA

    JEZIK ZA OPIS PODATAKA (Data Definition Language DDL) je specijalni jezik koji koristi administrator za odravanje eme baze podataka. JEZIK ZA MANIPULISANJE PODACIMA (Data Manipulation Language DML) se koristi za pronalaenje podatka sauvanog u bazi, za smetaj novog podatka u bazu i za brisanje podatka iz baze. Razlikujemo dva tipa DML jezika:

    Proceduralni, gde se zahteva da korisnik specificira koji podatak mu je potreban i proceduru kako mu se pristupa,Neproceduralni, gde korisnik samo specificira koji podatak mu je potreban, ali ne specificira proceduru kako se do njega dolazi. Ovi jezici se esto nazivaju upitnim jezicima (query languages) jer im je osnovna namena specifikacija upita. Upit (query) je naredba kojim se zahteva pronalaenje podataka u bazi.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    JEZICI BAZA 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.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    ARHITEKTURA SUBP-aArhitektura najveeg broja raspoloivih SUBP-ova odgovara predlogu ANSI/SPARC studijske grupe Amerikog nacionalnog instituta za standarde i poznata je kao ANSI arhitektura (1975). U ovoj arhitekturi se jasno izdvajaju tri sloja:

    Interni (fiziki) nivo definie nain na koji su podaci organizovani na spoljnim memorijama.Konceptualni nivo (ema baze podataka) definie optu logiku strukturu baze podataka, sve podatke u sistemu, njihove odnose (veze) i treba da omoguu upravljanje podacima kao zajednikim resursom u celom sistemu.

    Eksterni (korisniki) nivo definie logiku strukturu podatka pogodnu za specifine zahteve, odnosno programe.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBPaplikativni programi

    sistemski pozivi

    upiti emabaze podataka

    DML predkompajler

    procesorupita

    DDLkompajler

    menaderbaze podataka

    prevedeni aplikativni programi

    korisniciaplikacija

    aplikativni programeri

    interaktivni korisnici

    administratorbaze podataka

    SUBP

    diskrenikpodataka

    datotekepodataka

    menaderdatoteka

    korisnici

    ARHITEKTURA

    SUBP-a

    EKSTERNINIVO

    KONCEPTUALNINIVO

    INTERNINIVO

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    FUNKCIONALNE KOMPONENTE SUBP-aSUBP se sastoji od sledeih programskih celina (modula):

    Menader datoteka (File Manager) vodi rauna o smetanju datoteka na diskovimapreko kojih se realizuje baza podataka. Menader baze podataka (Database Manager) obezbeuje interfejs izmeu podataka na niskom nivou memorisanih u bazi i aplikativnih programa i upita.Procesor upita (Query Processor) prevodi iskaze upitnog jezika u instrukcije nieg nivoa koje razume menader baze podataka. Najznaajniji i najsloeniji deo ove transformacije je optimizacija upita, tj. nalaenje najpogodnije procedure za realizaciju neproceduralnog upita. DML predkompajler (DML precompiler) konvertuje DML iskaze ugraene u aplikativni program u uobiajene pozive procedura jezika domaina. U cilju generisanja odgovarajueg koda, on mora da sarauje sa procesorom upita.

    DDL kompajler (DDL compiler) prevodi DDL iskaze u skup tabela koje sadre metapodatke. Nakon toga, ove tabele se memoriu u reniku podataka.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    KORISNICI SUBP-aKorisnici gotovih aplikacija ljudi koji nisu informatiki strunjaci i pozivavju gotove programe, pri emu ti programi ulaze u interakciju sa SUBP-om.Aplikativni programeri su informatiki profesionalci koji komuniciraju sa SUBP-om preko DML poziva, koji su ugraeni (embedded) u jezik domain (host language) npr. u UML, C++, Visual Basic. DML prekompajler konvertuje DML iskaze u pozive procedura jezika domaina. Nakon ovakvog preprocesiranja, prevodilac host jezika moe da generie prevedeni (object) kod.Interaktivni korisnici formuliu svoje zahteve u upitnom jeziku, npr. SQL-u. Procesor upita prevodi iskaze upitnog jezika u instrukcije nieg nivoa koje su razumljive za menadera baze podataka (Database Manager). Administrator baze podataka je osoba koja i upravlja podacima koji ine bazu, ali i programima koji pristupaju tim podacima.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    In trfe j siD B M S-a DBMS obezbeuje poseban interfejs za svaku kategoriju korisnika baze podataka. Na

    raspolaganju su sledei interfesi:- Interfejs baziran na menijuDBMS 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 formamaZa 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 interfejsDBMS 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 jezikuOvaj interfejs prihvata zahtev formulisan na nekom prirodnom jeziku (na primer, engleskom) i pokuava da ga razume i obradi.

    - Interfejs za parametarske korisnikeZa 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 podatakaAdministrator 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.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    ZADACI ADMINISTRATORA BAZE PODATAKA

    Kreiranje i odravanje eme baze podataka. Izbor fizike organizacije podataka i metoda pristupa.

    Regulisanje prava pristupa razliitih korisnika razliitim delovima baze podataka.Obezbeivanje sigurnosti i integriteta baze podataka.

    Definisanje strategije oporavka baze podataka posle moguih otkaza.

    Praenje performansi sistema.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    ZADACI MENADERA BAZE PODATAKAInterakcija sa menaderom datoteka oko uvanja, pronalaenja i auriranja podataka u bazi podataka. Primena pravila integriteta. Database Manager kontrolie da li su naruena pravila integriteta koja je formulisao administrator baze podataka i ako jesu preduzima odgovarajue akcije.

    Primena pravila sigurnosti. Database Manager realizuje sigurnosne zahteve koje je formulisao administrator baze podataka oko prava pristupa pojedinih korisnika. Upravljanje konkurentnim pristupom. Konzistentnost podataka moe biti ozbiljno narueana ako vie korisnika istovremeno pristupa bazi podataka. Upravljanje transakcijama i oporavkom.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    OPORAVAK BAZE PODATAKA (Database Recovery)Oporavak baze podataka je vraanje baze podataka u korektno stanje posle nekog otkaza. Mogui otkazi su npr. prestanak napajanja, oteenja diskova na kojima se uva baza, sofverske greke.

    Da bi se oporavak baze podataka mogao da izvri neophodno je da SUBP obezbedi neke redundantne podatke.

    Jedan skup redundantnih podataka se uva u logu ili urnalu. Log datoteka se koristi za otkaze koji fiziki ne oteuju memorijske jedinice (diskove) na kojima se uva baza, npr. kod pada sistema ili pada transakcije.Drugi skup redundantnih podataka se uva u tzv. arhivskoj memoriji, u koju se povremeno prenosi sadraj itave baze podataka (Database Backup). Arhivska memorija slui za oporavak posle otkaza memorijske jedinice.

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    Mone baze podataka podravaju grupisanje operacija u transakcije. TRANSAKCIJA se moe posmatrati kao najmanja jedinica promene u bazi podataka. Transakcija se mora ili potpuno dovriti ili potpuno odbaciti - transakcije ne mogu ostati nedovrene.

    Na primer, pogledajmo bazu u kojoj se vodi evidencija o raunima i iznosima na njima. Pretpostavimo da elite da prebacite novac sa tekueg na tedni raun. To podrazumeva dve operacije:

    smanjivanje stanja na tekuem raunu poveavanje iznosa na tednom raunu.

    Ako se neka od ovih operacija zavri neuspehom, druga treba da se poniti. U suprotnom e neko (banka ili vlasnik rauna) biti oteen. Ove dve operacije sainjavaju jednu transakciju koja se mora u celini zavriti uspeno ili neuspeno.

    Transakcije podravaju mehanizmi koji se nazivaju potvrivanje (engl. commitment) i ponitavanje (engl. rollback). Prvo obavetavamo server da zapoinje transakcija. Zatim obavljamo pojedine operacije koje sainjavaju transakciju. Ako se u toku bilo koje operacije desi greka, obavetavamo server da poniti celu transakciju. To znai da e server odbaciti sve to je uraeno i vratiti bazu u stanje u kome je bila pre poetka transakcije. Ako se sve operacije obave uspeno, obavetavamo server da potvrdi transakciju.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    TRANSAKCIJA (Transaction) baze podataka niz operacija nad bazom koji odgovara jednoj logIkoj jedinici posla u realnom sistemu.

    Primer:Uitaj iznosp za prenos;Nai raun R1 sa koga se iznosp skida;Upii iznos R1 - iznosp na raun R1;Nai raun R2 na koga se iznosp stavlja;Upii iznos R2 + iznosp na raun R2

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    OSOBINE TRANSAKCIJE Transakcija u izvrenju mora da ima tzv. ACID osobine:

    Atominost (Atomicity). Zahtev da se ili sve operacije nad bazom podataka uspeno obave ili nijedna.Konzistentnost (Consistency). Pre poetka i posle okonanja transakcije stanje baze podataka mora da zadovolji uslove konzistentnosti. Za vreme obavljanja transakcije konzistentnost baze podataka moe da bude naruena.Izolacija (Isolation). Kada se dve ili vie transakcija izvravaju istovremeno, njihovi efekti moraju biti meusobno izolovani. Drugim reima efekti koje izazovu transakcije koje se obavljaju istovremeno moraju biti jednaki efektima nekog njihovog serijskog (jedna posle druge) izvrenja.Trajnost (Durability). Kada se transakcija zavri njeni efekti ne mogu biti izgubljeni, ak i ako se neposredno po njenom okonanju desi neki ozbiljan otkaz sistema.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    POGLEDI Svi podaci u bazi razvrstani su po tabelama, ali te tabele esto ne prikazuju te podatke onako

    kako biste vi eleli da ih vidite. Pogledajmo bazu koja sadri tabele Customer, Employees, Order i OrderDetail. Pregledanjem ovih tabela moete dobiti sve podatke o svakom kupcu i o svakoj porudbini. Medutim, razmotrimo ta jo moemo raditi sa tim podacima:

    Formiranje fakture sa ukupnom vrednou odreene narudbinePrikazivanje kupaca po zemljama

    Prikazivanje zaposlenih i njihovih datuma roenja ali ne i ostalih podataka

    Za ovakve poslove baza nudi alatku koja se naziva pogled. Pogled se umnogome ponaa kao tabela - sadri zapise i polja koji se mogu prikazati u redovima i kolonama. Meutim, za razliku od tabela, pogledi ne uvaju nikakve podatke. Pogledi sadre instrukcije koje DBMS_u omoguavaju da pronae potrebne podatke. Kada otvorite pogled, DBMS izvrava te instrukcije i na osnovu pogleda formira virtuelnu tabelu. Ova tabela postoji samo dok radite s njom - nikad se ne snima na vrsti disk.

    Instrukcije za formiranje pogleda piu se u jeziku koji se naziva Structured Query Langu-age, ili skraeno SQL. Pogledi se formiraju od upita za izdvajanje podataka (engl. select query) - SQL iskaza koji poinju rezervisanom reju SELECT.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    INDEKSI Indeks tabele je po osnovnoj zamisli veoma slian indeksu knjige. Indeks knjige omoguava da

    brzo pronaete pojedine strane. Kada biste u ovoj knjizi eleli da pronaete odeljak u kome se govori o okidaima, ta biste uradili? Najpre biste u indeksu na kraju knjige potraili odrednicu okidai, koja se nalazi pod slovom o. Kada pronaete tu odrednicu, proitali biste broj strane pored rei okidai, a zatim biste vrlo brzo pronali definiciju koja vas zanima. Meutim, pretpostavimo da ovoj knjizi nije pridruen nikakav oblik organizacije - nema indeksa, nema tabele sadraja, ne postoje ak ni poglavlja, ni brojevi strana. Kako biste u tom sluaju pronali re okida? nepodnoljivo sporo.

    Indeksi mogu biti identifikujui i neidentifikujui. Identifikujui indeks slui za ograniavanje podataka koje moete smestiti u tabelu. Na primer, ako od polja nazvanog VendorNumber (ifra proizvoaa) napravite identifikujui indeks, onda svi zapisi u tabeli moraju imati razliite vrednosti u polju VendorNumber; baza vam nee dozvoliti da snimite zapis u kome se vrednost polja VendorNumber poklapa sa vrednou tog istog polja u nekom ve snimljenom zapisu u bazi.

    Indeksi mogu biti grupiui i negrupiui. Ovi izrazi se odnose na fiziki redosled u kome se uvaju podaci tabele. Ako od polja CustomerlD iz tabele Customers formirate grupiui indeks, zapisi se snimaju na disk redom koji zavisi od vrednosti polja CustomerlD. Formiranje liste kupaca sortirane po vrednosti polja CustomerlD u tom sluaju je znatno bre, ali je dodavanje zapisa u tabelu Custormers sporije jer se postojei zapisi moraju premetati da bi se napravilo mesto za novi zapis tamo gde taj zapis po svom polju CustomerlD pripada.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    Kada za pronalaenje zapisa koristimo obian indeks, moramo da navedemo tanu vrednost koja je zabeleena u indeksu. Korienje tekstualnog indeksa omoguava pretraivanje na prirodniji nain. Na primer, tekstualni indeks moe da se koristi za traenje zapisa koji ispunjavaju bar jedan od uslova:

    Zapis sadri re povezati. Zapis sadri re povezati ili bilo koji oblik te rei: povezivanje ili

    povezuje. Zapis sadri rei povezati i mrea u proizvoljnom redosledu. Zapis sadri re povezati ali ne sadri rei raskinuti vezu. Zapis sadri rei povezati i mrea a izmeu ovih rei nema vie od

    tri druge rei.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    Kreiranje indeksa nad jednim atributom koji nije primarni. Zadata je tabela GRAANIN

    (matbr#, prezime, ime, datro, adresa) Neka je INDGRAD formirana indeksna datoteka

    GRAANININDGRAD

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    Uskladitene procedure Uskladitena procedura ( engl. stored procedure ) je upit koji se uva u serverovoj

    bazi podataka i nije ugradena u kod eone komponente aplikacije ( obino je napisana u Visual Basic_u ili nekom drugom slinom jeziku ) koja se instalira na klijentskim mainama. Zato upite uvamo u bazi podataka na serveru? Za to postoje dva veoma dobra razloga, a prvi od njih jeste poboljavanje performansi.

    Na koji nain uskladitene procedure poboljavaju performanse? Na primer, upit koji prikazuje sve autore iz baze podataka Pubs koji ive u gradu Ouklend (Oakland) izgledao bi otprilike ovako:

    USE Pubs SELECT au_fname, au_lname, address, city, state, zip FROM authors WHERE city = 'Oakland' ORDER BY au_lname DESC

    Iako ovaj upit na prvi pogled ne izgleda mnogo obiman ( samo pet redova teksta ), zamislite da 5000 korisnika u mrei izvrava isti upit po ceo dan tako to ovaj upit alju serveru kroz mreu. To znai ve poprilino poveanje saobraaja u mrei, to moe da prouzrokuje zaguenje.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    Da bi uklonili uska grla i obezbedili da mrea radi punom brzinom, treba da smanjimo koliinu koda koji se mreom alje od klijentskih maina ka serveru, ime se smanjuje i obim saobraaja u mrei. Da bi to postigli, dovoljno je da kod upita smestimo na server, a ne na klijentske raunare, a to emo uraditi ako upit pretvorimo u uskladitenu proceduru. Kada napravimo uskladitenu proceduru, jedini kod koji korisnici treba da poalju kroz mreu, da bi dobili podatke koji im trebaju, izgledao bi otprilike ovako:

    EXEC ime_uskladitene_procedure

    Druga prednost uskladitenih procedura u poredenju sa ad hoc upitima jeste prevoenje. Kada server prevodi upit, on ispituje da li u upitu ima spajanja tabela i uslova zadatih odredbom WHERE, a zatim poredi upit sa svim raspoloivim indeksima kako bi utvrdio onaj ( ako ga pronae ), koji bi korisniku najbre obezbedio rezultate. Poto server utvrdi najpogodnije indekse, on pravi plan izvravanja ( to je skup uputstava SQL Serveru o tome kako treba da izvri upit ) i smeta ga u memoriju. Ad hoc upite treba prevoditi pri gotovo svakom izvravanju, dok su uskladitene procedure ve prevedene.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    Uskladitena procedura se pravi pomou iskaza CREATE PROCEDURE. Na primer, jednostavnu uskladitenu proceduru za izdvajanje podataka o odreenom kupcu mogli bi da napravimo pomou sledeeg iskaza:

    CREATE PROCEDURE GetCustomer @ c u s t i d .c h a r (5 ) AS SELECT * FROM Customers WHERE CustomerlD = @custid

    Ovde je @custid ulazni parametar uskladitene procedure. Uskladitena procedura prosleduje aplikaciji iz koje je pozvana rezultate iskaza SELECT. Uskladitena procedura se poziva pomou iskaza EXECUTE:

    EXECUTE GetCustomer 'ALFKI'

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    OKIDAI Okidai su posebna vrsta uskladitenih procedura. Okidai se mogu zamisliti kao

    ,,psi uvari" baze podataka. Izvravanja okidaa ne pokree korisnik, ve server baze podataka prilikom odreenih operacija nad tabelom:

    Okida tipa INSERT aktivira se kad god se nov zapis umetne u tabelu. Okida tipa DELETE aktivira se kad god se zapis izbrie iz tabele. Okida tipa UPDATE aktivira se kad god se postojei zapis u tabeli promeni.

    Okidai su korisni ako elite da baza automatski reaguje na akcije korisnika. Na primer, kada se zapis izbrie iz radne tabele, korisno je da se njegova kopija ipak sauva u arhivskoj tabeli kako bi ostao trag koji omoguava praenje aktivnosti. To moete postii tako to ete formirati okida tipa DELETE za prvu tabelu.

    Okidai mogu da se koriste kao sofisticiraniji i fleksibilniji oblik ogranienja. Ogranienja se mogu primenjivati na podatke iz jedne tabele dok okidai mogu da pristupaju celoj bazi.

    Pretpostavimo da elite da dozvolite generisanje novih narudbina samo onim kupcima koji nemaju zaostale neizmirene raune. To ete postii tako to ete napisati okida tipa Insert koji koristi pogled na tabelu Invoices (rauni) da bi ustanovio da li narudbina treba da bude prihvaena.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    Na primer, ako nekim korisnicima uskratite dozvolu za dodavanje novih podataka, oni nee moi da dodaju nove zapise. Isto vai i za dozvole za auriranje, odnosno za brisanje podataka - ako korisniku uskratite bilo koju od njih, odgovarajua operacija se nee izvravati.

    Sa druge strane, kada korisniku dodelite bilo koju od ovih dozvola, on moe da radi ta god eli, gotovo bez ikakvog ogranienja.

    Ove metode su pogodne za primenu jednostavnih pravila poslovne logike, npr.

    zaposleni u slubi marketinga ne mogu da briu, ali mogu da umeu nove podatke ili ne moe se izbrisati kupac za koga postoji otvorena porudbina

    Okidai se aktiviraju (ili se izvravaju) kad god neko pomou SQL komande pokua netoda uradi u tabeli. im to korisnik pokua, DBMS izvrava okida i potrebne informacije smeta u tabelu okidaa (engl. trigger table), kao i u specijalnu tabelu koja se dri u memoriji, a zove se tabela komande inserted, delete ili update . To znai, da sada zapis postoji u dve tabele, tj. u tabeli okidaa i u tabeli primenjene komande.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2)); Query OK, 0 rows affected (0.03 sec)

    mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account -> FOR EACH ROW SET @sum = @sum + NEW.amount; Query OK, 0 rows affected (0.06 sec) Sad je kreiran triger. Testirajmo njegov rad.

    mysql> SET @sum = 0; mysql> INSERT INTO account VALUES(137,14.98),(141,1937.50),(97,-100.00); mysql> SELECT @sum AS 'Total amount inserted';

    +------------------------------+| Total amount inserted |+------------------------------+| 1852.48 |+------------------------------+

    Dakle, vrednost promenljive @sum ( zbog parametara naredbe INSERT ) je 14.98 + 1937.50 - 100, to jest 1852.48.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    SISTEMSKE USKLADITENE PROCEDUREMnoge baze podataka koje podravaju uskladitene procedure, isporuuju se sa

    izvesnim brojem gotovih uskladitenih procedura. Te procedure obavljaju neke este poslove i projektanti baza podataka ve su ih optimizovali.

    Sistemske uskladitene procedure obavljaju operacije kao to su: prikazivanje liste svih korisnika koji su trenutno prijavljeni na server prikazivanje liste svih tabela i pogleda u bazi dodavanje objekata kao to su operateri i pretplatnici u bazu konfigurisanje servera brisanje poslova koji vie nisu potrebni prikazivanje objanjenja o objektima i operacijama baze slanje e-pote direktno iz baze upravljanje bezbednou objekata.

    Ako ste administrator baze, ustanoviete da temeljno poznavanje sistemskih uskladitenih procedura moe znatno da vam olaka RAD SA BAZOM, upravljanje serverom ili grupom servera.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    VLASNITVO I BEZBEDNOST Serveri baza podataka kontroliu pristup podacima. U nekim sluajevima, to se svodi

    na isporuivanje podataka svima koji to trae. Meutim, veina servera sadri i bezbednosni model pomou koga moete zatititi poverljive podatke.

    Bezbednosni model uslovljen je uzajamnim delovanjem nekoliko entiteta: prijavni nalozi korisnici uloge vlasnici dozvole.

    Prijavni nalozi su nalozi kojima se korisnici prijavljuju na server. Server nudi dva naina identifikacije korisnika. Stariji nain zasniva se na korienju korisnikih imena i lozinki koje uva sam server. Nedavno je bezbednosni model servera integrisan sa bezbednosnim modelom naprimer Windowsa NT. To omoguava da se korisnici prijave samo na Windows NT/2000 i da ne moraju posebno da se identifikuju i na SQL Serveru.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    Uloge omoguavaju da korisnike udruite u grupe kako biste lake upravljali njima. Pomou uloga moete izdvojiti akcije koje mogu da obavljaju zaposleni u raunovod-stvenom sektoru, na primer. Zatim moete dodeljivati prava lanovima raunovod-stvenog sektora pojedinano tako to ete ih proglasiti nosiocima odgovarajuih uloga.

    Svaki objekat (tabela, pogled, uskladitena procedura itd.) u bazi ima vlasnika. Ako ne navedete drugaije, vlasnik objekta jeste korisnik koji je formirao objekat a on je istovremeno i jedini koji ga moe koristiti. Vlasnici mogu da izdaju dozvole drugim korisnicima. Od dozvola zavisi ta moete initi sa objektom. Na primer, neko moe da ima dozvolu da uitava podatke pomou pogleda, ali ne i da ih menja.

    Vlasnici su deo punog imena u emi imenovanja server objekata.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    POSLOVI, ALARMI I OPERATORI Sa porastom sloenosti servera baze raste i neophodnost upravljanja tim serverom.

    PA DBMS nudi sistem poslova, alarma i operatora koji omoguavaju da se rutinske operacije kao i odziv na neuobiajene okolnosti automatizuju.

    Posao je skup zadataka koje server moe da obavi. Zadaci mogu da sadre SQL iskaze, Windowsove komande, izvrne programe ili ActiveX skriptove. Poslovi se mogu izvravati na zahtev sa konzole, periodino ili kao odziv na odreene okolnosti. Poslovi mogu da sadre i uslovnu logiku koja odreduje ponaanje u sluaju neuspenog ishoda pojedinih zadataka. Poslovi su najpogodniji za automatizaciju rutinskih operacija u bazi. Na primer, posao koji treba da odrava bazu moe da proverava integritet podataka i da ih snima na traku svake noi prema utvrdenom rasporedu.

    Alarmi su automatski odzivi na greke. DBMS u odreenim okolnostima prijavljuje greke - na primer, ako se disk napuni u toku upisivanja podataka. Dodeljivanjem alarma tom dogaaju moete da pokrenete posao koji e se izvravati u takvim sluajevima.

    Operatori se identifikuju pomou adresa e-pote. DBMS moe da bude konfigurisan da obavesti operatera preko e-pote ili pejdera da se alarm aktivirao.

    OSNOVNE FUNKCIJE

  • BAZE PODATAKA

    DBMS- Sistem upravljanja bazom podataka

    FUNKCIJE SUBP-a OPORAVAKJEZICI BAZA PODATAKA ARHITEKTURA SUBP-a TRANSAKCIJASUBP

    REPLIKACIJA irenjem mrea i raunarskih sistema u protekloj deceniji, nove mogunosti baza

    podataka postale su izuzetno znaajne. Glavna meu njima jeste replikacija. Osnovna ideja jeste da isti podaci budu dostupni na razliitim lokacijama u priblino istom trenutku.

    Zamislimo firmu koja ima dve kancelarije sa po 20 korisnika koje su povezane sporom i skupom iznajmljenom telefonskom linijom ( ili nepouzdanom Internet vezom ). Ako u jednoj kancelariji instalirate server baze, svi korisnici iz druge kancelarije morae da alju zahteve preko spore, skupe ili nepouzdane linije. Meutim, mogli bi da instaliramo servere baze u obe kancelarije a da njihove sadraje sinhronizujemo replikacijom.

    Replikacija podrazumeva postojanje izdavaa, distributera i pretplatnika. Izdava je baza koja svoje podatke stavlja na raspolaganje drugim bazama. Podaci se grupiu u obliku lanaka ( to su tabele ili pogledi izvueni iz odreenih tabela ) koji su organizo-vani u publikacije (grupe lanaka). Distributer je baza iji je posao da sakuplja publikacije i da ih stavlja na raspolaganje drugim bazama. Te druge baze su pretplatnici. One preuzimaju informacije od distributera i koriste ih za auriranje svojih kopija baze.

    Slide Number 1Slide Number 2Slide Number 3Slide Number 4Slide Number 5Slide Number 6Slide Number 7Slide Number 8Slide Number 9Slide Number 10Slide Number 11Slide Number 12Slide Number 13Slide Number 14Slide Number 15Slide Number 16Slide Number 17Slide Number 18Slide Number 19Slide Number 20Slide Number 21Slide Number 22Slide Number 23Slide Number 24Slide Number 25Slide Number 26Slide Number 27Slide Number 28Slide Number 29Slide Number 30Slide Number 31Slide Number 32