Baze de Date Lixandroiu D R (1)

download Baze de Date Lixandroiu D R (1)

of 146

description

cursbaze de datelixandroiuuniversitateatransilvaniabrasovinvatamant la distantaanul 2

Transcript of Baze de Date Lixandroiu D R (1)

  • Baze de date relaionale 1

    Universitatea TRANSILVANIA din Braov

    Facultatea de tiine Economice i Administrarea Afacerilor

    Baze de date relaionale

    SUPORT DE CURS

    PENTRU

    NVMNT LA DISTAN

    Prof. Dr. Dorin Lixndroiu

    Lector dr. Radu Lixndroiu

    Braov

    2011

  • Baze de date relaionale 2

    Introducere

    Obiectivele cursului

    Principalul obiectiv al cursului este de a nelege principalele concepte ale bazelor de date relaionale. Prezentarea principalelor elemente definitorii ale conceptelor baz de date / sistem de gestiune a bazelor de date va permite nelegerea importanei activitilor de culegere, prelucrare, transmitere i stocare a informaiei n strcturi de date n procesul decizional.

    Un alt obiectiv este familiarizarea cu limbajul SQL, cunoaterea principalelor instruciuni de manipulare a bazelor de date i a datelor precum i realizarea unor aplicaii economice simple.

    Competene conferite

    Dup parcurgerea acestui curs studenii vor nelege urmtoarele concepte:

    de baz de date, de sistem de gestiune a bazelor de date, noiunea de tabel, noiuni privind utilizarea i crearea aplicaiilor cu baze de date

    Resurse i mijloace de lucru

    Mijloace informatice necesare parcurgerii materialului i rezolvrii testelor: Microsoft Access.

    Structura cursului

    numrul de Uniti de nvare (UI) ce compun cursul: 6

    numrul temelor de control 5 + o UI ce conine numai aplicaii

    locul, n cadrul materialului, n care se gsesc formulate temele de control la sfaritul unitilor de nvare

    modul de transmitere al temelor de control ctre cadrul

  • Baze de date relaionale 3

    didactic i, respectiv, a rezultatelor ctre studeni -(prin ncrcarea pe platforma eLearning, material tiprit, etc.

    Discipline deservite

    Analiza i Proiectarea Sistemelor Informatice

    Pachete de Programe de Contabilitate

    Tehnologia Informatiei

    Programarea Calculatoarelor

    Durata medie de studiu individual 16 ore

    .

    Evaluarea

    Se va specifica componena notei finale:

    ponderea evalurii finale (examen) 50% ponderea proiectelor de laborator 50%

  • Baze de date relaionale 4

    CUPRINS

    Unitatea de nvare 1. BAZE DE DATE......................................................

    5

    Unitatea de nvare 2. BAZE DE DATE RELAIONALE.........................

    35

    Unitatea de nvare 3. ALGEBRA RELAIONAL..................................

    44

    Unitatea de nvare 4. LIMBAJUL SQL.

    66

    Unitatea de nvare 5. NORMALIZAREA RELAIILOR..........................

    84

    Unitatea de nvare 6. APLICAII...............................................................

    107

  • Baze de date relaionale 5

    Unitatea de nvare 1.

    BAZE DE DATE

    Introducere Organizaiile gestioneaz colecii de date n scopul satisfacerii cerinelor informaionale la toate nivelele decizionale (operaional, tactic, strategic). n absena datelor asupra funcionrii interne i asupra mediului extern, o organizaie nu ar putea supravieui. Procesul de organizare i prelucrare a datelor a parcurs mai multe etape, pn s-a ajuns la soluia dominant n prezent, care const n organizarea datelor n baze de date.

    Competenele unitii de nvare Dup parcurgerea acestei pri studenii vor nelege urmtoarele concepte: Evoluia procesului de organizare a datelor Baze de date concepte generale Sistemul de gestiune al bazei de date (SGBD) Arhitectura funcional a sistemului de gestiune al bazei de date Arhitectura client - server Modele de baze de date Modelul entitate asociere (E-A) Baz de date Banc de date Scurt istorie a bazelor de date

    Durata medie de parcurgere a primei uniti de nvare este de 4 ore.

    [CON01], [HER03], [POI96], [POI01], [GBD02], [DAT05], [FLO99], [ION04], [FOT97], [MIR88], [GAR03], [DOL98]

  • Baze de date relaionale 6

    1.1. EVOLUIA PROCESULUI DE ORGANIZARE A DATELOR O colecie de date reunete date despre o anumit clas de obiecte (reale sau conceptuale). De exemplu, n domeniul contabilitii financiare, colecia de date CONTURI conine informaiile referitoare la clasa de obiecte conturi: simbolul contului (SIMB_CONT), denumirea contului (DEN_CONT), tipul contului (TIP_CONT), soldul iniial debitor (SID) i respectiv soldul iniial creditor (SIC). Evident, un cont dat va avea soldul iniial fie debitor, fie creditor. Pentru exemplificare considerm colecia de date CONTURI.

    SIMB_CONT DEN_CONT TIP_CONT SID SIC

    121 Profit i pierderi B 0 1000

    O realizare a coleciei de date CONTURI

    ntr-o ntreprindere sunt identificate mai multe colecii de date, de exemplu: PERSONAL conine informaii despre persoanele angajate n firm; PRODUSE - conine informaii despre produsele realizate;

    STOCURI - conine informaii despre stocurile existente de materii prime, materiale, produse finite, etc.

    TRANZACII - conine informaii privind intrrile n / ieirile din stocuri. Procesul de organizare a datelor presupune:

    definirea, structurarea, ordonarea i gruparea datelor n colecii de date omogene;

    stabilirea relaiilor ntre date, ntre elementele unei colecii, ntre colecii de date;

    stocarea datelor pe suport informational. Organizarea datelor este necesar pentru:

    minimizarea timpului de acces la date; asigurarea unicitii datelor; sistemul de organizare a datelor adoptat trebuie s reflecte ct mai fidel

    toate legturile dintre obiectele, fenomenele, procesele economice pe care aceste date le reprezint;

    asigurarea flexibilitii datelor.

  • Baze de date relaionale 7

    Etapele evoluiei procesului de organizare a datelor Procesul de organizare i prelucrare a datelor a parcurs mai multe etape, pn s-a ajuns la soluia dominant n prezent, care const n organizarea datelor n baze de date. Principalele etape ale evoluiei tehnicilor de organizare i prelucrare a datelor sunt:

    Prima etap se caracterizeaz prin adaptarea tipurilor de organizare a datelor existente n sistemele de prelucrare manual la condiiile tehnice impuse de calculator. n aceast etap apare fiierul organizare secvenial, iar ca suport de memorare extern se utilizeaz benzile magnetice. Este caracteristic prelucrarea pe loturi (batch processing).

    A doua etap este marcat de separarea dintre structura logic de date

    i structura fizic. Rezult independena fizic a datelor. n aceast etap se utilizeaz fiiere secvenial-indexate, fiiere directe, fiiere inverse, etc. Ca suport de memorare extern apare discul magnetic. Se asigur independena aplicaiilor de modificrile echipamentelor hardware (banda, disc, etc.). Apar primele faciliti simple de protecie a datelor. Apare posibilitatea de lucru n mod conversaional. O facilitate important pus la dispoziia utilizatorilor este generarea automat de rapoarte. Apare o separare (parial) ntre modul n care un fiier este privit de utilizator (nivelul logic) i modul cum se memoreaz pe suportul magnetic (nivelul fizic).

    O caracteristic comun a primelor dou etape: fiecare aplicaie lucreaz cu propriile fiiere, fr a avea nici o legtur cu fiierele utilizate de alte aplicaii. Aceasta aduce inconveniente majore legate de:

    redundana datelor - prezena aceleiai date n mai multe fiiere, creaz probleme evidente n operaiile de actualizare;

    inconsistena datelor - aceeai informaie este memorat diferit n fiiere diferite (mai ales cnd informaia se modific);

    absena unor legturi logice ntre datele din grupuri diferite de fiiere, numr mare de fiiere, timp mare de prelucrare;

    flexibilitate redus a sistemului la apariia unei noi aplicaii. A treia etap este definit de apariia fiierelor integrate (sisteme de

    fiiere). Se reduce redundana i implicit inconsistena datelor - aceleai date fizice pot fi utilizate n comun de ctre mai multe aplicaii. Apar proceduri care gestioneaz relaiile dintre fiierele din sistem, rezultnd astfel o structur logic unitar. Rmn ns deficienele comune primelor dou etape, legate de gestiunea fiierelor care uneori este realizat cu programe scrise n diferite limbaje de programare. Structura fiierului

  • Baze de date relaionale 8

    trebuie precizat n programul de gestiune, ceea ce conduce la modificarea programului n cazul modificrii structurii fiierului.

    Not. Structura integrat st la originea noiunii de model conceptual (modelul ce conine descrierile tuturor datelor i a legturilor dintre ele). n concluzie, sistemele bazate pe fiiere (file based) au urmtoarele caracteristici:

    fiecare program definete i gestioneaz propriile date;

    datele sunt descrise independent n toate fiierele n care apar;

    fiecare fiier de date este descris n toate programele care l acceseaz;

    nu exist control al accesului i manipulrii datelor, n afara celui impus prin programele de aplicaie.

    Din aceste carcateristici decurg urmtoarele dezavantaje ale organizrii datelor dup modelul file based:

    redundana i inconsistena datelor;

    dificultatea accesului n cazul n care o informaie este exploatat de mai muli utilizatori, fiierele tradiionale nu permit accesarea datelor dup mai multe criterii specifice diferiilor utilizatori sau grupuri de utilizatori;

    complexitatea actualizrilor ntr-un mediu multiutilizator (multiuser) efectuarea unei actualizri (modificare, adugare sau tergere) poate conduce la situaii conflictuale atunci cnd doi utilizatori vor s modifice simultan aceeai dat; acest gen de conflicte poate fi rezolvat printr-un program supervizor al prelucrrilor;

    probleme de securitate crearea unor mecanisme de protecie a datelor mpotriva accesului neautorizat este dificil;

    asigurarea integritii datelor presupune crearea unor proceduri de analiz a restriciilor semantice la care sunt supuse datele; acestea formeaz mecanismul de integritate;

    dificultatea de a obine rspunsuri rapide la probleme ad-hoc simple presupune realizarea unor programe utiliznd limbaje procedurale pentru a obine rspunsul la o interogare;

    inflexibilitatea fa de schimbrile ulterioare din sistemul informaional;

    costul ridicat datorat gradului de redundan a datelor i efortului necesar interconectrii fiierelor de date pentru a realiza un nivel minim de integritate i securitate a datelor.

    A patra etap este etapa bazelor de date. Sintagma baz de date apare

    n anul 1964, n titlul conferinei Development and Management of a Computer Centered Data Base organizat la Santa Monica (California) de System Development Corporation. Momentul consacrrii termenului DATA BASE este 1969, cnd la CODASYL (Conference On DAta SYstems Language) se prezint ntr-un raport conceptul de baz de date.

  • Baze de date relaionale 9

    1.2. BAZE DE DATE - CONCEPTE GENERALE DATA - nregistrarea unei observaii, obiect, fenomen, imagine, sunet sau text, ntr-o form convenabil unei prelucrri, interpretri sau transmiteri prin mijloacele informaticii. Datele reprezint aspecte elementare nesupuse unei prelucrri i neevaluate din punct de vedere al utilitii. INFORMAIA - semnificaia ce poate fi ataat sau poate fi dedus dintr-un ansamblu de date pe baza corelaiilor dintre acestea, avnd un scop bine determinat, de satisfacere a cerinelor utilizatorilor. BAZA DE DATE (Database) un ansamblu structurat de colecii de date operaionale nregistrate pe suport adresabil, aflate n interdependen logic, mpreun cu descrierea datelor i a relaiilor dintre ele i care sunt prelucrate n aplicaiile informatice ale unei organizaii. Baza de date permite operaii de introducere, tergere, actualizare i interogare a datelor. BAZA DE DATE este un ansamblu de date:

    structurate; coerente, adic exist legturi (interdependene) logice ntre diferitele

    colecii ce alctuiesc baza de date; persistente, adic datele rmn memorate pe suport magentic,

    independent de execuia programelor de aplicaii, fiind pstrate pentru o anumit perioad de timp;

    neredundante - condiia de neredundan este n general nlocuit de o condiie mai slab: redundan minim i controlat n scopul de a mri viteza de acces la date;

    independente de programul de aplicaie; direct accesibile dup mai multe criterii; simultan accesibile de ctre mai muli utilizatori.

    n gestiunea bazelor de date exist dou tipuri de de baze de date: BAZE DE DATE OPERAIONALE sunt utilizate cu precdere n prelucrarea on-line a tranzaciilor (on-line transaction processing OLTP), adic n situaii cnd este necesar colectarea, modificarea i ntreinerea zilnic a bazelor de date. Datele stocate ntr-o baz de date operaional sunt de tip dinamic, ceea ce nseamn c se modific n permanen i reflect ntotdeauna informaii actualizate n timp real.

  • Baze de date relaionale 10

    BAZE DE DATE ANALITICE - sunt utilizate mai ales n aplicaiile de prelucrare analitic on-line (on-line analytical processing OLAP), cnd este necesar stocarea i urmrirea datelor istorice i dependente de timp. Sunt importante cnd este necesar urmrirea tendinelor, vizualizarea datelor statistice pe o perioad mai lung de timp, sau efectuarea unor previziuni tactice sau strategice de afaceri. Datele stocate ntr-o baz de date analitic sunt de tip static, adic nu se modific niciodat (sau foarte rar). Bazele de date analitice utilizeaz frecvent bazele de date operaionale ca surs principal de date. Prezenta lucrare abordeaz din problematica bazelor de date operaionale numai bazele de date relaionale. ARHITECTURA UNUI SISTEM DE BAZE DE DATE (Database System) cuprinde:

    baza de date propriu-zis n care se memoreaz datele software-ul format din Sistemul de Gestiune al Bazei de Date (SGBD) i

    aplicaiile de baze de date (Database Application) metabaza de date - dicionarul datelor (DD), conine informaii despre

    date, structura acestora, documentaie hardware-ul utilizat utilizatorii bazei de date: administratorul bazei de date, programatorul de

    aplicaii (administratorul aplicaiei) i utilizatorii finali (nespecialiti) reglementrile legislative ce permit buna funcionare a sistemului.

    Cerinele minimale care se impun unei baze de date sunt:

    furnizarea n timp util a informaiilor solicitate, se refer la timpul de rspuns la o interogare efectuat;

    costuri minime de prelucrare i ntreinere a informaiei; capacitatea de a satisface, cu aceleai date necesitile informaionale ale

    unui numr mare de utilizatori; flexibilitatea - posibilitatea de adaptare la cerine noi, de a da rspunsuri

    la interogri neprevzute iniial; integrarea baza de date poate fi considerat o unificare a mai multor

    fiiere altfel diferite redundana acestor fiiere fiind parial sau total eliminat;

    asigurarea unei redundane minime i controlate a datelor rezult din cerina de integrare; meninerea a mai multor copii ale acelorai date poate fi impus de motive de ordin tehnic, ns aceast redundan minim trebuie controlat cu atenie, ceea ce presupune ca sistemul de gestiune al bazei de date s o cunoasc i s-i asume responsabilitatea de a propaga actualizrile;

  • Baze de date relaionale 11

    partajarea i sincronizarea posibilitatea de partajare i exploatare simultan a datelor de ctre mai muli utilizatori; se realizeaz astfel posibilitatea de acces concurent la date;

    confidenialitatea asigurarea securitii datelor prin mecanisme de protecie mpotriva accesului neautorizat;

    integritatea presupune existena unor proceduri de validare i recuperare a datelor dup accidente; problema integritii este de garanta (att ct este posibil) c datele din baza de date sunt corecte;

    compatibilitatea i expandabilitatea posibilitatea de valorificare a eforturilor anterioare i anticiparea nevoilor de dezvoltare;

    permisivitatea posibilitatea de ierarhizare a datelor dup criteriul frecvenei acceselor, sau reorganizarea datelor n scopul creterii performanelor bazei de date.

    Utilizatorii bazei de date:

    Administratorul bazei de date (DBA - DataBase Administrator) este responsabil cu meninerea funcionalitii bazei de date, prin efectuarea operaiilor periodice de salvare a datelor (backup) i de refacere a datelor n cazul apariiei unui incident (rollback), prin urmrirea performanelor sistemului, autorizeaz drepturile de acces pentru diferitele categorii de utilizatori, ajut la definirea cerinelor utilizatorilor, etc.

    Programatorul de aplicaii (administratorul aplicaiei) este cel care

    dezvolt aplicaiile de baze de date folosind limbaje de programare de nivel nalt, generatoare de aplicaii i biblioteci care permit ncorporarea operaiilor de acces la baza de date; aplicaiile care rezult pot fi cu execuie independent (batch-processing) sau pot fi aplicaii interactive (on-line) destinate utilizatorilor finali.

    Utilizatorii finali (nespecialiti) acceseaz baza de date prin intermediul

    unui program de aplicaie care le d drepturi limitate de acces la date pentru anumite operaii de prelucrare; utilizatorii finali, n general, efectueaz un numr mare de operaii tranzacionale asupra bazei de date utiliznd interfee de comunicare cu baza de date apropiate de limbajul natural, dar nu cunosc structura bazei de date i nici modul efectiv de lucru cu baza de date.

    Arhitectura intern a unui sistem de baze de date (figura 1.1) - conine trei nive niveluri de abstractizare i percepie a datelor, introduse n anul 1975, prin raportul ANSI/SPARC DBMS Report of the Study Group on Data Base Management Systems

  • Baze de date relaionale 12

    (ANSI/SPARC nseamn American National Standards Institute / Standards Planning And Requirements Committee):

    Nivelul intern (Internal Schema) specific modul de stocare a datelor n sistem. Vederea intern este o reprezentare de nivel inferior a ntregii baze de date i este descris prin intermediul schemei interne, care definete diversele tipuri de nregistrri stocate, specific indexurile care exist, modul n care sunt reprezentate cmpurile stocate, n ce secven fizic se afl nregistrrile stocate, etc. Schema intern este scris folosind un limbaj de definire a datelor - limbajul DDL intern. Administratorul bazei de date este responsabil cu crearea schemei interne, adic proiectarea fizic a bazei de date.

    Nivelul extern (External Schema, User View) este nivelul logic al utilizatorului individual, care este cel mai apropiat de utilizator. Acesta poate fi un programator de aplicaii (administratorul aplicaiei) sau un utilizator final. Fiecare utilizator are la dispoziie un limbaj:

    - pentru programatorul de aplicaii (administratorul aplicaiei) limbajul poate fi Java, C++, PL/I, etc.

    - pentru utilizatorul final limbajul va fi ori unul de interogare (SQL), ori unul specializat adaptat cerinelor utilizatorului.

    Un sistem de baze de date accept mai multe limbaje gazd. Un sublimbaj de date (DSL Data SubLanguage) este un subset al limbajului complet, care se refer n mod specific la obiectele i operaiile bazei de date. Sublimbajul de date este nglobat n limbajul gazd corespunztor. Unul dintre sublimbajele de date acceptat de ctre majoritatea sistemelor curente este SQL. Limbajul SQL, care va fi prezentat n Capitolul 4, poate fi folosit interactiv, ca limbaj de interogare autonom, ct i nglobat n alte limbaje, cum ar fi Java, C++, PL/I, etc. De exemplu, sistemul de baze de date Oracle are 6 precompilatoare (C, Pascal, Ada, Cobol, Pl/1, Fortran) care permit includerea de instruciuni SQL sau blocuri PL/SQL n programele scrise n limbajele gazd. Orice sublimbaj de date conine dou limbaje subordonate:

    - un limbaj de definire a datelor (DDL Description Data Language) pentru definirea obiectelor bazei de date;

    - un limbaj de manipulare a datelor (DML Data Manipulation Language) care realizeaz prelucrarea acestor obiecte.

    Observm c graniele dintre: a) limbajul gazd i sublimbajul de date i b) limbajele DDL i DML sunt de natur conceptual. Important este ca aceste limbaje s fie transparente pentru utilizator.

  • Baze de date relaionale 13

    Limbaj

    gazd +

    DSL

    Limbaj

    gazd +

    DSL

    Limbaj

    gazd +

    DSL

    Vedere extern

    A

    Vedere extern

    B

    Vedere

    conceptual

    Sistemul de

    gestiune a

    bazelor de date

    (SGBD)

    Baza de date stocat

    (Vedere intern)

    Utilizator A1 Utilizator A2 Utilizator B1

    Schema

    extern A -

    interfaa cu

    utilizatorul

    Definiia

    structurii de

    stocare

    (schema

    intern)

    Schema

    conceptual

    Corespondena

    extern/conceptual pentru

    A

    Corespondena

    extern/conceptual pentru

    B

    Corespondena

    conceptual

    /intern

    Schema

    extern B -

    interfaa cu

    utilizatorul

  • Baze de date relaionale 14

    Fig.1.1. Arhitectura unui sistem de baze de date [DAT05]

    Nivelul conceptual (Conceptual Schema) corespunde unei reprezentri abstracte a ntregului coninut informaional al bazei de date. Schema conceptual este scris folosind un limbaj DDL conceptual i conine definiii ale coninutului informaional, care includ caracteristici suplimentare, cum ar fi constrngerile de securitate i de integritate. Proiectarea logic sau conceptual a bazei de date reprezint responsabilitatea administratorului de date (DA Data Administrator). Administratorul de date (numit i administratorul ntreprinderii) este persoana care nelege datele i necesitile ntreprinderii referitoare la ele. Are ca sarcin de a decide ce date trebuie stocate n baza de date i de a stabili regulile de ntreinere i de tratare a acestor date, dup ce sunt stocate.

    1.3. SISTEMUL DE GESTIUNE AL BAZEI DE DATE (SGBD) Sistemul de gestiune al bazei de date (DBMS - Database Management System) este un ansamblu de programe (produs software) care permite definirea, actualizarea i consultarea datelor din baza de date. Sistemul de gestiune al bazei de date trateaz accesul la baza de date dup urmtorul algoritm: Pasul 1. Utilizatorul lanseaz o cerere de acces, folosind un sublimbaj de date (de

    regul SQL) Pasul 2. Sistemul SGBD accept cererea i o analizeaz Pasul 3. SGBD-ul analizeaz pe rnd schema extern, corespondena extern-

    conceptual, schema conceptual, corespondena conceptual-intern i definiia structurii de stocare

    Pasul 4. SGBD-ul execut operaiile necesare n baza de date stocat. Obiectivele unui SGBD:

    Independena fizic. SGBD-ul are ca obiectiv central asigurarea independenei dintre structurile de stocare a datelor i structurile de date din lumea real, adic dintre schema intern i schema conceptual.

  • Baze de date relaionale 15

    Cele dou scheme descriu aceleai date, dar la nivele diferite. Independena fizic d posibilitatea modificrii schemei interne fr a modifica schema conceptual, innd cont doar de criterii de performan i flexibilitate a accesului.

    Independena logic este un obiectiv important i reprezint

    posibilitatea de a modifica schema extern fr a modifica schema conceptual. Asigur deasemenea independena ntre utilizatori, fiecare avnd o anumit viziune asupra bazei de date. Avantajele independenei logice sunt urmtoarele:

    - permite fiecrui grup de utilizatori s vad datele aa cum i le doresc;

    - permite evoluia schemei externe a unui grup de utilizatori fr a modifica schema conceptual;

    - permite evoluia unei scheme externe, fr a afecta celelalte scheme externe.

    n rezumat este posibil de a aduga / terge atribute, de a aduga / terge asociaii, de a aduga / terge entiti, n schemele externe, dar i n schema conceptual, fr a modifica cea mai mare parte a aplicaiilor. Partajabilitatea datelor obiectivul este de a permite ca aplicaiile s

    partajeze datele din baza de date n timp i simultan. O aplicaie poate folosi date ca i cum ar fi singura care le utilizeaz, fr a ti c o alt aplicaie, concurent, le poate modifica.

    Integritatea i coerena datelor obiectivul este ca informaiile s

    respecte restriciile de integritate definite. Conceptul de integritate a datelor este relativ la calitatea informaiei nregistrate. Constrngerile de integritate sunt specificate n definirea schemei bazei de date. Acestea sunt reguli care precizeaz valorile permise pentru anumite date, eventual n funcie de alte date, apartenena la un anumit domeniu, la un anumit tip de date, sau pot fi constrngeri refereniale, etc. Se asigur n acest mod coerena bazei de date

    Manipularea datelor de utilizatorii finali are ca obiectiv utilizarea de

    ctre nespecialiti a unor limbaje ct mai apropiate de limbajul natural (limbaje neprocedurale) care s permit exploatarea cu uurin a bazei de date i efectuarea interogrilor fr a apreciza algoritmul de acces.

    Funciile unui SGBD:

  • Baze de date relaionale 16

    Definirea datelor SGBD-ul accept definiiile datelor (schemele externe, schema conceptual, schema intern i toate corespondenele asociate) n format surs i le transform n format obiect. Pentru aceasta exist o component procesor sau compilator DDL (Data Definition Language) pentru fiecare dintre limbajele de definire a datelor. Dicionarul de date (Data Dictionnary) este o adevrat baz de date pentru sistem i conine date despre date (numite i metadate). Metabaza de date sau dicionarul de date este organizat sub form de baz de date i conine definiii ale obiectelor din sistem, diverse scheme i corespondene (externe, conceptuale) precum i restriciile de securitate i integritate.

    Optimizarea i execuia cererile DML vor fi prelucrate de optimizator pentru a realiza o implementare eficient a cererii. Cererile optimizate sunt executate apoi sub controlul unui program numit manager de execuie.

    Gestiunea tranzaciilor tranzacia este o funcie care realizeaz trecerea

    unei baze de date dintr-o stare S1 ntr-o stare S2. Un sistem de gestiune a bazelor de date trebuie s asigure trei proprieti pentru aceast funcie:

    - atomicitatea tranzaciei (Transaction Atomicity) este proprietatea ca o tranzacie s fie executat n totalitate sau deloc;

    - corectitudinea tranzaciilor (Transaction Correctness) este proprietatea de respectare a coerenei bazei de date la sfritul execuiei tranzaciei;

    - izolarea tranzaciilor (Transaction Isolation) este proprietatea tranzaciei de a nu lsa vizibile modificrile produse nainte de sfritul tranzaciei.

    Securitatea i confidenialitatea datelor presupune existena unor

    proceduri de identificare i autorizare a utilizatorilor pentru a proteja datele de un acces neautorizat sau ru intenionat. Acestea constituie limbajul de control al datelor (DCL Data Control Language). Cererile utilizatorilor sunt monitorizate pentru a depista i respinge orice ncercare de nclcare a constrngerilor de securitate.

  • Baze de date relaionale 17

    Scheme i

    corespondene-

    surs

    Cereri DML

    planificate

    Cereri DML

    neplanificate (ad-hoc)

    Procesoare DDL Procesoare

    DML

    Procesorul

    limbajului de

    interogare

    Cereri

    compilate

    Scheme i

    corespondene

    surs i obiect

    Optimizator

    Cereri

    optimizate

    Manager de

    execuie

    Metadate

    Date

    Metadate (dicionar de date)

    Baza de date

    Impunerea

    constrngerilor de

    securitate i

    integritate

  • Baze de date relaionale 18

    Fig.1.2. SGBD - Funciile i componentele principale [DAT05]

    Manipularea datelor - presupune instrumente i mecanisme ce permit comunicarea: baz de date - utilizatori. SGBD-ul are o component procesor sau compilator DML (DML Data Manipulation Language) care permite specificarea operaiilor de introducere, actualizare, tergere i interogare a datelor din baza de date. Cererile DML pot fi planificate (interogri prevzute anterior) i neplanificate (interogri ad-hoc). Interfeele sunt alte forme de comunicare care permit SGBD-ului s transmit date ctre alte limbaje de programare (Pascal, Java, C++, Cobol etc.). Aceste interfee permit accesul i manipularea datelor dintr-o baz de date plecnd de la un program scris ntr-un limbaj de programare clasic (procedural).

    Refacerea datelor i concurena presupune existena n sistem a unor

    componente software care s permit controlul refacerii bazei de date dup incidente, precum i controlul accesului concurent la date. Aceste mecanisme sunt bazate pe nregistrarea operaiunilor realizate asupra bazei de date i reexecutarea lor automat n caz de incident. Cererile de acces simultane sunt nregistrate ntr-un fir de ateptare i sunt deservite ntr-o anumit ordine.

    Transformarea datelor (Data mapping) este o funcie care permite

    trecerea datelor din formatul corespunztor unui nivel n formatul altui nivel. Deoarece exist trei niveluri (extern, conceptual i intern) vor exista dou niveluri de transformare:

    - transformarea conceptual intern permite trecerea datelor din formatul conceptual n formatul intern i reciproc;

    - transformarea extern - conceptual permite trecerea datelor din formatul conceptual n formatul extern i reciproc;

    n sintez, scopul general al Sistemului de gestiune a bazelor de date este de a furniza interfaa cu utilizatorul pentru sistemul de baze de date. Interfaa cu utilizatorul se afl la nivel extern i poate fi definit ca o grani a sistemului, dincolo de care totul este invizibil pentru utilizator. 1.4. ARHITECTURA FUNCIONAL A SISTEMULUI DE

    GESTIUNE AL BAZEI DE DATE

  • Baze de date relaionale 19

    Arhitectura funcional clasic a sistemelor de gestiune a bazelor de date integreaz cele trei niveluri:

    nivelul intern (baza de date fizic) nivelul conceptual (schema conceptual) nivelul extern (vizualizarea).

    Arhitectura este articulat pe dicionarul datelor i cuprinde dou pri:

    un ansamblu de module (numite procesoare) care permite descrierea datelor i deci constituirea dicionarului datelor

    o parte care asigur manipularea datelor, adic interogarea i actualizarea bazei de date.

    n fiecare din pri se regsesc cele trei niveluri intern, conceptual i extern. Georges Gardarin propune n *GAR03+ o arhitectur funcional de referin apropiat de arhitectura sistemelor de gestiune a bazelor de date actuale, bazat pe dou niveluri: schema i vizualizrile. Schema corespunde integrrii schemelor intern i conceptual, iar vizualizarea este o schem extern. Din punct de vedere al descrierii datelor, un SGBD gestioneaz un dicionar de date, numit i metabaza de date, care este organizat ca o baz de date care descrie alte baze. Dicionarul de date este alimentat prin comenzi de definire a schemei (CREATE ENTITY, CREATE RELATIONSHIP, CREATE INDEX) i prin comenzi de definire a vizualizrilor (DEFINE VIEW). Aceste comenzi sunt analizate i tratate de un procesor numit analizor, mai exact de partea procesorului ce trateaz limbajul de descriere a datelor. Din punct de vedere al manipulrii datelor, cererile (de exemplu: APPEND, MODIFY, DELETE ) sunt tratate de analizorul de cereri, care realizeaz analiza sintactic (conform gramaticii) i analiza semantic (conform vizualizrii referite sau schemei) i le traduce n format intern. O cerere n format intern care se refer la o vizualizare este tradus n una sau mai multe cereri care fac referin la obiecte ce exist n baza de date. Aceast funcie este realizat de ctre un procesor-translator numit controlor de cereri, care modific cererile i n plus asigur controlul drepturilor de acces (autorizeaz citirea / scrierea unui obiect) i controlul integritii n cazul actualizrilor. Controlul integritii const n verificarea c baza de date nu a fost poluat n timpul actualizrii, adic regulile de coeren a datelor se verific i dup actualizare.

  • Baze de date relaionale 20

    Fig.1.3. Arhitectura unui SGBD [GAR03] Optimizatorul de cereri este un procesor cheie al sistemului de gestiune al bazei de date. Are ca rol esenial elaborarea unui plan de acces optimizat pentru tratarea cererilor. Acest procesor descompune cererea n operaii de acces elementare (de exemplu: selectare de index, citire articol,...) i stabilete o ordine de execuie optim sau aproape de optim pentru aceste operaii. Procesorul alege i metodele de acces care vor fi utilizate. Pentru a efectua cea mai bun alegere, optimizatorul se bazeaz pe modele de cost care permit evaluarea costului unui plan de acces nainte de execuia sa. Rezultatul optimizrii (planul de acces optimizat) poate fi salvat n memorie pentru execuii multiple ulterioare sau executat direct i apoi distrus. Executorul este un procesor care are rolul de a executa planul de acces ales i elaborat de optimizator. El se bazeaz pe metodele de acces care permit accesul la fiiere prin intermediul indecilor i / sau legturilor. La acest nivel este gestionat controlul accesului concurent i atomicitatea tranzaciilor.

    Analizor

    Controlor

    Optimizor

    Executor

    BD

    Dicionarul

    datelor

    (metabaza)

    Analiza sintactic

    Analiza semnatic

    Gestiunea schemelor Modificarea cererilor

    Controlul integritii

    Controlul automatizrii

    Execuia planului

    Metode de acces

    Controlul concurenei

    Atomicitatea tranzaciilor

    Optimizare

    Elaborarea planului

  • Baze de date relaionale 21

    1.5. ARHITECTURA CLIENT - SERVER Scopul general al unui sistem de gestiune de baze de date este de a asigura dezvoltarea i execuia aplicaiilor pentru baze de date. Dup apariia sistemelor distribuite (Distributed Database System), arhitecturile operaionale care s-au impus au fost arhitecturile client server. Arhitectura client server a fost proiectat de o echip din cadrul ANSI/X3/SPARC, numit DAFTG (Datbase Arhitecture Framework Task Group). Aceast arhitectur, utilizat la sfritul anilor 80 de mai muli constructori de sisteme de gestiune de baze de date, poate fi privit ca avnd dou pri: un server (numit i back-end) i un set de clieni (numii i front-end) [DAT05]. Arhitectura client server (Fig.1.4.) include nucleul unui sistem de gestiune de baze de date numit DMCS (Description Manipulation snd Control Sub-system), care funcioneaz n mod server [GAR03]. Limbajul DL (Data Language) este limbajul standard de acces la SGBD.

    Fig.1.4. Arhitectura client - server Serverul este sistemul de gestiune al bazei de date, care asigur funciile prezentate n paragraful 1.3. n acest context noiunea de server reprezint doar o alt denumire a sistemului de gestiune al bazei de date.

    Aplicaii

    SGBD

    Utilizatori finali

    Clieni

    Server

    Baza de date

  • Baze de date relaionale 22

    Clienii sunt diverse programe de aplicaii, furnizate de realizatorul SGBD-ului sau dezvoltate de utilizatori. Din punct de vedere al serverului, nu exist nicio diferen ntre aplicaiile scrise de utilizator i cele ncorporate toate folosesc aceeai interfa cu serverul (interfaa la nivel extern).

    Fig.1.5. Un calculator server i mai multe calculatoare client Sistem de baze de date centralizat multiutilizator

    (Centralized Database System - Multiuser)

    Aplicaie

    client

    Aplicaie

    client

    Reea de comunicaii

    Aplicaie

    client

    BD

    Server SGBD

  • Baze de date relaionale 23

    Aplicaiile client pot fi executate pe staii diferite, conectate printr-o reea de comunicaie cu staia pe care ruleaz serverul (Fig.1.5.). Aceast arhitectur permite o prelucrare distribuit a datelor i astfel, o configurare a sistemului adaptat cerinelor de calcul particulare. Serverul bazei de date poate fi un sistem puternic, iar fiecare client este o staie personal cu o putere de calcul adecvat aplicaiei executate *ION04+. Un sistem de baze de date distribuit (Distributed Database System) poate avea att datele ct i sistemul de gestiune al bazei de date, distribuite pe mai multe staii interconectate printr-o reea de comunicaie. Un astfel de sistem poate fi reprezentat asemntor prin prisma structurrii client-server (Fig.1.6.).

    Fig.1.6. Sistem de baze de date distribuit [ION04]

    Aplicaie

    client

    Aplicaie

    client

    Reea de comunicaii

    Aplicaie

    client

    BD

    Server

    SGBD

    BD

    SGBD

    Server

  • Baze de date relaionale 24

    Sistemul software care gestioneaz o astfel de baz de date se numete sistem de gestiune al bazei de date distribuite SGBDD (Distributed Database Management System DDBMS). Aplicaiile client ruleaz pe alte staii din reea i solicit servicii de la sistemul de gestiune distribuit. Dintre avantajele sistemelor de baze de date distribuite amintim.

    creterea capacitii de stocare i prelucrare a datelor creterea disponibilitii i a partajrii datelor.

    Sistemele de baze de date distribuite sunt sisteme cu o complexitate crescut, care trebuie s asigure o cerin important - administrarea transparent a datelor. Transparena se refer la capacitatea unui sistem distribuit de a ascunde detaliile de implementare, astfel nct utilizatorii s poat accesa datele fr a cunoate exact modul de amplasare, replicare sau comunicare a datelor [ION04]. 1.6. MODELE DE BAZE DE DATE Un model de date reprezint o colecie integrat de concepte, utilizate n descrierea datelor, relaiilor dintre date i constrngerilor asupra datelor. Tipologia SGBD-urilor este n general funcie de tipurile de structuri ale datelor pe care le suport. Dintre modelele cele mai des ntlnite amintim *ION04+: modelul ierarhic modelul reea modelul relaional modelul orientat-obiect modelul obiect relaional Modelul ierarhic (Hierarchical Model) a fost primul model folosit pentru dezvoltarea bazelor de date. Cea mai cunoscut realizare de SGBD ierarhic este sistemul IMS (Information Management System) dezvoltat de firma IBM n anii 60, n cadrul programului Apollo. Modelul permite reprezentarea claselor sau ansamblelor de obiecte printr-o structur ierarhic de nregistrri. Relaiile de tip "tat-fiu" ntre clase sunt de tip 1:N. Ansamblul claselor se constituie ntr-un arbore direcionat n care nodurile sunt tipurile de nregistrri, iar arcele sunt tipurile de legturi. Modelul reea (Network Model) utilizeaz o structur de graf pentru definirea schemei conceptuale a bazei de date. A aprut dup modelul ierarhic i a fost standardizat n 1971 de o comisie DBTG (Database Task Group). Nodurile grafului

  • Baze de date relaionale 25

    sunt tipurile de entiti, iar muchiile reprezint legturile dintre tipurile de entiti. Relaiile sunt de tipul M:N i se reprezint fr duplicarea nregistrrilor, fiecare nregistrare putnd fi referit de mai multe nregistrri. Acest model este n prezent rar folosit pentru baze de date generale care implic operaii de interogare. Aplicarea modelului reea se ntlnete n bazele de date grafice utilizate n modelarea realitii virtuale. Modelul relaional (Relational Model) premite vizualizarea unei baze de date ca un ansamblu de tabele bidimensionale. Modelul se bazeaz pe noiunea de relaie din matematic, care corespunde unei mulimi de entiti de acelai tip. Limbajele relaionale de manipulare a datelor sunt limbaje neprocedurale utilizatorul, de exemplu, formuleaz interogarea fr s indice procedura (algoritmul) de rezolvare. SGBD-urile relaionale ofer un limbaj de programare unanim recunoscut i acceptat, limbajul SQL, bazat pe algebra relaional. Pentru limbajul SQL au fost emise mai multe standarde de ctre International Standardization Office (ISO). Modelul orientat-obiect (Object Model) este un concept unificator n informatic, fiind aplicabil n programare, n proiectare hardware-ului, a bazelor de date, etc. Sistemele de baze de date orientate obiect se bazeaz pe limbajele de programare orientate obiect. Au o utilizare limitat, mult mai redus dect cea a sistemelor de baze de date relaionale. Pentru bazele de date orientate obiect exist un limbaj standard standard de interogare OQL (Object Query Language) propus de ODMG (Object Database Management Group). Modelul obiect-relaional (Object-Relational Model) este considerat urmtorul mare val n dezvoltarea i ntreinerea bazelor de date. Construcia se poate realiza dezvoltnd sistemul relaional prin adugarea caracteristicilor obiectuale necesare sau pornind de la un sistem orientat obiect i adugnd caracteristicile relaionale. n general, dezvoltarea sistemelor de gestiune a bazelor de date obiect-relaionale (SGBDOR) se realizeaz prin extinderea sistemelor relaionale, gradat, prin adugare de caracteristici ale modelului obiect. Aceasta asigur continuarea aplicaiilor relaionale existente n noile versiuni de sisteme SGBDOR, ceea ce permite productorilor s-i pstreze clienii i domeniile de utilizare. Mari productori de sisteme de gestiune (Oracle, Informix, IBM) au extins n acest mod sistemele lor relaionale pentru a deveni sisteme obiect-relaionale. Standardele n domeniul sistemelor de gestiune a bazelor de date obiect-relaionale sunt extensii ale standardului SQL. Versiunea din anul 1999, denumit SQL3, conine extensii de orientare spre obiecte a limbajului SQL.

  • Baze de date relaionale 26

    1.7. MODELUL ENTITATE ASOCIERE (E-A) n literatura de specialitate se ntlnete i denumirea entitate-relaie, dar datorit confuziilor ce pot apare cu conceptul de relaie vom folosi denumirea entitate asociere. Modelul Entitate Asociere (Entity-Relationship Model), introdus n 1976 de Peter Chen, este un model conceptual care definete mulimile de entiti i asocierile (legturile) dintre ele. Entitatea este ceva ce poate fi identificat ca distinct. O entitate se refer la un aspect al realitii obiective i poate reprezenta un obiect fizic, o activitate, un concept, etc. Atribut - o proprietate care descrie un anumit aspect al unei entiti. O entitate se difereniaz de alte entiti printr-un ansamblu de atribute care permit descrierea precis a acesteia. Atributele prin care este descris o entitate se aleg astfel nct s fie relevante relativ la domeniul de interes pentru care se definete modelul respectiv. Tip de entitate - toate entitile similare, care pot fi descrise prin aceleai atribute, aparin unui tip de entitate. Mulime de entiti colecia tuturor entitilor de acelai tip n proiectarea bazelor de date exist dou tipuri de entiti: entiti tari (puternice, normale) i entiti slabe (dependente). Entitatea tare are o existen proprie n cadrul modelului, n timp ce entitatea slab nu poate exista dect dac exist o entitate tare cu care s fie asociat. Asocierea este o coresponden (corelaie, legtur) ntre entiti din dou sau mai multe mulimi de entiti. Gradul unei asocieri este dat de numrul de mulimi de entiti asociate. Vom presupune n continuare, pentru simplitate, c asocierile au gradul 2. Considerm dou mulimi de entiti E1 i E2. Asocierile de gradul 2 pot fi de trei categorii:

    asociere 1:1 (one-to-one) unei entiti din E1 i corespunde o singur entitate din E2 i reciproc (relaie de tip so soie, mai exact cstoria monogam)

    asociere 1:N (one-to-many) unei entiti din E1 i corespund una sau mai multe entiti din E2, dar fiecrei entiti din E2 i corespunde o singur entitate din E1 (relaie de tip tat fiu)

  • Baze de date relaionale 27

    asociere M:N (many-to-many) unei entiti din E1 i corespund una sau mai multe entiti din E2 i reciproc (relaie de tip client produs, adic un client poate cumpra mai multe produse i un produs poate fi cumprat de mai muli clieni)

    Diagrama entitate-asociere prezint modelul entitate-asociere prin mulimile de entiti i asocierile dintre acestea. n literatura de specialitate se propun mai multe variante de notaii pentru diagrama entitate-asociere (Chen, Ross, LBMS, etc.). Una dintre cele mai folosite este redat n Fig.1.7.

    Fig.1.7. Reprezentarea diagramei entitate-asociere

    Exemplificm construcia diagramei entitate-asociere pentru modelarea activitii didactice i de cercetare pe baz de proiecte dintr-o facultate (Fig.1.8.). Este un model simplificat n care se consider patru tipuri de entiti: Facultate, Cadru didactic, Proiect, Curs.

    E1 A E2 1 N

    entitate tare

    entitate slab

    atribut

    asociere 1:N

    ntre 2 tipuri

    de entiti

  • Baze de date relaionale 28

    Asocierea Facultate-Cadru didactic este de tipul 1:N, deoarece ntr-o facultate sunt mai multe cadre didactice, iar un cadru didactic aparine unei singure faculti. Asocierea Cadru didactic-Proiect este de tipul M:N, deoarece la un proiect de cercetare pe baz de contract lucreaz mai multe cadre didactice i fiecare cadru didactic poate lucra la mai multe proiecte. Asocierea Cadru didactic-Curs este de tipul 1:N, deoarece un cadru didactic are n norma didactic mai multe cursuri i fiecare curs are un singur cadru didactic titular. n modelul prezentat asocierile sunt reprezentate prin verbele: cuprinde, pred, lucreaz: - facultatea cuprinde mai multe cadre didactice - un cadru didactic pred mai multe cursuri - un cadru didactic lucreaz la mai multe proiecte de cercetare

    Fig.1.8. Exemplu de diagram E-A

    1.8. BAZ DE DATE BANC DE DATE Exist n literatura de specialitate mai multe abordri ale celor dou concepte. Modul lor de tratare este departe de a fi unitar. n unele lucrri se consider c banca de date este format din:

    Baza de date

    nume buget nume salariu

    Facultate Cadru didactic

    Curs Proiect

    denumir

    e

    program

    studiu

    nume buget

    1 N

    1

    N N

    M

    cuprinde

    pred lucreaz

  • Baze de date relaionale 29

    Sistemul de gestiune al bazei de date (SGBD) Ali autori extind noiunea de banc de date i consider banca de date format din :

    Baza de date Sistemul de gestiune al bazei de date (SGBD) Hardware ul necesar funcionrii sistemului Programele de aplicaii Utilizatorii

    n cartea Lart des bases de donnes, autorii S.M. Miranda, J.M. Busta fac o distincie clar ntre cele dou concepte *MIR88+: Baza de date conine date primare care sunt exploatate cu ajutorul unui SGBD. n cazul unei interogri, sistemul de gestiune al bazei de date furnizeaz direct rspunsul. Banca de date date conine date refereniale i accesul este asigurat cu ajutorul unui sistem documentar (SD). Sistemul documentar permite o direcionare ctre un text (carte, articol, referin web,...) i dup consultare se obine rspunsul la interogarea formulat. Exemplul prezentat n lucrarea mai sus citat clarific cele dou abordri: Considerm o colecie de date care conine informaii despre preedinii statelor lumii. Printre atributele care caracterizeaz tipul de entitate preedinte avem atributul stare de sntate , care poate lua mai multe valori, printre care {...., nebun, ...}. Dac formulm interogarea:

    Care a fost starea de sntate a preedintelui Wilson (SUA) ntre 1914-1918 ?

    Rspunsul dat de banca de date va fi de genul: Istoria contemporan a SUA, pag. 152, ed. 1980, iar rspunsul efectiv se obine n urma consultrii lucrrii indicate. n cazul unei baze de date rspunsul va fi obinut direct pe baza unei interogri (formulat ntr-un limbaj neprocedural) care va da valoarea atributului stare de sntate = nebun.

  • Baze de date relaionale 30

    1.9. SCURT ISTORIE A BAZELOR DE DATE 1961 - apariia sistemului IDS (Integrated Data Storage) al firmei General Electric. Terminologia utilizat (tipul record i tipul set) va sta la baza modelului reea dezvoltat la "Conference On DAta SYstems and Languages Data Base Task Group" (CODASYL DBTG). 1965-1970 - dezvoltarea sistemelor de gestiune a fiierelor generalizate. IBM dezvolt modelul ierarhic i sistemul IMS (Information Management System). n acceasi perioad apare IMS DB/DC (DataBase/DataCom) care suport modelul reea. n anii 70, domeniul bazelor de date i sistemelor de gestiune a bazelor de date se dezvolt foarte mult, ajungnd s fie disciplin universitar i de cercetare. Apar numeroase produse comerciale care implementeaz propunerile raportului CODASYL DBTG: ISD II (HoneyWell), DMS1100 (UNIVAC), DMS II (Burroughs), etc. 1970 - apare modelul relaional de date, anunat de E.F.Codd n articolul A Relational Model of Data for Large Shared Databanks, publict n CACM, vol. 13, no.6, 1970. 1972 prima conferin internaional organizat de ACM SIGMOD (Association of Computing Machinery, Special Interest Group on Management Of Data). 1975 - prima conferin internaional VLDB (Very Large Data Base); publicarea raportului ANSI-SPARC. 1976 - publicarea modelului Entitate Asociere de P.P.Chen n articolul The Entity-Relationship Data Model: Toward a Unified View of Data, aprut n ACM-TODS, vol.1, no.1, 1976. 1975 - 1980 - dezvoltarea sistemelor relaionale experimentale: SYSTEM-R (IBM) i INGRES (Berkeley, University of California). 1980 - .... apariia i comercializarea a numeroase SGBD-uri relaionale ce au nlocuit SGBD-urile ierarhice i reea. SGBD-urile pot fi utilizate pe microcalculatoare i se realizeaz sisteme din generaia a patra cu instrumente i interfee multiple. 1990 - .... se dezvolt numeroase produse a cror complexitate crete, la un pre tot mai sczut: PowerBuilder (SYSBASE), Oracle Developer, VB (Microsoft), etc. Se dezvolt modelul client-server, ce se folosete n tot mai multe aplicaii economice. Se dezvolt i produse sotftware ca Exce/, Access (Microsoft) pentru scop personal de o complexitate mai sczut.

  • Baze de date relaionale 31

    1990-1995 - apar baze de date pentru Internet. Sunt utilizate conceptele client-server i astfel complexitatea Internet-ului crete exponenial. 2000 - pentru aplicaiile pe Internet apar o serie de instrumente cum ar fi Active Server Pages, Java Servlets, JDBC, Enterprise Java Beans, ColdFusion, Dream Weaver, Oracle Developer 2000, Apache, MySQL. Se dezvolt procesarea tranzaciilor online (OLTP) precum i procesarea analitic de tip OLAP. Dup 2000 - se dezvolt aplicaii pe arhitectura client-server pentru PDA-uri, tranzacii cu POS-uri, telefoane mobile. Companiile cele mai reprezentative din domeniu rmn: IBM, Microsoft i Oracle.

    S ne reamintim... DATA - nregistrarea unei observaii, obiect, fenomen, imagine, sunet sau text, ntr-o form convenabil unei prelucrri, interpretri sau transmiteri prin mijloacele informaticii. Datele reprezint aspecte elementare nesupuse unei prelucrri i neevaluate din punct de vedere al utilitii. INFORMAIA - semnificaia ce poate fi ataat sau poate fi dedus dintr-un ansamblu de date pe baza corelaiilor dintre acestea, avnd un scop bine determinat, de satisfacere a cerinelor utilizatorilor. BAZA DE DATE (Database) un ansamblu structurat de colecii de date operaionale nregistrate pe suport adresabil, aflate n interdependen logic, mpreun cu descrierea datelor i a relaiilor dintre ele i care sunt prelucrate n aplicaiile informatice ale unei organizaii. Baza de date permite operaii de introducere, tergere, actualizare i interogare a datelor. BAZA DE DATE este un ansamblu de date:

    structurate; coerente, adic exist legturi (interdependene) logice ntre

    diferitele colecii ce alctuiesc baza de date; persistente, adic datele rmn memorate pe suport

    magentic, independent de execuia programelor de aplicaii, fiind pstrate pentru o anumit perioad de timp;

    neredundante - condiia de neredundan este n general nlocuit de o condiie mai slab: redundan minim i controlat n scopul de a mri viteza de acces la date;

    independente de programul de aplicaie;

  • Baze de date relaionale 32

    direct accesibile dup mai multe criterii; simultan accesibile de ctre mai muli utilizatori.

    Rezumat Procesul de organizare i prelucrare a datelor a parcurs mai multe etape, pn s-a ajuns la soluia dominant n prezent, care const n organizarea datelor n baze de date. ARHITECTURA UNUI SISTEM DE BAZE DE DATE (Database System) cuprinde:

    baza de date propriu-zis n care se memoreaz datele software-ul format din Sistemul de Gestiune al Bazei de Date

    (SGBD) i aplicaiile de baze de date (Database Application) metabaza de date - dicionarul datelor (DD), conine

    informaii despre date, structura acestora, documentaie hardware-ul utilizat utilizatorii bazei de date: administratorul bazei de date,

    programatorul de aplicaii (administratorul aplicaiei) i utilizatorii finali (nespecialiti)

    reglementrile legislative ce permit buna funcionare a sistemului.

    Cerinele minimale care se impun unei baze de date sunt:

    furnizarea n timp util a informaiilor solicitate, se refer la timpul de rspuns la o interogare efectuat;

    costuri minime de prelucrare i ntreinere a informaiei; capacitatea de a satisface, cu aceleai date necesitile

    informaionale ale unui numr mare de utilizatori; flexibilitatea - posibilitatea de adaptare la cerine noi, de a da

    rspunsuri la interogri neprevzute iniial; integrarea baza de date poate fi considerat o unificare a

    mai multor fiiere altfel diferite redundana acestor fiiere fiind parial sau total eliminat;

    asigurarea unei redundane minime i controlate a datelor rezult din cerina de integrare; meninerea a mai multor copii ale acelorai date poate fi impus de motive de ordin tehnic, ns aceast redundan minim trebuie controlat cu atenie, ceea ce presupune ca sistemul de gestiune al bazei de date s o cunoasc i s-i asume responsabilitatea de a propaga actualizrile;

  • Baze de date relaionale 33

    partajarea i sincronizarea posibilitatea de partajare i exploatare simultan a datelor de ctre mai muli utilizatori; se realizeaz astfel posibilitatea de acces concurent la date;

    confidenialitatea asigurarea securitii datelor prin mecanisme de protecie mpotriva accesului neautorizat;

    integritatea presupune existena unor proceduri de validare i recuperare a datelor dup accidente; problema integritii este de garanta (att ct este posibil) c datele din baza de date sunt corecte;

    compatibilitatea i expandabilitatea posibilitatea de valorificare a eforturilor anterioare i anticiparea nevoilor de dezvoltare;

    permisivitatea posibilitatea de ierarhizare a datelor dup criteriul frecvenei acceselor, sau reorganizarea datelor n scopul creterii performanelor bazei de date.

    Sistemul de gestiune al bazei de date (DBMS - Database Management System) este un ansamblu de programe (produs software) care permite definirea, actualizarea i consultarea datelor din baza de date. Arhitectura este articulat pe dicionarul datelor i cuprinde dou pri:

    un ansamblu de module (numite procesoare) care permite descrierea datelor i deci constituirea dicionarului datelor

    o parte care asigur manipularea datelor, adic interogarea i actualizarea bazei de date.

    Scopul general al unui sistem de gestiune de baze de date este de a asigura dezvoltarea i execuia aplicaiilor pentru baze de date. Dup apariia sistemelor distribuite (Distributed Database System), arhitecturile operaionale care s-au impus au fost arhitecturile client server.

    Un sistem de baze de date distribuit (Distributed Database System)

    poate avea att datele ct i sistemul de gestiune al bazei de date,

    distribuite pe mai multe staii interconectate printr-o reea de

    comunicaie. Un astfel de sistem poate fi reprezentat asemntor prin

    prisma structurrii client-server.

  • Baze de date relaionale 34

    Modelul relaional (Relational Model) premite vizualizarea unei baze

    de date ca un ansamblu de tabele bidimensionale. Modelul se bazeaz

    pe noiunea de relaie din matematic, care corespunde unei mulimi

    de entiti de acelai tip. Limbajele relaionale de manipulare a datelor

    sunt limbaje neprocedurale utilizatorul, de exemplu, formuleaz

    interogarea fr s indice procedura (algoritmul) de rezolvare.

    Modelul Entitate Asociere (Entity-Relationship Model), introdus n 1976 de Peter Chen, este un model conceptual care definete mulimile de entiti i asocierile (legturile) dintre ele.

    Test de evaluare a cunotinelor Ce reprezint o baze de date? Ce reprezint informaia? Care sunt principalele trasturi ale bazelor de date?

  • Baze de date relaionale 35

    Unitatea de nvare 2. BAZE DE DATE RELAIONALE

    Introducere Modelul relaional al datelor propus de E.F. Codd, a fost perfecionat n anii urmtori printr-un numr mare de rezultate teoretice i practice de C.J. Date, R. Boyce, R. Fagin, W.W. Armstrong i alii. Modelul are ca obiectiv esenial creterea independenei programelor n raport cu reprezentarea datelor.

    Competenele unitii de nvare Dup parcurgerea acestei pri studenii vor nelege urmtoarele concepte: CONCEPTE GENERALE ALE BDR RESTRICIILE DE INTEGRITATE I SECURITATEA DATELOR

    Durata medie de parcurgere a primei uniti de nvare este de 2 ore.

    [CON01], [DAT05], [DOL98], [FOT97], [GAR03], [GBD02], [ION04], [LUN95], *MEI06+, *MIR88+, *POI96+, *M92+, *VEL03+ 2.1. CONCEPTE GENERALE Modelul relaional al datelor propus de E.F. Codd, a fost perfecionat n anii urmtori printr-un numr mare de rezultate teoretice i practice de C.J. Date, R. Boyce, R. Fagin, W.W. Armstrong i alii. Modelul are ca obiectiv esenial creterea independenei programelor n raport cu reprezentarea datelor. Caracteristicile modelului relaional: datele sunt percepute de utilizatori ca tabele simplitate i precizie n definirea elementelor de baz (relaii, atribute,

    domenii) operatorii relaionali genereaz un tabel rezultat din tabelele operanzi

  • Baze de date relaionale 36

    restriciile de integritate, normalizarea relaiilor, controlul concurenei permit crearea structurii datelor i a prelucrrii lor ntr-un mod consistent i asigur integritatea i protecia acestora.

    n Tabelul 2.1. sunt prezentate elementele ce caracterizeaz modelul relaional i corespondena lor n conceptele de baz ale ingineriei software. Tabelul 2.1.

    Modelul relaional Inginerie software

    structura relaional a datelor informaie

    operatorii modelului relaional proces

    restriciile de integritate integritate

    Pentru claritatea expunerii prezentm n Tabelul 2.2. corespondenele formal - uzual - fizic dintre diferitele concepte utilizate pentru a descrie elementele de baz ale organizrii datelor n modelul relaional. Tabelul 2.2

    Formal Uzual Fizic

    relaie tabel fiier tuplu linie articol atribut coloan cmp domeniu tip de dat tip de dat

    BAZA DE DATE RELAIONAL este un ansamblu organizat de tabele (relaii), variabile n timp, mpreun cu legturile dintre ele. Fiecare tabel (relaie) reprezint un tip de entitate sau o asociere dintre dou sau mai multe tipuri de entiti. E.F.Codd formuleaz 13 reguli pentru evaluarea performanelor unui sistem de gestiune a bazelor de date relaionale (SGBDR). Aceste reguli exprim cerinele maximale ca un SGBDR s fie relaional. Condiiile minimale impuse ca un SGBD s fie relaional sunt: s implementeze modelul de date relaional prin DDL (Data Definition

    Language) i DML (Data Manipulation Language) s implementeze un limbaj de interogare relaional. Sistemul de gestiune a bazelor de date relaionale a devenit elementul software dominant utilizat azi n prelucrarea datelor, cu o cifr a vnzrilor (estimat la nceputul anilor 2000), aproximativ ntre 8 i 10 miliarde de dolari i cu o previziune a ratei de cretere de 25% pe an *CON01+.

  • Baze de date relaionale 37

    n Fig. 2.1. se prezint arhitectura funcional a unui sistem de gestiune a bazelor de date relaional. Domeniul este un ansamblu de valori care poate fi definit explicit prin enumerarea tuturor valorilor sau implicit prin precizarea proprietilor pe care le au valorile domeniului respectiv. Exemplu: D1 = {MK, ECTS, FB, CIG, IE, MN }

    100,0x,Nx|xD2 D3 = {0, 9, 19}

    domeniul D1 este definit explicit prin enumerarea programelor de studii care au n plan disciplina Baze de date;

    domeniul D2 este definit implicit prin specificarea proprietilor care pot fi luate de valorile domeniului;

    domeniul D3 este definit explicit prin enumerarea valorilor posibile (n procente) ale cotelor de TVA.

    nn11n21n21 DV,...,DVunde,V,...,V,VD...DD Fiecrui domeniu i se asociaz un atribut : iiii DAf,DA:f

  • Baze de date relaionale 38

    Fig. 2.1. Arhitectura funcional a unui SGBD relaional

    Tratarea

    cererilor

    Interfaa utilizatorului

    Gestiunea vederilor

    Integritatea semantic

    Autorizarea accesului

    Optimizarea cererilor

    Gestiunea planurilor de

    execuie

    Controlul execuiei

    Executarea operatorilor

    algebrici

    Gestiune buffer

    Mecanisme de acces

    Gestiunea accesului

    concurent

    Jurnalizarea

    Control

    Gestiunea

    accesului

    Securitate

    R

    E

    Z

    U

    L

    T

    A

    T

    E

  • Baze de date relaionale 39

    Relaia poate fi definit ca o mulime de tupluri ce aparine produsului cartezian

    n21 D...DD , astfel spus n21 D...DDR .

    Relaia se poate memora ntr-un tabel bidimensional:

    R A1 A2 ..... An t1 a11 a12 a1n t2 a21 a22 a2n ... ... ... ...

    tm am1 am2 ..... amn Liniile tabelului formeaz elementele relaiei numite i tupluri.

    Notm: tuplul i prin in2i1ii a,...,a,at .

    n modelul relaional, relaiile sunt utilizate pentru a pstra informaii despre obiectele care vor fi reprezentate n baza de date. Liniile tabelului corespund nregistrrilor individuale, iar coloanele corespund atributelor. Atributele pot aprea n orice ordine, relaia rmnnd neschimbat, adic pstrnd acelai neles. Schema relaiei (schema relaional) este un element invariant n timp i este dat de mulimea numelor atributelor corespunztoare unei relaii. Pentru fiecare atribut se precizeaz domeniul asociat.

    Notm schema unei relaii cu: nn2211 D:A,...,D:A,D:AR sau pe scurt: n21 A,...,A,AR . Schema bazei de date relaionale este dat de mulimea tuturor schemelor relaionale corespunztoare unei aplicaii, iar coninutul curent al relaiilor la un moment dat se numete baz de date relaional. Cardinalul unei relaii este dat de numrul de tupluri din relaie. Gradul unei relaii (aritatea relaiei) este dat de numrul de atribute din relaie. Relaia virtual (relaie derivat, viziune) este definit implicit pe baza altor relaii, prin intermediul unei expresii relaionale. Stabilirea efectiv a tuplurilor care compun relaia virtual se realizeaz prin evaluarea expresiei relaionale n momentul n care utilizatorul apeleaz la aceast relaie. Domenii compatibile cu reuniunea domeniile au acelai grad (aritate) i atributele corespondente iau valori n aceleai domenii.

  • Baze de date relaionale 40

    Relaia se prezint ca o mulime de tupluri. Logic, aceast mulime nu poate conine elemente identice, cu alte cuvinte, relaia nu poate avea tupluri duplicate. Necesitatea identificrii unui tuplu a condus la noiunea de cheie. Cheia unei relaii reprezint ansamblul minimal de atribute cu rol de identificare unic a tuplurilor dintr-o relaie. ntr-o relaie pot exista mai multe atribute / combinaii de atribute cu rol de identificare unic a tuplurilor, exist deci mai multe chei candidate. Dintre aceste chei candidate se alege cheia primar, celelalte devin chei secundare sau alternante. Orice relaie are cel puin o cheie. Orice cheie candidat K, pentru relaie R are dou proprieti:

    unicitate n fiecare tuplu al relaiei R, valorile cheii K identific n mod unic acel tuplu

    ireductibilitate nicio submulime a cheii K nu are proprietatea de unicitate.

    Identificarea unei chei candidat necesit cunoaterea nelesului din lumea real a atributului sau atributelor implicate, astfel nct s se poat stabili dac sunt posibile dubluri. Numai prin utilizarea acestor informaii semantice, putem fi siguri c o combinaie de atribute constituie o cheie candidat. Cheia simpl este cheia format dintr-un singur atribut, iar cheia compus este format din mai multe atribute. Domeniul primar este domeniul pe care este definit cheia primar. Cheia extern este un atribut /grup de atribute dintr-o relaie, ale crui valori sunt definite pe domeniul primar al altei relaii. Relaia primar. O relaie RP este primar, dac exist o alt relaie R, legat semantic de ea, care are drept cheie extern, cheia primar a relaiei considerate (RP). Exemple. 1. Fie relaia STUDENT [nr_matricol, nume, facultate, grupa, sectia, CNP, adresa] Atributele nr_matricol i CNP au rol de identificare unic a tuplurilor din relaie; reprezint chei candidate. Alegem drept cheie primar atributul nr_matricol, care are domeniul format din 4 caractere numerice i este mai uor de operat. Atributul CNP, format din 13 caractere numerice devine cheie secundar (alternant). 2. Se consider relaiile:

  • Baze de date relaionale 41

    PRODUSE [cod_produs, denumire, um] CONTRACTE [nr_contract, cod_produs, cod_client, data, cantitate, pret_unitar] CLIENTI [cod_client, nume, CIF, adresa, cont, tel, email]

    relaia PRODUSE are cheia primar - cod_produs; relaia CONTRACTE are cheia primar - nr_contract, iar atributele cod_produs i

    cod_client sunt chei externe ; relaia CLIENTI are cheia primar - cod_client, iar atributul CIF (cod de

    nregistrare fiscal) este cheie secundar; PRODUSE i CLIENTI sunt relaii primare.

    2.2. RESTRICIILE DE INTEGRITATE I SECURITATEA DATELOR

    A. Integritatea domeniului const din controlul sintactic i semantic al unei date oarecare i se refer la definiia tipului domeniului. De exemplu, n cazul unui domeniu definit explicit prin enumerarea valorilor, trebuie s ne asigurm c valorile atributului respectiv fac parte din mulimea enumerat. Sau, n cazul unui domeniu definit implicit, se poate verifica, de exemplu, dac numrul unei facturi aparine unui interval dat.

    B. Integritatea entitii se refer la restricii asupra cheii primare. Aceasta

    trebuie s fie unic i nenul (atributele cheii primare trebuie s fie diferite de valoarea null) .

    Comentariu [CON01] . Null reprezint valoarea unui atribut, care este necunoscut. Poate nsemna c o valoare nu este aplicabil unui anumit tuplu, sau c deocamdat nu s-a atribuit nicio valoare. Null nu este acelai lucru cu o valoare numeric egal cu zero sau cu un ir de text completat cu spaii, deoarece zero i spaiile sunt valori, pe cnd un null semnific absena unei valori. Null-urile creaz probleme de implementare, deoarece modelul relaional se bazeaz pe calculul predicatelor de ordinul nti, care reprezint o logic bivalent, unde singurele valori admise sunt adevr sau fals. Introducerea null-urilor nseamn c ar trebui s lucrm cu o logic polivalent. Codd trateaz null-urile ca parte integrant a modelului relaional, n timp ce Date consider c aceast abordare este greit i problema informaiilor lips nu este complet neleas. De remarcat, c nu toate sistemele relaionale accept null-urile.

    C. Integritatea referirii impune ca valorile cheii externe s figureze printre

    valorile cheii primare din relaia referit (relaia primar). Problema securitii datelor presupune [GBD02]:

  • Baze de date relaionale 42

    Asigurarea integritii semantice care a fost parial abordat n cadrul restriciei de integritate a domeniului.

    Asigurarea sincronizrii accesului concurent la baza de date, presupune c aciunile concurente ale utilizatorilor nu aduc prejudicii altor utilizatori.

    Asigurarea siguranei n funcionare, adic n urma unei defeciuni fizice (cdere de curent, ...) baza de date rmne n stare coerent.

    Asigurarea securitii n utilizare presupune c baza de date este manipulat de utilizatori care au drepturi de acces.

    Starea de coeren a bazei de date relaionale poate fi asigurat prin utilizarea tranzaciilor. Proprietatea de atomicitate a tranzaciei, prezentat n paragraful 1.3., presupune ca setul de operaii pe care l reprezint tranzacia s fie executat n ntregime sau deloc. Operaiile cuprinse ntr-o tranzacie nu pot fi executate parial dac una din ele eueaz celelalte sunt anulate. Astfel, o tranzacie poate fi:

    salvat (commited) toate operaiile tranzaciei au fost ncheiate cu succes, iar baza de date este actualizat cu noile modificri;

    derulat napoi (rollback) toate operaiile din respectiva tranzacie sunt anulate, iar baza de date este restaurat la starea dinaintea tranzaciei.

    Acest mod de lucru asigur starea de coeren a bazei de date.

    S ne reamintim... Cheia unei relaii reprezint ansamblul minimal de atribute cu rol de identificare unic a tuplurilor dintr-o relaie. ntr-o relaie pot exista mai multe atribute / combinaii de atribute cu rol de identificare unic a tuplurilor, exist deci mai multe chei candidate. Dintre aceste chei candidate se alege cheia primar, celelalte devin chei secundare sau alternante. Orice relaie are cel puin o cheie.

    Rezumat Caracteristicile modelului relaional: datele sunt percepute de utilizatori ca tabele simplitate i precizie n definirea elementelor de baz (relaii,

    atribute, domenii) operatorii relaionali genereaz un tabel rezultat din tabelele

    operanzi restriciile de integritate, normalizarea relaiilor, controlul

    concurenei permit crearea structurii datelor i a prelucrrii lor

  • Baze de date relaionale 43

    ntr-un mod consistent i asigur integritatea i protecia acestora. BAZA DE DATE RELAIONAL este un ansamblu organizat de tabele (relaii), variabile n timp, mpreun cu legturile dintre ele. Fiecare tabel (relaie) reprezint un tip de entitate sau o asociere dintre dou sau mai multe tipuri de entiti. E.F.Codd formuleaz 13 reguli pentru evaluarea performanelor unui sistem de gestiune a bazelor de date relaionale (SGBDR). Aceste reguli exprim cerinele maximale ca un SGBDR s fie relaional. Condiiile minimale impuse ca un SGBD s fie relaional sunt: s implementeze modelul de date relaional prin DDL (Data

    Definition Language) i DML (Data Manipulation Language) s implementeze un limbaj de interogare relaional. n modelul relaional, relaiile sunt utilizate pentru a pstra informaii despre obiectele care vor fi reprezentate n baza de date. Liniile tabelului corespund nregistrrilor individuale, iar coloanele corespund atributelor. Atributele pot aprea n orice ordine, relaia rmnnd neschimbat, adic pstrnd acelai neles. Schema relaiei (schema relaional) este un element invariant n timp i este dat de mulimea numelor atributelor corespunztoare unei relaii. Pentru fiecare atribut se precizeaz domeniul asociat. Relaia se prezint ca o mulime de tupluri. Logic, aceast mulime nu poate conine elemente identice, cu alte cuvinte, relaia nu poate avea tupluri duplicate. Necesitatea identificrii unui tuplu a condus la noiunea de cheie. Cheia unei relaii reprezint ansamblul minimal de atribute cu rol de identificare unic a tuplurilor dintr-o relaie. ntr-o relaie pot exista mai multe atribute / combinaii de atribute cu rol de identificare unic a tuplurilor, exist deci mai multe chei candidate. Dintre aceste chei candidate se alege cheia primar, celelalte devin chei secundare sau alternante. Orice relaie are cel puin o cheie. Informaiile stocate n baza de date trebuie s fie coerente, adic s corespund realitii. Restriciile de integritate minimale sunt reguli pe care trebuie s le satisfac datele din baza de date.

  • Baze de date relaionale 44

    Unitatea de nvare 3. ALGEBRA RELAIONAL

    Introducere Algebra relaional (relational algebra), introdus de Codd n 1970, definete cadrul formal al limbajelor relaionale pentru baze de date. Algebra relaional introduce o colecie de operatori algebrici care se aplic relaiilor (tabelelor). Fiecare operaie din algebra relaional are drept operanzi una sau mai multe relaii, iar rezultatul este tot o relaie. Aceast uniformitate (proprietatea algebric de nchidere) permite aplicarea de combinaii de operatori relaiilor.

    Competenele unitii de nvare Dup parcurgerea acestei pri studenii vor nelege urmtoarele concepte: OPERATORII ALGEBREI RELAIONALE OPERAII DE CALCUL

    Durata medie de parcurgere a primei uniti de nvare este de 2 ore.

    [DAT05], [DOL98], [FOT97], [FOT01], *ION04+, *MEI06+, *POI96+, *M92+ Interogarea (query) este operaia prin care se obin datele dorite dintr-o baz de date, selectate conform unor criterii. Deoarece aceast operaie este cea mai important operaie, limbajele de manipulare a datelor sunt denumite i limbaje de interogare. Pentru formularea conceptual a interogrilor n bazele de date relaionale s-au dezvoltat dou limbaje abstracte de interogare: algebra relaional i calculul relaional.

  • Baze de date relaionale 45

    Algebra relaional (relational algebra), introdus de Codd n 1970, definete cadrul formal al limbajelor relaionale pentru baze de date. Algebra relaional introduce o colecie de operatori algebrici care se aplic relaiilor (tabelelor). Fiecare operaie din algebra relaional are drept operanzi una sau mai multe relaii, iar rezultatul este tot o relaie. Aceast uniformitate (proprietatea algebric de nchidere) permite aplicarea de combinaii de operatori relaiilor. Prin analogie cu un compilator care, plecnd de la un program surs produce un program executabil, rezultatul compilrii unei interogri (cereri) de ctre un SGBD relaional este o expresie algebric care va fi evaluat. n cadrul modelului relaional se consider limbaje relaionale complete numai acele limbaje de interogare care permit implementarea tuturor operaiilor prevzute de unul din limbajele abstracte de interogare. Limbajele de interogare reale implementate n sistemele de baze de date relaionale sunt limbaje definite pe baza limbajelor abstracte de interogare. Cunoaterea limbajului abstract de interogare bazat pe algebra relaional este obligatorie pentru nelegerea aprofundat a modului de execuie a interogrilor. Algebra relaional conine dou tipuri de operaii:

    operaii pe mulimi: reuniunea, intersecia, diferena i produsul cartezian. Pentru a determina reuniunea, intersecia i diferena a dou relaii, acestea trebuie s fie compatibile cu reuniunea (trebuie s aib acelai numr de atribute i atributele corespondente s fie definite pe domenii compatibile, adic s aib formatul datelor identic).

    operaii relaionale: selecia, proiecia, jonciunea i diviziunea. Operaii de baz - reprezint un ansamblu minimal de operaii, n sensul c niciuna din operaii nu poate fi exprimat ca o combinaie a celorlalte operaii. Pentru algebra relaional exist mai multe ansambluri minimale. n continuare prezentarea va considera ca operaii de baz: trei operaii pe mulimi: reuniunea, diferena, produsul cartezian i dou operaii relaionale unare: selecia i proiecia. Operatorii de intersecie, jonciune i diviziune pot fi obinui din cei cinci operatori de baz. Not. n definirea operatorilor algebrei relaionale vom nota cu:

    t un tuplu din relaia R t(A) subtuplu din R relativ la atributul A.

    Fiecare operator al algebrei relaionale va fi descris prin signatur. Signatura indic numrul i tipul operanzilor, precum i tipul rezultatului.

  • Baze de date relaionale 46

    3.1. OPERATORII ALGEBREI RELAIONALE 1. UNION reuniunea a dou relaii R1 i R2, compatibile cu reuniunea, este dat

    de mulimea tuplurilor care aparin fie relaiei R1, fie relaiei R2, fie ambelor relaii. Tuplurile care aparin ambelor relaii se introduc n reuniune o singur dat, adic nu se duplic.

    Signatura: Relaie x Relaie Relaie

    21213 RtsauRt|tRRR

    Exemplu.

    R1 A B

    a b c d x y

    R2 A B

    d f x y h r c d

    R3 A B

    a b c d x y d f h r

    Sintaxa: UNION (R1, R2) - rezultatul este o relaie. 2. DIFFERENCE diferena a dou relaii R1 i R2, compatibile cu reuniunea, este

    dat de mulimea tuplurilor care aparin relaiei R1 i nu aparin relaiei R2.

    R3

    R1 R2

  • Baze de date relaionale 47

    Signatura: Relaie x Relaie Relaie

    21213 RtsiRt|tRRR

    Exemplu.

    R1 A B

    a b c d x y

    R2 A B

    d f x y h r c d

    R3 A B

    a b

    Sintaxa: DIFFERENCE (R1, R2) - rezultatul este o relaie. 3. INTERSECT intersecia a dou relaii R1 i R2, compatibile cu reuniunea, este

    dat de mulimea tuplurilor care aparin att relaiei R1, ct i relaiei R2.

    Signatura: Relaie x Relaie Relaie

    21213 RtsiRt|tRRR

    _

    R3

    R1 R2

  • Baze de date relaionale 48

    Exemplu.

    R1 A B

    a b c d x y

    R2 A B

    d f x y h r c d

    R3 A B

    c d x y

    Sintaxa: INTERSECT (R1, R2) - rezultatul este o relaie. Observaie. Intersecia poate fi exprimat cu ajutorul operaiei de diferen (operaie de baz):

    RSSSRRSR 4. PRODUCT produsul cartezian a dou relaii R1 i R2, produce o nou relaie

    care are ca atribute, reuniunea atributelor din cele dou relaii (atributele comune vor fi luate separat, calificrile fiind fcute cu numele relaiei), iar fiecare element din R1 se combin (concateneaz) cu fiecare element din R2.

    Signatura: Relaie x Relaie Relaie

    221121213 RtsiRt|t,tRRR

    R3

    R1 R2

  • Baze de date relaionale 49

    Exemplu.

    R1 A B

    a b c d x y

    R2 A

    a d

    R3 R1. A B R2.A

    a b a c d a x y a a b d c d d x y d

    Sintaxa: PRODUCT (R1, R2) - rezultatul este o relaie. 5. SELECT este o operaie unar de restricie care selecteaz din tuplurile relaiei

    R, acele tupluri care satisfac o condiie specificat. Condiia este o expresie logic (predicat) specificat asupra atributelor relaiei R. Condiia poate cuprinde nume de atribute, constante, operatori logici (and, or, not), operatori aritmetici de comparare (, =, , , ).

    Signatura: Relaie x Expresie logic Relaie

    AtsiRt|tRS conditie unde: t(A) definete condiia de selecie ( este un operator aritmetic de comparare, iar un tuplu care poate fi nlocuit de un atribut sau valoarea unui atribut).

    R1 R2

    R3

  • Baze de date relaionale 50

    Exemplu.

    RS 'x'B

    R A B C

    x y z t x a z x b c u w

    S A B C

    t x a z x b

    Sintaxa: SELECT (R; condiie) - rezultatul este o relaie. Observaii.

    1. Aceast operaie nu trebuie confundat cu instruciunea SELECT, care este instruciunea general de interogare din limbajele de manipulare a datelor.

    2. n termenii limbajului de interogare SQL, operaia de selecie realizeaz o decupare pe orizontal a tabelei operand R.

    3. Cardinalul relaiei rezultat S este mai mic sau egal dect cardinalul relaiei R. Egalitatea poate apare n situaia n care condiia este adevrat pentru toate tuplurile din relaie.

    6. PROJECT - este o operaie unar de restricie prin care se selecteaz din relaia R, numai acele atribute specificate explicit n cadrul operaiei. Relaia rezultat P va avea ca atribute submulimea selectat.

    Signatura: Relaie x List atribute Relaie

    condiie

    S

    R

  • Baze de date relaionale 51

    Fie ]A,...,A,A[R n21 i n21k1 A,...,A,AA,...,A

    k1 a,...,atRP

    Exemplu.

    RP C,A

    R A B C

    x u x z x y x z x z y y x t x

    P A C

    x x z y x x z y x x

    P A C

    x x z y

    Sintaxa: PROJECT (R; lista atribute) - rezultatul este o relaie. Observaii.

    1. Dac n lista atributelor de proiecie exist o cheie a relaiei operand R, atunci relaia rezultat are toate tuplurile distincte, adic relaiile R i P vor avea acelai cardinal.

    2. Dac n lista atributelor de proiecie nu exist o cheie a relaiei operand R, atunci n relaia rezultat P pot apare tupluri duplicate care vor fi eliminate. n exemplul prezentat dup eliminarea tuplurilor duplicate din relaia intermediar P , s-a obinut relaia P care conine dou tupluri distincte.

    3. Relaia rezultat P are gradul k, dat de numrul atributelor din list. 4. n termenii limbajului de interogare SQL, operaia de proiecie realizeaz o

    decupare pe vertical a tabelei operand R.

    7. JOIN este o operaie definit pe dou relaii R1 i R2. Relaia rezultat R3 va fi construit prin concatenarea unor tupluri din R1 cu tupluri din R2 care satisfac o

    lista atribute

    P

    R

  • Baze de date relaionale 52

    anumit condiie (condiia de jonciune - ) specificat explicit n cadrul relaiei. Condiia de jonciune - este o expresie logic (predicat) specificat asupra atributelor relaiilor R1 i R2. Condiia de jonciune - poate cuprinde nume de atribute, constante, operatori logici (and, or, not), operatori aritmetici de comparare (, =, , , ).

    Signatura: Relaie x Relaie x expresie Relaie

    Fie relaiile ]B,A[R 11 i ]C,B[R 22 , unde B1 i B2 sunt atribute

    definite pe acelai domeniu. Atunci:

    2121213 BtBtsiRRt|tRRR Observaie. Jonciunea se poate exprima n funcie de operaiile de baz: produs cartezian i selecie astfel:

    2121 RRRR

    Exemplu.

    213 RRR unde : R1.A > R2.A

    R1 A B C

    a x c b y c d z g

    R2 D E A

    0 11 a 1 13 a 3 11 a 4 11 d 6 12 d 7 13 c

    R3 R1. A B C D E R2. A

    b y c 0 11 a b y c 1 13 a b y c 3 11 a d z g 0 11 a d z g 1 13 a d z g 3 11 a

    R1 R2

    R3

  • Baze de date relaionale 53

    d z g 7 13 c

    Sintaxa: THETA - JOIN (R1, R2; - expresie) - rezultatul este o relaie. n continuare se prezint patru forme ale operaiei de jonciune. 7.1. EQUI JOIN este un caz particular al lui THETA JOIN , cnd este egalitate. Exemplu.

    213 RRR unde : R1.A = R2.A

    R1 A B C

    a x c b y c d z a

    R2 D E A

    0 11 a 1 13 a 3 11 a 4 11 d 6 12 d 7 13 c

    R3 R1. A B C D E R2. A

    a x c 0 11 a a x c 1 13 a a x c 3 11 a d z a 4 11 d d z a 6 12 d

    Sintaxa: EQUI - JOIN (R1, R2; - expresie) - rezultatul este o relaie. 7.2. NATURAL JOIN este o jonciune pe egalitate (EQUI JOIN) pentru toate

    atributele cu acelai nume din cele dou relaii, urmat de o proiecie pe reuniunea atributelor celor dou relaii.

    n cazul EQUI JOIN schema relaiei rezultat conine toate atributele celor doi operanzi i rezult c n fiecare tuplu al relaiei rezultat vor exista cel puin dou valori egale. Introducerea jonciunii naturale va elimina aceast redundan.

    Schema relaiei rezultat R3 se obine prin reuniunea atributelor celor dou

    relaii R1 i R2 (atributele cu acelai nume se iau o singur dat), iar extensia relaiei R3 va conine tuplurile obinute prin concatenarea tuplurilor din R1 cu tupluri din R2, care au aceleai valori pentru atributele cu acelai nume.

    Jonciunea natural este jonciunea cea mai utilizat n practic i poate fi

    definit cu ajutorul operaiilor de baz: proiecie, selecie i produs cartezian. Dac se noteaz cu:

  • Baze de date relaionale 54

    - condiia de egalitate ntre valorile atributelor din intersecia schemelor relaiilor R1 i R2 (coloanele comune),

    atr - reuniunea atributelor celor dou scheme (atributele cu acelai nume se iau o singur dat),

    atunci:

    21atr213 RRRRR Exemple. A. Se dau relaiile: R1[A, B, C] i R2 [B, C, D]

    C.RC.RandB.RB.R 2121 atr = A, B, C, D

    R1 A B C

    a b c d b c b b f c a d

    R2 B C D

    b c d b c e a d b

    R3 A B C D

    a b c d a b c e d b c d d b c e c a d b

    B. Se dau relaiile: R1 [A, B, C] i R2 [D, E, A]

    A.RA.R 21 atr = A, B, C, D, E

    R1 A B C

    a x c b y c d z a

    R2 D E A

    0 11 a 1 13 a 3 11 a 4 11 d 6 12 d 7 13 c

    R3 A B C D E

    a x c 0 11 a x c 1 13 a x c 3 11 d z a 4 11 d z a 6 12

    Sintaxa: NATURAL - JOIN (R1, R2; atribut(e) jonciune

    *) - rezultatul este o relaie. * pentru mrirea claritii va apare atributul / atributele de jonciune.

  • Baze de date relaionale 55

    Observaie. Selecia este un caz particular de jonciune natural a unei relaii cu o relaie constant. nelegem prin relaie constant o relaie care are un singur tuplu, eventual redus la o singur valoare. 7.3. SEMI JOIN - este jonciunea dintre dou relaii R1 i R2 , urmat de o proiecie

    pe atributele relaiei R1. Semi jonciunea conserv atributele unei relaii participante la jonciune (R1). Semi jonciunea mai poate fi privit ca o generalizare a operaiei de selecie, rezultatul fiind o selecie asupra relaiei R1 , realizat pe baza valorilor din R2 ale atributului de jonciune.

    Exemplu.

    213 RRR unde : R1.A = R2.A

    R1 A B C

    a x c b y c d z a

    R2 D E A

    0 11 a 1 13 a 3 11 a 4 11 d 6 12 d 7 13 c

    R3 A B C

    a x c a x c a x c d z a d z a

    Sintaxa: SEMI - JOIN (R1, R2; - expresie) - rezultatul este o relaie. Observaie.

    Considerm jonciunea natural dintre ]B,A[R 11 i ]C,B[R 22 ,

    unde B1 i B2 sunt atributele de jonciune. Dac B1 = B2 = , atunci jonciunea corespunde produsului cartezian.

    R1 R2

    R3

  • Baze de date relaionale 56

    Dac A = C = , atunci jonciunea corespunde interseciei. Dac A = sau C = (dar nu amndou), atunci operaia este o semi-

    jonciune.

    7.4. OUTER JOIN. Jonciunea dintre dou relaii R1 i R2 poate conduce la pierdere de tupluri, dac relaiile participante la jonciune nu au proiecii identice pe atributul de jonciune, adic nu au aceleai valori n relaiile care se joncioneaz. Relaia rezultat R3 conine jonciunea natural dintre R1 i R2, la care se adaug tuplurile din R1 i R2, care nu au participat la jonciune. n aceste tupluri se va atribui valorea null pentru atributele relaiei corespondente.

    Exemplu.

    2ext13 RRR

    R1 A B C

    a x c b y c d z a

    R2 D E A

    0 11 a 1 13 a 3 11 a 4 11 d 6 12 d 7 13 c

    R3 A B C D E

    a x c 0 11 a x c 1 13 a x c 3 11 d z a 4 11 d z a 6 12 b y c null null c null null 7 13

    Observaii. n urma jonciunii naturale se pierd informaiile din tuplurile < b, y, c > din R1 i < 7, 13, c > din R2. Aceste tupluri se adaug n cazul jonciunii externe i se completeaz cu null pe atributele relaiei corespondente. Sintaxa: OUTER - JOIN (R1, R2; atribut(e) jonciune) - rezultatul este o relaie.

    R1 R2

    R3

    ext

  • Baze de date relaionale 57

    8. DIVISION - este o operaie definit pe dou relaii care au schema R1

    [A1, A2,..., An] i R2 [Ap+1, Ap+2,..., An]. Relaia rezultat 213 RRR are schema

    R3 [A1, A2,..., Ap] i este format din toate tuplurile care, concatenate cu fiecare tuplu din R2 , dau ntotdeauna un tuplu din R1.

    Notm: ATR1 = {A1, A2,..., Ap+1, Ap+2,..., An} ATR2 = {Ap+1, Ap+2,..., An}

    Definiia 1. 21 RRt dac 1122 RtRt , astfel nct

    tt1ATRATR 21 i 21ATR tt2 .

    Definiia 2. Diviziunea se poate exprima n funcie de operaiile de baz: produs cartezian, diferen i proiecie astfel:

    121ATRATRATRATR1ATRATR21 RRRRRR 212121

    Signatura: Relaie x Relaie Relaie

    Problem (Exemplu de diviziune)

    Fie relaia R1 [K, P] unde atributul K are ca valori codurile angajailor unui institut de cercetare, iar atributul P conine codurile proiectelor n derulare. Un cercettor poate lucra la unul sau mai multe proiecte. S se determine codurile angajailor angrenai simultan n proiectele P3 i P4.

    Rezolvare. Construim relaia R2 [P] care va conine dou tupluri: i . Codurile angajailor care lucreaz la proiectele P3 i P4 sunt date de rezultatul

    diviziunii 21 RR .

    R1 R2

    R1

  • Baze de date relaionale 58

    R1 K P

    17 P1 17 P2 17 P3 17 P4 29 P1 29 P3 53 P3 53 P4 80 P3

    R2 P

    P3 P4

    Calculm diviziunea conform definiiei 2: 2121 QQRR

    Pasul 1. Calculm 1ATRATR1 RQ 21

    Pasul 2. Calculm 21 RQS

    Q1 K

    17 29 53 80

    S K P

    17 P3 29 P3 53 P3 80 P3 17 P4 29 P4 53 P4 80 P4

    Pasul 3. Calculm 1RST

    Pasul 4. Calculm TQ21 ATRATR2

    T K P

    29 P4 80 P4

    Q2 K

    29 80

    Pasul 5. Calculm 2121 QQRR

  • Baze de date relaionale 59