Sunteți pe pagina 1din 10

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 nonr edundanta in proectarea 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 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. Nivelul extern sau nivelul vizual (utilizator), include o colectie de scheme externe ce descriu baza de date

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(hashtable)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 1970) de Codd

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

13.Modelarea viziunilor utilizatorului la etapa de proiectare conceptual a bazelor de date Consta din 3 etape: analiza_cerintelor_informational e -modelarea_schemelor conceptuale_particulare (viziunile user) -integrarea schemei particulare si crearea schemei globale. 14. Integrarea viziunilor

utilizatorilor i proiectarea schemei conceptuale globale a BD.


Integrarea BD distribuite se face cu ajutorul celor trei tipuri de de scheme care sunt implementate: 1.schema global definete i descrie toate informaiile din baza de date distribuit in reea; 2.schema de fragmentare descrie legturile dintre o colecie globali fragmentele sale. E de tipul unu la mai muli i are forma unei ierarhii; 3.schema de alocare descrie modul de distribuire a segmentelor pe calculatoarele(nodurile) din reea. Fiecare segment va avea o alocare fizic pe unul sau mai multe calculatoare. Schema de alocare introduce o redundan minim i controlat: un anumit segment se poate regsi fizic pe mai multe calculatoare.

15.Elementele modelului relaional: atribute, domenii, tupluri. Definiii i exemple. 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 BD- ansamblu de date structurat. 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 clauz a UNIQUE.i obligatoriu trebuie adiional specificat NOT NULL. Restrictia precizeaza faptul ca un camp este o cheie straina fiind cheie primara a altei tabele. 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 corespund 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 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.

22. 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, A R si adom(A) = {a|a dom(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.

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

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

30. Operaia divizarea. Proprieti. Exemple Fie r(R) si s(S) doua relaii si S R. Notam Q = R \ S. Diviziunea relatiei r la relatia s, notata cu rs, este o relatie definita pe multimea de atribute Q: rs = {t| pentru ts s(S) tr r(R) ce satisface tr[Q]=t si tr[S]=ts}. Operatia diviziunea poate fi conceputa drept operatie inversa produsului cartezian. Fie q=rs. Atunci qs produce o relatie cu schema R si relatia q va contine numarul maximal de tupluri ce ar satisface expresia qs r. 31.Componentele limbajului SQL2 Componentele pe care le cuprinde limbajul SQL sunt urmatoarele: 1.Componenta de descriere a datelor relationale (limbajul de descriere a datelor-LLD), 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 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, ... , A n i domeniile D1, D 2, ... ,D m, cu m n, schema relaiei R poate fi prezentat astfel: 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. 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 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: SELECT 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 accepta 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. 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),Nu me CHAR(20)); INSERT clienti (Cod_client,Tara,Nume)VALUE S(12340,MD,Ion Petrache); 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.Mod el AND Producator=B UNION SELECT produse.Model,Pret FROM produse,imprimante WHERE produse.Model=imprimante.Mo del 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.Mod el ORDER BY Producator CU Jonctiune interna EX. SELECT Producator,Viteza FROM produse INNER JOIN laptop_uri ON produse.Model=laptop_uri.Mod el 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 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. 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 g seasc 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 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. 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 g seasc departamentele in care lucreaz angajatii ce castig cel mai mare salariu. select Dept from Angajati where Salariu = any (select max(Salariu) from Angajati) sau select Dept from Angajati where Salariu >= all (select Salariu from Angajati) Observatii. Desi cele dou 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 aplica tii 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 si 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 aplicatiile 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 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_d ate.Nume_schema.Nume_Obiect Numele unui sinonim trebuie sa fie unic. Urmatorul exemplu creaza un sinonim notebook pt obiectul de baza, laptop_ri din baza 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 numel e unei tranzactii pentru a mpiedica alte tranzactii sa blocheze aceeasi linie. 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 direct.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 interogril e 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. 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.

10

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