Sunteți pe pagina 1din 11

1.Definiiile BD i SGBD. Funcionaliti. Exemple.

BD - colectie persistenta de informatii structurate, organizata si construita pentru facilitarea accesului si


prelucrarii eficiente, unic definit o singur dat i utilizat simultan de mai multi utilizatori. BD este o resurs
comun i partajat. BD contine nu numai date ci i descrierea acestora. Descrierea datelor - de dictionar de
date (catalog de sistem, metadate) reprezint date despre date. Utilizatorii BD pot accesa datele memorate prin
intermediul unui program - Sistem de Gestiune a Bazei de Date - SGBD -Database Management System-DBMS,
ce receptioneaza cererile utilizatorilor (pentru operatii de introducere, stergere, modificare sau interogare), le
interpreteaza, executa operatiile corespunzatoare si returneaza rezultatul catre utilizatori. Un SGBD - un produs
software ce asigur interaciunea cu o BD, permind definirea, consultarea i actualizarea datelor din BD. Toate
cererile de acces la BD sunt tratate i controlate de ctre SGBD. . Obiectivul principal al unui SGBD este de a
separa datele de programele de aplicatie. SGBD constituie o interfa intre utilizatori si baza de date si consta din
programe care interactioneaza cu programele de aplicatie ale utilizatorului si cu baza de date
2. Proprietatea Nonredundana n BD. Exemplu.
Asigurarea unei redundante minime i controlate a datelor este al doilea obiectiv major al organizrii datelor
n BD. Aceasta nseamn c se urmrete pe ct posibil ca fiecare dat s apar numai o singur dat n BD,
indiferent de numrul de utilizatori care o acceseaz. Duplicarea datelor se pstreaz doar pentru a asigura
coerenta bazei de date, redundanta, trebuie redus la minim i mentinut sub control. Redundanta minim se
asigur prin tehnicile de proiectare a BD
3. Proprietatea Independena n BD.
Independenta - problema a carei rezolvare tine de organizarea optima a 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 fizica-masura a imunitatii aplicatiilor fata de modificarile in structura fizica de merorare a datelor.
Independenta logica-se refera la imunitate a modelului propriu al fiecarui utilizator fata de modificarile in
structura logica globala a BD. Independenta logica este legata in primul rand de problema adaugarii de noi unitati
logice (campuri, inregistrari) la structura BD si/sau de modificarea relatiilor existente intre ele.
4. Utilizatorii BD i rolurile lor. Exemple.
neinformaticieni beneficiarii informaiei, nu tre s cunoasc structura BD, nu tre s programeze aplicaii,
ci doar s le foloseasc prin intermediul unei interfee suficient de prietenoase.
informaticieni creaz structura BD i realizeaz procedurile complexe de exploatare a BD;
administratorul BD utilizator special, cu rol hotrtor n funcionarea optim a ntregului sistem..
5.Arhitectura ANSI/X3/SPARC
Arhitectura intern a unui sistem de BD conform standardului ANSI/X3/SPARC conine trei niveluri funcionale:
Nivelul intern constituit din schema intern ce descrie structura de stocare fizic a datelor n BD, utiliznd un
model al datelor fizice. La acest nivel se descriu detaliile complete ale stocrii i modul de acces la date.
Nivelul conceptual sau schema conceptual, descrie structura ntregii BD pt o cumunitate de utilizatori. La
nivel conceptual se face o descriere complet a BD ascunzndu-se detaliile legate de stocarea fizic i detaliind
descrierea entitilor, tipurilor de date, relaiile dintre ele i restriciile asociate.
Nivelul extern sau nivelul vizual (utilizator), include o colecie de scheme externe ce descriu BD prin prisma
diferiilor utilizatori.
6.Nivelul fizic de abstracie n BD. Modele de date. Exemple.
Abstractizare procesul de identificare a caracteristicilor distinctive a unei clase sau obiect fr a fi nevoie de a
procesa toate informaiile referitoare la clas sau obiect.
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 abstracie n BD. Modele de date. Exemple.
Modele de date:
-ierarhic
- Nod artificial
-retea programarea devine complicata

-relational(propus de Codd 1970)


8.Nivelul conceptual de abstracie n BD. Modele de date. Exemple.
Schema conceptual - reprezentare a tuturor informatiilor continute de BD ntr-o form abstract. Ea reprezint
o viziune, o vedere a datelor aa cum sunt ele n realitate, fr a tine cont de modul n care vede datele
fiecare 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 abstracie a viziunilor utilizatorilor n BD. Modele de date. Exemple.
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.
10.Etapa de proiectare fizic a bazelor de date
lucrul interactiv cu utilizatorii ct de muli trebuie;
urmrirea unei metodologii structurate de-a lungul procesului de modelare a datelor;
utilizarea unei abordri coordonat prin date;
ncorporarea consideraiilor structurale i de integritate n modelul de date;
combinarea tehnicil de conceptualizare, normalizare i validare a tranzac n metodologia de modelare a datelor;
utilizarea diagramelor, pentru a reprezenta ct mai mult din modelul de date;
utilizarea unui limbaj de proiectare a BD Data Base Design Language (BDDL) pt a reprezenta semantica
suplimentar a datelor;
construirea unui dicionar care s suplimenteze diagramele modelului de date;
disponibilitatea de a repeta anumite 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 relaional sunt urmtoarele:
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
tranzaciilor cerute.
Operaiile efectuate n cadrul acestei etape (E2) sunt:
E2.1. Transpunerea modelului de date conceptual local n modelul de date logic
local.
E2.2. Extragerea relaiilor din modelul de date logic local.
E2.3. Validarea modelului prin utilizarea normalizrii.
E2.4. Validarea modelului conform tranzaciilor utilizatorului.
E2.5. Desenarea diagramei Entitate Relaie (ER).
E2..6. Definirea constrngerilor de integritate.
E2.7. Revizuirea modelului de date logic loca, mpreun cu utilizatorii.
La ncheierea acestei etape, (E2) trebuie s se obin un model al vederilor utilizatorului care s fie: riguros,
cuprinztor i fr echivoc. Dac sunt respectate aceste cerine, se va dispune n acest stadiu de un fundament
solid
pentru a putea trece la etapa urmtoare (E3) care const n combinarea modelelor de date logice locale
individuale, pentru a realiza un model de date logic global al ntreprinderii.
12.Analiza cerinelor informaionale 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, pt fiecare vedere a utilizatorilor asupra ntreprinderii. O vedere a utilizatorului
reprezint datele cerute de ctre un anumit utilizator pentru a lua o decizie corect sau a efectua o anumit
activitate. De obicei, vederea unui utilizator constituie o zon funcional a ntreprinderii, cum ar fi: producia,
marketing, vnzrile, personalul, contabilitatea sau controlul aprovizionrii. Un utilizator poate fi o persoan real
sau un grup de persoane ce utilizeaz n mod direct sistemul. Utilizatorul se poate referi la un raport produs de
ctre sistem sau poate solicita rezultatele unei tranzacii ce trebuie acceptat de ctre acestea. Vederile
utilizatorilor pot fi identificate folosind diverse metode: pot fi examinate diagramele de flux de date ce au fost
realizate mai nainte, pt de a identifica zonele funcionale i posibil funciile individuale, ar putea fi chestionai
utilizatorii se pot examina procedurile, rapoartele i formulrile i/sau observa ntreprinderea n funciune.
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 integrrii tehnologiei bazelor de date cu cea a reelelor de calculatoare sunt BD distribuite - Sunt BD
logic integrate, dar fizic distribuite pe mai multe sisteme de calcul. Integrarea BD distribuite se face cu ajutorul
celor trei tipuri de de scheme care sunt implementate:
1.schema global definetei descrie toate informaiile din baza de date distribuit n reea;
2.schema de fragmentare descrie legturile dintre o colecie globali fragmentele sale. E de tipul unu la mai
muli i are forma unei ierarhii;
3.schema de alocare descrie modul de distribuire a segmentelor pe calculatoarele(nodurile) din reea. Fiecare
segment va avea o alocare fizic pe unul sau mai multe calculatoare. Schema de alocare introduce o
redundan minim i controlat: un anumit segment se poate regsi fizic pe mai multe calculatoare.
15.Elementele modelului relaional: atribute, domenii, tupluri. Definiii i exemple.
Entitate-obiect real/conceptual, cu existenta independenta;un obiect cu existenta fizica: pers particulara, automob,
companie, activitate, curs universitar.Orice entitate are o serie de proprietati-atribute ce particularizeaza entitatea
respectiva. Ex: pt o entitate angajat se pot enumera o serie de atribute : nume, adresa, data nasterii, sex, salariu.
Atributul este o utilizare sub un nume oarecare a unui domeniu
ntr-o relaie pot exista mai multe atribute derivate din acelai domeniu
n termenii abstractizrilor, un domeniu este o generalizare a unor atribute
Domeniul reprezint ansamblul de valori admisibile pentru o component a unei relaii
domeniul numelor de orae, domeniul numelor de persoane, domeniul numerelor ntregi, etc
Tuplu-secventa de elemente care merg unul dupa altul dar nu fixam ordinea.
Relaie Tabela; Tuplu - Linie/inregistrare; Cardinalitate - Numar de linii; Atribut - Coloana/Cimp
Grad - Numar de coloane; Domeniu - Multime de valori valide
16.Elementele modelului relaional: schem relaional, relaie, BD, schem a BD.
Modelul clasic de BD -modelul relaional, unde datele sunt memorate n tabele. Relatie-multimea finita de
tupluri.Relaiile ntre 2 tabele sunt unidirecionale, astfel o tabel devine principal, cealalt devine subordonat.
Schema relatiei-capul BD - un ansamblu de date structurate, accesibile unei comuniti de utilizatori.Schema BD
poate fi reprezentat printr-o diagram de structur n care sunt puse n eviden i legturile dintre tabele.
17. Noiunea de cheie. Tipuri de chei. Exemple.
Cheieun 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 mulimea 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 adiional 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. Constrngeri de integritate structurale. Exemple.
Not null:specifica faptul ca un cimp nu poate avea valori necunosc,null. Unique:determina comportam cimpurilor
ce nu fac parte din chprimara.Constringerea Unique asigura ca valorile duplicate nu vor fi introduse pt cimpurile
specificate.Dar cimpurile specificate pot avea valori nule,si sistemul creeaza automat din ele un index ptfacilitatea
cautarii in tabele. Cheia primara:cimpuril nu pot contine valori duplicate.Cheia externa:un cimp sau o multime
de cimpuri ce orespund chprimare a altui tabel.Chprimara se utiliz pt a defini legaturile dintre tabele. Ex:tabelul
comenzi contine cod.furnizor ca chprimara.cod furnizor din tabela furniozor e chexterna pt tabel comenzi.
19. Constrngeri de integritate comportamentale. Exemple.
Check: limiteaza valorile ce 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-e acceptata actualizarea.ex:
CHECK(an studiu BETWEEN 1 and 5)
Reguli: -orice restricie are asociat un nume (explicit sau implicit); -Dac folosim CONSTRAINT atunci numele
trebuie dat explicit; -Cheile multiple pot fi definite doar la nivelul tabelei;
NOT NULL doar la nivelul coloanei.
20. Operaii de actualizare a relaiilor.
INSERT Adaug un tuplu sau mai multe ntr-o relaie.
UPDATE Modific valorile unor atribute ntro relaie specificat n tuplurile specificate de un criteriu.
DELETE terge tuplurile dintr-o relaie care satisfac un criteriu specificat.
21. Operaiile pe mulimi: uniunea, intersecia i diferena. Proprieti. 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 U 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 U s = s U r; asociativa, adica (r U s) U q = rU(s U q) pentru relatiile mutual compatibile r, s si
q. Intersectia a doua relatii compatibile r(R) si s(S), notata cu r s,este 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 U q) pentru orice relaii mutual compatibile r, s, si q.

Intersectia q=rs

Diferenta
q1=r\s
q2=s\r

22. Operaia produsul cartezian. Proprieti. Exemple.


Produsul cartezian a doua relatii r(A1An) si s(B1Bm), notat cu r s e o multime de tupluri (nu ntotdeauna
o relatie) definite pe multimea de atribute A1An B1Bm. Tuplurile - 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 nct t[Ai]=tr[Ai], 1in si t[Bj]=ts[Bj, 1jm.

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


23. Operaiile complement i complement activ. Proprieti. 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, AR si adom(A) = {a|
adom(A) & tr&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.
Complementul activ

24. Operaia selecia. Proprieti. Exemple.


Selectia este o operatie unara. Pt 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 tr ce satisfac F, adica F(r) = t | t r & F(t).


Selectia s=((A = B) & (D5))(r)

25. Operaia proiecia. Proprieti. 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. Operaia jonciune. Proprieti. Exemple.
Fie doua relatii r(R) si s(S). Jonctiunea relatiilor r si s (notatia uzuala r|x|s) e 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}. =>fiecare tuplu din relatia rezultat e o concatenare a unui tuplu din r cu
unul s ce au (RS)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. Interaciunea dintre operaiile jonciunea i proiecia. 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.
28. Operaia -jonciune. Proprieti. Exemple.
-jonctiunea relatiilor r(R) si s(S), notata cu r|x|ABs e o multime de tupluri concatenate de forma trts , unde tr
r, ts s si tr(A) ts(B), adica: r|x|ABs = { 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|ABs = AB(r s).

29. Operaia semijonciunea. Proprieti. 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. Operaia divizarea. Proprieti. Exemple
Fie r(R) si s(S) doua relaii si S R. Notam Q = R \ S. Diviziunea relatiei r la relatia s, notata cu rs, este o relatie
definita pe multimea de atribute Q: rs = {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=rs. Atunci qs
produce o relatie cu schema R si relatia q va contine numarul maximal de tupluri ce ar satisface expresia qs r.

Diviziunea q= rs
31.Componentele limbajului SQL2.
Definirea datelor: categorii de date, tipul acestora, legturi, reguli de validare, formatare. Manipularea datelor:
selectarea oricrui cmp de date, filtrarea datelor, sortarea, corelarea cu alte informaii i totalizarea rezultatelor,
actualizare, tergere, copiere n alt tabel. Controlul datelor: definirea utilizatorilor cu drept de citire, actualizare i
inserare date, partajarea datelor. DDL : Limbaj de definire a datelor: Mulime de instruciuni care permit
definirea, modificarea i eliminarea schemelor de relaii (tabele), Crearea indecilor, Definirea viziunilor
Specificarea constrngerilor de integritate. Exemplu: CREATE, ALTER, DROP, ...
DML: Limbaj de manipulare a datelor-Mulime de instruciuni care permit
Consultarea, actualizarea i tergerea obiectelor create cu DDL, cum ar fi tabelele, indeci etc.
Este bazat pe algebra i calculul relaional. Exemple: SELECT, INSERT, UPDATE,DELETE, ..
DCL: Limbaj de control al datelor-mulime de instruciuni care permit definirea permiselor de acces la BD
Exemple: GRANT, REVOKE
32. Tipuri de date numerice n SQL2 i Transact SQL. Exemple.
Intregi:
INTEGER, 4 octei, numere ntre -2147483648 i 2147483648;
SMALLINT, 2 octei, numere ntre -32768 i 32767
TINYINT , 1 octet, numere de la 0 la 255
Zecimale:NUMERIC(M;D)DECIMAL(M,D).Norma SQL2 impune atributelor de tip NUMERIC s accepte
numere cu un numr exact de cifre zecimale, n timp ce atributele de tip DECIMAL nu.
Numerice aproximative:
REAL, numere cu precizie simpl, cu cel puin 7 cifre semnificative
DOUBLE PRECISION sau FLOAT,
33. Tipuri de date secvene de caractere n SQL2 i Transact SQL. Exemple
CHAR(N) (sau CHARACTER(N)) secven de lungime fix; VARCHAR(N) (sau CHAR VARYING(N), sau
CHARACTER VARYING(N)) secven de lungime variabil cu cel mult N caractere; TEXT. Secvente de biti:
BIT(N) de lungime fix; VARBIT(N) (sau BIT VARYING(N))-lungime variabil cu cel mult N bii
34. Tipuri de date temporale n SQL2 i Transact SQL. Exemple.
DATE : YYYY-MM-DD
TIME: HH-MM-SS
TIME-STAMP:
YYYY-MM-DD-HH-MM-SS-F...F
35. Definirea schemei unei relaii n SQL2. Exemple.
O schema relatie R data prin R(A1,A2,...,An) reprezinta un set al atributelor Ai. Fiecare atribut Ai joaca rolul
numelui acelui domeniu Di in relatia R. Di este domeniul lui Ai si se noteaza dom(Ai). O schema relatie este
utilizata pentru descrierea relatiei R, unde R este numele relatiei. Se defineste gradul relatiei ca fiind numarul
atributelor n ale schemei relatiei. Fie de exemplu o schema relatie de grad 7, ce descrie studentii intr-o
universitate: STUDENT(Nume, SSN, Telefon, Adresa_stabila, Adresa_flotanta, Virsta, Directie_specializare).
36. Constrngeri 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. Constrngeri structurale n SQL2. Exemple..
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 relaionale n SQL2. Exemple.
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 camp:ALTER 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 sunt implicate
coloanele sterse inclusiv cele de tip FOREIGN KEY
39. Cele mai simple interogri (numai cu proiecia) n SQL2. Exemple.
SELECT <coloane> FROM <tabel> where conditie
SELECT stuName, stuAddress FROM student
40. Interogri cu criterii de selecie 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. 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 funcionari WHERE Nume IN ('Gheorghe Cmpeanu', '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.Interogri cu funcii 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.Interogri cu agregarea tuplurilor n SQL2. Exemple.
43. Interogri 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. Interogri 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. Interogri cu uniuni n SQL2. Exemple.
Operat UNION-permite fuzionarea a 2selectii ptaobtine o multim de tupluriegalecu 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.Interogri cu intersecii 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
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.Interogri cu diferene 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.Interogri cu jonciuni n SQL2. Exemple
Deseori,p/u a obtine un rezultat complet, este necesara selectarea datelor din doua sau mai multe tabele.
Tabelele din BD 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.Interogri imbricate cu ALL n SQL2. Exemple.
Subinterogare este o cerere care restituie un singur atribut. Interogarea utilizat in comparanie 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 gseasc 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. Interogri imbricate cu ANY n SQL2. Exemple
Cuv cheie any specific faptul c linia este valid dac valoarea atributului se afl in relatie cu cel putin o valoare
returnat de interogarea imbricat. Exemplu: S se gseasc angajaii ce lucreaz intr-un departament din Iasi.
select Nume, Prenume from Angajati where Dept = any (select Dept from Departament where Oras = Iasi)
Observatie. Aceast interogare poate fi rezolvat prin realizarea unei jonctiuni intre cele dou tabele.
51. Interogri imbricate cu EXISTS n SQL2. Exemple.
Acest operator accept ca parametru o interogare imbricat si returneaz valoarea adevrat doar dac interogarea
nu produce un rezultat vid. S se gseasc persoanele care au acelasi nume si prenume, dar coduri diferite.
select *from Persoana P where exists (select *from Persoana P1where P1.Nume = P.Nume and P1.Prenume =
P.Prenume and P1.Cod <> P.Cod )
52. Interogri 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. Interogri imbricate cu = n SQL2. Exemple.
S se gseasc 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 interogri sunt echivalente, este indicat folosirea functiilor agregat deoarece sunt mai
concludente si se execut mai eficient.
In cazul primei interogri nu exist nici o diferena 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 BD n SQL2. Exemple
Pt a putea lucra cu BD tre sa avem instalat un server de BD.Tre sa realizam conexiunea sh sa accesam in sfirsit
datele In functie de modul de exploatare a bazei de date, utilizatorii se pot imprti in:
administratorul bazei de date (DBA) pers responsabil de proiectarea, controlul si administrarea bazei de date.
programatorii de aplicatii definesc si creeaz programele ce acceseaz BD.
utilizatorii obisnuiti cei care utilizeaz efectiv BD.
utilizatori finali utilizeaz tranzactii (spre exemplu programe ce realizeaz activitti frecvente si predefinite
utilizatori ocazionali capabili s utilizeze limbaje interactive pentru a accesa BD, formuland interogri (sau
actualizri) de diferite tipuri.
55.Definirea permiselor asupra relaiilor n SQL2. Exemple.
SGBD-urile permit datelor s fie considerate drept resurse comune ale organizatiei, disponibile tuturor membrilor
autorizati.
BD furnizeaz un model standardizat si precis al acelei prti a lumii reale ce prezint interes pt organizatie,
model folosit in aplicaiile 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
55. Definirea permiselor asupra relaiilor n SQL2. Exemple.
Idee nam ce o avut in vedere, pp ;)
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 tre sa fie unic.Un sinonim poate fi creat pt urmat obiecte din BD:
tabelele definite de utilizator(inclusive tabelele temporare atit locale cit sh globale)viziuni,proceduri 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
BD 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 de
baza,laptop_ri din vaza de calculatoare, apoi interogheaza BD,utilizind sinonimul creat:
Use calculatoare;
Go
Create Synonym notebook for calculatoare.dbo.laptop_uri;
Go
Select *from notebook;
Go
57. Blocarea relaiilor i gestiunea tranzaciilor 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 cnd tranzactia este finalizata. Blocarea implicita a datelor decurge
automat pentru toate instructiunile SQL, astfel nct 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 BD 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 chiar 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;
59.Definirea indecilor n SQL2. Exemple.
Un index - un obiect al schemei BD ce faciliteaz accesarea rapid i univoc a datelor. n anumite condiii viteza
de execuie a cererilor. Dup ce indexul a fost creat, utilizatorului nu i se mai cere nici o operaie direct asupra
lui, el va fi folosit i ntreinut automat de ctre SGBD. Sintaxa pentru crearea unui index este urmtoarea:
CREATE INDEX nume_index ON nume_tabela (nume_coloana1 [, nume coloana2, ])
Exemplu: crearea unui index dup coloana numr factur n tabela facturi:
CREATE INDEX nr_factura_index ON facturi (nrfact)
Pt tabele mici, folosirea indecilor nu aduce mbuntiri de performan. Se folosesc atunci cnd coloanele dup
care se creeaz indecii conin o diversitate mare de informaii sau multe valori NULL. Indecii optimizeaz
interogrile atunci cnd acestea returneaz o cantitate mic de date. Indecii cresc viteza de regsire a datelor dar
ncetinesc actualizarea datelor datorit faptului c sistemul trebuie s actualizeze i fiierele index. n general este
foarte util s se creeze indeci dup cmpuri care se folosesc n operaii de join.
tergerea unui index se face cu comanda DROP INDEX:
DROP INDEX nume_index [ON nume_tabela]
60.Definirea constrngerilor i aseriunilor 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.