Sunteți pe pagina 1din 16

Întrebările pentru examenul 1 la BD

1. Sisteme bazate pe fișiere


2. Sisteme orientate pe baze de date
3. Conceptele de bază de date și sistem de gestiune a bazelor de date
4. Evitarea redundanței și inconsistenței datelor
5. Facilitarea accesului la date
6. Facilitarea elaborării programelor de prelucrare a datelor. Asigurarea accesului concurent la date
7. Asigurarea accesului securizat la date
8. Păstrarea integrității datelor
9. Baze de date ierarhice
10. Baze de date de tip rețea
11. Dezavantajele primelor SGBD-uri
12. Sisteme de baze de date relaționale
13. Componentele unui sistem orientat pe baze de date
14. Arhitectura ANSI/X3/SPARC: Nivelul intern
15. Nivelul logic
16. Nivelul extern
17. Independența datelor
18. Funcționarea arhitecturii cu trei nivele
19. Baze de date orientate pe obiecte
20. Baze de date obiect-relaționale
21. Baze de date temporale
22. Baze de date spațiale
23. Baze de date paralele și distribuite
24. Baze de date active
25. Baze de date multimedia
26. Bazele de date și tehnologiile Web
27. Magazii de date
28. Utilizarea XML în baze de date
29. Descoperirea cunoștințelor în baze de date
30. Baze de date deductive și baze de cunoștințe
31. Atribute și domenii. Definiţii şi exemple.
32. Tupluri. Definiții și exemple.
33. Scheme și relații. Definiții și exemple.
34. Constrângerile de unicitate și minimalizate a cheii. Definiții și exemple.
35. Constrângerea entității. Definiții și exemple.
36. Constrângerea referențiale. Definiții și exemple.
37. Constrângeri de comportament al domeniului. Definiții și exemple.
38. Constrângeri de comportament al tuplului. Definiții și exemple.
39. Constrângeri de comportament al relației. Definiții și exemple.
40. Constrângeri de comportament al bazei de date
41. Scheme relaționale compatibile. Exemplu.
42. Operațiile tradiționale pe mulțimi: Uniunea, Proprietăți. Exemple.
43. Diferența. Proprietăți. Exemple.
44. Intersecția. Proprietăți. Exemple.
45. Produsul cartezian. Definiții și exemple.
46. Operația de redenumire. Definiții și exemple.
47. Complementul. Definiții și exemple.
48. Complementul activ. Definiții și exemple.
49. Operația proiecția. Proprietăţi. Exemple.
50. Operația selecția. Proprietăţi. Exemple.
51. Operația Joncțiunea naturală. Proprietăţi. Exemple.
52. Operația semijoncțiunea. Proprietăţi. Exemple.
53. Operația Joncțiunea theți. Proprietăţi. Exemple.
54. Operația divizarea. Proprietăţi. Exemple.
55. Interogări în algebra relațională. Expresii algebrice.
56. Selecții generalizate. Exemple.
57. Interogări conjunctive. Exemple.
58. Interogări cu diferențe. Exemple.
59. Complementul unei mulțimi. Exemplu.
60. Cuantificarea universală. Exemplu.
61. Componentele limbajului SQL2.
62. Cele mai simple interogări SELECT. Clauzele DISTINCT și ORDER BY. Aliasuri de atribut.
Exemple.
63. Interogări cu criterii de selecție cu clauza WHERE și operatorii de comparație sau logici AND,
OR, NOT. Exemple.
64. Interogări cu criterii de selecție cu Operatorul IS NULL. Exemple.
65. Funcții cu utilizarea valorii NULL: Funcțiile COALESCE, NVL, NULLIF. Exemple.
66. Interogări cu criterii de selecție cu operatorul LIKE. Exemple.
67. Interogări cu criterii de selecție cu operatorul BETWEEN. Exemple.
68. Interogări cu criterii de selecție cu operatorul IN. Exemple.
69. Interogări cu funcții de agregare: COUNT, AVG, SUM, MAX și MIN.
70. Interogări cu clauzele GROUP BY sau HAVING.
71. Interogări cu Produsul Cartezian.
72. Interogări cu Joncțiuni interne. Exemple.
73. Interogări cu Joncțiuni externe. Exemple.
74. Subinterogări cu operatori de comparație, cu operatorul IN sau ANY.
75. Subinterogări cu operatori de comparație, cu operatorul ALL sau EXISTS.
76. Subinterogări în clauzele FROM și HAVING.
77. Interogări cu operatori din teoria mulțimilor. Operatorii UNION sau UNION ALL, și EXCEPT
sau EXCEPT ALL
78. Instrucțiuni de actualizare a bazei de date: Inserarea, Modificarea, Suprimarea tuplurilor
79. Definirea constrângerilor de integritate: NOT NULL, DEFAULT, chei primare.
80. Definirea constrângerilor de integritate: chei externe, UNIQUE, CHECK.
81. Constrângeri de comportament CHECK la nivel de bază de date (aserțiuni)
82. Modificarea și suprimarea schemei relaționale.
83. Ce este o viziune? Crearea și suprimarea viziunilor. Exemple.
84. Consultarea și actualizarea viziunilor. Exemple.
85. Definirea sinonimilor. Exemple.
86. Definirea indecșilor. Crearea și suprimarea indecșilor. Exemple.
87. Tipuri de indecși.
88. Controlul accesului la baza de date. Exemple.
89. Administrarea tranzacțiilor. Exemple.
90. Blocarea relațiilor și gestiunea tranzacțiilor. Niveluri de izolare.

1) Sisteme bazate pe fisiere


Organizarea datelor intr-un sistem orientat pe procese raspunde unor cerinte concrete in
functie de problema care se rezolva. Diverse aplicatii utilizeaza date distincte pentru
prelucrari diferite. Orice echipa de utilizatori dispune de propriile fisiere. Structura in care
datele sunt pastrate depinde de multi factori:hardware-ul disponibil, bunavointa si armonia
din echipele de programatori. Dar accesul la date, intotdeauna, va fi determinat de
organizarea fizica a datelor.
2) Sisteme orientate pe baze de date
Obiectivul unui odel de date consta in oferirea unei independente mai mari intre aplicati si
organizarea fizica a datelor. Initial, independenta se obtinea prin abstractiile introduse intre
diferite (sub)scheme externe pentru aplicatii si organizarea fizica a acestora. Aceasta separare
in doua nivele a fost propusa de grupul Data Base Task Group (DBTG) al comitetului
CODASYL [Codasy171]
3) Conceptele de baza de date si sistem de gestiune a bazelor de date
Conceptul baza de date este o multime de date stocate pe un suport cu acces direct si datele
sunt interdependente si structurale conform unui model capabil sa redea un continut cu o
pondere semantica maximala.
Un SGBD sustine o serie de functii caracteristice pentru a satisface doleantele utilizatorilor
bazei de date. SGBD-ul trebuie sa posede un limbaj de definire a datelor, care ar permite usor
crearea BD dar si modificarea structurii ei. Si alte functii.
4) Evitarea redundantei si inconsistentei datelor
Utilizatorul decide ce date trebuie pastrate in BD si care nu. Sunt necesare numai datele utile
pentru activitatile din domeniul de interes. Daca fisierele de date sunt independente si nu sunt
reprezentate in forma de BD, acestea contin date care se repeta. Repetarea datelor este o
consecinta a descentralizarii datelor. Efectele acestui neajuns sunt dintre cele mai raspindite –
gestionarea complexa a datelor.
5) Facilitatea accesului la date
Se introduce un nivel de abstractie intre date si aplicatii, sustinut de un program auxiliar de
maxima importanta, care se numeste Sistem de Gestiune a Baei de Date (SGBD). Una din
aceste functii consta in oferirea unui limbaj care permite consultarea facila a bazei de date
fara a fi necesara elaborarea unui program special. Este suficient sa se formuleze interogarea
in acest limbaj simplu, iar raspunsul va fi obtinut mai mult sau mai putin imediat gratie
gestionarii datelor de SGBD.
6) Facilitarea elaborarii programelor de prelucrare a datelor. Asigurarea accesului concurent la
date.
Sistemul de gestiune desparte aplicatiile de procesul de cautare a datelor si ofera o viziune
uniforma a datelor, facilitind, prin urmare, programarea aplicatiilor complexe.
Fiecare utilizator poate formula cereri calculatorului central in momentul cind el considera
necesar, iar calculatorul central va trebui sa raspunda in timp acceptabil. Dat fiind faptul ca
multe persoane pot lucra concomitent, este posibil ca calculatorul central sa receptioneze
cereri de acces la date formulate simultan, adica este cazul unui acces concurent.
7) Asigurarea accesului securizat la date
Pentru a asigura accesul securizat la date se atribuie o serie de prioritati fiecarui utilizator, dar
si nivelele de securitate fiecarui tip de date , astfel, incit orice utilizator poate avea acces
numai la datele cu numar inferior sau egal prioritatii sale. Inafara de asta, exista un registru ce
ia nota de accesele la date la nivel inalt, fixind urma inregistrarilor solicitate, ora si
utilizatorul care le acceseaza sau motivele unui acces frustrat. Toate aceste functii sunt
suportate de SGBD.
8) Pastrarea integritatii datelor
Datele poseda unele caracteristici specifice, in functie de operatiile ce se pretind a face asupra
lor si de evolutia domeniului de interes in timp si in spatiu. Daca aceste caracteristici sunt, de
aseenea, stocate, atunci informatia extrasa de utilizator este coerenta si reflecta, in orice
moent, domeniul de interes reprezentat sub forma de BD. Aceasta proprietate se nueste
integritatea BD. La fiecare incercare de actualizare a BD, SGBD-ul trebuie sa verifice
constringerile de integritate.
9) Baze de date ierarhice
Modelul ierarhic se bazeaza pe pastrarea datelor intr-o serie de inregistrari, care reprezinta
cimpuri asociate intre ele. Pentru crearea diferitelor tipuri de inregistrari, modelul ierarhic
utilizeaza legaturile tata-fiu (1:N), in particular (1:1), intre tipurile de inregistrati. Toate
legaturile sunt ierarhizate intr-un arbore, din care motive nu este capabil sa stabileasca
legaturi intre copii sau intre straturi, daca nu este tata-fiu.
10) Baze de date de tip retea
Termenul baze de date de tip retea se refera la tipul in care datele sunt conectate cu alte date.
Modelul de tip retea reprezinta datele in forma unei retele de inregistrari si multimi care se
leaga intre ele, formind o retea de legaturi. Pentru a face acest lucru, se utilizeaza inregistrari,
tipuri de inregistrari si tipuri de multimi.
11) Dezavantajele primelor SGBD-uri
Primele SGBD-uri posedau anumite structuri de nivel jos si ofereau o manipulare complexa a
datelor. O alta problema este ca modelele si sistemele initiale nu erau dotate cu limbaje si
interogari de nivel inalt.
12) Sisteme de baze de date relationale
BD se prezinta utiliztorului ca o viziune a datelor organizate in structuri numite relatii. In
cadrul unei relatii, se poate avea o structura de date complexa ce ar permite un raspuns rapid
la diverse interogari. Utilizatorul sistemului relational nu trebuie sa se preocupe de structura
de pastrare, ci numai de interogari.Activitatea utilizatorilor la terminale si majoritatea
aplicatiilor trebuie sa ramina neafectate atunci cind reprezentarea interna a datelor este
schimbata si chiar cind unele aspecte ale reprezentarii externe sunt schimbate.
13) Componentele unui sistem orientat pe baza de date
Un sistem orientat pe baze de date consta din urmatoarele:
- Date – actioneaza ca o punte de legatura intre componentele masina si componenta
umana.
- Dictionar de date
- Software-ul de sistem si sistemul de gestiune a bazei de date – sistemul de operare.
Programele de retea si programele sistemului de gestiune a BD
- Actori sau utilizatori ai bazei de date – persoanele care doresc sa extraga informatii din
BD
- Hardware-ul – echipamentele care suporta stocarea datelor, prelucrarea si distribuirea lor.
- Programe aplicative – programele prin care utilizatorii interactioneaza cu datele cu o
interfata mai buna ca cea propusa de SGBD.
14) Arhitectura ANSI/X3/SPARC:Nivelul intern
Nivelul intern descrie structura fizica, de pastrare a BD. Modul de organizare a BD fizice
este, in mare masura, influentat de configuratia echipamentelor hardware care suporta BD si
de sistemul de operare. Schimbarea sistemului de operare sau modificarile in configuratia
hardware pot atrage modificari ale BD fizice. Daca este satisfacuta conditia de independenta
fizica, aceste modificari in nivelul intern al bazei de date nu vor ataca nivelele superioare ale
acesteia.
15) Nivelul logic
Fiecare SGBD are un nivel logic propriu, prin care sunt numite si descrise toate entitatile
logice din BD impreuna cu legaturile dintre acestea. Nivelul logic este reprezentat de schem
logica a BD, care descrie structura BD si constringerile asociate ei. Schema logica ascunde
detalii de stocare fizica a datelor si ofera, prin urmare, un nivel de abstractie mai important
decit nivelul fizic.Astfel, nivelul logic contine schema logica a BD, asa cum este ea vazuta de
administratorul BD.
16) Nivelul exterior
Nivelul exter este o parte a bazei de date care este relevanta pentru fiecare utilizator, este cel
mai apropiat utilizatorului, ceea ce vede acesta din baza de date sau modul in care vede
acesta BD. Modelul extern este derivat din cel logic.
17) Independența datelor
Independenta datelor inseamna ca exista o delimitare stricta intre reprezentarea fizica a
datelor si viziunea pe care o are utilizatorul.
18) Funcționarea arhitecturii cu trei nivele
Se bazeaza pe urmatoarele activitati:
- O interogare exprimata de un utilizator analizata din punct de vedere sintactic, apoi
semantic
- La nivelul logic se face controlul in privinta confidentialitatii, concurentii.
- La nivel intern fiecare subcerere este tradusa in una sau mai multe cereri fizice apoi se
realizeaza accesul fizic la date.
19) Baze de date orientate pe obiecte
O intitate se pastreaza ca un obiect persistent si nu ca un tuplu intro relatie, acesta in princiu
il face mai eficient ceea ce priveste necesitatile de spatiu si presupune ca utilizatorii pot
manipula datele numai in modul in care programatorul lea specificat.
20) Baze de date obiect-relaționale
Se defineste ca o extindere obiectuala a modelului relational, permitind definirea a noi tipuri
si legaturi de monestenire intre componente, modelul dat permite organizatiilor sa continue
utilizarea sistemelor existente si a datelor referente fara a realiza practic schimbari.
21) Baze de date temporale
Permit pastrarea tuturor starilor unei aplicatie (prezente, trecute, viitoare) inregistrind
evolutia ei in decursul timpului.
22) Baze de date spațiale
Este o baza de date organizate pentru a stoca si interoga datele care reprezinta obiectele
definite intrun spatiu geometric.
23) Baze de date paralele și distribuite
Este o BD controlata de un SGBD in care dispozitivele de stocare a datelor sunt atasate in
mod distribuit la mai multe calculatoare care se pot afla in aceeasi locatie sau dispartite
printro retea de calculatoare.
24) Baze de date active
Evolotia BD se programeaza in codul aplicatiilor, in timp ce in sistemele de gestiune a BD
active aceasta evoluti este autonoma, si se defineste in schema BD.
Cu ajutorul ei este posibila integrarea diferitor subsisteme (controlul accesului,
gestiunea viziunilor, etc.) si se extinde raza de aplicare a tehnologiilor BD cu alte tipuri de
aplicatie.
25) Baze de date multimedia
BD multimedia pastreaza o varietate larga de tipuri de date (texte, imagini, audio, video).
26) Bazele de date și tehnologiile Web
SGBD ofera un modul sau o serie intreaga de instrumente pentru publicarea datelor BD in
retea, astfel fiind accesibile din orice punct utilizind un navigator.

27) Magazii de date


Magaziile de date este un sistem unificat de date in care se faciliteaza analiza datelor in timp
real si nu se perturbeaza OLTP-ul BD initiale
28) Utilizarea XML în baze de date
Poate partaja informatii intrun mod mai agreeabil si mai eficient, permite integrarea
sistemelor informatice pina acum separate a sistemelor info bazate pe documente cu sisteme
informatice structurate.
29) Descoperirea cunoștințelor în baze de date
...se poate defini ca un proces netrivial de identificare a exemplelor valide noi, eventual utile
si compatibile cu datele
30) Baze de date deductive și baze de cunoștințe
BD deductive permit consultarea datelor dirivate din datele introduse extensiv anterior. BD
de cunostinte pastreaza in afara de date reguli si sunt capabil sa aplice consecutiv regulile la
situatia pe care le prezinta .
31) Atribute și domenii. Definiţii şi exemple.
Domeniu este un ansamblu de valori caracterizat printr-un nume. Atributul este coloana unei
tabele, caracterizată printr-un nume.
32) Tupluri. Definiții și exemple.
Tuplul este linia dintr-o tabelă şi nu are nume. Ordinea liniilor (tupluri) şi coloanelor
(atribute) dintr-o tabelă nu trebuie să prezinte nici-o importanţă.
33) Scheme și relații. Definiții și exemple.
Structura logica a unei colectii de tabele care descrie complet o anumita activitate este
denumita schema bazei de date. Definirea legăturilor dintre tabele se face logic construind
asocieri între tabele cu ajutorul unor atribute de legătură. (unu la unu ,unu la multi ,multi la
multi)
34) Constrângerile de unicitate și minimalizate a cheii. Definiții și exemple.
specifica o coloana sau o combinatie de coloane a carei valori trevuie sa fie unice pentru
toate randurile din tabel
35) Constrângerea entității. Definiții și exemple.
Cheia primară a unei relații de bază nu poate conține valori „null”
36) Constrângerea referențiale. Definiții și exemple.
stabileşte o legătură pe baza unei chei externe între o coloană din tabel şi o coloană din
tabelul referit
37) Constrângeri de comportament al domeniului. Definiții și exemple.
sunt conditii impuse valorilor atributelor, astfel încât acestea sa corespunda semnificatiei pe
care o au în realitatea modelata.
38) Constrângeri de comportament al tuplului. Definiții și exemple.
Aceste constrângeri sunt condiţii care se impun nuplurilor unei entităţi (înregistrărilor din
tabelă) şi asigură identificarea corectă a nuplurilor prin intermediul cheilor primare.
39) Constrângeri de comportament al relației. Definiții și exemple.
40) Constrângeri de comportament al bazei de date
41) Scheme relaționale compatibile. Exemplu.
Operațiile binare asupra relațiilor:uniunea ,intersecția ,și diferența necesită ca operanzii să fie
definiți pe scheme compatibile. Vom spune ca 2 relații r si s sunt compatibile dacă intre ele
există o corespondență univocă f care înseamnca ca pentru orice A ε R există B ε S ,dom(A) =
dom(B) , A=f(B) , B= f-1(A)
42) Operațiile tradiționale pe mulțimi: Uniunea, Proprietăți. Exemple.
Uniunea a 2 relații r si s cu scheme compatibile reprezintă o relație cu schema r sau s care
constă din tuplurile care aparțin relațiilor r sau s. r3 = r1 ∪ r2 . Propriet: r ∪ s = s ∪ r , r ∪ r =
r , r∪ multime vidă =r
43) Diferența. Proprietăți. Exemple.
Diferența a 2 relații r si s cu scheme compatibile notată prin r\s este o relație cu schema r care
constă din toate tuplurile relației r dar care nu se găseste in s. r3 = r1 \ r2. Proprietăti: r\s nu
este egal s\r, r\ multime vida=r,multime vida\r=multime vida
44) Intersecția. Proprietăți. Exemple.
r3 = r1 ∩ r2, unde R3 va conţine tupluri care se găsesc în R1 şi R2 în acelaşi timp. Proprietati:
r∩s=s∩r,r∩r=r,r∩multime vida =multime vida,r∩(s∩q)=(r∩s) ∩q=∩(rsq)
45) Produsul cartezian. Definiții și exemple.
r3 = r1 × r2, unde r3 va conţine tupluri construite din perechi (x1x2), cu x1∈r1 şi x2∈r2;
46) Operația de redenumire. Definiții și exemple.
Redenumirea reprezinta un mecanizm utilizat la schimbarea numelor relatiilor sau atributelor.
De exemplu uniunea relatiilor r(A,B) si s(A,C) cu rezultatul avind atributele A si B se poate
face apelind la redenumirea atributului C cu B.
47) Complementul. Definiții și exemple.
Complimentul permite obtinerea tuplurilor care nu apartin unei relatii. Complimentul unei relatii
reprezinta multimea tuplurilor din produsul cartizian al domeniilor asociate atributelor relatiilor care nu
figureaza in extensia realatiei considerate. Fie relatia r(A,B,C) si fie dom(A)={a1,a2,a3}
dom(B)={b1,b2} dom(C)={c1,c2,c3} atunci obtinem tup(A,B,C) si /r
48) Complementul activ. Definiții și exemple.
Complimentu activ este o operatie unara care consta in constituirea unei relatii ce contine toate tuplurile
inexistente intro relatie, pornind de la valorile tuplurilor care exista. Fie relatia r(A, B, C) si adom(A,r)
=(a1,a2) adom(B,r)={b1,b2} adom(C,r)={c1,c2,c3} atunci avem relatiile q=atup({A,B,C}r)si r.

49) Operația proiecția. Proprietăţi. Exemple.


Este o operatie nativa care permite suprimarea atributelor de relatie, actioneaza asupra unei
singure relatie r si defineste o relatie care contine o submultime verticala a lui r extrigind
valorile atributelor specificate. R(A,B,C) si s=pi AC (r)

50) Operația selecția. Proprietăţi. Exemple.


Operatia selectia are in calitate de operant o singura relatie, ea extrage din relatia data tuplurile
care satisfac un criteriu de selectie, in consecinta se obtine o relatie care este constituita dintro
submultime de tupluri ale relatii initiale.
51) Operația Joncțiunea naturală. Proprietăţi. Exemple.
Jonctiunea naturala pentru 2 relatii r(R) si s(S) notata r |> <| s ) se obtine facind jonctiunea
celor 2 relatii dupa conditia atributele cu acelasi nume au valori egale si eleminind prin
proiectie atributele duplicate. (r(A,B,C) s(BCD), q(ABCD) q=r |> <| s)

52) Operația semijoncțiunea. Proprietăţi. Exemple.


Semijonctiunea este o operatie binara, ea consta in constituirea unei relatii din cele doua, dar e
formata numai tupluri luate dintro singura relatie ce participa la jonctiune.

53) Operația Joncțiunea theți. Proprietăţi. Exemple.


Jonctiunea theta numita si jonctiunea generala a doua relatii produce o a treia relatie care
contine toate combinatiile de tupluri ale celor doua relatii care satisfac o conditie initiala
specificata, conditia trebuie sa permita fuziunea celor doua relatii .
54) Operația divizarea. Proprietăţi. Exemple.
Divizarea permite cautarea intro relatie a subtuplurilor care pot fi completate cu toate celelalte
din alte relatii.
55) Interogări în algebra relațională. Expresii algebrice.
O functie care aplicata asupra unei instante a unei BD produce o relatie. Expresia algebrica
asupra unui atribut este orice expresie bine formata in conformitate cu restrictiile impuse
operatiilor relationale.
56) Selecții generalizate. Exemple.
Selectie mai compusa. Exemplu- Sa se gaseasca toate datele despre articolile produse in
chisinau si pretul mai mare 100
57) Interogări conjunctive. Exemple.
Interogarile conjuctive sunt cele mai raspindite si constituie o categorie aparte in algebra
relationala, este vorba despre toate cautarile care se exprima cu conjuntia si. Se se gaseasca
denumirile articolilor produse in orasul chisinau.
58) Interogări cu diferențe. Exemple.
Diferenta permite exprimarea tuturor cerirelor in care figureaza o negatie, de exemplu este
cazul in care se doreste selectarea datelor care nu satisfac o anumita proprietate sau selectarea
tuturor datelor care trebuie sa satisfaca o conditie,
59) Complementul unei mulțimi. Exemplu.
Sa se gaseasca articolele si clientii care le-au cumparat. Cu alte cuvinte, intre toate asocierile
posibile-client, se cauta acela care nu sunt reprezentate in baza. Acesta este un caz rar, unde
produsul cartezian e util. El tocmai permite constituirea tuturor asocierilor posibile articol-
client. Apoi ramane sa se construiasca asocierile care sunt in baza, adica care articol si de
catre care client a fost cumparat, dupa care, cu ajutorul operatiei diferenta, se obtine
raspunsul la cererea formulata:
ΠArt_Id(articole) x πCl_Id(σPret<=100(clienti))\ πArt_Id,Cl__Id (comenzi)

60) Cuantificarea universală. Exemplu.


Fie cererea:: Care sunt clientii ale caror articolele cumparate au un pret mai mare de 100
fiecare? Aceasta intrebare poate fi reformulata intr-una echivalenta:Care sunt clientii ce nu
au cumparat niciun articol cu un pret mai mic au egal cu 100? Ultima interogare poate fi
formulata de expresia:
πCl_Id(comenzi)\πCl_ID(σPret<=100(articole)|><|comenzi)
61) Componentele limbajului SQL2.
componenta de descriere a datelor relationale (limbajul de descriere a datelor - LDD),
componenta de manipulare a datelor relationale (limbajul de manipulare a datelor - LMD),
ambele fiind absolut necesare în gestiunea BD.
Pe lânga aceste componente principale, standardul SQL2 mai prevede si alte componente ale
limbajului:
controlul tranzactiilor;
controlul securitatii si refacerea datelor.
62) Cele mai simple interogări SELECT. Clauzele DISTINCT și ORDER BY. Aliasuri de
atribut. Exemple.

O cerere SQL va lua în considerare doar liniile ce aparţin produsului cartezian al tabelelor
listate în clauza from şi va stabili liniile ce satisfac condiţia exprimată în clauza where.
Rezultatul execuţiei unei cereri SQL este un tabel, având câte o linie pentru fiecare linie
selectată de clauza where şi ale cărui coloane rezultă din evaluarea expresiilor ExprAtribut
ce apar în clauza select (lista ţintă). Fiecare coloană poate fi redenumită cu ajutorul unui
Alias ce urmează imediat după expresie. Tabelele pot fi de asemenea redenumite prin
intermediul unui Alias.

Exemplu select
SELECT CustomerName, City FROM Customers;

 Clauza ORDER BY Ordonează rezultatele interogării în ordine


alfabetică după unul sau mai multe câmpuri. ASC înseamnă în ordine
crescătoare, iar DESC - ordine descrescătoare. Ordinea implicită
este crescătoare.
 SELECT * FROM Customers
ORDER BY Country; se poate pune aici ASC|DESC;

DISTINCT - Numai articolele unice, fără duplicate.


SELECT DISTINCT Country FROM Customers;

63) Interogări cu criterii de selecție cu clauza WHERE și operatorii de comparație sau logici
AND, OR, NOT. Exemple.

Where (ineamna unde si se pune in fata conditiei)


SELECT * FROM Customers
WHERE Country='Mexico';

AND ( si , atunci cind vrem sa folosim mai multe conditii dar sa treaca toate conditiile)
SELECT * FROM Customers
WHERE Country='Germany' AND City='Berlin';

OR ( sau , atunci cind avem mai mult conditii dar e deajuns sa satisafaca macar una din ele)
SELECT * FROM Customers
WHERE City='Berlin' OR City='München';

NOT ( nu e , atunci cind dorim sa limitam anume o conditie ca sa nu fie )


SELECT * FROM Customers
WHERE NOT Country='Germany';

64) Interogări cu criterii de selecție cu Operatorul IS NULL. Exemple.

Un câmp cu o valoare NULL este un câmp fără valoare. Dacă un câmp dintr-un tabel este
opțional, este posibil să inserați o înregistrare nouă sau să actualizați o înregistrare fără a
adăuga o valoare în acest câmp. Apoi, câmpul va fi salvat cu o valoare NULL. Un câmp cu o
valoare NULL este unul care a fost lăsat necompletat în timpul creării de înregistrări!

SELECT LastName, FirstName, Address FROM Persons


WHERE Address IS NULL;

65) Funcții cu utilizarea valorii NULL: Funcțiile COALESCE, NVL, NULLIF. Exemple.
66) Interogări cu criterii de selecție cu operatorul LIKE. Exemple.

Operatorul LIKE este utilizat într-o clauză WHERE pentru a căuta un model specificat într-o
coloană.
Există două metacaracteristici utilizate împreună cu operatorul LIKE:
% - Semnul procentual reprezintă zero, unul sau mai multe caractere
_ - Sublinierea reprezintă un singur character

SELECT * FROM Customers


WHERE CustomerName LIKE 'a%';

67) Interogări cu criterii de selecție cu operatorul BETWEEN. Exemple.

Operatorul BETWEEN selectează valori într-un interval dat. Valorile pot fi numere, text sau
date.
Operatorul BETWEEN este inclus: sunt incluse valorile inițiale și finale.

SELECT * FROM Products


WHERE Price NOT BETWEEN 10 AND 20;

68) Interogări cu criterii de selecție cu operatorul IN. Exemple.

Operatorul IN vă permite să specificați mai multe valori într-o clauză WHERE.


Operatorul IN este o stenogramă pentru mai multe condiții OR.

SELECT * FROM Customers


WHERE Country IN ('Germany', 'France', 'UK');

69) Interogări cu funcții de agregare: COUNT, AVG, SUM, MAX și MIN.

Funcția MIN () returnează cea mai mică valoare a coloanei selectate.


Funcția MAX () returnează cea mai mare valoare a coloanei selectate

SELECT MIN(Price) AS SmallestPrice


FROM Products;

SELECT MAX(Price) AS LargestPrice


FROM Products;

Funcția COUNT () returnează numărul de rânduri care corespund unor criterii specificate.
Funcția AVG () returnează valoarea medie a unei coloane numerice.
Funcția SUM () returnează suma totală a unei coloane numerice.

SELECT COUNT(ProductID)
FROM Products;

SELECT AVG(Price)
FROM Products;

SELECT SUM(Quantity)
FROM OrderDetails;

70) Interogări cu clauzele GROUP BY sau HAVING.

Instrucțiunea GROUP BY este adesea folosită cu funcții agregate (COUNT, MAX, MIN,
SUM, AVG) pentru a grupa rezultatul setat de una sau mai multe coloane.
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;

Clauza HAVING a fost adăugată la SQL deoarece cuvântul cheie WHERE nu a putut fi utilizat cu
funcții agregate.

SELECT COUNT(CustomerID), Country


FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;

71) Interogări cu Produsul Cartezian.

72) Interogări cu Joncțiuni interne. Exemple.

73) Subinterogări cu operatori de comparație, cu operatorul IN sau ANY.

Operatorul IN vă permite să specificați mai multe valori într-o clauză WHERE.


Operatorul IN este o stenogramă pentru mai multe condiții OR.

SELECT * FROM Customers


WHERE Country IN (SELECT Country FROM Suppliers);

Operatorii ANY sunt utilizați cu o clauză WHERE sau HAVING. Operatorul ANY
returnează adevărat dacă oricare dintre valorile de subchetare îndeplinește condiția.

SELECT ProductName
FROM Products
WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity
= 10);

74) Subinterogări cu operatori de comparație, cu operatorul ALL sau EXISTS.

Operatorii ALL sunt utilizați cu o clauză WHERE sau HAVING. Operatorul ALL
returnează adevărat dacă toate valorile de subchetare îndeplinesc condiția.

SELECT ProductName
FROM Products
WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity
= 10);
75) Subinterogări în clauzele FROM și HAVING.
FROM -
HAVING – SGBD-ul executa subinterogarea returnand apoi rezultatul catre clauza
HAvING a interogarii principale
76) Interogări cu operatori din teoria mulțimilor. Operatorii UNION sau UNION ALL, și
EXCEPT sau EXCEPT ALL
UNION- permite fusionarea a doua selectii pentru a obtine o multime de tupluri ecala cu
uniunea acestor doua selectii,UNION ALL se utilizeaza pentru a pastra duplicatele
EXCEPT- diferenta a doua multimi de tupluri ,acesta determina tuplurile returnate de prima
cerere care nu sunt selectate de a doua cerere.
77) Instrucțiuni de actualizare a bazei de date: Inserarea, Modificarea, Suprimarea tuplurilor
INSERT – Inserarea unui tuplu prin specificarea valorilor acestuia se efectuiaza cu ajutorul
instructiunii INSERT INTO
UPDATE – se utilizeaza p/u formularea cererilor de modificare a valorilor unui sau mai
multor atribute,ale unui sau mai multor tupluri existente intr-o relatie .
DELETE- este exprimat in acelasi mod ca o interogare : poate fi sterse doar tupluri
complete dintr-o relatie existentă .
78) Definirea constrângerilor de integritate: NOT NULL, DEFAULT, chei primare.

NOT NUL specifica faptul ca o


coloana nu poate avea
valoarea nula
PRIMARY KEY identifica fiecare rand
al tabelei
DEFAULT este folosita pt. a
insera o valoare
default (implicita)
intr-o coloana.
Valoarea default va fi
adaugata toate
inregistrarilor noi
introduse daca nici o
alta valoare nu este
specificata.

79) Definirea constrângerilor de integritate: chei externe, UNIQUE, CHECK.

UNIQUE specifica o coloana sau o combinatie de


coloane a carei valori trevuie sa fie unice
pentru toate randurile din tabel
FOREIGN KEY stabileste o relatie de cheie straina intre
coloana si coloana tabelei de referinta
CHEcK specifica o conditie care trebuie sa fie
adevarata

80) Constrângeri de comportament CHECK la nivel de bază de date (aserțiuni)

Constrangerile la nivel de BD se numesc asertiuni. 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.
81) Modificarea și suprimarea schemei relaționale.
Structura unei relatii poate fi modificata prin adaugarea , modificare sau suprimarea
atributelor sau constrangerilor de integritate.Cu acest scop se utilizeaza instructiunea
ALERT TABLE.
82) Ce este o viziune? Crearea și suprimarea viziunilor. 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;
Go
If object_ID(‘exemplul2’,’V’) is not null drop view exemplul2;
Go
Create View exemplul2 As select Model from produse;

83) Consultarea și actualizarea viziunilor. Exemple.


Este un proces realizabil p/u prce forma de interogari ce stau la baza retragerilor datelor din
viziuni se face in acelasi mod ca in cazurile obisnuite .O viziune poate fi consultata cu
instructiunea SELECT de orce complexitate .SELECT * FROM funcDept 02
84) Definirea sinonimilor. 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
Use calculatoare;
Go
Create Synonym notebook for calculatoare.dbo.laptop_uri;
Go
Select *from notebook;
Go

85) Definirea indecșilor. Crearea și suprimarea indecșilor. Exemple.


Un index este o structură de date care permite accelerarea accesului la datele bazei de date
stocate in fisier.Accelerarea la diferite tupluri ale aceleiași relații se realizează pritr-un
atribut sau mai multe atribute(atribute-cheie)
SELECT * FROM studenti WHERE Nume='Turcan';
CREATE INDEX index_NumeStd ON studenti(Nume DESC);
DROP INDEX <nume index> [ON <nume relatie>];
86) Tipuri de indecși.
Indecși B+-arbori
Inecși bitmap
Indexul de tip tabele cu dispersie
Indecși pe valori de funcții
87) Controlul accesului la baza de date. Exemple.
MAjoritatea utilizatorilor SGBD folosesc un nume de utilizator si parola pentru accesatea
BD.Fiecare administrator are posibilitatea de a alege si implementa politici adecvate de
control al accesului și fiecărui utilizator să-i atribuie drepturi asupra shemelor și relațiilor
fiecărei sheme.
Exmple : Oferim drepturi de acces,acordam și retragem drepturi
88) Administrarea tranzacțiilor. Exemple.
O tranzactie este unitatea logica de prelucrare a bazei de date care include una sau mai
multe operatii de acces la baza de date.Aceste operatii se realizeaza in baza de date sau
toate sau niciuna .O tranz. Este finalizată
 Pritr-o validare care confirma modificarile operatiilor
 Printr-o anulare care aduce BD la starea ei initială.
89) Blocarea relațiilor și gestiunea tranzacțiilor. Niveluri de izolare.

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.