Documente Academic
Documente Profesional
Documente Cultură
Raspunsuri Pentru Examen La Baze de Date Conspecte MD
Raspunsuri Pentru Examen La Baze de Date Conspecte MD
O baza de date este o colectie persistenta de informatii structurate, organizata si construita pentru facilitarea
accesului si prelucrarii eficiente.
SGBD-(sistem de gestiune a BD)soft ce permite crearea si gestiunea bazelor de date.
sistemul de gestiune a bazei de date (SGBD) – ansamblu de programe care realizează gestiunea şi prelucrarea
complexă a datelor, asigurând interfaţa între BD şi utilizatori.
Reprezintă programul software care asigură :
- definirea bazei de date,
- încărcarea datelor în baza de date,
- accesul la date (interogare, actualizare),
- întreţinerea bazei de date,
- securitatea datelor,
- reorganizarea bazei de date.
1
6.Nivelul fizic de abstracţie în BD. Modele de date. Exemple.
Nivelul fizic (intern), este descris de schema fizică a datelor (bit,octet, adresă) şi reprezintă viziunea
programatorilor de sistemasupra datelor. Datele există doar la nivel fizic, iar celelalte nivelurisunt niveluri de
virtualizare în prezentarea datelor
Fisiere:
-secventiale-sortate in ordinea cresterii cheii primare.Avem acces la instructiunea n daca am trecut prin
instructiunea n-1.
-indexat secventiale-index este fisierul auxuliar anexat la cel de baza.Indexsii se construiesc pentru fiecare cheie
secundara.Faciliteaza accesul.
-B-arbori-daca sint numai pointeri si nu date atunci se numesc B+-arbori
-tabele de dispersie(hash-table)fisiere cu acces direct.
7.Nivelul logic de abstracţie în BD. Modele de date. Exemple.
Nivelul logic– este dat de una din schemele logice posibile aledatelor şi reprezintă viziunea programatorului de
aplicatie asupradatelor;
• baze de date ierarhice – legăturile dintre date sunt ordonate unic, accesul se face numai prin vârful ierarhiei, un
subordonat nu poate avea decât un singur superior direct şi nu se poate ajunge la el decât pe o singură cale;
• baze de date în reţea – datele sunt reprezentate ca într-o mulţime de ierarhii, în care un membru al ei poate avea
oricâţi superiori, iar la un subordonat se poate ajunge pe mai multe căi;
• baze de date relaţionale – structura de bază a datelor este aceea de relaţie – tabelă, limbajul SQL (Structured
Query Language) este specializat în comenzi de manipulare la nivel de tabelă. Termenul relaţional a fost introdus
de un cercetător al firmei IBM, dr. E. F. Codd, în 1969, cel care a enunţat cele 13 reguli de bază necesare pentru
definerea unei baze de date relaţionale. Baza de date relaţională reprezintă o mulţime structurată de date,
accesibile prin calculator, care pot satisface în timp minim şi într-o manieră selectivă mai mulţi utilizatori.
Această mulţime de date modelează un sistem sau un proces din lumea reală şi serveşte ca suport unei aplicaţii
informatice;Modele de date:
-ierarhic
- Nod artificial
2
10.Etapa de proiectare fizică a bazelor de date
Proiectarea fizică a BD
Următoarele aspecte s-ar putea dovedi de importanţă pentru succesul proiectării BD:
■ lucrul interactiv cu utilizatorii cât de mulţi trebuie;
■ urmărirea unei metodologii structurate de-a lungul procesului de modelare a datelor;
■ utilizarea unei abordări coordonată prin date;
■ încorporarea consideraţiilor structurale şi de integritate în modelul de date;
■ utilizarea diagramelor, pentru a reprezenta cât mai mult din modelul de date;
■ utilizarea unui limbaj de proiectare a BD Data Base Design Language (BDDL) pentru a reprezenta semantica
suplimentară a datelor;
■ construirea unui dicţionar care să suplimenteze diagramele modelului de date;
■ disponibilitatea de a repeta anumite etape.
Metodologia de proiectare a BD constă dintr-o serie de etape:
11.Etapa de proiectare logică a bazelor de date
Construirea tabelelor si a legaturilor dintre acestea.
Etapele metodologiei de organizare logică a bazelor de date pentru modelul relaţional sunt următoarele:
Construirea şi validarea modelului de date logice pentru fiecare vedere a utilizatorilor.
Construirea şi validarea modelului de date logic global.
Etapa E2 are ca obiectiv realizarea unui model de date logic – bazat pe modelul de date conceptual al vederii
utilizatorului asupra întreprinderii – urmat de validarea acestuia prin utilizarea tehnicii de normalizare şi conform
tranzacţiilor cerute.
Operaţiile efectuate în cadrul acestei etape (E2) sunt:
E2.1. Transpunerea modelului de date conceptual local în modelul de date logic local.
E2.2. Extragerea relaţiilor din modelul de date logic local.
E2.3. Validarea modelului prin utilizarea normalizării.
E2.4. Validarea modelului conform tranzacţiilor utilizatorului.
E2.5. Desenarea diagramei Entitate – Relaţie (ER).
E2..6. Definirea constrângerilor de integritate.
E2.7. Revizuirea modelului de date logic loca, împreună cu utilizatorii.
La încheierea acestei etape, (E2) trebuie să se obţină un model al vederilor utilizatorului care să fie: riguros,
cuprinzător şi fără echivoc. Dacă sunt respectate aceste cerinţe, se va dispune în acest stadiu de un fundament
solid pentru a putea trece la etapa următoare (E3) care constă în combinarea modelelor de date logice locale
individuale, pentru a realiza un model de date logic global al întreprinderii.
12.Analiza cerinţelor informaţionale la etapa de proiectare conceptuală a bazelor de date
Se aduna informatia de la diviziuni si subdiviziuni .Prima etapă în proiectarea BD constă în realizarea unor
modele de date conceptuale, pentru fiecare vedere a utilizatorilor asupra întreprinderii. O vedere a utilizatorului
reprezintă datele cerute de către un anumit utilizator pentru a lua o decizie corectă sau a efectua o anumită
activitate. De obicei, vederea unui utilizator constituie o zonă funcţională a întreprinderii, cum ar fi: producţia,
marketing, vânzările, personalul, contabilitatea sau controlul aprovizionării. Un utilizator poate fi o persoană reală
sau un grup de persoane care utilizează în
mod direct sistemul. Utilizatorul se poate referi la un raport produs de către sistem sau poate solicita rezultatele
unei tranzacţii care trebuie acceptată de către acestea. Vederile utilizatorilor pot fi identificate utilizând diverse
metode: pot fi examinate diagramele de flux de date care au fost realizate mai înainte, în scopul de a identifica
zonele funcţionale şi posibil funcţiile individuale, ar putea fi chestionaţi utilizatorii se pot examina procedurile,
rapoartele şi formulările şi/sau observa întreprinderea în funcţiune.
13.Modelarea viziunilor utilizatorului la etapa de proiectare conceptuală a bazelor de date
Consta din 3 etape:
-analiza cerintelor informationale
-modelarea schemelor conceptuale particulare (viziunile user)
-integrarea schemei particulare si crearea schemei globale.
14. Integrarea viziunilor utilizatorilor şi proiectarea schemei conceptuale globale a BD.
Rezultatul integrării tehnologiei bazelor de date cu cea a reţelelor de calculatoare sunt BD distribuite - Sunt
BDlogic integrate, dar fizic distribuite pe mai multe sisteme de calcul. Integrarea BD distribuite se face cu
ajutorulcelor trei tipuri de de scheme care sunt implementate:1.
schema globală – defineşteşi descrie toate informaţiile din baza de date distribuită în reţea;2.
3
schema de fragmentare– descrie legăturile dintre o colecţie globalăşi fragmentele sale. E de tipul unu la maimulţi
şi are forma unei ierarhii;3.
schema de alocare– descrie modul de distribuire a segmentelor pe calculatoarele(nodurile) din reţea.
Fiecaresegment va avea o alocare fizică pe unul sau mai multe calculatoare. Schema de alocare introduce
oredundanţă minimă şi controlată: un anumit segment se poate regăsi fizic pe mai multe calculatoare.
15.Elementele modelului relaţional: atribute, domenii, tupluri. Definiţii şi exemple.
O entitate este un obiect real sau conceptual, cu o existenta independenta. O entitate este un obiect cu existenta
fizica, persoana particulara, automobil, companie, activitate, curs universitar, etc.
Orice entitate are o serie de proprietati numite si atribute ce particularizeaza entitatea respectiva. De exemplu,
pentru o entitate angajat se pot enumera o serie de atribute cum sint nume, adresa, data nasterii, sex, salariu.
Atribut (attribut): o unitate specifică a informaţiei despre un subiect; coloană sau câmp în tabel. In
timp ce tuplurile dintr-o relatie trebuie sa fie unice un domeniu poate apare de mai multe ori în produsul
cartezian pe baza caruia este definita relatia.
Sa consideram, de exemplu ca pentru o persoana dispunem de urmatoarele date: nume,sex, vârsta si
numele sotului/sotiei.
O posibilitate de organizare a acestor date o reprezinta relatta din fig.3.2.
R: D3 D1 D2
"Maria" "F" 30
"Vasile" "M" 35
Fig.3.2. Relatia PERS
Relatia PERS reprezinta un subansamblu al produsului cartezian:
D3 x D1 x D2 x D3.
Semnificatia valorilor din cadrul unui tuplu se stabileste în acest caz nu numai pe baza domeniului de care
apartin valorile, ci si in functie de pozitia ocupata în cadrul tuplului. Dependenta fata de ordine a datelor inseamna
o reducere a flexibiltatii organizarii datelor. Într-o organizare eficienta, flexibila, ordinea liniilor si a coloanelor
din cadrul tabelei de date nu trebuie sa prezinte nici o importanta. Pentru a diferentia coloanele care contin valori
ale aceluiasi domeniu si a elimina astfel dependenta de pozitie în cadrul tabelei se asociaza fiecarei coloane un
nume distinct, ceea ce duce la aparitta notiunii de atribut.
Atributul reprezinta coloana unei tabele de date, caracterizata printr-un nume. Numele coloanei
(atributului) exprima de obicei semnificatia valorilor din cadrul coloanei respective.
Schema unei relatii
Prin schema unei relatii se întelege numele relatiei, urmat de lista atributelor, pentru fiecare atribut
precizându-se domeniul asociat. Astfel, pentru o relatie R, cu atributele A1, A2, ..., An si domeniile: D1, D2,...,
Dm, cu m <= n.
Domeniul o multime finite de valori de acelasi tip pe care le poate lua atributul. Domeniul reprezinta un
ansamblu de valori, caracterizat printr-un nume. Un domeniu se poate defini explicit, prin enumerarea
tuturor valorilor apartinând acestuia sau implicit, prin precizarea proprietatilor pe care le au valorile din
cadrul domeniului respectiv.
Sa consideram, de exemplu domeniile D1, D2, D3, definite astfel:
D1: ("F","M")
D2 : (x / x apartine N, x apartine [0,100])
D3 :(s/s=sir de caractere)
În cazul lui D1 s-a recurs la o definire explicita, în timp ce pentru D2 si D3 s-a utilizat definirea implicita.
Pentru un ansamblu de domenii D1, D2, ..., Dn produsul catezian al acestora reprezinta ansamblul
tuplurilor <v1, v2, ..., vn>, unde: v1 este o valoare apartinând domeniului D1, v2 este o valoare din D2 s.a.m.d.
De exemplu, tuplurile: <"Maria", "F", 50>, <"Vasile", "M",15>,
<"Vasile","M",20>, <"Vasile", "F",100> apartin produsului cartezian: D3 x D1 x D2
Tuplu-secventa de elemente care merg unul dupa altul dar nu fixam ordinea.
Relaţie Tabela
Tuplu Linie/inregistrare
Cardinalitate Numar de linii
Atribut Coloana/Cimp
Grad Numar de coloane
Domeniu Multime de valori valide
4
16.Elementele modelului relaţional: schemă relaţională, relaţie, bază de date, schemă a bazei de date.
Definiţii şi exemple.
Relatie-multimea finita de tupluri.Relaţiile între două tabele sunt unidirecţionale, astfel că o tabelă devine
principală, iar cealaltă devine subordonată. Schema relatiei-capulBaza de date - un ansamblu de date structurate,
accesibile unei comunităţi de utilizatori.Schema bazei de date poate fi reprezentată printr-o diagramă de structură
în care sunt puse în evidenţă şi legăturile dintre tabele.
Relatia reprezinta un subansamblu al produsului cartezian al mai multor domenii, subansamblu caracterizat
printr-un nume si care contine tupluri cu semnificatie. Considerând de exemplu ca nu se cunosc decât doua
persoane definim realtia R prin tuplurile care descriu aceste persoane si anume:
R : (<"Maria", "F", 30>, <"Vasile", "M", 35>)
Intr-o relatie, tuplurile trebuie sa fie distincte (nu se admit duplicari ale
tuplurilor) . O reprezentare comoda a relatiei este tabelul bidimensional (tabela de date în care liniile reprezinta
tuplurile, iar coloanele corespund domeniilor (fig.3.1.).
Intersectia q=r∩s
Difer
enta
q1=r\s q2=s\r
Compleme
n tul
24.
Operaţia
selecţia.
Proprietăţi. Exemple.
Selectia este o operatie unara. Pentru selectarea unor
tupluri dintr-o relatie e necesara specificarea conditiilor de
selectare. În rezultat se obtine o relatie ce e o submultime de
tupluri a relatiei initiale.
• Selectia relatiei r (R) conform formulei F, unde F e aplicabila relatiei r(R), e o submultime a relatiei r(R),
notata cu σF(r), ce consta din toate tuplurile tЄr ce satisfac F, adica σF(r) = {t | t Є r & F(t)}.
Proiectia s = πA,C(r).
26. Operaţia joncţiune. Proprietăţi. Exemple.
• Fie doua relatii r(R) si s(S). Jonctiunea relatiilor r si s (notatia uzuala r|x|s) este o relatie cu schema RS.
Tuplul t apartine relatiei rezultat, daca exista tuplurile tr si ts în r si s, respectiv, si satisfac t[R]=tr si t[S]=ts, adica
r |x| s = {t | t[R] = tr& t[S] = ts& trЄ r & ts Є s}.
Deci, fiecare tuplu din relatia rezultat este o concatenare a unui tuplu din r cu un tuplu din s ce au (R∩S)-
valori egale. Atributele cu acelasi nume în schema relatiei rezultat se iau o singura data.
Operatia jonctiunea nu este comutativa. În schimb, ea se bucura de proprietatea asociativa.
Jonctiunea q = r |x| s
27. Interacţiunea dintre operaţiile joncţiunea şi proiecţia. Exemple.
Fie relatiile r(A B) si s(B C). Notam q=r|x|s si r1 = πAB(q). În urma operatiilor, observam ca tuplurile
relatiei r1 constituie o submultime proprie a relatiei r.
7
28. Operaţia θ-joncţiune. Proprietăţi. Exemple.
• θ-jonctiunea relatiilor r(R) si s(S), notata cu r|x|AθBs , este o multime de tupluri concatenate de forma trts ,
unde tr Є r, ts Є s si tr(A) θ ts(B), adica:
r|x|AθBs = { trts | tr Є r & ts Є s & tr(A) θ ts(B)}.
Operatia θ-jonctiunea poate fi exprimata prin operatiile produsul cartezian si selectia. Rezultatul unei θ-
jonctiuni este acelasi cu rezultatul unei selectii operate asupra unui produs cartezian, adica r|x|AθBs = σAθB(r ⋅ s).
Semijonctiunea q =r|xs
30. Operaţia divizarea. Proprietăţi. Exemple
• Fie r(R) si s(S) doua relaii si S R. Notam Q = R \ S. Diviziunea relatiei r la relatia s, notata cu r s, este
o relatie definita pe multimea de atribute Q: r s = {t| pentru tsЄ s(S) Ǝ tr Є r(R) ce satisface tr[Q]=t si
tr[S]=ts}.
Operatia diviziunea poate fi conceputa drept operatie inversa produsului cartezian. Fie q=r s. Atunci q⋅ s
produce o relatie cu schema R si relatia q va contine numarul maximal de tupluri ce ar satisface expresia q⋅ s r.
Diviziunea q= r s
9
Uniqueidentifier-un identificator unic global(GUID) care reprezinta un numar de 16 biti.se foloseste atunci cind o
linie trebuie sa fie unica intre multe alte linii.
35. Definirea schemei unei relaţii în SQL2. Exemple
Schema unei relaţii este numele relaţiei urmată de lista de atribute, pentru fiecare atribut precizându-se domeniul
asociat. Astfel, pentru o relaţie R cu atributele A1, A2, ... , An şi domeniile D1, D2, ... ,Dm,
cu m ≤ n, schema relaţiei R poate fi prezentată astfel:
11
Daca INTERSECT este substituit cu EXCEPT, se obtine un rezultat,intr-un fel,invers celui precedent,adica se vor
afisa modelele de produse din primul tabel, care nu sunt in al doilea tabel.
47.Interogări cu diferenţe în SQL2. Exemple
Interogarile cu operatiile uniune,intersectia si diferenta sunt foarte aproape de interogarile scrise in algebra
relationala.Se formuleaza doua interogari care construiesc relatii cu scheme compatibile ,adica cu acelasi nr de
atribute si de acelasi tip si aceste cereri sunt legate cu cuvintele cheie UNION,INTERSECT sau EXCEPT.
EX. SELECT Model FROM produse
EXCEPT
SELECT Model FROM pc_uri
48.Interogări cu joncţiuni în SQL2. Exemple
Deseori,p/u a obtine un rezultat complet, este necesara selectarea datelor din doua sau mai multe tabele.
Tabelele din baza de date sunt legate intre ele prin chei.Este important,indeosebi,rolul cheii primare care face ca
coloanele ce o constituie sa posede o valoare unica p/u fiece rind.
De ex.e necesar sa se afiseze producatorul si viteza laptopurilor.Atributul viteza se afla in tabelul
laptop_uri.Informatia referitoare la producatori se afla in tabelul produse,rezultatul este ordonat dupa cimpul
Producator.
EX. SELECT Producator,Viteza FROM produse,laptop_uri
WHERE produse.Model=laptop_uri.Model ORDER BY Producator
CU Jonctiune interna
EX. SELECT Producator,Viteza FROM produse INNER JOIN laptop_uri
ON produse.Model=laptop_uri.Model ORDER BY Producator.
49.Interogări imbricate cu ALL în SQL2. Exemple.
Subinterogare este o cerere care restituie un singur atribut.
Interogarea utilizată in comparaŃie se defineste in interiorul predicatului din clauza where si se numeste
interogare imbricată
All - face ca functia sa considere toate inregistrarile inclusive cele duplicate
Cuvantul cheie all specifică faptul că linia este validă dacă valoarea atributului se află in
relatie cu toate valorile returnate de interogare.
Să se găsească departamentele in care nu lucrează nici un angajat cu numele Ionescu.
select Dept
from Departament
where Dept <> all (select Dept
from Angajati
where Nume = ’Ionescu’)
Această interogare poate fi exprimată cu ajutorul operatorului diferenŃă:
select Dept
from Departament
except
select Dept
from Angajati
where Nume = ’Ionescu’
50. Interogări imbricate cu ANY în SQL2. Exemple
Cuvantul cheie any specifică faptul că linia este validă dacă valoarea atributului se află in
relatie cu cel putin o valoare returnată de interogarea imbricată.
Se consideră tabelele ANGAJATI si DEPARTAMENT prezentate in figura 5.1.
Exemplu: Să se găsească angajaŃii ce lucrează intr-un departament din Iasi.
select Nume, Prenume
from Angajati
where Dept = any (select Dept
from Departament
where Oras = ’Iasi’)
ObservaŃie. Această interogare poate fi rezolvată prin realizarea unei joncŃiuni intre cele
două tabele.
51. Interogări imbricate cu EXISTS în SQL2. Exemple.
Acest operator acceptă ca parametru o interogare imbricată si
returnează valoarea adevărat doar dacă interogarea nu produce un rezultat vid.
12
Să se găsească persoanele care au acelasi nume si prenume, dar coduri diferite.
select *
from Persoana P
where exists (select *
from Persoana P1
where P1.Nume = P.Nume and
P1.Prenume = P.Prenume and
P1.Cod <> P.Cod )
52. Interogări imbricate cu IN în SQL2. Exemple.
SQL pune la dispozitie doi operatori pentru a reprezenta apartenenta la o multime si
negatia sa: in si not in. Acesti operatori sunt echivalenti cu = any, respectiv <> all.
select Dept
from Angajati
where Salariu = any sau in (select max(Salariu)
from Angajati)
53. Interogări imbricate cu „=” în SQL2. Exemple.
Se consideră tabelele ANGAJATI si DEPARTAMENT prezentate in figura 5.1.
Să se găsească departamentele in care lucrează angajatii ce castigă cel mai mare salariu.
select Dept
from Angajati
where Salariu = any (select max(Salariu)
from Angajati)
sau
select Dept
from Angajati
where Salariu >= all (select Salariu
from Angajati)
Observatii.
• Desi cele două interogări sunt echivalente, este indicată folosirea functiilor
agregat deoarece sunt mai concludente si se execută mai eficient.
• In cazul primei interogări nu există nici o diferenŃa dacă in loc de operatorul any
se foloseste operatorul all (deoarece interogarea internă are ca rezultat o singură
linie).
54. Definirea utilizatorilor şi accesului la baza de date în SQL2. Exemple
In functie de modul de exploatare a bazei de date, utilizatorii se pot impărti in:
administratorul bazei de date (DBA) – persoana responsabilă de proiectarea, controlul si
administrarea bazei de date.
programatorii de aplicatii – definesc si creează programele ce accesează baza de date.
utilizatorii obisnuiti – cei care utilizează efectiv baza de date.
- utilizatori finali – utilizează tranzactii (spre exemplu programe ce realizează
activităŃi frecvente si predefinite
- utilizatori ocazionali – capabili să utilizeze limbaje interactive pentru a accesa
baza de date, formuland interogări (sau actualizări) de diferite tipuri.
Pentru a putea lucra cu baze de date trebuie sa avem instalat un server de baze de date.Trebuie sa realizam
conexiunea sh sa accesam in sfirsit datele.
55.Definirea permiselor asupra relaţiilor în SQL2. Exemple.
SGBD-urile permit datelor să fie considerate drept resurse comune ale organizatiei,
disponibile tuturor membrilor autorizati.
• Baza de date furnizează un model standardizat si precis al acelei părti a lumii reale care
prezintă interes pentru organizatie, model folosit in aplicaŃiile existente si care, cu
extensiile necesare, poate fi folosit in aplicatii viitoare.
• SGBD-urile oferă posibilitatea unui control centralizat al datelor.
• Partajarea bazelor de date permite reducerea redundantei si inconsistentei datelor.
• Independenta datelor, caracteristica fundamentală a SGBD-urilor, favorizează
dezvoltarea de aplicatii mai flexibile si mai usor de modificat
13
56. Definirea sinonimilor în SQL2. Exemple.
Sinonimele pot fi utilizate in interogari sau procedure stocate in loc de numele originale ale obiectelor din 2,3 sau
4 parti. De exemplu este nevoie de executat o interogare catre un obiect de stocat pe alt server.Atunci pt a accesa
acest obiect e necesar sa se scrie numele lui implicit
Nume_server.Nume_baza_de_date.Nume_schema.Nume_Obiect.Utilizind un sinonim creat in schema
curenta,obiectul poate fi accesat doar specificind sinonimul respectiv.
Un sinonim apartine unei scheme ca si alte obiecte ale schemei.Numele unui sinonim trebuie sa fie unic.Un
sinonim poate fi creat pt urmat obiecte din baza de date:tabelele definite de utilizator(inclusive tabelele
temporare atit locale cit sh globale)viziuni,procedure stocate,functii
Un sinonim nu poate fi obiect de baza pt alt sinonim
Un sinonim nu poate referi o functie de agregare definite de utilizator
Doar numele unui sinonim executa legatura intre acesta si obiectul de baza.Existenta si tipul de verificarea
drepturilor de acces catre obiectul de baza sunt aminate pina la rulare.prin urmare acelasi nume ca si obiectul de
baza original.
De exemplu se considera un sinonim cumparaturi care face referire la dbo.vinzari in baza de date
calculatoare.Daca tabelul dbo.vinzari este sters si inlocuit cu o viziune numita dbo.vinzari,atunci cumparaturi
acum se refera la viziunea dbo.vinzari.
Urmatorul exemplu creaza un sinonim notebook pt obiectul d ebaza,laptop_ri din vaza de calculatoare, apoi
interogheaza baza de date,utilizind sinonimul creat:
Use calculatoare;
Go
Create Synonym notebook for calculatoare.dbo.laptop_uri;
Go
Select *from notebook;
Go
57. Blocarea relaţiilor şi gestiunea tranzacţiilor în SQL2
Sistemul blocheaza în mod automat o linie în numele unei tranzactii pentru a împiedica alte tranzactii sa blocheze
aceeasi linie. Aceasta blocare împiedica manipularea simultana a unei Unii de catre doua tranzactii distincte,
prevenindu-se astfel interferenta distructiva a instructiunilor DDL si DML contradictorii. De exemplu, Oracfe
împiedica distrugerea unui tabel daca exista tranzactii nefinalizate în care este implicat tabelul respectiv. Aceste
blocari ale datelor sunt anulate automat atunci când tranzactia este finalizata. Blocarea implicita a datelor decurge
automat pentru toate instructiunile SQL, astfel încât nu este necesar ca utilizatorii bazei de date sa blocheze liniile
în mod explicit, în mod prestabilit, Oracle blocheaza resursele la nivelul cel mai scazut posibil.
Tranzactiile sunt grupuri logice de instructiuni SQL. Fiecare tranzactie se încheie fie cu o finalizare, fie cu o
derulare înapoi. Finalizarile duc la salvarea permanenta a modificarilor bazei de date efectuate de catre tranzactie.
Derularile înapoi anuleaza toate modificarile bazei de date efectuate de catre tranzactie.
Gestionarea tranzactiilor asigura concurenta si coerenta datelor pentru toti utilizatorii bazei de date. în lipsa
gestiunii tranzactiilor, calitatea si precizia datelor ar fi compromise, iar baza de date ar deveni aproape de
neutilizat.
58. Definirea viziunilor în SQL2. Exemple
O viziune (VIEW) este un table virtual al carui continut este definit de o interogare.O V. poate fi create din unul
sau mai multe tabele ale bd.
Viziunile sunt folosite pentru a concentra,simplifica si personalize fiecare patrundere a utilizatorului in bd.Ele pot
fi folosite si ca mecanisme de securitate permitind utilizatorului sa acceseze date prin intermediului viziunilor,fara
a acorda utilizatorilor permisiuni sa acceseze tabelele de baza direzt.Viziunile pot fi deasemenea folosite atunci
cind sunt copiate date din SQL server si pentru partajarea datelor.2 tipuri de creare a viziunilor:
Folosind instructiunea Create view a limbajului transact_sql
Folosind VEW Designer al componentei SQ server management studio.
Principii de creare a viziunilor:
O V. poate fi create numai in baza de data in uz.Totusi tabelele si viziunile ce se refera la o viziune noua pot
exista in alte baze de date sau cjiar pe alte servere
Pot fi construite viziuni asupra altor viziuni sau procedure ce se refera la viziuni.Asupra V. nu pot fi construiti
indecsi sau definiti indecsi full-text.
O V., fie exemplu2 in bd calculatoare poate fi definite folosind limb SQL de exemplu:
Use calculatoare;
14
Go
If object_ID(‘exemplul2’,’V’) is not null drop view exemplul2;
Go
Create View exemplul2 As select Model from produse;
59.Definirea indecşilor în SQL2. Exemple.
Un index este un obiect al schemei bazei de date care facilitează accesarea rapidă şi univocă a datelor. În anumite
condiţii viteza de execuţie a cererilor. După ce indexul a fost creat, utilizatorului nu i se mai cere nici o operaţie
directă asupra lui, el va fi folosit şi întreţinut automat de către SGBD.
Sintaxa pentru crearea unui index este următoarea:
CREATE INDEX nume_index ON nume_tabela (nume_coloana1 [, nume coloana2, …])
Exemplu: crearea unui index după coloana număr factură în tabela facturi:
CREATE INDEX nr_factura_index ON facturi (nrfact)
Pentru tabele mici, folosirea indecşilor nu aduce îmbunătăţiri de performanţă. Se folosesc atunci când coloanele
după care se creează indecşii conţin o diversitate mare de informaţii sau multe valori NULL. Indecşii optimizează
interogările atunci când acestea returnează o cantitate mică de date. Indecşii cresc viteza de regăsire a datelor dar
încetinesc actualizarea datelor datorită faptului că sistemul trebuie să actualizeze şi fişierele index. În general este
foarte util să se creeze indecşi după câmpuri care se folosesc în operaţii de join.
Ştergerea unui index se face cu comanda DROP INDEX:
DROP INDEX nume_index [ON nume_tabela]
60.Definirea constrângerilor şi aserţiunilor în SQL2. Exemple
Pt formularea unor restrictii mai generale decit cele corespunzind tabelelor si coloanelor ,SQL da posibilitatea
folosirii unei intructiuni specifice cu sintaxa:
Create assertion <constraint_name> check(search_condition)
Spre deosebire de restrictiile de tabele si de coloane asertiunile nu sint associate cu nici o definitie de tabela
particulara.Asertiunile sunt folosite de obicei pt a formula restrictii asupra mai multor tabele.Remarcam ca pt a
satisface restrictia,conditia din clauza check trebuie sa furmizeze o valoare fie true,fie unknown.
Vederile si Aseriunile se folosesc intransportul schemelor conceputale din modelul EEA si din UML in modelul
relational.
Exemplu de adaugare de constringere:
Alter Table task Constraint Foreign Key (newtaskind)references newtask(newtaskid);
O constringere se poate adauga si la crearea tabelului.
Constringeri de integritate:Cheile primare,valori implicite pt cimpuri
Daca integritatea bazei de date nu este asigurata,adica nu sint respectate constringerile de integritatea se spune ca
bd este incosistenta.
15