Sunteți pe pagina 1din 13

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:
1

-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; 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
2

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 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 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 q2=s\r

q1=r\s

22.

Operaia produsul cartezian. Proprieti. Exemple. Produsul cartezian a doua relatii este o multime de tupluri (si nu

r(A1An) si s(B1Bm), notat cu r s, ntotdeauna o relatie) definite pe multimea de atribute A1An B1Bm. Tuplurile reprezinta toate posibilele asociatii de tupluri
4

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. Compleme n tul activ

Compleme tul 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 F(r), ce consta din toate tuplurile tr ce satisfac F, adica F(r) = {t | t r & F(t)}.

Selectia s=((A = B) & (D>5))(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 Xvalorile tuturor tuplurilor din r: x(r) = {t [X] | t r}.

26.

Proiectia s = A,C(r). Operaia jonciune. Proprieti. Exemple.


5

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 (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 | 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 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 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. 30.

Diviziunea q= r s 31.Componentele limbajului SQL2 Componentele pe care le cuprinde limbajul SQL sunt urmatoarele: datelor a datelor-LLD), 1.Componenta de descriere a relationale (limbajul de descriere

2.Componenta de manipulare a datelor relationale(li,bajul de manipulare a datelro-LMD), Ambele fiind absolut necesare in gestiunea BD. Pe linga aceste componente principale standartul SQL2 mai prevede si alte compon ale limbaj: 3.Controlul tranzactiilor contine comenzi pt specific tranzactiilor 4.Controlul securitatii si refacerea datelor contine comenzi de administrare a bazei de date pt definirea utilizatorilor si a dreputului de acces la tabele 32.Tipuri de date numerice n SQL2 i Transact SQL. Exemple Tipul numeric include numere intregi e diferite dimensiuni(integer sau int reprez pe 4 octeti,smallint pe 2 octeti)numere reale reprez in virdula flotanta cu diferite precizii(float-4 octeti,real si double[precision]8octeti)si numere zecimale reprezentate cu precizia dorita(tip numerci sau decimal) Formatul de repcentare a numer zecimale cu precizia dorita este:numerci[(p,s)] sau decimal[(p,s)]) unde p(precizia) este nr otal de cifre afisate iar s (scara) nr de cifre dupa punctul zecimal. Exemplu: decimal(4,1) va fi 1116.2 si nu 16.2 sau 1116.21 33. Tipuri de date secvene de caractere n SQL2 i Transact SQL. Exemple. Tipul sir de caractere permite definirea sirurilor de caractere de lungime fixa(char(n) sau character (n)),precum si a sirurilor de caractere cu lungime variabila (varchar(n)) Ambele tipuri pot reprezenta siruri de maximum n caractere cu diferenta ca pt siruri de lungime mai mica decit n, la tipul char(n) se completeaza sirul cu spatii albe pina la n caractere in timp ce la tipul varchar(n) se memoreaza numai atitea caractere cit are sirul dat. Text-pt secvente de caractere ASCI cu lungime variabila mai mare de 8Ko(de exemplu documente Html) dar care nu depaseste valoarea (2147483647 caractere) 34. Tipuri de date temporale n SQL2 i Transact SQL. Exemple (Date speciale) Cursor-contine referinta la un cursor Hierarchyd-pt crearea tabelelor cu structura ierarhica Table- tip special de date utilizat pt stocarea unui rezultat pt tratarea ulterioara,pt pastrarea unei multimi de rind obtinute in calitate de rezultat al unei fti cu valoarea unui tabel Timestamp-identificator unic pt toata baza de date se util in calitate de mecanism de marcare a versiunii unui rind din tabel XML-tip de date ce pastreaza date XML 35. Definirea schemei unei relaii n SQL2. Exemple
7

Schema unei relaii este numele relaiei urmat de lista de atribute, pentru fiecare atribut precizndu-se domeniul asociat. Astfel, pentru o relaie R cu atributele A1, A2, ... , An i domeniile D1, D2, ... ,Dm, cu m n, schema relaiei R poate fi prezentat astfel: R(A1: D1, A2:D2, ... , An: Dm) sau R: A1:D1 ... An:Dm Fig. 3.4. Reprezentarea schemei relaiei R 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.. Constringeri de dependente Specifica legatura dintre atribute(sau domenii).Aici putem identifica asa numita dependenta de multime de atribute{Angajat Salariu Departament Manager}. In relatia personal,un manager este in acelasi timp un angajat,dar nu orice angajat este manager.Deci avem ca dom(manager) Ui dom (angajat) 38. Modificarea i suprimarea schemei relaionale n SQL2. 39.Cele mai simple interogari (numai cu proiectia Interogare (querry) este o operatie prin care se obtin datele dorite dintro baza de date selectate conform unui anumit criteriu(conditie) Proiectia operatie relationala unara prin care se selecteaza o submultime de atribute ale relatiei Numele si reducerile clientilor din Orhei Proiectia Cl_nume,reducere (Selectia (clienti) cl.oras=orhei 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));
8

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
9

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
10

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;
11

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

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.

13