Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

Niveluri si modele de reprezentare a datelor in bazele de date

Niveluri si modele de reprezentare a datelor in bazele de date

In demersul realizarii unei baze de date exista trei niveluri de perceptie a acesteia :

extern, corespunzator utilizatorilor, care isi exprima cerintele informationale prin asa-numitele scheme externe (subscheme, fiecare subschema corespunzand viziunii fiecarui utilizator al bazei de date);

conceptual, aferent administratorului bazei de date, care se concretizeaza in schema conceptuala; este o abstractizare a unei parti din lumea reala;

intern, corespunzator programatorului, care realizeaza reprezentarea datelor pe suportul fizic; poarta numele de baza de date fizica;

Determinarea structurii unei baze de date se poate aborda ascendent, realizandu-se descrierea schemelor externe, urmata de elaborarea schemei conceptuale, sau descendent, definind mai intai schema conceptuala si deducand ulterior schemele externe posibil de obtinut.



1 Nivelul extern (schema externa)

La nivel extern, fiecare grup de utilizatori care manipuleaza datele poseda o anumita descriere a acestora. Aceasta descriere corespunde felului in care grupul vede baza de date in programele lui de aplicatii.

Modelul extern este cel mai apropiat de utilizator. Modelul extern corespunzator unui utilizator sau grup de utilizatori reprezinta ceea ce vede acesta din baza de date.

Modelul extern este derivat din modelul conceptual, putand prezenta deosebiri substantiale fata de acesta. Astfel un model extern cuprinde o parte a elementelor din modelul conceptual, dar poate contine si elemente care nu exista in modelul condeptual si nu au corespondent in baza de date fizica.

Fiecare schema externa trebuie sa se regaseasca in modelul conceptual.

2 Nivelul conceptual (modelul conceptual)

Modelul conceptual integreaza viziunile tuturor utilizatorilor asupra bazei de date. De asemenea acest tip de model este o descriere a continutului de informatie al bazei de date si nu cuprinde nici un fel de referire la modul de memorare al datelor sau al strategiei de acces la aceste date. Prin modelul conceptual este realizata independenta fizica a datelor. Modelului conceptual i se asociaza o transformare care defineste modul in care structura logica de date este transpusa in structura fizica de memorare. Aceasta este interfata dintre modelul intern si cel conceptual.

Nivelul conceptual este nivelul central care reflecta datele structurate astfel incat acestea sa poata fi preluate si prelucrate cu ajutorul unui SGBD.

Schema conceptuala sta la baza modelului conceptual care va permite definirea proprietatilor elementare ale obiectelor care intereseaza dintr-o intreprindere (de exemplu: model de pantof, culoare, marime etc.), gruparea acestora, in functie de criterii de omogenitate stabilite, in scopul descrierii obiectelor lumii reale (comanda, articole de incaltaminte, livrare) si a relatiilor dintre ele (cantitatea si pretul fiecarui articol livrat). Sunt definite regulile de care trebuie sa se tina seama in manipularea datelor existente.

In proiectarea bazelor de date, la nivel conceptual, se pot utiliza mai multe modele, dintre care cel mai frecvent utilizat in ultima vreme este modelul Entitate-Atribut-Corespondenta(EAC).

Modelul EAC abstractizeaza lumea reala si o transpune, pe de o parte, in agregari de date elementare, numite entitati, iar pe de alta parte, in legaturi intre entitati, denumite corespondente (sau asocieri). Asadar, o entitate corespunde unui obiect din lumea reala, identificat, in general, printr-un nume (o factura, un produs finit, un furnizor, un client etc.). Un tip de entitate desemneaza un ansamblu de entitati constituite din date de acelasi fel. Tipurile de date agregate sunt denumite generic atribute si definesc proprietatile obiectelor studiate.

O entitate este un model de obiect identificat in lumea reala - material (o persoana, un lucru etc.), imaterial (un eveniment) sau abstract - al carui tip este definit de un nume si de o lista de proprietati (atribute).

Un atribut se defineste ca fiind o proprietate a unei entitati sau a unei corespondente, caracterizata printr-un nume si un tip. Fiecare atribut care a fost selectionat la definirea continutului unei entitati este o caracteristica semnificativa pentru domeniul studiat. Multimea realizarilor (valorilor) unui atribut se numeste domeniu.

Realizare a unei entitati se numeste multimea formata din cate o valoare pentru fiecare atribut al entitatii.

Exista atribute care necesita valori "nule" ale altor atribute cu care sunt relationate, fapt care trebuie sa fie luat in considerare la proiectarea bazei de date. Valorile fiecarui atribut component a ceea ce numim generic entitate alcatuiesc o realizare (instantiere) a entitatii respective.

Identificatorul unei entitati este atributul (sau grupul de atribute si roluri) a carui realizare (valoare) caracterizeaza in mod unic o realizare a entitatii. In reprezentarea grafica, de regula, identificatorul se subliniaza cu o linie continua.

Regula (minimalitatea identificatorilor): in cazul identificatorilor compusi dintr-un grup de atribute sau roluri, trebuie sa nu existe un subgrup care sa poata indeplini rolul de identificator, adica numarul de elemente componente ale identificatorului sa fie minim. Aceasta se poate asigura prin verificarea dependentelor functionale dintre componentele identificatorului respectiv.

O corespondenta sau asociere reprezinta o legatura logica intre doua sau mai multe realizari de entitati. La nivelul limbajului natural, este definita printr-un verb. O corespondenta (asociere) poate avea proprietati particulare, date de atribute specifice.

Rolul unei entitati este un nume care desemneaza modul de participare a entitatii la o asociere. Identificarea asocierilor se realizeaza prin rolurile entitatilor participante, deci, concret, cu ajutorul identificatorilor entitatilor participante.

Multimea entitatilor care participa la o asociere formeaza colectia acesteia; numarul acestora da gradul sau dimensiunea asocierii.

O corespondenta intre realizari diferite ale aceleiasi entitati se numeste asociere reflexiva , caz in care este recomandata precizarea rolurilor fiecarei entitati in cadrul asocierii.

Cardinalitatea minimala/maximala exprima modul de participare al realizarilor fiecarei entitati la asociere (valori uzuale: 0,1; 1,1; 0,n; 1,n). Pentru fiecare tip de entitate care participa la o asociere trebuie precizat cate o cardinalitate minimala si una maximala.

O entitate poate participa la mai multe corespondente; in acelasi timp, pot exista mai multe asocieri intre aceleasi entitati. Un subansamblu de entitati ale aceluiasi tip de entitate formeaza un subtip al entitatii respective cu proprietati specifice. De exemplu, in baza de date a unei societati care tranzactioneaza autovehicule, entitatea Autovehicul poate avea subtipurile De_inchiriat si De_vanzare, fiecare cu date referitoare la felul tranzactiei la care participa un autovehicul (pret de vanzare, respectiv tarif de inchiriere etc.).

Reguli:

o asociere nu poate exista decat o singura data intre aceleasi entitati;

numele entitatilor, corespondentelor, rolurilor, atributelor trebuie sa fie unice in cadrul modelului conceptual, iar apoi, in baza de date definita.

In exemplul urmator este ilustrata abstractizarea unui ansamblu de date, extras din limbajul natural, aplicand modelul EAC.

Produsele finite ale unei fabrici, repreyentand articole de incaltaminte sunt livrate clientilor. La livrare se intocmesc facturi care contin data livrarii s articolele de tncaltaminte, fiecare dintre ele intr-o anumita cantitate si la un anumit pret unitar, cota TVA corespunzatoare articolului respectiv. O asemenea situatie s-ar putea repreyenta prin urm[toarea schema EAC:

entitati:

corespondenta:

atribute

o       pentru Articol_incaltaminte

o       pentru Factura_livrare

o       pentru Se_factureaza

identificatori:

o       pentru Articol_incaltaminte

o       pentru Factura_livrare

La realizarea modelului conceptual este necesar sa se tina seama si de regulile pe care datele trebuie sa le respecte permanent. Acestea se numesc restrictii de integritate (RI).



Exemple de RI:

eliminarea redundantelor (repetarilor) si a omonimelor in denumirea entitatilor, atributelor, corespondentelor;

valorile atributelor cu rol de identificator trebuie sa fie unice si nenule;

in cazul asocierilor, orice realizare a acestora impune existenta realizarilor entitatilor participante (este vorba de integritate referentiala);

cardinalitatile minime si maxime se stabilesc pe baza regulilor de desfasurare a activitatii in sectorul vizat.

Exemplu:

cardinalitate minima 0: un client al fabricii poate sa ramana in aceasta postura, chiar daca intr-o anumita perioada nu i se trimite nici o factura de livrare;

cardinalitate minima 1: intocmirea unei facturi trebuie sa vizeze un client;

cardinalitate maxima 1: la livrare, orice factura este trimisa unui client al fabricii;

respectarea unor restrictii de domeniu, cum ar fi:

o       data facturii sa nu fie anterioara datei curente;

o       marimea articolelor de incaltaminte sa fie cuprinsa in intervalul [34-46];

respectarea corelatiilor intre valorile atributelor din entitati diferite sau intre cele din entitati si din asocieri; de exemplu, cantitate_facturata sa satisfaca relatia cantitate_facturata + 20 >= cantitate_in_stoc, pentru fiecare articol de incaltaminte facturat;

in cazul identificarii entitatilor prin intermediul rolurilor asumate de alte entitati intr-o asociere, corespondenta respectiva trebuie sa nu fie ciclica, apoi cardinalitatile entitatii identificate sa fie 1,1 , iar ale celei identificator, 0,1 sau 1,1.

incluziunea de roluri: un rol al entitatii intr-o asociere impune un alt rol al sau intr-o a doua asociere :

excluziunea de roluri: apare in situatia in care roluri ale aceleiasi entitati se exclud reciproc:

egalitatea de roluri: inseamna o restrictie de incluziune reciproca intre doua roluri ale aceleiasi entitati:

Asemanator se stabilesc si restrictiile de incluziune, excluziune si egalitate de asocieri - daca exista - care vizeaza atat asocierea (toate rolurile dintr-o asociere), cat si toate entitatile participante.

3 Nivelul logic (modelul relational)

Definirea modelului relational

Modelul relational are la baza conceptul de relatie definit in teoria matematica a multimilor ca fiind o submultime a produsului cartezian al mai multor multimi: R M1×M2×.×Mn

Familia de multimi pe care este definita relatia se numeste domeniu, iar daca M1 = M2 = . = Mn, relatia este omogena. Numarul n se numeste gradul relatiei (aritatea relatiei), un element al relatiei t = (m1, m2, . , mn) este numit tuplu, iar numarul de tupluri indica cardinalul relatiei.

Domeniul este o notiune mai cuprinzatoare decat atributul, reprezentand multimea tuturor valorilor posibile care definesc o anumita proprietate a unui obiect, spre deosebire de atribut, care reprezinta multimea valorilor existente la un moment dat in coloana pe care o desemneaza in cadrul relatiei. Intr-o relatie pot exista mai multe atribute care iau valori in aceleasi domenii.

Relatiile se reprezinta intr-o forma simpla prin tabele, supuse urmatoarelor restrictii:

in fiecare coloana toate valorile sunt de acelasi fel;

fiecare valoare este un numar sau un sir de caractere (nu trebuie sa fie grup sau ansamblu);

ordinea liniilor in tabel nu este predefinita si nu sunt admise duplicate;

coloanele sunt identificate prin nume distincte care reprezinta atributele relatiei.

Prelucrarea relatiilor se face prin algebra relationala sau calculul relational pe tuplu sau domeniu.

Algebra relationala

Operatorii relationali se pot grupa in operatori de baza, care pot genera toata clasa operatorilor relationali, si operatori auxiliari. Operatorii relationali de baza se impart in operatori de asamblare si operatori unari.

Operatorii de asamblare sunt operatori binari, care primesc la intrare doua relatii si genereaza la iesire o singura relatie. Acestia sunt: reuniunea, diferenta si produsul cartezian, care au aceeasi semnificatie ca si in teoria multimilor. Operatorii unari se aplica asupra unei relatii si genereaza o alta relatie. Din aceasta clasa fac parte proiectia si selectia.

Proiectia. Prin intermediul proiectiei, dintr-un tabel cu un anumit numar de coloane se obtine unul cu un numar mai mic de coloane.

Selectia. Prin operatorul de selectie, dintr-un tabel cu un anumit numar de coloane se obtine unul cu aceleasi coloane, dar cu un numar mai mic de randuri.

Operatorii auxiliari pot fi dedusi din setul de operatori de baza si sunt: compunerea (Join), intersectia si impartirea (diviziunea). Acestia joaca un rol foarte important in interogarea bazelor de date relationale. Spre exemplu, realizarea produsului cartezian este foarte costisitoare, ceea ce face ca acesta sa fie inlocuit cu operatorul de Join.

Compunerea conditionala (Join) a doua relatii R1 si R2 dupa calificatorul multiatribut Q este relatia E ale carei tupluri sunt cele ale produsului cartezian R1 x R2 care satisfac calificatorul Q. In functie de calificatorul Q se disting mai multe tipuri de compuneri:

daca Q este de forma Ai = Bj, se numeste echicompunere;

daca Q este de forma Ai ò Bj, unde ò = se numeste ø compunere;

daca Q este de forma Ai = Aj, se numeste autocompunere.

Compunerea naturala este o echicompunere pe R1 si R2 dupa toate atributele avand acelasi nume in R1 si R2, urmata de o proiectie care permite conservarea unuia dintre aceste atribute, egale ca nume.

Intersectia o dau relatiile R1 si R2 cu aceeasi schema, aceasta este o relatie E care contine tuplurile comune celor doua relatii.



Diviziunea relatiei R1 (A1, A2 . An) de grad (p+m) prin relatia R2 (Ap+1, ., Am) de grad m este relatia E (A1, A2, ., Ap) de grad p, formata din toate tuplurile care, concatenate cu fiecare tuplu din R2, da totdeauna un tuplu din R1.

Privita prin prisma modelului relational, baza de date apare ca o colectie de relatii (tabele) normalizate, in care fiecare coloana reprezinta un atribut distinct, iar fiecare rand, un tuplu distinct. Tuplurile unei relatii se pot identifica in mod unic prin intermediul valorilor unuia sau mai multor atribute (eventual toate atributele), care joaca rol de cheie primara a relatiei respective. Se numeste domeniu primar un domeniu pe care este definit un singur atribut drept cheie primara. Dandu-se doua relatii R1 si R2 cu atributele A1 si A2 chei primare definite pe acelasi domeniu primar D, spunem ca A1 este cheie externa, daca, utilizand o parte din valorile ei sau toate, putem regasi tuplurile relatiei R Altfel spus, un atribut al unei relatii este cheie externa, daca se regaseste pe post de cheie primara intr-o alta relatie.

Deoarece relatiile reflecta un anumit aspect din realitate, acestea se supun unor restrictii care sunt de doua tipuri:

restrictii de integritate care depind de semantica valorilor domeniilor si care cer ca relatiile sa se supuna urmatoarelor reguli:

integritatea entitatii, prin care valorile cheii primare trebuie sa fie diferite de zero; altfel cheia nu va mai fi identificator;

integritatea referirii, potrivit careia valorile unei chei externe trebuie sa refere tuplurile unei alte relatii sau sa fie nedefinite.

alte restrictii care se aplica asupra tuplurilor relatiei si nu asupra domeniilor, reflectand anumite corelatii de ordin valoric (egalitate, inegalitate).

Normalizarea relatiilor

E. F. Codd a aratat ca intr-o anumita forma relatiile poseda proprietati nedorite, pe care le-a numit anomalii de actualizare:

Anomalia de stergere consta in faptul ca anumite date care urmeaza sa fie sterse fac parte din tupluri in care se gasesc si alte date care mai sunt necesare in continuare, ori stergerea facandu-se la nivelul tuplului, acestea se pierd.

Anomalia de adaugare consta in faptul ca anumite date care urmeaza sa fie adaugate fac parte din tupluri incomplete (pentru care nu se cunosc toate datele), ceea ce face ca acestea sa nu poata fi adaugate.

Anomalia de modificare rezulta din faptul ca este dificil de modificat o valoare a unui atribut atunci cand ea apare in mai multe tupluri ale relatiei.

Pentru a inlatura aceste anomalii, Codd a stabilit trei forme normale pentru relatii si a introdus procesul de normalizare care se bazeaza pe notiunea de dependenta functionala (FD) ca relatie intre atributele unei entitati ce are un caracter invariant.

Procesul de normalizare a relatiilor se realizeaza in mai multi pasi, incepand cu forma normala unu (1NF) si ajungand (dupa ultimele cercetari) la forma normala cinci (5NF). Acesta consta in descompunerea unei relatii in conformitate cu multimea dependentelor functionale F, intr-o colectie de relatii care sa conserve informatiile si dependentele functionale din relatia initiala (descompunerea fara pierderi). Pentru exemplificarea procesului de normalizare a relatiilor vom face apel la o relatie R definita pe atributele: cod produs (P#), unitatea de masura (U), pretul unitar (P), cantitatea (Q), cod beneficiar (B#), localitatea beneficiarului (L), codul postal (C) si prefixul telefonic al localitatii (T).

O relatie este in forma normala 1 (1NF), daca si numai daca toate atributele ei contin numai valori atomice.

O relatie este in forma normala 2 (2NF) daca si numai daca este in 1NF si orice atribut noncheie este complet dependent functional de cheia primara.

O relatie este in forma normala 3 ( 3NF ) daca si numai daca este in 2NF si fiecare atribut noncheie nu este dependent tranzitiv pe cheia primara.

4 Nivelul intern (fizic)

Nivelul intern (modelul fizic) este cel ce corespunde structurii in care sunt stocate datele in interiorul masinii. Sunt specificate tabelele (fisierele) care le contin (nume, organizare, localizare etc.), componentele fiecarui fisier (lungime, campuri, plasare a acestora in cadrul fisierului), caile de acces la componentele tabelelor (indecsi, relatii, legaturi intre tabele).

De exemplu, o factura poate fi accesata direct datorita unui index realizat pe numarul acesteia, iar cantitatile facturate pot fi cunoscute creand o legatura intre tabelele 'Factura_livrare' si 'Produse_facturate', prin intermediul asocierii 'Se_factureaza'.

Se vor avea in vedere cerintele privind asigurarea protectiei datelor, atat din punct de vedere al continutului campurilor din tabele (verificarea si validarea valorilor campurilor la introducere, evitarea stergerii, din greseala sau din rea-vointa, a datelor importante, cu secvente de program special concepute), cat si in ceea ce priveste accesul utilizatorilor la baza de date (stabilirea drepturilor de acces trebuie sa se faca tinand cont de rolul, functia si sarcinile fiecarui utilizator).

4 Proiectarea bazei de date

Proiectarea unei baze de date presupune realizarea modelelor conceptual, logic si fizic, prin trecerea de la MCD la MLD, apoi, de la MLD la MFD.

Corespondentele intre entitati care se caracterizeaza prin cardinalitati 1,1 (intereseaza cardinalitatea maxima egala cu 1) si care, de regula, nu au proprietati specifice, se concretizeaza in restrictii de integritate functionala (RIF), iar asocierile sunt denumite ierarhice. Cele pentru care cardinalitatile maxime au valori egale cu n (sau mai mari ca 1) sunt restrictii de integritate multipla (RIM); asocierile, in acest caz, se numesc non-ierarhice. Acestea din urma se recunosc usor fiindca, de cele mai multe ori, au proprietati (atribute) specifice, in timp ce asocierile ierarhice nu au, in general, caracteristici proprii.

In vederea facilitarii intelegerii modului in care se creeaza o aplicatie in Microsoft ACCESS 2000, vom folosi un studiu de caz practic.

Vom alege pentru aceasta o intreprindere cu activitate de productie. Managementul acestei intreprinderi doreste realizarea unui sistem informatic de gestiune a materialelor. Se doreste ca in cadrul acestui sistem sa se evidentieze furnizorii, facturile, magaziile, tipurile de materiale si bonurile de consum.

Pentru a micsora gradul de dificultate a aplicatiei propuse, vom considera ca toate materialele cuprinse pe o anumita factura sunt destinate unei singure magazii. Materialele sunt receptionate de o magazie pe baza facturii si sunt eliberate sectiilor de productie pe baza bonurilor de consum. Vom presupune, de asemenea, ca materialele au un pret unitar de achizitie fix, care nu depinde de furnizor.

Pe baza intrarilor (facturi) si a iesirilor (bonuri de consum) se doreste determinarea nivelului stocurilor de materiale.

Conform teoriei proiectarii bazelor de date trebuie sa definim mai intai modelul conceptual al datelor (modelul entitate-atribut-corespondenta). In etapa a doua acest model trebuie transformat in modelul logic (relational) si apoi in modelul fizic (ACCESS).

Modelul conceptual al datelor:

In urma analizei problemei rezulta urmatoarele entitati: Furnizor, Factura, Material, Magazie si Bon de consum.

Identificarea corespondentelor:

Furnizor - Factura ( Un furnizor poate emite de la 1 la n facturi, de unde rezulta o corespondenta EMITE)

Factura - Material ( Intr-o factura sunt cuprinse de la 1 la n materiale in diferite cantitati, de unde rezulta o corespondenta LINIE FACTURA cu atributul Cantitate intrata )

Factura - Magazie ( O magazie poate primi de la 1 la n facturi, de unde rezulta o corespondenta PRIMESTE )

Bon de consum - Material ( Intr-un bon de consum sunt cuprinse de la 1 la n materiale in diferite cantitati, de unde corespondenta LINIE BON DE CONSUM cu atributul Cantitate iesita )

Bon de consum - Magazie ( O magazie emite de la 1 la n bonuri de consum, de unde rezulta corespondenta REALIZEAZA )

Facturi-Facturi ( O factura poate fi stornata de 0 sau n facturi de stornare, de unde rezulta corespondenta SE STORNEAZA )

Stabilirea cardinalitatilor:



Corespondenta EMITE

o       dinspre entitatea Furnizor (1,n)

un furnizor emite cel putin o factura (cardinalitate minima 1);

un furnizor poate emite mai multe facturi (cardinalitate maxima n).

o       dinspre entitatea Factura (1,1)

factura este emisa de cel putin si de cel mult un furnizor (cardinalitate 1,1).

Corespondenta PRIMESTE

o       dinspre entitatea Magazie (1,n)

o magazie primeste cel putin o factura (cardinalitate minima 1);

o magazie poate primi mai multe facturi (cardinalitate maxima n).

o       dinspre entitatea Factura (1,1)

factura este trimisa la cel mult si la cel putin o magazie (cardinalitate 1,1).

Corespondenta LINIE FACTURA

o       dinspre entitatea Factura (1,n)

o factura contine cel putin un material (cardinalitate minima 1);

o factura poate contine mai multe materiale (cardinalitate maxima n).

o       dinspre entitatea Material (1,n)

un material este inclus in cel putin o factura (cardinalitate minima 1);

un material poate fi inclus in mai multe facturi (cardinalitate maxima n).

Corespondenta LINIE BON DE CONSUM

o       dinspre entitatea Material (0,n)

un material poate sa nu fie inclus in nici un bon de consum (cardinalitate minima 0);

un material poate fi inclus in mai multe bonuri de consum (cardinalitate maxima n).

Dinspre entitatea Bon de consum (1,n)

o       un bon de consum contine cel putin un material (cardinalitate minima 1);

o       un bon de consum poate contine mai multe materiale (cardinalitate maxima n).

Corespondenta DESTINAT

o       dinspre entitatea Bon de consum (1,1)

un bon de consum este destinat cel putin si cel mult unei magazii (cardinalitate 1,1).

o       dinspre entitatea Magazie (1,n)

unei magazii ii este destinat cel putin un bon de consum (cardinalitate minima 1);

unei magazii ii sunt destinate mai multe bonuri de consum (cardinalitate maxima n).


Modelul conceptual al datelor

Modelul logic (relational) al datelor:

In figura urmatoare se prezinta transformarea modelului relational intr-o baza de date ACCESS (modelul fizic):

Modelul conceptual poate fi completat cu datele privind evidenta anilor si a lunilor din fiecare an, relationate cu cele privind clientii si produsele comandate de acestia.

Trecerea de la MLD la MFD se face utilizand facilitatile si instrumentele oferite de SGBD-ul ales.

Deoarece SGBD Access implementeaza in totalitate teoria modelului relational, trecerea de la MLD la MFD se face foarte simplu, dupa cum urmeaza:

relatiile se transpun in tabele;

legaturile dintre tabele sunt asigurate prin corespondentele intre cheile primare si cele externe.

Crearea structurii bazei de date in Access 2000 este prezentata in capitolul urmator.