Baze de Date Radu Florin 2010-2011

download Baze de Date Radu Florin 2010-2011

of 119

Transcript of Baze de Date Radu Florin 2010-2011

  • qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmrtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmrtyuiopasdfghjklzxcvbnmqwertyuiopasdfghjkl

    Departamentul de nvmnt laDistan i Formare Continu

    Facultatea de tiine Economice

    Coordonator de disciplin:Lect. univ. drd. Florin RADU

  • 2Suport de curs nvmnt la distanMarketing , Anul I, Semestrul II

    Prezentul curs este protejat potrivit legii dreptului de autor i orice folosire altadect n scopuri personale este interzis de lege sub sanciune penal

    ISBN 978-9731955-04-92010-2011

    Suport de curs nvmnt la distan Management, Anul I, Semestrul II

    Suport de curs nvmnt la distan Management, Anul I, Semestrul II

    Suport de curs nvmnt la distan

    UVTBAZE DE DATE

  • 3SEMNIFICAIA PICTOGRAMELOR

    F= INFORMAII DE REFERIN/CUVINTE CHEIE

    = TEST DE AUTOEVALUARE

    = BIBLIOGRAFIE

    = TIMPUL NECESAR PENTRU STUDIUL UNEI UNITIDE NVARE

    = INFORMAII SUPLIMENTARE PUTEI GSI PEPLARFORMA ID

  • 4CUPRINS - Studiu individual (S.I.)

    MODUL 1. INTRODUCERE IN BAZELE DE DATE / pag. 6

    Obiective / pag. 6UI.1. Concepte fundamentale privind bazele de date / pag. 7

    1.1. Conceptul de baz de date / pag. 71.2. Utilizatorii bazei de date / pag. 9

    UI.2. Modele de reprezentare a datelor / pag. 112.1. Modelul ierarhic / pag. 112.2. Modelul reea / pag. 132.3. Modelul relaional / pag. 142.4. Modelul obiectual / pag. 18

    UI.3. Sisteme de gestiune a bazelor de date / pag. 213.1. Funciile unui SGBD / pag. 213.2. Arhitectura funcional a unui SGBD / pag. 253.3. Arhitectura operaional a unei aplicaii baze de date / pag. 27

    Bibliografie / pag. 30

    MODUL 2. ALGEBRA RELAIONAL / pag. 36

    Obiective / pag. 36UI. 4. Caracterizarea general a limbajelor de programare / pag. 37

    UI.5. Operatorii asambliti: Reuniunea, Intersecia, Diferena, Produsulcartezian / pag. 39

    5.1. Reuniunea / pag. 395.2. Intersecia / pag. 405.3. Diferena / pag. 405.4. Produsul cartezian / pag. 41

    UI. 6. Operatorii relaionali: Selecia, Proiecia, Jonciunea, Diviziunea/ pag. 43

    6.1. Selecia / pag. 436.2. Proiecia / pag. 456.3. nlnuirea consultrilor / pag. 466.4. Jonciunea / pag. 486.5. Diviziunea / pag. 55

    Bibliografie / pag. 67

    MODUL 3. LIMBAJUL DE INTEROGARE RELAIONAL SQL / pag. 68

    Obiective / pag. 69UI.7. Prezentare general; Elemente de baz ale interogrilor SQL / pag. 70

    7.1. Prezentare general / pag.707.2. Elemente de baz ale interogrilor SQL / pag. 71

    UI.8. Coloane expresii; Opiunea ORDER BY / pag. 79

  • 58.1. Coloane expresii / pag. 798.2. Opiunea ORDER BY / pag. 80

    UI.9. Operatorii LIKE, BETWEEN, IN / pag. 829.1. Operatorul BETWEEN / pag. 829.2. Operatorul LIKE / pag. 839.3. Operatorul IN / pag. 84

    UI.10. Theta i echijonciunea / pag. 86

    UI.11. Sinonime locale i jonciunea unei tabele cu ea nsi / pag. 89

    UI.12. Subconsultri / pag. 91

    UI.13. Funcii agregat: COUNT, SUM, AVG, MIN i MAX / pag. 9513.1. Funcia COUNT / pag. 9513.2. Funcia SUM / pag. 9613.3. Funcia AVG / pag. 9813.4. Funciile MAX i MIN / pag. 99

    UI.14. Gruparea tuplurilor: clauza GROUP BY i clauza HAVING / pag. 10114.1. Clauza GROUP BY / pag. 10114.2. Clauza HAVING / pag. 103

    Bibliografie / pag. 118

  • 6MODUL IINTRODUCERE N BAZELE DE DATE

    1. Cuprins2. Obiectiv general3. Obiective operaionale4. Dezvoltarea temei5. Bibliografie selectiv

    Cuprins UI 1. Concepte fundamentale privind bazele de date: date

    abstracte, modele de baze de date, independena datelor, limbaje de definirei manipulare a datelor n bazele de date

    = 1 ore UI 2. Modele de reprezentare a datelor: modelul ierarhic,

    modelul reea, modelul relaional i modelul obiectual

    = 2 ore UI 3. Sisteme de gestiune a bazelor de date

    = 1 ore

    Obiectiv general: Dobndirea cunotinelor privind locul, roluli importana bazelor de date; dobndirea de cunotine privind modele dereprezentare a datelor

    Obiective operaionale: nsuirea cunotinelor privindevoluia metodelor de stoacre a informaiilor; cunoaterea categoriilor depersonal implicat n crearea, dezvoltarea i exploatarea bazelor de date.nsuirea de cunotine specifice fiecrui domeniu: relaie, legturi,domeniu, tuplu, atibut, cmp, cheie primar, obiect

  • 7UNITATEA DE NVARE 1CONCEPTE FUNDAMENTALE PRIVIND BAZELE DE DATE

    1.1. Conceptul de baz de date

    n cadrul oricrei ntreprinderi, datele constituie o resurs organizaional

    crucial i n consecin ele trebuiesc gestionate similar altor active importante.

    Fr date asupra funcionrii interne i asupra mediului extern ntreprinderile nu ar

    putea s se menin n competiie sau s reueasc n afaceri. Volumul acestor sate

    este n continu cretere. Organizarea i memorarea acestor date pe suporturi

    tehnice adresabile (HDD, FDD, CD) este mult facilitat de faptul, c n

    majoritatea cazurilor, se opereaz cu structuri de date.

    Determinarea structurilor de date i a legturilor ntre realizrile acestora

    nu este o activitate deloc uoar. Ea presupune utilizarea unor modele de date i

    respectiv a unor formalisme de modelare a datelor i are ca obiectiv definirea

    structurilor de date de gestionat n memoria secundar.

    Organizarea datelor pe memoria extern a parcurs n timp mai multe etape:

    fiiere, fiiere cu legturi i a culminat cu bazele de date actuale. Un fiier este un

    ansamblu de nregistrri fizice, omogene din punct de vedre al coninutului i al

    prelucrrii. Fiierele conin n cea mai mare parte elemente comune iar asocierile

    dintre date nu sunt prea bine exploatate dat fiind faptul c fiierele sunt utilizate

    izolat i independent unele de altele. Soluia fiierelor a fost specific anilor 60-

    70, dar mai sunt ntlnite i n prezent n cadrul unor aplicaii economice care

    folosesc limbaje clasice i ndeosebi limbajul COBOL.

    Dominat n prezent este o alt soluie, care const n organizarea datelor

    n baze de date. O baz de date este o colecie organizat de date folosit n

    scopul de a modela un anumit tip de organizaie sau proces organizaional.

    n gestiunea bazelor de date exist dou tipuri de baze de date:

    operaionale i analitice.

    Bazele de date operaionale constituie suportul a numeroase companii,

    instituii i organizaii din ntreaga lume. Aceast categorie de baze de date este

    utilizat n cazul prelucrrilor on-line a tranzaciilor (OLTP On Line Transaction

    Processing), adic n acele situaii n care este necesar colectarea, modificarea i

    ntreinerea zilnic a bazelor de date. Datele stocate ntr-o baz de date

    operaional sunt date de tip dinamic, ceea ce nseamn c se modific n

    permanen i reflect ntotdeauna informaii actualizate la zi.

    Fdefiniia bazei dedate

  • 8Contrar acestora, bazele de date analitice sunt folosite n special n

    prelucrrile analitice on-line (OLAP On Line Analitical Processing), cnd este

    necesar stocarea i urmrirea datelor istorice i dependente de timp. O baz de

    date analitice este de un real folos atunci cnd este necesar urmrirea tendinelor,

    vizualizarea datelor statistice aferente unei perioade mai lungi de timp sau

    efectuarea de previziuni tactice sau strategice de afaceri. Acest tip de baz de date

    stocheaz date statice, ceea ce nseamn c datele respective nu se modific

    niciodat (sau foarte rar). Informaiile culese dintr-o baz de date analitic reflect

    o fotografie a datelor la un anumit moment de timp.

    Bazele de date analitice utilizeaz frecvent bazele de date operaionale ca

    surs principal de date, deci poate exista o oarecare asociere ntre cele dou

    tipuri; cu toate acestea, bazele de date operaionale i analitice satisfac tipuri de

    necesiti foarte concrete privind prelucrarea datelor.

    1. Care sunt etapele prin care a trecut organizarea datelor?(vezi pag. 31-35)

    2. Ce este o baz de date analitic? (vezi pag. 31-35)

    3. Ce este o baz de date? (vezi pag. 31-35)

    4. Ce este o baz de date operaional? (vezi pag. 31-35)

    5. Ce reprezint OLTP? (vezi pag. 31-35)

  • 96. Ce reprezint OLAP? (vezi pag. 31-35)

    7. Exist legtur ntre bazele de date operaionale i cele analitice?(vezi pag. 31-35)

    1.2. Utilizatorii bazei de date

    O baz de date poate avea unul sau mai muli utilizatori. n funcie de rolul

    acestora distingem trei clase de utilizatori ai bazelor de date:

    Programatorii de aplicaii, sunt cei care scriu programele ce utilizeazbazele de date. Indiferent de limbajul de programare utilizat (COBOL, C,

    PASCAL), aceste programe asigur accesul la datele stocate n baza de date,

    adugarea de noi date, tergerea sau modificarea datelor existente. Aceste funcii

    se execut printr-o interogare adresat SGBD-ului.

    Utilizatorii finali, cuprind dou categorii de utilizatori: Utilizatorul expert, informatician, cunoscnd limbajele deprogramare i limbajele bazelor de date;

    Utilizatorul neinformatician, care nu este specialist n baze dedate.

    Utilizatorii finali interacioneaz cu baza de date de la o staie de lucru sau

    de la un terminal, utiliznd fie una din aplicaiile menionate la punctul precedent,

    fie o interfa care face parte integrant din SGBD.

    Majoritatea SGBD-urilor furnizeaz cel puin un procesor de limbaj de

    interogare interactiv, care permite utilizatorului s adreseze SGBD-ului comenzi

    de nivel nalt (ca SELECT, INSERT etc). Limbajul SQL este un limbaj tipic de

    interogare. Unele sisteme ofer utilizatorilor si alte tipuri de interfee n care nu

    pot adresa o comand explicit (ca SELECT), dar pot s aleag o comand dintr-

    un meniu sau s completeze rubrici n structuri predefinite. Aceste meniuri sau

    interfee grafice sunt mai uor de folosit de utilizatorii care nu au cunotine

    formale n tehnologia informaiei.

    F

    F

  • 10

    Administratorul BD, care asigur administrarea unitar a datelor dinbaza de date.

    Funciile asigurate de ctre administratorul bazei de date sunt: Definirea schemei conceptuale (n care sunt incluse i regulile care s

    asigure integritatea datelor).

    Definirea schemei interne. Definirea schemei externe (sau sprijinirea utilizatorului final n

    definirea acestora).

    Definirea procedurilor de salvare i restaurare. Definirea utilizatorilor bazei de date i a drepturilor de acces (la baza de

    date sau la anumite obiecte ale bazei de date).

    Supervizarea performanelor i asigurarea evoluiei bazei de date, etc.

    8. Cine sunt utilizatorii bazei de date? (vezi pag. 31-35)

    9. Care sunt funciile asigurate de administratorul bazei de date?(vezi pag. 31-35)

    F

  • 11

    UNITATEA DE NVARE 2MODELE DE REPREZENTARE A DATELOR N BAZELE DE DATE

    2.1. Modelul ierarhic

    Primul model utilizat n bazele de date este modelul ierarhic, care are la

    baz o structur arborescent, n care un nod printe poate avea mai multe noduri

    fiu, n timp de un nod fiu nu poate avea dect un singur nod printe. Schema

    ierarhiei are un singur nod rdcin, iar pentru reprezentarea relaiilor de tipul m:n

    ntr-o structur de baz de date ierarhic se admite duplicate pentru instanele

    nregistrrilor fiu.

    Pentru a realiza reprezentarea acestui model se folosesc diagramele de

    structur care sunt formate din dou elemente principale: dreptunghiuri pentru

    tipurile de nregistrri i linii pentru legturi. Aceste diagrame se aseamn cu

    o structur arborescent, locul liniilor fiind luat de tipurile de nregistrare.

    Pentru a pune n eviden legturile care pot exista ntre tipurile de

    nregistrri, se folosesc urmtoarele reprezentri grafice:

    relaia 1:1 se consider tipurile de nregistrri CONTRIBUABIL iROL. ntre aceste dou tipuri de nregistrri exist urmtoarea legtur: orice

    contribuabil aflat n evidena administraiei financiare are deschis un singur rol,

    iar fiecare rol deschis la administraiei nu aparine dect unui singur contribuabil.

    Reprezentarea grafic a acestei legturi este urmtoarea:

    relaia 1:n se consider tipul de nregistrri COMAND i CLIENT.ntre aceste tipuri de nregistrri exist urmtoarea legtur: un client emite mai

    multe comenzi, n timp ce o comand este emis de un singur client.

    Reprezentarea grafic a acestei legturi este urmtoarea:

    relaia m:n - se consider tipul de nregistrri COMAND iPRODUSE. ntre aceste tipuri de nregistrri exist urmtoarea legtur: o

    comand poate conine mai multe produse, iar un produs poate fi inclus n mai

    multe comenzi. Reprezentarea grafic a acestei legturi este urmtoarea:

    CONTRIBUABIL ROL

    CLIENT COMAND

    COMAND PRODUSE

    F

    F

    F

  • 12

    O baz de date ierarhic este constituit dintr-un grup de nregistrri

    interconectate prin intermediul unor legturi. O nregistrare reprezint o colecie

    de cmpuri, fiecare cmp coninnd o singur valoare, iar prin legtur se nelege

    o asociere ntre cele dou cmpuri. Fiecare tip de nregistrare din diagrama de

    structur are asociat n baza de date un anumit numr de realizri, ceea ce

    nseamn c pentru fiecare tip de nregistrare printe pot exista nici una, una sau

    mai multe nregistrri ale tipului de nregistrare fiu. De exemplu, un anumit client

    nu a emis nici o comand.

    Exemplu: Se consider o baz de date cu informaii despre studenii i

    specializrile unei faculti. O specializare are mai muli studeni, n schimb, un

    student nu poate urma dect o singur specializare. Reprezentarea modelul

    ierarhic al exemplului este prezentat mai jos:

    n acest exemplu, tipului de nregistrare printe SPECIALIZARE i

    corespund patru nregistrri: (CIG, Contabilitate), (FB, Finane), (MG,

    Management) i (MK, Marketing). Prima nregistrare, (CIG, Contabilitate) este

    printe pentru (120, Popa Dan, Vaslui), care este o realizare a tipului de entitate

    STUDENI, a doua nregistrare nu are nregistrri fiu, a treia nregistrare are doi

    fii (322, Radu Ioana, Arad) i (187, Vlad Andrei, Iai), n timp ce ultima

    nregistrare are un singur fiu (562, Sima Ileana, Titu).

    10. Enumerai modelele de descriere a datelor. (vezi pag. 31-35)

    F

  • 13

    11. Care sunt tipurile de relaii folosite n modelul relaional?(vezi pag. 31-35)

    12. Ce este o baz de dat ierarhic? (vezi pag. 31-35)

    2.2. Modelul reea

    Este un model care are la baz o structur de tip reea. Acest model este

    oarecum similar cu modelul ierarhic, n sensul c un nod printe poate avea mai

    muli fii, deosebirea constnd n faptul c un nod fiu poate avea mai muli prini.

    Ca i modelul ierarhic i modelul reea folosete diagramele de structur, care se

    aseamn cu un graf, nodurile fiind nlocuite de tipurile de nregistrare.

    Reprezentarea grafic a legturilor care pot exista ntre tipurile de nregistrri

    (legturi 1:1, 1:n, n:m) este similar modelului ierarhic.

    Exemplu: Se consider o baz de date cu informaii despre studeni,

    specializarea urmat de acetia i bursele pe care acetia le primesc. O specializare

    are mai muli studeni, n schimb, un student nu poate urma dect o singur

    specializare; bursa poate fi obinut de mai muli studeni, n schimb, un student

    poate obine o singur burs.

    Reprezentarea modelul reea al exemplului este realizat n cele ce

    urmeaz:

    F

  • 14

    n acest exemplu, tipului de nregistrare printe SPECIALIZARE i

    corespund patru nregistrri: (CIG, Contabilitate), (FA, Finane), (MG,

    Management) i (MK, Marketing), tipului de nregistrare BURSE trei realizri

    (Studiu, 1.200.000), (Social, 1.000.000) i (Merit, 1.900.000), iar tipului de

    nregistrare STUDENI patru realizri (120, Popa Dan, Vaslui), (322, Radu

    Ioana, Arad) , (187, Vlad Andrei, ) i (562, Sima Ileana, Titu). nregistrrile (CIG,

    Contabilitate) SPECIALIZARE i (Studiu, 1.200.000) BURSE sunt prini

    pentru (120, Popa Dan, Studiu) STUDENI. nregistrarea (FA, Finane) nu are

    nregistrri fiu. nregistrarea (Social, 1.000.000) BURSE i (MG,

    Management) SPECIALIZARE sunt prini pentru (322, Radu Ioana, Social).

    Realizarea (187, Vlad Andrei, ) are drept printe (MG, Management), iar

    nregistrarea (562, Sima Ileana, Merit) este copilul realizrilor (MK, Marketing) i

    (Merit, 1.900.000).

    13. Reprezentarea grafic a legturilor care pot exista ntre tipurile denregistrri (legturi 1:1, 1:n, n:m) n modelul reea este similarmodelului ierarhic? (vezi pag. 31-35)

    2.3. Modelul relaional

    Modelul relaional a fost introdus de E. F. Codd i reprezint astzi cel mai

    utilizat model pentru gestionarea bazelor de date.

    Modelul are la baz conceptul de relaie definit n teoria matematic a

    mulimilor ca fiind o submulime a produsului cartezian al mai multor mulimi: R

    a M1 x M2 x x Mn.Familia de mulimi pe care este definit relaia se numete domeniu, atunci

    cnd M1 = M2 = = Mn se spune c relaia este omogen. Numrul n se numete

    gradul relaiei, un element al relaiei t = (m1, m2, , mn) se numete tuplu, iar

    numrul de tupluri indic cardinalitatea relaiei.

    Schema unei relaii este format din numele relaiei, atributele acesteia i

    restriciile de integritate.

    Domeniul reprezint mulimea tuturor valorilor posibile care definesc o

    anumit proprietate a unui obiect. Atributul reprezint mulimea valorilor

    F

  • 15

    existente la un moment dat n coloana pe care acesta o desemneaz n cadrul unei

    relaii. ntr-o relaiei pot exista mai multe atribute care s ia valori n acelai

    domeniu.

    Relaia STUDENI se scrie n felul urmtor

    Relaiile se prezint sub forma unor tabele, supuse urmtoarelor restricii:

    - fiecare coloan din tabel conine acelai fel de valori;

    - n tabel ordinea liniilor nu este stabilit i n acelai timp nu se admit

    valori duplicate;

    - orice valoare este un numr sau un ir de caractere (nu are cum s fie un

    ansamblu);

    - orice coloan este identificat printr-un nume care reprezint atributul

    relaiei.

    O baz de date, privit din punct de vedere al modelului relaional, este

    vzut ca o colecie de tabele (relaii), n care fiecare coloan reprezint un atribut

    distinct, iar fiecare rnd, un tuplu distinct.

    Tuplurile unei relaii se pot identifica n mod unic prin intermediul

    valorilor unuia sau mai multor atribute, care joac rolul de cheie primar a relaiei

    respective.

    Orice relaie posed cel puin o cheie. Cnd aceast cheie este alctuit

    dintr-un singur atribut, poart numele de cheie simpl, iar atunci cnd este format

    din mai multe atribute ea se numete cheie compus.

    Cheia primar a unei tabele este un atribut sau un grup de atribute care

    permite identificarea fr ambiguitate a fiecrui tuplu din tabel. La alegerea unei

    astfel de chei, administratorul bazei de date trebuie s aib n vedere criterii prin

    care s asigure identificarea efectiv a tuplurilor (lungime, natur).

    F

  • 16

    Cheia primar trebuie s verifice urmtoarele trei restricii:

    - unicitatea: o cheie identific un singur tuplu al relaiei;

    - compoziia minimal: atunci cnd cheia primar este compus, nici un

    atribut cheie nu poate fi eliminat fr distrugerea unicitii tuplului n cadrul

    relaiei;

    - valorile non-nule: valorile atributului sau ale ansamblului de atribute care

    desemneaz cheia primar sunt ntotdeauna specificate, deci nenule; nici un

    atribut din compoziia cheii primare nu poate avea valori nule.

    Dac ntr-o relaie exist mai multe combinaii de atribute care confer

    unicitatea tuplului, acestea sunt denumite chei candidate. Atunci cnd o cheie

    candidat nu este cheie primar este considerat cheie alternativ (secundar).

    Legturile ntre tuplurile din relaii diferite se realizeaz prin atribute sau

    combinaii de atribute numite chei strine (externe).

    Reflectnd un aspect din realitate, relaiile se spun unor restricii, ce pot fi

    de dou feluri:

    restricii de integritate depind de semantica valorilor domeniilor iimpun relaiilor s se supun regulilor:

    - integritatea entitii valorile cheii primare trebuie s fie diferite de zero,

    pentru c altfel, cheia respectiv nu va mai fi identificator;

    - integritatea referirii valorile unei chei externe trebuie s refere tuplurile

    unei alte relaii.

    alte restricii se aplic asupra domeniilor i reflect anumite corelaiide ordin valoric (egalitate, inegalitate).

    Avantajele modelului relaional n comparaie cu celelalte tipuri de modele

    sunt:

    - independena sporit a programelor de aplicaie fa de modul de

    reprezentare intern a datelor i de metodele de acces la date;

    - definirea unei structuri conceptuale optime, minimaliznd redundana

    datelor i erorile la actualizare;

    - utilizarea unor limbaje procedurale bazate pe algebra relaional i a unor

    limbaje neprocedurale care contribuie la mbuntirea comunicrii dintre sistem

    i neinformaticieni.

    14. Din ce este format schema unei relaii? (vezi pag. 31-35)

  • 17

    15. Ce este domeniul? (vezi pag. 31-35)

    16. Ce este atributul? (vezi pag. 31-35)

    17. Care sunt restriciile la care sunt supuse relaiile? (vezi pag. 31-35)

    18. Ce este o cheie primar? (vezi pag. 31-35)

    19. Care sunt restriciile pentru cheie primar? (vezi pag. 31-35)

    20. Care sunt avantajele modelului relaional? (vezi pag. 31-35)

  • 18

    2.4. Modelul obiectual

    Dei n prezent cel mai utiliza model este modelul relaional, el nu

    permite: descrierea unor structuri de date complexe (documente electronice, date

    n format multimedia); partajarea i reutilizarea structurilor de date; declararea

    prelucrrilor aferente structurilor de date (datele sunt descrise separat de

    prelucrri). Rspunsul la astfel de cerine l constituie modelul orientat obiect.

    Modelarea orientat obiect se bazeaz pe urmtoarele concepte: obiect,

    abstractizare, ncapsulare, motenire, polimorfism.

    Obiectul este definit ca o entitate cu o identitate proprie, caracterizat

    printr-o stare i un comportament. Orice entitate a lumii reale este un obiect, i

    invers, orice obiect reprezint o entitate a realitii. Obiectele pot comunica ntre

    ele prin intermediul mesajelor.

    Identitatea unui obiect este proprietatea acestuia care l distinge de alte

    obiecte, ea fiind o adres logic invariabil. Dac n modelul relaional datele sunt

    identificate prin valorile cheilor primare definite de utilizato, n modelul orientat

    obiect, identificarea obiectelor este fcut automat de sistem la crearea acestora i

    este transparent utilizatorului. Dou obiecte O1 i O2 sunt identice (O1==O2) dac

    au acelai identificator; n schimb dou obiecte sun egale (O1=O2) dac au

    aceleai valori (O1==O2, implic O1=O2, reciproca nefiind valabil).

    Starea unui obiect este definit de valorile atributelor sale (realizrile). Un

    atribut se definete printr-un nume i poate lua valori elementare (numeric,

    alfanumeric) sau complexe (referine spre alte obiecte).

    Exemplu: Clientul CL1: Cod = 678

    Denumire = S.C. N&L

    Localitate = Trgovite

    Comanda CDA1: Numr = 17865

    Data = 10/12/2003

    CotaTVA = 19%

    Client = CL1.

    Comportamentul unui obiect este definit ca un set de operaii aplicate

    obiectului respectiv. Operaiile unui obiect reprezint modalitile de rspuns la

    mesajele primite din exterior de obiectul respectiv; ele sunt de regul proceduri

    sau funcii ce acioneaz asupra obiectului respectiv.

  • 19

    Abstractizarea este procesul prin care obiectele care au aceleai atribute i

    comportament similar sunt grupate n tipuri abstracte de obiecte numite i clase.

    Obiectele devin astfel instanieri (realizri) ale claselor; n timp ce obiectele

    descriu entiti ale realitii, clasele sunt reprezentri abstracte ale acestor entiti.

    Exemplu: Client, Comand, Student.

    ncapsularea const n capacitatea obiectelor de a conine la un loc att

    date ct i operaii, dar numai o parte a acestora este vizibil din exterior. Se poate

    spune c n felul aceste obiectele apar ca nite cutii negre, care ascund detaliile

    de implementare, ele oferind o interfa simpl de rezolvare a unei probleme.

    Motenirea este procesul prin care toate atributele i metodele vizibile ale

    unei clase (numit i clas se baz) sunt preluate n mod automat de o alt clas

    nrudit cu aceast (numit i subclas sau clas derivat). Clasele derivate pe

    lng acestea pot conine i atribute sau metode specifice. Motenirea se constituie

    ca o cale de ncurajare a partajrii i reutilizrii structurilor de date; prin

    intermediul ei se pot exprima relaii deosebit de importante ntre clase, cum ar fi:

    clasificarea, generalizarea sau specializarea.

    Exemplu: Se consider clasa PERSOANA definit prin atributele publice (vizibile

    din exterior):

    CNP, NumePrenume, DataNaterii, Sex

    i metoda public

    ReturneazVrsta(An).

    Din clasa PERSOANA pot fi derivate clasele ANGAJAT i STUDENT,

    de acelai fel cu ea, fiecare student angajat fiind descris prin CNP, nume i

    prenume, data naterii, sex i vrst, calculat n funcie de anul naterii.

    STUDENT poate conine ca atribute specifice NumrMatricol, AnStudiu iar ca

    metod proprie MediaGeneral, n timp ce clasa ANGAJAT poate fi descris prin

    atributele proprii Marca, DataAngajrii i metoda ReturneazVechime().

    PERSOAN

    ANGAJAT STUDENT

  • 20

    Polimorfismul reprezint posibilitate unui obiect, instan a unei clase, de a

    rspunde n mod diferit la primirea aceluiai mesaj. Poate fi asigurat n dou

    variante:

    - redefinirea metodelor motenite n clasele derivate;

    - crearea unor metode cu acelai nume sar cu parametri diferii

    (suprancrcarea unei metode).

    Polimorfismul mrete flexibilitatea modelului orientat obiect de a

    reprezenta ct mai sintetic realitatea.

    21. Care sunt conceptele pe care se bazeaz modelarea orientatobiect? (vezi pag. 31-35)

  • 21

    UNITATEA DE NVARE 3SISTEMUL DE GESTIUNE AL BAZELOR DE DATE

    O baz de date este un ansamblu organizat i structurat de date. Acest

    ansamblu trebuie s permit o reprezentare fidel a datelor cu minim de

    constrngeri. SGBD-ul este un instrument care permite o astfel de organizare i

    manipulare a datelor. Este un ansamblu de programe care permite descrierea,

    memorarea, manipularea i restaurarea datelor pentru a asigura securitatea

    acestora. Se numete aplicaie baz de date sau sistem de baz de date un

    ansamblu de programe construite n jurul unei baze de date i integrnd un SGBD

    pentru gestiunea informaiilor.

    3.1. Funciile unui SGBD

    n primul rnd trebuie menionate funciile eseniale, adic cele pentru care

    SGBD-ul este conceput. Ele sunt n numr de patru: descrierea datelor,

    introducerea, extragerea/interogarea i actualizarea.

    Descrierea datelor este acea parte care permite, nainte de introducerea

    datelor, de a defini numele acestor date, structura i coninutul lor. De exemplu

    baza de date a unei biblioteci comport un ansamblu de date referitoare la cri.

    nainte de a putea nregistra aceste date, trebuie definit cu precizie ansamblul

    informaiilor care se dorete a fi administrat cu privire la aceste cri: numrul

    (cota), titlul, numrul de exemplare, etc. Trebuie, de asemenea, estimat mrimea

    sau cel puin s fie definit mrimea maxim admis: 30 caractere pentru titlu, 5

    pentru numr, etc.

    Odat definite structurile, funcia de introducere permite tuturor

    utilizatorilor inserarea de date n baz. Aceast funcie de introducere trebuie, n

    plus, s asigure toate controalele posibile, al acestor date. n cazul bibliotecii,

    SGBD-ul trebuie s verifice dac numrul crii este n forma cerut, dac

    mrimea titlului nu depete numrul maxim de caractere prevzut, dac numrul

    de exemplare este un numr ntreg pozitiv, etc.

    Extragerea datelor desemneaz toate operaiile regulate sau punctuale, de

    cutare i de ieire pe ecran, pe suport de hrtie sau pe un alt suport, n ntregime

    sau doar n parte a informaiilor din baza de date. Se va putea, de exemplu, s se

    extrag toate crile care sunt scrise de un anumit autor sau toate crile aprute n

    colecia Baze de date.

    F

  • 22

    n fine, funcia de actualizare trebuie s asigure modificare sistematic a

    informaiilor pe msur ce acestea evolueaz. La fiecare cumprare a unei cri,

    trebuie modificat numrul de exemplare al titlului corespunztor din baza de date.

    Pentru c datele sunt partajate de ctre mai multe aplicaii, dezvoltarea

    funciilor descrise anterior, antreneaz i alte necesiti.

    Punerea n comun a unui ansamblu de date are ca i consecin necesitatea

    de a prevedea controlul accesului la date. Exist dou aspecte legate de protecia

    datelor. Primul privete confidenialitatea: informaia nu poate fi cunoscut de

    toi. Pentru fiecare tip de informaie trebuie stabilit lista persoanelor sau a

    grupurilor autorizate a le consulta. Al doilea aspect se refer la integritate:

    informaia nu poate fi modificat de toi. n acest caz, se convine la definirea unui

    cerc de persoane, n general foarte mic, abilitate s actualizeze informaia. SGBD-

    ul trebuie s permit personalizarea accesului la baza de date. Trebuie deci s se

    poat identifica utilizatorii i controla aceast identificare, ceea ce se cheam

    autentificarea accesului. Dup caz, protecia se poate face la mai multe nivele:

    accesul la ntreaga baz, la o parte din ea sau la un singur element al bazei.

    Protecia datelor este unul din aspectele unei funcii destul de importante

    care este securitatea bazei de date. La aceast funcie se adaug i funciile de

    rezisten n cazul unor pene, pe care trebuie sa le furnizeze SGBD-ul. Un

    program nu poate mpiedica n totalitate apariia incidentelor sau a problemelor

    majore. Totui, el trebuie s fie n msur s furnizeze mecanisme care s

    faciliteze recuperarea datelor n cazul n care apar probleme grave. Bazele de date

    sunt utilizate pentru a evita redundana informaiilor stocate. Uneori, pentru a

    minimiza consecinele legate de eventualele probleme ce pot aprea, este necesar

    efectuarea de salvri ale bazei de date. Aceste salvri nu sunt nimic altceva dect

    date redundante, dar, n acest caz duplicarea informaiilor este controlat de

    SGBD.

    SGBD-ul este dedicat manipulrii datelor. Pentru aceasta trebuie s asigure

    un acces optimal la date. Dincolo de organizarea fizic a datelor, SGBD-ul

    trebuie s faciliteze cutarea acestora.

    n aceeai ordine de idei, SGBD-ul trebuie s faciliteze accesul la date

    pentru toate programele, dar i pentru toate categoriile de utilizatori. Pentru

    aceasta, el trebuie s furnizeze instrumentele care s permit interfaarea

    comunicarea SGBD-ului cu alte programe. Trebuie oferit un acces direct la date

  • 23

    sub o form compatibil cu categoriile de utilizatori, de exemplu o interfa

    grafic pentru nespecialiti, un limbaj de acces puternic pentru informaticieni.

    O alt funcie important este controlul concurenei. ntr-adevr o baz de

    date trebuie s permit accesul simultan al mai multor utilizatori, fr nici un fel

    de incident. S lum exemplu unui sistem de rezervare a locurilor pentru cursele

    aeriene, fondat pe o baz de date. Aceasta trebuie s permit alocarea fiecrui loc

    unei singure persoane i numai uneia. O agenie conectat la baza de date

    respectiv, ntreab dac a mai rmas un loc liber pentru zborul 747. I se rspunde

    c a mai rmas unul singur. O alt agenie pune imediat aceeai ntrebare, nainte

    ca prima agenie s fi confirmat interesul su pentru locul rmas. Locul este nc

    disponibil. Prima agenie l-a rezervat. A doua, de asemenea, a ntrebat. Se produce

    n acest caz o problem zis de acces concurent pe care SGBD-ul trebuie s o

    previn.

    Realizarea unei baze de date are drept consecin punerea n comun i

    partajarea unui ansamblu de informaii. Aceast punere n comun trebuie s

    respecte dou principii de independen: respectiv independena fizic i

    independena logic.

    Independena fizic desemneaz principiul conform cruia un program

    care acceseaz datele din baz, trebuie s manipuleze aceste date ntr-un mod

    abstract, independent de organizarea lor fizic. Independena logic caracterizeaz

    accesul simultan al diferiilor utilizatori sau programe la aceeai baz de date.

    Fiecare program trebuie s poat lucra doar asupra prii de date care dorete.

    Pentru aceasta la realizarea programului se vor folosi doare datele utile acestuia.

    Trebuie s se poat utiliza pentru calificarea acestor date, termeni care sunt proprii

    programului, eventual diferii de cuvintele care vor fi utilizate n alte programe

    sau de ali utilizatori pentru a desemna aceleai date. Mecanisme precum sub-

    schema n cazul bazelor de date reea sau vederile n cazul bazelor de date

    relaionale permit ceast independen logic.

    22. Care sunt funciile unui SGBD? (vezi pag. 31-35)

    F

  • 24

    23. Ce presupune descrierea datelor? (vezi pag. 31-35)

    24. n ce const extragerea datelor? (vezi pag. 31-35)

    25. Ce implic protecia datelor? (vezi pag. 31-35)

    26. Care sunt cele dou principii de independen? (vezi pag. 31-35)

  • 25

    3.2. Arhitectura funcional a unui SGBD

    Un SGBD este format din diferite module fiecare avnd n sarcin una sau

    mai multe din funciile descrise anterior.

    Figura 1.1. Arhitectura funcional a unui SGBD

    Ansamblul acestor module constituie puntea de legtur ntre baza de date

    stocat pe unul sau mai multe discuri magnetice i ansamblul utilizatorilor. La cel

    mai nalt nivel SGBD ul conine un ansamblu de instrumente administrnd

    comunicarea direct cu utilizatorii. n funcie de SGBD, oferta n termeni de

    interfee este mai mult sau mai puin bogat. Editorii de SGBD-uri tind s propun

    diferite limbaje de acces la baza de date, adaptate gradului de competen sau

    nevoilor categoriilor de utilizatori desemnai s lucreze cu datele, interfee

    interactive dispun de instrumentele necesare punerii n legtur a programelor de

    acces la date scrise n limbaje de programare clasice cu baza de date.

    Instrumentele respective permit munca cu datele coninute n baza de date.

    SGBD-ul ofer, n plus, o interfa care permite de a aciona asupra structurii

    bazelor de date i/sau asupra aspectelor tehnice, cum ar fi optimizarea bazelor,

    configurarea lor. Aceast interfa este numit interfaa de administrare. Ea este

    rezervat, n general, informaticienilor dau utilizatorilor foarte avizai. Este

    instrumentul de munc privilegiat al administratorului bazei de date.

    SGBD SGBD Interfaa utilizator Interfaa de administrare

    SGF SGBDGestiunea fiierelor Mecanisme specifice

    SGBDGestiunea acceselor

    SGBDGestiunea tranzaciilor

    SGBDGestiunea discurilor

    Discuri

    F

  • 26

    Indiferent care ar fi interfaa de comunicare aleas pentru a accede la baza

    de date, trebuie s existe un drept de acces la aceasta din urm. Drepturile sunt

    atribuite de administrator i se concretizeaz ntr-o identificare (nume utilizator) i

    o autentificare (parol). Modulul de gestiune a acceselor are n sarcin aceste

    controale. El asigur n acelai timp i controlul integritii.

    Altfel spus, el protejeaz datele verificnd dat toate actualizrile respect

    un ansamblu de reguli numite constrngeri de integritate. Se mpiedic

    modificrile care violeaz aceste constrngeri i avertizeaz utilizatorul de

    problemele ntlnite. Tipurile de constrngeri admise de un SGBD vor fi descrie

    mai trziu. n fine modulul de gestiune a acceselor asigur optimizarea acestora.

    Astfel, n majoritatea SGBD-urilor, accesul la date este formulat n limbaje

    evoluate precum SQL (Structured Query Language).

    Modulul de gestiune a tranzaciilor este indispensabil pentru a asigura, n

    acelai timp, buna execuie a acceselor simultane i pentru a realiza aciunile care

    vor permite, n caz de pan, recuperarea datelor n cea mai bun stare posibil.

    Rspunsul editorilor de SGBD-uri la aceste dou nevoi a fost cvasi unanim:

    punerea la punct a unui mecanism numit tranzacie care permite definirea

    ansamblului de executat totul sau nimic asupra bazei de date. Astfel, se asigur

    c utilizatorii pot lucra simultan fr conflicte: cererea disponibilitii unui loc n

    avion i rezervarea sa trebuie s fac pare din aceeai tranzacie. Prin acelai

    mijloc, n caz de pan, nu se reia dect tranzaciile corect executate, adic

    tranzaciile terminate i valide.

    Toate modulele descrie pn acum sunt parte component a SGBD.

    Totui, SGBD-ul nu este n relaie direct cu baza de date. Dup cum am vzut

    baza de date este constituit dintr-un ansamblu de fiiere, mbogite cu structuri

    zise de acces. Aceste fiiere sunt, n general, administrate de sistemul de gestiune

    al fiierelor (SGF) care face parte din sistemul de operare al calculatorului: Unix,

    Windows. Altfel spus, SGBD utilizeaz SGBD-ul xxx, dar poate, n anumite

    cazuri, pune la dispoziie mecanisme suplimentare de organizare i acces la datele

    stocate n aceste fiiere.

    Ultimul strat reprezentat n figur nu este intern SGBD. El reprezint

    sistemul de gestiune al intrrilor-ieirilor al sistemului de operare. El permite

    convertirea comenzilor scrise n straturile superiore n ordinea citire, scriere,

    deplasare i poziionare a capetelor pe discuri. Realizeaz, de asemenea, operaiile

    necesare pentru cutarea i actualizarea datelor. De fapt, baze de date este stocat

  • 27

    pe disc. Totui, toate informaiile asupra datelor sunt efectuate n memoria

    central. Gestiunea discurilor asigur deci toate transferurile ntre memoria

    central i spaiul de stocare de pe disc.

    27. Descriei grafic arhitectura funcional a unui SGBD(vezi pag. 31-35)

    3.3. Arhitectura operaional a unei aplicaii baze de date

    La nceput, SGBD-urile erau concepute pentru sisteme centralizate.

    Utilizatorii conectai la aceste sisteme partajau aceleai date implantate pe acelai

    disc i ncrcate n acelai spaiu de memorie central.

    Apariia micro-informaticii n anii 1980 a dus la realizarea de SGBD la

    nivel micro. Totui, utilizatorii i-au exprimat rapid dorina de a putea interaciona

    cu baza de date centralizat prin intermediul microcalculatorului. Acestea nu avea

    ns puterea i securitatea marilor sisteme.

    F

  • 28

    La nceputul anilor 1990 apare conceptul de arhitectur client/server. Se

    consider c o aplicaie informatic comport n general trei tipuri de tratamente:

    gestiunea datelor (cutare, actualizare), logica aplicativ care nseamn calcule,

    reflecii i n cele din urm prezentarea rezultatelor. Se vorbete de client/server

    de ndat ce aceste tratamente sunt repartizate ntre cel puin dou calculatoare.

    Este evident faptul c gestiunea datelor este mai bine asigurat de marile sisteme.

    n schimb, prezentarea rezultatelor este mai mulumitoarea via un microcalculator.

    Cea mai clasic arhitectur client/server poate fi descris dup cum

    urmeaz:

    - client este microcalculatorul care emite cererile de acces la baza de date

    situat pe un server;

    - cererea este executat pe server care remite clientului liniile rezultat;

    - acest rezultat este afiat pe postul client, de exemplu prin intermediului

    unui tabel.

    Figura 1.2. Arhitectura client server

    Acest tip de funcionare este eficace n msura n care fiecare dintre cei doi

    efectueaz sarcina pentru care este cel mai adaptat: prezentarea rezultatelor este

    efectuat de ctre client, gestiunea datelor (coerena, integritatea) este asigurat de

    server.

    Logica aplicativ poate fi executat fie de client, fie de server. Totui, n

    primul caz, inconvenientul este c ansamblul de date uneori voluminos tranziteaz

    reeaua. Dac numrul utilizatorilor este foarte mare, reeaua poate fi foarte

    ncrcat.

    Server

    Client 1 Client 2 Client n

    Cererea client ctre serverRspunsul serverului ctre client

  • 29

    n cazul n care logic aplicativ este efectuat de server, acesta poate fi

    foarte solicitat de un mare numr de utilizatori simultan. n ciuda acestor

    inconveniente, arhitecturi de acest tip sunt nc foarte utilizate n ntreprinderi. n

    aceste configuraii, conexiunea ntre programe este realizat de programe de

    comunicare numite middlewares.

    Pentru a rezolva inconvenientul citat mai sus, de acum nainte se

    realizeaz arhitecturi pe 3 niveluri. Cele 3 componente care sunt gestiunea datelor,

    logica aplicativ i prezentarea rezultatelor sunt repartizate ntre trei calculatoare:

    serverul de date, serverul de aplicaie i postul client:

    Figura 1.3. Arhitectura pe 3 niveluri

    28. Descriei grafic arhitectura client/server. (vezi pag. 31-35)

    Server

    Client 1 Client 2 Client n

    Server de aplicaie

  • 30

    29. Descriei grafic arhitectura pe 3 niveluri. (vezi pag. 31-35)

    BIBLIOGRAFIE SELECTIV

    I. Tratate i monografii.

    1. Michael Hernandez Proiectarea bazelor de date, Editura Teora,

    Bucureti, 2003

    2. Mariana Miloescu Baze de date n Visual FoxPro, Editura Teora,

    2003

    3. Marin Fotache, Proiectarea bazelor de date, Editura Polirom, Iai, 2005

    4. Grupul BDASEIG, Baze de date. Fundamente teoretice i practice,

    Editura Infomega, Bucureti, 2002

    5. Florin Radu, Baze de date, Editura Bibliotheca, Trgovite, 2007

  • 31

    Rezolvarea testelor de autoevaluare

    1. Care sunt etapele prin care a trecut organizarea datelor?

    a.fiiereb.fiiere cu legturic.bazele de date actuale

    2. Ce este o baz de date analitic?

    Bazele de date analitice sunt folosite n special n prelucrrile analiticeon-line (OLAP On Line Analitical Processing), cnd este necesarstocarea i urmrirea datelor istorice i dependente de timp

    3. Ce este o baz de date?

    O baz de date este o colecie organizat de date folosit n scopul de amodela un anumit tip de organizaie sau proces organizaional

    4. Ce este o baz de date operaional?

    Baza de date operaional este utilizat n cazul prelucrrilor on-line atranzaciilor (OLTP On Line Transaction Processing), adic n acelesituaii n care este necesar colectarea, modificarea i ntreinereazilnic a bazelor de date

    5. Ce reprezint OLTP?

    OLTP On Line Transaction Processing

    6. Ce reprezint OLAP?

    OLAP On Line Analitical Processing

    7. Exist legtur ntre bazele de date operaionale i cele analitice?

    Bazele de date analitice utilizeaz frecvent bazele de date operaionaleca surs principal de date, deci poate exista o oarecare asociere ntrecele dou tipuri; cu toate acestea, bazele de date operaionale ianalitice satisfac tipuri de necesiti foarte concrete privind prelucrareadatelor.

    8. Cine sunt utilizatorii bazei de date?

    a.Programatorii de aplicaiib.Utilizatorii finalic.Administratorul BD

  • 32

    9. Care sunt funciile asigurate de administratorul bazei de date?a. Definirea schemei conceptualeb.Definirea schemei interne.c.Definirea schemei externed.Definirea procedurilor de salvare i restaurare.

    10. Enumerai modelele de descriere a datelor

    a.modelul ierarhicb.modelul reeac.modelul relaionald.modelul obiectual;

    11. Care sunt tipurile de relaii folosite n modelul relaional?

    a.relaia 1:1b.relaia 1:nc.relaia m:n

    12. Ce este o baz de dat ierarhic?

    O baz de date ierarhic este constituit dintr-un grup de nregistrriinterconectate prin intermediul unor legturi

    13. Reprezentarea grafic a legturilor care pot exista ntre tipurile denregistrri (legturi 1:1, 1:n, n:m) n modelul reea este similarmodelului ierarhic?

    DA

    14. Din ce este format schema unei relaii?

    Schema unei relaii este format din numele relaiei, atributele acesteiai restriciile de integritate.

    15. Ce este domeniul?

    Domeniul reprezint mulimea tuturor valorilor posibile care definesc oanumit proprietate a unui obiect

    16. Ce este atributul?

    Atributul reprezint mulimea valorilor existente la un moment dat ncoloana pe care acesta o desemneaz n cadrul unei relaii

    17. Care sunt restriciile la care sunt supuse relaiile?

    a. fiecare coloan din tabel conine acelai fel de valori;b.n tabel ordinea liniilor nu este stabilit i n acelai timp nu se admit

    valori duplicate;c.orice valoare este un numr sau un ir de caractere;d.orice coloan este identificat printr-un nume care reprezint

    atributul relaiei.

  • 33

    18. Ce este o cheie primar?

    Cheia primar a unei tabele este un atribut sau un grup de atribute carepermite identificarea fr ambiguitate a fiecrui tuplu din tabel

    19. Care sunt restriciile pentru cheie primar?

    a.unicitateab.compoziia minimalc.valorile non-nule

    20. Care sunt avantajele modelului relaional?

    a.independena sporit a programelor de aplicaie fa de modul dereprezentare intern a datelor i de metodele de acces la date;

    b.definirea unei structuri conceptuale optime, minimaliznd redundanadatelor i erorile la actualizare;

    c.utilizarea unor limbaje procedurale bazate pe algebra relaional i aunor limbaje neprocedurale care contribuie la mbuntireacomunicrii dintre sistem i neinformaticieni.

    21. Care sunt conceptele pe care se bazeaz modelarea orientat obiect?

    Modelarea orientat obiect se bazeaz pe urmtoarele concepte: obiect,abstractizare, ncapsulare, motenire, polimorfism.

    22. Care sunt funciile unui SGBD?

    a.descrierea datelorb.introducerea datelorc.extragerea/interogarea datelord.actualizarea datelor

    23. Care sunt cele dou principii de independen?

    Independena fizic i independena logic

  • 34

    24. Descriei grafic arhitectura funcional a unui SGBD

    25. Ce presupune descrierea datelor?

    Descrierea datelor este acea parte care permite, nainte de introducereadatelor, de a defini numele acestor date, structura i coninutul lor. Deexemplu baza de date a unei biblioteci comport un ansamblu de datereferitoare la cri.

    26. n ce const extragerea datelor?

    Extragerea datelor desemneaz toate operaiile regulate sau punctuale,de cutare i de ieire pe ecran, pe suport de hrtie sau pe un alt suport,n ntregime sau doar n parte a informaiilor din baza de date.

    27. Ce implic protecia datelor?

    Exist dou aspecte legate de protecia datelor. Primul priveteconfidenialitatea: informaia nu poate fi cunoscut de toi. Pentrufiecare tip de informaie trebuie stabilit lista persoanelor sau agrupurilor autorizate a le consulta. Al doilea aspect se refer laintegritate: informaia nu poate fi modificat de toi. n acest caz, seconvine la definirea unui cerc de persoane, n general foarte mic,abilitate s actualizeze informaia.

  • 35

    28. Descriei grafic arhitectura client/server.

    29. Descriei grafic arhitectura pe 3 niveluri.

  • 36

    M.2. ALGEBRA RELAIONAL

    1. Cuprins2. Obiectiv general3. Obiective operaionale4. Dezvoltarea temei5. Bibliografie selectiv

    Cuprins

    UI. 4. Caracterizarea general a limbajelor de programare;

    = 1 or UI. 5. Operatorii asambliti: Reuniunea, Intersecia,

    Diferena, Produsul cartezian;

    = 1 or UI. 6. Operatorii relaionali: Selecia, Proiecia, Jonciunea,

    Diviziunea

    = 10 ore

    Obiectiv general: Dobndirea cunotinelor cu privire laoperatorii algebrei relaionale

    Obiective operaionale: Cunoaterea modului de aplicare aoperatorilor asambliti (reuniune, intersecie, produs cartezian, diferen) ia celor relaionali (selecie, proiecie, jonciune, diviziune)

  • 37

    UNITATEA DE NVARE 4CARACTERIZARE GENERAL A LIMBAJELOR DE INTEROGARE

    Bazele de date relaionale au ca principal obiectiv acoperirea nevoilor

    informaionale ale conducerii firmei la toate nivelurile ierarhice. Pn la

    consacrarea definitiv a SGBDR-urilor, extragerea informaiilor dorite din baza de

    date se realiza n principal prin aplicaii dezvoltate exclusiv prin intermediul

    limbajelor procedurale, n care se precizau att datele dorite, ct i metodele de

    cutare i de extragere a acestora. Generalizarea SGBDR-urilor este strns legat

    de elaborarea i implementarea unor limbaje performante pentru manipularea

    bazelor de date limbajele de interogare.

    Limbajele relaionale sunt limbaje neprocedurale, n sensul c utilizatorul

    definete doar datele ce trebuie extrase din baza de date, sarcina cutrii i

    extragerii fiind n sarcina exclusiv a SGBD-ului.

    Limbajele de manipulare a datelor, plecnd de la cele dou modaliti de

    definire a unei relaii (ca predicat aplicat asupra unor domenii i ca ansamblu de

    tupluri), sunt grupate n dou mari categorii:

    limbaje predicative bazate pe teoria predicatelor; limbaje asambliste bazate pe teoria ansamblurilor (a tuplurilor).La rndul lor limbajele predicative sunt mprite n:

    limbaje care au la baz calculul relaional asupra tuplurilor; limbaje n care calculul relaional se aplic doar asupra domeniilor.Pentru limbajele de manipulare a datelor bazate pe calculul predicatelor,

    elementul definitoriu l constituie noiunea de variabil, noiune ce poate fi

    asociat att tuplurilor, ct i domeniilor.

    O alt clasificare este cea care realizeaz o delimitare ntre limbajele non-

    grafice i cele grafice. Prima categorie permite realizarea unei consultri, prin

    dispunerea succesiv a operatorilor, atributelor i relaiilor, n timp ce a doua

    categorie permite redactarea consultrii n mod interactiv, prin afiarea pe ecran a

    unui sistem de meniuri i elemente de dialog din care opiunile pot fi selectate i

    modificate uor cu ajutorul mouse-ului

    Exist o serie de caracteristici comune tuturor limbajelor de interogare:

    rezultatul consultrii este o nou relaie ce poate servi, n continuare, caargument ntr-o nou consultare;

    F

  • 38

    operatoriile relaionali se aplic relaiilor considerate n totalitatea lor,adic tuturor tuplurilor care alctuiesc relaiile respective;

    logica operatorilor se bazeaz pe valorile atributelor, aceasta constituindsingurul mod de acces la baza de date. Accesul total independent de limbaj este

    asigurat prin compararea valorilor atributelor definite pe domenii compatibile.

    Pentru a se realiza o consultare ntr-un limbaj relaional, nainte de toate

    trebuie parcurs o faz de analiz, pentru determinarea rezultatului, a legturilor

    dintre tabele precum i a eventualelor restricii ce trebuie respectate.

    Algebra relaional cuprinde dou tipuri de operatori: asambliti

    (REUNIUNE, INTERSECIE, DIFEREN, PRODUS CARTEZIAN) i

    relaionali (SELECIE, PROIECIE, JONCIUNE, DIVIZIUNE).

    ntr-o alt clasificare se face diferena ntre operatorii fundamentali,

    ireductibili (reuniunea, diferena, produsul cartezian, selecia i proiecia) i

    operatorii derivai, a cror funcionalitate poate fi realizat prin combinarea

    operatorilor fundamentali (intersecia, jonciunea i diviziunea).

    Pe parcursul acestui capitol se vor folosi notaiile:

    t un tuplu al unei relaii (o linie a unei tabele) i t(A), un subtuplu al relaiei R, relativ la atributul A (valoarea atributului

    A n linia t).

    Ca i calculul relaional, algebra relaional, servete ca punct de referin

    n caracterizarea unui limbaj ca fiind complet sau incomplet, din punct de vedere

    relaional. Dac un limbaj permite exprimarea tuturor operatorilor amintii

    anterior i ofer cel puin facilitii algebrei relaionale, se poate spune despre

    respectivul limbaj c este un limbaj complet relaional.

    F

  • 39

    UNITATEA DE NVARE 5OPERATORII ASAMBLITI

    Trei dintre operatorii asambliti reuniune (), intersecie () idiferen () pot opera numai cu dou relaii unicompatibile.

    Ce nelegem prin relaii unicompatibile?

    Fie R1 (A1, A2, .., An) i R2 (B1, B2,.., Bm) dou relaii. Spunem

    despre R1 i R2 c sunt unicompatibile dac:

    1. n=m

    2. " i (1, 2, ., n), Ai i Bi sunt de acelai tip sintactic.Relaiile R1 i R2 din figura 3.1. sunt unicompatibile deoarece:

    1. ambele au acelai numr de atribute;

    2. atributele C1, C2, C3 din R1 (R1.C1, R1.C2, R1.C3) corespund

    sintactic atributelor C3, C4 i C5 (R2.C3, R2.C4, R2.C5).

    R1 R2C1 C2 C3 C3 C4 C5100 AAA 500 500 BBB 300200 AAB 750 300 BAA 250400 ABA 250 400 BBA 300500 BBB 700 700 AAA 500900 ABB 400 900 ABB 400

    Figura 1. Relaiile R1 i R2 unicompatibile

    5.1. Reuniunea

    Reuniunea a dou relaii R1 i R2, notat R3 R1 R2, este definitastfel:

    R1 R2 = {tuplu t | t R1 sau t R2}.

    Coninutul tabelei-reuniune R3 este prezentat n figura 2. Primele cinci

    tupluri din aceast tabel sunt preluate din R1, iar ultimele trei din R2. R3 conine

    opt tupluri deoarece dou din tupluri sunt comune tabelelor R1 i R2. Algebra

    relaional elimin automat duplicatele (tuplurile identice), n felul acesta

    asigurndu-se restricia de unicitate dup fiecare operaie.

    Reuniunea este comutativ. Singura problem neclar ar fi legat de

    numele atributelor n relaia rezultat, ns se poate institui regula conform creia

    numele atributelor relaiei-reuniune s fie numele atributelor primei relaii

    participante la operaie.

    F

  • 40

    R3C1 C2 C3

    100 AAA 500200 AAB 750400 ABA 250500 BBB 700900 ABB 400300 BAA 250400 BBA 300700 AAA 500

    Figura 2. Reuniunea relaiilor R1 i R2

    5.2. Intersecia

    Intersecia a dou relaii R1 i R2, notat R4 R1 R2, este definitastfel:

    R1 R2 = {tuplu t | t R1 i t R2}.

    Coninutul tabelei-intersecie este prezentat n figura 3.3. Deoarece doar

    dou tupluri sunt absolut identice i n R1 i n R2, tabela rezultat va fi alctuit

    doar din dou linii.

    Ca i reuniunea, intersecia este comutativ, iar numele atributelor relaiei

    intersecie sunt extrase din prima relaia participant la operaie.

    R4C1 C2 C3

    500 BBB 700900 ABB 400

    Figura 3. Intersecia relaiilor R1 i R2

    5.3. Diferena

    Diferena a dou relaii R1 i R2, notat R5 R1 R2, este definitastfel:

    R1 R2 = {tuplu t | t R1 i t R2}.

    Coninutul tabelei-diferen (figura 3.4.) conine doar tuplurile din R1,

    care nu se regsesc n R2. Aadar, din rezultat sunt eliminate ultimele dou tupluri

    din R1, deoarece valorile acestora se regsesc i n R2 (primul i ultimul tuplu din

    R2).

    Spre deosebire de reuniune i intersecie, diferena nu este comutativ.

    Atributele relaiei-diferen sunt cele ale primei relaii, iar tuplurile care sunt

    extrase din relaia-desczut nu se regsesc n relaia scztor. Pe lng asta, nu

    F

    F

  • 41

    exist restricii privind cardinalitatea (numrul tuplurilor) celor dou relaii n

    sensul c nu este obligatoriu ca relaia desczut s conin mai multe tupluri dect

    cea scztor.

    R5C1 C2 C3

    100 AAA 500200 AAB 750400 ABA 250

    Figura 4. Diferena relaiilor R1 i R2

    5.4. Produsul cartezian

    Produsul cartezian dintre dou relaii R1 i R2, notat R6 R1 R2, esteansamblul tuturor tuplurilor obinute prin concatenarea fiecrei liniile din tabela

    R1 cu toate linie din tabela R2. Este definit astfel:

    R1 R2 = {(t1, t2) | t1 R1 i t2 R2}

    Spre deosebire de celelalte trei operaiuni precedente, produsul cartezian

    nu face apel la noiunea de relaii unicompatibile, iar relaia rezultat cumuleaz

    atributele celor dou relaii argument.

    n figura 3.5. este prezentat rezultatul produsului cartezian al tabelelor R1

    i R2.

    R6C1 C2 R1.C3 R2.C3 C4 C5100100100100100

    AAAAAAAAAAAAAAA

    500500500500500

    500300400700300

    BBBBAABBAAAAABB

    300250300500400

    200200200200200

    AABAABAABAABAAB

    750750750750750

    500300400700900

    BBBBAABBAAAAABB

    300250300500400

    400400400400400

    ABAABAABAABAABA

    250250250250250

    500300400700900

    BBBBAABBAAAAABB

    300250300500400

    500500500500

    BBBBBBBBBBBB

    700700700700

    500300400700

    BBBBAABBAAAA

    300250300500

    F

  • 42

    500 BBB 700 900 ABB 400900900900900900

    ABBABBABBABBABB

    4040404040

    500300400700900

    BBBBAABBAAAAABB

    300250300400500

    Figura 5. Produsul cartezian al relaiilor R1 i R2

    Tabela-rezultat R6 are o structur nou cu ase atribute (trei preluate din

    R1 i trei din R2). Deoarece exist un atribut cu nume comun C3, pentru a deosebi

    cele dou apariii, acestea sunt prefixate, n antetul tabelei, cu numele relaiei din

    care provine atributul respectiv (R1.C3 i R2. C3).

    Prima linie din R6 este obinut prin unirea primului tuplu din R1 cu

    primul tuplu din R2, a doua din primul tuplu din R1 cu al doilea din R2 .a.m.d.

    Cum R1 are 5 tupluri i R2 tot 5, tabela-rezultat a produsului cartezian va avea 5 *

    5 = 25 tupluri.

    Nu prea exist situaii care s reclame folosirea direct i exclusiv a

    produsului cartezian. Cel mai important merit al acestuia n algebra relaional

    este c permite alipirea a dou relaii, fundamentnd astfel operatorul cheie care

    este jonciunea.

  • 43

    UNITATEA DE NVARE 6OPERATORII RELAIONALI

    Dac cei patru operatori prezentai n paragraful anterior sunt generali, cei

    din paragraful de fa sunt specifici algebrei relaionale.

    Sunt grupai n dou categorii:

    - operatori unari de restricie, care permit decupajul unei relaii, pe

    orizontal SELECIA i pe vertical PROIECIA;

    - operatori binari de extensie: JONCIUNEA i DIVIZIUNEA.

    6.1. Selecia

    Selecia triaz dintr-o tabel numai tuplurile care satisfac condiia

    specificat printr-un predicat.

    Se noteaz

    R1 SELECIE {R; expresie_logic}

    unde:

    - R este relaia R (A1, A2, ..., An) asupra creia se aplic selecia (Ai sunt

    atributele sale);

    - R1 este noua tabel obinut n urma seleciei, care va avea aceeai

    schem relaional cu R R1(A1, A2, ..., An)

    - expresie_logic este compus din operanzi care sunt nume de atribute

    sau constante, operatori de comparaie aritmetic (>, , 500)

    RC1 C2 C3900 ABB 500

    Figura 6. Rezultat selecie exemplul 1

    F

  • 44

    Exemplul 2. Care sunt liniile din R1 pentru care valorile atributului C3

    sunt cuprinse n intervalul 250 350?R SELECIE (R1; C3 > = 250 AND C3 < = 350)

    RC1 C2 C3400 ABA 250

    Figura 7. Rezultat selecie exemplul 2

    Exemplul 3. Care sunt liniile din R1 pentru care valorile atributelor C1 i

    C3 sunt mai mari dect 300?R SELECIE (R1; C1 > 300 AND C3 > 300)

    R

    C1 C2 C3900 ABB 40

    Figura 8. Rezultat selecie exemplul 3

    Exemplul 4. Care sunt studenii Facultii de tiine Economice?

    Pentru a afla aceast informaie, mai nti trebuie s identificm n baza de

    date tabela (sau dup caz, tabelele) din care se extrage rezultatul. n cazul de fa,

    tabela este STUDENT. Apoi se stabilesc atributele din tabel, asupra crora se va

    aplica predicatul (atributul) de selecie. Se obine n felul acesta soluia:R SELECIE (STUDENT, facultate = Stiinte Economice)

    Exemplul 5. Care sunt studenii Facultii de tiine Economice,

    specializarea Contabilitate i Informatic de Gestiune?

    Tabela n care va opera operatorul de selecie este STUDENT. Predicatul

    de selecie va opera asupra atributelor facultate i sectia:R SELECIE (STUDENT, facultate = Stiinte

    Economice AND sectia = CIG)

    Exemplul 6. Ce burse au fost ridicate n luna februarie 2004?

    Tabela n care va opera de aceast dat operatorul de selecie este tabela

    BURSA, iar atributul folosit este data_incasarii.R SELECIE (BURSA; data_incasarii >= 01/02/2004

    AND data_incasarii

  • 45

    6.2. Proiecia

    Proiecia permite selectarea ntr-o tabel rezultat doar a atributelor dorite

    spre deosebire de selecie care extrage anumite linii dintr-o tabel pe baza

    condiiei ndeplinite de valorile unora dintre atribute. Cu alte cuvinte se realizeaz

    decuparea pe vertical a unei relaii.

    Proiecia relaiei R(A1, A2, , An) este o relaie care se obine dup

    parcurgerea a doi pai:

    1. eliminarea din Ai a acelor atribute care nu sunt specificate

    2. suprimarea tuplurilor identice (dublurile).

    Se noteaz:

    R1 PROIECIE {R; Aj, Ak, , Ax}

    Spre deosebire de R, schema relaiei R1 este alctuir numai din atributele

    indicate: R1 (Aj, Ak, ..., Ax). Dac dup extragerea coloanelor nu exist tupluri

    identice, R1 va avea acelai numr de linii ca i relaia R. n caz contrar, numrul

    lor va fi mai mic, n funcie de numrul dublurilor.

    Exemplul 7. Care sunt valorile atributului C3 n relaia R1?R PROIECIE (R1; C3)

    RC3500750250700400

    Figura 9. Rezultat proiecie exemplul 7

    Exemplul 8. Care sunt valorile combinaiei atributelor C1 i C3 n relaia

    R1?R PROIECIE (R1; C1, C3)

    RC1 C3100200400500900

    500750250700400

    Figura 10. Rezultat proiecie exemplul 8

    Exemplul 9. Care sunt facultile preluate n baza de date?

    Tabela n care sunt preluate facultile este STUDENT. Singura coloan

    care ne intereseaz n acest caz este facultate.

    F

  • 46

    n prima faz se realizeaz decuparea pe vertical a coloanei respective,

    obinndu-se o relaie temporar notat R, iar apoi prin eliminarea duplicatelor se

    obine rezultatul final n relaia R.R PROIECIE (STUDENT; facultate)R

    facultate

    Stiinte Economice

    Stiinte Economice

    Colegiul Economic

    Stiinte Juridice

    Stiinte Economice

    Stiinte Economice

    Stiinte Economice

    Stiinte Economice RStiinte Juridice facultate

    Stiinte Economice Colegiul Economic

    Colegiul Economic Stiinte Economice

    Stiinte Economice Stiinte Juridice

    Stiinte Economice

    Colegiul Economic

    Stiinte Economice

    Stiinte Juridice

    Stiinte Economice

    Colegiul Economic

    Stiinte Economice

    Stiinte Economice

    Figura 11. Rezultat proiecie exemplul 9

    Exemplul 10. S se identifice cota, titlul, domeniul i numrul de

    exemplare al fiecrei cri.

    Tabela care intereseaz este CARTE, iar din aceasta se decupeaz patru

    coloane: cota_carte, titlu, domeniu i nr_exemplare.R PROIECIE (CARTE; cota_carte, titlu, domeniu,

    nr_exemplare)

    6.3. nlnuirea consultrilor

    Dup cum am vzut, rezultatul unei consultri este o tabel (relaie) nou.

    Avnd n vedere acesta, pentru obinerea tabelei rezultat, se pot nlnui dou sau

    mai multe operaii redactndu-se astfel interogri complexe.

    Exemplul 11. Care este facultatea pe care o urmeaz studentul Barbu

    Elena?

    F

  • 47

    n cazul de fa soluia este relativ simpl. Folosind selecia se decupeaz

    din tabela STUDENT doar studentul care se numete Barbu Elena. Se obine n

    felul acesta o relaie nou, notat R1. Avnd n vedere c ne intereseaz doar

    facultatea, se aplic asupra lui R1 o proiecie i se obine relaia R2, n care se afl

    rspunsul la problema luat n discuie.R1 SELECIE (STUDENT, nume = Barbu Elena)R2 PROIECIE (R1, facultate)

    Exemplul 12. Care sunt regiunile din care fac parte judeele Dmbovia i

    Vlcea?

    Tabela interogat este LOCALITATE. Pentru a rspunde la aceast

    variant pot fi formulate dou soluii.

    Soluia 1.R1 SELECIE (LOCALITATE; judet = Dambovita OR judet = Valcea)R2 PROIECIE (R1; judet, regiune)Soluia 2.R1 SELECIE (LOCALITATE; judet = Dambovita)R2 PROIECIE (R1; judet, regiune)R3 SELECIE (LOCALITATE; judet = Valcea)R4 PROIECIE (R3, judet, regiune)R5 R2 R4

    Exemplul 13. Care sunt studenii Facultii de tiine Economice de la

    specializrile CIG i FA?

    Tabela interogat este STUDENT, iar rspunsul la aceast ntrebare poate

    fi formulat n 2 moduri.

    Soluia 1.R1 SELECIE (STUDENT; facultate = Stiinte

    Economice AND sectia = CIG OR sectia =FA)

    R2 PROIECIE (R1; nume, sectia)Soluia 2.R1 SELECIE (STUDENT; facultate = Stiinte

    Economice AND sectia = CIG)R2 PROIECIE (R1; nume, sectia)R3 SELECIE (STUDENT; facultate = Stiinte

    Economice AND sectia = FA)R4 PROIECIE (R2; nume, sectia)R5 R2 R4

    Exemplul 14. Care sunt crile care au aprut i la editurile Eficient i

    Macarie?

  • 48

    Tabela din care vor fi extrase datele este CARTE. Rezultatul se bazeaz pe

    intersecia relaiei care conine crile aprute la editura Eficient (R2) cu crile

    aprute la editura Macarie (R4).R1 SELECIE (CARTE; editura = Eficient)R2 PROIECIE (R2; titlu)R3 SELECIE (CARTE; editura = Macarie)R4 PROIECIE (R3; titlu)R5 R2 R4

    6.4. Jonciunea

    Dup cum am vzut, produsul cartezian permite fuzionarea a dou tabele

    ntr-una singur ce conine toate atributele i liniile obinute prin combinarea

    fiecrui tuplu dintr-o relaia cu fiecare tuplu din cealalt.

    Jonciunea spre deosebire de produsul cartezian care este o fuziune

    necondiionat a dou tabele, este o fuziune a dou relaii care au o proprietate

    comun. Fie dou relaii R1(A1, A2, , An) i R2(B1, B2, , Bp) i Ai i Bj

    dou atribute definite pe acelai domeniu i q ansamblul operatorilor decomparaie {=, , , , } ce pot fi aplicai celor dou atribute Ai i Bj.

    Jonciunea relaiei R1, prin Ai cu relaia R2, prin Bj notat

    R1 (Ai q Bj) R2este relaia ale crei tupluri sunt obinute prin concatenarea fiecrui tuplu al

    relaiei R1 cu tuplurile relaiei R2, pentru care este verificat condiia q instituitntre Ai i Bj. Se noteaz:

    R1 (Ai q Bj) R2 = {t | t R1 R2 i t(Ai) q t(Bj)}.Jonciunea este echivalent cu un produs cartezian urmat de o selecie.

    Aceast jonciune este cunoscut n literatura de specialitate sub denumirea de

    theta-jonciune. n lucrul cu bazele de date relaionale se utilizeaz cu precdere

    echi-jonciunea, ce reprezint un caz particular al theta-jonciunii, atunci cnd qeste operatorul de egalitate =. Se noteaz:

    R1 (Ai = Bj) R2 = {t | t R1 R2 i t(Ai) = t(Bj)}.Exemplul 15 Theta jonciune

    Pentru exemplificarea acestui operator se folosesc aceleai dou tabele R1

    i R2. Rezultatul jonciunii (theta - jonciunii) exprimat prin expresia

    R JONCIUNE (R1, R2, R1.C1 > R2.C5),este obinut n 2 pai, dup cum se observ n figura urmtoare:

    F

  • 49

    R1 R R1 R2C1 C2 C3 C1 C2 R1.C3 R2.C3 C4 C5100 AAA 500 100 AAA 500 500 BBB 300200 AAB 750 100 AAA 500 300 BAA 250400 ABA 250 100 AAA 500 400 BBA 300500 BBB 700 100 AAA 500 700 AAA 500900 ABB 400 100 AAA 500 300 ABB 400

    200 AAB 750 500 BBB 300R2 200 AAB 750 300 BAA 250

    C3 C4 C5 200 AAB 750 400 BBA 300500 BBB 300 200 AAB 750 700 AAA 500300 BAA 250 200 AAB 750 900 ABB 400400 BBA 300 400 ABA 250 500 BBB 300700 AAA 500 400 ABA 250 300 BAA 250900 ABB 400 400 ABA 250 400 BBA 300

    400 ABA 250 700 AAA 500400 ABA 250 900 ABB 400500 BBB 700 500 BBB 300500 BBB 700 300 BAA 250500 BBB 700 400 BBA 300500 BBB 700 700 AAA 500

    R = SELECIE (R; C1 > C5) 500 BBB 700 900 ABB 400C1 C2 R1.C3 R2.C3 C4 C5 900 ABB 400 500 BBB 300400 ABA 250 500 BBB 300 900 ABB 400 300 BAA 250400 ABA 250 300 BAA 250 900 ABB 400 400 BBA 300400 ABA 250 400 BBA 300 900 ABB 400 700 AAA 400500 BBB 700 500 BBB 300 900 ABB 400 900 ABB 500500 BBB 700 300 BAA 250500 BBB 700 400 BBA 300500 BBB 700 800 ABB 400900 ABB 400 500 BBB 300900 ABB 400 300 BAA 250900 ABB 400 400 BBA 300900 ABB 400 700 AAA 500900 ABB 400 900 ABB 400

    Figura 12. Mecanismul de theta-joncionare exemplul 15

    Exemplul 16 Echi jonciune

    Pentru a fi o echijonciune, operatorul de comparaie dintre cele dou

    atribute este, n mod obligatoriu, semnul de egalitate.R JONCIUNE (R1, R2; R1.C1 = R2.C5)

  • 50

    R1 R R1 R2C1 C2 C3 C1 C2 R1.C3 R2.C3 C4 C5100 AAA 500 100 AAA 500 500 BBB 300200 AAB 750 100 AAA 500 300 BAA 250400 ABA 250 100 AAA 500 400 BBA 300500 BBB 700 100 AAA 500 700 AAA 500900 ABB 400 100 AAA 500 300 ABB 400

    200 AAB 750 500 BBB 300R2 200 AAB 750 300 BAA 250C3 C4 C5 200 AAB 750 400 BBA 300500 BBB 300 200 AAB 750 700 AAA 500300 BAA 250 200 AAB 750 900 ABB 400400 BBA 300 400 ABA 250 500 BBB 300700 AAA 500 400 ABA 250 300 BAA 250900 ABB 400 400 ABA 250 400 BBA 300

    400 ABA 250 700 AAA 500400 ABA 250 900 ABB 400500 BBB 700 500 BBB 300500 BBB 700 300 BAA 250500 BBB 700 400 BBA 300500 BBB 700 700 AAA 500500 BBB 700 900 ABB 400900 ABB 400 500 BBB 300900 ABB 400 300 BAA 250900 ABB 400 400 BBA 300900 ABB 400 700 AAA 400900 ABB 400 900 ABB 500

    R = SELECIE (R; C1 = C5)C1 C2 R1.C3 R2.C3 C4 C5500 BBB 700 700 AAA 500

    Figura 13. Echi-jonciune exemplul 16

    Exemplul 17 Jonciune natural

    Jonciunea natural, pe lng faptul c presupune ca operatorul de

    comparaie s fie semnul de egalitate, implic i denumirea identic a atributelor

    de legtur ntre cele dou tabele.

    R JONCIUNE (R1, R2; R1.C3 = R2.C3) sau se poate folosii forma simplificat, datorit faptului c ambele atribute au acelai nume

    R JONCIUNE (R1, R2; C3)Avnd n vedere c cele dou atribute au acelai nume, se poate considera

    c tabela rezultat pstreaz numai unul dintre cele dou atribute.

  • 51

    R1 R R1 R2C1 C2 C3 C1 C2 R1.C3 R2.C3 C4 C5100 AAA 500 100 AAA 500 500 BBB 300200 AAB 750 100 AAA 500 300 BAA 250400 ABA 250 100 AAA 500 400 BBA 300500 BBB 700 100 AAA 500 700 AAA 500900 ABB 400 100 AAA 500 300 ABB 400

    200 AAB 750 500 BBB 300R2 200 AAB 750 300 BAA 250C3 C4 C5 200 AAB 750 400 BBA 300500 BBB 300 200 AAB 750 700 AAA 500300 BAA 250 200 AAB 750 900 ABB 400400 BBA 300 400 ABA 250 500 BBB 300700 AAA 500 400 ABA 250 300 BAA 250900 ABB 400 400 ABA 250 400 BBA 300

    400 ABA 250 700 AAA 500400 ABA 250 900 ABB 400500 BBB 700 500 BBB 300500 BBB 700 300 BAA 250500 BBB 700 400 BBA 300500 BBB 700 700 AAA 500500 BBB 700 900 ABB 400900 ABB 400 500 BBB 300900 ABB 400 300 BAA 250900 ABB 400 400 BBA 300900 ABB 400 700 AAA 400900 ABB 400 900 ABB 500

    R = SELECIE (R; R1.C3 = R2.C3)C1 C2 C2 C3 C4100 AAA 500 BBB 300500 BBB 700 AAA 500900 ABB 400 BBA 300

    Figura 14. Jonciune natural exemplul 17

    Deoarece selecia este un operator care se aplic doar unei singure tabele

    (operator unar), este necesar fuzionarea tabelelor din care se dorete extragerea

    datelor pentru obinerea unei relaii agregat, la care se aplic predicatul

    suplimentar de selecie. Fuzionarea tabelelor este posibil numai prin jonciune.

    Prin joncionarea tuturor relaiilor dintr-o baz de date se poate ajunge la o relaie

    universal

    Exemplul 18. S se afle pentru fiecare student bursier ce tip de burs

    primete i care este valoarea acesteia.

    Tabela STUDENT se joncioneaz cu tabela BURSA pe baza atributului

    comun (nr_matricol) iar la tabela intermediar rezultat, se aplic selecia.

  • 52

    R1 JONCIUNE (STUDENT, BURSA, Nr_matricol)R2 PROIECIE (R1; nume, tip_bursa,

    suma_incasata)

    Exemplul 19. S se afle numele, facultate i secia studenilor care stau n

    cminul Miclas.

    Soluia 1.R1 JONCIUNE (STUDENT, STUDCAMIN; Nr_matricol)R2 SELECIE (R1; nume_camin = MICLAS)R3 PROIECIE (R2; nume, facultate, sectia,

    nume_camin)Soluia 2.

    Mai nti se aplic relaia asupra tabelei STUDCAMIN iar tabela

    intermediar se joncioneaz cu STUDENT.R1 SELECIE (STUDCAMIN; nume_camin = Miclas)R2 JONCIUNE (STUDENT, R1; Nr_matricol)R3 PROIECIE (R2; nume, facultate, sectia,

    nume_camin)

    Care dintre cele dou variante este de preferat? A doua variant este mai

    bun dect prima, deoarece jonciunea opereaz asupra a dou tabele mai reduse

    ca dimensiuni (tabela STUDCAMIN deja a fost filtrat prin aplicarea predicatului

    de selecie). Diferena este cu att mai vizibil atunci cnd tabela STUDENT

    conine toi studenii dintr-o universitate. Iar dac ne gndim c naintea oricrei

    jonciuni se realizeaz produsul cartezian apare ndreptit amnarea jonciunii,

    pn cnd aceasta va opera asupra unor tabele cu un numr mai mic de linii i

    coloane.

    Exemplul 20. Care sunt crile scrise de Victor Stanciu ?

    Elementul de noutate n cazul acestui exemplu l reprezint faptul c se

    dorete obinerea unei informaii ce provine dintr-o relaie (atributul

    nume_carte din tabela CARTE), pe baza unei condiii aplicate altei relaii(atributul nume_autor din tabela AUTOR), iar cele dou relaii nu sunt nraport de printe copil. n asemenea situaii se recomand folosirea i a altor

    relaii, n cazul nostru tabela AUTORCARTE.

    Soluia 1:R1 JONCIUNE (CARTE, AUTORCARTE; cota_carte)R2 JONCIUNE (R1,AUTOR; nume_autor)R3 SELECIE (R2; nume_autor = Victor Stanciu)R4 PROIECIE (R3; titlu)

  • 53

    Soluia 2:R1 SELECIE (AUTOR, nume_autor = Victor

    Stanciu)R2 PROIECIE (R1; nume_autor)R3 JONCIUNE (R2,AUTORCARTE; nume_autor)R4 PROIECIE (R3; Cota_carte)R5 JONCIUNE (R4, CARTE; cota_carte)R6 PROIECIE (R5; titlu)naintea calculrii relaiei intermediare au fost eliminate nu numai tuplurile

    ci i atributele de prisos.

    Exemplul 21. Numele studenilor care au mprumutat cri din domeniul

    Informatic.

    i n acest caz se dorete obinerea unei informaii ce provine dintr-o

    tabel (atributul nume din tabela STUDENT) pe baza unei condiii aplicate uneialte tabele iar ntre cele dou tabele nu exist legtur printe copil. De aceast

    dat se folosete ca legtur tabela STUDCARTE.

    Soluia 1:R1 JONCIUNE (STUDENT; STUDTCARTE; nr_matricol)R2 JONCIUNE (R1, CARTE; cota_carte)R3 SELECIE (R2; domeniu = Informatica)R4 PROIECIE (R3; nume)Soluia 2:R1 SELECIE (CARTE; domeniu = Informatica)R2 JONCIUNE (R1, STUDCARTE; cota_carte)R3 PROIECIE (R2; nr_matricol)R4 JONCIUNE (R3, STUDENT; nr_matricol)R5 PROIECIE (R4; nume)

    Exemplul 22. Numele i secia studenilor facultii de tiine Economice

    care au mprumutat cartea Informatic de gestiune n perioada 15-29 februarie

    2004.

    Relaia rezultat trebuie s conin valori ale atributelor nume i sectiadin tabela STUDENT. Predicatul de selecie se aplic ns asupra tabelei CARTE

    (atributul nume_carte = Informatica de gestiune) i asupra tabeleiSTUDCARTE (atribut data_mprumut > = 15/02/2004 i < = 29/02/2004).

    R1 SELECIE (CARTE; titlu = Informatica degestiune)

    R2 JONCIUNE (R1, STUD_CARTE; cota_carte)R3 SELECIE (R2; data_imprumut > = 15/02/2004

    AND data_imprumut < = 29/02/2004)R4 PROIECIE (R3; nr_matricol)

  • 54

    R5 JONCIUNE (R4; STUDENT; nr_matricol)R6 SELECIE (R5; facultate = Stiinte

    Economice)R7 PROIECIE (R6; nume, sectia)

    Exemplul 23. De la ce secii sunt studenii care au mprumutat i cartea

    Informatic de gestiune i Contabilitate general?

    Rezultatul conine atributul secia din tabela STUDENT, dar predicatul de

    selecie se aplic asupra tabelei produse.

    Soluia 1:R1 SELECIE (CARTE; nume_carte = Informatica de

    gestiune)R2 JONCIUNE (R1, STUD_CARTE; cota_carte)R3 JONCIUNE (R2, STUDENT; nr_matricol)R4 PROIECIE (R3; sectia)R5 SELECIE (CARTE; nume_carte = Contabilitate

    generala)R6 JONCIUNE (R5, STUDCARTE; cota_carte)R7 JONCIUNE (R6, STUDENT; nr_matricol)R8 PROIECIE (R7; SECTIA)R9 R4 R8Soluia 2:R1 SELECIE (CARTE; titlu = Informatica de

    gestiune)R2 JONCIUNE (R1, STUD_CARTE; cota_carte)R3 JONCIUNE (R2, STUDENT; nr_matricol)R4 SELECIE (CARTE; nume_carte = Contabilitate

    generala)R5 JONCIUNE (R4, STUDCARTE; cota_carte)R6 JONCIUNE (R5, STUDENT; nr_matricol)R7 JONCIUNE (R3; R6; sectia)R8 PROIECIE (R7, sectia)

    n prima soluie s-a intersectat relaia seciilor studenilor care au

    mprumutat cartea Contabilitate general (R8). n cea de-a doua variant s-a

    operat direct jonciunea ntre R3 i R6.

    Exemplul 24. n ce cmin sunt cazai studenii care au mprumutat crile

    Informatic de gestiune i Contabilitate general, dar nu au mprumutat

    cartea Economie politic?

    Lucrurile n acest caz nu sunt att de complicate precum par la prima

    vedere, deoarece vom folosi elemente din exemplul anterior, plus operatorul

    diferen.

  • 55

    R1 SELECIE (CARTE; titlu = Informatica degestiune)

    R2 JONCIUNE (R1, STUD_CARTE; cota_carte)R3 JONCIUNE (R2, STUDENT; nr_matricol)R4 JONCIUNE (R3, STUDCAMIN; nr_matricol)R5 PROIECIE (R4, nume_camin)R6 SELECIE (CARTE; nume_carte = Contabilitate

    general)R7 JONCIUNE (R6, STUDCARTE; cota_carte)R8 JONCIUNE (R7, STUDENT; nr_matricol)R9 JONCIUNE (R8, STUDCAMIN; nr_matricol)R10 PROIECIE (R9; nume_camin)R11 SELECIE (CARTE; nume_carte = Economie

    politica)R12 JONCIUNE (R11, STUDCARTE; cota_carte)R13 JONCIUNE (R12, STUDENT; nr_matricol)R14 JONCIUNE (R13, STUDCAMIN; nr_matricol)R15 PROIECIE (R14; nume_camin)R16 R5 R10 R15

    Exemplul 25

    Ce studeni studiaz la aceeai secie cu Dinescu Monica?

    Fa de interogrile de pn acum, condiia de selecie n acest caz este una

    indirect, n sensul c mai nti trebuie determinat secia la care studiaz Dinescu

    Monica. Apoi trebuie extrase din tabela STUDENT, liniile pentru care secia are

    valoarea seciei reper.R1 SELECIE (STUDENT; nume = Dinescu Monica)R2 PROIECIE (R1; sectia)R3 JONCIUNE (R2, STUDENT; sectia)R4 PROIECIE (R3; nume)

    6.5. Diviziunea

    Diviziunea este cel mai complex i mai greu de explicat dintre operatori.

    Codd l-a imaginat ca un operator invers produsului cartezian. Pentru al defini se

    pornete de la dou relaii R1(A,B) i R2(B). Diviziunea relaional R1R2 are carezultat o relaie definit ca ansamblul subtuplurilor R1(A), pentru care produsul

    lor cartezian cu R2(B) este un subansamblu al R1(A,B).

    Rezultatul expresiei R1R2 reprezint ctul diviziunii, ea fiind o relaie cepoate fi notat R3(A). ntr-o alt formulare ai R3 dac i numai dac " bi R2 $ (ai, bi) R1.

    F

  • 56

    n continuare pentru simplitate A i B sunt considerate dou atribute, dei

    ele pot fi i grupe de atribute. n figura de mai jos este prezentat diviziunea

    relaional.

    R1A Ba1 b1a2 b1a3 b1a1 b2a3 b2 R2a4 b2 Ba1 b3 b1 R3a3 b3 b2 Aa6 b3 b3 a1a1 b4 b4 a2a3 b4a4 b4a1 b5a2 b5a3 b5a5 b5

    Figura 15. Diviziunea relaional

    Determinarea relaiei R3 R1 R2 este sinonim cu a rezolva problema:care dintre a1, a2, a3, a4 i a5 apar n tupluri R1 mpreun cu toate valorilelui B din R2, respectiv b1, b2, b3, b4 i b5?

    Toate valorile atributului A din R1 sunt parcurse pe rnd:

    a1 apare cu b1 (n tuplul 1), cu b2 (n tuplul 2), cu b3 (n tuplul 7), cub4 (n tuplul 10) i cu b5 (n tuplul 13). Prin urmare a1 ndeplinete condiie i vafi inclus n relaia R3;

    a2 apare cu b1 (n tuplul 2) dar nu apare cu b2 nu va face parte dinR3;

    a3 apare cu b1 (n tuplul 3), cu b2 (n tuplul 5), cu b3 (n tuplul 8), cub4 (n tuplul 11) i cu b5 (n tuplul 15) ndeplinete condiia i ca fi inclus nR3;

    a4 nu apare cu b1 nu va face parte din R3; a5 nu apare cu b1 nu va face parte din R3;

  • 57

    n urma acestui raionament, tabele R3 va fi alctuit din dou tupluri (a1i a3).

    Diviziunea relaional este deosebit de util pentru formularea

    consultrilor n care apare clauza " (oricare ar fi)

    Test de evaluare

    Se consider urmtoarea baz de date:PACIENT (codpacient, nume, prenume, datanasterii,localitate)PROGRAMARE (nrprogramare, dataprogramare,oraprogramare, codpacient)CONSULTATIE (nrconsultatie, tipconsultatie,codpacient, dataconsultatie)MEDICI (codmedic, numemedic, prenumemedic)MEDIC_CONSULTATIE (nrconsultatie, codmedic)TARIFE (tipconsultatie, tarif)Folosind operatorii algebrei relaionale s se determine:

    1. Care sunt pacienii din Trgovite; (vezi pag. 63-67)

    2. Care sunt pacienii din Trgovite i Titu; (vezi pag. 63-67)

    3. Care pacieni nu sunt din Trgovite i Titu; (vezi pag. 63-67)

    4. Care sunt pacienii care s-au nscut n anul 1989; (vezi pag. 63-67)

  • 58

    5. Care sunt tarifele mai mari de 25 RON; (vezi pag. 63-67)

    6. Din ce localiti sunt pacienii din baz; (vezi pag. 63-67)

    7. Care este nume i prenumele medicilor care ofer consultaii;(vezi pag. 63-67)

    8. Care sunt tarifele practicate; (vezi pag. 63-67)

    9. Din ce localitate sunt pacienii nscui n luna ianuarie 1990;(vezi pag. 63-67)

    10. Care sunt orele pentru care sunt prevzute consultaii n data de09.02.2006; (vezi pag. 63-67)

  • 59

    11. Cum se numesc pacienii din Trgovite i Moreni;(vezi pag. 63-67)

    12. Care este prenumele medicilor cu numele de familie Ghionea;(vezi pag. 63-67)

    13. La ce data i la ce or are programare Popa Georgeta;(vezi pag. 63-67)

    14. Care sunt datele la care au fcut programare pacienii dinTrgovite; (vezi pag. 63-67)

    15. Numele pacienilor care au fost consultai n luna februarie 2006;(vezi pag. 63-67)

    16. Data la care a fcut programare Dinescu Mircea i Vancea Ioan;(vezi pag. 63-67)

  • 60

    17. Numele medicilor care au acordat consultaii n data de 23.02.2006;(vezi pag. 63-67)

    18. De ce medic a fost consultat Popa Georgeta; (vezi pag. 63-67)

    19. Numele pacienilor consultai de Grecu Anca; (vezi pag. 63-67)

    20. Nume pacienilor care au fcut programare i n luna ianuarie i nluna februarie 2006; (vezi pag. 63-67)

  • 61

    21. Care este tariful consultaiei pacientului Popa Georgeta;(vezi pag. 63-67)

    22. Numele pacienilor care au fcut programare n data de 10.02.2006n intervalul 14-16; (vezi pag. 63-67)

    23. Datele la care au efectuat consultaii Grecu Anca i Minea Ion nluna februarie 2006; (vezi pag. 63-67)

  • 62

    24. Numele i prenumele medicilor care au consultat pacieni dinTrgovite i Moreni dar nu din Titu; (vezi pag. 63-67)

    25. Numele pacienilor consultai de Grecu Anca n luna februarie2006; (vezi pag. 63-67)

  • 63

    26. Data la care au fost consultai pacienii care au fcut programare ndata de 10.02.2006; (vezi pag. 63-67)

    27. Nume pacienilor care au avut programare n data de 10.20.2006 nintervalul 12-14 i au fost consultai de ctre Grecu Anca.

    (vezi pag. 63-67)

    Rezolvare tem de autoevaluare

    1. Care sunt pacienii din Trgovite;

    R1 SELECIE(PACIENT; localitate=Targoviste)2. Care sunt pacienii din Trgovite i Titu;

    R1 SELECIE(PACIENT; localitate=Targoviste orlocalitate=Titu)3. Care pacieni nu sunt din Trgovite i Titu;

    R1 SELECIE(PACIENT; localitateTargoviste andlocalitateTitu)

    sau

    R1 SELECIE(PACIENT; localitate=Targoviste orlocalitate=Titu)R2 PACIENT R1

  • 64

    4. Care sunt pacienii care s-au nscut n anul 1989;

    R1 SELECIE(PACIENT; datanasterii>= 01/01/1989 anddatanasterii25)

    6. Din ce localiti sunt pacienii din baz;

    R1 PROIECIE(PACIENT; localitate)7. Care este nume i prenumele medicilor care ofer consultaii;

    R1 JONCIUNE(MEDICI; MEDIC_CONSULTATIE;codmedic)R2 PROIECIE(R1; numemedic, prenumemedic)8. Care sunt tarifele practicate;

    R1 PROIECIE(TARIFE; tarif)9. Din ce localitate sunt pacienii nscui n luna ianuarie 1990;

    R1 SELECIE(PACIENT; datanasterii>= 01/01/1990 anddatanasterii

  • 65

    15. Numele pacienilor care au fost consultai n luna februarie 2006;

    R1 JONCIUNE(PACIENT, PROGRAMARE; codpacient)R2 JONCIUNE(R1, CONSULTATIE; nrconsultatie)R3 SELECIE(R2; dataconsultatie >= 01/02/2006 anddataconsultatie = 01/01/2006 anddataprogramare = 01/02/2006 anddataprogramare

  • 66

    21. Care este tariful consultaiei pacientului Popa Georgeta;

    R1 SELECIE(PACIENT; nume = Popa and prenume =Georgeta)R2 JONCIUNE(R1, CONSULTATIE; codpacient)R3 JONCIUNE(R2, TARIFE; nrconsultatie)R4 PROIECIE(R3; tarif)

    22. Numele pacienilor care au fcut programare n data de 10.02.2006n intervalul 14-16;

    R1 SELECIE(PROGRAMARE; dataprogramare =10/02/2006)R2 SELECIE(R1; oraprogramare>= 14 and oraprogramare= 01/02/2006 anddataconsultatie = 01/02/2006 anddataconsultatie

  • 67

    25. Numele pacienilor consultai de Grecu Anca n luna februarie2006;

    R1 SELECIE(MEDICI; numemedic = Grecu andprenumemedic =Anca)R2 JONCIUNE(R1, MEDIC_CONSULTATIE; codmedic)R3 JONCIUNE(R2, CONSULTATIE; nrconsultatie)R4 SELECIE(R3; dataconsultatie >= 01/02/2006 anddataconsultatie = 12 and oraprogramare

  • 68

    M.3. LIMBAJUL DE INTEROGARERELAIONAL SQL.

    1. Cuprins2. Obiectiv general3. Obiective operaionale4. Dezvoltarea temei5. Bibliografie selectiv

    Cuprins

    UI.7. Prezentare general; Elemente de baz ale interogrilorSQL;

    = 0,5 ore UI.8. Coloane expresii; Opiunea ORDER BY;

    = 0,5 ore UI.9. Operatorii LIKE, BETWEEN, IN;

    = 2 ore UI.10. Theta i echijonciunea;

    = 3 ore UI.11. Sinonime locale i jonciunea unei tabele cu ea nsi;

    = 1 ore UI.12. Subconsultri;

    = 2 ore UI.13. Funcii agregat: COUNT, SUM, AVG, MIN i MAX);

    = 2 ore UI.14. Gruparea tuplurilor: clauza GROUP BY i clauza

    HAVING

    = 1 ore

  • 69

    Obiectiv general: Dobndirea cunotinelor fundamentaleprivind limbajul relaional de interogare SQL

    Obiective operaionale: nsuirea cunotinelor privindelementele de baz ale SQL, modul de operare al unei fraze SELECTimpreun cu clauzele obligatorii i cele opionale: FROM, WHERE,ORDER BY, GROUP BY sau HAVING

  • 70

    UNITATEA DE NVARE 7PREZENTARE GENERAL; ELEMENTE DE BAZ ALE

    INTEROGRILOR

    7.1. Prezentare general

    n prezent SQL (Structured Query Language) este unul dintre cele mai

    puternice limbaje structurate pentru interogarea bazelor de date relaionale.

    Literele S de la Structured (structurat) i L de la Language (limbaj) sunt destul de

    sugestive, n schimb, litera Q de la Query (interogare), dac este analizat din

    punct de vedere literal, poate provoca unele confuzii n sensul c se limiteaz doar

    la a pune ntrebri bazei de date. Din fericire, SQL face mult mai mult dect att:

    se pot crea tabele, se adaug, se modific sau se terg date, se combin i se

    memoreaz interogrile n cadrul bazei de date.

    Istoria SQL ncepe n laboratoarele firmei IBM, unde limbajul a fost

    dezvoltat n ultimii ani ai deceniului 8, odat cu lansarea proiectului System/R.

    Dei este uor accesibil utilizatorilor nceptori, el nu rmne dator nici

    programatorilor experimentai, punndu-le la dispoziie faciliti deosebite.

    Datorit puterii sale relaionale, a uurinei n nelegere i utilizare, SQL a

    fost ales de ANSI (American National Standards Organization Organizaia

    pentru Standarde Naionale Americane) i apoi de ctre ISO (International

    Standards Organization Organizaia pentru Standarde Internaionale) drept

    limbaj standard pentru lucru cu baze de date relaionale.

    Pe parcursul acestui curs standardul pentru SQL avut n vedere este

    standardul ANSI-92. Standardul SQL-92 propune 3 niveluri de conformitate:

    nivelul de intrare (entry level), nivelul intermediar (intermediate level) i nivelul

    maximal (full level). Fiecare firm i declar nivelul de conformitate al propriului

    SGBD n raport de SQL-92.

    Limbajul SQL este un limbaj neprocedural (sau declarativ), termenul de

    neprocedural fiind vzut mai degrab prin ce dect prin cum, n sensul c nu se

    specific dect ce informaie este solicitat i nu cum este obinut aceast

    informaie.

    SQL poate fi utilizat autonom (manipularea interactiv a bazei de date) sau

    poate fi utilizat prin inserare de comenzi SQL ntr-un limbaj de programare.

  • 71

    Instruciunile SQL n funcie de rolul avut n manipularea datelor i a

    tranzaciilor se pot grupa astfel:

    instruciuni pentru definirea datelor care asigur