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 interfa a !ntre BD i utilizatori. "eprezint programul soft#are care asigur $ - definirea bazei de date, - !ncrcarea datelor !n baza de date, - accesul la date (interogare, actualizare), - !ntre inerea bazei de date, - securitatea datelor, - reorganizarea bazei de date. !. "#op#ietatea $%on#edundana& 'n baza de date. Exemplu. .%roprietatea &nonredundanta' in priectarea BD trebuie sa tindem sa e(itam existenta redundantelor,adica a existentei mai multor cai care arata spre aceeasi (aloare. ) rela ie este redundant dac aceeai informa ie poate fi ob inut prin intermediul altor rela ii. )biecti(ul este de a realiza un model de date minimal,deci rela iile redundante nu sunt necesare, acestea trebuie eliminate. (. "#op#ietatea $)ndependena& 'n baza de date. )ndependenta*e o problema a carei rezol(are constitue un scop in sine in conceptia si organizarea oricarei bd. *ndependenta datelor inseamna ca exista o delimitare neta intre reprezentarea fizica a datelor si imaginea pe care o are utilizatorul asupra acestor date. %roblema independentei datelor prezinta + 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. +. ,tilizato#ii BD i #olu#ile lo#. Exemple. -neinitializati(functionari) -instruiti(absol(entii colegiului)interactioeaza prin limba,e direct cu BD. -programatori -administratori-preocupati de mentinerea BD,drept de acces,securitate,operatii de actualizare. -..#/itectu#a .%S)01(0S".23 -onsta din . ni(ele$ -ni(elul fizic(intern)-ne ofera structuri cu care noi construim BD. -ni(elul logic-administratorul proiecteaza BD./legem optiunile pentru ni(elul fizic prin ni(elul logic. -ni(elul extern(utilizatorului)0tilizatorul interactioneaza cu BD. 1Nivelul intern constituit din sc2ema interna ce descrie structura de stocare fizica a datelor in baza de date 1 Nivelul conceptual sau sc2ema conceptuala descrie structura intregii baze de date pentru o comunitate de utilizatori. 3a ni(elul 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. 1 Nivelul extern sau ni(elul (izual (utilizator), include o colectie de sc2eme externe ce descriu baza de date prin prisma diferitilor utilizatori. 4iecare grup utilizator descrie baza de date prin prisma propriilor interese. 5xista tendinta la acest ni(el ca grupuri de utilizatori sa ascunda detalii de care nu sint interesate. 6i la acest ni(el se pot folosi modele de implementare sau modele de ni(el inalt. 4.%i5elul fizic de abst#acie 'n BD. 6odele de date. Exemple. 4isiere$ -sec(entiale-sortate in ordinea cresterii c2eii primare./(em acces la instructiunea n daca am trecut prin instructiunea n-7. -indexat sec(entiale-index este fisierul auxuliar anexat la cel de baza.*ndexsii se construiesc pentru fiecare c2eie secundara.4aciliteaza accesul. -B-arbori-daca sint numai pointeri si nu date atunci se numesc B8-arbori -tabele de dispersie(2as2-table)fisiere cu acces direct. 7.%i5elul logic de abst#acie 'n BD. 6odele de date. Exemple. 9odele de date$
7

-ierar2ic - :od artificial

-retea

programarea de(ine complicata

-relational(propus de -odd 7;<=)

8.%i5elul conceptual de abst#acie 'n BD. 6odele de date. Exemple. 3a acest ni(el se construieste sc2ema conceptuala a BD. 9odele de date$ -entitatea asocierii.5lemente$entitati si asocieri intre entitati./tribute(nume,prenume).093-limba, uni(ersal de modelare. -retele semantice-model ce se foloseste in baze de cunostinte. 9.%i5elul de abst#acie a 5iziunilo# utilizato#ilo# 'n BD. 6odele de date. Exemple. 6c2eme conceptuale particulare ale utilizatorului. 1:.Etapa de p#oiecta#e fizic a bazelo# de date "#oiecta#ea fizic a BD 0rmtoarele aspecte s-ar putea do(edi de importan pentru succesul proiectrii BD$ > lucrul interacti( cu utilizatorii ct de mul i trebuie? > urmrirea unei metodologii structurate de-a lungul procesului de modelare a datelor? > utilizarea unei abordri coordonat prin date? > !ncorporarea considera iilor structurale i de integritate !n modelul de date? > utilizarea diagramelor, pentru a reprezenta ct mai mult din modelul de date? > utilizarea unui limba, de proiectare a BD Data Base Design 3anguage (BDD3) pentru a reprezenta semantica suplimentar a datelor? > construirea unui dic ionar care s suplimenteze diagramele modelului de date? > disponibilitatea de a repeta anumite etape. 9etodologia de proiectare a BD const dintr-o serie de etape$ 11.Etapa de p#oiecta#e logic a bazelo# de date -onstruirea tabelelor si a legaturilor dintre acestea. 5tapele metodologiei de organizare logic a bazelor de date pentru modelul rela ional sunt urmtoarele$ 3onst#ui#ea i 5alida#ea modelului de date logice pent#u fieca#e 5ede#e a utilizato#ilo#. 3onst#ui#ea i 5alida#ea modelului de date logic global. Etapa E2 are ca obiecti( realizarea unui model de date logic bazat pe modelul de date conceptual al (ederii utilizatorului asupra !ntreprinderii urmat de (alidarea acestuia prin utilizarea te2nicii de normalizare i conform tranzac iilor cerute. )pera iile efectuate !n cadrul acestei etape (5+) sunt$ 5+.7. @ranspunerea modelului de date conceptual local !n modelul de date logic local. 5+.+. 5xtragerea rela iilor din modelul de date logic local. 5+... Aalidarea modelului prin utilizarea normalizrii. 5+.B. Aalidarea modelului conform tranzac iilor utilizatorului. 5+.C. Desenarea diagramei 5ntitate "ela ie (5"). 5+..D. Definirea constrngerilor de integritate. 5+.<. "e(izuirea modelului de date logic loca, !mpreun cu utilizatorii. 3a !nc2eierea acestei etape, (5+) trebuie s se ob in un model al (ederilor utilizatorului care s fie$ riguros, cuprinztor i fr ec2i(oc. Dac sunt respectate aceste cerin e, se (a dispune !n acest stadiu de un fundament solid pentru a putea trece la etapa urmtoare (5.) care const !n combinarea modelelor de date logice locale indi(iduale, pentru a realiza un model de date logic global al !ntreprinderii. 1!..naliza ce#inelo# info#maionale la etapa de p#oiecta#e conceptual a bazelo# de date
+

6e aduna informatia de la di(iziuni si subdi(iziuni . %rima etap !n proiectarea BD const !n realizarea unor modele de date conceptuale, pentru fiecare (edere 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 acti(itate. De obicei, (ederea unui utilizator constituie o zon func ional a !ntreprinderii, cum ar fi$ produc ia, marEeting, (nzrile, personalul, contabilitatea sau controlul apro(izionrii. 0n utilizator poate fi o persoan real sau un grup de persoane care utilizeaz !n mod direct sistemul. 0tilizatorul se poate referi la un raport produs de ctre sistem sau poate solicita rezultatele unei tranzac ii care trebuie acceptat de ctre acestea. Aederile utilizatorilor pot fi identificate utiliznd di(erse metode$ pot fi examinate diagramele de flux de date care au fost realizate mai !nainte, !n scopul de a identifica zonele func ionale i posibil func iile indi(iduale, ar putea fi c2estiona i utilizatorii se pot examina procedurile, rapoartele i formulrile iFsau obser(a !ntreprinderea !n func iune. 1(.6odela#ea 5iziunilo# utilizato#ului la etapa de p#oiecta#e conceptual a bazelo# de date -onsta din . etape$ -analiza cerintelor informationale -modelarea sc2emelor conceptuale particulare ((iziunile user) -integrarea sc2emei particulare si crearea sc2emei globale. 7B. 1-.Elementele modelului #elaional; at#ibute< domenii< tuplu#i. Definiii i exemple. ) entitate este un obiect real sau conceptual, cu o existenta independenta. ) entitate este un obiect cu existenta fizica, persoana particulara, automobil, companie, acti(itate, curs uni(ersitar, etc. )rice entitate are o serie de proprietati numite si at#ibute ce particularizeaza entitatea respecti(a. De exemplu, pentru o entitate anga,at 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 (alori de acelasi tip pe care le poate lua atributul. =uplu*sec(enta de elemente care merg unul dupa altul dar nu fixam ordinea. 14.Elementele modelului #elaional; sc/em #elaional< #elaie< baz de date< sc/em a bazei de date. Definiii i exemple. "elatie-multimea finita de tupluri. "ela iile !ntre dou tabele sunt unidirec ionale, astfel c o tabel de(ine principal, iar cealalt de(ine subordonat. 6c2ema relatiei-capul Baza de date - un ansamblu de date structurate, accesibile unei comunit i 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. %oiunea de c/eie. =ipu#i de c/ei.. Exemple. 3/eieun camp sau o asociatie de campuri ce are (alori distincte :)@ :033 pentru fiecare inregistrare din bd.

: garanteaz unicitatea i minimalitatea i oblig mulimea de atribute s fie cheie primar. Pentru aceasta se utilizeaza clauza: PRIMARY !Y.
3/eie p#ima# Cheie secundar: garanteaz unicitatea atributelor astfel declarate. !e utilizeaz clauza UNIQUE."i obligatoriu trebuie adiional specificat NOT NULL. "estrictia precizeaza faptul ca un camp este o c2eie straina fiind c2eie primara a altei tabele. Definire in tabela anga,at a c2eii straine pentru campul DGnr$ -"5/@5 @/B35 /nga,at (:095 A/"-H/"(7C), *:* -H/"(7), %"5: A/"-H/"(7+), 66: -H/"(;) -):6@"/*:@6 angG%I %"*9/"J I5J, D/@G:/ -H/"(K), /D" A/"-H/"(.=), 65L -H/"(7),
.

6/3/"*0 *:@5M5", 666: -H/"(;), DG:" *:@5M5" -):6@"/*:@6 angG4I "545"5:-56 departament(DGnr) 4)"5*M: I5J(DGnr) on delete cascadeNon delete set :033)? 18. 3onst#>nge#i de integ#itate st#uctu#ale. Exemple. :ot null$specifica faptul ca un cimp nu poate a(ea (alori necunoscute,null. 0niOue$determina comportamentul cimpurilor care nu fac parte din c2eia primara.-onstringerea 0niOue asigura ca (alorile duplicate nu (or fi introduse pentru cimpurile specificate.*nsa cimpurile specificate pot a(ea (alori nule,iar sistemul creeaza automat din ele un index pentru facilitatea cautarii in tabele. -2eia primara$cimpurile nu pot contine (alori duplicate. -2eia externa$un cimp sau o multime de cimpuri ce orespund c2eii primare a altui tabel.-2eia primara se utilizeaza pentru a defini legaturile dintre tabele. 5x$tabelul comenzi contine cod.furnizor ca c2eie primara.cod furnizor din tabela furniozor este c2eie externa pentru tabelul comenzi. 19. 3onst#>nge#i de integ#itate compo#tamentale. Exemple. #$ec%: limiteaza valorile care pot fi luate de un cimp (sau mai multe cimpuri)&n cazul actualizarii '( sistemul testeaza constringerea booleana care urmeaza dupa cuv rezervat c$ec%.(aca adevarat-este acceptata actualizarea.e): -H5-I(&an studiu' B5@P55: 7 and C) *eguli: orice restric ie are asociat un nume (explicit sau implicit)? Dac folosim -):6@"/*:@ atunci numele trebuie dat explicit? -2eile multiple pot fi definite doar la ni(elul tabelei? :)@ :033 doar la ni(elul coloanei. !:. ?pe#aii de actualiza#e a #elaiilo#. )%SE2= /daug un tuplu sau mai multe !ntr-o rela ie. 1 ,"D.=E 9odific (alorile unor atribute !ntro rela ie specificat !n tuplurile specificate de un criteriu. 1 DE@E=E Qterge tuplurile dintr-o rela ie care satisfac un criteriu specificat. !1. ?pe#aiile t#adiionale pe mulimi; uniunea< inte#secia i dife#ena. "#op#ieti. Exemple. )peratiile binare asupra relatiilor$ uniunea, intersectia si diferenta, necesita ca operanzii (relatiile) sa fie defintii pe sc2eme compatibile. Uniunea a doua relatii compatibile r(") si s(6), notata cu r s, e o relatie definita pe sc2ema " sau 6 si consta din tuplurile ce apartin relatiilor r sau s. )peratia uniunea are doua proprietati. 5a e comutati(a, adica r s R s r. 5a este si asociati(a, adics (r s) O R r(s O) pentru relaiile mutual compatibile r, s si O. Intersectia a doua relatii compatibile r(") si s(6), notata cu r S s,neste o relatie definita pe sc2ema " sau 6 si consta din tuplurile ce apartin concomitent relatiilor r si s. Diferenta a doua relatii compatibile r(") si s(6), notata cu r T s, este o relatie definita pe multimea de atribute " sau 6 si are !n calitate de tupluri, toate tuplurile din relatia r ce nu sunt !n s. Diferena nu se bucura de proprietatea comutati(a, adica r T s U s T r. @otodata, nu e nici asociati(a, adica (r T s) T O U r T (s T O), fiindca (r T s) T O R r T (s O) pentru orice relaii mutual compatibile r, s, si O.

*ntersectia ORrSs

Diferenta O+RsTr

O7RrTs

!!.

?pe#aia p#odusul ca#tezian. "#op#ieti. Exemple. Produsul cartezian a doua relatii r(/7V/n) si s(B7VBm), notat cu r s, este o multime de tupluri (si nu !ntotdeauna o relatie) definite pe multimea de atribute /7V/n B7VBm. @uplurile reprezinta toate posibilele asociatii de tupluri din r si s$ daca tr W r si ts W s, atunci concatenatia trts este un tuplu !n r s? pentru orice perec2e de tupluri tr si ts din r si s, respecti(, exista un tuplu t !n r s !nct tX/iYRtrX/iY, 7ZiZn si tXB,YRtsXB,], 7Z,Zm.

%rodusul cartezian nu este o operatie comutati(a. [n sc2imb se bucura de proprietatea asociati(a. !(. ?pe#aiile complement i complement acti5. "#op#ieti. Exemple. 4ie relatia r("). :otam prin tup(") multimea tuturor tuplurilor asupra atributelor sc2emei " si a domeniilor lor. Co ple entul relatiei r, notat cu \r, este \r R tup(") T r. 4ie r o relatie asupra sc2emei ", /W" si adom(/) R ]aNaWdom(/) ^ tWr^tX/Y Ra_. 9ultimea de (alori adom(/) se numeste do eniul activ al atributului /. :otam cu atup(") multimea tuturor tuplurilor asupra atributelor sc2emei " si a domeniilor lor acti(e. /tunci co ple entul activ, notat cu `r, este `r R atup(") T r. -ompleme n tul acti(

-ompleme tul !+. ?pe#aia selecia.

"#op#ieti. Exemple. 6electia este o operatie unara. %entru 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. 6electia relatiei r (") conform formulei 4, unde 4 e aplicabila relatiei r("), e o submultime a relatiei r("), notata cu a4(r), ce consta din toate tuplurile tWr ce satisfac 4, adica a4(r) R {t N t W r ^ 4(t)}.

6electia sRa((/ R B) ^ (D>C))(r) !-. ?pe#aia p#oiecia. "#op#ieti. Exemple. %roiectia e o operatie unara. Proiectia relatiei r asupra multimii de atribute L, notata cu bx(r), e o relatie cu sc2ema L ce consta din L(alorile tuturor tuplurilor din r$ bx(r) R {t [L] N t W r}.
C

%roiectia s R b/,-(r). !4. ?pe#aia Aonciune. "#op#ieti. Exemple. 4ie doua relatii r(") si s(6). !onctiunea relatiilor r si s (notatia uzuala r+)+s) este o relatie cu sc2ema "6. @uplul t apartine relatiei rezultat, daca exista tuplurile tr si ts !n r si s, respecti(, si satisfac tX"YRtr si tX6YRts, adica r +)+ s R ]t N tX"Y R tr^ tX6Y R ts^ trW r ^ ts W s_. Deci, fiecare tuplu din relatia rezultat este o concatenare a unui tuplu din r cu un tuplu din s ce au ("S6)(alori egale. /tributele cu acelasi nume !n sc2ema relatiei rezultat se iau o singura data. )peratia ,onctiunea nu este comutati(a. [n sc2imb, ea se bucura de proprietatea asociati(a.

conctiunea O R r +)+ s )nte#aciunea dint#e ope#aiile Aonciunea i p#oiecia. Exemple. 4ie relatiile r(/ B) si s(B -). :otam ORr+)+s si r7 R b/B(O). [n urma operatiilor, obser(am ca tuplurile relatiei r7 constituie o submultime proprie a relatiei r. !7.

!8.

?pe#aia B*Aonciune. "#op#ieti. Exemple. d"#onctiunea relatiilor r(") si s(6), notata cu r+)+/dBs , este o multime de tupluri concatenate de forma trts , unde tr W r, ts W s si tr(/) d ts(B), adica$ r+)+/dBs R ] trts N tr W r ^ ts W s ^ tr(/) d ts(B)_. )peratia d-,onctiunea poate fi exprimata prin operatiile produsul cartezian si selectia. "ezultatul unei d,onctiuni este acelasi cu rezultatul unei selectii operate asupra unui produs cartezian, adica r+)+/dBs R a/dB(r s).

!9.

?pe#aia semiAonciunea. "#op#ieti. Exemple. 6emi,onctiunea e o operatie binara. 5a consta !n construirea unei relatii din cele doua si e formata numai din tuplurile unei singure relatii ce participa la ,onctiune. 4ie doua relatii r(") si s(6). Se i#onctiunea relatiei r si s, notata cu r+) s, este o multime de tupluri determinata de expresia r+) s R b"(r+)+s).

6emi,onctiunea O Rr+)s ?pe#aia di5iza#ea. "#op#ieti. Exemple 4ie r(") si s(6) doua relaii si 6 ". :otam e R " T 6. Diviziunea relatiei r la relatia s, notata cu rs, este o relatie definita pe multimea de atribute e$ rs R ]tN pentru tsW s(6) tr W r(") ce satisface trXeYRt si trX6YRts_. )peratia di(iziunea poate fi conceputa drept operatie in(ersa produsului cartezian. 4ie ORrs. /tunci Os produce o relatie cu sc2ema " si relatia O (a contine numarul maximal de tupluri ce ar satisface expresia Os r. (:.

Di(iziunea OR rs (1.3omponentele limbaAului SC@! #omponentele pe care le cuprinde limba,ul !-. sunt urmatoarele: datelor a datelor-..()0 /.#omponenta de descriere a relationale (limba,ul de descriere

1.#omponenta de manipulare a datelor relationale(li0ba,ul de manipulare a datelro-.2()0 3mbele fiind absolut necesare in gestiunea '(. 4e linga aceste componente principale standartul !-.1 mai prevede si alte compon ale limba,: 5.#ontrolul tranzactiilor contine comenzi pt specific tranzactiilor 6.#ontrolul securitatii si refacerea datelor contine comenzi de administrare a bazei de date pt definirea utilizatorilor si a dreputului de acces la tabele (!.=ipu#i de date nume#ice 'n SC@! i =#ansact SC@. Exemple 7ipul numeric include numere intregi e diferite dimensiuni(integer sau int reprez pe 6 octeti0smallint pe 1 octeti)numere reale reprez in virdula flotanta cu diferite precizii(float-6 octeti0real si double8precision9:octeti)si numere zecimale reprezentate cu precizia dorita(tip numerci sau decimal) ;ormatul de repcentare a numer zecimale cu precizia dorita este:numerci8(p0s)9 sau decimal8(p0s)9) unde p(precizia) este nr otal de cifre afisate iar s (scara) nr de cifre dupa punctul zecimal.
<

<)emplu: decimal(60/) va fi ///=.1 si nu /=.1 sau ///=.1/ 33. =ipu#i de date sec5ene de ca#acte#e 'n SC@! i =#ansact SC@. Exemple. @ipul sir de caractere permite definirea sirurilor de caractere de lungime fixa(c2ar(n) sau c2aracter (n)),precum si a sirurilor de caractere cu lungime (ariabila ((arc2ar(n)) /mbele tipuri pot reprezenta siruri de maximum n caractere cu diferenta ca pt siruri de lungime mai mica decit n, la tipul c2ar(n) se completeaza sirul cu spatii albe pina la n caractere in timp ce la tipul (arc2ar(n) se memoreaza numai atitea caractere cit are sirul dat. @ext-pt sec(ente de caractere /6-* cu lungime (ariabila mai mare de KIo(de exemplu documente Html) dar care nu depaseste (aloarea (+7B<BK.DB< caractere) (+. =ipu#i de date tempo#ale 'n SC@! i =#ansact SC@. Exemple (Date speciale -ursor-contine referinta la un cursor Hierarc2fd-pt crearea tabelelor cu structura ierar2ica @able- 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 (aloarea unui tabel @imestamp-identificator unic pt toata baza de date se util in calitate de mecanism de marcare a (ersiunii unui rind din tabel L93-tip de date ce pastreaza date L93 (-. Defini#ea sc/emei unei #elaii 'n SC@!. Exemple Schema unei relaii este numele relaiei urmat de lista de atribute0 pentru fiecare atribut precizndu-se domeniul asociat. 3stfel0 pentru o relaie * cu atributele 3/0 310 ... 0 3n i domeniile (/0 (10 ... 0(m0 cu m > n0 sc$ema relaiei * poate fi prezentat astfel: *(3/: (/0 31:(10 ... 0 3n: (m) sau *: 3/:(/ ... 3n:(m ;ig. 5.6. *eprezentarea sc$emei relaiei * (4. 3onst#>nge#i de compo#tament 'n SC@!. Exemple 6pecifica caracteristicile independente ale unui atribut(sau domeniu).5le exprima semanticca elementelor domeniilor.De exemplu (alorile atributului :otaGmed trebuie sa fie mai mare decit zero,dar nu poate depasi zece.6au nici o persoana de (irsta +C ani nu poate a(ea o (ec2ime in munca de .< de ani.Deci conform acestei restrictii (alorile atributului trebuie sa se incadreze intre anumite limite. (7. 3onst#>nge#i st#uctu#ale 'n SC@!. Exemple.. 3onst#inge#i de dependente 6pecifica legatura dintre atribute(sau domenii)./ici putem identifica asa numita dependenta de multime de atribute]/nga,at 6alariu Departament 9anager_. *n relatia personal,un manager este in acelasi timp un anga,at,dar nu orice anga,at este manager.Deci a(em ca dom(manager) 0i dom (anga,at) (8. 6odifica#ea i sup#ima#ea sc/emei #elaionale 'n SC@!. (9.3ele mai simple inte#oga#i (numai cu p#oiectia *nterogare (Ouerrf) este o operatie prin care se obtin datele dorite dintro baza de date selectate conform unui anumit criteriu(conditie) %roiectia operatie relationala unara prin care se selecteaza o submultime de atribute ale relatiei :umele si reducerile clientilor din )r2ei %roiectia -lGnume,reducere (6electia (clienti) cl.orasR'or2ei' +:.)nte#og#i cu c#ite#ii de selecie 'n SC@!. Exemple. *nterogarile cu criterii de selectie in 6e3 sunt utilizate pFu selectarea datelor din tabele./re urmatoarea sintaxa de baza$ 6535-@X@*%Yglista de cimpurih4")9glista de tabelehX-):D*@*5Y 3ista de cimpuri-lista de cimpuri ce trebuie selectate. 3ista de tabele-lista de tabele de unde datele trebuie sa fie selectate. -):D*@*5-defineste un filtru pFu interogare folosind unele clause ca PH5"5. 5L$ 9odel,%ret 4")9 pcGuri PH5"5 -dRiB=xi )"D5" BJ %ret +1.)nte#og#i cu funcii de ag#ega#e 'n SC@!. Exemple.
K

4.de agreg.-prelucreaza multimi de inregistrari(linii) ale tabelului si returneaza un anumit rezultat.9a,oritatea acestor functii,de obicei,actioneaza asupra tuturor liniilor tabelului. 5le accepat parametrii$ /ll-face ca functia sa considere toate inregistrarile inclusi( cele duplicate. D*6@*:-@-face ca funct. 6a considere numai inregistrarile ce nu poseda o (aloare duplicata. /AM-returneaza media aritmetica a lui x. -)0:@-returneaza nr. de linii a interogarii. 9/LF9*:-returneaza (aloarea maxima sau minima a expr.9/L sau 9*: (XD*6@*:-@N/33)Y expr) 5L$ 6535-@ /AM(Aiteza) /s AitezaGmedie, 9/L(Aiteza) /s AitezaGmaxima, 9*:(Aiteza) /s AitezaGminina. +!.)nte#og#i cu ag#ega#ea tuplu#ilo# 'n SC@!. Exemple. +(. )nte#og#i de actualiza#e (inse#a#e i te#ge#e a datelo# 'n SC@!. Exemple 3imba,ul @"/:6/-@-6e3 propune . instructiuni ce corespund celor . operatii de actualizare a bazei de date$inserarea(instructiunea *:65"@)-pentru inserarea datelor,suprimarea(instructiunea D535@5)-pFu stergerea datelor si modificarea(instructiunea 0%D/@5)-pFu modificarea datelor.@oate optiunile se asupra tabelelor (fizice sau (irtuale) si actualizearea se petrece la ni(el de linie de tabel. 5L$-"5/@5 @/B35 clienti(-odGclient *:@,@ara -H/"(+)D54/03@(j9Di),:ume -H/"(+=))? *:65"@ clienti (-odGclient,@ara,:ume)A/3056(7+.B=,i9Di,i*on %etrac2ei)? *:65"@ clienti D54/03@ A/3056? *:65"@ clienti A/3056 (7+CD=,i4"i,icacE 3ondoni)? ++. )nte#og#i de actualiza#e (modifica#e a datelo# 'n SC@!. Exemple. 0%D/@5-operatia de modificare a continutului unuia sau a mai multor cimpuri ale tuplurilor. 6intaxa instructiunii$ 0%D/@5 gtabelh 65@gcoloanahRg(aloare nouah PH5"5 gconditieh *n caz cind nici o conditie nu e impusa, toate cimpurile tuturor inregistrarilor (or fi alterate de (alorile noi. 5L$ 0%D/@5 functionari 65@ 6ectorRi/dministratiei PH5"5 6ectorRi4inantei? 6535-@ k 4")9 functionari )"D5" BJ 6ector? +-. )nte#og#i cu uniuni 'n SC@!. Exemple. )peratia 0:*):-permite fuzionarea a doua selectii pentru a obtine o multime de tupluri egala cu uniunea acestor doua selectii. 5L. 6535-@ produse.9odel ,%ret 4")9 produse,pcGuri PH5"5 produse.9odelRpcGuri.9odel /:D %roducatorRiBi 0:*): 6535-@ produse.9odel,%ret 4")9 produse,laptopGuri PH5"5 produse.9odelRlaptopGuri.9odel /:D %roducatorRiBi 0:*): 6535-@ produse.9odel,%ret 4")9 produse,imprimante PH5"5 produse.9odelRimprimante.9odel /:D %roducatorRiBi +4.)nte#og#i cu inte#secii 'n SC@!. Exemple. *nterogarile cu operatiile uniune,intersectia si diferenta sunt foarte aproape de interogarile scrise in algebra relationala.6e formuleaza doua interogari care construiesc relatii cu sc2eme compatibile ,adica cu acelasi nr de atribute si de acelasi tip si aceste cereri sunt legate cu cu(intele c2eie 0:*):,*:@5"65-@ sau 5L-5%@. %entru a gasi (alori ce coincid in doua sau mai multe tabele ,se poate utiliza instructiunea *:@5"65-@. 5L$ 6535-@ 9odel 4")9 produse *:@5"65-@ 6535-@ 9odel 4")9 pcGuri Daca *:@5"65-@ este substituit cu 5L-5%@, se obtine un rezultat,intr-un fel,in(ers celui precedent,adica se (or afisa modelele de produse din primul tabel, care nu sunt in al doilea tabel. +7.)nte#og#i cu dife#ene 'n SC@!. Exemple *nterogarile cu operatiile uniune,intersectia si diferenta sunt foarte aproape de interogarile scrise in algebra relationala.6e formuleaza doua interogari care construiesc relatii cu sc2eme compatibile ,adica cu acelasi nr de atribute si de acelasi tip si aceste cereri sunt legate cu cu(intele c2eie 0:*):,*:@5"65-@ sau 5L-5%@. 5L. 6535-@ 9odel 4")9 produse 5L-5%@ 6535-@ 9odel 4")9 pcGuri
;

+8.)nte#og#i cu Aonciuni 'n SC@!. Exemple Deseori,pFu a obtine un rezultat complet, este necesara selectarea datelor din doua sau mai multe tabele. @abelele din baza de date sunt legate intre ele prin c2ei.5ste important,indeosebi,rolul c2eii primare care face ca coloanele ce o constituie sa posede o (aloare unica pFu fiece rind. De ex.e necesar sa se afiseze producatorul si (iteza laptopurilor./tributul (iteza se afla in tabelul laptopGuri.*nformatia referitoare la producatori se afla in tabelul produse,rezultatul este ordonat dupa cimpul %roducator. 5L. 6535-@ %roducator,Aiteza 4")9 produse,laptopGuri PH5"5 produse.9odelRlaptopGuri.9odel )"D5" BJ %roducator CU !onctiune interna $%& 6535-@ %roducator,Aiteza 4")9 produse *::5" c)*: laptopGuri ): produse.9odelRlaptopGuri.9odel )"D5" BJ %roducator. +9.)nte#og#i imb#icate cu .@@ 'n SC@!. Exemple. 6ubinterogare este o cerere care restituie un singur atribut. *nterogarea utilizat in comparalie se defineste in interiorul predicatului din clauza '(ere si se numeste interogare imbricat .ll * face ca functia sa considere toate inregistrarile inclusi(e cele duplicate -u(antul c2eie all specific faptul c linia este (alid dac (aloarea atributului se afl in relatie cu toate (alorile returnate de interogare. 6 se gseasc departamentele in care nu lucreaz nici un anga,at cu numele *onescu. select Dept from Departament #2ere Dept gh all (select Dept from /nga,ati #2ere :ume R i*onescui) /ceast interogare poate fi exprimat cu a,utorul operatorului diferenl$ select Dept from Departament except select Dept from /nga,ati #2ere :ume R i*onescui -:. )nte#og#i imb#icate cu .%D 'n SC@!. Exemple -u(antul c2eie any specific faptul c linia este (alid dac (aloarea atributului se afl in relatie cu cel putin o (aloare returnat de interogarea imbricat. 6e consider tabelele /:M/c/@* si D5%/"@/95:@ prezentate in figura C.7. $xe plu) 6 se gseasc anga,alii ce lucreaz intr-un departament din *asi. select :ume, %renume from /nga,ati #2ere Dept R anf (select Dept from Departament #2ere )ras R i*asii) Observalie. /ceast interogare poate fi rezol(at prin realizarea unei ,oncliuni intre cele dou tabele. -1. )nte#og#i imb#icate cu E1)S=S 'n SC@!. Exemple. /cest operator accept ca parametru o interogare imbricat si returneaz (aloarea adevrat doar dac interogarea nu produce un rezultat (id. 6 se gseasc persoanele care au acelasi nume si prenume, dar coduri diferite. select k from %ersoana % #2ere exists (select k from %ersoana %7 #2ere %7.:ume R %.:ume and %7.%renume R %.%renume and %7.-od gh %.-od ) -!. )nte#og#i imb#icate cu )% 'n SC@!. Exemple.
7=

6e3 pune la dispozitie doi operatori pentru a reprezenta apartenenta la o multime si negatia sa$ in si not in. /cesti operatori sunt ec2i(alenti cu = any, respecti( <> all. select Dept from /nga,ati #2ere 6alariu R anf sau in (select max(6alariu) from /nga,ati) -(. )nte#og#i imb#icate cu $E& 'n SC@!. Exemple. 6e consider tabelele /:M/c/@* si D5%/"@/95:@ prezentate in figura C.7. 6 se gseasc departamentele in care lucreaz anga,atii ce castig cel mai mare salariu. select Dept from /nga,ati #2ere 6alariu R anf (select max(6alariu) from /nga,ati) sau select Dept from /nga,ati #2ere 6alariu hR all (select 6alariu from /nga,ati) Observatii. Desi cele dou interogri sunt ec2i(alente, este indicat folosirea functiilor agregat deoarece sunt mai concludente si se execut mai eficient. *n cazul primei interogri nu exist nici o diferenla dac in loc de operatorul any se foloseste operatorul all (deoarece interogarea intern are ca rezultat o singur linie). -+. Defini#ea utilizato#ilo# i accesului la baza de date 'n SC@!. Exemple *n functie de modul de exploatare a bazei de date, utilizatorii se pot imprti in$ ad inistratorul bazei de date *DB+, persoana responsabil de proiectarea, controlul si administrarea bazei de date. progra atorii de aplicatii definesc si creeaz programele ce acceseaz baza de date. utilizatorii obisnuiti cei care utilizeaz efecti( baza de date. - utilizatori finali utilizeaz tranzactii (spre exemplu programe ce realizeaz acti(itli frec(ente si predefinite - utilizatori ocazionali capabili s utilizeze limba,e interacti(e pentru a accesa baza de date, formuland interogri (sau actualizri) de diferite tipuri. %entru a putea lucra cu baze de date trebuie sa a(em instalat un ser(er de baze de date.@rebuie sa realizam conexiunea s2 sa accesam in sfirsit datele. CC.Definirea permiselor asupra rela iilor !n 6e3+. 5xemple. 6MBD-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 aplicaliile existente si care, cu extensiile necesare, poate fi folosit in aplicatii (iitoare. 6MBD-urile ofer posibilitatea unui control centralizat al datelor. %arta,area bazelor de date permite reducerea redundantei si inconsistentei datelor. *ndependenta datelor, caracteristica fundamental a 6MBD-urilor, fa(orizeaz dez(oltarea de aplicatii mai flexibile si mai usor de modificat --. Defini#ea pe#miselo# asup#a #elaiilo# 'n SC@!. Exemple. *dee nam ce o a(ut in (edere, pp ?) -4. Defini#ea sinonimilo# 'n SC@!. Exemple. 6inonimele pot fi utilizate in interogari sau procedure stocate in loc de numele originale ale obiectelor din +,. sau B parti. De exemplu este ne(oie de executat o interogare catre un obiect de stocat pe alt ser(er./tunci pt a accesa acest obiect e necesar sa se scrie numele lui implicit :umeGser(er.:umeGbazaGdeGdate.:umeGsc2ema.:umeG)biect.0tilizind un sinonim creat in sc2ema curenta,obiectul poate fi accesat doar specificind sinonimul respecti(.
77

0n sinonim apartine unei sc2eme ca si alte obiecte ale sc2emei.:umele unui sinonim trebuie sa fie unic.0n sinonim poate fi creat pt urmat obiecte din baza de date$tabelele definite de utilizator(inclusi(e tabelele temporare atit locale cit s2 globale)(iziuni,procedure stocate,functii 0n sinonim nu poate fi obiect de baza pt alt sinonim 0n sinonim nu poate referi o functie de agregare definite de utilizator Doar numele unui sinonim executa legatura intre acesta si obiectul de baza.5xistenta si tipul de (erificarea 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.(inzari in baza de date calculatoare.Daca tabelul dbo.(inzari este sters si inlocuit cu o (iziune numita dbo.(inzari,atunci cumparaturi acum se refera la (iziunea dbo.(inzari. 0rmatorul exemplu creaza un sinonim notebooE pt obiectul d ebaza,laptopGri din (aza de calculatoare, apoi interog2eaza baza de date,utilizind sinonimul creat$ 0se calculatoare? Mo -reate 6fnonfm notebooE for calculatoare.dbo.laptopGuri? Mo 6elect kfrom notebooE? Mo -7. Bloca#ea #elaiilo# i gestiunea t#anzaciilo# 'n SC@! 6istemul bloc2eaza !n mod automat o linie !n numele unei tranzactii pentru a !mpiedica alte tranzactii sa bloc2eze aceeasi linie. /ceasta blocare !mpiedica manipularea simultana a unei 0nii de catre doua tranzactii distincte, pre(enindu-se astfel interferenta distructi(a a instructiunilor DD3 si D93 contradictorii. De exemplu, )racfe !mpiedica distrugerea unui tabel daca exista tranzactii nefinalizate !n care este implicat tabelul respecti(. /ceste blocari ale datelor sunt anulate automat atunci cnd tranzactia este finalizata. Blocarea implicita a datelor decurge automat pentru toate instructiunile 6e3, astfel !nct nu este necesar ca utilizatorii bazei de date sa bloc2eze liniile !n mod explicit, !n mod prestabilit, )racle bloc2eaza resursele la ni(elul cel mai scazut posibil. @ranzactiile sunt grupuri logice de instructiuni 6e3. 4iecare tranzactie se !nc2eie fie cu o finalizare, fie cu o derulare !napoi. 4inalizarile duc la sal(area permanenta a modificarilor bazei de date efectuate de catre tranzactie. Derularile !napoi anuleaza toate modificarile bazei de date efectuate de catre tranzactie. Mestionarea 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 de(eni aproape de neutilizat. -8. Defini#ea 5iziunilo# 'n SC@!. Exemple ) (iziune (A*5P) este un table (irtual al carui continut este definit de o interogare.) A. poate fi create din unul sau mai multe tabele ale bd. Aiziunile sunt folosite pentru a concentra,simplifica si personalize fiecare patrundere a utilizatorului in bd.5le pot fi folosite si ca mecanisme de securitate permitind utilizatorului sa acceseze date prin intermediului (iziunilor,fara a acorda utilizatorilor permisiuni sa acceseze tabelele de baza direzt.Aiziunile pot fi deasemenea folosite atunci cind sunt copiate date din 6e3 ser(er si pentru parta,area datelor.+ tipuri de creare a (iziunilor$ 4olosind instructiunea -reate (ie# a limba,ului transactGsOl 4olosind A5P Designer al componentei 6e ser(er management studio. %rincipii de creare a (iziunilor$ ) A. poate fi create numai in baza de data in uz.@otusi tabelele si (iziunile ce se refera la o (iziune noua pot exista in alte baze de date sau c,iar pe alte ser(ere %ot fi construite (iziuni asupra altor (iziuni sau procedure ce se refera la (iziuni./supra A. nu pot fi construiti indecsi sau definiti indecsi full-text. ) A., fie exemplu+ in bd calculatoare poate fi definite folosind limb 6e3 de exemplu$ 0se calculatoare? Mo *f ob,ectG*D(mexemplul+i,iAi) is not null drop (ie# exemplul+? Mo -reate Aie# exemplul+ /s select 9odel from produse? -9.Defini#ea indecilo# 'n SC@!. Exemple.

7+

0n index este un obiect al sc2emei bazei de date care faciliteaz accesarea rapid i uni(oc a datelor. [n anumite condi ii (iteza 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 (a fi folosit i !ntre inut automat de ctre 6MBD. 6intaxa pentru crearea unui index este urmtoarea$ -"5/@5 *:D5L numeGindex ): numeGtabela (numeGcoloana7 X, nume coloana+, VY) 5xemplu$ crearea unui index dup coloana numr factur !n tabela facturi$ -"5/@5 *:D5L nrGfacturaGindex ): facturi (nrfact) %entru tabele mici, folosirea indecilor nu aduce !mbunt iri de performan . 6e folosesc atunci cnd coloanele dup care se creeaz indecii con in o di(ersitate mare de informa ii sau multe (alori :033. *ndecii optimizeaz interogrile atunci cnd acestea returneaz o cantitate mic de date. *ndecii cresc (iteza 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 opera ii de ,oin. Qtergerea unui index se face cu comanda D")% *:D5L$ D")% *:D5L numeGindex X): numeGtabelaY 4:.Defini#ea const#>nge#ilo# i ase#iunilo# 'n SC@!. Exemple %t formularea unor restrictii mai generale decit cele corespunzind tabelelor si coloanelor ,6e3 da posibilitatea folosirii unei intructiuni specifice cu sintaxa$ -reate assertion gconstraintGnameh c2ecE(searc2Gcondition) 6pre deosebire de restrictiile de tabele si de coloane asertiunile nu sint associate cu nici o definitie de tabela particulara./sertiunile sunt folosite de obicei pt a formula restrictii asupra mai multor tabele."emarcam ca pt a satisface restrictia,conditia din clauza c2ecE trebuie sa furmizeze o (aloare fie true,fie unEno#n. Aederile si /seriunile se folosesc intransportul sc2emelor conceputale din modelul 55/ si din 093 in modelul relational. 5xemplu de adaugare de constringere$ /lter @able tasE -onstraint 4oreign Ief (ne#tasEind)references ne#tasE(ne#tasEid)? ) constringere se poate adauga si la crearea tabelului. -onstringeri de integritate$-2eile primare,(alori implicite pt cimpuri Daca integritatea bazei de date nu este asigurata,adica nu sint respectate constringerile de integritatea se spune ca bd este incosistenta.

7.

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