Sunteți pe pagina 1din 23

Protecţia bazelor de date

Este asigurată prin cele două aspecte care trebuie luate în calcul:

a) Controlul integrităţii datelor


1. Integritatea semantică
2. Controlul concurenţei la date
3. Salvarea / restaurarea datelor
b) Controlul securităţii datelor
1. Autorizarea şi controlul accesului la date
2. Tabele virtuale
3. Proceduri speciale
4. Criptarea datelor

optimizarea cererii de regăsire a datelor


1
Integritatea datelor

 Se referă la corectitudinea datelor, dar şi la manipularea acestora


astfel încât să se respecte restricţiile de integritate ale modelului
de date implementat.

optimizarea cererii de regăsire a datelor


2
Integritatea datelor
INTEGRITATEA SEMANTICĂ

 Se referă la prevenirea introducerii de date incorecte şi a


realizării de prelucrări eronate

 Se asigură prin restricţii de integritate:

 implicite: asigurate automat de SGBD

 explicite: asigurate prin program

 În Oracle:

 resticţiile implicite: PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT


NULL, CHECK

 restricţiile explicite: declanşatori (triggeri)

3
Integritatea datelor
CONTROLUL CONCURENŢEI LA DATE

 Se referă la garantarea corectitudinii datelor în cazul prelucrării


tranzacţiilor

 Tranzacţia desemnează o secvenţă de instrucţiuni de


manipulare a datelor (în special de actualizare), care formează
un tot unitar şi care se execută în totalitate sau deloc.

 Există tranzacţii:
 implicite (gestionate de sistem)

 explicite (gestionate de programator, prin specificarea limitelor unei


tranzacţii în cadrul unei aplicaţii)

4
Integritatea datelor
CONTROLUL CONCURENŢEI LA DATE
 Rezultatul execuţiei unei tranzacţii poate fi:
 succes: dacă operaţiile constituente ale tranzacţiei au fost realizate
şi validate fără probleme, iar baza de de date se regăseşte într-o
nouă stare coerentă;
 abandon: dacă operaţiile constituente ale tranzacţiei au fost
anulate, iar baza de date revine la starea coerentă de dinainte de
execuţia tranzacţiei curente.
 În Oracle, comenzile SQL pentru tratarea tranzacţiilor sunt:
 COMMIT

 ROLLBACK

 SAVEPOINT

5
Integritatea datelor
CONTROLUL CONCURENŢEI LA DATE

 Caracteristicile unei tranzacţii – ACID

 Atomicitatea: evidenţiază caracterul atomic al tranzacţiilor, acestea


fiind executate pe principiul totul sau nimic.

 Consistenţa (coerenţa): presupune execuţia tranzacţiilor cu respectarea


restricţiilor de integritate.

 Izolarea: presupune execuţia tranzacţiilor independent unele de


altele.

 Durabilitatea (persistenţa): evidenţiază caracterul persistent al


tranzacţiilor salvate.

6
Integritatea datelor
CONTROLUL CONCURENŢEI LA DATE

 În momentul în care mai multe tranzacţii accesează aceleaşi


date, în mod concurent, apare mecanismul de blocare.

 În cazul accesului concurent, SGBDR acordă priorităţi


tranzacţiilor implicate. Tranzacţia cu prioritatea cea mai mare
are acces la date, iar acestea sunt blocate pentru celelate
tranzacţii, care aşteaptă finalizarea prelucrărilor curente.

 Interblocare: dacă tranzacţia T1 utilizează datele D1, iar


tranzacţia T2 datele D2, iar T1 are nevoie de D2 şi T2 de D1 (au
nevoie de aceleaşi date, deja ocupate), atunci conflictul se
rezolvă tot prin acordarea de priorităţi.

7
Integritatea datelor

SALVAREA / RESTAURAREA DATELOR

 Pentru ca în baza de date să existe date corecte este necesar ca, la


anumite perioade de timp, să fie realizate salvări ale sistemului
(copii de siguranţă - backup) în fişiere de rezervă (fişiere jurnal).

 În cazul în care baza de date va fi coruptă, aceasta va putea fi


refăcută cu ajutorul fişierelor jurnal, prin restaurare (recovery).

 În Oracle, fişierele jurnal se pot crea, întreţine şi utiliza automat


de sistem, la anumite intervale de timp, sau pot fi gestionate
explicit de administratorul BD.

8
Securitatea datelor

 Se referă la confidenţialitatea datelor, asigurată prin


restricţionarea accesului la date pentru utilizatorii neautorizaţi..

optimizarea cererii de regăsire a datelor


9
Securitatea datelor
AUTORIZAREA ŞI CONTROLUL ACCESULUI LA DATE

 Constă în identificarea utilizatorilor şi restricţionarea accesului


acestora la anumite date, pentru diferite prelucrări, în funcţie de
categoria de utilizatori.

 În acest scop, administratorul BD construieşte profile de


utilizatori, precizând categoria, grupa, numele, parola,
drepturile acordate.

 În Oracle:
 CREATE PROFILE...
 CREATE ROLE...
 CREATE USER... PROFILE...
 GRANT rol TO user
 GRANT privilegii TO user 10
Securitatea datelor
TABELE VIRTUALE

 Construcţii logice reprezentând cereri de regăsire memorate în


dicţionarul BD (comenzi SELECT stocate).

 La apelul tabelei virtuale, interogarea este executată şi se vor


accesa datele doar pe o parte a bazei de date, la care utilizatorii
au acces.

 În Oracle:
 CREATE VIEW...
 odată creată, o tabelă virtuală se apelează prin comenzi SQL, ca şi
orice altă tabelă relaţională

11
Securitatea datelor
PROCEDURI SPECIALE

 Proceduri stocate în baza de date, oferite de SGBDR sau create de


programator.

 În Oracle se pot scrie proceduri stocate în limbajul PL/SQL


pentru a realiza diferite acţiuni, pe date restricţionate.

12
Securitatea datelor
CRIPTAREA DATELOR

 Operaţie de codificare a datelor, în vederea stocării sau


transmiterii lor codat, nu în clar.

 În acest sens, se vor utiliza algoritmi de criptare, o cheie de acces


la aceştia şi un algoritm de decriptare.

13
Rezolvaţi!
O relaţie este în forma normală 3 (FN3) dacă:

a) este în forma normală 2 (FN2) şi fiecare atribut non-cheie primară


depinde în mod netranzitiv de cheia primară a relaţiei
b) este în forma normală 1 (FN1) şi fiecare atribut cheie primară depinde
tranzitiv de atributele non-cheie primară
c) este în forma normală 2 (FN2) şi are dependenţe funcţionale
complete
d) este în forma normală 1 (FN1) şi are dependenţe funcţionale
incomplete
e) este în forma normală 2 (FN2) şi are cel puţin o dependenţă
funcţională completă între atributele non-cheie şi cheia primară a
relaţiei

14
Rezolvaţi!
Care dintre următoarele sunt noţiuni utilizate în cadrul teoriei relaţionale:

a) domeniu

b) tabelă

c) relaţie

d) atribut

e) tuplu

15
Rezolvaţi!
Se consideră tabela:
produse (codp number(3), denp varchar2(25), um varchar2(3))

Comanda SQL-Oracle:
SELECT DISTINCT codp, denp FROM produse WHERE codp > 100
ORDER BY denp;
implementează următorii operatori din algebra relaţională:

a) proiecţie şi joncţiune
b) selecţie şi intersecţie
c) selecţie şi reuniune
d) selecţie şi proiecţie
e) ordonare şi selecţie
16
Rezolvaţi!
Care dintre următoarele activităţi contribuie la asigurarea securităţii
datelor:

a) autorizarea şi controlul accesului la date


b) definirea unor declanşatori pe tabelele de bază
c) salvarea şi restaurarea datelor
d) utilizarea tabelelor virtuale
e) implementarea restricţiilor de integritate

17
Rezolvaţi!
Restricţii de integritate ale modelului relaţional sunt:

a) de domeniu, entităţii

b) cheie unică, de aplicaţie

c) temporară, referenţială

d) selecţie, cheie primară

e) cheie externă, de actualizare

18
Rezolvaţi!
Printre strategiile corecte adoptate pentru optimizarea cererilor de regăsire
se numără:

a) evitarea plasării de condiţii în clauza WHERE


b) partiţionarea tabelelor
c) specificarea în clauza HAVING a condiţiilor care includ funcţii de grup
d) indexarea coloanelor cel mai des folosite în clauzele WHERE şi
ORDER BY
e) includerea în clustere a tabelelor accesate frecvent împreună

19
Rezolvaţi!
Care dintre următoarele activităţi contribuie la asigurarea integrităţii
datelor:

a) asigurarea securităţii datelor


b) asigurarea eficienţei bazei de date
c) salvarea şi restaurarea datelor
d) asigurarea accesului la date al mai multor utilizatori
e) implementarea restricţiilor de integritate

20
Rezolvaţi!
Care dintre următoarele comenzi sunt corecte? Ce rezultat returnează?

a) SELECT 'test' FROM dual;

b) SELECT sysdate + 21 FROM dual;

c) SELECT sysdate - data FROM comenzi;

d) SELECT sysdate FROM comenzi;

e) SELECT MAX(data_angajare) FROM angajati;

21
Rezolvaţi!
Care dintre următoarele afirmaţii privind cererile SQL-Oracle sunt
eronate:

a) o subcerere poate să apară în clauza FROM a altei cereri


b) o subcerere poate să apară în clauza WHERE a altei cereri
c) o subcerere poate să apară în clauza HAVING a altei cereri
d) o subcerere poate să apară în clauza ORDER BY a altei cereri
e) o subcerere poate să apară în clauza GROUP BY a altei cereri

22
CURSUL 14...
 Noţiuni recapitulative

S-ar putea să vă placă și