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

Elemente de proiectare a bazei de date

ELEMENTE DE PROIECTARE A BAZEI DE DATE

1 Entitǎti, atribute, chei.

In introducere am vǎzut cǎ actualizarea datelor despre clienti sau a datelor despre cǎrti este dificilǎ in conceptia initialǎ. Aceastǎ deficientǎ a apǎrut pentru cǎ au fost puse impreunǎ date despre trei lucruri distincte: clienti, cǎrti si comandǎ. Astfel de "lucruri" vor fi numite de acum inainte entitǎti.  

Entitatea este ceva despre care se memoreazǎ date. Clientii si cǎrtile sunt entitǎti tangibile (tari), comenzile nu pot exista fǎrǎ celelalte douǎ, ele nu sunt tangibile desi sunt puse pe hartia comandǎ, comanda este o entitate slabǎ. Entitatea va fi reprezentatǎ in baza noastrǎ de date sub forma unui tabel in care liniile sunt concretizǎrile acestei entitǎti, adicǎ  reprezentantii sau instantele entitǎtii.



Pe fiecare linie nu vom avea chiar reprezentantii entitǎtii ci numai date care caracterizeazǎ din punctual de vedere al aplicatiei reprezentantii entitǎtii; aceste date se numesc atribute. Deci o entitate din viata realǎ genereazǎ intr-o bazǎ de date relationalǎ un tabel ale cǎrui coloane au ca nume atributele entitǎtii, iar pe linii succesive se gǎsesc valorile atributelor pentru fiecare reprezentant al entitǎtii in parte.

De exemplu: entitatea CARTE are atributele: id carte, titlu, autor, editura, pret, in exemplul dat sunt trei reprezentanti ai acestei entitǎti, iar fiecare celulǎ a acestui tabel reprezintǎ o valoare a atributului corespunzǎtor coloanei pentru reprezentantul corespunzǎtor liniei.


CARTE

id carte

titlu

autor

editurǎ

pret

00035

Relational database design

Harrington

Academia Press

5,00 lei

00102

Baze de date

Lungu

All

1,20 lei

10223

Utilizare Access '95

Jennings

Teora

11,00 lei

Dacǎ am avea 10.000 de cǎrti vom avea in tabel 10.000 de linii pe care ar fi memorate valorile atributelor entitǎtii CARTE.

Alt exemplu pentru entitatea CLIENT avand atributele: id client, nume, prenume, oras, str., nr., tel, cod.

CLIENT

id carte

nume

prenume

oras

Str

nr

tel

cod

00001

Ancu

Viorel

Brasov

Castanilor

43

162534

500142

00010

Barna

Dan

Cluj

Horia

241

458142

420120

00011

Cucea

Maria

Iasi



Lalelelor

12

457256

650124

00101

Nanu

Vasile

Tg. Mures

Jiului

105

256412

345002

Dacǎ avem doi clienti cu acelasi nume cum vom determina care este cel care a comandat o anumitǎ carte?  

Am vǎzut care sunt inconvenientele creǎrii unui cod mixt cum a fost cel initial. Am mai putea folosi pentru identificatori numele plus numǎrul de telefon, dar in acest caz avem multe caractere si rǎman problemele legate de actualizǎri; de exemplu schimbarea numǎrului de telefon. Un astfel de atribut, simplu sau obtinut prin concatenare care identificǎ unic o instantǎ a unei entitǎti se va numi cheie. Asa cum recomandǎ practica si autorii Harrington [2] vom crea chei printr-un numǎr generat succesiv si unic in special pentru persoane, locuri, lucruri etc. Rǎman situatii in care este nevoie de chei concatenate. Existenta unei chei care sǎ identifice unic reprezentantii unei entitǎti este o regulǎ esentialǎ de integritate a datelor.

Intr-un model relational (de care ne ocupǎm in mod special) este esential ca atributele sǎ aibǎ valori unice, adicǎ fiind datǎ o instantǎ a unei entitǎti, un anumit atribut trebuie sǎ aibǎ o singurǎ valoare. De exemplu un client poate avea un singur numǎr de telefon. Dacǎ lǎsǎm mai multe locuri, mǎrim inutil si neproportional baza de date deci in cazul acestei necesitǎti trebuie creatǎ o nouǎ entitate "numǎr de telefon" cu mai multe instante.


2 Diagrama ER (Entitate relatie.)


Odatǎ stabilite entitǎtile si atributele ele trebuie sǎ rǎmanǎ pe un document; de fapt toatǎ activitatea de proiectare trebuie documentatǎ. Pe langǎ tabelele pe care le putem gǎsi in Iacob [3] si [4], avem nevoie de un instrument grafic care sǎ permitǎ o vedere sinteticǎ asupra bazei de date. Chen [1] a "inventat" diagrama E-R (entity‑relationship adicǎ entitate‑relatie). O prezentǎm aici sub o formǎ modificatǎ:

Entitatea se reprezintǎ sub forma unui dreptunghi in care sunt listate atributele si in care este pusǎ in evidentǎ cheia. Apoi vom vedea cum se reprezintǎ si relatiile intre entitǎti.

Iatǎ cum aratǎ, in primǎ instantǎ, entitǎtile reproiectate pentru societatea "Lectura inteligentǎ".

Se observǎ imediat cǎ trebuie sǎ spunem ce valori pot lua atributele si cat loc o sǎ ocupe aceste valori. Aceasta inseamnǎ cǎ trebuie stabilim domeniul atributelor. Practic se utilizeazǎ urmǎtoarele simboluri:



CHARx               text de x caractere, x 256

INTx                                 numǎr intreg de x cifre

DECIMALx.z                   numǎr de x cifre dintre care

NUMERICx.z                  z sunt dupǎ virgule (punctual) zecimal

DATE                               datǎ calendaristicǎ (zz/ll/aa)

TIME                                timp hh:mm:ss

DATETIME                     o combinatie a precedentelor

BOOLEAN                       valoarea logicǎ (adevǎrat sau fals)



In baza de date se vor introduce si relatii intre entitǎtile, care sunt de fapt realizate intre instante.

Vom enumera in continuare tipurile de relatii care se pot stabili intre entitǎti:

Relatii 1 la 1

Este cazul relatiei din cǎsǎtoria dintre douǎ posibile entitǎti "bǎrbati" si "femei" (nu in tǎrile islamice)

Relatii 1 la n

Sunt cele mai frecvente. Exemplu la o editurǎ pot fi mai multe cǎrti, dar o anumitǎ carte provine de la o singurǎ editurǎ.


Relatii n la m

Intre comenzi si cǎrti. Intr-o comandǎ pot fi mai multe cǎrti si aceeasi carte poate sǎ aparǎ in mai multe comenzi. Acest tip de relatii nu este usor de manuit si o astfel de relatie este transformatǎ in douǎ relatii de 1 la n introducand o nouǎ entitate. In cazul nostru noua entitate va fi "detaliu comandǎ". Este obligatoriu ca in aceastǎ entitate sǎ avem cheile celor douǎ entitǎti intre care existǎ relatia de n la m.

Relatiile vor fi descrise in diagramele E-R cu linii intre entitǎti care vor fi intretǎiate de simboluri ale tipurilor. Aceste simboluri sunt descrise mai jos.

| | pentru una si numai una (instantǎ)

0 |        pentru zero sau una

> |        pentru una sau mai multe

> 0        pentru zero, una sau mai multe

Carte

* nr carte

clasificare

titlu

editie

data aparitiei

pret

gen

 
Exemplu: relatia intre comenzi si cǎrti


O comandǎ contine cel putin o carte, dar o carte poate sǎ nu fie comandatǎ de nimeni, totusi este o relatie de tip n la m. ea poate fi transformatǎ prin introducerea entitǎtii "detaliu comandǎ" in:


0 | |

  |

 

Deci diagrama finalǎ intr-o proiectare corectǎ ar fi:

Editurǎ

nr editurǎ

nume

adresǎ

oras

stradǎ

numǎr

cod postal

telefon

pers contact

 
| | |

 

0

 

0

 

 

Autori



* nr autor

nume

prenume

 
|

  0 | |

 

Carte autor

* nr carte

* nr autor

 

Client

nr client

nume

prenume

oras

stradǎ

nr

cod postal

telefon

 

Sǎ observǎm cǎ:

cheia in entitatea comandǎ este numǎrul de comandǎ care apare in mod natural pe acest document.

cheia in entitǎtile de legǎturǎ "detaliu comandǎ" si "carte autor", introduce pentru a "distruge" relatiile n la m, este formatǎ din concatenarea celor douǎ chei ale entitǎtilor legate si nu creazǎ probleme de actualizare.

O bazǎ de date relationalǎ are la bazǎ relatia, care poate fi consideratǎ ca un tabel (reprezentarea unei entitǎti) cu linii (instante ale entitǎtilor), si coloane (atribute).

Bineinteles cǎ intre tabele trebuie sǎ existe legǎturi. Aceste legǎturi sunt realizate prin disciplina:

cheie primarǎ cheie strǎinǎ

Cheia primarǎ este cheia unei relatii, iar cheia strǎinǎ este atributul (de obicei cu acelasi nume ) de acelasi tip cu cheia primarǎ si cu valori care se pun in corespondentǎ cu cele ale cheii primare. Pentru ca o bazǎ de date relationalǎ sǎ fie corectǎ, trebuie ca baza de date sǎ indeplineascǎ anumite restrictii:

restrictia de unicitate a cheii

restrictia referentialǎ valorile cheii strǎine trebuie sǎ figureze printre valorile cheii primare sau sǎ aibǎ valoarea NUL

restrictia entitǎtii valorile cheii primare sunt unice si nu pot fi NUL

restrictia de domeniu valorile atributelor pot fi NUL sau din domeniul de definitie.


Gǎsiti in capitolul 9 un exemplu de proiectare a unei baze de date relationale. Un alt exemplu se poate gǎsi in Iacob[5].

biologie

botanica






Upload!

Trimite cercetarea ta!
Trimite si tu un document!
NU trimiteti referate, proiecte sau alte forme de lucrari stiintifice, lucrari pentru examenele de evaluare pe parcursul anilor de studiu, precum si lucrari de finalizare a studiilor universitare de licenta, masterat si/sau de doctorat. Aceste documente nu vor fi publicate.