Sunteți pe pagina 1din 71

Cristian Georgescu Mihaela Georgescu

BAZE DE DATE

CUPRINS 1. Date, informaii, cunotine.................................................3


1.1. 1.2. 1.3. 1.4. 2.1. Locul i rolul datelor n sistemul informatic .................................. 3 Locul i importana informaiei n sistemul informaional ............ 4 Evoluia organizrii datelor n sistemul informatic........................ 6 Probleme rezolvate i propuse ..................................................... 10 Noiunea de fiier ......................................................................... 11

2. Organizarea datelor n fiiere ...........................................11 3. Organizarea datelor n baze de date ................................13


3.1. Conceptul de baz de date............................................................ 13 3.2. Sistemul de gestiune a bazelor de date......................................... 24 3.3. Baze de date relaionale ............................................................... 32 3.3.1. Conceptele folosite pentru bazele de date relaionale .......... 32 3.3.2. Operatorii relaionali ............................................................ 43 3.3.3. Normalizarea bazelor de date relaionale............................. 53 3.3.3.1. Formele normale ale unei baze de date relaionale ...... 55 3.4. Modelele pentru proiectarea unei baze de date ............................ 56 3.5. Caracteristici ale sistemelor cu baze de date................................ 58 3.6. Probleme rezolvate i propuse ..................................................... 61

4. Bibliografie..........................................................................70

1.

Date, informaii, cunotine

1.1.

Locul i rolul datelor n sistemul informatic

Preluarea datelor n sistemul informatic poate ncepe din momentul i de la locul generrii lor i este condiionat direct de cerinele de informare a sistemului deservit de sistemul informatic, de necesitile de valorificare a informaiei preluate din mediul extern sistemului informatic. Datele preluate n sistemul informatic din mediul extern trebuie s fie: reprezentative, reale, complete i actuale. n utilizarea unui sistem informatic se aplic regula GIGO (Garbage In Garbage Out), care este echivalent cu enunul: pentru a furniza informaii utile, sistemul informatic trebuie alimentat cu date de bun calitate. Sistemul informatic se definete n raport cu sistemul informaional al organizaiei care cuprinde totalitatea informaiilor vehiculate n ntreprindere, la un moment dat, alturi de suporii de informaie corespunztori, circuitul informaional i prelucrrile efectuate asupra informaiilor. Atunci cnd gestionarea informaiilor n sistemul informaional se face utiliznd tehnologia informatic, sistemul se numete sistem informatic. ntr-un sistem informatic datele au un dublu rol. n primul rnd ele sunt obiect al prelucrrii (materie prim). Prelucrarea datelor ntr-un sistem informatic este un proces creator de valoare, care cuprinde: - preluarea datelor din mediul exterior i memorarea lor n memoria extern a sistemului de calcul; - manevrarea i reorganizarea datelor, prin ordonare, grupare, interclasare, selecie (filtrare), modificarea suportului de memorare, etc. - procesarea datelor, ce poate avea ca rezultat generarea de noi date, cu noi semnificaii informaionale; - analiza i evaluarea coninutului informaional al datelor; - prezentarea datelor ntr-o form care s satisfac necesitile informaionale ale utilizatorului. Din acest punct de vedere, datele se caracterizeaz prin volum i prin dinamic; att volumul datelor ct i volumul modificrilor asupra lor sunt factori determinani pentru alegerea modului de organizare a datelor. n al doilea rnd, datele sunt principala resurs a sistemului informatic, alturi de celelalte resurse: personalul specializat, echipamentele electronice de calcul i instrumentele logice (programele utilizate, metodele de analiz i proiectare, metodele i tehnicile de organizare i prelucrare a datelor). Altfel spus, principalele resurse sunt reprezentate de: hardware, software i dataware.

Valorificarea resursei de date se realizeaz prin prelucrrile efectuate cu ajutorul programelor i cu sprijinul factorului uman i al componentei hardware. Este recunoscut c celelalte trei resurse ale sistemului informatic nu au valoare efectiv, n lipsa resursei de date. Prelucrarea electronic a datelor nu trebuie s constituie un scop n sine. nlocuirea sau, uneori, dublarea activitii de nregistrare manual a datelor prin nregistrarea lor folosind tehnologia informatic este inutil dac, n urma prelucrrii electronice a datelor, nu se obin efecte suplimentare, cum ar fi: - nlturarea unor operaii manuale de prelucrare; - realizarea de prelucrri complexe n timp mai scurt sau pentru volume de date att de mari nct nu pot fi prelucrate manual; - creterea gradului de accesibilitate i de acuratee; - reducerea volumului suporilor de arhivare a datelor i creterea siguranei n stocarea i prelucrarea lor, etc. Introducerea prelucrrii automate a datelor adaug timpi noi necesari operaiilor specifice de prelucrare: proiectarea i ntreinerea sistemului informatic, preluarea datelor, validarea i corectarea erorilor aprute la preluare, prelucrri suplimentare pentru ntreinerea i asigurarea datelor. Un sistem informatic este eficient atunci cnd asigur, n aceste condiii: - diminuarea timpilor necesari operrii asupra datelor; - diminuarea semnificativ a operaiilor manuale, slab productive; - un nivel de prelucrare a datelor performat; - nlturarea barierelor generate de distanele fizice, n cadrul sistemului; - reducerea costurilor implicate de gestionarea datelor; - o mai bun valorificare a datelor, n sprijinul activitii ntregii organizaii.

1.2.

Locul i importana informaiei n sistemul informaional

Nu orice prelucrare de date genereaz informaii. O trstur a informaiei este caracterul ei relativ: ceea ce poate constitui o informaie pentru o persoan, poate s nu aib nici o semnificaie pentru alta. Mai mult, pornind de la acelai set de date, persoane diferite, prin prelucrri diferite, pot desprinde informaii diferite. Se consider c sistemul informaional al unei organizaii cuprinde ansamblul mijloacelor i procedurilor de identificare, preluare, memorare, prelucrare i difuzare a informaiei i are ca obiectiv furnizarea de informaii membrilor organizaiei, ntr-o form direct utilizabil i n timp util, asigurnd suportul informaional al activitii acestora1.

Georgescu C. - "Analiza i proiectarea sistemelor informatice", Editura Radical, Galai, 1999

Obiectivul general al dezvoltrii sistemului informaional i al perfecionrii acestuia cu ajutorul unui sistem informatic este ridicarea eficienei activitii de baz. Realizarea unui sistem informatic poate determina reorganizarea sistemului informaional care-l conine, putnd avea ca efecte: - integrarea fireasc, natural, a sistemului informatic n sistemul informaional; - perfecionarea sistemului informaional, prin ameliorarea naturii i coninutului informaiei vehiculate n sistemul informaional, mbuntirea fluxurilor de informaii, perfecionarea prelucrrilor efectuate asupra informaiei, prin modificarea naturii, locului sau a periodicitii acestora, nlturarea prelucrrilor repetate sau paralele asupra informaiilor, etc. Efectele perfecionrii sistemului informaional pot fi: - reducerea caracterului birocratic al sistemul informaional; - o mai bun alimentare cu informaii la toate nivelurile organizatorice, inclusiv la nivelul conducerii; - optimizarea prelucrrilor prin nlturarea redundanelor operaionale sau informaionale; - evitarea situaiilor de alterare, pierdere sau chiar distrugere a informaiei, etc. Obiectivul specific este asigurarea la timp a informaiilor de calitate necesare pentru activitatea de baz. Dac datele sunt informaii codificate pentru a fi memorate sau prelucrate ntrun sistem de calcul, informaia este rezultatul prelucrrii datelor n sistemul de calcul i exprimrii lor ntr-o form inteligibil pentru receptorul uman. Se poate spune c sistemul informaional lucreaz cu informaii n timp ce sistemul informatic lucreaz cu date. Mai general, informaia poate fi definit ca ansamblul de date care constituie suportul unui comportament, este comprehensibil i este utilizabil pentru ndeplinirea unei activiti, inclusiv un proces decizional1. Informaiile sunt destinate nivelurilor i punctelor de informare sau de decizie, pentru sistemul dat i, n cazul sistemelor ierarhizate, pentru nivelurile ierarhic superioare (ca suport pentru decizie) i pentru cele inferioare (n cazul descentralizrii procesului informaional-decizional). Pentru nivelurile superioare ale ierarhiei, informaia trebuie supus unui proces de rafinare, prin concentrare i sistematizare, pentru a fi furnizat ntr-o form ct mai concis i ct mai expresiv. Circulaia informaiei ctre nivelurile inferioare ale ierarhiei este practicat n organizaiile care au n vedere accesul liber la informaie pentru membrii lor. n acest caz trebuie folosite metode ct mai eficiente de diseminare a informaiei, pentru a se evita alterarea informaiei transmise, prin nvechire, trunchiere, modificare, etc. O bun soluie este utilizarea reelei de calculatoare, ca suport fizic al sistemului informatic, i folosirea unui intranet de ntreprindere, ca mediu de comunicare i gestionare a informaiei n timp real n cadrul organizaiei.
1

Fotache M. - "Baze de date relaionale", Editura Junimea, Iai, 1997

Informaia furnizat de un sistem informatic este utilizat n cadrul activitii unei organizaii n scopul cunoaterii, ca suport pentru decizie. Din acest punct de vedere, informaia poate fi definit ca volumul de date necesar pentru a reduce incertitudinea, n vederea lurii unei decizii. n societatea contemporan, informaia a devenit una dintre principalele resurse ale organizaiilor economice, sociale, culturale, politice, etc. De exemplu n economie, conform afirmaiei lui Peter Drucker, "resursa economic de baz nu mai este capitalul i nici resursele naturale, nici munca. Ea este i va fi cunoaterea.[] Valoarea este creat acum de productivitate i inovaie, amndou fiind aplicri ale cunoaterii n cadrul muncii."1 Dar cunotinele nu sunt altceva dect informaii dobndite prin experien sau nsuite prin educaie. La rndul lor, informaiile sunt reflectri ale lumii reale n contiina colectiv, n urma unui proces de acumulare i prelucrare a unor date elementare. Alvin Toffler demonstreaz importana cunoaterii n cadrul proceselor economice, concluzionnd: "ntruct reduce nevoia de materii prime, munc, timp, spaiu i capital, cunoaterea devine resursa central a economiei avansate."2 Cunoaterea se bazeaz pe informaii. Corelat cu dezvoltarea exploziv a tehnologiei informatice din ultimele decenii, este de neconceput, astzi, gestionarea informaiilor fr a utiliza metodele i instrumentele oferite de aceasta. Pentru a fi utilizate eficient, volumele mari de informaii vehiculate n economie, societate, etc. trebuie gestionate corespunztor, pstrate atta timp ct sunt necesare, prelucrate i furnizate la locul unde sunt necesare i n momentul cnd sunt solicitate.

1.3.

Evoluia organizrii datelor n sistemul informatic

Organizarea datelor n cadrul unui sistem informatic se refer la modul de agregare a datelor n structuri specifice i la legturile logice care se definesc n interiorul i ntre aceste structuri, n funcie de necesitile de prelucrare i de stocare, n scopul utilizrii eficiente a informaiei care alimenteaz sistemul informatic. Concret, organizarea datelor definete modul de structurare a datelor n colecii, precum i stabilirea legturilor ntre elementele unei colecii i ntre colecii3. n general, metodelor de organizare a datelor le sunt asociate tehnici specifice de prelucrare a acestor date, care se descriu odat cu metoda de organizare.

Peter Drucker - "Societatea postcapitalist" , Editura Image, 1999 Alvin Toffler - "Powershift - puterea n micare", Editura Antet, 1995 3 Velicanu M.,Bodea C.,Lungu I.,Ioni C.,Bdescu G. - "Sisteme de gestiune a bazelor de date", Editura Petrion, Bucureti, 2000
2

Un model de date trateaz datele n ansamblu, avnd n vedere modul de organizare a lor i modul n care vor fi utilizate n cadrul sistemului informatic. Obiectivul unui model de date este s reflecte ct mai bine lumea real, ntr-o manier adecvat reprezentrii i prelucrrii datelor folosind tehnologia informatic, astfel nct s permit sistemului informatic s furnizeze informaiile dorite. n consecin, pentru a proiecta un bun sistem informatic trebuie s se porneasc de la un bun model de date iar modelele de date nu au valoare n lipsa unor modele de prelucrri corecte. Organizarea datelor poate fi abordat sub dou aspecte: organizarea fizic a datelor i organizarea logic a datelor. Organizarea fizic a datelor definete modul de utilizare a memoriei externe pentru memorarea datelor i modalitatea de realizare a accesului la date, n memoria extern; organizarea fizic a datelor se refer la modul de organizare fizic a fiierelor n care se memoreaz datele. Organizarea logic a datelor definete modul de agregare a datelor, n funcie de coninutul lor informaional i de legturile logice dintre ele, precum i n funcie de necesitile de prelucrare a lor. Organizarea logic a datelor vizeaz criteriile de grupare a datelor i legturile logice dintre date. Modul de organizare a datelor n cadrul sistemelor informatice difer, n funcie de complexitatea acestor sisteme i este influenat de diferii factori: - volumul i dinamica datelor gestionate n sistemul informatic; - tipul de date gestionate de sistem: date statice (numerice, de tip text, elemente grafice), date multimedia (imagini, imagini animate, elemente sonore), date interconectate (hipertext sau hipermedia), etc. - complexitatea prelucrrilor efectuate asupra datelor n sistem; - gradul de mprtiere teritorial a componentelor sistemului informatic: sursele de date, resursele de prelucrare, utilizatorii informaiilor furnizate de sistem; - timpul de rspuns al sistemului informatic, sigurana n funcionare, gradul de accesibilitate al sistemului, ca indicatori ai calitii i eficienei sale, etc. n timp, s-a nregistrat o evoluie a metodelor de organizare i a tehnicilor de prelucrare a datelor datorat dezvoltrii i diversificrii mijloacelor tehnice ce pot fi utilizate ntr-un sistem informatic, cum ar fi dispozitivele de stocare a datelor (prin creterea capacitii de stocare i a vitezei de transfer, ca i prin diversificarea dispozitivelor de stocare direct adresabile) i echipamentele de preluare i de generare a datelor n diverse moduri de reprezentare (date multimedia). Un exemplu n acest sens l constituie creterea capacitii i vitezei de prelucrare a sistemului de calcul i creterea capacitii memoriei interne (operative) i a memoriei externe (de arhivare) a sistemului de calcul. Alte influene au aprut prin dezvoltarea componentelor software de baz (dezvoltarea componentei SGF a sistemelor de operare, sisteme de operare n timp real, sisteme de operare pentru reele de calculatoare, etc.), dezvoltarea componentelor software dedicate gestionrii automate a datelor (sistemele de gestiune a bazelor de date, aplicaiile pentru gestionarea foilor de calcul

electronice, etc.) i dezvoltarea i perfecionarea metodelor de realizare a unui sistem informatic prin utilizarea unor instrumente performante de proiectare (medii integrate de proiectare i dezvoltare, utilizarea unor noi metode de proiectare: proiectarea obiectual, proiectarea vizual, proiectarea distribuit). Evoluia modurilor de organizare a datelor n sistemele informatice poate fi analizat n funcie de principalii factori care au determinat-o. 1. Dezvoltarea dispozitivelor de memorie extern. Prin trecerea de la dispozitive care nu permit adresarea direct la dispozitive direct adresabile a fost posibil diversificarea modurilor de organizare fizic a fiierelor, prin trecerea de la organizarea secvenial la organizarea aleatorie, cu diferitele ei variante. 2. Evoluia componentelor software care realizeaz gestionarea datelor n fiiere. ntr-o prim etap, organizarea datelor n fiiere era gestionat, n mare msur, n cadrul programului de aplicaie; pentru definirea i utilizarea unui fiier, era necesar att descrierea structurii logice de organizare a datelor n fiier ct i a structurii fizice de memorare a datelor pe suport; n aceste condiii, modificarea structurii datelor sau a suporilor de memorare impunea modificri n program i recompilarea acestuia. Prin dezvoltarea componentei SGF a sistemului de operare, gestionarea la nivelul fizic, al suportului de memorie extern, a datelor din fiier se realizeaz, n mare msur, de ctre aceasta, n mod transparent pentru utilizator. Comenzile care se adreseaz SGF-ului pentru realizarea operaiilor cu fiierele sunt generate n cadrul programului executabil de ctre compilatorul limbajului de programare utilizat pentru definirea aplicaiei utilizator. n aceste condiii, n programul de aplicaie nu mai este necesar descrierea modului de organizare fizic a datelor pe suportul de memorie extern, ci este definit numai structura logic a datelor din fiier. Prin scoaterea descrierii nivelului fizic de organizare a fiierelor n afara codului aplicaiilor se realizeaz o independen a programelor fa de caracteristicile fizice ale organizrii datelor n fiiere (unitatea de memorie extern folosit pentru memorare, modul de realizare a alocrii suportului, modul de realizare efectiv a accesului la date, etc.); aceast independen este numit independena fizic a datelor i permite ca modificri ale configuraiei hardware de memorare a datelor s nu influeneze asupra programelor de aplicaie ce lucreaz cu datele respective. 3. Evoluia cerinelor de utilizare a aplicaiilor informatice. Dac aplicaiile informatice nu fac dect s transpun procedurile manuale de prelucrare a datelor n proceduri automate, executate cu ajutorul tehnicii de calcul, modul de organizare a datelor copie, practic, metodele de organizare a informaiei caracteristice sistemelor de prelucrare manual i mecanografic a datelor, adaptndu-le, fr prea multe modificri conceptuale, la noul specific al prelucrrii datelor cu ajutorul calculatorului electronic. Principalul element de organizare a datelor folosit, n acest caz, este fiierul. Modelul corespunztor prelucrrii manuale a informaiei este cel al fielor cu nregistrri de aceeai natur, grupate n

dosare sau dulapuri cu documente de acelai tip sau al registrului de eviden cu acelai tip de informaii, ordonate dup un anumit criteriu. Odat cu creterea complexitii aplicaiilor i a volumelor de date prelucrate, apare ca o necesitate abordarea unitar a datelor de ctre mai multe aplicaii din cadrul unui sistem informatic. Chiar dac aplicaiile sunt proiectate independent, este preferabil ca mai muli utilizatori, prin intermediul unor aplicaii diferite, s poat folosi n comun aceeai colecie de date. Pentru aceasta, datele trebuie organizate astfel nct s poat satisface cerinele de prelucrare ale fiecrui utilizator, respectiv ale fiecrei aplicaii, fr s apar o redundan a informaiei. Acest deziderat se poate realiza prin nlocuirea grupurilor de fiiere destinate unor aplicaii particulare cu un sistem complex de elemente de date a cror organizare este determinat de legturile logice intrinseci existente ntre acestea i mai puin de modul de prelucrare din cadrul fiecrei aplicaii1. Cerina de control i minimizare a redundanei n reprezentarea datelor, este numit cerin de integrare a fiierelor de date care se poate rezolva prin definirea unor legturi ntre nregistrrile fiierelor ale cror date sunt corelate logic ntre ele. Dac aceste legturi dintre date sunt definite n interiorul fiierelor, rezult fiiere cu nregistrri nlnuite, numite fiiere nlnuite sau integrate. Fiierele integrate permit realizarea mai multor fiiere logice pe baza acelorai date fizice2. Acest mod de organizare a datelor permite obinerea unor imagini diferite ale datelor memorate n fiierele integrate i reducerea riscului privind inconsistena datelor, ca urmare a reducerii redundanei lor. Se poate realiza astfel o prim form de abordare unitar a datelor n cadrul unui sistem informatic. Pentru conceperea unui model unitar al datelor, pentru ntregul sistem informatic, model care s permit satisfacerea nevoilor informaionale ale tuturor aplicaiilor din sistem, este ns necesar abordarea global a proiectrii sistemului informatic, ncepnd cu proiectarea structurilor de date i construind, n jurul acestor structuri, aplicaiile particulare. Pentru a fi posibil o astfel de abordare trebuie ndeplinite o serie de cerine. Organizarea logic a datelor trebuie definit pornind de la coninutul logic al datelor i de la raporturile obiective care se stabilesc ntre aceste date, n cadrul sistemului informaional, i nu pornind de la necesitile de prelucrare a datelor, care pot fi limitate la un anumit obiectiv, un anumit orizont de timp, sau un anumit grup de utilizatori. n realizarea sistermelor informatice nu mai este posibil proiectarea empiric a aplicaiilor, ci este necesar utilizarea unor metode de proiectare, care s furnizeze instrumente de lucru care s permit abordarea global a proiectrii sistemului informatic. n acest scop au fost dezvoltate metode de proiectare a sistemelor informatice care folosesc ca instrument de lucru modele pentru descrierea realitii de la care se pornete i a rezultatelor dorite (modele ale

1 Dollinger R. - "Baze de date i gestiunea tranzaciilor", Editura Albastr, Cluj-Napoca, 1998 2 Dollinger R. op. cit.

fluxurilor informaionale i ale prelucrrilor din cadrul sistemului informaional sau modele ale organizrii datelor n cadrul sistemului informatic). Pentru obinerea unor performane reale este necesar realizarea unei dependene minime a aplicaiilor fa de modul de organizare logic a datelor, astfel nct o modificare n structura datelor s nu necesite modificarea tuturor aplicaiilor construite n jurul acestor structuri de date. n acest scop a fost scoas n afara programelor de aplicaie i descrierea organizrii logice a datelor din fiiere, aceasta fiind memorat solidar cu datele la care se refer, ntr-o structur de date numit baz de date. 1.4.

Probleme rezolvate i propuse

A. Indicai varianta corect de rspuns, pentru ntrebrile urmtoare: 1. Reprezint, n acelai timp, obiect al prelucrrilor i principala resurs ntr-un sistem informatic: a) informaiile b) datele c) programele. 2. Totalitatea informaiilor vehiculate n ntreprindere, alturi de suporii de informaie corespunztori, de circuitul informaional i de prelucrrile efectuate asupra informaiilor desemneaz: a) sistemul de calcul b) sistemul informatic c) sistemul informaional. 3. ntr-un sistem informatic: a) orice prelucrare de date genereaz informaii; b) datele reprezint singura resurs a acestuia; c) este suficient ca datele preluate din mediul extern s fie complete i reale; d) datele reprezint principala resurs a acestuia. 4. Regula GIGO, aplicabil n utilizarea unui sistem informatic, este echivalent cu enunul: a) pentru a furniza date utile, sistemul informatic trebuie alimentat cu informaii de bun calitate; b) dac datele de intrare pentru un proces sunt incorecte, informaiile furnizate vor fi i ele incorecte; c) pentru a proiecta un bun model de date, trebuie s se porneasc de la un bun sistem informatic; d) pentru a furniza informaii utile, datele din sistem trebuie tratate n ansamblu. Rspunsuri: 1.b, 2.c, 3.d, 4.a, 4.b

10

2. Organizarea datelor n fiiere


2.1. Noiunea de fiier
Principalul instrument de stocare i manevrare a datelor n memoria extern este fiierul. Fiierul reprezint o colecie de date, unitar din punct de vedere structural, logic i funcional, organizat n scopul memorrii datelor n memoria extern i pentru manevrarea acestor date ntre diferii supori de memorie extern. Fiierul este unitatea de baz pentru organizarea datelor pe un suport de memorie extern, din punctul de vedere al sistemului de operare. Din punctul de vedere al utilizatorului, fiierul este o grupare de informaii omogene ca semnificaie i ca cerine de prelucrare. Pornind de la aceast definiie, se poate face analogia dintre nregistrrile unui fiier i fiele cu nregistrri sau rndurile din registrul de eviden, fiierului gsindu-i corespondent dosarul, dulapul cu fie sau registrul din sistemul de eviden manual a informaiei. Un fiier este alctuit din nregistrri, care reprezint unitatea repetabil din cadrul fiierului, n primul rnd din punctul de vedere al prelucrrii datelor. n funcie de nivelul la care sunt gestionate nregistrrile, acestea sunt de dou tipuri: nregistrri fizice, numite i blocuri de date, gestionate de SGF i nregistrri logice, numite i articole sau, simplu, nregistrri, gestionate de utilizator. nregistrarea fizic reprezint unitatea de schimb ntre suportul de memorie extern pe care este memorat fiierul i memoria intern. n timp ce stocarea datelor se realizeaz n memoria extern, prelucrarea lor are loc n memoria intern a sistemului de calcul. Din acest motiv, n timpul prelucrrii datelor dintr-un fiier, au loc permanente schimburi de date ntre memoria intern i memoria extern, n ambele sensuri. Aceste schimburi de date sunt gestionate de componenta specializat a sistemului de operare numit Sistem de Gestiune a Fiierelor (SGF). Dimensiunea nregistrrii fizice depinde de tipul de memorie extern utilizat, de caracteristicile sistemului i este controlat tot de SGF. nregistrarea logic sau articolul reprezint nivelul de organizare a datelor n fiier, din punctul de vedere al utilizatorului. Criteriul de grupare a datelor n nregistrri logice, n cadrul fiierului, este determinat de coninutul logic al datelor i de formatul lor de memorare. Din aceast cauz, din punctul de vedere al utilizatorului, prelucrrile efectuate asupra fiierului au caracter repetitiv la nivelul nregistrrilor logice. nregistrrile logice ale unui fiier pot fi considerate unitile elementare de prelucrare ale unui fiier, din punctul de vedere al utilizatorului. Articolele conin, la rndul lor, date elementare, numite cmpuri ale articolului. Cmpurile sunt definite prin: tipul datei, domeniul valorilor posibile, lungimea reprezentrii n memorie, poziia n cadrul articolului. Toate aceste informaii sunt identice la nivelul tuturor articolelor din fiier i definesc formatul articolului din fiier. n funcie de lungimea articolelor, fiierele se clasific n :

11

fiiere cu format fix: acele fiiere care au toate articolele de aceeai lungime; fiiere cu format variabil, care au articole de lungimi diferite; pentru a putea fi prelucrate articolele acestor fiiere de ctre SGF, trebuie cunoscut lungimea fiecrui articol; aceste informaii se memoreaz n antetul articolului; fiiere cu format nedeterminat, pentru care lungimea articolelor nu este precizat, articolele fiind separate ntre ele prin caractere speciale, numite delimitatori de articol.

12

3. Organizarea datelor n baze de date


3.1. Conceptul de baz de date
O baz de date este un ansamblu unitar de date, structurate, corelate logic ntre ele i memorate mpreun cu descrierea formal a structurii lor i a legturilor logice dintre ele, a crui gestionare este realizat de un sistem software unitar i specializat, numit sistem de gestiune a bazei de date. Termenul de baz de date a aprut n anii 60, dar momentul consacrrii termenului se consider a fi n 1969, cnd se public n raportul CODASYL (Conference On Data System Language) prezentarea conceptului de baz de date. O baz de date poate fi privit ca o colecie de date memorate n fiiere intercorelate i definite logic sub form de tabele, alctuite din linii ce corespund nregistrrilor din fiiere i din coloane ce corespund cmpurilor din nregistrri. ntr-o baz de date, datele sunt structurate, neredundante, corelate logic, consistente, independente de orice program de aplicaie, i pot fi direct accesibile dup mai multe criterii. ntr-o baz de date se memoreaz att datele propriu-zise, ct i informaii ce conin descrierea modului de memorare a acestor date: formatele de descriere a datelor, modul de organizare a lor, legturile dintre date, etc. Datele despre datele unei baze de date se numesc metadate iar descrierea formal referitoare la structura datelor i la legturile dintre date se memoreaz n dicionarul de date organizat tot sub form de fiier. Pe baza informaiilor memorate n dicionarul de date se realizeaz independena logic a datelor, care nseamn limitarea influenei pe care modificarea organizrii logice a datelor o poate avea asupra aplicaiilor care utilizeaz aceste date. Importana dicionarului de date este dat de coninutul i rolul su n exploatarea datelor din baza de date. El cuprinde informaii despre structura datelor, restriciile la care se supun datele i raporturile logice dintre date. Lucrul cu fiierele de date se deruleaz exclusiv prin consultarea acestui dicionar de date. O alt cerin la care rspunde o baz de date se refer la necesitatea de a putea gestiona datele astfel organizate independent de orice program de aplicaie i n mod unitar pentru ntreaga baz de date. n acest scop s-au dezvoltat aplicaii specializate n gestionarea bazelor de date numite Sisteme de Gestiune a Bazelor de Date (SGBD). Un SGBD este o component software complex care, pe lng serviciile de definire, generare i exploatare a unei baze de date, prin consultare sau prin prelucrri asupra datelor, asigur gestionarea automat a accesului unitar la datele din baza de date, precum i protecia acestora fa de accese nepermise sau fa de alterri accidentale.

13

Student-Nume

Student Materie Student Marca Student Nume Materie Cod Materie Ore Struct. Student Struct. Materie Struct. Student Materie Struct. Student Nume Struct. Materie Cod Struct. Materie Ore -

4 3 2 2 2 2 3 3 3 3 3 3 -

26 24 67 24 6 6 23 23 23 23 23 23

Marca Cod Cod -s Nume -s Cod -m Cod -o Cheie -s Cheie -m Cheie -sm Cheie -sn Cheie -mc

Struct. Student
Marca Nume Varsta Sex N C N C 3 20 2 1

Struct. Materie
Cod Den Ore C C N 2 20 2

Ion A. Ionescu P. Matei V. Oprea N. Popescu C. Vasilache I.

Student
205 170 223 291 111 103 Ionescu P. Vasilache I. Popescu C. Matei V. Oprea N. Ion A. 20 22 19 21 22 20 B B F F B F

Student-Marca
103 111 170 205 223 291

Struct. Student-Marca
Cod -s Adr -s N N 3 15

Materie-Cod
17 14 10 07 03 07 17 14 03 10

Struct. Student-Nume
Nume -s Adr -n C N 20 15

Materie
Informatica Economie Matematica Contabilitate Filosofie 56 42 56 70 28

Struct. Materie-Cod
Cod -m Adr -c C N 2 15

Materie-Ore
28 42 56 56 70

Struct. Materie-Ore

Cheie mo

Cod -o Adr -o

N N

2 15

Tabela tabelelor

Tabele de descriere a stucturii

Tabele de index

Tabele de date

Figura 3-1. Exemplu de organizare ntr-o baz de date FoxPro Coninutul unei baze de date poate fi mprit n patru categorii de date (figura 4-1). 1. Datele utilizatorilor sunt memorate fizic n fiiere i descrise logic sub form de tabele, cu cmpurile pe coloane i nregistrrile pe linii. Pentru fiecare tabel de date se definete structura tabelei, care reprezint o descriere complet a tuturor cmpurilor din tabel, i a proprietilor fiecrui cmp. Generarea unei noi tabele n baza de date se face ntotdeauna prin definirea, mai nti, a structurii tabelei, dup care pot fi memorate datele propriu-zise din tabel. Pentru fiecare tabel de date se poate defini o tabel de index, care permite accesul direct la nregistrrile tabelei de date sau parcurgerea tabelei de date ntr-o anumit ordine. n acest caz, accesul la o nregistrare se face pe baza valorii unei combinaii de cmpuri din tabela de date, numit cheie de indexare. Majoritatea SGBD-urilor permit definirea mai multor chei de indexare pentru o singur tabel de date. 2. Metadatele bazei de date (dicionarul de date) conin descrierea structurii tabelelor de date ale bazei de date i a legturilor logice dintre date. Aceast descriere este memorat n tabele, numite tabele sistem. Exemple de metadate ale bazei de date, incluse n tabelele bazei de date sunt:

14

tabelul tabelelor bazei de date care conine, pentru fiecare tabel de date a bazei de date, cte o linie cu cmpurile: nume tabel, numr cmpuri din tabel, lungimea total a unei nregistrri din tabel, numele cheii primare de indexare din tabel, etc.; - descrierea structurii unei tabele de date a bazei de date care conine, pentru fiecare cmp al tabelei, cte o nregistrare cu: numele cmpului, tipul datei memorate n cmp, lungimea cmpului, valoarea implicit, etc. 3. Tabelele de index sunt definite cu rolul de a mri accesibilitatea datelor i pentru a mbunti performanele de exploatare ale bazei de date. Sunt structuri de date specializate, folosite pentru accelerarea accesului la date i pentru a permite parcurgerea i prelucrarea bazei de date ntro ordine dorit a nregistrrilor. Tabelele de index asociate unei tabele de date se memoreaz n fiiere numite fiiere de index, conform modului de organizare indexat a fiierelor. n funcie de SGBD, pot fi definite: - fiiere de index simplu, n care se memoreaz o singur tabel de index asociat fiierului de date - fiiere de index multiplu, n care se memoreaz mai multe tabele de index asociate aceluiai fiier de date. O tabel de index conine, pentru fiecare nregistrare a tabelei de date la care se refer, valoarea cheii de indexare i adresa nregistrrii (determinat de valoarea cheii primare, locaia fizic pe suport, etc). Tabelele de index sunt gestionate de SGBD (de exemplu, SGBD asigur actualizarea automat a tuturor tabelelor de index deschise odat cu tabelele de date, n cazul actualizrii tabelelor de date). 4. Metadatele aplicaiilor sunt descrieri structurate ale unor prelucrri asupra datelor din baza de date care se memoreaz solidar cu datele, n baza de date. Astfel de prelucrri pot avea n vedere controlul asupra datelor memorate n baza de date prin: calcularea automat a valorii unor cmpuri din baza de date, validarea datelor memorate n baza de date, verificarea i asigurarea corectitudinii corelaiilor logice dintre datele memorate n baza de date, etc. O alt categorie de prelucrri descrise prin metadatele aplicaiilor memorate n baza de date au ca scop obinerea unor imagini particulare a datelor din baza de date, imagini numite vederi ale bazei de date. Vederile definesc viziuni pariale asupra bazei de date, conforme cu necesiti particulare de prelucrare, prin intermediul unei cereri de interogare a bazei de date care realizeaz o descriere specific a rezultatului dorit. Accesul la metadatele aplicaiilor se face numai prin intermediul SGBD.

15

Figura 3-2. Componena unei baze de date

Caracteristic organizrii datelor n baze de date este faptul c proiectarea unei baze de date trebuie abordat global, pentru reflectarea ntregului univers real modelat. Datele memorate ntr-o baz de date au ca scop reflectarea realitii, a activitii ntregii organizaii, prin prisma informaiilor vehiculate n sistemul informaional al organizaiei. Pentru a realiza o reprezentare complet i ct mai corect a realitii pe care trebuie s o reflecte baza de date, se folosesc drept instrumente de lucru, pentru proiectarea bazei de date, modele ale bazei de date. Un model al bazei de date este o reprezentare schematic i sintetic a coninutului bazei de date. Pentru descrierea modului de organizare a datelor din baza de date, proiectarea unei baze de date trebuie s abordeze att organizarea fizic a datelor ct i organizarea logic a datelor. n perioada de definire i dezvoltare a metodelor de organizare a datelor n baze de date i de proiectare a primelor SGBD (anii '70), grupul ANSISPARC (grupul de normalizare Nord-American pentru sisteme informatice Standard Planning And Requirement Committee) a fost nsrcinat s studieze impactul utilizrii bazelor de date asupra sistemelor informatice i s defineasc un standard de proiectare pentru un SGBD. Rezultatul acestei cercetri este modelul de arhitectur funcional a unui SGBD structurat pe trei niveluri funcionale ale bazei de date (figura 4-3). Fiecrui nivel funcional i corespunde o schem a structurii de date, un model privind prelucrrile care se fac asupra datelor i o component funcional a SGBD care realizeaz prelucrrile la acest nivel. Aceste niveluri funcionale sunt: - nivelul conceptual care reprezint depozitarul semantic al bazei de date, caracterizat prin faptul c realizeaz o abstracie a universului modelat, servind ca model de referire global pentru viziunile particulare ale utilizatorilor, respectiv aplicaiilor pe baza de date i care furnizeaz cel mai bun model pentru organizaie; - nivelul extern, care cuprinde viziuni specifice, definite pentru manevrarea datelor n funcie de necesitile fiecrui grup de utilizatori ai bazei de date; - nivelul intern, ce reflect reprezentarea datelor pe suportul de memorie extern, modul de realizare a acestui nivel contribuind la eficacitatea transpunerii i implementrii nivelului conceptual, determinnd astfel performanele de utilizare a bazei de date. n metodologia de proiectare a bazelor de date cele trei planuri de analiz a unei baze de date, care definesc trei modaliti de abordare a realitii pentru a realiza modelul bazei de date, sunt numite niveluri de abstractizare a datelor din

16

baza de date. Corespunztor celor trei niveluri de abstractizare, sunt definite cele trei modele ale bazei de date numite scheme: schema conceptual (global), schema extern (utilizator) i schema intern (fizic). Aceste trei modele realizeaz descrierea bazei de date din trei puncte de vedere diferite, conform celor trei niveluri de abstractizare a datelor din baza de date. Nivelul conceptual sau nivelul global de abstractizare a datelor reflect imaginea global a datelor din baza de date, prin prisma organizrii logice a acestor date. Schema conceptual rezultat trebuie s asigure satisfacerea tuturor cerinelor informaionale asupra bazei de date. Ea definete modul de organizare a datelor n baza de date din punct de vedere logic (organizarea datelor n entiti logice, caracterizate de anumite proprieti i corelri logice) i realizeaz modelarea realitii considerate, asigurnd independena descrierii datelor fa de echipamentul i tehnologia de memorare folosite. Baza de date este descris prin intermediul unor structuri care alctuiesc schema conceptual. n definirea schemei conceptuale se pornete de la baza de cunotine a sistemului informaional, care cuprinde: datele ce pot fi colectate din sistem i restriciile ce se aplic acestor date, cerinele de integrare a datelor (corelaiile logice dintre date), regulile de gestiune a datelor (metode i algoritmi de prelucrare a datelor). Schema conceptual integreaz viziunile tuturor utilizatorilor asupra bazei de date, pentru a face posibil utilizarea n comun a bazei de date de ctre acetia. Odat definit, schema conceptual trebuie confruntat cu universul real pentru sesizarea i rezolvarea eventualelor lipsuri i neconcordane. Datorit caracterului su global i unitar, schema conceptual trebuie gestionat de o singur persoan. Nivelul extern (nivelul utilizator) de abstractizare a datelor definete logic segmente ale bazei de date, care reprezint viziuni pariale asupra ei, caracteristice unor anumii utilizatori, respectiv unor anumite aplicaii care exploateaz baza de date. Nivelul extern evideniaz necesitile informaionale ale unui utilizator sau grup de utilizatori referitoare la un segment din baza de date prin intermediul unei sub-scheme sau scheme externe a bazei de date. Prin intermediul schemei externe, utilizatorul are o viziune (vedere) parial asupra bazei de date (o viziune de ansamblu asupra ntregii baze de date se asigur numai la nivelul schemei conceptuale). Schemele externe trebuie corelate cu schema conceptual iar cerinele informaionale ale nivelului extern care nu sunt satisfcute de schema conceptual trebuie s determine o reconsiderare a schemei conceptuale. Informaiile din schemele externe pot fi preluate ca atare din schema conceptual sau pot fi obinute din aceste informaii, prin prelucrri specifice (calcule, combinri, ordonri, selecii) genernd imagini virtuale ale bazei de date, numite vederi. Vederile reprezint uniti logice virtuale ale bazei de date care au rolul de a oferi utilizatorilor, selectiv, anumite date ale bazei de date i de a ascunde restul datelor din baza de date, pentru aceti utilizatori. Nivelul intern de abstractizare a datelor (nivelul fizic) reflect modul de organizare a datelor pe suportul de memorie extern. Nivelul intern privete baza de date ca pe o colecie de fiiere memorate pe diferite medii de memorie extern i definete modalitatea prin care datele din baza de date sunt organizate n fiiere ale bazei de date. Structura bazei de date este definit, la acest nivel, prin schema

17

intern a bazei de date, care descrie fiierele utilizate i modul lor de operare. Ea este gestionat de SGBD, prin motorul su. Definirea schemei interne a bazei de date se face automat, de componentele SGBD, n momentul generrii bazei de date. Pentru definirea schemei interne, se precizeaz fiierele bazei de date, fiierele de index, tipurile de nregistrri utilizate, modul de acces la fiiere, unitile de memorie extern folosite, etc. Interaciunea utilizatorului cu nivelul intern se face prin intermediul SGBD, prin componenta sa (gestionarul BD) care colaboreaz cu sistemul de operare (SGF) pentru a asigura gestionarea fiierelor bazei de date.
Administrator de intreprindrere Elaborarea schemei conceptuale

Administrator baza de date

Administrator de aplicatie

Elaborarea schemei interne

Elaborarea schemei externe

Corespondenta stocaj intern

Corespondenta intern conceptual

Corespondenta conceptual extern

Program de aplicatie la nivel intern

Program de aplicatie la nivel extern

Programator de sistem

Programator de aplicatie

Figura 3-3. Arhitectura ANSI-SPARC

Conform metodologiei ANSI-SPARC, sunt delimitate 3 categorii de administratori pentru baza de date. 1. Administratorul de ntreprindere, care este responsabil de proiectarea global a bazei de date i are o imagine de ansamblu a aplicaiilor prezente i a perspectivelor de dezvoltare a bazei de date. El este cel care definete schema conceptual a bazei de date, schem care este independent de aplicaiile particulare i care trebuie s includ toate schemele externe,

18

definite pentru a deservi toi utilizatorii i pentru a satisface toate aplicaiile existente. 2. Administratorii de aplicaie sunt responsabili cu dezvoltarea schemelor externe pentru diverse aplicaii care lucreaz cu baza de date i pentru a oferi grupurilor de utilizatori diferite vederi asupra bazei de date. 3. Administratorul bazei de date este cel care definete schema intern a bazei de date, care implementeaz i ntreine baza de date din punctul de vedere al organizrii ei pe nivelul fizic. Metodologia de concepere a unei baze de date pornete de la necesitatea realizrii, mai nti, a schemei conceptuale, care se confrunt cu schemele externe i din care, n final, deriv schema intern. Un alt model al arhitecturii funcionale a unui SGBD este modelul CODASYL, elaborat cu ocazia Conferinei de normalizare a limbajelor pentru baze de date (Conference on Data Systems Language) din 1971.
NIVELUL FUNCIONAL AL SGBD NIVEL EXTERN NIVEL CONCEPTUAL NIVEL INTERN COMPONENTA SGBD FUNCIA SGBD asigur nivelul de descriere a aplicaiilor i a bazei de date implementeaz nivelul logic de descriere a datelor implementeaz nivelul fizic de descriere a datelor SCHEMA DE DATE GESTIONARUL SCHEMEI administratorul aplicaiei

subsistemul de programare subsistemul run-time

schema extern schema conceptual schema intern

administratorul ntreprinderii administratorul datelor din BD

motorul SGBD

Figura 3-4. Modelul CODASYL

Acest model descrie funcionarea unui SGBD printr-o schem care pune n eviden cele trei niveluri de abstractizare a datelor n baza de date, cele trei scheme care modeleaz baza de date precum i cele trei componente funcionale ale SGBD care opereaz asupra bazei de date, utiliznd cele trei categorii de informaii codificate n baza de date: datele, metadatele i programele, cu care opereaz pe rnd, ca de exemplu n urmtorul model de prelucrri pentru consultarea bazei de date: 1. Utilizatorul formuleaz cererea de acces la datele din baza de date cu ajutorul instrumentelor oferite de subsistemul de programare, pornind de la o schem extern proprie.

19

2. Subsistemul run-time consult dicionarul de date pentru a identifica datele cerute, conform schemei conceptuale, determin coordonatele logice ale datelor: tabelul, linia i coloanele dorite, dup care transmite comanda de acces la date ctre gestionarul bazei de date inclus n motorul SGBD. 3. Gestionarul bazei de date analizeaz comanda, consult structura fizic a bazei de date i genereaz comanda adresat gestionarului fiierelor, pentru accesul fizic la date; accesul la date se face conform regulilor de integritate a bazei de date memorate n dicionarul de date i a drepturilor de acces ale utilizatorului la date, verificate de aceast component a motorului SGBD. 4. Schimbul de date ntre memoria extern i memoria intern se face sub controlul sistemului de operare, la nivel de bloc, n memoria tampon (buffer) a bazei de date. 5. Gestionarul bazei de date selecteaz din buffer numai datele solicitate (operaia de deblocare) i face transformrile definite prin corespondena dintre schema conceptual i schema extern, furniznd utilizatorului numai rezultatele solicitate, prin intermediul subsistemului run_time. 6. n orice faz a execuiei, SGBD avertizeaz utilizatorul n cazul derulrii anormale a operaiilor. Pe parcursul utilizrii ei, coninutul bazei de date sufer modificri permanente, n timp ce schema bazei de date rmne relativ constant. Ansamblul datelor stocate n baza de date, la un moment dat, reprezint o realizare a bazei de date. n timp, baza de date nregistreaz diferite realizri succesive. Trecerea de la o realizare la alta a unei baze de date poart numele de tranziie. O tranziie poate s fie produs de modificarea coninutului unei tabele a bazei de date, de modificarea structurii unei tabele a bazei de date, de adugarea unei noi tabele n baza de date, etc. Oricare dintre aceste operaii se realizeaz sub controlul SGBD, n conformitate cu descrierea datelor din dicionarul de date, respectnd restriciile i corelrile logice dintre date. Acest mod de realizare a tranziiilor garanteaz integritatea i consistena bazei de date, conform restriciilor impuse i memorate n baza de date. Realizarea unei tranziii nseamn, deci, executarea unei secvene de operaii elementare cu datele din baza de date, operaii concretizate fizic prin citiri i scrieri n tabelele bazei de date i prelucrri ale acestor date n memoria intern. De exemplu, adugarea unei noi nregistrri ntr-o tabel de date trebuie s fie urmat imediat (i transparent pentru utilizator) de actualizarea tabelelor de index corespunztoare fiecrei chei de indexare definite pentru tabela respectiv. Se consider asigurat consistena bazei de date atunci cnd s-a executat complet ntregul set de operaii elementare necesar pentru realizarea unei tranziii. n caz contrar, pentru a evita pierderea consistenei bazei de date, SGBD dispune de mijloace prin care s refac imaginea iniial a bazei de date, corespunztoare realizrii de la care a pornit tranziia, sau mcar s semnaleze apariia unei inconsistene n baza de date. Se consider c o baz de date este consistent atunci cnd ea reflect corect universul real pe care l modeleaz. Consistena unei baze de date este garantat de respectarea tuturor constrngerilor semantice impuse

20

asupra datelor, numite restricii de integritate i memorate n baza de date. Sigurana unei baze de date se refer la tolerana acesteia fa de defecte i la capacitatea de recuperare dup apariia unui defect1. Se numete tranzacie unitatea logic de prelucrare asupra unei baze de date care include setul complet de operaii elementare care trebuie executat n vederea realizrii unei tranziii, pentru asigurarea consistenei i siguranei bazei de date. Derularea unei tranzacii se poate realiza cu succes sau cu incident. n cazul n care tranzacia se deruleaz cu succes, de la prima la ultima operaie, atunci ea se ncheie printr-o operaie de validare a tranzaciei (commit). Validarea tranzaciei are un dublu efect: indic SGBD faptul c rezultatele tranzaciei sunt corecte, deci pot fi reflectate n baza de date, devenind vizibile altor tranzacii i indic faptul c efectele tranzaciei sunt ireversibile n baza de date (ele nu mai pot fi anulate prin operaia de rollback). n cazul apariiei unor incidente n timpul tranzaciei (de exemplu nu poate fi accesat o tabel a bazei de date), efectul tranzaciei poate fi anulat printr-o operaie de abandonare a tranzaciei. La abandonare, execuia tranzaciei este oprit i se reface imaginea iniial a bazei de date (rollback). Pentru a asigura consistena i sigurana bazei de date, o tranzacie trebuie s satisfac cele patru condiii definite prin acronimul ACID (Atomicitate, Consisten, Izolare, Durabilitate)2. Atomicitatea unei tranzacii se refer la caracterul unitar al operaiilor cu baza de date pe care le presupune tranzacia; condiia de atomicitate impune ca o tranzacie s fie validat numai dup executarea complet a operaiilor pe care le presupune. O tranzacie ntrerupt prematur trebuie tratat de SGBD pentru a fi ncheiat, fie prin continuare, dac este posibil, fie prin abandonare, cu anularea efectelor execuiei sale. Consistena unei tranzacii se refer la necesitatea ca modificrile efectuate n baza de date s fie fcute cu respectarea regulilor de integritate a bazei de date, pentru a garanta consistena bazei de date. Asigurarea consistenei unei tranzacii prin verificarea respectrii regulilor de integritate nu poate fi realizat integral, n mod automat, numai de ctre SGBD. O parte dintre verificri trebuie s fie proiectate n mod explicit n aplicaia care a generat tranzacia. Izolarea unei tranzacii se refer la principiul de execuie a tranzaciei prin care rezultatele unei tranzacii devin accesibile n baza de date pentru alte tranzacii numai dup validarea tranzaciei respective. n caz contrar, dac o alt tranzacie ar putea utiliza rezultatele modificrilor pariale realizate de tranzacie i dac aceast tranzacie ar fi abandonat, cu refacerea imaginii iniiale a bazei de date, atunci i tranzacia care a folosit rezultatele pariale ar trebui abandonat. Un astfel de proces ar putea genera un lan de abandonuri (efectul domino), de o lungime nedeterminat, greu de controlat i care ar putea conduce la pierderea consistenei bazei de date. Durabilitatea tranzaciei este proprietatea prin care se garanteaz c o tranzacie validat este ireversibil. Dup validarea tranzaciei, SGBD permite reflectarea
1 2

Dollinger R. - op. cit. idem.

21

rezultatelor tranzaciei n baza de date, pentru a deveni accesibile i altor tranzacii. Dac dup validarea tranzaciei apare un incident care s mpiedice consemnarea n baza de date a rezultatelor tranzaciei validate, SGBD dispune de mijloace pentru a relua procesul de scriere n baza de date a rezultatelor tranzaciei, dup nlturarea incidentului. De obicei, SGBD folosete, n acest scop, metoda jurnalizrii tuturor operaiilor efectuate n timpul unei tranzacii; jurnalul este folosit de procedurile SGBD de refacere a imaginii bazei de date, n caz de incident. Respectarea proprietilor de atomicitate i de consisten asigur caracteristica definitorie a tranzaciei, faptul c genereaz o realizare consistent a bazei de date. Respectarea proprietilor de izolare i de durabilitate ale tranzaciilor garanteaz imposibilitatea apariiei efectului domino n cazul desfurrii unor tranzacii concurente asupra bazei de date. Sigurana bazei de date este realizat prin operaia de rollback, dac defectul n baza de date apare n timpul desfurrii unei tranzacii. Pentru a contracara incidentele care pot altera baza de date ntre dou tranzacii succesive se folosete metoda jurnalizrii tranzaciilor efectuate asupra bazei de date; n acest fel se poate restabili n orice moment imaginea bazei de date anterioar producerii defectului, pornind de la o imagine de siguran a bazei de date i refcnd asupra acestei imagini toate tranzaciile efectuate pn n momentul apariiei incidentului care a alterat baza de date. Consistena bazei de date este asigurat de respectarea restriciilor de integritate. Restriciile de integritate ale unei baze de date sunt definite prin intermediul unor reguli de integritate a bazei de date. Regulile de integritate pot fi: implicite (restriciile privind valorile admisibile ale datelor sunt determinate implicit de tipul de dat care le este asociat) sau explicite (liste de valori sau intervale n care poate lua valori un cmp din baza de date). Regulile explicite pot fi definite i prin intermediul unor secvene de cod care pot fi generate de proiectantul aplicaiei (de exemplu rutinele de validare, definite pentru un cmp din baza de date sau pentru o ntreag linie dintr-o tabel a bazei de date) sau de componenta de proiectare a SGBD, n mod automat (de exemplu regulile de integritate referenial implicit generate de SGBD la definirea unei baze de date relaionale, n funcie de opiunile proiectantului bazei de date). Un exemplu de rutine de validare generate automat de SGBD pentru implementarea unor restricii de integritate sunt cele care asigur respectarea regulii de integritate referenial pentru o baz de date relaional. ntr-o baz de date relaional se stabilesc legturi logice ntre perechi de nregistrri din tabele diferite care au n comun seturi de cmpuri ce formeaz perechi de forma (cheie primar, cheie strin). Tabela care conine cheia strin se numete tabel fiu, iar tabela n care cheia respectiv este cheie primar se numete tabel printe. Regula de integritate referenial impune condiia ca fiecare valoare a cheii strine s se regseasc printre valorile cheii primare. Pentru asigurarea respectrii regulii de integritate referenial, SGBD ofer urmtoarele variante de validare automat a actualizrii unei nregistrri n una din cele dou tabele:

22

n cazul adugrii unei noi nregistrri n tabela fiu, adugarea poate fi interzis (restrict) dac n tabela printe nu exist o nregistrare a crei cheie primar s aib valoarea cheii strine din nregistrarea care se adaug; - n cazul tergerii unei nregistrri din tabela printe, dac exist nregistrri n tabela fiu a cror cheie strin are aceeai valoare cu cheia primar a nregistrrii care se terge, tergerea este interzis (restrict) sau se realizeaz tergerea n cascad (cascade), adic se terge nregistrarea din tabela printe i toate nregistrrile corespunztoare din tabela fiu; - n cazul modificrii cheii primare a unei nregistrri din tabela printe, dac exist nregistrri n tabela fiu a cror cheie strin are aceeai valoare cu cheia primar care se modific, modificarea este interzis (restrict) sau se realizeaz modificarea n cascad (cascade), adic se modific nregistrarea din tabela printe i toate nregistrrile corespunztoare din tabela fiu. Unul dintre avantajele gestionrii datelor prin intermediul unui SGBD este faptul c se poate asigura un anumit nivel de libertate n realizarea modificrilor asupra modului de organizare a datelor care s nu afecteze modul de utilizare a lor. Acest lucru este posibil datorit modelului de organizare a SGBD pe trei niveluri de abstractizare a datelor. Posibilitatea modificrii descrierii datelor pe un nivel de abstractizare, fr a afecta descrierile de pe celelalte niveluri definete gradul de autonomie a datelor din baza de date. Se delimiteaz dou niveluri de autonomie a datelor n baza de date: 1. Autonomia fizic asigur faptul c se poate modifica schema intern fr a afecta celelalte niveluri (nivelurile logice de descriere a bazei de date). Autonomia fizic are urmtoarele caracteristici: - se folosete pentru ameliorarea performanelor de lucru cu baza de date (dimensiunea fiierelor, viteza de acces la date) prin modificarea suportului de memorie extern folosit, a organizrii fizice a datelor pe suport, a platformei de calcul utilizate, etc.; - este necesar pentru a asigura portabilitatea1 bazei de date de la o platform la alta; - este asigurat prin interaciunea SGBD cu sistemul de operare, n primul rnd cu sistemul de gestiune a fiierelor; 2. Autonomia logic permite modificarea schemei conceptuale sau a schemei externe a bazei de date fr a fi necesar rescrierea programelor de aplicaie care lucreaz cu baza de date. Autonomia logic are urmtoarele trsturi: - este necesar cnd se extinde sfera informaional acoperit de sistemul informatic, se dezvolt o nou aplicaie sau apar noi informaii ce trebuie prelucrate n aplicaiile existente; - dei n general noi categorii de date presupun i noi prelucrri, nu este obligatorie modificarea aplicaiilor existente pentru implementarea noilor
Portabilitatea unei componente software reprezint posibilitatea de a utiliza acea component pe sisteme de calcul diferite sau sub sisteme de operare diferite
1

23

categorii de date pentru c prelucrri noi referitoare la aceste date pot fi memorate i n baza de date, n componenta de metadate ale aplicaiilor;

este asigurat prin intermediul dicionarului de date care este consultat de SGBD n vederea accesrii bazei de date.

3.2. Sistemul de gestiune a bazelor de date


SGBD este un sistem de programe care permit interaciunea cu baza de date pentru creare, actualizare i consultare, asigurnd gestionarea unitar a datelor din baza de date i acionnd ca o interfa ntre baza de date i utilizatorii ei. n cealalt direcie, SGBD colaboreaz cu sistemul de operare pentru realizarea funciilor sale, de exemplu intraciunea cu sistemul de gestiune a fiierelor. O baz de date nu poate fi utilizat dect prin intermediul unui SGBD. n plus, un SGBD este proiectat n concordan cu modul de organizare a datelor specific unui anumit model de baz de date. n consecin, orice SGBD trebuie s ndeplineasc un set de funcii minimale, la care se adaug funcii specifice tipului de baz de date pe care o gestioneaz: 1. SGBD permite generarea bazei de date prin oferirea limbajului de descriere a structurii bazei de date (limbajul de descriere a datelor - LDD) i prin generarea automat a schemei interne a bazei de date, pe baza acestei descrieri. 2. SGBD realizeaz actualizarea datelor din baza de date, cu respectarea restriciilor de integritate memorate n baza de date, asigurnd astfel meninerea consistenei bazei de date. 3. Utiliznd dicionarul de date pentru accesul la baza de date, SGBD asigur autonomia logic a datelor fa de programele de aplicaie. 4. SGBD asigur posibilitatea accesului multicriterial la datele din baza de date prin intermediul cheilor de indexare, a filtrelor, a operaiei de ordonare a datelor, a memorrii legturilor dintre date, etc. n felul acesta se asigur proprietatea bazei de date de a oferi utilizatorilor imagini multiple ale datelor pe care le memoreaz. 5. Un SGBD proiectat pentru a funciona n regim multiutilizator trebuie s asigure protecia datelor fa de accesele concurente la baza de date. n acest scop, actualizrile bazei de date se realizeaz prin intermediul tranzaciilor. 6. Cum bazele de date sunt concepute pentru a permite prelucrarea unui volum mare de date, gestiunea datelor impune nu numai structurarea lor riguroas, ci i optimizarea procedurilor de acces la date i de prelucrare a lor, asigurat tot de SGBD, n scopul creterii performanelor de acces la date. 7. SGBD ofer instrumente ct mai accesibile pentru consultarea bazei de date. Aceste instrumente se adreseaz, n primul rnd, utilizatorilor neprofesioniti i constau n limbaje de interogare a bazei de date, limbaje neprocedurale, descriptive i ct mai apropiate de limbajul uman, susinute, eventual, i de elemente de interfa prietenoas, de tipul interfeelor grafice sau ale generatoarelor automate de cereri de interogare.

24

8. Pentru actualizarea bazei de date i pentru definirea aplicaiilor cu baza de date, SGBD ofer utilizatorilor profesioniti instrumente de proiectare (limbaje de manevrare a datelor din baza de date - LMD), generatoare automate de cod sau chiar medii de proiectare a sistemului informatic ce utilizeaz baza de date. 9. SGBD poate asigura confidenialitatea datelor din baza de date prin atribuirea de drepturi de acces utilizatorilor i identificarea acestora prin intermediul unui sistem de parole, prin implementarea unor mecanisme de criptare a datelor din baza de date i prin intermediul vederilor asupra bazei de date, care ofer utilizatorilor imagini pariale ale bazei de date, conform schemelor externe definite de aceti utilizatori. 10. SGBD asigur integritatea bazei de date, prin gestionarea unor proceduri automate sau definite de proiectantul bazei de date care s permit refacerea imaginii bazei de date n cazul alterrii coninutului ei n urma unor incidente. n acest scop, SGBD realizeaz automat copii de siguran care permit executarea procedurilor de refacere (rollback) sau se poate defini explicit o procedur complet de asigurare a bazei de date. Spre exemplu, se realizeaz salvarea periodic a bazei de date pe un suport sigur de memorie extern, se realizeaz jurnalizarea actualizrilor bazei de date, prin memorarea pe un suport sigur de memorie extern a tuturor tranzaciilor efectuate de la ultima salvare a bazei de date i n caz de incident se restaureaz ultima realizare a bazei de date salvat, dup care se refac tranzaciile efectuate ulterior acestei salvri, prin consultarea jurnalului. 11. SGBD asigur autonomia fizic a datelor fa de programele de aplicaie. Ca urmare, este posibil reorganizarea fizic a bazei de date atunci cnd este necesar fr a afecta aplicaiile cu baza de date. De exemplu se realizeaz tergerea fizic a nregistrrilor marcate logic pentru tergere, se poate modifica modul de memorare a bazei de date n memoria extern, se poate modifica sistemul de operare sau configuraia hardware care suport baza de date. 12. SGBD permite monitorizarea activitii cu baza de date, pentru ameliorarea performanelor de exploatare a bazei de date, n scopul minimizrii timpului de rspuns, utilizrii optime a memoriei, asigurrii unei bune adaptabiliti a bazei de date fa de solicitrile utilizatorilor i a unei bune protecii a datelor. Principalele componente ale unui SGBD sunt: motorul SGBD, subsistemul instrumentelor de proiectare i subsistemul de execuie (subsistemul run-time). Motorul SGBD este un intermediar ntre subsistemul de proiectare i subsistemul run-time al bazei de date, pe de o parte, i datele din baza de date, pe de alt parte, pentru realizarea accesului fizic la datele din baza de date. Motorul SGBD este implicat n gestionarea tranzaciilor la nivelul unei baze de date, regsirea datelor pe baza informaiilor de adresare din fiierele de index, salvarea i restaurarea datelor, blocarea i deblocarea datelor n cazul operaiilor fizice la nivelul memoriei externe. Aciunile motorului SGBD, n cadrul bazei de date, sunt realizate unitar, respectnd restriciile impuse de legturile dintre date i de regulile de integritate ale bazei de date, definite n dicionarul de date. Motorul SGBD asigur i interfaa funcional pentru operarea modificrilor n structura bazei de

25

date, formulate prin comenzi ale limbajului de descriere a datelor. El gestioneaz unitar operaiile la nivel fizic asupra bazei de date, prin funciile ndeplinite de componentele sale: gestionarul bazei de date i gestionarul fiierelor:

Figura 3-5. Locul motorului SGBD

Gestionarul bazei de date traduce comenzile primite, de transformare a datelor sau metadatelor din baza de date, n comenzi de acces fizic la fiierele bazei de date, executabile sub controlul SGF. El realizeaz transformarea comenzilor elementare care alctuiesc tranzacia i vizeaz lucrul cu fiierele bazei de date n comenzi adresate gestionarului fiierelor i componentei SGF a sistemului de operare i asigur ca orice modificare a datelor din baza de date s fie fcut numai cu respectarea regulilor de integritate memorate n dicionarul de date, identific abaterile de la aceste reguli i le semnaleaz. Gestionarul bazei de date realizeaz blocarea bazei de date, de obicei la nivel de fiier sau de nregistrare, pentru a asigura izolarea tranzaciei necesar n cazul acceselor concurente la baza de date i asigur integritatea bazei de date, prin gestionarea procedurilor automate de siguran care trebuie s permit restabilirea strii bazei de date anterioare producerii unui accident. Pentru asigurarea securitii datelor din baza de date gestionarul bazei de date verific drepturile de acces la date i permite executarea procedurilor de criptare. Gestionarul fiierelor realizeaz, alturi de SGF, transferurile de date cu memoria extern. Componentele amintite ale motorului bazei de date acioneaz asupra celorlalte componente ale bazei de date: - fiierele de date, care reprezint suportul informaional propriu-zis al bazei de date; - metadatele sau dicionarul de date, care memoreaz informaii despre structura bazei de date i legturile dintre date i care este consultat n toate operaiile de acces la datele bazei de date; - fiierele de index, care permit mrirea vitezei de acces la date i ofer imagini multiple ale datelor din baza de date.

26

Subsistemul instrumentelor de proiectare al unui SGBD dispune de un set de instrumente software specializate pentru proiectarea i generarea bazei de date, respectiv a aplicaiilor care descriu modul de utilizare a bazei de date. Aceast component a SGBD permite definirea structurii tabelelor din baza de date, a machetelor de interfa cu utilizatorul, a formatului rapoartelor i cererilor de interogare a bazei de date. Ea poate include: - limbajul de descriere a datelor (LDD); - limbaje de manevrare a datelor (LMD); - limbaje de interogare a bazei de date (LI); - editoare pentru codul aplicaiilor; - generatoare automate de cod, pentru definirea interfeelor utilizator, a rapoartelor, a meniurilor aplicaiilor, etc.; - sistem de asisten on-line pentru autodocumentarea utilizatorului (component de tip Help) etc.

Figura 3-6. Componenta run-time i componenta de proiectare

Pentru a defini structura unei baze de date se folosesc instrumentele oferite de o interfa specializat, care utilizeaz un limbaj propriu: limbajul de descriere a datelor. Prin interpretarea acestor descrieri este generat ansamblul de tabele numit dicionar de date, care conine descrieri ale datelor din baza de date, numite i metadatele bazei de date. Metadatele bazei de date sunt consultate de componentele SGBD naintea oricrei operaii asupra datelor din baza de date. Modulele de lucru cu limbajul de descriere a datelor traduc i execut instruciuni ale limbajului de descriere a datelor pentru a genera dicionarul de date. Ele sunt incluse n subsistemul de proiectare al SGBD. Funciile asigurate de limbajul de descriere a datelor sunt: - descrierea organizrii logice a datelor n baza de date, prin definirea tabelelor de date i a cmpurilor din tabele;

27

definirea regulilor sintactice de reprezentare a datelor, prin tipul datelor i prin formatele de reprezentare; - definirea restriciilor semantice la care se supun datele i care asigur corectitudinea datelor bazei de date (plaja de valori, formule de calcul pentru datele derivate din date de baz, rutine de validare a datelor, etc); specificarea legturilor logice dintre datele bazei de date; - definirea cheilor de indexare asociate tabelelor bazei de date; - definirea procedurilor de criptare, dac este cazul; - definirea cheilor de confidenialitate (parole de acces la date). Limbajele de manevrare a datelor permit descrierea operaiilor asupra datelor din baza de date, din punctul de vedere al utilizatorilor. Manevrarea datelor este termenul generic pentru desemnarea operaiilor executate asupra datelor din baza de date care const, n detaliu, din: - adugarea, prin scrierea de noi date n tabelele de date; - modificarea, prin schimbarea valorii datelor existente; - tergerea datelor din tabele ale bazei de date; - prelucrarea datelor, prin operaii specifice de tipul ordonrii, interclasrii, filtrrii sau combinrii datelor, n aceeai tabel sau ntre tabele ale bazei de date; - consultarea, adic extragerea unor date din tabele ale bazei de date, n scopul vizualizrii sau prelucrrii lor. Un limbaj de manevrare a datelor permite operarea asupra datelor att la nivel logic, prin comenzile utilizatorului, preluate de componenta run-time, folosind descrierea datelor conform schemei i sub-schemelor bazei de date ct i la nivel fizic, prin descrierea i implementarea unor algoritmi performani de acces la datele din memoria extern. Dup modalitatea de formulare a cererii de identificare a datelor n baza de date, limbajele de manevrare a datelor se clasific n dou categorii: limbaje procedurale i neprocedurale. Limbaje procedurale sunt acele limbaje pentru care utilizatorul trebuie s precizeze datele pe care dorete s le acceseze i modul n care se obin aceste date din baza de date. Utilizatorul furnizeaz o secven de operaii executabile ntr-o succesiune bine precizat i care se constituie ntr-o procedur. Limbaje neprocedurale sunt limbajele n care succesiunea instruciunilor din program nu influneaz dect n mic msur succesiunea executrii lor. Utilizatorul precizeaz ce date dorete doar prin descrierea acestor date, fr a preciza i metoda de identificare a lor n baza de date. Limbajele neprocedurale nu necesit descrierea modului de realizare a accesului la date pentru c folosesc proceduri standard de acces la date. Modul de formulare a cererilor ntr-un limbaj neprocedural este mai apropiat limbajului uman, motiv pentru care limbajele neprocedurale sunt mai accesibile. Limbajele procedurale sunt limbaje imperative, n timp ce limbajele neprocedurale sunt limbaje declarative. n cadrul limbajelor de manevrare a datelor se includ i limbajele de interogare a bazei de date (LI) care permit cutarea i identificarea datelor n baza de date.

28

Limbajele de interogare se adreseaz utilizatorului curent al bazei de date, de obicei neinformatician, motiv pentru care sunt concepute ca limbaje evoluate, apropiate de limbajul uman, i sunt definite ca limbaje neprocedurale. Un limbaj de manevrarea datelor poate s utilizeze un limbaj propriu, autonom sau un limbaj de programare standard. Conform acestui criteriu, un SGBD poate fi: autonom sau cu limbaj gazd. SGBD este autonom atunci cnd limbajul de manevrare a datelor are un limbaj de programare propriu i cu limbaj gazd, cnd limbajul de manevrare a datelor nu are un limbaj propriu iar comenzile sale sunt implementate prin instruciuni scrise n limbajul gazd al SGBD. n funcie de tipul de SGBD, generarea codului executabil pentru comenzile limbajului de manevrare a datelor se realizeaz diferit. Pentru SGBD autonome sunt urmtoarele variante de transformare a comenzilor limbajului de manevrare a datelor n cod executabil: - la execuia comenzilor, prin interpretarea fiecrei instruciuni n limbajul de manevrare a datelor i executarea ei imediat (limbajul de manevrare a datelor este unul de tip interpretativ); - prin compilarea comenzilor n limbajul de manevrare a datelor i generarea unui cod executabil ce va fi executat de motorul SGBD (limbajul de manevrare este de tip compilativ); - cnd SGBD posed interfa pentru un alt limbaj de programare, se poate realiza traducerea comenzilor formulate n acel limbaj n secvene de cod scrise n limbajul de manevrare a datelor i translatarea acestora cu compilatorul propriu, pentru generarea unui cod executabil. Pentru SGBD cu limbaj gazd transformarea comenzilor limbajului de manevrare a datelor n cod executabil se poate face: - prin mbogirea compilatorului limbajului gazd cu comenzile limbajului de manevrare a datelor, acesta genernd cod adresat motorului SGBD, care va realiza accesul la date; - prin intermediul unui program pre-compilator, care transform programele surs care includ instruciuni ale limbajului de manevrare a datelor n programe surs n limbajul gazd, care sunt apoi compilate cu compilatorul limbajului gazd; - prin intermediul unor subprograme n care comenzile limbajului de manevrare a datelor sunt apeluri la subprograme scrise n limbajul gazd, subprograme aduse apoi n format executabil. Subsistemul de execuie (run-time) permite procesarea (execuia) aplicaiilor sau cererilor de consultare a bazei de date, formulate utiliznd instrumentele subsistemului de proiectare, prin consultarea dicionarului de date i generarea tranzaciilor. Aceasta este componenta care asigur autonomia logic a datelor din baza de date, intermediind operaiile cu baza de date prin consultarea descrierii organizrii logice a datelor memorat n structura bazei de date. Orice operaie de actualizare sau de consultare a bazei de date se realizeaz prin identificarea formatelor de descriere a datelor din dicionarul de date i conectarea acestor

29

descrieri la schema intern a bazei de date. Aceast operaie este realizat de componenta de excuie a SGBD. De asemenea, pentru a opera cu o vedere a bazei de date, componenta run-time consult interfaa dintre schema extern a bazei de date i schema conceptual, interfa care cuprinde regulile de derivare care definesc vederea. Comenzile, formulate ntr-un limbaj de manevrare a datelor sau ntr-un limbaj de interogare a bazei de date, sunt traduse de modulul translator specializat, fiind transformate apoi, prin intermediul procesorului de consultare a bazei de date, n instruciuni elementare de lucru cu baza de date care alctuiesc tranzacii i care sunt adresate gestionarului bazei de date, parte a motorului SGBD. n plus, la nivelul componentei run-time, se realizeaz i o optimizare a modului de execuie a comenzilor de consultare a bazei de date, pentru a mri viteza de acces la baza de date. n cadrul componentei run-time unele SGBD dispun de interfee pentru alte medii de prelucrare a datelor, care permit ca prin comenzi scrise ntr-un limbaj exterior, nespecific SGBD, s se poat realiza accesul la datele bazei de date. Un obiectiv principal al unui SGBD este de a crea un mediu favorabil utilizatorilor pentru a lucra cu datele din baza de date. Alturi de componentele software, funcionarea unei baze de date este de neconceput n absena factorului uman care, dup modul de interaciune cu baza de date, se poate grupa n dou categorii: administratorii (administratorul de ntreprindere, administratorii de aplicaie, administratorul bazei de date) i utilizatorii.

Figura 3-7. Utilizatorii bazei de date

n mod generic, persoana responsabil pentru asigurarea condiiilor optime de utilizare a bazei de date este numit administratorul bazei de date. Acesta trebuie s cunoasc schema intern a bazei de date, fiind responsabil de implementarea i funcionarea n condiii optime a bazei de date. Funciile administratorului bazei de date sunt:

30

definirea arhitecturii bazei de date conform schemei conceptuale, fie prin utilizarea interactiv a limbajului de descriere a datelor, fie prin executarea unor proceduri automate de configurare a bazei de date; - definirea modului de implementare a bazei de date n memoria extern (organizarea bazei de date n memoria extern) i a modurilor de acces la date, prin intermediul limbajului de descriere a datelor; - gestionarea modificrilor aprute n descrierea bazei de date, la nivelul schemei conceptuale, sau n implementarea n memoria extern a bazei de date (modificri privind suportul de memorare sau modul de organizare a datelor pe suport); - implementarea restriciilor privind integritatea bazei de date (acestea se fac la nivelul schemei conceptuale i nu la nivelul schemei externe, pentru c se refer la ntreaga baz de date i nu la pri ale bazei de date, ce corespund schemelor externe); - definirea procedurilor de eroare, n cazul nerespectrii regulilor de integritate a datelor; - autorizarea accesului la date, prin acordarea de chei de acces i prioriti de acces la utilizatori sau grupuri de utilizatori; - definirea procedurilor privind asigurarea drepturilor de acces la baza de date; - asigurarea legturii cu utilizatorii, n scopul transferului reciproc de informaii privind modul de lucru cu baza de date; de asemenea i avizeaz pe utilizatori cu privire la modificrile aprute n modul de lucru cu baza de date; - definirea strategiei de asigurare a bazei de date, prin operaii periodice de salvare a bazei de date i prin jurnalizarea tranzaciilor; n acest scop, administratorul bazei de date stabilete calendarul de salvri ale bazei de date precum i procedurile de salvare/restaurare corespunztoare; - monitorizarea performanelor bazei de date, pentru mbuntirea parametrilor de exploatare, mai ales a timpului de rspuns la cereri de acces la date i a vitezei de prelucrare a datelor din baza de date. Dup natura interaciunilor cu baza de date i gradul lor de specializare n domeniu, utilizatorii bazei de date pot aparine uneia dintre urmtoarele categorii: - utilizatori profesioniti (informaticieni), de exemplu: administratorul bazei de date, administratorul de intreprindere, administratorii de aplicaii, precum i proiectanii de aplicaii; - utilizatori neinformaticieni, care pot fi: utilizatorii cureni (intensivi) ai bazei de date, adic cei care efectueaz operaii de rutin asupra bazei de date folosind de obicei aplicaii dedicate, de exemplu pentru actualizarea bazei de date sau pentru consultri sistematice ale bazei de date i utilizatorii ocazionali, care interacioneaz cu baza de date prin intermediul limbajului de interogare a bazei de date pentru a obine informaii, ca rspuns la ntrebri ocazionale, de obicei neanticipate.

31

3.3. Baze de date relaionale


3.3.1. Conceptele folosite pentru bazele de date relaionale

Un pas nainte n tehnica organizrii datelor n baze de date a fost fcut atunci cnd accesul la date a putut fi descris ntr-o manier neprocedural iar operarea efectiv asupra datelor s-a putut realiza prin secvene de cod scoase n afara codului de aplicaie. n acest caz, accesul la date este standardizat i funciile de acces la date sunt incluse n funciile SGBD. Modelul care st la baza unei astfel de organizri a datelor este modelul relaional. n anii '80 s-a nregistrat o perfecionare a modului de proiectare i a condiiilor care permit utilizarea optim a SGBDR1, astfel nct anii '90 marcheaz o dezvoltare a activitii de proiectare de SGBDR. Multe dintre aceste SGBD-uri nu reuesc s ating performanele solicitate unui SGBDR. Aa cum calitatea determinat de organizarea datelor n baze de date nu poate fi asigurat dect sub controlul unui SGBD, calitatea unui SGBDR nu poate fi asigurat dect n condiiile n care acesta respect specificaiile modelului relaional de organizare a bazei de date. Pentru a limpezi puin lucrurile i pentru a reglementa activitatea de proiectare i dezvoltare de SGBDR, Edgar Codd, cercettor la laboratoarele IBM din San Jose (California), a ncercat s sistematizeze i s prezinte sub o form unitar sistemul minimal de reguli pe care trebuie s le respecte un SGBD pentru a putea gestiona o baz de date relaional. Modelul relaional a fost formulat i publicat pentru prima oar n 1969 de ctre Edgar Codd. Acesta a publicat ncepnd din 1970 lucrrile sale de referin privitoare la modelul relaional pentru organizarea datelor n baze de date. Pornind de la un numr de 13 reguli, n 1986, Codd a ajuns s publice pn la 100 de reguli, n 1990. Pentru a constitui, totui, un instrument funcional, se consider c cele 13 reguli definite iniial sunt suficiente pentru a aprecia dac, i msura n care, un SGBD este relaional. Cele 13 reguli ale lui Codd sunt enunate n continuare. Regula 0. Regula de baz - afirm c pentru a fi relaional un SGBD trebuie s gestioneze datele din baza de date exclusiv prin utilizarea mecanismelor relaionale care sunt prezentate n urmtoarele 12 reguli. SGBD gestioneaz datele din baza de date prin intermediul componentelor sale: - LDD pentru definirea schemei relaionale a bazei de date; - LMD pentru definirea cererilor de manevrare a datelor din baza de date; - componenta run-time pentru interpretarea cererilor de manevrare a datelor; - gestionarul bazei de date pentru asigurarea integritii i consistenei bazei de date;
1

Sistem de Gestiune a Bazelor de Date Relaionale

32

motorul, pentru a interfaa cererile de acces la date cu implementarea fizic a bazei de date. Observaie: se constat c, practic, nici o implementare de SGBDR nu respect aceast regul, deoarece toate SGBD-urile care se consider relaionale conin i caracteristici nerelaionale. Regula 1. Regula reprezentrii logice a datelor - afirm c ntr-o baz de date relaional toate datele trebuie s fie organizate logic ntr-un singur fel, sub form de relaii memorate n tabele; acest lucru permite ca toate datele din baza de date s fie prelucrate la fel, chiar dac sunt date sau metadate. Observaie: n opinia lui Codd, un SGBD care nu respect regula 1 nu este relaional. Regula 2. Regula garantrii accesului la date - afirm c ntr-o baz de date relaional orice dat trebuie s poat fi identificat prin tripleta format din: numele tabelei, valoarea cheii primare, numele coloanei din tabel. Pentru a respecta aceast regul, n orice tabel a bazei de date trebuie s se respecte ca reguli de integritate regula unicitii cheii i regula entitii1. Regula 3. Regula reprezentrii valorilor necunoscute sau neacceptate - afirm c ntr-o baz de date relaional trebuie s se poat utiliza o valoare, notat convenional cu null, pentru a face distincia explicit ntre datele crora nu li se atribuie valoare (pentru c nu este cunoscut sau pentru c nu este acceptabil) i cele care au primit o valoare, fie ea i 0 sau irul vid. Aceast condiie este necesar pentru implementarea regulii entitii i a regulii integritii refereniale2. Regula 4. Regula dicionarului de date - afirm c descrierea bazei de date relaionale trebuie s fie organizat logic la fel cu baza de date astfel nct asupra metadatelor s se poat opera ca i asupra datelor din baza de date. n acest scop, metadatele sunt organizate i ele n tabele, fapt care permite accesarea metadatelor prin intermediul acelorai mecanisme folosite pentru accesarea datelor. De exemplu, n acest fel vor putea fi generate noi tabele sau va putea fi modificat structura unei tabele n mod programatic, n etapa de execuie a aplicaiilor (etapa run-time). n plus, acest mod unitar de organizare logic a ntregului coninut al bazei de date face ca manevrarea bazei de date s nu depind de coninutul ei, deci s poat fi realizat standardizarea accesului la coninutul bazei de date; consecina acestei standardizri este scoaterea metodelor de acces la baza de date n afara aplicaiilor i gestionarea lor unitar de ctre componentele SGBD. Regula 5. Regula limbajului de cereri - afirm c un SGBD relaional trebuie s ofere cel puin un limbaj de manevrare a datelor de nivel nalt, care s permit efectuarea urmtoarelor operaii: definirea tabelelor de date i a tabelelor virtuale din baza de date, manevrarea datelor, definirea restriciilor de integritate, autorizarea accesului la baza de date, definirea tranzaciilor. Un astfel de limbaj de cereri pentru baze de date relaionale este limbajul SQL (Structured Query Language).
1
2

vezi mai departe n capitolul curent idem

33

Regula 6. Regula de actualizare a tabelelor virtuale - afirm c ntr-o baz de date relaional tabelele virtuale (vederile) trebuie s poat fi actualizate. O tabel virtual reflect automat modificrile efectuate asupra datelor pe care le prezint, avnd n vedere faptul c n baza de date nu se memoreaz coninutul efectiv al vederii, n momentul generrii ei, ci este memorat numai descrierea modului n care se poate obine vederea. Prin intermediul acestei interfee ntre baza de date i vedere se pot realiza i transferurile de valori n sens invers, de la tabela virtual ctre tabela fizic, dar numai n cazul n care destinaia datelor n baza de date nu este ambigu. Regula 7. Regula limbajului de nivel nalt - afirm c pentru a fi relaional un SGBD trebuie s posede un limbaj de nivel nalt care s permit realizarea operaiilor de actualizare a bazei de date la nivelul unei relaii, aa cum un limbaj de interogare permite operaia de consultare a bazei de date. Regula 8. Regula independenei fizice a datelor - afirm c aplicaiile care utilizeaz o baz de date relaional nu trebuie s fie influenate de modificarea modului de memorare a datelor n memoria extern sau de modul de acces fizic la date. Aceast proprietate este garantat de respectarea autonomiei fizice a datelor din baza de date. Regula 9. Regula independenei logice a datelor - afirm c aplicaiile care utilizeaz o baz de date relaional nu trebuie s fie afectate de modificarea schemei relaionale a bazei de date. Modificarea organizrii logice a datelor fr afectarea programelor de aplicaie este posibil datorit autonomiei logice a datelor din baza de date relaional. Regula 10. Regula independenei mecanismului pentru integritatea datelor afirm c un SGBD relaional trebuie s asigure independena mecanismului de integritate a bazei de date prin memorarea restriciilor de integritate n afara codului de aplicaie, solidar cu datele din baza de date. n acest fel SGBDR asigur verificarea automat a respectrii regulilor de integritate la actualizarea bazei de date independent de modul de proiectare a aplicaiilor utilizator. Regula 11. Regula independenei datelor fa de distribuirea geografic a lor afirm c n cazul utilizrii unei baze de date relaionale n care datele sunt distribuite SGBD trebuie s asigure gestionarea datelor distribuite ntr-o manier transparent pentru utilizator i fr s afecteze cumva programele de aplicaie. Nu trbuie s fie necesar modificarea codului de aplicaie atunci cnd datele sunt stocate pe staii diferite dintr-o reea de calculatoare. Regula 12. Regula limbajului procedural (de nivel sczut) - afirm c dac un SGBDR accept un limbaj procedural, de obicei de nivel sczut, care s permit prelucrarea tabelelor din baza de date la nivel de tuplu i nu de relaie, acest limbaj nu trebuie utilizat n vederea ocolirii funciilor SGBDR de asigurare a integritii i consistenei bazei de date. El trebuie s respecte aceleai reguli i restricii de lucru cu baza de date relaional pe care le implementeaz SGBD prin componentele sale. Regulile lui Codd ofer criterii de analiz i de clasificare a diferitelor SGBDR, n funcie de modul n care acestea le respect. Indiferent de msura n care respect regulile lui Codd, cerinele considerate minimale pentru un SGBDR sunt:

34

organizarea n relaii a datelor din baza de date; ntre tabelele bazei de date s nu existe pointeri gestionai n mod explicit de utilizatori; - dintre operatorii relaionali s fie implementai operatorul de selecie, de proiecie i de uniune natural1. Un SGBD este considerat complet relaional dac este un SGBDR minimal i, n plus: - asigur toate operaiile de baz ale algebrei relaionale; - asigur regula entitii, regula unicitii cheii precum i restricia referenial. Toate aceste caracteristici care definesc un SGBDR vor fi prezentate n continuare. Modelul relaional a pornit de la un concept matematic: noiunea de relaie din teoria mulimilor i de la un model teoretic fundamentat matematic: modelul algebrei relaionale. Avantajele utilizrii acestui model matematic pentru dezvoltarea unui model de organizare a datelor ntr-o baz de date sunt urmtoarele: - ofer un instrument de studiu teoretic al proprietilor logice ale bazelor de date relaionale, care are avantajul c permite proiectantului bazelor de date s ia o decizie privind cea mai bun cale de proiectare a unei baze de date relaionale precum i calea optim de utilizare a ei, pornind de la proprietile teoretice ale modelului de organizare a datelor folosit; pe aceste proprieti teoretice se bazeaz i metodele de proiectare a sistemelor informatice ce utilizeaz baze de date relaionale; - dei iniial el a fost considerat doar un instrument teoretic pentru studiul proprietilor bazelor de date, pe msura dezvoltrii accelerate a performanelor echipamentelor de calcul electronic s-a constatat c modelul relaional poate fi implementat ca o soluie viabil de organizare a datelor i de proiectare a unui SGBD corespunztor; acest model ofer o manier simpl de formalizare a structurii bazei de date i un sistem de reguli clare privind modul de organizare a datelor n baza de date; - operarea asupra datelor din baza de date se realizeaz prin intermediul operaiilor interne mulimii relaiilor; acest lucru face posibil formalizarea matematic a acestor operaii, implementarea lor n funciile SGBD i gestionarea lor automat, sub controlul componentelor specializate ale SGBD (motorul SGBD); n felul acesta este posibil standardizarea i optimizarea operaiilor de acces la datele din baza de date relaional, modelul relaional al bazei de date asigurnd n totalitate independena fizic a datelor din baza de date; - dezvoltarea unor limbaje de manevrare a datelor neprocedurale, care implementeaz setul de operaii interne ale modelului matematic prin intermediul unor cereri ce pot fi formulate descriptiv i nu procedural, a permis deschiderea SGBD relaionale ctre categoria utilizatorilor
1

vezi subcapitolul urmtor

35

neinformaticieni, fapt pentru care majoritatea SGBD-urilor comerciale dezvoltate n ultimii ani se bazeaz pe modelul de date relaional; - analiza teoretic a modului de organizare i a proprietilor bazei de date relaionale, pornind de la un model fundamentat matematic, garanteaz calitatea algoritmilor implementai n definirea modelului de organizare a datelor n bazele de date relaionale i n generarea componentelor de gestiune a datelor din SGBD-ul relaional; - SGBD-ul relaional a putut s fie dezvoltat unitar, ca un sistem independent de platforma de calcul pe care funcioneaz, pornind de la conceptele i modelele matematice folosite; acest lucru a permis dezvoltarea de variante de SGBD-uri portabile precum i a tehnicilor de conectare prin date a bazelor de date relaionale gestionate de SGBD-uri diferite (interconectivitatea aplicaiilor dezvoltate pe baze de date relaionale). Dei criticat pentru unele imperfeciuni ale sale i preluat cu destul dificultate la nceput, modelul relaional s-a impus n faa celor anterioare (ierarhic i reea) fiind adoptat n anii '80 de majoritatea cercettorilor i programatorilor din domeniu, ca cel mai bun model disponibil la acea vreme pentru baze de date. Aceast utilizare pe scar larg a modelului relaional se menine nc i se datoreaz, n primul rnd, proprietilor sale principale: - simplitatea definirii sale, dublat de o mare rigurozitate din punct de vedere matematic; - independena fa de sistemul de calcul, fapt care a permis o mare rspndire i o rapid dezvoltare a variantelor sale; - deschiderea accentuat ctre utilizatorii neinformaticieni, inclusiv prin mijloacele mult mbuntite de asigurare a consistenei, integritii i siguranei bazei de date. Simplitatea modelului const n faptul c este uor de neles att de specialiti ct i de utilizatori. Datele i legturile dintre date sunt reprezentate explicit utiliznd o structur logic ce poart numele de relaie. Independena fa de sistemul de calcul const tocmai n definirea sistemului relaional pornind de la abstractizarea matematic ce a fcut ca acest sistem s fie mai nti fundamentat teoretic, independent de implementrile particulare ulterioare. Accesibilitatea n faa utilizatorilor neinformaticieni este asigurat, n primul rnd, de folosirea limbajelor de interogare, care sunt limbaje neprocedurale, descriptive, apropiate de modalitatea natural de formulare a unei cereri. n modelul relaional datele din baza de date sunt organizate n relaii. Noiunea de relaie se definete matematic drept o submulime a produsului cartezian a unei liste finite de mulimi, numite domenii. Un element al relaiei, numit tuplu, este definit, conform definiiei produsului cartezian de mulimi, ca un set ordonat de elemente aparinnd domeniilor. Numrul domeniilor, care nu trebuie s fie neaprat distincte, definete aritatea sau gradul relaiei. n cadrul unei relaii, un domeniu se identific printr-un nume (numit atribut i notat cu A) i se particularizeaz prin setul de valori ale acestui atribut (a1, a2, a3, ).

36

Mulimea tuturor atributelor unei relaii R definete schema relaiei care se noteaz cu R(A1,A2,,An). Cu un exces de notaie se poate simboliza la fel att relaia ct i schema acestei relaii, ceea ce pune n eviden numele relaiei, aritatea ei (n n exemplul dat) i mulimea atributelor sale. Prin urmare, o relaie de aritate n este o mulime de tupluri de cte n elemente fiecare, n care fiecare element al unui tuplu aparine, respectiv, cte unuia dintre cele n domenii i reprezint o valoare a atributului care desemneaz acel domeniu. Cum tuplurile sunt elemente ale unei mulimi, din proprietile unei mulimi rezult urmtoarele proprieti ale tuplurilor unei relaii: - nu conteaz ordinea de apariie a tuplurilor n relaie; bazat pe aceast proprietate, ordinea tuplurilor n relaie poate fi modificat pentru a obine o reprezentare convenabil a relaiei; - dou tupluri diferite ale relaiei trebuie s difere ntre ele; n consecin, un tuplu al unei relaii se poate identifica prin coninutul su (valorile pe care le nregistreaz, pentru toate atributele relaiei); aceast proprietate se afl la originea conceptului de cheie a unei relaii. O relaie mai poate fi definit i cu ajutorul funciilor. Se numete relaie mulimea funciilor diferite, definite fiecare pe mulimea atributelor i cu valori n mulimea determinat de reuniunea domeniilor, astfel nct pentru fiecare funcie valoarea funciei pentru un atribut s aparin domeniului definit de atributul respectiv. Din definiia cu funcii a relaiei rezult c nu conteaz ordinea n care apar atributele relaiei ci conteaz numai ca aceast ordine s fie aceeai pentru toate funciile care definesc relaia. Pentru a realiza o coresponden ntre cele dou definiii ale relaiei, unui tuplu al relaiei din definiia cu mulimi i corespunde mulimea valorilor unei funcii din definiia cu funcii a relaiei, cu condiia ca ordinea atributelor s fie aceeai n relaiile descrise de ambele definiii. Se numete cheie a unei relaii atributul sau mulimea de atribute ale relaiei ale cror valori la nivelul unui tuplu identific unic acel tuplu n cadrul relaiei i care nu include o submulime proprie (inclus strict) de atribute cu aceeai proprietate. Din definiia cheii unei relaii rezult c prin nlturarea oricrui atribut din cheie setul de atribute rmas nu mai are proprietatea de identificare unic a tuplului relaiei; n consecin, este necesar ca fiecare atribut al cheii s aib atribuit o valoare n orice tuplu, pentru ca valoarea cheii s permit identificarea unic a fiecrui tuplu. n legtur cu cheia unei relaii se fac urmtoarele observaii: - orice relaie are cel puin o cheie; la limit, cheia este format din toate atributele relaiei; - n general, pentru o relaie se identific mai multe chei ale relaiei; acestea se numesc chei candidat; - dintre toate cheile unei relaii se alege una singur, de obicei cea care conine numrul minim de atribute, i se desemneaz drept cheie primar a relaiei; celelalte chei candidat se numesc chei alternante; - cheia primar este folosit pentru identificarea, n mod unic, a fiecrui tuplu al relaiei; - cheia unei relaii are un caracter atomic, adic ea trebuie abordat integral: sau se atribuie valori tuturor atributelor cheii i atunci ea poate identifica

37

un tuplu din relaie, sau toate atributele au valoare nedeterminat i cheia nu poate referi nici un tuplu. Modelul relaional definete o structur de date organizate n relaii, unde o relaie corespunde unui grup de entiti omogene (obiecte ale lumii nconjurtoare avnd aceleai proprieti) sau unui set unitar de legturi ntre entiti. Mulimea relaiilor formeaz baza de date relaional iar mulimea schemelor relaiilor definete schema bazei de date relaionale. De exemplu, datele referitoare la exemplarele consultate de cititorii unei biblioteci, n toate slile de lectur, pot fi memorate n relaiile definite de urmtoarele scheme de relaie: Cititor(Nr-leg, CNP, nume, prenume, adres, telefon) Exemplar(Cod_ex, Cota, pre) Carte(Cota, ISBN, titlu, autori) Sala( Numr_sal, tip, capacitate) Consult(Nr-leg, Cod_ex, Cota, Numr_sal, data, ora, stare) Relaiile Cititor, Sala, Carte i Exemplar definesc seturile corespunztoare de entiti omogene. Relaia Consult definete legtura dintre relaiile corespunztoare entitilor Cititor, Exemplar i Sala. Trebuie spus c pentru stabilirea corect a relaiilor i a cheilor acestora este obligatorie precizarea semanticii atributelor i a legturilor logice dintre atribute. O clasificare a regulilor de integritate ale bazei de date are n vedere importana lor pentru asigurarea consistenei bazei de date; din acest punct de vedere se identific setul minimal de reguli de integritate. De exemplu, n cazul bazelor de date relaionale, regulile de integritate minimale sunt: - regula unicitii cheii: valoarea cheii primare pentru fiecare nregistrare a unei tabele a bazei de date trebuie s fie unic; - regula entitii: toate cmpurile ce fac parte din cheia primar a unei tabele trebuie s aib atribuite valori n orice nregistrare din tabel; - regula integritii refereniale: orice valoare atribuit unei chei strine, ntr-o tabel, trebuie s se regseasc n tabela n care cheia respectiv este cheie primar1. n fiecare relaie se stabilesc cheile candidat i se desemneaz cheia primar a relaiei; n legtur cu cheia primar a unei relaii se fac urmtoarele observaii: - cheia primar difer de cheile alternante numai din punct de vedere operaional: cheia primar este folosit de SGBD pentru identificarea unic a tuplurilor unei relaii i pentru operaiile de cutare n cadrul unei relaii din baza de date; - cheia primar este stabilit de proiectantul bazei de date i este comunicat SGBD la generarea bazei de date, de exemplu prin intermediul LDD;
1

Velicanu M.,Bodea C.,Lungu I.,Ioni C.,Bdescu G. - "Sisteme de gestiune a bazelor de date", Editura Petrion, Bucureti, 2000

38

cheia primar este folosit pentru identificarea, n mod unic, a fiecrui tuplu al relaiei; n acest scop, asupra cheii primare trebuie impuse ca restricii regula unicitii cheii i regula entitii; restricia privind unicitatea valorii cheii primare la nivelul relaiei semnific faptul c nu este permis ca ntr-o relaie s existe dou tupluri avnd aceeai valoare pentru atributele cheii primare; regula entitii impune restricia privind neacceptarea valorilor nedefinite pentru atributele cheii primare n nici un tuplu al relaiei; - odat definit ca i cheie primar, SGBD verific respectarea restriciei de unicitate a cheii i a regulii entitii de ctre aceast cheie; - prin convenie, n modelul de descriere a relaiilor, cheile primare sunt subliniate. Se definete drept cheie strin a unei relaii mulimea atributelor relaiei care au proprietatea c domeniile pe care le definesc se regsesc n alt relaie, ca domenii pe care este definit cheia primar a relaiei respective. Prin intermediul cheilor strine se realizeaz definirea legturilor logice dintre perechi de relaii, ntr-o baz de date relaional. n acest scop, cheia strin trebuie s ndeplineasc urmtoarele restricii: - nu exist dou tupluri ale unei relaii care s difere numai prin valoarea cheii strine - restricia referenial, care cere ca n cadrul fiecrui tuplu al relaiei n care apare, cheia strin s aib: fie valoare nedeterminat, fie valoarea cheii primare a unui tuplu din relaia de care este legat logic prin aceast cheie. Pentru a asigura consistena bazei de date relaionale, SGBD trebuie s poat asigura respectarea restriciei refereniale. n modelul relaional legturile dintre relaii se pot defini n dou moduri: - prin propagarea cheilor de la o relaie la alta, n cazul unor legturi binare de tip unu-la-unu sau unu-la-mai-muli; - prin definirea unei noi relaii, n cazul unor legturi binare de tip maimuli-la-mai-muli sau n cazul unor legturi care implic mai mult de dou relaii. n cazul unei legturi binare de tip unu-la-unu, unui tuplu din prima relaie i poate corespunde un singur tuplu din a doua relaie. n cazul unei legturi binare de tip unu-la-mai-muli, unui tuplu din prima relaie i pot corespunde mai multe tupluri din a doua relaie. Tuplul din prima relaie se identific prin cheia primar a acestei relaii. Definirea legturii logice prin propagarea cheii primare se realizeaz prin adugarea, n a doua relaie, a atributelor cheii primare din prima relaie, definind astfel n a doua relaie o cheie strin care corespunde cheii primare din prima relaie. Dac se impune restricia referenial cheii strine, atunci se poate identifica orice legtur logic ntre un tuplu din prima relaie (tuplu referit prin cheia primar) i tupluri din a doua relaie (tupluri care refer cheia primar prin intermediul valorii cheii strine). Atributele prin care se stabilete legtura ntre cele dou relaii aparin unor domenii compatibile, adic domenii echivalente semantic i ale cror mulimi de valori nu sunt disjuncte. De exemplu, legtura

39

unu-la-mai-muli dintre relaia Cititor i relaia Exemplar, cu privire la crile mprumutate de fiecare cititor la un moment dat, se definete prin intermediul cheii primare din relaia Cititor care devine cheie strin n relaia Exemplar, conform urmtoarelor scheme de relaie: Cititor(Nr-leg, CNP, nume, prenume, adres, telefon) Exemplar(Cod_ex, Cota, pre, Nr-leg, data_i) Se pot determina crile mprumutate de un cititor prin selectarea din relaia Exemplar a tuturor tuplurilor pentru care valoarea atributului Nr_leg este egal cu valoarea Nr_leg a cititorului. Se poate determina i data la care a fost mprumutat fiecare exemplar, din valoarea atributului data_i al relaiei Exemplar. Modelul definit permite evidena tuturor exemplarelor mprumutate, fr s se memoreze i istoricul acestor mprumuturi. Invers, legtura unu-la-mai-muli dintre relaia Exemplar i relaia Cititor cu privire la toi cititorii care au mprumutat o carte se definete prin intermediul cheii primare din relaia Exemplar care devine cheie strin n relaia Cititor, conform urmtoarelor scheme de relaie: Cititor(Nr_leg, CNP, nume, prenume, adres, telefon, Cod_ex, Cota, data_i) Exemplar(Cod_ex, Cota, pre) Se pot determina toi cititorii care au mprumutat o carte, prin selectarea din relaia Cititor a tuturor tuplurilor pentru care valoarea atributelor Cod_ex i Cota sunt egale fiecare cu valoarea ce identific unic cartea dorit. Se observ c, pentru a putea preciza data cnd cititorul a mprumutat exemplarul, trebuie adugat n relaia Cititor atributul data_i. n aceast variant, n cazul unui cititor care mprumut de mai multe ori acelai exemplar se va memora numai data ultimului mprumut. Legtura reflexiv se definete ca legtura logic ntre tupluri ale aceleiai relaii. Acest tip de legtur poate fi tratat ca un caz particular al legturii binare, prin introducerea, nc o dat, n schema relaiei a atributelor care definesc cheia primar a relaiei, de aceast dat pentru definirea cheii strine. Legtura reflexiv se modeleaz astfel: cheia strin a relaiei este cheia tuplului care refer iar cheia primar a relaiei este cheia tuplului referit. i n acest caz, cheia strin trebuie s respecte restricia referenial. De exemplu, legtura dintre bibliotecarul ef de secie i bibliotecarii subordonai se implementeaz prin relaia: Bibliotecar(Marca, nume, prenume, marca_c) Se pot determina toi subordonaii unui bibliotecar prin selectarea din relaia Bibliotecar a tuplurilor pentru care atributul marca_c are valoarea egal cu valoarea mrcii bibliotecarului considerat. Marca_c este cheie strin n relaia Bibliotecar i, prin intermediul ei, se modeleaz legtura reflexiv. Restricia referenial se aplic astfel: n cazul n care un bibliotecar nu este subordonat nimnui, atributul marca_c corespunztor nu va avea atribuit nici o valoare. n caz contrar, valoarea

40

atributului marca_c trebuie s fie egal cu una dintre valorile atributului Marca din relaia Bibliotecar. Legtura de tip mai-muli-la-mai-muli dintre dou relaii nu se mai poate defini prin metoda propagrii cheilor ci se definete prin intermediul unei noi relaii. Prin intermediul acestei noi relaii se modeleaz, practic, dou relaii de tip unu-la-mai-muli care se trateaz mpreun, adic noua relaie trebuie s permit identificarea fiecrei perechi de legturi unu-la-mai-muli care definete cte o legtur mai-muli-la-mai-muli. n acest scop, noua relaie trebuie s conin toate atributele corespunztoare cheilor primare ale celor dou relaii, atribute care determin cheia primar a noii relaii. De exemplu, legtura de tip mai-muli-lamai-muli dintre relaia Cititor i relaia Exemplar care ilustreaz faptul c un cititor poate imprumuta la un moment dat mai multe exemplare i c un exemplar poate fi mprumutat, n timp, la mai muli cititori, se descrie prin definirea noii relaii mprumut, conform urmtoarelor scheme de relaie: Cititor(Nr_leg, CNP, nume, prenume, adres, telefon) Exemplar(Cod_ex, Cota, pre) mprumut(Nr_leg, Cod_ex, Cota,data_i) Se pot determina toi cititorii care au mprumutat un exemplar, prin selectarea din relaia mprumut a tuplurilor care au valoarea dorit pentru atributul Cod_ex i pentru atributul Cota. Se observ c n acest caz se poate preciza, cu privire la fiecare cititor, data la care a mprumutat exemplarul. Se pot determina toate crile mprumutate de un cititor, prin selectarea din relaia mprumut a tuplurilor n care valoarea atributului Nr_leg este egal cu valoarea Nr_leg a cititorului. n acest caz se poate preciza data mprumutului fiecrui exemplar. Nici n acest exemplu nu este modelat cazul n care un cititor mprumut de mai multe ori acelai exemplar. n cazul n care cele dou relaii au atribute comune n cheile lor primare, aceste atribute particip de dou ori la formarea cheii primare a noii relaii, cte o dat pentru fiecare dintre cheile primare din care provin. Legturile de ordin mai mare dect doi pot fi modelate prin intermediul unei noi relaii. De exemplu, o legtur de ordin n > 2 poate fi privit ca un set de n legturi binare tratate unitar, prin intermediul unei noi relaii, a crei cheie primar se obine prin compunerea cheilor primare ale tuturor celor n relaii. n acest scop, noua relaie trebuie s conin atributele tuturor cheilor primare ale celor n relaii, atribute care alctuiesc cheia primar a noii relaii. n cazul n care, ntre cele n relaii, exist unele care au atribute comune n cheile lor primare, aceste atribute particip la formarea cheii primare a noii relaii de un numr de ori egal cu numrul cheilor primare n alctuirea crora intr. De exemplu, datele referitoare la exemplarele consultate de cititorii bibliotecii n slile de lectur pot fi obinute din relaiile definite de urmtoarele scheme de relaie: Cititor(Nr_leg, CNP, nume, prenume, adres, telefon) Exemplar(Cod_ex, Cota, pre) Sala( Numr_sal, tip, capacitate)

41

Consult(Nr_leg, Cod_ex, Cota, Numr_sal, data, ora) Se poate determina ce cititori se afl ntr-o sal, la un moment dat, prin selectarea din relaia Consult a tuplurilor n care valoarea atributului Numr_sal este egal cu numrul slii dorite i n care valorile atributelor data i ora sunt cele dorite. Tuplurile selectate conin identificatorul pentru toi cititorii i toate exemplarele consultate de fiecare cititor, n acea sal, n momentul considerat. Pentru a determina toate exemplarele consultate de un anumit cititor, ntr-o sal, se selecteaz tuplurile din relaia Consult care au atributul Nr_leg egal cu valoarea Nr_leg a cititorului i valoarea atributului Numr_sal egal cu numrul slii dorite; se observ c se obine, pentru fiecare exemplar consultat de cititor, data i ora cnd au fost consultate ultima dat. n concluzie, se poate spune c o baz de date relaional reprezint o mulime de relaii semantic legate ntre ele, dou cte dou, prin seturi de atribute comune ce definesc cheia primar, respectiv cheia strin, pentru fiecare pereche de relaii. ntr-o baz de date relaional, o relaie se poate reprezenta printr-un tabel, n care: - fiecare linie (rnd) reprezint un tuplu care pentru o relaie n-ar este un ansamblu de n elemente; - fiecare coloan reprezint un domeniu, numrul de domenii ale relaiei determinnd aritatea sau gradul relaiei; - sunt respectate urmtoarele reguli: o fiecare rnd al tabelului trebuie s fie diferit de celelalte (tupluri distincte); o ordinea rndurilor n tabel nu este predefinit i poate fi modificat; o coloanele tabelului sunt identificate prin nume distincte reprezentnd atributele relaiei; o pentru fiecare coloan a tabelului, realizrile sunt de acelai fel, constituind un domeniu; o nu conteaz ordinea de apariie a coloanelor n tabel; o orice tuplu al relaiei este identificat unic prin intermediul valorii unui atribut sau a unei combinaii de atribute care formeaz cheia primar pentru relaia definit de tabel. Definirea modelului schemei conceptuale pentru o baz de date relaional presupune definirea schemei bazei de date, format din schemele tuturor relaiilor care alctuiesc baza de date (care includ i definirea legturilor logice dintre aceste relaii) i a restriciilor care definesc regulile de integritate ale bazei de date. Un model relaional de baze de date se caracterizeaz prin trei elemente principale: 1. structura datelor, care presupune definirea unor domenii i a relaiilor n-are; 2. integritatea datelor, prin impunerea unor restricii privitoare la valorile ce pot fi nregistrate ntr-un tuplu i ntr-o relaie; 3. corelarea datelor, prin precizarea legturilor logice care acioneaz asupra datelor i a naturii acestor legturi.

42

3.3.2.

Operatorii relaionali

Pe mulimea relaiilor, n accepiune matematic, se definesc operaii, prin intermediul unor operatori interni acestei mulimi. Se numete operator intern pentru o mulime operatorul ai crui operanzi aparin mulimii respective, rezultatul furnizat fiind tot din mulime. Pentru mulimea relaiilor, operatorii interni se numesc operatori relaionali. Aceste operaii sunt folosite pentru formalizarea limbajului de cereri al SGBDR. Ele sunt implementate, integral sau parial, n funciile de manevrare a datelor ale SGBDR i sunt oferite utilizatorilor bazei de date relaionale prin intermediul comenzilor limbajului de manevrare a datelor sau a limbajului de interogare ale SGBDR. Operatorii relaionali ce stau la baza limbajelor de manevrare a datelor din bazele de date relaionale se mpart n dou categorii, dup modul n care sunt definii: de baz i derivai. n funcie de categoria de operatori relaionali pe care i utilizeaz, limbajele de cerere pentru bazele de date relaionale pot fi: limbaje bazate pe algebra relaional i limbaje bazate pe calculul predicatelor. n cadrul algebrei relaionale, definite pe mulimea relaiilor cu un numr finit de tupluri, se definesc un set de operaii de baz, realizate cu operatori relaionali numii operatori de baz. Pornind de la operaiile de baz, pot fi definite i alte operaii, numite operaii derivate. Limbajul de manevrare a datelor bazat pe operaiile algebrei relaionale este un limbaj procedural. O cerere de consultare a bazei de date se transform ntr-o succesiune de operaii ale algebrei relaionale care se aplic relaiilor din baza de date. Fiind operaii interne, rezultatul furnizat de fiecare operaie este tot o relaie, fapt care permite nlnuirea acestor operaii. Se numete limbaj complet un limbaj de manevrare a datelor care implementeaz tot setul operatorilor de baz din algebra relaional. Operaiile de baz definite n algebra relaional sunt: 1. Reuniunea relaiilor. 2. Diferena relaiilor. 3. Produsul cartezian al relaiilor. 4. Proiecia unei relaii. 5. Selecia unei relaii. Operaiile derivate din operaiile de baz sunt: 1. Intersecia relaiilor. 2. Ctul relaiilor. 3. Uniunea relaiilor. 4. Uniunea natural a relaiilor. 5. Uniunea extern a relaiilor. Reuniunea se definete ntre dou relaii care au aceeai schem definit pentru aceleai domenii. Rezultatul reuniunii celor dou relaii este o relaie cu aceeai schem, definit pentru aceleai domenii, care conine toate tuplurile celor dou

43

relaii, considerate o singur dat. Schema reuniunii relaiilor R(A1,A2,,An) i S(A1,A2,,An) este: (R U S)(A1,A2,,An). Dac se consider relaiile R i S cu aceeai schem R(vocale, consoane, cifre), S(vocale, consoane, cifre), rezultatul reuniunii R U S va fi urmtorul:

a a e i x y z 4 6 o 8 e f h 2 5 e = i e o

x y z f h

4 6 8 2 5

Diferena se definete ntre dou relaii care au aceeai schem definit pentru aceleai domenii. Rezultatul diferenei celor dou relaii este o relaie cu aceeai schem, definit pentru aceleai domenii, care conine toate tuplurile din prima relaie ce nu aparin celei de-a doua relaii. Schema diferenei relaiilor R(A1,A2,,An) i S(A1,A2,,An) este (R \ S)(A1,A2,,An). Spre exemplificare se consider relaiile R i S cu aceeai schem, R(vocale, consoane, cifre), S(vocale, consoane, cifre); rezultatul diferenei R \ S va fi:

a e i

x y z

4 6 8 \

e o

y h

6 5

a i

x z

4 8

Produsul cartezian se definete ntre dou relaii R(A1,A2,,Ar), de aritate r i S(B1,B2,,Bs), de aritate s, care au schema definit pentru domenii oarecare. Rezultatul produsului cartezian al celor dou relaii este o relaie de aritate r+s care conine toate tuplurile ce pot fi formate prin concatenarea unui tuplu din R cu cte un tuplu din S. Schema produsului cartezian dintre relaiile R(A1,A2,,Ar) i S(B1,B2,,Bs) este (RxS)(A1,A2,,Ar,B1,B2,,Bs). Pentru exemplificare, fie relaiile R(vocale,consoane,cifre) i S(par,impar); produsul cartezian va fi o relaie cu schema (R x S) (vocale,consoane,cifre, par,impar).

a e i

x y z

4 6 6 X 8 8

a e 3 = i 1 a e i

x y z x y z

4 6 8 4 6 8

6 6 6 8 8 8

3 3 3 1 1 1

44

Dac schemele relaiilor R i S au atribute comune, atunci n schema produsului cartezian apar de dou ori aceleai atribute. Pentru a nu produce confuzii, atributele respective pot fi calificate cu numele relaiei din care provin sau pot fi redenumite. Proiecia se definete pentru o relaie R(A1,A2,,Ar) de aritate r i pentru o submulime de atribute din schema acestei relaii P={P1,P2,,Pi} cu i < r i P A pentru A={A1,A2,,Ar} . Rezultatul proieciei relaiei dup aceast subschem de atribute este relaia de aritate i, cu schema P, care conine toate tuplurile cu proprietatea c provin din tuplurile relaiei R prin nlturarea valorilor atributelor din A \ P. Schema relaiei rezultat prin proiecia relaiei R(A1,A2,,Ar) dup atributele din P={P1,P2,,Pi} este de forma: (

P R ) ( P ,P ,,P ).
1 2 i

Fie relaia R(vocale,consoane,cifre) i mulimea P={vocale,cifre}. Schema relaiei rezultate prin proiecie este ( R ) (vocale,cifre), exemplificat astfel:

P
,

a R= e i

x y z

4 6 8

a vocale , cifre(R) = e i

4 6 8

Selecia se definete pentru o relaie R(A1,A2,,Ar) de aritate r i pentru o expresie logic e aplicat asupra tuplurilor relaiei. Rezultatul seleciei relaiei R n raport cu aceast expresie este o relaie avnd aceeai schem i care conine toate tuplurile din R pentru care expresia e este adevrat. Schema relaiei rezultate prin selecia relaiei R(A1,A2,,Ar) pentru expresia e este de forma: (

R)(A ,A ,,A ).
e 1 2 r

Expresia e poate fi definit i pe un subdomeniu al schemei relaiei. Expresia e se definete cu ajutorul operatorilor de comparare sau al celor logici. Pentru relaia R(vocale,consoane,cifre) i expresia vocale < consoane1 rezultatul seleciei este urmtorul:

Compararea caracterelor se va face pe baza valorilor din codul ASCII.

45

a R= e i

x b m

4 6 , 8

vocale <consoane (R) =

a i

x m

4 8

Intersecia se definete ntre dou relaii care au aceeai schem definit pentru aceleai domenii. Rezultatul interseciei celor dou relaii este o relaie cu aceeai schem definit pentru aceleai domenii care conine toate tuplurile care aparin, n acelai timp, ambelor relaii. Schema interseciei relaiilor R(A1,A2,,An) i S(A1,A2,,An) este: (R S)(A1,A2,,An). Intersecia este o operaie derivat din diferen, deoarece: (R S)(A1,A2,,An) = (R\(R \ S))(A1,A2,,An). Dac se consider relaiile R i S cu aceeai schem R(vocale, consoane, cifre), S(vocale, consoane, cifre), rezultatul interseciei R S va fi urmtorul:

a e i

x y z

4 6 8

e o

y h

6 5

= e

Ctul se definete ntre dou relaii Q(A1,A2,,Aq), de aritate q i S(B1,B2,,Bs), de aritate s care ndeplinesc condiiile: q > s, s 0 i schema relaiei Q include strict schema relaiei S, adic B A, pentru B={B1,B2,,Bs} i A={A1,A2,,Aq}. Rezultatul ctului celor dou relaii este o relaie de aritate q-s, cu schema definit pentru A \ B, care conine toate tuplurile de q-s elemente care, completate cu cte un tuplu din S, determin un tuplu din Q. Schema relaiei obinute din ctul dintre relaiile Q(A1,A2,,Aq) i S(B1,B2,,Bs) este de forma: (Q / S)(P1,P2,,Pq-s), unde, dac P={ P1,P2,,Pq-s }, atunci P=A\B. Ctul este operaia invers produsului cartezian, n sensul c: (R x S)/R = S i (R x S)/S = R. Pentru relaiile Q(vocale,consoane,cifre,par,impar) i S(vocale,consoane,cifre) ctul Q / S va fi:

a e i a e i

x y z x y z

4 6 8 4 6 8

6 6 6 8 8 8

3 3 3 1 1 1

a e i

x y z

4 6 6 = 8 8

3 1

46

Uniunea se definete ntre dou relaii R(A1,A2,,Ar), de aritate r i S(B1,B2,,Bs), de aritate s, pentru condiia c(i,j). Rezultatul uniunii celor dou relaii este o relaie de aritate r+s, cu schema definit pentru A U B, unde A={A1,A2,,Ar} i B={B1,B2,,Bs}, care conine toate tuplurile produsului cartezian al relaiilor R i S pentru care este ndeplinit condiia c(ai,bj), unde ai este valoarea atributului Ai din tuplu i bj este valoarea atributului Bj din tuplu. Schema relaiei obinute prin uniunea dintre relaiile R(A1,A2,,Ar) i S(B1,B2,,Bs) este de forma: (R

|>< | S)(A ,A ,,A B ,B ,,B ).


1 2 r, 1 2 s

c(i, j )

Operaia de uniune mai este numit join. n cazul n care condiia c(i,j) este de forma ai=bj, atunci uniunea poart numele de echiuniune. n cazul n care se consider proiecia uniunii, dup atributele primei relaii, atunci operaia poart numele de semi-uniune stng i schema ei relaional este de forma: (R|

|><| S)(A ,A ,,A ).


1 2 r

c(i, j )

n cazul n care se consider proiecia uniunii, dup atributele celei de-a doua relaii, atunci operaia poart numele de semi-uniune dreapt i schema ei relaional este de forma: (R

|><| |S)( B ,B ,,B ).


1 2 s

c(i, j )

Uniunea este o operaie obinut prin aplicarea seleciei pentru expresia e=c(ai,bj) asupra produsului cartezian al relaiilor R i S: (R

|>< | S)(A ,A ,,A B ,B ,,B )= (


1 2 r, 1 2 s

(R x S))( A1,A2,,Ar,B1,B2,,Bs).

c(i, j )

Plecnd de la relaiile R(vocale,consoane,cifre) i S(par,impar) se obine uniunea n doi pai prin intermediul operaiilor de baz produs cartezian i selecie. Pasul 1. Se face produsul cartezian R(vocale,consoane,cifre) x S(par,impar) = T(vocale,consoane,cifre,par,impar)

47

a e a e i x y z 4 6 8
X

x y z x y z

4 6 8 4 6 8

6 6 6 8 8 8

3 3 3 1 1 1

6 8

3 1 =

i a e i

Pasul 2. Se realizeaz selecia asupra relaiei T dup condiia cifre<par1, adic se filtreaza tuplurile relaiei T conform condiiei cifre<par:

a e

x y z x y z

4 6 8 4 6 8

6 6 6 8 8 8

3 3 3 1 1 1 e y 6 8 1 = a a x x 4 4 6 8 3 1

cifre< par

i a e i

Rezultatul obinut este:

a e i

x y z

4 6 6 8 cifre<par 8 3 = 1

a a e

x x y

4 4 6

6 8 8

3 1 1

Uniunea natural (natural join) se definete ntre dou relaii R(A1,A2,,Ar), de aritate r i S(B1,B2,,Bs), de aritate s, care au o submulime de atribute comune
1

Compararea caracterelor se va face pe baza valorilor din codul ASCII.

48

n schema lor relaional. Fie A={A1,A2,,Ar}, B={B1,B2,,Bs} i P=A B, cu P={P1,P2,,Pp}, mulimea atributelor comune celor dou relaii. Uniunea natural a relaiilor R i S este obinut din mulimea tuplurilor produsului cartezian dintre R i S , pentru care atributele comune din cele dou relaii au valori egale, asupra creia se realizeaz o proiecie, dup atributele mulimii (A U B). Rezultatul uniunii naturale a celor dou relaii este o relaie de aritate r+s-p, cu schema definit pentru (A U B) = {A'1,A'2,,A'r+s-p}. Schema relaiei obinute prin uniunea natural dintre relaiile R(A1,A2,,Ar) i S(B1,B2,,Bs) este de forma: (R

|><| S)( A' ,A' ,,A'


1 2

r+s-p).

Uniunea natural este o operaie obinut prin aplicarea proieciei pentru (A U B) asupra seleciei dup valorile egale ale atributelor din P asupra produsului cartezian al relaiilor R i S : (R

|><| S)( A' ,A' ,,A'


1 2

r+s-p)=

(AUB)

e(P)

(R x S)))( A'1, ,A'r+s-p).

Pasul 1. Se realizeaz produsul cartezian R(vocale,consoane,cifre) x S(cifre,par) = T(vocale,consoane,cifre, cifre,par).

a a e i x y z 4 6 8 6 8 4 2 = e i a e i

x y z x y z

4 6 8 4 6 8

6 6 6 8 8 8

4 4 4 2 2 2

Pasul 2. Se determin condiia pentru selecie. R = { vocale,consoane,cifre} i S = {cifre,par} sunt mulimile atributelor celor dou relaii. Intersecia lor {vocale,consoane,cifre} {cifre,par} = {cifre} va furniza atributul dup care se va face selecia. Condiia pentru selecie va fi ca valorile pentru atributul cifre din R s fie egale cu valorile pentru atributul cifre din S, notat cu ajutorul operatorului de calificare . (punct) astfel:

49

R . cifre = S . cifre , pentru orice tuplu selectat. Pasul 3. Se face selecia asupra produsului cartezian obinut: T(vocale, consoane, cifre, cifre, par).

a e

x y z x y z

4 6 8 4 6 8

6 6 6 8 8 8

4 4 4 2 2 2 = e y i z 6 8 6 4 8 2

R.cifre=S.cifre

i a e i

Pasul 4. Se realizeaz proiecia asupra relaiei rezultate din selecia de la pasul 3 dup submulimea de atribute R U S = {vocale,consoane,cifre,par} astfel:

(vocale, consoane,cifre, par)

e i

y z

6 8

6 8

4 2

e i

y z

6 8

4 2

Rezultatul final al operaiei de uniune natural va fi:

a e i

x y z

4 6 8

6 8

4 2 =

e i

y z

6 8

4 2

Uniunea extern (outer join) se definete ntre dou relaii R(A1,A2,,Ar), de aritate r i S(B1,B2,,Bs), de aritate s, care au o submulime de atribute comune n schema lor relaional. Uniunea extern este o relaie avnd aceeai schem cu uniunea natural a celor dou relaii i conine, pe lng tuplurile uniunii naturale i tuplurile relaiilor R sau/i S pentru care nu este ndeplinit condiia ca atributele

50

comune din cele dou relaii s aib valori egale. Tuplurile care se adaug uniunii naturale sunt selectate dup cum urmeaz: 1. Pentru operaia de uniune extern stng (left outer join) se adaug numai tuplurile din relaia R. Se obine din uniunea natural, plus tuplurile din prima relaie care nu au corespondent n a doua.

a e i

x y z

4 6 8 |

6 8

4 2 =

e i a

y z x

6 8 4

4 2 null

2. Pentru operaia de uniune extern dreapt (right outer join) se adaug numai tuplurile din relaia S. Se obine din uniunea natural, plus tuplurile din a doua relaie care nu au corespondent n prima.

a e i

x y z

4 6 8 |

6 8 7

4 2 6 =

e i null

y z null

6 8 7

4 2 6

3. Pentru operaia de uniune extern complet (full outer join) se adaug i tuplurile din relaia R i tuplurile din relaia S. Se obine din uniunea natural, plus tuplurile din prima relaie care nu au corespondent n a doua i tuplurile din a doua relaie care nu au corespondent n prima .

a e i

x y z

4 6 8 | |

6 8 7

4 2 6 =

e i a

y z x

6 8 4 7

4 2 null 6

null null

A doua categorie de operatori interni pentru mulimea relaiilor sunt operatorii oferii de calculul relaional. Calculul relaional opereaz asupra relaiilor prin intermediul operaiilor specifice calculului predicatelor. Asupra unei relaii se aplic un predicat (o condiie) care determin mulimea tuplelor care definesc relaia rezultat. Predicatele se refer la proprietile pe care trebuie s le ndeplineasc elementele bazei de date. n funcie de natura elementelor asupra crora se formuleaz condiiile, calculul relaional se mparte n:

51

- calculul relaional pe tupluri; - calculul relaional pe domenii. O cerere de consultare a bazei de date formulate n termenii calculului relaional trebuie s realizeze o descriere a rezultatului dorit, prin prisma proprietilor elementelor relaiei implicate. Aceste elemente sunt fie tupluri fie domenii ale relaiei. Prin natura operaiilor cu care lucreaz, calculul relaional ofer o modalitate declarativ de formulare a cererilor; de aceea, limbajele de manevrare a datelor care se bazeaz pe calculul relaional sunt limbaje neprocedurale. nc din 1970, Edgar Codd sugera "adoptarea unui model relaional de organizare a datelor care s permit dezvoltarea unui sub-limbaj universal de gestiune a datelor, care s fie bazat pe calculul predicatelor". Utilitatea unui limbaj "universal" de cerere este motivat de necesitatea dezvoltrii de SGBD portabile, precum i de necesitatea comunicrii i a conectrii prin date a diferitelor variante de SGBD. Posibilitatea realizrii unui astfel de limbaj pentru accesul la baze de date relaionale este asigurat de faptul c, prin intermediul operatorilor relaionali, accesul la baza de date este standardizat i nu depinde dect de mecanismele de operare cu relaiile bazei de date prin intermediul acestor operatori. Utilizarea calculului relaional pentru formularea limbajului de cerere imprim caracterul neprocedural acestui limbaj, fapt care i mrete accesibilitatea chiar i pentru utilizatorii neinformaticieni. Calculul relaional pe tupluri a fost introdus de Edgar Codd. Enunurile cu care opereaz sunt expresii definite asupra unui tuplu, folosind atomi i operatori. Atomii sunt enunuri cu valoare de adevr de forma: - "t este un tuplu al relaiei R"; - "comp(t[i],u[j])" , unde comp este un operator de comparare (egalitate, inegalitate, mai mare, mai mic), t i u sunt tupluri iar t[i] i u[j] reprezint elementul i din tuplul t, respectiv elementul j din tuplul u; - "comp(t[i],c)" , similar cu enunul precedent, cu c constant. Expresiile se construiesc iterativ, pornind de la atomi, prin aplicarea operatorilor: - conectori (i, sau, non); - cuantificatori (existenial, universal). Calculul relaional pe domenii opereaz tot cu expresii, dar acestea sunt definite pe domenii; mai precis, utilizeaz valori ale atributelor ce definesc domeniile. Corespunztor, accepiunea noiunii de atom devine: - "(a1,a2,,ar) este un tuplu al relaiei R", n care R este o relaie de aritate r; - "comp(ai,bj)", ca la calculul relaional pe tupluri, dar ai este o valoare a atributului Ai iar bj este o valoare a atributului Bj; - "comp(ai,c)", ca mai sus, cu c este o constant. Expresiile se construiesc n aceeai manier, utiliznd aceiai operatori. Formaliznd i fundamentnd aceste operaii cu un aparat teoretic matematic, se demonstreaz c orice expresie din calculul relaional pe tupluri poate fi

52

transformat ntr-o expresie echivalent din calculul relaional pe domenii i ntr-o expresie echivalent din algebra relaional1. Concluzia este c, pentru a defini un limbaj relaional de manevrare a datelor, pot fi utilizai oricare dintre operatorii relaionali prezentai. Este unul dintre motivele pentru care exist astzi o multitudine de SGBDR i de limbaje de cerere corespunztoare lor. Diferena se simte, n primul rnd, la gradul de accesibilitate al limbajului generat iar mai apoi la nivelul de resurse necesare. 3.3.3. Normalizarea bazelor de date relaionale

Pentru proiectarea unei baze de date relaionale trebuie definit schema bazei de date, care este format din schemele relaiilor bazei de date. n acest scop, se determin domeniile pe care vor fi definite relaiile, modul de grupare a lor pentru delimitarea fiecrei relaii, legturile logice din interiorul fiecrei relaii i dintre relaii. Schema unei relaii definete numele relaiei i mulimea atributelor acelei relaii. Prin intermediul schemei unei relaii se definete modul de grupare a datelor n interiorul relaiei i se determin regulile care vor guverna relaia, definind restriciile la care se supun datele i legturile logice dintre datele acelei relaii. Legturile logice dintre relaii sunt definite prin intermediul domeniilor compatibile care determin atributele comune ale relaiilor. De modul n care sunt grupate domeniile n relaii depinde complexitatea legturilor care se definesc ntre relaii. Cazurile extreme sunt: definirea unei singure relaii care include n schema ei atributele tuturor domeniilor identificate sau definirea numrului maxim de relaii posibile care s permit modelarea legturilor dintre i din interiorul fiecrei relaii. n cazul utilizrii unei relaii prea cuprinztoare, apar probleme legate de redundana datelor, care antreneaz apariia anomaliilor de actualizare a relaiei (anomalia de adugare, anomalia de tergere i anomalia de modificare). De exemplu, utilizarea relaiei: Exemplar(Cod_ex, Cota, pre, nr_leg, CNP, nume, prenume, adres, telefon, data) permite evidena tuturor operaiilor de mprumut curente, realizate de fiecare cititor. Astfel, pentru fiecare exemplar gestionat n bibliotec, se genereaz cte un tuplu al relaiei iar n fiecare tuplu se memoreaz datele cititorului, de fiecare dat cnd un cititor mprumut acest exemplar, precizndu-se i data mprumutului. La returnarea exemplarului mprumutat, tuplul corespunztor este actualizat cu data returnrii i sunt terse datele despre cititorul care a returnat exemplarul. Inconvenientele apar la operaiile de actualizare a datelor relaiei: - se constat, de exemplu, redundana datelor relativ la atributele nume i prenume cititor, a cror valoare se repet pentru fiecare exemplar de carte mprumutat de acelai cititor;
1

Bsc O. - "Baze de date", Editura ALL, Bucureti, 1997

53

anomalia de adugare se poate exemplifica prin faptul c nu se poate lua n eviden un nou cititor dect dac acesta mprumut o carte; - anomalia de tergere, inversa anomaliei de adugare, apare atunci cnd cititorul nu mai are mprumutat nici o carte (la returnarea ultimei cri); n tuplul corespunztor sunt nlturate datele sale personale i cititorul dispare din relaie; - anomalia de modificare se refer, de exemplu, la faptul c modificarea numelui unui cititor ar trebui fcut n toate tuplurile n care apare, pentru meninerea consistenei relaiei. Se poate reduce redundana i implicit nltura anomaliile pe care le generase, de exemplu prin definirea urmtoarelor dou relaii: Cititor(Nr-leg, CNP, nume, prenume, adres, telefon) Exemplar(Cod_ex, Cota, pre, nr_leg, data) Se constat c redundana a fost nlturat din relaia Exemplar prin definirea relaiei Cititor, care conine atributele legate de cititor. Inconvenientul care apare acum este c, dac se dorete s se cunoasc numele tuturor cititorilor care au mprumutat o anumit carte trebuie s se cupleze cele dou relaii, prin intermediul atributului nr_leg. Operaia de cuplare a dou relaii (natural join) este o operaie costisitoare, deoarece implic realizarea produsului cartezian al celor dou relaii. Teoretic, schema bazei de date se realizeaz pornind de la identificarea grupelor de entiti omogene i a proprietilor lor care determin atributele ce definesc relaiile respective. n practic este de multe ori dificil determinarea atributelor care caracterizeaz fiecare grup de entiti i delimitarea acestor atribute pentru a defini relaiile care caracterizeaz entitile i relaiile care descriu legtura dintre entiti. n plus, n definirea schemei bazei de date trebuie s se in cont de rezolvarea urmtoarei dileme: cu ct numrul relaiilor este mai mic, cu att crete riscul apariiei redundanelor i cu ct numrul relaiilor este mai mare, cu att scade posibilitatea nregistrrii de redundane n baza de date dar devin tot mai costisitoare cererile de consultare a bazei de date care implic accesul la datele din mai multe relaii, deoarece acestea se realizeaz utiliznd operaia de cuplare (join) ntre relaii. n concluzie, apare necesitatea definirii unei metode de optimizare a schemei bazei de date relaionale, pentru nlturarea redundanelor i a anomaliilor pe care le genereaz acestea dar i pentru a permite definirea tuturor legturilor care exist n realitate, ntre grupuri diferite de entiti. Metoda se numete normalizarea relaiilor din baza de date relaional i este un proces iterativ, n care se pornete de la o schem a bazei de date, determinat empiric, i se aplic transformri succesive asupra schemelor de relaie care o alctuiesc. Normalizarea se bazeaz pe formalizarea legturilor logice, numite dependene, ce exist ntre atributele unei relaii i pe analiza acestor dependene. Dependenele care se definesc ntre atributele unei relaii au fost mprite n trei categorii:

54

3.3.3.1.

dependene funcionale; dependene multivaloare; dependene de uniune.

Formele normale ale unei baze de date relaionale

Existena, n cadrul relaiilor, a dependenelor funcionale este natural. De exemplu, dependena funcional a fiecrui atribut fa de cheia primar a relaiei. Dependenele (de orice fel) reprezint constrngeri semantice referitoare la realitatea modelat. Ele constituie informaii suplimentare asociate relaiei, informaii care nu pot fi nglobate n reprezentarea relaiei prin metodele utilizate pn acum (atribute, restricii de integritate, chei, etc.). Dependenele nu pot fi demonstrate, ele pot fi doar verificate prin confruntare cu realitatea i pot fi considerate ca ipoteze de lucru privind realitatea modelat avnd implicaii n modelarea corect a realitii. Stabilirea dependenelor este o decizie de proiectare, la fel ca stabilirea relaiilor i a atributelor din baza de date. Stabilirea corect a dependenelor determin calitatea modelului obinut. Dependenele definite pentru schema unei relaii pot fi considerate constrngeri de integritate a datelor pentru relaia respectiv iar implementarea lor n baza de date relaional se face prin normalizarea relaiei respective. Normalizarea relaiilor din baza de date este procesul prin care se determin schema optim a bazei de date, din punctul de vedere al modelrii legturilor existente n cadrul relaiilor i ntre relaii i pentru reducerea redundanei n baza de date. Procesul de normalizare a relaiilor bazei de date este unul iterativ, de transformare n forme normale succesive, pn la atingerea ultimei forme normale. Aceast transformare se face prin descompunerea cte unei relaii (nenormalizate) n relaii echivalente, pn cnd toate relaiile obinute sunt normalizate. Se pornete de la identificarea atributelor relaiei care se normalizeaz i a dependenelor care exist ntre aceste atribute; n funcie de natura dependenelor identificate se determin forma normal n care se ncadreaz relaia; prin aplicarea regulilor de normalizare, se transform relaia iniial ntr-un set de relaii echivalente, care aparin unei forme normale superioare, amd. Edgar Codd a definit primele trei forme normale. Acestea pot fi determinate pe baza dependenelor funcionale din cadrul relaiei. A treia form normal a fost ulterior redefinit de Codd i Boyce. Ultimele dou forme normale sunt definite de Fagin. A patra form normal se definete pe baza dependenelor multivaloare iar a cincea form normal, pe baza dependenelor de uniune. Formele normale impun condiii din ce n ce mai restrictive asupra relaiilor. O relaie aflat pe un anumit nivel de normalizare satisface restriciile impuse de toate formele normale de pe nivelurile inferioare i din acest motiv, formele normale se definesc n secvena dat de nivelul lor.

55

3.4. Modelele pentru proiectarea unei baze de date


Proiectarea unei baze de date se abordeaz n mod unitar, pornind de la universul real care se modeleaz, n scopul definirii schemei conceptuale a datelor. n acest scop este necesar identificarea datelor care vor forma baza de date i a caracteristicilor definitorii ale acestor date. Se pornete de la caracteristicile intrinseci ale datelor i se determin legturile logice dintre ele, conform fenomenelor reale i nu dup necesitile de prelucrare a datelor n sistemul informatic. n figura 4-8 este reprezentat modelul de proiectare a unei baze de date, incluznd paii care conduc la realizarea celor trei scheme, intercorelate logic, ce definesc n final baza de date. Pentru a realiza o abordare unitar i o proiectare eficient a bazei de date, se folosesc metode de proiectare care utilizeaz ca instrumente de lucru modelele de date. De obicei se utilizeaz metode unitare de proiectare a ntregului sistem informatic, n cadrul crora sunt definite metode pentru proiectarea structurilor de date din sistemul informatic.

Universul real 5. Confruntare 1. Analiz

Utilizatori 3. Formulare cerine Schema extern

Baza de cunotine 2. Abstractizare

7. Implementare Schema conceptual 4. Corelare Schema intern

6. Generare

Figura 3-8. Proiectarea unei baze de date

Proiectarea unei baze de date este activitatea care se refer la definirea structurii bazei de date. De calitatea acestei etape depinde corectitudinea i completitudinea datelor din baza de date, precum i fiabilitatea i eficiena n exploatare a bazei de date. Activitatea de proiectare a unei baze de date include: - etapa de modelare a structurii bazei de date; - etapa de definire a bazei de date, utiliznd LDD al SGBD ales;

56

etapa de ncrcare a datelor de test i de testare a corectitudinii structurii definite; - etapa de meninere a bazei de date pe perioada exploatrii ei, etap care include rezolvarea eventualelor erori aprute n exploatarea bazei de date, mbuntirea performanelor de exploatare a bazei de date, dezvoltri ulterioare, etc. Chiar i n condiiile organizrii datelor ntr-o baz de date i a utilizrii unui SGBD pentru gestionarea datelor, fapt care determin independena logic a datelor fa de programele de aplicaie, este necesar corelarea structurilor de date cu algoritmii de prelucrare care vor fi utilizai de aplicaii; de exemplu: - numrul i coninutul cheilor de indexare ale tabelelor de date se determin i n funcie de prelucrrile care vor fi realizate asupra datelor - modul de utilizare a datelor determin operaiile permise asupra datelor i, mai ales, operaiile nepermise, care definesc constrngerile pornind de la care se genereaz regulile de integritate a bazei de date. Aceast corelare se face n faza de definire a modelelor de date i a modelelor de prelucrri, care vor descrie schematic structura viitoarei aplicaii informatice. n plus, modelul schemei conceptuale a bazei de date trebuie s in seama de schemele externe ale bazei de date, specifice diferitelor aplicaii cu baza de date. Procesul de modelare a bazei de date este unul iterativ, care necesit confruntri repetate i succesive ale schemei conceptuale a bazei de date cu schemele externe, pe de o parte, i cu realitatea care se modeleaz, pe de alt parte. Obiectivul este definirea unei baze de date care s rspund ntr-un mod eficient tuturor necesitilor de date ale aplicaiilor dezvoltate n jurul ei. Nivelul conceptual de abstractizare a datelor n baza de date trebuie s ndeplineasc urmtoarele obiective: - s defineasc imaginea global a datelor din sistemul informaional modelat; - s asigure satisfacerea tuturor cerinelor informaionale ale sistemului informatic proiectat; - s asigure independena descrierii datelor fa de nivelul fizic de organizare a bazei de date. Autonomia fizic a datelor din baza de date este asigurat tot de SGBD, datorit funciilor sale privind gestionarea accesului la datele din baza de date. n acest scop SGBD este proiectat s opereze asupra unui anumit model teoretic de organizare a datelor n baza de date, model care determin modul de organizare fizic a datelor i modul de acces la datele din baza de date. Acest model teoretic definete tipul de SGBD utilizat. De exemplu, un SGBD relaional va opera logic cu operaiile algebrei relaionale asupra unor date organizate n relaii. Pe baza modelului teoretic de operare asupra relaiilor se dezvolt componenta care gestioneaz accesul fizic la date, ce aparine motorului SGBD. Orice SGBD are la baz un model de organizare i manevrare a datelor care constituie fundamentul teoretic al construirii acestui SGBD, pentru realizarea

57

funciei de gestionare automat a datelor1. Este necesar deci ca alegerea tipului de model de date utilizat pentru proiectarea bazei de date s fie n concordan cu tipul de SGBD care va fi ales pentru gestionarea bazei de date. Nivelul conceptual se descrie printr-un model de organizare logic a datelor care precizeaz coninutul logic al datelor, natura datelor i legturile dintre date, la nivelul ntregii baze de date. Un model este un instrument teoretic ce permite o reprezentare a lumii reale adecvat anumitor necesiti. Mai specific, un model este o form de reprezentare abstractizat a lumii reale, folosind concepte i notaii proprii, pentru a furniza: - o metod pentru descrierea formal a realitii; - un instrument de comunicare (un limbaj comun pentru utilizatorii modelului). Un model de date trebuie s permit identificarea coninutului informaional al unei colecii de date privite n ansamblu i s reprezinte formalizat aceste date, ntro manier compatibil cu modul de reprezentare i cu modul de tratare a datelor ntr-un sistem de calcul. Fiind vorba de o abstractizare a lumii reale, un model de date se concentreaz pe aspectele eseniale ale sistemului modelat.

3.5. Caracteristici ale sistemelor cu baze de date


Caracteristicile sistemelor informatice n care datele sunt organizate n baze de date se definesc din mai multe puncte de vedere. Din punctul de vedere al modalitii de proiectare a sistemului informatic se caracterizeaz prin faptul c: - proiectarea se face utiliznd metode specifice de proiectare a sistemelor informatice; - proiectarea bazei de date se realizeaz unitar, prin abordarea n ansamblu a datelor, pentru a reflecta universul real; - aplicaiile se dezvolt dup ce a fost proiectat baza de date; - fiecare aplicaie folosete o parte din datele organizate n baza de date; - pentru dezvoltarea aplicaiilor se folosesc serviciile oferite de SGBD. Din perspectiva modului de definire a datelor se constat c: - datele sunt grupate n baza de date dup criterii intrinseci, care au n vedere coninutul i legturile logice dintre date; - fiecare dat este definit o singur dat n baza de date, cu toate proprietile ei. Ca mod de realizare a prelucrrilor asupra datelor se constat urmtoarele trsturi comune: - toate prelucrrile asupra datelor din baza de date se desfoar sub controlul SGBD; - toate operaiile de acces la datele din baza de date se realizeaz prin intermediul SGBD;
1

Dollinger R. op.cit.

58

prelucrrile asupra datelor pot fi condiionate de legturile definite explicit ntre datele din baza de date; - prelucrrile asupra datelor din baza de date se realizeaz ntr-o aplicaie i efectul lor este reflectat n toate aplicaiile care utilizeaz acele date. Efectele organizrii datelor ntr-o baz de date gestionat de SGBD sunt: - aceleai date pot fi valorificate diferit de aplicaii diferite, pentru c o baz de date poate oferi n orice moment imagini multiple asupra datelor pe care le memoreaz; - datele sunt tratate unitar, prin intermediul funciilor de descriere a datelor i a funciilor de acces la date oferite de SGBD; - descrierea modului de organizare logic a datelor este memorat n afara programelor de aplicaie, determinnd autonomia logic a datelor. Avantajele utilizrii bazelor de date ca mod de organizare a datelor ntr-un sistem informatic sunt: - obinerea unei redundane reduse i controlate a datelor, datorit memorrii datelor pentru ntregul sistem informatic ntr-o singur structur de date, capabil s satisfac necesitile informaionale ale oricrei aplicaii; - consistena datelor, determinat de faptul c datele sunt corelate logic ntre ele i sunt tratate unitar de SGBD, conform acestor corelri logice; - tratarea unitar a datelor prin intermediul funciilor asigurate de SGBD, funcii care nu depind de aplicaii ci numai de modul de definire a bazei de date; - prin instrumentele de consultare a bazei de date oferite de SGBD: - pot fi obinute imagini multiple asupra datelor din baza de date - baza de date poate fi consultat uor, chiar i de neinformaticieni; - prin instrumentele oferite de SGBD pentru gestionarea datelor din baza de date: - se poate realiza protecia datelor fa de accesul partajat la baza de date: orice utilizator are acces la date prin intermediul dicionarului de date i al funciilor SGBD, fr ca partajarea datelor ntre mai muli utilizatori s provoace inconsistena acestor date; - se poate asigura implementarea unor drepturi de acces la date, n scopul realizrii securitii datelor n faa acceselor nedorite; - structurile de date sunt mai flexibile, uor adaptabile la modificri ale mediului modelat, asigurnd astfel o reflectare mai bun a realitii i o adaptabilitate mai bun n faa modificrilor ce pot s apar n sistemul modelat; - autonomia logic a datelor are ca efect faptul c se amelioreaz procesul de dezvoltare i de ntreinere a aplicaiilor, n partea de programare a lor. Ca o paralel ntre modul de organizare a datelor n fiiere independente i n baze de date, din punctul de vedere al posibilitilor de explorare a datelor, se poate spune c:

59

un fiier este o colecie de date care poate fi partajat de mai muli utilizatori care au o imagine unic asupra datelor; imagini multiple asupra datelor pot fi obinute numai prin operaii suplimentare asupra fiierului: sortare, filtrare, etc. o baz de date este un ansamblu de date format din mai multe fiiere ce pot fi partajate de mai muli utilizatori, oferindu-le acestora imagini diferite asupra datelor.

60

3.6. Probleme rezolvate i propuse


A. Indicai varianta corect de rspuns, pentru ntrebrile urmtoare: 1. Inconsistena datelor se refer la faptul c: a) aceeai dat se poate regsi n mai multe fiiere b) aceeai dat se poate nregistra cu valori sau formate diferite n fiiere diferite c) aceeai dat poate fi actualizat diferit, la momente diferite. 2. Redundana datelor se refer la faptul c: a) aceeai dat se poate regsi n mai multe fiiere b) aceeai dat se poate nregistra cu valori sau formate diferite n fiiere diferite c) aceeai dat poate fi actualizat diferit, la momente diferite. 3. Una dintre afirmaiile urmtoare nu se refer la o baz de date: a) reprezint un ansamblu de date structurate, coerente, neredundante, independente de orice program de aplicaie b) este o colecie de date care poate fi partajat ntre mai muli utilizatori care au o imagine unic asupra datelor c) este un ansamblu de date care pot fi partajate ntre mai muli utilizatori, crora le poate oferi imagini diferite asupra datelor. 4. Una dintre urmtoarele afirmaii nu se refer la dicionarul de date al unei baze de date: a) cuprinde informaii despre structura datelor i restriciile la care se supun datele b) intermediaz accesul la fiierele de date c) cuprinde ansamblul datelor stocate n baza de date, la un moment dat 5. Care dintre componentele SGBD asigur verificarea integritii bazei de date, conform restriciilor de integritate definite: a) componenta de proiectare a SGBD b) componenta de execuie a SGBD c) motorul bazei de date? 6. Pentru a caracteriza o tabel de index asociat unei tabele a bazei de date, una dintre afirmaii este eronat: a) este o tabel n care se memoreaz, pentru fiecare nregistrare a tabelei la care este asociat, valoarea cheii de indexare i adresa nregistrrii respective b) este o tabel n care se memoreaz descrierea structurii tabelei la care este asociat c) este o tabel gestionat de SGBD, care permite accesul direct sau ordonat la nregistrrile tabelei la care este asociat. 7. Care component a SGBD permite definirea structurii bazei de date:

61

8.

9.

10.

11.

12.

13.

14.

15.

a) limbajul de descriere a datelor b) limbajul gazd al SGBD c) limbajul de manevrare a datelor? Nivelul extern de abstractizare a datelor dintr-o baz de date se refer la: a) modul de organizare a datelor n memoria extern b) imaginea bazei de date din punctul de vedere al unui utilizator sau al unei aplicaii c) imaginea global a bazei de date, conform universului real care se modeleaz. Una dintre afirmaiile urmtoare nu se refer la tuplurile unei relaii: a) numrul lor determin aritatea relaiei b) ordinea lor n relaie nu conteaz i poate fi modificat c) fiecare tuplu al relaiei trebuie s fie atomic, adic diferit de celelalte. Autonomia logic a datelor ntr-o baz de date se refer la faptul c: a) stuctura datelor din baza de date poate fi modificat fr a influena programele de aplicaie b) datele din baza de date pot fi modificate fr modificarea programelor de aplicaie c) locaia n memoria extern a fiierelor de date poate fi modificat fr a influena programele de aplicaie. Termenul de manevrare a datelor din baza de date nu se refer la: a) definirea structurii datelor din baza de date b) actualizarea, prin adugare, tergere sau modificare, a datelor din baza de date c) consultarea datelor din baza de date. Una dintre afirmaiile urmtoare nu se refer la domeniile unei relaii: a) numrul lor determin aritatea relaiei b) ordinea lor n relaie nu conteaz i poate fi modificat c) fiecare domeniu al relaiei trebuie s fie atomic, adic diferit de celelalte. Procedura roll-back se execut: a) n cazul alterrii bazei de date ntre dou tranzacii b) n cazul imposibilitii ncheierii cu succes a unei tranzacii c) n cazul acceselor concurente, n actualizare, a mai multor utilizatori ai bazei de date d) pentru anularea efectelor execuiei pariale a unei tranzacii. Alegei varianta corect: a) validarea tranzaciei indic faptul c efectele acesteia sunt ireversibile n baza de date b) execuia unei tranzacii poate fi oprit n caz de incident dar nu se mai poate reface imaginea iniial a bazei de date c) tranzacia este unitatea fizic de prelucrare asupra unei baze de date d) tranzacia reprezint trecerea de la o realizare a bazei de date la alta. Include setul complet de operaii elementare care trebuie executate n vederea efecturii trecerii de la o realizare la alta a unei baze de date: a) tranzacia;

62

16.

17.

18.

19.

20.

21.

22.

b) tabela de index; c) tranziia; d) regula de integritate referenial. Un SGBD: a) asigur definirea, generarea i exploatarea unei baze de date, neputnd-o proteja fa de accesele nepermise; b) permite numai gestionarea accesului la date; c) este o interfa software ntre utilizator i baza de date; d) este o component software complex ce permite generarea i gestionarea bazelor de date. Conform metodologiei ANSI-SPARC, este responsabil cu dezvoltarea schemelor externe: a) administratorul bazei de date; b) administratorul de aplicaie; c) administratorul de ntreprindere; d) utilizatorul. Un SGBD poate asigura confidenialitatea datelor din baza de date astfel: a) prin salvarea periodic a bazei de date pe un suport sigur de memorie extern b) utiliznd criptarea datelor din baza de date c) prin folosirea unui sistem de parole de acces la baza de date d) prin asigurarea procedurii de roll-back. Gradul de autonomie a datelor din baza de date: a) realizeaz o separare a datelor din punct de vedere conceptual b) se definete n legtur cu descrierea datelor pe diferite niveluri de abstractizare c) definete n mod logic scheme ale bazei de date, pentru diferite niveluri de abstractizare a datelor d) definete msura n care se poate modifica descrierea datelor pentru un nivel de abstractizare, fr a afecta descrierile de pe celelalte niveluri. Izolarea unei tranzacii presupune : a) accesul se realizeaz numai dintr-o vedere a bazei de date b) baza de date este protejat pentru a nu fi afect de un virus c) tranzacia nu a fost aprobat de LMD d) baza de date este accesibil numai dup validarea tranzaciei. Un SGBD asigur posibilitatea accesului multicriterial la datele din baza de date: a) prin intermediul cheilor de indexare b) prin intermediul tranzaciilor c) prin intermediul operaiei de editare a datelor d) prin intermediul tabelei legturilor dintre date. Se asigur autonomia logic a datelor ntr-o baz de date dac: a) actualizarea datelor din baza de date respect restriciile de integritate memorate n baza de date b) pentru accesul la baza de date se utilizeaz dicionarul de date

63

23.

24.

25.

26.

27.

28.

29.

c) actualizrile bazei de date se realizeaz prin intermediu tranzaciilor d) la consultarea bazei de date se folosete un limbaj de interogare. Care dintre urmtoarele afirmaii despre cheia strin sunt adevrate? a) realizeaz definirea legturilor logice dintre relaii; b) n fiecare tuplu n care apare trebuie s aib fie valoare nedeterminat fie valoarea cheii primare din alt relaie; c) ntr-o relaie nu este permis s existe dou tupluri avnd aceeai valoare pentru atributele acestei chei; d) se definete ca mulimea atributelor relaiei care au proprietatea c domeniile pe care le definesc se regsesc n alt relaie. Alegei varianta corect: a) att limbajele procedurale ct i cele neprocedurale de manevrare a datelor sunt limbaje imperative; b) limbajele neprocedurale sunt limbaje descriptive iar cele procedurale sunt imperative; c) limbajele procedurale sunt limbaje descriptive iar cele neprocedurale sunt imperative d) limbajele procedurale folosesc proceduri standard de acces la date. ntr-o baz de date sunt definite cu rolul de a accelera accesul la date: a) tabelele sistem; b) tabelele de index; c) tabelele de structur; d) metadatele. Reflect imaginea global a datelor din baza de date: a) nivelul extern; b) nivelul logic; c) nivelul conceptual; d) nivelul intern. Uniti logice virtuale ale bazei de date cu rol de a oferi selectiv, spre consultare, anumite date ale bazei de date i de a ascunde restul datelor din baza de date: a) tabelele de index; b) vederile; c) fiierele de index; d) fiierele partiionate. ntr-o baz de date relaional, o relaie se poate reprezenta printr-un tabel n care: a) fiecare rnd reprezint un domeniu; b) ordinea rndurilor n tabel nu este predefinit i poate fi modificat; c) pentru fiecare coloan a tabelului, realizrile sunt de acelai fel; d) fiecare rnd se poate identifica unic prin coninutul su. Portabilitatea unei componente software const n: a) posibilitatea de a utiliza acea component pe platforme de calcul diferite b) posibilitatea de reproiectare a acelei componente fr alterarea structurilor de date

64

30.

31.

32.

33.

34.

35.

c) posibilitatea de a utiliza acea component sub sisteme de operare diferite d) posibilitatea de modificare a suportului de memorie extern folosit pentru stocarea datelor. Nivelul conceptual de abstractizare a datelor din baza de date trebuie s ndeplineasc urmtoarele obiective: a) s asigure satisfacerea tuturor cerinelor informaionale ale sistemului informatic proiectat b) s reflecte reprezentarea datelor pe suportul de memorie extern c) s defineasc imaginea global a datelor din sistemul informaional modelat d) s protejeze baza de date de accesul utilizatorilor neautorizai. Consistena bazelor de date se refer la: a) respectarea constrngerilor semantice b) actualizarea automat a tabelelor de index c) includerea metadatelor n dicionarul de date d) derularea tranzaciei conform regulilor de integritate. Printre funciile unui SGBD se numr: a) generarea bazei de date, asigurarea autonomiei logice a datelor fa de programele de aplicaie i actualizarea datelor din baza de date; b) optimizarea procedurilor de acces la date, asigurarea integritii bazei de date i gestionarea schimburilor de date ntre memoria intern i memoria extern; c) asigurarea integritii datelor i a proteciei acestora fa de accesele concurente la baza de date; d) actualizarea datelor din baza de date i definirea strategiei de asigurare a bazei de date. Alegei varianta corect: a) validarea tranzaciei are ca efect faptul c efectele acesteia sunt ireversibile n baza de date; b) execuia unei tranzacii poate fi oprit n caz de incident dar nu se mai poate reface imaginea iniial a bazei de date; c) tranzacia este unitatea fizic de prelucrare asupra unei baze de date; d) nu se poate pune problema anulrii efectului unei tranzacii n cazul apariiei unor incidente. Alegei varianta corect: a) metodologia de concepere a unei baze de date pornete de la necesitatea realizrii, mai nti, a schemei interne; b) schema conceptual deriv din schema intern; c) prin intermediul schemei externe, utilizatorul are o viziune parial asupra bazei de date; d) prin intermediul schemei externe, utilizatorul are o viziune global asupra bazei de date. Gestionarul bazei de date este o component a: a) subsistemului instrumentelor de proiectare al unui SGBD; b) subsistemului de execuie; c) motorului SGBD;

65

d) nici o variant nu este corect. 36. Care dintre urmtoarele afirmaii despre tupluri sunt false: a) nu conteaz ordinea de apariie a tuplurilor ntr-o relaie; b) un tuplu al unei relaii se poate identifica prin coninutul su; c) este o submulime a produsului cartezian a unei liste finite de mulimi, numite domenii d) se poate repeta de un numr nedeterminat de ori ntr-o relaie. 37. Dimensiunea unei clase de asociaii descrie: a) numrul maxim de entiti dintr-o clas de entiti care pot participa la o asociaie din clasa de asociaii b) numrul minim de entiti dintr-o clas de entiti care pot participa la o asociaie din clasa de asociaii c) numrul de clase de entiti care particip la definirea clasei de asociaii d) numrul minim de asociaii din clasa de asociaii la care particip o entitate din clasa de entiti. 38. Efectul unei tranzacii este ireversibil dac : a) tranzacia se ncheie cu roll-back b) tranzacia se ncheie cu succes c) sunt folosite vederi ale bazei de date d) tranzacia se ncheie cu commit. 39. Exist o relaie de incluziune ntre: a) LDD i LMD; b) LI i LDD; c) metadate i dicionarul de date; d) fiiere de index i motorul BD. 40. Prin implementarea mecanismelor de criptare a datelor din baza de date se asigur: a) integritatea datelor din baza de date b) posibilitatea accesului selectiv la date c) confidenialitatea datelor din baza de date d) protejarea datelor din baza de date fa de accesele concurente. 41. Motorul SGBD asigur: a) gestionarea unitar a operaiilor la nivel fizic asupra bazei de date b) gestionarea unitar a operaiilor la nivel logic asupra bazei de date c) verificarea respectrii restriciilor de integritate ale bazei de date d) optimizarea operaiilor de acces la baza de date. 42. O relaie poate avea mai multe: a) chei candidat b) chei strine c) chei primare d) chei alternante. 43. Alegei varianta corect: a) schimburile de date ntre memoria intern i memoria extern sunt gestionate de SGBD;

66

44.

45.

46.

47.

48.

49.

b) stocarea datelor, n vederea prelucrrii lor ulterioare, se realizeaz n memoria intern a sistemului de calcul; c) blocurile de date (nregistrri logice) sunt gestionate de SGF iar articolele (nregistrri fizice), de utilizator; d) cmpurile unui fiier sunt formate din date elementare numite articole; e) schimburile de date ntre memoria intern i memoria extern sunt gestionate de SGF. Impune ca modificrile efectuate n baza de date s fie realizate cu respectarea regulilor de integritate a bazei de date: a) atomicitatea; b) consistena; c) durabilitatea; d) coerena; e) izolarea; f) integritatea. O realizare a bazei de date reprezint: a) obinerea unei vederi a bazei de date b) actualizarea tabelelor de index odat cu actualizarea datelor c) ansamblul datelor stocate n baza de date la un moment dat d) validarea automat a unei tranzacii n baza de date. Se numr printre nivelurile de abstractizare a datelor din baza de date: a) nivelul intern numit i nivel utilizator; b) nivelul extern numit i nivel fizic; c) nivelul global numit i nivel intern; d) nivelul extern numit i nivel utilizator. Subsistemul instrumentelor de proiectare a SGBD permite: a) definirea structurii bazei de date b) definirea formatului rapoartelor i a cererilor de interogare a bazei de date c) procesarea aplicaiilor i a cererilor de consultare a bazei de date d) generarea tranzaciilor cu baza de date. Un domeniu se identific prin: a) tuplu b) relaie c) cheie d) atribut e) identificator. Alegei varianta corect: a) SGBD asigur accesul multicriterial la datele din baza de date prin intermediul regulilor de integritate; b) instrumentele oferite de SGBD pentru consultarea bazei de date sunt rezervate utilizatorilor profesioniti; c) SGBD asigur i autonomia logic i autonomia fizic a datelor fa de programele de aplicaie; d) variantele a) i b) sunt corecte; e) variantele a) i c) sunt corecte.

67

50. Limbajele de interogare a bazei de date: a) fac parte dintre limbajele de descriere a datelor; b) permit cutarea, identificarea i vizualizarea datelor din baza de date; c) sunt limbaje imperative; d) sunt limbaje neprocedurale. 51. Metodologia de proiectare a unei baze de date pornete de la necesitatea realizrii mai nti a: a) schemei interne b) schemei funcionale c) schemei conceptuale d) schemei relaionale. 52. Orice tuplu al relaiei se identific unic prin intermediul valorii unui set de atribute care formeaz: a) cheia compus b) cheia strin c) cheia candidat d) cheia unic e) cheia primar f) cheia alternant. 53. Efectul domino poate s apar n cazul n care, pe durata derulrii unei tranzacii, nu se respect: a) atomicitatea; b) consistena; c) durabilitatea; d) coerena; e) izolarea; f) integritatea. 54. Prin proiecia unei relaii se obine: a) aceeai relaie cu un numr mai mic de tupluri; b) o nou relaie cu un numr mai mic de atribute; c) o nou relaie avnd aceeai schem ca relaia iniial; d) o nou relaie cu un numr mai mic de tupluri. 55. Numrul regulilor lui Codd care se refer la independena datelor din baza de date este: a) una b) dou c) trei d) patru e) cinci. 56. Care enunuri sunt adevrate: a) uniunea este o operaie derivat a algebrei relaionale; b) uniunea este o operaie unar definit pe mulimea relaiilor; c) uniunea este echivalent cu operaia de selecie compus cu operaia de produs cartezian;

68

d) uniunea este echivalent cu operaia de proiecie compus cu operaia de produs cartezian. 57. Pentru ca un SGBD s fie considerat relaional, trebuie s fie implementai cel puin urmtorii operatori relaionali: a) de proiecie b) de reuniune c) de produs cartezian d) de selecie e) de uniune. 58. Care dintre urmtoarele afirmaii este adevrat: a) dependena funcional direct implic dependena funcional total; b) dependena funcional tranzitiv implic dependena funcional parial; c) dependena funcional total implic dependena funcional direct; d) dependena funcional parial implic dependena funcional tranzitiv. 59. Sunt operaii ale algebrei relaionale care permit obinerea unei relaii avnd o alt schem de relaie dect operanzii: a) proiecia b) reuniunea c) produsul cartezian d) selecia e) uniunea.

69

4. Bibliografie
Andone I.,ugui A. - "Baze de date inteligente n managementul firmelor", Editura Dosoftei, Iai,1997 Bsc O. - "Baze de date", Editura ALL, Bucureti, 1997 Boian F.M. - "Sisteme de operare interactive", Editura Libris, Cluj-Napoca, 1994 Chuang T.T., Yada S.B. The developement of an adaptive decision support system Decision support systems 24, 1998 Dollinger R. - "Baze de date i gestiunea tranzaciilor", Editura Albastr, Cluj-Napoca, 1998 Drucker P. - "Societatea postcapitalist" , Editura Image, 1999 Finkelstein R. - Computerworld, On-Line Analitycal Procesing , dec. 1994 Fotache M. - "Baze de date relaionale", Editura Junimea, Iai, 1997 Georgescu C. - "Analiza i proiectarea sistemelor informatice", Editura Radical, Galai, 1999 Georgescu C. - "Abordarea relaional i obiectual n analiza sistemelor informatice", Editura Didactic i Pedagogic, Bucureti, 2002 Georgescu M. - "Tehnici de organizare i medii de gestionare a datelor", Editura Fundaiei Universitare "Dunrea de Jos", Galai, 2000 Georgescu M. - "Structuri de date i baze de date", Editura PAX AURA MUNDI, Galai, 2002 Gerrity T.P.Jr - The Design of Man-Machine Decision Systems: An Aplication to Portofolio Management,Prentice Hall, NJ Hackateron R., - BYTE v2, Data warehouse, Mar.1996 Knuth D. E. - "Tratat de programarea calculatoarelor", Editura Tehnic, Bucureti, 1974 Little J.D.C. - Models and Managers: The Concept of a Decision Calculus, Addison-Wesley,Workingam,1975 Mayer M. K - Future trends in model management systems: parallel and distributed extensions Decision Support System, 22, 1998 Morton M. S. - Management Decision Systems: Computer-Bassed Support for Decision Making, Information Systems Rev.143,1971 Morton M. S., Keen G. W. - Decision Support Systems: An Organizational Perspective,Spring Rev. 1989 Muhanna W., Pick R.A. - Meta-modeling concepts and tools for model management: a system approch ,Manage. Sci. 40 sept. 1994 Parsaye K. - Surveying Decision Support: New Realms of Analysis Information Discovery Inc.,1992 Pascu C.,Pascu A. - "Totul despreSQL", Editura Tehnic, Bucureti, 1994

70

Popa Ghe.,tefnescu A.,Stanciu V.,Ivancenco V.,Mare V.- "SGBD", Editura All, Bucureti, 1994

Raden N. - Information week, October 30, 1995


Sprague R., Carlson E.D. - Building Effective DSS Prentice-Hall,New Jersey 1982 Stonebraker M. - Object/Relational DBMSs: The Next Great Wave, Morgan Kaufman,1996 Toffler A. - "Powershift - puterea n micare", Editura Antet, 1995 Velicanu M.,Bodea C.,Lungu I.,Ioni C.,Bdescu G. - "Sisteme de gestiune a bazelor de date", Editura Petrion, Bucureti, 2000 Zaharie D. & colectiv, - Sisteme informatice pentru asistarea deciziei, Editura DualTech, Bucureti, 2001 ***, - Microsoft Press - "Microsoft Visual FoxPro 6.0, Ghidul programatorului", Editura Teora, Bucureti, 2000 ***, - Computerworld, Data Warehouse, 25/4/1994 ***, - The Case For Relational OLAP, Micro Strategy Incorporated, www.strategy.com

71

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