You are on page 1of 13

1.Definiţiile BD şi SGBD. Funcţionalităţi. 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ă interacţiunea cu o BD, permiţând definirea, consultarea şi actualizarea datelor din BD. Toate
cererile de acces la BD sunt tratate şi controlate de către 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 „Nonredundanţa” în BD. Exemplu.
Asigurarea unei redundante minime şi controlate a datelor – este al doilea obiectiv major al organizării datelor
în BD. Aceasta înseamnă că se urmăreşte pe cât posibil ca fiecare dată să apară numai o singură dată în BD,
indiferent de numărul de utilizatori care o accesează. Duplicarea datelor se păstrează 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 „Independenţa” î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 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..
5.Arhitectura ANSI/X3/SPARC
Arhitectura internă a unui sistem de BD conform standardului ANSI/X3/SPARC conţine trei niveluri funcţionale:
• Nivelul intern – constituit din schema internă ce descrie structura de stocare fizică a datelor în BD, utilizând un
model al datelor fizice. La acest nivel se descriu detaliile complete ale stocării ş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 ascunzându-se detaliile legate de stocarea fizică şi detaliind
descrierea entităţilor, tipurilor de date, relaţiile dintre ele şi restricţiile asociate.
• Nivelul extern – sau nivelul vizual (utilizator), include o colecţie de scheme externe ce descriu BD prin prisma
diferiţilor utilizatori.
6.Nivelul fizic de abstracţie în BD. Modele de date. Exemple.
Abstractizare –procesul de identificare a caracteristicilor distinctive a unei clase sau obiect fără a fi nevoie de a
procesa toate informaţiile 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 abstracţie î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 abstracţie î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 aşa cum sunt ele în realitate, fără 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 abstracţie 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 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;
■ combinarea tehnicil de conceptualizare, normalizare şi validare a tranzacţ în metodologia de modelare a datelor;
■ 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) pt a reprezenta semantica
suplimentară a datelor;
■ construirea unui dicţionar 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 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, pt 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 ce utilizează în mod direct sistemul. Utilizatorul se poate referi la un raport produs de
către sistem sau poate solicita rezultatele unei tranzacţii ce trebuie acceptată de către 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 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 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ă – defineşteşi descrie toate informaţiile din baza de date distribuită în reţea;
2.schema de fragmentare – descrie legăturile dintre o colecţie globalăşi fragmentele sale. E de tipul unu la mai
mulţi şi are forma unei ierarhii;
3.schema de alocare – descrie modul de distribuire a segmentelor pe calculatoarele(nodurile) din reţea. 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 regăsi fizic pe mai multe calculatoare.
15.Elementele modelului relaţional: atribute, domenii, tupluri. Definiţii şi exemple.
Entitate - un obiect real sau conceptual, cu o existenta independenta, 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.
Atributul este o utilizare sub un nume oarecare a unui domeniu
într-o relaţie pot exista mai multe atribute derivate din acelaşi domeniu
în termenii abstractizărilor, un domeniu este o generalizare a unor atribute
Domeniul reprezintă ansamblul de valori admisibile pentru o componentă a unei relaţii
domeniul numelor de oraşe, domeniul numelor de persoane, domeniul numerelor întregi, etc
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
16.Elementele modelului relaţional: schemă relaţională, relaţie, BD, schemă a BD.
Modelul clasic de BD -modelul relaţional, unde datele sunt memorate în tabele. Relatie-multimea finita de
tupluri.Relaţiile între 2 tabele sunt unidirecţionale, astfel o tabelă devine principală, cealaltă devine subordonată.
Schema relatiei-capul BD - un ansamblu de date structurate, accesibile unei comunităţi de utilizatori.Schema BD
poate fi reprezentată printr-o diagramă de structură în care sunt puse în evidenţă şi legăturile dintre tabele.
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.
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.
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);
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 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. Ea este si asociativa, adics (r U s)
U q = rU(s U 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 U q) pentru orice relaii mutual
compatibile r, s, si q.

Intersectia q=r∩s
Diferenta 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.
Complementul activ

Compleme
ntul
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.

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.
Definirea datelor: categorii de date, tipul acestora, legături, reguli de validare, formatare.
Manipularea datelor: selectarea oricărui câmp de date, filtrarea datelor, sortarea, corelarea cu alte informaţii ş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
□ Mulţime de instrucţiuni care permit
Definirea, modificarea şi eliminarea schemelor de relaţii (tabele)
Crearea indecşilor
Definirea viziunilor
Specificarea constrângerilor de integritate

□ Exemplu: CREATE, ALTER, DROP, ...


DML: Limbaj de manipulare a datelor
Mulţime de instrucţiuni care permit
■ Consultarea, actualizarea şi ştergerea obiectelor create cu DDL, cum ar fi tabelele, indecşi etc.
■ Este bazat pe algebra şi calculul
relaţional
□ Exemple: SELECT, INSERT, UPDATE,
deleTe, ..
DCL: Limbaj de control al datelor
□ Mulţime de instrucţiuni 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 octeţi, numere între -2147483648 şi 2147483648;
SMALLINT, 2 octeţi, 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 număr exact de cifre zecimale, în timp ce atributele de tip DECIMAL nu.
Numerice aproximative:
REAL, numere cu precizie simplă, cu cel puţin 7 cifre semnificative
DOUBLE PRECISION sau FLOAT,
W reprezintă numere cu dublă precizie cu cel puţin 15 cifre semnificative
33. Tipuri de date secvenţe 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 biţi
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 relaţii î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. 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..
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. 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 interogări (numai cu proiecţia) în SQL2. Exemple.
SELECT <coloane> FROM <tabel> where conditie
SELECT stuName, stuAddress FROM student
40. Interogări cu criterii de selecţie în SQL2. Exemple.
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 ......
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.
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.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
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 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.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.
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.
� D esi 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 BD î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ă BD.
utilizatorii obisnuiti – cei care utilizează efectiv BD.
- utilizatori finali – utilizează tranzactii (spre exemplu programe ce realizează
activităŃi frecvente si predefinite
- utilizatori ocazionali – capabili să utilizeze limbaje interactive pentru a accesa
BD, 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.
�BD 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
55. Definirea permiselor asupra relaţiilor î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 BD: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 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 d ebaza,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 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 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 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 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.

You might also like