SISTEMI ZA UPRAVLJANJE BAZAMA PODATAKA (SUBP)

Tema: SISTEMI ZA UPRAVLJANJE BAZAMA PODATAKA (SUBP) 1/22 Sistem za upravljanje bazom podataka (SUBP) SUBP je programski proizvod koji omogućava efi...
Author: Joseph Poole
14 downloads 1 Views 1MB Size
Tema:

SISTEMI ZA UPRAVLJANJE BAZAMA PODATAKA (SUBP)

1/22

Sistem za upravljanje bazom podataka (SUBP) SUBP je programski proizvod koji omogućava efikasno:  formiranje,  korišćenje i  menjanje BP. Da bi mogao izvršavati ove zadatke, SUBP: 1. je zasnovan na nekom teorijskom modelu podataka, 2. podržava programske jezike za: - definisanje strukture i uslova integriteta BP, - selekciju i izmene sadržaja BP, 2/22

1

Sistem za upravljanje bazom podataka (SUBP) 3. Poseduju mehanizme za: - upravljanje transakcijama, - zaštitu od neovlašćenog korišćenja, - zaštitu od uništenja, - obezbeđenje performantnog korišćenja BP, - upravljanje distribuiranim delovima BP. Modeli podataka i programski jezici (jezici baza podataka) predstavljaju posebne teme.

3/22

Upravljanje transakcijama  U bazi podataka se, preko programa, registruju rezultati nekih poslova koji se obavljaju u realnom vremenu. Primer: Ako u nekom bankarskom IS korisnik želi da prebaci novac sa jednog računa na drugi, tada će se ova logička jedinica posla obaviti na sledeći način: Učitaj iznosp za prenos; Nađi račun R1 sa koga se iznosp skida; Upiši iznosR1 – iznosp na račun R1; Nađi račun R2 na koji se iznosp stavlja; Upiši iznosR2 + iznosp na račun R2.

 Svaka operacija nad bazom može da menja njeno stanje, ali je za korisnika od značaja samo ukupna promena koju izaziva logička jedinica posla. 4/22

2

Upravljanje transakcijama  Transakcija je niz operacija nad bazom podataka koja odgovara jednoj logičkoj jedinici posla.  U situaciji kada više programa istovremeno (konkurentno) zahteva pristup istim podacima ovi zahtevi mogu biti konfliktni te ih SUBP mora razrešiti i tako sprečiti neželjene interference programa.  Upravljanje transakcijama treba da obezbedi konzistentno stanje BP u uslovima konkurentne obrade podataka. Ako jedan program učita neke podatke, a drugi ih odmah nakon toga izmeni u BP, prvi će program koristiti netačne podatke! 5/22

Upravljanje transakcijama iR u BP

1000

T1

čitaj iR

T2 iR u rad. podr. T1 iR u rad. podr. T2

1000

1000 postavi iR=iR-500

500

800

piši iR postavi iR=iR-200

čitaj iR 1000

1000

piši iR

1000

500

500

500

500

1000

1000

800

800

800

6/22

3

Upravljanje transakcijama  Rešenje problema se traži u zaključavanju.  Zaključavanjem, transakcija sprečava druge transakcije da pristupe tim podacima.  Deo BP koji se zaključava može biti: – skup pojava TE ili TP, – određene pojave nekog TE ili TP, – samo jedna pojava, – samo deo jedne pojave.  To je objekat zaključavanja. 7/22

Upravljanje transakcijama  Pored ostalih naredbi, program mora sadržati i naredbe zaključavanja i otključavanja ZAKLJUČAJ iR ČITAJ iR POSTAVI iR= iR - 500 UPIŠI iR OTKLJUČAJ iR

 Sada će T2 početi da se izvršava tek po otključavanju iR.  Uvođenje zaključavanja otvara dva nova problema: 1. izgladnjavanje i 2. uzajamno zaključavanje 8/22

4

Upravljanje transakcijama  Izgladnjavanje je situacija kada transakcija neograničeno čeka, jer stalno neka druga dobija pravo zaključavanja. Rešava se uvođenjem FIFO protokola.  Uzajamno zaključavanje T1

Zaključaj A

...

Zaključaj B

...

...

T2

....

Zaključaj B

...

Zaključaj A

...

Uzajamno zaključano A i B

9/22

Upravljanje transakcijama Tri moguća rešenja uzajamnog zaključavanja: − transakcija traži od SUBP da izvrši sva zaključavanja odjednom, − linearni redosled podataka (prvo A onda B, bez obzira na redosled u programu), − ništa se ne preduzima u cilju sprečavanja, već se uzajamno zaključavanje detektuje, pa se jedna od transakcija vraća na početak, a druga završava.

10/22

5

Zaš Zaštita od neovlaš neovlašćenog koriš korišćenja BP  Rešava se pomoću mehanizama: – operativnog sistema USERNAME, PASSWORD

– samog SUBP-a # SQL GRANT # SQL CREATE VIEW

 Jedan od mehanizama za zaštitu od neovlašćenog korišćenja je podšema ili pogled. To nije i dovoljno; stoga se uvodi privilegija.

11/22

Zaš Zaštita od neovlaš neovlašćenog koriš korišćenja BP  Privilegije se definišu za svakog korisnika i svaki element intenzionalnog opisa BP, a odnose se na dozvolu: – – – –

samo čitanja, čitanja i upisivanja, čitanja i modifikovanja, čitanja i brisanja sadržaja BP.

 Privilegije se unose u autorizacionu tabelu, koja sadrži trojke (korisnik, element intenzionalnog opisa, privilegija). 12/22

6

Zaš Zaštita BP od uniš uništenja  Za zaštitu BP od uništenja, RSUBP koriste sledeće mehanizme: – – – – –

BACKUP (kopiranje BP) RESTORE (restauracija BP) JOURNAL (evidentiranje promena BP) FORWARD RECOVERY (ažur.kopije BP promenama iz JOURNAL-a) ROLL BACK (vraćanje nezavršenih transakcija na početak)

 Ključni mehanizam je vođenje journal datoteke (JOURNAL FILE ili TRANSACTION LOG).  Tu se evidentiraju sve promene izvršene nad bazom podataka. 13/22

Zaš Zaštita BP od uniš uništenja  JOURNAL se dalje koristi za: – ažuriranje kopije BP promenama, pri restauraciji – vraćanju onih promena, koje su u BP izvršile nezavršene transakcije. Vraćanje promena je zadatak upravljača transakcijama (kao komponente RSUBP). Cilj tog vraćanja je stalno održavanje indeksa i tabela u usaglašenom stanju. Ako se neka transakcija ne završi, zbog greške u programu, ili zbog pada sistema, upravljač transakcijama detektuje to stanje (čak i nakon ponovnog dizanja sistema) i automatski poništava izvršene izmene baze podataka, koristeći JOURNAL. 14/22

7

Arhitektura RSUBP Programeri

Korisnici

DBA

Aplikativni pr.

Ad-hoc upiti

Šema BP

DML predprocesor

Procesor upita

DDL kompajler

Progr. objektni kod

Upravljač baze pod.

Upravljač rečnika

Metode pristupa

Upravljač datot.

Sistemski baferi

BAZA PODATAKA I SISTEM KATALOG

SUBP

15/22

Arhitektura RSUBP Najvažniji deo SUBP koji upite transformiše u niz elementarnih instrukcija koje se prosleđuju upravljaču BP.

 Procesor upita

Prihvata upite i analizira eksterne i konceptualne šeme radi detektovanja konceptualnih zapisa neophodnih da bi se udovoljilo zahtevu (proverava pravo pristupa korisnika elementima intenzionalnog opisa BP, formira i održava specijalnu tabelu sa podacima o zaključavanju objekata, ...)

 Upravljač baze podataka

 Upravljač datotekama Manipuliše datoteke koje sadrže podatke i upravlja alokacijom memorijskog prostora na disku. Uspostavlja i održava liste struktura i indeksa definisanih u internoj šemi. Upravljanje fizičkim ulazom/izlazom podataka prepušta odgovarajućim metodama pristupa koje čitaju/pišu podatke iz/u sistemski bafer.

16/22

8

Bitne funkcionalne karakteristike RSUBPRSUBP-a  Rečnik  Funkcionalnost  Produktivnost  Performanse  Distributivnost

17/22

Reč Rečnik podataka  Služi za memorisanje podataka o: – Šemi BP – Korisnicima i ovlašćenjima – Aplikacijama • Menijima • Formama • Programima

 To su podaci o podacima (METAPODACI).

18/22

9

Tipovi reč rečnika  Pasivni - služi za evidentiranje podataka o objektima baze podataka (polje, struktura sloga i sl.), ali ne postoji mogućnost povezivanja tih objekata.

 Aktivni - sadrži i podatke o vezama između objekata, te se može

koristiti za analizu uticaja (“šta se sve menja ako se jedan objekat promeni").

 Dinamički - sadrži objekte i veze ali održava i sve njihove definicje u izvršnom kodu. Ako se menja definicija objekta, automatski se prekompajliraju odgovarajući objekti.

 Distribuirani - sadrži podatke o lokacijskoj distribuciji objekata. 19/22

Idealna organizacija reč rečnika Bitna karakteristika rečnika je da omogući “kasno povezivanje” definicije strukture podataka sa programskim kodom – u momentu izvršavanja SQL izraza. CASE alati Sve se ovde menja

logički i fizički aspekti ažuriranje

Glavni rečnik

Rečnik BP

Rečnik 4GL

RSUBP

4GL software 20/22

10

Funkcionalnost  Najveći doprinos RSUBP je nivo fleksibilnosti, koji RSUBP nude. To je, primarno, posledica separacije fizičkih od logičkih aspekata BP.  Mnoge izmene, kao što su: – dodavanje nove kolone u postojeću tabelu – dodavanje, ili ukidanje indeksa – dodavanje novih tabela, uopšte ne utiču na programe. Ne treba ih rekompilirati. Čak štaviše, te izmene se vrše dinamički, tokom izvršenja programa. 21/22

Efikasnost  Za brz razvoj i implementaciju programa korisnicima stoje na raspolaganju: – Neproceduralni jezici i – Sledeći mehanizmi: • • • •

Ograničenja Okidači Procedure baze podataka Nezavisnost programa i podataka

 Za obezbeđenje efikasne selekcije i manipulisanja sadržajem baze podataka, savremeni SUBP koriste: – Optimizaciju upita – Metode pristupa – Različita rešenja zaključavanja. 22/22

11

Performanse  Optimizator upita, metode pristupa i postupci zaključavanja značajno utiču na performanse korišćenja baze podataka.  Optimizator upita – Suštinska komponenta za obezbeđenje performantne obrade – U manipulacionom jeziku RMP programer zadaje zahtev koristeći intenzionalni opis baze podataka, a zadatak je SUBP da, poznajući: • fizičku strukturu baze podataka • brojeve pojava tipova entiteta i poveznika i • raspodelu vrednosti obeležja, odredi kako taj zahtev treba da se, na efikasan način, izvrši. 23/22

Performanse  Tri osnovne vrste optimizatora upita: – Sintaksni optimizator upita Zasnovan na strukturi samog upita koju određuje programer. Međutim, sa logičke tačke gledišta isti upit može se izvršavati sa veoma različitim vremenima, u zavisnosti od redosleda navođenja obeležja, operatora i uslova. Programer vodi računa o optimalnosti upita.

– Optimizator zasnovan na ceni Koristi restriktivnost operatora poređenja i podatke o brojevima pojava tipova entiteta i poveznika. Svaki operator poređenja ima svoju ocenu restriktivnosti (“=“ je restriktivnije od “>=“). Kombinovanjem ocene restriktivnosti operatora sa brojevima pojava tipova entiteta i poveznika, na koje se operatori primenjuju, dobija se cena “plana izvršenja” upita. SUBP analizira više mogućih planova izvršavanja za dati upit, a realizuje najjeftiniji. 24/22

12

Performanse – Statistički optimizator upita Radi na sličnom principu kao i optimizator zasnovan na ceni, ali koristi još i histograme sa raspodelom vrednosti ključa za donošenje odluke o najboljem planu izvršenja upita. Predstavljaju najbolje rešenje ali je za njihovu primenu potrebno povremeno vršiti inoviranje histograma sa raspodelom vrednosti ključa.

 Metode pristupa SUBP ili koriste usluge upravljača datotekama operativnog sistema, ili imaju svoje metode pristupa. Svi relacioni SUBP podržavaju: – serijsku organizaciju podataka (pile), – indeksnu organizaciju sa B-stablom, a neki SUBP podržavaju još i: – rasutu (hash) i – indeks-sekvencijalnu organizaciju. 25/22

Distributivnost  Potreba efikasnog upravljanja i korišćenja distribuirane baze podataka diktira potrebu postojanja mehanizama, kao što su: – distribuirani rečnik, – dvofazni komit, – automatski replikator, – lokacijska transparentnost – klijent/server arhitektura.

26/22

13

27/22

14