Sunteți pe pagina 1din 14

1.Definiiile BD i SGBD. Funcionaliti. 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, asigurnd interfaa ntre BD i utilizatori.
Reprezint programul software care asigur :
- definirea bazei de date,
- ncrcarea datelor n baza de date,
- accesul la date (interogare, actualizare),
- ntreinerea bazei de date,
- securitatea datelor,
- reorganizarea bazei de date.
2. Proprietatea Nonredundana 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 relaie este redundant dac aceeai informaie poate fi obinut prin intermediul altor relaii.
Obiectivul este de a realiza un model de date minimal,deci relaiile redundante nu sunt necesare,
acestea trebuie eliminate.
3. Proprietatea Independena 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 fizica-masura a imunitatii aplicatiilor fata de modificarile in structura fizica de
merorare a datelor.
Independenta logica- imunitate a modelului propriu al fiecarui utilizator fata de modificarile in
structura logica globala a bd.
4. Utilizatorii BD i rolurile lor. Exemple.
-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.
6.Nivelul fizic de abstracie n BD. Modele de date. Exemple.
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.


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.
Scheme conceptuale particulare ale utilizatorului.

10.Etapa de proiectare fizic a bazelor de date

Proiectarea fizic a BD
Urmtoarele aspecte s-ar putea dovedi de importan pentru succesul
proiectrii BD:
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 tehnicilor de conceptualizare, normalizare i validare a
tranzaciilor 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) pentru a reprezenta semantica suplimentar a
datelor;
construirea unui dicionar 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 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, pentru 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 care utilizeaz n
mod direct sistemul. Utilizatorul se poate referi la un raport produs de ctre
sistem sau poate solicita rezultatele unei tranzacii care trebuie acceptat de
ctre acestea. Vederile utilizatorilor pot fi identificate utiliznd diverse metode:
pot fi examinate diagramele de flux de date care au fost realizate mai nainte, n
scopul 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.
15.Elementele modelului relaional: atribute, domenii, tupluri. Definiii 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 informaiei despre un subiect; coloan sau cmp n
tabel.
Domeniul o multime finite de valori de acelasi tip pe care le poate lua atributul.
Tuplu-secventa de elemente care merg unul dupa altul dar nu fixam ordinea.

16.Elementele modelului relaional: schem relaional, relaie, baz de date, schem a bazei de date.
Definiii i exemple.
Relatie-multimea finita de tupluri.
Relaiile ntre dou tabele sunt unidirecionale, astfel c o tabel devine principal, iar cealalt devine
subordonat.
Schema relatiei-capul

Baza de date - un ansamblu de date structurate, accesibile unei comuniti de utilizatori.


Schema bazei de date 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 baza de date.
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 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. Constrngeri de integritate comportamentale. Exemple.


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 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 tradiionale 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 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=rs

Diferenta q1=r\s

22.

q2=s\r

Operaia produsul cartezian. Proprieti. Exemple.


Produsul cartezian a doua relatii r(A1An) si s(B1Bm), notat cu r s, este o multime de
tupluri (si nu ntotdeauna o relatie) definite pe multimea de atribute A1An B1Bm. 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 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

Complementul

24.

Operaia selecia. Proprieti. 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 (r), ce consta din toate tuplurile tr ce satisfac F, adica (r) = t | t r
& F(t).
F

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) 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& trr & ts s}.
Deci, fiecare tuplu din relatia rezultat este o concatenare a unui tuplu din r cu un tuplu din 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 , este o multime de tupluri
concatenate de forma trts , unde tr r, ts s si tr(A) ts(B), adica:
r|x|ABs = { trts | trr & 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 r s, este o relatie definita pe multimea de atribute Q: r s = {t| pentru tss(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 qs produce o relatie cu schema R si relatia q va contine numarul maximal de tupluri ce ar
satisface expresia qs r.

Diviziunea q= r s

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
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.
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.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 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.Interogri imbricate cu ALL n SQL2. Exemple.


Subinterogare este o cerere care restituie un singur atribut.
Interogarea utilizat in comparaie 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


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 gseasc angajaii ce lucreaz intr-un departament din Iasi.
select Nume, Prenume
from Angajati
where Dept = any (select Dept
from Departament
where Oras = Iasi)
Observaie. Aceast interogare poate fi rezolvat prin realizarea unei jonciuni 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 P1
where 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.


Se consider tabelele ANGAJATI si DEPARTAMENT prezentate in figura 5.1.
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 baza de date n SQL2. Exemple


In functie de modul de exploatare a bazei de date, utilizatorii se pot imprti 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
activiti frecvente si predefinite
- utilizatori ocazionali capabili s utilizeze limbaje interactive pentru a accesa
baza de date, formuland interogri (sau actualizri) 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 relaiilor 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 prti a lumii reale care
prezint interes pentru 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 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 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 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;
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 este un obiect al schemei bazei de date care 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)
Pentru 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.

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