Nove oblasti primene baze podataka

Funkcije SUBP-a neophodne za realizaciju same baze podatka predstavljene su na slici. Korisnik pristupa bazi podataka bilo preko aplikacije sa ugnježdenim upitima ili direktno preko upitnog jezika.

Optimizator upita transformiše upit u optimalnu (ili, preciznije, zadovoljavajuću) proceduru, a interpretatori, predprevodioci i prevodioci transformišu program u izvršni kod koji predstavlja jednu ili više sekvencijalnih ili ugnježdenih transakcija.

Slika 1

Slika 1

Transakcija se najopštije definiše kao logička jedinica posla koja se izvršava atomski: ili su svi pristupi bazi uspešno obavljeni ili je baza podataka ostala neizmenjena.

Obradom transakcija upravljaju sistem za upravljanje konkurentnom obradom transakcija koji ne dozvoljava da dođe do neželjene interferencije transakcija i sistem za oporavak baze podataka koji, u slučaju nekog hardverskog ili softverskog otkaza, dovodi bazu podataka u konzistentno stanje. Za oporavak baze podataka koristi se log memorija u kojoj se, za svaku transakciju, pamte stanja baze pre i posle njenog izvršenja.

Preko fajl menadžera SUBP posmatra bazu podataka kao skup datoteka. Fajl menadžer se obraća disk menadžeru za odgovarajuće stranice (blokove) u kojima se nalaze zahtevani rekordi pojedinih datoteka.

Podaci na disku su organizovani na različite načine sa stranicom (blokom) kao osnovnom jedinicom. Jedan od najznačajnijih načina organizovanja su indeksne strukture, koje zahtevaju formiranje posebne memorijske jedinice uz BP u kojoj se čuvaju indeksi. Rečnik podataka je „baza podataka o bazi podataka” i koristi se za mnoge različite primene.

Fizička struktura baze podataka – hijerarhijska memorija

Baze podataka se, po pravilu, smeštaju kao datoteke sa rekordima na neku spoljnu (sekundarnu) memoriju, najčešće magnetne diskove. Međutim, neophodno je naglasiti da, u poslednje vreme, postoje tendencije da se, s jedne strane, da bi se ubrzao pristup podacima, razvijaju tzv. baze podataka u centralnoj (glavnoj) memoriji (Main-memory DBMS), a sa druge, veoma velike baze podataka na tercijalnim memorijama.

Hijerarhijska memorija. Keš memorija je veoma brza memorija, relativno malog kapaciteta (reda veličine megabajta). U njoj se nalaze instrukcije u izvršenju i podaci koje te instrukcije koriste. Kopije ovih instrukcija i podataka se nalaze i u glavnoj memoriji. Kada se izvršava neka instrukcija, odgovarajući podaci se prvo traže u keš memoriji, pa ako se u njoj ne nađu, kopiraju se iz glavne u keš memoriju. Procesor čita ili upisuje podatke u keš memoriju brzinom sa kojom izvršava instrukcije, a prenos podataka između keš i glavne memorije uzima gotovo 100 pula više vremena.

U jednoprocesorskim računarima promenjeni podatak u kešu se vraća u glavnu memoriju tek kada se oslobađa mesto u kešu za druge podatke, dok se u višeprocesorskim računarima to obavlja odmah sa promenom podatka. U centralnoj (glavnoj) memoriji se nalaze programi koji se obrađuju i njihovi podaci. Centralna memorija je memorija sa direktnim pristupom (Random Acess). U njoj se, posle pristupa jednom bajtu, može pristupiti bilo kom drugom za isto vreme pristupa.

Slika 1

Slika 1

 

Većina računara koriste 32-bitni adresni registar, što znači da se može definisati 232 različitih adresa. Kako je bajt najmanja adresibilna jedinica, takvi adresni registri mogu da podrže centralnu memoriju veličine 4 gigabajta. Ako je (što je još uvek uobičajeno) centralna memorija manjeg kapaciteta, adresiranje se može proširiti i na disk, preko funkcije operativnog sistema koja se naziva virtuelna memorija.

Jedinica razmene podataka između centralne memorije i diska je blok ili stranica (veličine 4K-56K). Operativni sistem razbija blok u adresibilne bajtove u centralnoj memoriji. SUBP koji koristi samo glavnu memoriju zasniva se na konceptu virtuelne memorije. Očigledno je da ovakav SUBP može biti veoma dobro rešenje za baze podataka manje od 4 gigabajta, kada bi svaki podatak u njima bio direktno pristupan.

Konvencionalni sistemi za upravljanje bazom podataka posmatraju bazu podataka kao skup fajlova i koriste tzv. fajl menadžer operativnog sistema za razmenu podataka između centralne memorije i diska. Ako se DBMS oslanja i na neku tercijalnu memoriju, koristi se isti mehanizam.

Tercijalna memorija se koristi za čuvanje veoma velike količine podataka, reda veličine terabajta. Centralnu memoriju smo definisali kao memoriju sa direktnim pristupom, disk se, kao što će se videti može nazvati memorijom sa poludirektnim pristupom, a tercijalne memorije su memorije sa indirektnim pristupom.

U memorijama sa indirektnim pristupom vreme pristupa nekom podatku značajno varira od položaja podataka na odgovarajućoj jedinici. Osnovne vrste tercijalnih memorija su razne vrste magnetnih traka, „džuboks optičkih diskova”, silosi magnetnih traka (skup rekova traka kojima se, preko robota, može direktno pristupiti, postaviti ih na mehanizam za čitanje i pisanje).

Diskovi

Na slici 3 je prikazana arhitektura jednog disk sistema. Podaci se pamte ili samo na jednoj ili na obe strane jedne magnetne ploče. Jedna ili više magnetnih ploča čini jedan magnetni disk ili tzv. Disk Pack. Podaci se pamte po tragovima na jednoj ili obe strane ploče. Broj tragova na ploči se kreće u opsegu od nekoliko stotina do nekoliko hiljada, a kapacitet jednog traga je od nekoliko KBy do 150 KBy.

Tragovi mogu da se podele na sektore, koji su hardverski određeni i ne mogu se menjati. Na nekim diskovima tragovi nisu podeljeni u sektore. Trag se, takođe, može podeliti na blokove (stranice). Ovu podelu vrši operativni sistem za vreme „formatiranjadiska. Veličina bloka je 512 do 4096 bajta. Blokovi su međusobno odvojeni sa specijalno kodiranim podacima koji čine tzv. „međublokovsku prazninu” (Interblocks Gap). Disk sa sektorima deli sektore na blokove.

Disk se postavlja na tzv. disk drajv (Disk Drive), mehanizam koga čine motor koji okreće disk i skup glava za čitanje i upisivanje podataka. Postoje diskovi sa fiksnim glavama i diskovi sa pokretnim glavama. Kod diskova sa fiksnim glavama svaki trag na svim stranama ploča snabdeven je sa po jednom glavom za čitanje. Kod diskova sa pokretnim glavama svakoj strani ploče na kojoj se čuvaju podaci odgovara jedna glava za čitanje i upisivanje. Glave su povezane na zajednički mehanizam za pokretanje glava.

Da bi se pristupilo podatku, glave se moraju pomeriti na trag na kome se podatak nalazi. U jednom trenutku vremena sve glave se nalaze na istom broju traga svih strana ploča, zbog toga što su vezane na zajednički mehanizam za pokretanje. Disk se stalno okreće brzinom od 3600 do 10 000 obrta u minuti. Disketa i CD rom se ne okreću stalno, već tek po dobijanju zahteva i onoliko dugo koliko je potrebno da se taj zahtev ispuni.

Slika 1

Slika 3

 

Tragovi istog poluprečnika na svim pločama (sa obe strane, ako se tako pamte podaci) čine cilindar diska. Očigledno je da se svim podacima na jednom cilindru može pristupiti bez pomeranja glava za čitanje. Zbog toga se obično primenjuje tzv. „cilindarska koncepcija” smeštanja podataka na disk: prvih n zapisa neke datoteke smešta se na cilindar k, drugih n na cilindar k+1, sledećih n na cilindra k+2, itd.

Vreme pristupa podatku na disku je:

Ta = Tp + Tag + Tr + Tt

Gde je:

  • Tp – vreme pozicioniranja glava na odgovarajući cilindar, za diskove sa pokretnom glavom.
    Tp tipično iznosi 8-9 milisekundi, za velike diskove na serveru, ili 12-14 milisekundi za diskove na radnim stanicama (personalnim računarima). Očigledno je da ovo vreme za diskove sa fiksnim glavama ne postoji.
  • Tag vreme aktiviranja odgovarajuće glave za čitanje, odnosno vreme izbora traga u okviru cilindra. Pošto se aktiviranje obavlja elektronski, ovo vreme je zanemarljivo za obe vrste diskova.
  • Tr – rotaciono kašnjenje, odnosno vreme potrebno da disk svojim okretanjem dovede odgovarajući blok pod aktiviranu glavu za čitanje i upisivanje. Očigledno je da vrednost ovog vremena zavisi od brzine okretanja diska.
  • Tt vreme prenosa bloka podataka sa diska u centralnu memoriju, koje je obično mnogo manje od vremena pozicioniranja glava i rotacionog kašnjenja.

Očigledno je da diskovi sa fiksnom glavom imaju mnogo kraće vreme pristupa podatku. Međutim, zbog velikog broja glava za čitanje i pisanje oni su skupi, pa se relativno retko koriste. Za diskove sa pokretnim glavama vreme pristupa je reda nekoliko desetina milisekundi.

Jedinica razmene podataka između centralne memorije i diska je blok (stranica). Hardverska adresa bloka na disku je definisana sa tri elementa:

  • broj cilindra,
  • broj glave za čitanje i upisivanje,
  • broj bloka u okviru traga (broj cilindra i broj glave određuju trag).

Kontinualni adresni prostor u centralnoj memoriji u koga se prihvataju podaci sa diska (i drugih spoljnih memorija) i iz koga se upisuju podaci na njega, naziva se bafer. Bafer služi da uskladi brzinu rada centralne jedinice sa brzinom pristupa podacima na spoljnim memorijama. Jedinica razmene podataka između programa i bafera je (logički) rekord. Iz bloka primljenog u bafer, preuzimaju se pojedinačni logički rekordi. U baferu se, grupisanjem logičkih rekorda, formira blok koji će biti memorisan na disku.

Disk menadžer

Disk menadžer je komponenta operativnog sistema.

Slika 4

Slika 4

 

On je odgovoran za sve ulazno – izlazne operacije koje se obavljaju nad strukturom blokova koja je prikazana na slici.

Fajl menadžer tretira disk kao kolekciju skupova blokova (stranica). Svaki skup blokova ima svoj jedinstveni identifikator. Svaki blok ima, takođe, svoj jedinstveni identifikator barem u okviru jednog skupa blokova, a najčešće i u okviru celog diska. Rekord u okviru bloka se identifikuje sa internim identifikatorom koji u sebi sadrži identifikator bloka u kome se nalazi i relativni položaj rekorda u odnosu na kraj bloka.

Obavljajući ulazno izlazne operacije, disk menadžer zadovoljava zahteve fajl menadžera i snabdeva ga zahtevanim blokovima. Fajl menadžer operiše sa rekordima u okviru blokova. SUBP tretira disk kao kolekciju datoteka (fajlova). Svaki fajl se identifikuje preko svoga imena ili identifikatora.

Na slici 4 su prikazani skupovi blokova za podatke o studentima (S), predmetima (P) i prijavama za polaganje ispita (PR). Mada se u jednom bloku obično nalazi više rekorda, zbog jednostavnosti je pretpostavljeno da jedan blok sadrži samo jedan rekord. Skupovi blokova se realizuju kao spregnute liste u kojima su blokovi povezani preko pokazivača koji su za svaki blok prikazani u desnom gornjem uglu.

Adresa bloka je data u levom gornjem uglu. Sa X je označen kraj liste blokova. U bloku sa adresom 0 (koji se obično nalazi na nultom cilindru i nultom tragu diska) smešten je tzv. direktorijum diska (direktorijum skupova blokova, nulti blok). Direktorijum diska daje početnu adresu za svaku listu blokova, kao i za posebnu listu praznih blokova. Kada disk menadžer dodaje novi blok, uzima prvi iz liste praznih blokova, a kada se neki blok oslobodi, postavlja se na prvo mesto u listi praznih blokova. Na slici su prikazane liste blokova dobijene na taj način što je SUBP prvo ubacio pet studenata, zatim šest predmeta i na kraju trinaest prijava.

Disk menadžer – primer

Na slici je prikazan izgled diska posle sledećih operacija:

  1. izbačen je student S2, a zatim i njegove prijave PR8, PR11, PR12. Svi oslobođeni blokovi ubačeni su u listu praznih blokova sa adresom 2 na prvom mestu,
  2. ubačen je predmet P7 na taj način što je za njega uzet prvi slobodan blok (adresa2) i zatim proširena lista predmeta,
  3. ubačen je student S6,
  4. ubačena je prijava PR14,
  5. ubačen je student S7,
  6. ubačena je prijava PR15,
  7. izbačena je prijava PR5.

Fajl menadžer treba do omogući da SUBP posmatra disk kao kolekciju datoteka (fajlova) pri čemu se datoteka definiše kao kolekcija rekorda istog tipa. Očigledno je da fajl menadžer treba da omogući:

  1. izvlačenje zadatog rekorda iz fajla,
  2. dodavanje novog rekorda u fajl,
  3. izbacivanje rekorda iz fajla,
  4. kreiranje novog fajla,
  5. uništavanje postojećeg fajla.
Slika 5

Slika 5

 

Imajući u vidu način povezivanja blokova i način smeštanja rekorda u blok, očigledno je da je moguće ostvariti sekvencijalan pristup rekordima jedne datoteke, čak i kada nekoliko fajlova dele istu listu blokova. Rekordi u datoteci su najčešće sekvencijalno uređeni po primarnom ključu ili, ponekad, po hronološkom redu njihovog nastanka. Sekvencijalni pristup, međutim, nije uvek najpovoljniji pristup. Zbog toga se definišu i drugačije strukture datoteka i drugačije vrste pristupa.

Paralelni pristup jedinicama diskova

Tehnologija diskova se znatno sporije razvija nego tehnologije ostalih komponenti računarsko-komunikacionih sistema. Diskovi postaju usko grlo u savremenim informacionim sistemima u kojima se zahteva skladištenje velike količine podataka složene strukture, kakvi su, na primer, multimedijalni podaci. Najveći napredak je ostvaren paralelizacijom pristupa jedinicama diskova preko tzv. RAID (originalno Redundant Arrays of Inexpensive Disks, kasnije je Inexpensive zamenjeno sa Independent).

Na slici prikazan je princip paralelizacije na logičkom nivou. Umesto da se ceo fajl nalazi na jednom disku, blokovi istog fajla su raspoređeni na paralelne disk jedinice, naizmenično po jedan blok na svaki disk.

Očigledno je da se na ovaj način značajno ubrzava pristup podacima na disku, zbog toga što se jednom logičkom fajlu pristupa preko više, u ovom slučaju četiri, disk jedinica. Četiri bloka se prenose u jednom pristupu, u prvom pristupu blokovi A1-A4, u drugom A5-A8 i tako dalje.

Slika 6

Slika 6

 

Granularnost razmeštaja podataka može biti različita. Najmanja jedinica razmeštaja je bit, kada, na primer, osam jedinica diskova pokriva jedan bajt.

Pouzdanost sistema je osnovni problem u paralelizaciji pristupa podacima. Verovatnoća kvara sistema od n diskova je n puta veća nego verovatnoća kvara jednog diska. Zbog toga RAID tehnologija obezbeđuje određenu redundansu podataka da bi se, u slučaju kvara, sistem paralelnih diskova lako oporavio. Postoje više različitih načina realizacije redundanse. Granularnost razmeštaja i način realizacije redundanse označavaju tzv. nivo RAID tehnologije.

Na slici 6 prikazan je primer „nivoa 1″ i „nivoa 3″. Osenčeni diskovi predstavljaju diskove sa redundantnim podacima. Nivo 1 podrazumeva potpuno redundatno memorisanje sadržaja diskova. Ova tehnika poboljšava i brzinu čitanja podataka sa diska jer se može izabrati osnovni ili redundantni skup diskova u zavisnosti od toga gde će rotaciono kašnjenje biti manje.

Brzina upisivanja podataka se smanjuje jer je neophodno svaki podatak upisati i na osnovni i na redundatni disk. Nivo 3 ne pamti sve podatke redundantno, već koristi specifičan algoritam za oporavak diskova. Redundantni disk sadrži sumu (binarnu sumu) podataka sa ostalih diskova. U slučaju otkaza jednog diska, njegovi podaci se oporavljaju preko procesa sličnog oduzimanju.

Tutorijali - Materijali za učenje