Sunteți pe pagina 1din 15

1.DefiniţiileBD şi SGBD. Funcţionalităţi. Exemple.

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.

2. Proprietatea „Nonredundanţa” în baza de date. Exemplu.


.Proprietatea “nonredundanta” in priectarea BD trebuie sa tindem sa evitam existenta redundantelor,adica a
existentei mai multor cai care arata spre aceeasi valoare.
O relaţie este redundantă dacă aceeaşi informaţie poate fi obţinută prin intermediul altor relaţii. Obiectivul este de
a realiza un model de date minimal,deci relaţiile redundante nu sunt necesare, acestea trebuie eliminate.
3. Proprietatea „Independenţa” în baza de date.
Independenta-e o problema a carei rezolvare constitue un scop in sine in conceptia si organizarea oricarei bd.
Independenta datelor inseamna ca exista o delimitare neta intre reprezentarea fizica a datelor si imaginea pe care o
are utilizatorul asupra acestor date.
Problema independentei datelor prezinta 2 aspecete:
• Independenta fizică a datelor, care presupune posibilitatea modificării schemeifizice a datelor fără ca
aceasta să implice modificarea schemei conceptuale, aschemei logice şi a aplicatiilor executabile. Astfel, o
modificare a structurii fizicenu va afecta aplicatia şi reciproc, o modificare a aplicatiei va lăsa
nemodificatăstructura fizică a datelor;
• Independenta logică a datelor, presupune că pot fi realizate modificăriconceptuale ale datelor, fără ca
prin aceasta să fie modificată schema logică sau a programelor de aplicatie.

4. Utilizatorii BD şi rolurile lor. Exemple.


neinformaticieni– beneficiarii informaţiei, nu tre să cunoască structura BD, nu tre să programeze aplicaţii,ci doar să
le folosească prin intermediul unei interfeţe suficient de prietenoase.
informaticieni– crează structura BD şi realizează procedurile complexe de exploatare a BD;
administratorul BD– utilizator special, cu rol hotărâtor în funcţionarea optimă a întregului sistem.
-neinitializati(functionari)
-instruiti(absolventii colegiului)interactioeaza prin limbaje direct cu BD.
-programatori
-administratori-preocupati de mentinerea BD,drept de acces,securitate,operatii de actualizare.
5.Arhitectura ANSI/X3/SPARC
Consta din 3 nivele:
-nivelul fizic(intern)-ne ofera structuri cu care noi construim BD.
-nivelul logic-administratorul proiecteaza BD.Alegem optiunile pentru nivelul fizic prin nivelul logic.
-nivelul extern(utilizatorului)Utilizatorul interactioneaza cu BD.
�Nivelul intern constituit din schema interna ce descrie structura de stocare fizica a datelor in baza de date
� Nivelul conceptual sau schema conceptuala descrie structura intregii baze de date pentru o comunitate de
utilizatori. La nivelul conceptual se face o descriere completa a bazei de date, ascunzind detaliile legate de
stocarea fizica, concentrindu-se asupra descrierii entitatilor, tipurilor de date, relatiilor dintre ele, precum sia
restrictiilor asociate.
� Nivelul extern sau nivelul vizual (utilizator), include o colectie de scheme externe ce descriu baza de date prin
prisma diferitilor utilizatori. Fiecare grup utilizator descrie baza de date prin prisma propriilor interese. Exista
tendinta la acest nivel ca grupuri de utilizatori sa ascunda detalii de care nu sint interesate. Si la acest nivel se pot
folosi modele de implementare sau modele de nivel inalt.

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

-retea programarea devine complicata

-relational(propus de Codd 1970)


8.Nivelul conceptual de abstracţie în BD. Modele de date. Exemple.
Nivelul conceptual– este alcătuit din schema conceptuală adatelor (articol, înregistrare, zonă) şi reprezintă, de
asemenea,viziunea programatorilor de sistem asupra datelor;Schema conceptuală - reprezentare a tuturor
informatiilor continute de BD într-o
formă abstractă. Ea reprezintăo viziune, o vedere a datelor aşa cum sunt ele în realitate, fără a tine cont de modul î
n care vede datelefiecare utilizator. Nivelul conceptual reprezintă o vedere generală a BD. Acest nivel descrie ce
date sunt stocateîn BD şi relatiile dintre acestea. Pentru o BD există o singură schemă conceptuală
La acest nivel se construieste schema conceptuala a BD.
Modele de date:
-entitatea asocierii.Elemente:entitati si asocieri intre entitati.Atribute(nume,prenume).UML-limbaj universal de
modelare.
-retele semantice-model ce se foloseste in baze de cunostinte.
9.Nivelul de abstracţie a viziunilor utilizatorilor în BD. Modele de date. Exemple.
Nivelul virtual (extern)reprezintă viziunea utilizatorului finalasupra datelor.
Scheme conceptuale particulare ale utilizatorului. O vedere externă poate fi considerată ca fiind din punctul de
vedere al utilizatorului individual continutul bd, adică ceea ce „vede” el din baza de date. Acest nivel descrie acea
parte a bazei de date care este relevantă pentru fiecare utilizator schema externă fiind formată din multimea de
sub-schemelor externe.

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.).

Fig. 3.1. Relatie reprezentata sub forma unei tabele de date


Reprezentarea tabelara este preferata adesea altor forme de reprezentare a relatiilor, întrucat este usor de
înteles si de utilizat. În prezentarea conceptului de retatie se recurge uneori la analogii cu alte concepte, extrem
de bine cunoscute în domeniul prelucrarii automate a datelor precum cel de fisier. Relatia poate avea semnificatia
unui fisier,tuplul poate fi considerat drept o înregistrare, iar valorile din cadrul tuplului pot fi interpretate drept
valori ale câmpurilor de înregistrare.În cadrul modelului relational nu intereseaza decat relatiile finite, chiar daca
în construirea relatiilor se admit domenii infinite. Numarul tuplurilor dintr-orelatie reprezinta cardinalul relatiei,
în timp ce numarul valorilor dintr-un tuplu defineste gradul relatiei.
17. Noţiunea de cheie. Tipuri de chei.. Exemple.
Cheie–un camp sau o asociatie de campuri ce are valori distincte NOT NULL pentru fiecare inregistrare din bd.
Cheie primară: garantează unicitatea şi minimalitatea şi obligă mulţimea de atribute să fie cheie primară. Pentru
aceasta se utilizeaza clauza: PRIMARY KEY.
Cheie secundară: garantează unicitatea atributelor ^^ astfel declarate. Se utilizează clauza UNIQUE.Şi
obligatoriu trebuie adiţional specificat NOT NULL.
Restrictia precizeaza faptul ca un camp este o cheie straina fiind cheie primara a altei tabele.
Definire in tabela angajat a cheii straine pentru campul D_nr:
CREATE TABLE Angajat (NUME VARCHAR(15),INI CHAR(1), PREN VARCHAR(12),SSN CHAR(9)
CONSTRAINTS ang_PK PRIMARY KEY,DAT_NA CHAR(8),ADR VARCHAR(30),SEX CHAR(1),
SALARIU INTEGER,SSSN CHAR(9),D_NR INTEGER CONSTRAINTS ang_FK REFERENCES
departament(D_nr) FOREIGN KEY(D_nr) on delete cascade|on delete set NULL);
18. Constrângeri de integritate structurale. Exemple.
constrangeri structurale, care trebuie satisfacute de orice baza de date ce utilizeazamodelul relational
Not null:specifica faptul ca un cimp nu poate avea valori necunoscute,null.
Unique:determina comportamentul cimpurilor care nu fac parte din cheia primara.Constringerea Unique asigura
ca valorile duplicate nu vor fi introduse pentru cimpurile specificate.Insa cimpurile specificate pot avea valori
nule,iar sistemul creeaza automat din ele un index pentru facilitatea cautarii in tabele.
Cheia primara:cimpurile nu pot contine valori duplicate.
Cheia externa:un cimp sau o multime de cimpuri ce orespund cheii primare a altui tabel.Cheia primara se
utilizeaza pentru a defini legaturile dintre tabele.
Ex:tabelul comenzi contine cod.furnizor ca cheie primara.cod furnizor din tabela furniozor este cheie externa
pentru tabelul comenzi.
19. Constrângeri de integritate comportamentale. Exemple.
constrangeri de comportament , care sunt specifice fiecarei baze de date, in particular
Check: limiteaza valorile care pot fi luate de un cimp (sau mai multe cimpuri)In cazul actualizarii BD sistemul
testeaza constringerea booleana care urmeaza dupa cuv rezervat check.Daca adevarat-este acceptata
actualizarea.ex: CHECK(“an studiu” BETWEEN 1 and 5)
Reguli:
• orice restricţie are asociat un nume (explicit sau implicit);
5
• Dacă folosim CONSTRAINT atunci numele trebuie dat explicit;
• Cheile multiple pot fi definite doar la nivelul tabelei;
• NOT NULL doar la nivelul coloanei.
20. Operaţii de actualizare a relaţiilor.
• INSERT – Adaugă un tuplu sau mai multe într-o relaţie.
• UPDATE – Modifică valorile unor atribute întro relaţie specificată în tuplurile specificate de un criteriu.
• DELETE – Şterge tuplurile dintr-o relaţie care satisfac un criteriu specificat.
21. Operaţiile tradiţionale pe mulţimi: uniunea, intersecţia şi diferenţa. Proprietăţi. Exemple.
Operatiile binare asupra relatiilor: uniunea, intersectia si diferenta, necesita ca operanzii (relatiile) sa fie
defintii pe scheme compatibile.
• Uniunea a doua relatii compatibile r(R) si s(S), notata cu r Υ s, e o relatie definita pe schema R sau S si
consta din tuplurile ce apartin relatiilor r sau s.
Operatia uniunea are doua proprietati. Ea e comutativa, adica r Υ s = s Υ r. Ea este si asociativa, adics (r Υ s)
Υ q = rΥ(s Υ q) pentru relaiile mutual compatibile r, s si q.
• Intersectia a doua relatii compatibile r(R) si s(S), notata cu r ∩ s,neste o relatie definita pe
schema R sau S si consta din tuplurile ce apartin concomitent relatiilor r si s.
• Diferenta a doua relatii compatibile r(R) si s(S), notata cu r \ s, este o relatie definita pe multimea de
atribute R sau S si are în calitate de tupluri, toate tuplurile din relatia r ce nu sunt în s.
Diferena nu se bucura de proprietatea comutativa, adica r \ s ≠ s \ r. Totodata, nu e nici asociativa, adica (r \
s) \ q ≠ r \ (s \ q), fiindca (r \ s) \ q = r \ (s Υ q) pentru orice relaii mutual compatibile r, s, si q.

Intersectia q=r∩s

Difer
enta

q1=r\s q2=s\r

22. Operaţia produsul cartezian. Proprietăţi. Exemple.


• Produsul cartezian a doua relatii r(A1…An) si s(B1…Bm), notat cu r ⋅ s, este o multime de tupluri (si nu
întotdeauna o relatie) definite pe multimea de atribute A1…An B1…Bm. Tuplurile reprezinta toate posibilele
asociatii de tupluri din r si s: daca tr Є r si ts Є s, atunci concatenatia trts este un tuplu în r ⋅ s; pentru orice
pereche de tupluri tr si ts din r si s, respectiv, exista un tuplu t în r ⋅ s încât t[Ai]=tr[Ai], 1≤i≤n si t[Bj]=ts[Bj],
1≤j≤m.

Produsul cartezian nu este o operatie comutativa. În schimb se bucura de proprietatea asociativa.


23. Operaţiile complement şi complement activ. Proprietăţi. Exemple.
• Fie relatia r(R). Notam prin tup(R) multimea tuturor tuplurilor asupra atributelor schemei R si a
domeniilor lor. Complementul relatiei r, notat cu r‫־‬, este r‫ = ־‬tup(R) \ r.
• Fie r o relatie asupra schemei R, AЄR si adom(A) = {a|aЄdom(A) & Ǝ tЄr&t[A] =a}. Multimea de valori
adom(A) se numeste domeniul activ al atributului A. Notam cu atup(R) multimea tuturor tuplurilor asupra
atributelor schemei R si a domeniilor lor active. Atunci complementul activ, notat cu ~r, este ~r = atup(R) \ r.
6
Compleme
n tul activ

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)}.

Selectia s=σ((A = B) & (D>5))(r)


25. Operaţia proiecţia. Proprietăţi. Exemple.
Proiectia e o operatie unara.
• Proiectia relatiei r asupra multimii de atribute X, notata cu πx(r), e o relatie cu schema X ce consta din X-
valorile tuturor tuplurilor din r: πx(r) = {t [X] | t Є r}.

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).

29. Operaţia semijoncţiunea. Proprietăţi. Exemple.


• Semijonctiunea e o operatie binara. Ea consta în construirea unei relatii din cele doua si e formata numai
din tuplurile unei singure relatii ce participa la jonctiune.
Fie doua relatii r(R) si s(S). Semijonctiunea relatiei r si s, notata cu
r|x s, este o multime de tupluri determinata de expresia r|x s = πR(r|x|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

31.Componentele limbajului SQL2


Component ele pe care le cuprinde limbajul SQL sunt urmatoarele:
8
DDL(Data Definition Lang.)-Componenta de descriere a datelor relationale,definirea ,modificarea si
eliminarea schemelor de relatii(tabele) Crearea indecşilor ;Definirea viziunilor ;Specificarea constrângerilor de
integritate;E x e m p l u : C R E A T E , A L T E R , D R O P , . . .
DML(Data Manipulation Lang.)-Componenta de manipulare a datelor relationale,Consultarea ,actualizarea
si stergerea obiectelor create cu DDL;este bazat pe calculul relational.Exemple:Select ,insert,update.
DCL(Data Control Lang.)-Definirea permiselor de acces la BD.Exemple:GRANT,REVOKE,ADD.
Pe linga aceste componente principale standartul SQL2 mai prevede si alte componente ale limbajului:
3.Controlul tranzactiilor contine comenzi pt specific tranzactiilor
4.Controlul securitatii si refacerea datelor contine comenzi de administrare a bazei de date pt definirea
utilizatorilor si a dreputului de acces la tabele
32.Tipuri de date numerice în SQL2 şi Transact SQL. Exemple
Tipul numeric include(Exacte si Aproximative)
- Exacte:
numere întregi: INTEGER sau INT reprezentat pe 4 octeti;
SMALLINT reprezentat pe 2 octeti;
TINYINT reprezentat pe 1 octet;
- numere zecimale- reprezentate cu precizia dorita:
tipul NUMERIC sau DECIMAL, cu forma numeric[(p,s)], unde p este numarul total de cifre afisate, iar s este
numarul de cifre dupa punctul zecimal,unde p(precizia) este nr total de cifre afisate iar s (scara) nr de cifre dupa
punctul zecimal.
Exemplu: decimal(4,1) va fi 1116.2 si nu 16.2 sau 1116.21
-Aproximative
- numere reale reprezentate în virgula flotanta, cu diferite precizii:
REAL reprezentat pe 8 octeti-numere cu precizie simpla ,cu cel putin 7 cifre semnificative;
FLOAT reprezentat pe 4 octeti;
DOUBLE [PRECISION] reprezentat pe 8 octeti-numere cu precizie de cel putin 15 cifre semnificative;
33. Tipuri de date secvenţe de caractere în SQL2 şi Transact SQL. Exemple.
CHARACTER (n) sau CHAR (n) definesc siruri de caractere cu lungimea fixa.
CHARACTER VARYING sau VARCHAR (n) defineste sirul de caractere cu lungimea variabila.
Asemanarea dintre cele doua tipuri prezentate mai sus este aceea ca ambele reprezinta siruri de
maxim n caractere, iar deosebirea este aceea ca pentru siruri cu numar de caractere mai mic ca n, CHAR (n)
completeaza sirul cu spatii albe pâna la n caractere, iar VARCHAR (n) memoreaza numai atâtea caractere câte
are sirul dat.Text-pt secvente de caractere ASCII cu lungime variabila mai mare de 8 KO(de exemplu documente
Html) dar care nu depaseste valoarea (2147483647 caractere)
34. Tipuri de date temporale în SQL2 şi Transact SQL. Exemple (Date speciale)
Datele de tip data si time:
Datetime-pastreaza date alfanumerice care reprezinta data cuprinsa 01/01/1753 si 31/12/9999, si timpul 00:00:00
si 23:59:59:997,inclusiv.Ocupa 8 octeti.
Datetime2-reprezinta o extensie a tipului date time ,are un interval mai larg.
Date-pastreaza date alfanumerice ,ocupa 3 octeti si o precizie de o zi.
Time-date alfanumerice care reprezinta timpul ,ocupa 5 octeti si precizia de 100 nanosecunde.
Datetimeoffset-In afara de an,luna si data mai reprezinta ora de la 1 la 24 ,ocupa octeti si are 100 nanosecunde
precizie.
Smalldate time-ocupa 4 octeti ,precizie 1 minut.
Date speciale:
Cursor-contine referinta la un cursor,orice variabila de acest tip poate lua valoarea NULL.
Hierarchyd-date cu lungime variabila,se utilizeaza pt crearea tabelelor cu structura ierarhica sau p-u referinta la
date cu structura ierarhica.
SQL_variant-tip de date care stocheaza valori ale diferitelor tipuri de date suportate de SQL,cu exceptia
text,ntext,image,timestamp si sql_variant.
Table- tip special de date utilizat pt stocarea unui rezultat pt tratarea ulterioara,pt pastrarea unei multimi de rind
obtinute in calitate de rezultat al unei functii cu valoarea unui tabel.
Timestamp-identificator unic pt toata baza de date se utilizeaza in calitate de mecanism de marcare a versiunii
unui rind din tabel ,care se autoincrementeaza de fiecare data cind se actualizeaza un rind,sinonim rowversion.
XML-tip de date ce pastreaza date XML.

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:

R(A1: D1, A2:D2, ... , An: Dm)


sau
R:
A1:D1 .. An:Dm
.

Fig. 3.4. Reprezentarea schemei relaţiei R


36. Constrângeri de comportament în SQL2. Exemple
Specifica caracteristicile independente ale unui atribut(sau domeniu).Ele exprima semanticca elementelor
domeniilor.De exemplu valorile atributului Nota_med trebuie sa fie mai mare decit zero,dar nu poate depasi
zece.Sau nici o persoana de virsta 25 ani nu poate avea o vechime in munca de 37 de ani.Deci conform acestei
restrictii valorile atributului trebuie sa se incadreze intre anumite limite.
37. Constrângeri structurale în SQL2. Exemple.. Constringeri de dependente
Specifica legatura dintre atribute(sau domenii).Aici putem identifica asa numita dependenta de multime de
atribute{Angajat Salariu Departament Manager}. In relatia personal,un manager este in acelasi timp un
angajat,dar nu orice angajat este manager.Deci avem ca dom(manager) Ui dom (angajat)
38. Modificarea şi suprimarea schemei relaţionale în SQL2.
1. Drop table comanda pentru stergerea unei relatii
DROP TABLE Angajat
2.Alter table modificarea schemei relationale
ALTER TABLE nume_relatie TIP_modif (definitie)
Adaugarea unui camp
ALTER TABLE angajat ADD (nume_camp tip_data [DEFAULT expresie] [constrangere])
Ex:ALTER TABLE angajat ADD (studii VARCHAR(15) DEFAULT “medii” CONSTRAINT ang_stud
NOT NULL)
Stergerea unui campALTER TABLE nume_relatie DROP COLUMN nume_coloana [CASCADE
CONSTRAINTS]
Sau
ALTER TABLE nume_relatie DROP (lisata coloane) [CASCADE CONSTRAINTS]
Ex:ALTER TABLE angajat DROP (SSSN)
ALTER TABLE angajat DROP COLUMN SSSN
Optiunea CASCADE CONSTRAINTS sterge suplimentar toate constrangerile de integritate in care suntimplicate
coloanele sterse inclusiv cele de tip FOREIGN KEY
39.Cele mai simple interogari (numai cu proiectia)
Interogare (querry) este o operatie prin care se obtin datele dorite dintro baza de date selectate conform unui
anumit criteriu(conditie)
Proiectia –operatie relationala unara prin care se selecteaza o submultime de atribute ale relatiei
Numele si reducerile clientilor din Orhei
Proiectia Cl_nume,reducere (Selectia (clienti)
cl.oras=”orhei”
SELECT <coloane> FROM <tabel> where conditie
SELECT stuName, stuAddress FROM student
40.Interogări cu criterii de selecţie în SQL2. Exemple.
Interogarile cu criterii de selectie in SQL sunt utilizate p/u selectarea datelor din tabele.Are urmatoarea
sintaxa de baza:
SELECT[TIP]<lista de cimpuri>FROM<lista de tabele>[CONDITIE]
Lista de cimpuri-lista de cimpuri ce trebuie selectate.
Lista de tabele-lista de tabele de unde datele trebuie sa fie selectate.
10
CONDITIE-defineste un filtru p/u interogare folosind unele clause ca WHERE.
EX: Model,Pret FROM pc_uri WHERE Cd=’40x’ ORDER BY Pret
SELECT *FROM functionari WHERE Varsta < 28 AND Dept = 1
SELECT *FROM functionariWHERE Varsta BETWEEN 18 AND 30
SELECT *FROM funcţionari WHERE Nume IN ('Gheorghe Câmpeanu', 'Adrian Paiu')
SELECT Nume, Prenume FROM persoane ORDER BY Nume, Prenume;
SELECT nume FROM functionari WHERE nume LIKE’%lin%’
SELECT avg(pret) as Pret_med from imprimante
41.Interogări cu funcţii de agregare în SQL2. Exemple.
F.de agreg.-prelucreaza multimi de inregistrari(linii) ale tabelului si returneaza un anumit rezultat.Majoritatea
acestor functii,de obicei,actioneaza asupra tuturor liniilor tabelului.
Ele accepat parametrii:
All-face ca functia sa considere toate inregistrarile inclusiv cele duplicate.
DISTINCT-face ca funct. Sa considere numai inregistrarile ce nu poseda o valoare duplicata.
AVG-returneaza media aritmetica a lui x.
COUNT-returneaza nr. de linii a interogarii.
MAX/MIN-returneaza valoarea maxima sau minima a expr.MAX sau MIN ([DISTINCT|ALL)] expr)
EX: SELECT AVG(Viteza) As Viteza_medie,
MAX(Viteza) As Viteza_maxima,
MIN(Viteza) As Viteza_minina.
42.Interogări cu agregarea tuplurilor în SQL2. Exemple.
43. Interogări de actualizare (inserare şi ştergere) a datelor în SQL2. Exemple
Limbajul TRANSACT-SQL propune 3 instructiuni ce corespund celor 3 operatii de actualizare a bazei de
date:inserarea(instructiunea INSERT)-pentru inserarea datelor,suprimarea(instructiunea DELETE)-p/u stergerea
datelor si modificarea(instructiunea UPDATE)-p/u modificarea datelor.Toate optiunile se asupra tabelelor (fizice
sau virtuale) si actualizearea se petrece la nivel de linie de tabel.
EX:CREATE TABLE clienti(Cod_client INT,Tara CHAR(2)DEFAULT(‚MD’),Nume CHAR(20));
INSERT clienti (Cod_client,Tara,Nume)VALUES(12340,’MD’,’Ion Petrache’);
INSERT clienti DEFAULT VALUES;
INSERT clienti VALUES (12560,’FR’,’Jack London’);
44. Interogări de actualizare (modificare) a datelor în SQL2. Exemple.
UPDATE-operatia de modificare a continutului unuia sau a mai multor cimpuri ale tuplurilor.
Sintaxa instructiunii: UPDATE <tabel> SET<coloana>=<valoare noua> WHERE <conditie>
In caz cind nici o conditie nu e impusa, toate cimpurile tuturor inregistrarilor vor fi alterate de valorile noi.
EX: UPDATE functionari SET Sector=’Administratie’ WHERE Sector=’Finante’;
SELECT * FROM functionari ORDER BY Sector;
45. Interogări cu uniuni în SQL2. Exemple.
Operatia UNION-permite fuzionarea a doua selectii pentru a obtine o multime de tupluri egala cu uniunea acestor
doua selectii.
EX. SELECT produse.Model ,Pret FROM produse,pc_uri
WHERE produse.Model=pc_uri.Model AND Producator=’B’
UNION
SELECT produse.Model,Pret FROM produse,laptop_uri
WHERE produse.Model=laptop_uri.Model AND Producator=’B’
UNION
SELECT produse.Model,Pret FROM produse,imprimante
WHERE produse.Model=imprimante.Model AND Producator=’B’
46.Interogări cu intersecţii î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.
Pentru a gasi valori ce coincid in doua sau mai multe tabele ,se poate utiliza instructiunea INTERSECT.
EX: SELECT Model FROM produse
INTERSECT
SELECT Model FROM pc_uri

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

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