Sunteți pe pagina 1din 22

SISTEME INFORMATICE DE GESTIUNE A BAZELOR DE DATE RELAIONALE

PLOIESTI 2012

Introducere
Exist o bogat literatur de specialitate dedicat bazelor de date i sistemelor de gestiune a bazelor de date. Prezentul material este o sintez fcut de titularul de curs, pe baza bibliografiei indicate [1-27], cu scopul de a prezenta studenilor din anul II specializarea inginerie economic n domeniul mecanic, elementele de fundamentale referitoare la problematica bazelor de date. Sunt introduse exemple prin care studenii transpun o aplicaie n care este necesar o baz de date din domeniul tehnic - economic n formatul specific unui anumit sistem de creare a bazei de date. Vor fi tratate noiunile generale referitoare la bazele de date relaionale i n special la bazele de date MS-Access [3,8,12,15,26,27]. Din cadrul bazelor de date relaionale s-au ales bazele de date Access ca suport practic al acestui curs deoarece constituie cea mai simpl modalitate de lucru, fiind uor de nsuit de ctre studeni, aspect dovedit prin experiena de lucru cu mai multe serii de studeni de la aceast specializare. Bazele de date ( o colecie de date nrudite care se refer la un anumit obiect sau obiectiv, mpreun cu instrumentele folosite pentru manipularea acestor date) au existat nc de la primele forme de organizare a comunitilor umane cnd probleme legate colectarea taxelor, volumul recoltei, numrul efectivelor militare au necesitat registrele de eviden pstrate pe diferite suporturi. Epoca modern permite rezolvarea eficient a aspectelor legate de bazele de date prin utilizarea calculatoarelor electronice. Urmrim gsi rea ntr-un timp scurt a informaiei cutat dup anumite criterii, asigurarea securitii informaiilor, a unicitii i flexibilitii datelor. n activitile legate de baze de date se disting utilizatorii finali care interacioneaz cu baza de date prin intermediul unui limbaj de interogare sau programe de aplicaie; programatorii de aplicaii care realizeaz programele de aplicaie ale bazei de date,utiliznd anumite limbaje de programare (Visual Basic for Applications, C,C++, Java, etc.) ; administratorul bazei de date responsabil cu asigurarea funcionrii software-ului i hardware-ului, securitatea i integritatea bazei de date. Competenele ctigate de studeni se refer n cadrul acestui curs se reduc la primul nivel utilizatorii finali care interacioneaz cu baza de date prin intermediul unui limbaj de interogare sau programe de aplicaie. Ion Pan, octombrie 2012

SISTEME INFORMATICE DE GESTIUNE A BAZELOR DE DATE RELAIONALE

Cerine de examinare
Pentru evaluare se vor realiza urmtoarele activiti: 1. nsuirea cunotinelor teoretice din suportul de curs. 2. Participarea la orele de laborator. Se va da un test, n sptmna a 13-a. Este necesar ca s se obin cel puin nota 5. (NL nota la testul de laborator) 3. Se va realiza o tem de cas individual. (NTC nota la tema de cas) 4. Examenul va consta ntr-un test de verificare a cunotinelor teoretice.( NV - nota la verificare) 5. Nota final NF acordat va fi media ponderat a notelor obinute: la laborator, la tema de cas i la testul final: 0,5 x NL + 0,2 x NTC +0,3 x NV = NF

Unitatea de nvare

Sisteme informatice de gestiune a bazelor de date (SGBD)

Cuprins

1. Sisteme informatice de gestiune a bazelor de date (SGBD) 4 1.1. Sistemul informaional 4 1.2. Baze de date ...5 1.3. Sisteme de gestiune a bazelor de date .8 2. Modelul relaional al datelor .11 2.1.Modele de date . 11 2.2. Conceptul de baz de date relaional (BDR) ..14 2.3 Normalizarea bazelor de date ..16 2.4. Restriciile de integritate ale modelului relaional ..17 4 ntrebri de autoevaluare .20 5 Bibliografie/webografie .20

Obiective:

n acest modul sunt prezentate noiuni referitoare la: sistemul informatic, bazele de date sisteme de gestiune a bazelor de date modelul relaional al datelor.

Competene:

Dobndirea de noiuni referitoare la sistemul informaional, baze de date, sisteme de gestiune a bazelor de date, baze de date relaionale

1. Sisteme informatice de gestiune a bazelor de date (SGBD) 1.1. Sistemul informaional


Sistemul informaional cuprinde totalitatea resurselor care permit colectarea, administrarea, controlul i propagarea informaiilor n cadrul unei organizaii [11]. Datele cuprind toate informaiile de care dispunem n
4

cadrul unei firme; aceste informaii pot fi organizate n baze de date, iar un mod de reprezentare avansat al datelor o reprezint bazele de cunotine. Sistemul informaional organizat n forma modern ca sistem informatic, include o baz de date definit la paragraful 1.2. Sistemul informaional/ informatic se poate construi pe baza urmtoarelor activiti: Planificarea bazei de date Sunt concepute modele pentru datele din cadrul organizaiei; se stabilete legtura dintre date, se identific componentele funcionale ale organizaiei i transferul datelor ntre acestea. Analiza cerinelor etap n care pe baza unor tehnici speciale (proiectarea structurat, diagramele de flux de date) sunt grupate i analizate cerinele informaionale ale firmei legate de baza de date. Proiectarea bazei de date n cadrul creia se alege un model pentru date, utilizabil la efectuarea operaiilor cu acestea ( tranzacii). Modelul va fi simplu, fr ( cu ct mai puine) aspecte redundante, posibil de a fi ntreinut uor. Realizarea prototipului este etapa n care se construiete un model simplificat al sistemului informatic folosit pentru diferite teste referitoare la dorinele utilizatorilor. Implementarea const n alegerea unui limbaj pentru sistemul de gestiune al bazei de date ( vezi paragraful 1.3. ) realizarea fizic a bazei de date cu limbajul specific SGBD-ului, construirea unor programe de aplicaii. Depanarea n care se identific erorile sistemului implementat, se descoper noi cerine , se elimin componentele nedorite etc. Monitorizarea de-a lungul folosirii sistemului informatic acesta va fi evaluat prin anumii indicatori de performan referitori la capabilitatea sa. Se vor desfura anumite operaii de modernizare n acord cu noile cerine i evoluii din cadrul firmei n care sistemul a fost implementat.

1.2. Baze de date


n literatura consacrat bazelor de date (BD) i sistemelor de gestiune a bazelor de date (SGBD) exist numeroase definiii pentru BD. Astfel n [1,2] sunt identificate elementele eseniale ale unei BD ca fiind: includerea informaiilor despre obiectele din aplicaia/aplicaiile la care se refer BD; includerea relaiilor dintre aceste informaii; existena unor tehnici de manipulare corespunztoare. Eliminarea informaiilor redundante se impune cu necesitate. O alt definiie [9] caracterizeaz BD ca: un ansamblu de date structurate; datele sunt memorate mpreun cu descrierea structurii lor; este inclus descrierea legturilor logice dintre date; gestionarea este realizat de un software specializat numit SGBD. n lucrarea [4] BD este apreciat ca fiind o colecie de date; datele sunt structurate conform unui model; mai muli utilizatori simultani pot accesa baza de date; se impune o redondan minima pentru baza de date.
5

O baz de date (BD) este un ansamblu integrat de nregistrri sau de fiiere reunite si structurate n mod logic. Baza de date este definit o singura data i este utilizat simultan de ctre mai muli utilizatori. Baza de date conine, alturi de date i o descriere a acestora. Din acest motiv, ea este definit i ca o colecie autodescris de nregistrri integrate. Natura autodescriptiv a bazelor de date este cea care produce independena program date, separnd definiia datelor de programele aplicaie [15] . O alt definiie care include caracteristicile BD este urmtoarea [20] : baza de date este un ansamblu de colecii de date, organizat pe niveluri de organizare a datelor n memoria extern, coerent, conform unor restricii de integritate, structurat, conform unui model de date, cu o redundanta minim i controlat, asigurata printr-o tehnic de proiectare, accesibil mai multor utilizatori n timp util .

Vom introduce n continuare cteva elemente de terminologie folosite pe parcursul acestui curs. O entitate (articol, nregistrare logic) este un obiect distinct (material, produs, o persoan, loc, o operaie economica, aparat) care trebuie reprezentat n baza de date. Un atribut este o caracteristica care descrie un aspect oarecare al obiectului care se nregistreaz n baza de date. Valoarea reprezint mrimea ce se atribuie fiecrei caracteristici din cadrul unei entiti. O cheie primar (sau, mai simplu, o cheie) este un atribut sau un set de atribute care identific ntr-o manier unic o entitate - de exemplu codul numeric personal CNP (nu exist dou persoane care au acelai CNP). O relaie este o asociaie ntre mai multe entiti. De exemplu, se poate constitui o baza de date care s conin informaii despre angajaii unei firme. Va exista o entitate Personal n care se vor preciza, ca atribute, numrul de personal, numele, prenumele, adresa i funcia fiecrei persoane. Pentru atributul funcie pot exista valori ca: director, sef de secie, inginer, prelucrtor. Entitatea Personal este legat printr-o relaie de entitatea Filiala care conine informaii despre filialele la care lucreaz angajaii firmei. La rndul sau, Filiala va conine atribute ca: codul_filialei, nume_filiala, adresa, numar_telefon, numar_fax, numar_personal, obiect_de activitate. Aceste atribute reprezint antetul unui tabel ale crui coloane se completeaz cu valori ale atributelor. Caracteristica principala a aplicaiilor de baze de date const n faptul ca accentul este pus pe operaiile de memorare i regsire, efectuate asupra unor volume mari de date, i mai puin asupra operaiilor de prelucrare a acestora.
6

Principala operaie care apare n orice aplicaie de baze de date este cea de regsire a datelor, n scopul obinerii de informaii din baza de date. Aceasta este finalitatea si sensul existentei oricrei baze de date. O baza de date este creata pentru a putea fi interogata. Interogarea are la baza anumite condiii (criterii) care permit selectarea anumitor date din baza de date. Alturi de operaii de regsire, se executa operaii de adugare, pentru introducerea de noi date n baza de date, operaii de tergere pentru datele devenite inutile sau operaii de actualizare a unor date existente. O baza de date trebuie sa satisfac mai multe condiii care se desprind din definiiile prezentate mai sus: buna reprezentare a unui domeniu de activitate prin informaii le despre acesta. controlul redundantei datelor; informaia trebuie s fie unic din punct de vedere semantic si fizic; n tratarea prin baze de date nu se elimin n ntregime redundanta, acesta trebuie meninut la un nivel minim. independena datelor fa de prelucrri; programele de aplicaii sunt concepute n raport cu structura datelor. securitatea si confidenialitatea datelor prin procedee care sa mpiedice accesul utilizatorilor neautorizai; se atribuie astfel nume de utilizatori i parole care permit identificarea persoanelor autorizate s utilizeze baza de date. Accesul la date poate fi, n plus, limitat de tipul operaiei efectuate (extragere, inserare, reactualizare, tergere). performante n exploatare: orice cerere de prelucrare trebuie s fie satisfcuta ntr-un timp convenabil utilizatorului.

Accesul utilizatorului la informaiile despre structura unei baze de date se realizeaz prin intermediul unui software de aplicaii numit dicionar de date. Avantajele organizrii informaiilor n baze de date decurg tocmai din existenta acestui fiier de descriere globala a bazei de date. Extragerea si modificarea datelor - altfel spus, lucrul cu fiierele de date - se deruleaz exclusiv prin intermediul dicionarului n care se gsesc informaii privitoare la structura datelor si restriciile ndeplinite de acestea. Dicionarul de date conine: denumirile, tipurile si dimensiunile articolelor de tip date; tabelele bazei de date (denumire, descriere, chei primare si secundare etc.); constrngerile de integritate asupra datelor;

utilizatorii care au drepturi de acces la un anumit tabel; optimizarea bazei de date.

1.3. Sisteme de gestiune a bazelor de date


Pentru a putea fi exploatata de ctre utilizatori, o baz de date trebuie s aib un set de programe care s permit exploatarea raional a datelor - un sistem de gestiune a bazei de date SGBD, n englez Data Base Management System. Sistemul de gestiune a bazelor de date interacioneaz cu structura bazei de date, sistemul de calcul, sistemul de operare, programele de aplicaii i utilizatorii constituindu-se banca de date. Se pot organiza bnci de date n diferite sfere de activitate. Definirea unui SGBD este un ansamblu complex de programe care asigur interfaa ntre o baz de date i utilizatorii acesteia. este componenta software a unui sistem de baz de date care interacioneaz cu toate celelalte componente ale acestuia, asigurnd legtura i interdependena ntre elementele sistemului este un ansamblu complex de programe care asigur interfaa ntre o baz de date i utilizatorii acesteia. este componenta software a unui sistem de baz de date care interacioneaz cu toate celelalte componente ale acestuia, asigurnd legtura i interdependena ntre elementele sistemului

O imagine referitoare la modul n care lucreaz un SGBD este dat n fig. 1.1, conform [3]. Rolul unui SGBD Rolul unui SGBD ntr-un context de sistem de baz de date este de a: defini i descrie structura bazei de date, care se realizeaz printr-un limbaj propriu specific, conform unui anumit model de date; ncrca/valida datele n baza de date respectnd nite restriciile de integritate impuse de modelul de date utilizat; realiza accesul la date pentru diferite operaii (consultare, interogarea,actualizare, editare situaii de ieire), utiliznd operatorii modelului de date ntreine baza de date cu ajutorul unor instrumente specializate (editoare,utilitare, navigatoare, convertoare etc.);
8

asigura protecia bazei de date sub aspectul securitii i integritii datelor.

a) Nivelele la care poate aciona un SGBD: memorarea datelor prin intermediul sistemului de gestiune a fiierelor; gestiunea datelor i a legturilor dintre ele (SGBD intern); introducerea i extragerea datelor (SGBD extern).

Utilizatori Utilizare

SGB
Administrare

Descriere

Manipulare

Baza de date b) niveluri de reprezentare a datelor din bazele de date: nivelul extern care face referire la datele necesare utilizatorilor; nivelul conceptual care rezult din nivelul extern prin analiza schemelor externe i prin eliminarea redundanelor; nivelul intern care se realizeaz cu ajutorul efectiv al SGBD-ului pornind de la schema conceptual. c) funciile de baz ale unui SGBD: funcia de utilizare; funcia de descriere a datelor; funcia de manipulare; funcia de administrare .

Fig. 1.1. Aspecte referitoare la definirea SGBD [3].

Arhitectura unui sistemului de baze de date Arhitectura minimal a unui sistem de baze de date conine urmtoarele module fig. 1.2 [19]:

Baza de date , care este componenta de tip date a sistemului. Sistemul de gestiune a bazei de date care este un modul de programe ce realizeaz interfaa dintre datele interne (de pe disc) coninute n baza de date i programele de consultare i actualizare. Alte elemente : proceduri manuale sau automate destinate funcionrii sistemului, dicionarul bazei de date (cu informaii despre date , structura lor), documentaii, mijloace hardware implicate. Aplicaii: legate de utilizarea unei baze de date la un anumit utilizator. Utilizatorii : organizaiile , persoanele implicate n folosirea SBD.

Fig. 1.2. Arhitectura unui sistem de baze de date [19].

Istoricul SGBD-urilor Pn n anii 1960 datele erau organizate doar n fiiere, gestionate de programe scrise n diferite limbaje de programare universale (exemple: Cobol, Fortran etc.) [14]. La sfritul anilor aizeci a aprut modelul arborescent de organizare a datelor i primele SGBD-uri care erau ierarhice i implementau acest model (exemplu: IMS). La nceputul anilor aptezeci a aprut modelul reea de organizare a datelor i SGBD-urile reea ce implementau acest model (exemple: IDMS, SOCRATE). SGBD-urile arborescente i reea fac parte din prima generaie i ele constituie pionieratul n domeniu. La sfritul anilor aptezeci, nceputul anilor optzeci a aprut modelul relaional de organizare a datelor i ulterior s-au realizat SGBD-urile relaionale ce implementau acest model (exemple: Oracle, Informix, DB2, SQLServer, Visual Foxpro, Access etc.). Este generaia a doua de SGBD, care prin simplitate, interactivitate i neproceduralitate domin piaa actual. La sfritul anilor optzeci, nceputul anilor nouzeci a aprut modelul orientat obiect de organizare a datelor i SGBD-urile orientate obiect ce implementau acest model(exemple: Gemstone, O2, Jasmine etc.). Aceasta este generaia a treia de SGBD care este n plin dezvoltare acum.

10

2. Modelul relaional al datelor


2.1.Modele de date
n capitolul 1 am definit o entitate (articol, nregistrare logic) ca fiind este un obiect distinct (material, produs, o persoan, loc, o operaie economica, aparat) care trebuie reprezentat n baza de date. De asemenea, s-a definit relaia ca fiind o asociaie ntre mai multe entiti. Orice entitate este caracterizata prin proprietile sale. n cadrul modelelor de date, aceste proprieti sunt reprezentate prin atribute. Atributul descrie un aspect oarecare al obiectului care se nregistreaz n baza de date. Domeniul reprezint mulimea de valori permise pentru unul sau mai multe atribute. ntre oricare doua mulimi de entiti, M1 si M2, pot exista trei tipuri de legturi (relaii): 1:1 (una-la-una), 1:n (una-la-mai-multe) si n:m (maimulte-la-mai-multe). Relaia leag ntre ele dou sau mai multe entiti prin intermediul unor atribute cu acelai domeniu [17,20]. n cazul n care o relaie leag dou entiti, ea se numete binar. Dac relaia este ntre cel puin trei entiti, se spune c este o relaie n-ar. La rndul lor, relaiile binare se mpart n trei categorii v. fig. 1.3.
a) ntr-o relaie 1:1 (una-la-una), unei entiti din mulimea M1 i corespunde o singur entitate din mulimea M2 i reciproc.

b) ntr-o relaie 1:n (una-la-maimulte), unei entitatea din M1 i corespund zero, una sau mai multe entiti din M2, dar fiecrei entiti din M2 i corespunde o singura entitate din M1. c) ntr-o relaie n:m (mai-multe-lamai-multe), unei entiti din M1 i corespund zero, una sau mai multe entiti din M2, si reciproc.

Fig. 1.3. Tipuri de relaii binare.

11

Cardinalitatea unei perechi (E, A), unde E este o clas de entiti i A este un set de relaii, este dat de perechea (m, M), unde m i M sunt numrul minim respectiv maxim de legturi A ce leag E de una sau mai multe clase de entiti. O diagram ER este reprezentarea grafic a unei colecii de entiti i relaii, care descriu o baz de date, figura 1.4. Simbolurile grafice folosite n desenarea diagramelor ER sunt: dreptunghiul corespunde unei entiti; rombul corespunde unei relaii; segmentele de dreapt care fac legtura ntre entiti i relaii sau ntre atribute i entiti; elipsa prin care se reprezint un atribut. De exemplu, relaia ntre o firm i un acionar este de tipul "n la m", deoarece o firm poate aparine mai multor acionari i, n acelai timp, un acionar poate avea mai multe firme.

Firma 1:n

Deine aciuni n:m 1:n

Acionar

Fig. 1.4. Diagram ER ce descrie dependena ntre un acionar i o firm.

Cardinalitile sunt (1, n), respectiv (1,n), pentru c o firm trebuie s aib cel puin un acionar care deine firma, iar un acionar trebuie s aib cel puin o firm - dac nu ar avea nici una, nu s-ar mai numi acionar. Relaia este numit Deine aciuni. O s desenm acum diagrama ER a unei baze de date ce conine prinii unei persoane figura 1.5. Att prinii ct i copii pot fi grupai ntr-o clas de entiti "PERSOAN". O entitate de acest tip poate fi descris prin atributele "NUME", "PRENUME", "SEX" i "CNP".
Nume Sex

CNP

Prenume

Mama

Persoan

Tata

Fig. 1.5. Diagrama ER pentru dou relaii de rudenie dintre persoane: mama, tata.

12

Domeniul de valori pentru atribute poate s fie teoretic infinit pentru "NUME" sau cu dou valori masculin i feminin pentru "SEX". Relaiile definite sunt Mama , Tata ce desemneaz legturile dintre persoanele respective. Modelul relaional se bazeaz pe conceptul matematic de relaie [13,20,21] . Noiunea de relaie este definit din punct de vedere matematic ca o submulime a produsului cartezian a unei liste (finite) de mulimi, numite domenii. ntr-o relaie, fiecare domeniu se identific printr-un nume, numit atribut. Fiecare element al unei relaii poart numele de tuplu, iar numrul de domenii se numete aritate. Relaia este reprezentat fizic sub forma de tabel. O baza de date relaional poate fi definit ca un ansamblu de tabele aflate n legtur. Un atribut este o coloana a unei relaii (tabel), cu o anumit denumire. ntr-o relaie (reprezentat printr-un tabel bidimensional) rndurile corespund nregistrrilor individuale. Vom aplica n continuare aceast definiie a relaiei prin tabel. Exemplu: avem relaia Student care include atributele: cnp definit pe domeniul cod numeric personal; nr_matr definit pe domeniul numr_matricol; nume definit pe domeniul nume; pren definit pe domeniul prenume; facult definit pe domeniul facultate; spec definit pe domeniul specializare; Tabelul care descrie relaia este: Tab. 1.1. Relaia Student cnp
1701212120139 2731210176143 1801009129145

nr_matr
1234 1987 4432

nume
Popa Darie Mihnea

pren
Dan Alina Ion

facult
FSE FD FSE

spec
IE AP FB

Formulnd altfel, putem spune c am definit relaia Student cu schema dat de atributele cnp, nr_matr, nume, pren, facult, spec. n tabelul 1.1 sunt prezentate trei tupluri pentru relaia Student. Utilizatorul percepe un SGBDR sub forma de tabele, dar numai la nivelul structurii logice a bazei de date, adic la nivelurile extern si conceptual. Putem sintetiza aceste aspecte prin tabelul 1.2. n ceea ce privete o relaie, ordinea de apariie a atributelor este absolut nesemnificativ i acelai lucru l putem spune i despre tupluri.

13

Tab. 1.2. Elemente pentru organizarea bazelor de date relaionale Formal Uzual Fizic Relaie Tabel Fiier Tuplu Linie nregistrare Atribut Coloan Cmp Domeniu Tip de dat Tip de dat Simplificnd lucrurile bazele de date relaionale sunt de fapt tabele cu legturi ntre ele. Aceste baze de date relaionale au redundan minim i controlat. Primul care a introdus noiunea de baz de date relaional a fost E. F. Codd, n anul 1970.

2.2. Conceptul de baz de date relaional (BDR)


Modelul relaional introdus de E.F. Codd este fundamentat pe reguli, structuri i operaii [7,9,10,12,20]. Regulile stabilesc modul de manipulare a datelor, structurile sunt obiecte definite ce conin date i care sunt accesibile utilizatorului, iar operaiile reprezint aciuni prin care sunt manipulate datele sau obiectele schemei bazei de date. E.F. Codd a formulat n anul 1985 cele 13 reguli de baz care definesc o baz de date relaional si care sunt prezentate n continuare .

Regula 0 regula gestionarii datelor: Un SGBD considerat ca fiind relaional trebuie sa fie capabil sa gestioneze o baza de date prin posibilitile sale relaionale. Aceasta nseamn ca SGBD nu va folosi pentru definirea si manipularea datelor operaii care nu sunt de tip relaional. Practic, majoritatea implementrile existente de SGBD nu respect aceasta regul. Regula 1 regula reprezentrii datelor: ntr-o baza de date relaional, informaia este reprezentata explicit la nivel logic sub forma unor tabele ce poarta numele de relaii. Este regula cea mai importanta si conform lui E.F. Codd i n cazul n care un SGBD care nu respecta aceasta regula, nu poate fi considerat relaional. Referirea la nivelul logic precizeaz ca elemente de construcii logice, cum sunt indeci, nu au obligatoriu o reprezentare sub forma de tabele. Regula 2 regula accesului garantat la date: Fiecare valoare de data (valoare atomica) dintr-o baza de date trebuie sa poat fi adresata n mod logic printr-o combinaie formata din numele relaiei, valoarea cheii primare si numele atributului. Se poate regsi orice valoare aparinnd

14

oricrui atribut al unei relaii, daca sunt specificate numele relaiei, numele atributului si valoarea cheii primare. Regula 3 regula reprezentrii informaiei necunoscute (tratarea sistematica a valorilor null): Un sistem relaional trebuie sa permit utilizatorului definirea unui tip de date numit null pentru reprezentarea unei informaii necunoscute la momentul respectiv indiferent de tipul de data. ntr-un SGBD relaional trebuie sa putem face diferena ntre valoarea zero, un ir vid de caractere si o valoare necunoscuta. Regula 4 regula dicionarelor de date (catalog dinamic on-line, bazat pe modelul relaional): Asupra descrierii bazelor de date (informaii relative la relaii, vizualizri, indeci etc.) trebuie sa se poat aplica aceleai operaii ca si asupra datelor din baza de date. Descrierea bazei de date este reprezentata la nivel logic sub forma unor tabele care pot fi accesate n acelai mod ca si datele efective. Regula 5 regula limbajului de interogare (sub-limbaje de date cuprinztoare): Trebuie sa existe cel puin un limbaj care sa permit: (1) definirea datelor, (2) definirea vizualizrilor, (3) manipularea datelor (interactiv sau prin intermediul programului), (4) constrngerile de integritate, (5) autorizarea, (6) limitele tranzaciilor (nceput, execuie, reluare). n general, toate implementrile SQL respecta aceasta regula. Limbajul permite utilizatorilor sa defineasc relaii si vizualizri, sa regseasc informaia si sa o poat actualiza, sa verifice si sa corecteze datele de intrare etc. Regula 6 regula de reactualizare a vizualizrii: Toate vizualizrile care sunt teoretic reactualizabile pot fi reactualizate de sistem. Un SGBD trebuie sa poat determina daca o vizualizare poate fi actualizata si sa stocheze rezultatul interogrii ntr-un dicionar de tipul unui catalog de sistem. Trebuie sa existe un mecanism prin care sa se poat determina daca anumite vizualizri pot fi actualizate sau nu. Majoritatea implementrilor SQL stabilesc aceasta, n funcie de variantele instruciunii de selecie utilizate. Regula 7 regula limbajului de nivel nalt (operaiile de inserare, reactualizare si tergere de nivel nalt): Regulile de manipulare asupra unei relaii luata ca ntreg sunt valabile att pentru operaiile de regsire a datelor, ct si asupra operaiilor de inserare, actualizare si tergere a datelor. Un SGBD relaional nu trebuie sa oblige utilizatorul sa caute ntr-o relaie, tuplu cu tuplu, pentru a regsi informaia dorita. Operaiile de manipulare a datelor pot fi aplicate att n mod interactiv ct si prin program, ntr-un limbaj gazda. Regula 8 regula independentei fizice a datelor: Programele de aplicaie si activitile utilizatorilor nu depind de modul de stocare a datelor sau de modul de acces la date. ntr-un SGBD relaional trebuie sa se separe aspectul fizic al datelor (stocare sau acces la date) de aspectul logic al datelor.

15

Regula 9 regula independentei logice a datelor: Programele de aplicaie si activitile utilizatorilor trebuie sa fie transparente la modificrile de orice tip efectuate asupra datelor. Orice modificare efectuata asupra unei relaii, nu trebuie sa afecteze operaiile de manipulare a datelor, programele de aplicaie si mecanismele de interogare directa nu sunt afectate de modificrile fcute asupra datelor. Regula 10 regula independentei datelor din punct de vedere al integritii: Constrngerile de integritate specifice unei baze de date relaionale nu vor fi definite programele de aplicaie ci de sub-limbajul relaional de date, urmnd a fi memorate n catalogul sistem. (Regulile de integritate trebuie sa fie definite ntr-un sub-limbaj relaional, nu n programul de aplicaie). Limbajul SQL permite definirea de restricii privind integritatea datelor si stocarea lor n catalogul de sistem prin aceasta asigurndu-se controlul centralizat asupra constrngerilor. Regula 11 regula independentei datelor din punct de vedere al distribuirii: Sub-limbajul de manipulare a datelor trebuie sa permit utilizarea acelorai programe de aplicaie si interogri (sa fie invariante din punct de vedere logic)pentru a accesa date centralizate sau distribuite (Distribuirea datelor pe mai multe calculatoare dintr-o reea de comunicaii de date, nu trebuie sa afecteze programele de aplicaie si interogrile, daca si ori de cte ori datele sunt centralizate sau distribuite fizic). Independenta de distribuie presupune ca un program de aplicaie care acceseaz sistemul SGBD pe un singur calculator trebuie sa funcioneze fr modificri si ntr-o reea chiar daca datele sunt mutate de pe un calculator pe altul, utilizatorul percepnd datele fr a cunoate locul n care sunt stocate. Programele de aplicaie trebuie sa funcioneze fr modifica si ntr-o retea, chiar daca datele sunt transferate de pe un calculator pe altul. Regula 12 regula versiunii procedurale a SGBD (nonsubversiune): Orice componenta procedurala a unui SGBD trebuie sa respecte aceleai reguli de integritate ca si componenta relaionala (orice limbaj de nivel inferior trebuie sa respecte aceleai reguli de integritate exprimate n limbajul relaional de nivel nalt).

2.3 Normalizarea bazelor de date


Normalizarea este un proces prin care un set de relaii care ncalc anumite principii de proiectare este nlocuit cu un alt set de relaii adecvat, coerent i mai bine structurat [9,11,15,20, 26] proces de sus n jos ncepe cu identificarea principalelor entiti si relaii. Urmeaz ca acestea s fie examinate n scopul eliminrii tuturor "defectelor" lor i transformrii ntrun set de relaii adecvat, coerent i bine structurat. Aceast tehnic se bazeaz pe regulile expuse tot de E.F. Codd ,care a propus iniial trei seturi

16

de reguli pe care o relaie trebuie s le satisfac pentru a fi coerent i pe care le-a denumit prima (FN1), a doua (FN2), respectiv a treia (FN3) form normal (dnd astfel i numele tehnicii nsi). Ulterior, R. Boyce a introdus, mpreun cu E.F. Codd, o definiie mai tare a FN3 denumit forma normal Boyce-Codd (FNBC). Mai exist nc dou forme normale: a patra (FN4) si a cincea (FN5) form normal, care ns au n vedere situaii destul de rar ntlnite .

Fig. 1.6. Formele normale ale relaiilor.

Observaii se remarc caracterul "progresiv" al acestor forme normale (ilustrat i prin fig. 2.4): o relaie aflat n FN3 este automat n FN2 si deci si n FN1. uneori din punct de vedere al performanelor n exploatare este preferabil ca baza de date s fie lsat intr-o form normal inferioar (se execut procesul invers normalizrii, denumit denormalizare a bazei de date).

2.4. Restriciile de integritate ale modelului relaional


Referirile din acest paragraf se bazeaz pe lucrrile [5,12,15,20]. Integritatea BD se refer la corectitudinea informaiilor coninute n acestea. Se aplic diferite procedee pentru prevenirea, detectarea i corectarea diferitelor erori privind informaiile introduse n BD. Restriciile de integritate sau regulile de integritate (RI), definesc cerinele pe care trebuie s le satisfac datele din cadrul BDR pentru a putea fi considerate corecte i coerente n raport cu sistemul real pe care l reflect. Restriciile de integritate ale modelului relaional sunt de dou tipuri: RI structurale, care se definesc prin egalitatea sau inegalitatea unor valori din cadrul relaiilor. Din aceast categorie fac parte:
17

o Restriciile de unicitate a cheii o Restricia referenial o Restricia entitii o Dependena ntre date. RI de comportament, proprii unei anumite baze de date relaionale, ce ine cont de semnificaia valorilor din cadrul bazei respective. De exemplu, se pot defini RI de domeniu la care masele unor utilaje trebuie s de ncadreze ntr-un anumit interval. Utilizarea modelului relaional nu impune definirea i verificarea tuturor acestor tipuri de restricii ceea ce confer o anumit flexibilitate bazei de date. Din acest punct de vedere, putem considera c exist: RI minimale obligatoriu de definit i de respectat. Din aceast categorie fac parte: restricia de integritate a cheii, restricia referenial, restricia entitii.

Alte RI categorie din care fac parte: dependenele ntre date, restriciile de comportament. Pentru a putea face nelese restriciile introduse mai sus vom discuta cteva aspecte referitoare la cheile din cadrul relaiilor. Cheia unei relaii R reprezint un ansamblu minimal de atribute prin care se poate identifica n mod unic orice tuplu din R. Orice relaie posed cel puin o cheie. La limit, cheia este constituit fie dintr-un singur atribut, fie din totalitatea atributelor din schema relaiei respective. Cnd cheia este constituit dintr-un singur atribut ea poart numele de cheie simpl iar cnd este format din mai multe atribute este denumit cheie compus. Numim cheie candidat atributul sau mulimea de atribute ale unei entiti care identific n mod unic apariiile individuale ale unui tip de entitate. ntr-o relaie pot exista mai multe combinaii de atribute cu proprietatea de identificare unic a tuplurilor. Se spune n acest caz c relaia posed mai multe chei candidate. n aceast situaie, administratorul bazei va alege dintre cheile candidate una care s serveasc efectiv la identificarea tuplurilor i care se va numi cheie primar. Restul cheilor candidate se vor numi chei alternate. Cheia unei relaii trebuie sa fie minimal, n sensul c nici o parte a sa nu trebuie s posede proprietatea de identificare unic a tuplurilor relaie. O cheie extern reprezint un atribut sau un grup de atribute dintr-o relaie R1 ale crui/cror valori sunt definite pe acelai/aceleai domeniu/domenii ca i cheia primar a unei alte relaii R2 i care are rolul

18

de a modela asocierea ntre entitile reprezentate prin relaiile R1 i R2. n acest context, R1 este numit relaie care refer, n timp ce R2 poart numele de relaie referit .

Modelul relaional prezint urmtoarele restricii de integritate minimale: Restricia de unicitate a cheii primare. Reprezint restricia care impune ca ntr-o relaie R cu cheia K, oricare ar fi tuplurile t1 i t2 s fie satisfcut inegalitatea t1(K) t2(K). Restricia referenial (integritatea referirii). Reprezint restricia care impune ca ntr-o relaie R1 care refer o relaie R2, valorile cheii externe s figureze printre valorile cheii primare din relaia R2 sau s fie valori null (nedefinite). R1 i R2 nu trebuie s fie neaprat distincte. Semnificaia restriciei de integritate a referirii este urmtoarea: o asociere nu poate exista dect ntre parteneri cunoscui, adic deja definii. Atunci cnd, ntr-o anumit situaie, asocierea nu este aplicabil, unul dintre parteneri va fi desemnat prin valoarea null, cu semnificaia de partener inexistent. Restricia entitii (integritatea entitii). Reprezint restricia care impune ca ntr-o relaie atributele cheii primare s fie nenule. Unicitatea cheii impune ca, la ncrcarea unui tuplu, valoarea cheii s fie cunoscut, pentru a se putea verifica faptul c aceast valoare nu este deja ncrcat. Cu valori de null, cheia i pierde rolul de identificator de tuplu. Restricia de integritatea a entitii nu se aplic cheilor externe, ceea ce confer o anumit suplee modelului relaional. Uneori, se consider drept restricii de integritate minimale numai ultimele dou, restricia de unicitate a cheii fiind considerat implicit. Referitor la alte restricii de integritate n aceast categorie intr uzual constrngerile de domeniu: tipul de date al unui atribut, o list de valori posibile, un ordin de mrime, la un format sau o form, o procedur care este apelat ori de cte ori are loc o modificare pentru domeniul specificat .

3. Rezumat
Baza de date este un ansamblu de colecii de date, organizat pe niveluri de organizare a datelor n memoria extern, coerent, conform unor restricii de integritate, structurat, conform unui model de date, cu o redundan minim i controlat, asigurata printr-o tehnic de proiectare, accesibil mai multor utilizatori n timp util.
19

Un sistem de gestiune a bazelor de date (SGBD) este un ansamblu de programe ce permit utilizatorilor s interacioneze cu o baz de date n vederea: crerii , actualizrii i interogrii acesteia. Modelul relaional se bazeaz pe conceptul matematic de relaie. Noiunea de relaie este definit din punct de vedere matematic ca o submulime a produsului cartezian a unei liste (finite) de mulimi, numite domenii. ntr-o relaie, fiecare domeniu se identific printr-un nume, numit atribut. Relaia
este reprezentat fizic sub forma de tabel. O baza de date relaional poate fi definit ca un ansamblu de tabele aflate n legtur. Un atribut este o coloana a unei relaii (tabel), cu o anumit denumire. ntr-o relaie (reprezentat printr-un tabel bidimensional) rndurile corespund nregistrrilor individuale.

Explicaii suplimentare la clas

4 ntrebri de autoevaluare
1. Explicai conceptul de baza de date 2. Prezentai modelul entitate-relaie. 3. Enumerai tipurile de chei folosite n cadrul modelarii bazei de date 4. Definii sistemele de gestiune a bazelor de date i obiectivele SGBD 5. Definii funciunile sistemelor de gestiune a bazelor de date 6. Definii componentele unui mediu SGBD 7. Prezentai modelul de date relaional i baza de date relaional. 5. Explicai utilitatea celor 13 reguli ale lui Codd. 6. Comentai restriciile de integritate ale modelului

5 Bibliografie/webografie

1. Connoly T., Strachan A. Database Systems A practical Approach to Design, Implementation and Management, Second Edition, Addison Wesley Limited, 2002. 2. Connoly T., Strachan A. Database Systems A practical Approach to Design, Implementation and Management, Second Edition, Addison Wesley Limited, 2002. 3. Constantinescu C. Baze de date. Universitatea din Craiova,

20

4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.

2007. Darwen H Exercise Book for An introduction to Relational Database Theory, Ventus Publishing ApS UK , 2011. Darwen H. An introduction to Relational Database Theory. Ventus Publishing ApS UK , 2010. Doro I. Baze de date. Editura Cibernetic MC, Bucureti , 2010. Fotache M. Proiectarea bazelor de date. Normalizare i post normalizare. Implementri SQL i Oracle, Ed. Polirom, Iai , 2005. Fusaru D., Gherasim Z., Andronic, M. Bra A. Stroe, P. Aplicaii economice n Visual Basic i Acces, Ed. Fundaiei Romnia de mine, Bucureti, 2003. Gavot M. Baze de date. Editura SNSPA - Facultatea de Comunicare i Relaii Publice: Bucureti, 2001. Garsia Molina H., Ullman H., Wiondom J. Database Systems. The Complete Book. Pretience Hall, Upper Saddle Riner, 2002. Georgescu C., Georgescu M. Baze de date relaionale i multidimensionale, Ed. did. i ped. RA, Bucureti, 2005. Giulvezean C., Mircea G., Trnveanu D., Margea C. Baze de date, Ed. Univ. de Vest, Timioara 2009. Lungu I. Baze de date Oracle, Limbajul SQL, Editura ASE, Bucureti , 2005. Lungu I., Velicanu M., Botha Iuliana, Data Base Systems Presents and Future, Informatica Economic, vol13., nr. 1/2009. Nechita E., Crian G.C. Baze de date. Ed. Univ. din Bacu, 2008. Petrescu M., Operaiuni n modelul relaional. Introducere n algebra relaional. Curs Univ. Politehnica Bucureti, http://www.bazededate.org. Popescu I., Modelarea bazelor de date, Ed. Tehnic, Bucureti, 2001. Seyed M. M. Tahaghoghi, Hugh E. W., Learning MySQL, OREily Media Inc., 2007. Sheldon R., Moes G. Begining MySQL, Wiley Publishing Inc., 2005. Trandafir R. , Nistorescu M.S. Bazele informaticii i Limbaje de programare Baze de date relaionale, Univ. Tehnic de Construcii Bucureti, 2007. Tudor N.L. Sisteme informatice i gestiunea bazelor de date Oracle, Editura Matrix Rom, Bucureti, 2011. Tudor N.L. Sisteme informatice i gestiunea bazelor de date, Ed. Univ. din Ploieti, 2007. ***. Oracle Application Express Documentation, http://www.oracle.com/technetwork/developertools/apex/documentation/index.html. ***. Oracle Database Express Edition 11g, Release 2, http://download.oracle.com/docs/cd/E17781_01/index.ht 21

m 25. ***. Oracle Database SQL Language Reference 11g Release 1 (11.1), http://docs.oracle.com/cd/B28359_01/server.111/b28286 /toc.htm. 26. ***. Office.microsoft.com- Ajutor i asisten. Microsoft Access 2010. 27. http://www.quackit.com/microsoft_access

22

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