1 baze de date

12
BAZE DE DATE Prin bază de date înţelegem o colecţie de date elementare şi interdependente, structurate şi organizate astfel încât să fie accesibile unei comunităţi de utilizatori. Datele sunt organizate în fişiere (numite şi tabele) interconectate. Un fişier este un ansamblu de înregistrări fizice, omogene din punct de vedere al conţinutului şi al prelucrării. O inregistrare fizică este o unitate de transfer între memoria internă şi cea externă a calculatorului. Aceasta este formată din una sau mai multe înregistrări logice. O înregistrare logică(rând în tabel) este unitatea de prelucrare din punctul de vedere al programatorului. Aceasta este formată dintr-un ansamblu de câmpuri(coloane în tabel), care descriu o anumită realitate. Baza de date conţine nu numai datele operaţionale ale organizaţiei, ci şi o descriere a acestora. De aceea ea este definită şi ca o colecţie autodescrisă de înregistrări integrate. Această descriere a datelor este cunoscută sub denumirea de catalog de sistem sau dicţionar de date sau meta-date (date despre date). Natura autodescriptivă a bazelor de date este cea care determină independenţa program-date. Accesul utilizatorilor la informaţiile despre structura unei baze de date se realizează prin intermediul dicţionarului de date. Conceptul de bază de date a apărut în 1964 în cadrul primului raport CODASYL 1 prezentat la lucrările unei Conferinţe pe probleme de limbaje de gestiune a datelor “Development and Management of Computer – centered date-base”. La această conferinţă a fost lansată ideea organizării datelor prin intermediul unui fişier de descriere globală, numit dicţionar de date care are menirea de a asigura independenţa programelor faţă de date şi a datelor faţă de programe 2 . 1 COnference on DAta SYstems Languages – Conferinţa despre Limbajele Sistemelor de Date 2 Lungu, I., ş.a., Baze de date, Organizare, proiectare şi implementare, Editura All, Bucureşti, 1995, p.13 1

Upload: paul-gabriel-grosu

Post on 18-Sep-2015

28 views

Category:

Documents


1 download

DESCRIPTION

Crearea unei baze de date

TRANSCRIPT

BAZE DE DATE

BAZE DE DATEPrin baz de date nelegem o colecie de date elementare i interdependente, structurate i organizate astfel nct s fie accesibile unei comuniti de utilizatori.

Datele sunt organizate n fiiere (numite i tabele) interconectate. Un fiier este un ansamblu de nregistrri fizice, omogene din punct de vedere al coninutului i al prelucrrii. O inregistrare fizic este o unitate de transfer ntre memoria intern i cea extern a calculatorului. Aceasta este format din una sau mai multe nregistrri logice. O nregistrare logic(rnd n tabel) este unitatea de prelucrare din punctul de vedere al programatorului. Aceasta este format dintr-un ansamblu de cmpuri(coloane n tabel), care descriu o anumit realitate. Baza de date conine nu numai datele operaionale ale organizaiei, ci i o descriere a acestora. De aceea ea este definit i ca o colecie autodescris de nregistrri integrate. Aceast descriere a datelor este cunoscut sub denumirea de catalog de sistem sau dicionar de date sau meta-date (date despre date). Natura autodescriptiv a bazelor de date este cea care determin independena program-date.

Accesul utilizatorilor la informaiile despre structura unei baze de date se realizeaz prin intermediul dicionarului de date.

Conceptul de baz de date a aprut n 1964 n cadrul primului raport CODASYL prezentat la lucrrile unei Conferine pe probleme de limbaje de gestiune a datelor Development and Management of Computer centered date-base. La aceast conferin a fost lansat ideea organizrii datelor prin intermediul unui fiier de descriere global, numit dicionar de date care are menirea de a asigura independena programelor fa de date i a datelor fa de programe.

Bazele de date sunt concepute pentru a prelucra un volum mare de informa(ii.

Sistemul de programe care permite construirea unor baze de date, introducerea informaiilor n bazele de date i dezvoltarea de aplicaii privind bazele de date se numete sistem de gestiune a bazelor de date(SGBD).Un sistem de gestiune a bazelor de date constituie o interfa ntre utilizatori i BD i asigur urmtoarele funciuni.

1. Descrierea structurii bazei de date: a fiecrui tabel, a relaiilor dintre tabele, a restriciilor n reprezentarea informaiilor etc. cu ajutorul unui limbaj de descriere a datelor LDD.LDD este utilizat att pentru proiectarea bazelor de date ct i pentru redefinirea lor.

2. Operaii asupra datelor aflate n BD: Introducerea datelor

Adugarea de noi date Modificarea unor date existente pentru a le pune n acord cu realitatea tergerea unor date devenite inutile Cu ajutorul unui limbaj de manipulare a datelor LMD

3. Interogarea bazei de date, adic extragerea unor informaii stocate n aceasta, realizarea de statisci asupra datelor etc. cu ajutorul unui limbaj de cereri LCNiveluri i modele de reprezentare a datelor n bazele de date n demersul realizrii unei baze de date exist trei niveluri de percepie a acesteia:

extern, corespunztor utilizatorilor, care i exprim cerinele informaionale prin aa - numitele scheme externe (subscheme);

conceptual, aferent proiectanilor bazei de date, care se concretizeaz n schema conceptual;

intern, corespunztor programatorului, care realizeaz reprezentarea datelor pe suportul fizic.

Vzut prin prisma celor trei niveluri, baza de date poate fi reprezentat ca n figura urmtoare.

Nivele de abstractizare a datelor n bazele de dateDeterminarea structurii unei baze de date se poate aborda ascendent, realizndu-se descrierea schemelor externe, urmat de elaborarea schemei conceptuale, sau descendent definind mai nti, schema conceptual i deducnd ulterior schemele externe posibil de obinut.

Cel mai adesea, schema conceptual se obine pe baza schemelor externe, prin eliminarea redundanelor i rafinarea acestora. Trecerea de la schema conceptual la cea intern se face prin intermediul limbajelor de descriere a datelor, care sunt incluse n SGBD-uri. Un model de date presupune un limbaj de descriere a realitii, n timp ce o schem este o descriere a unei realiti dup un model dat.

Nivelul extern (schema extern)

La nivelul extern, fiecare grup de lucru care manipuleaz datele posed o anumit descriere a acestora numit schem extern. Aceast descriere corespunde felului n care grupul vede baza de date n programele lui de aplicaii. Prin urmare nivelul extern reflect mulimea datelor care prezint interes pentru un utilizator sau pentru un grup de utilizatori. Exist aadar, mai multe scheme externe, fiecare schem extern presupune utilizarea unei pri din baza de date, folosind informaiile ntr-un mod bine determinat. Aceast parte de informaie se numete vedere. Fiecrei vederi i corespunde un grup de utilizatori. Pentru un grup particular se definesc tipurile de cereri de informaii i modul de determinare a datelor din BD care formeaz rspunsuri la aceste cereri. Un pas important n proiectarea unei BD este determinarea vederilor i a claselor de utilizatori asociate lor. Vederile permit ca aceleai date s fie privite din perspective diferite de diferii utilizatori. Nivelul conceptual (modelul conceptual)

Nivelul conceptual este un nivelul central care structureaz datele astfel nct acestea s poat fi preluate i prelucrate cu ajutorul unui SGBD.

Nivelul conceptual reprezint viziunea proiectanilor BD asupra datelor.

n proiectarea bazelor de date, la nivel conceptual, unul dintre modelele frecvent utilizat este modelul Entitate-Asociere (EA).

Modelul EA mparte elementele unui sistem real n dou categorii i anume n entiti(agregri de date elementare) i n asocieri ntre entiti. Aadar, o entitate corespunde unui obiect din lumea real pentru care exist date, identificat, n general, printr-o denumire (o factur, un produs finit, un furnizor, un client). Tipurile de date agregate sunt denumite generic atributele entitii i definesc proprietile obiectelor studiate.

O entitate reprezint un tip de obiect concret sau abstract care:

aparine spaiului problemei de rezolvat are o existen de sine stttoare

poate fi identificat n raport cu celelalte obiecte

Exemple: angajat, produs, utilaj, factura, client, comanda, profesor, student, curs.

Entitile sunt reprezentate prin substantive.

O entitate este descris printr-un ansamblu de atribute.

Un atribut se definete ca fiind o proprietate a unei entiti sau a unei asocieri. Fiecare atribut care a fost selecionat la definirea coninutului unei entiti este o caracteristic semnificativ pentru domeniul studiat.

Exemplu:

ANGAJAT

Marca

NumePrenume

Data naterii

CNP

Un atribut poate fi simplu, cnd poate lua o singur valoare, sau repetitiv cnd poate lua mai multe valori(ex. Limbi straine cunoscute, telefon).

Exist atribute care necesit valori nule fapt care trebuie s fie luat n considerare la proiectarea bazei de date.

Entitatea este perceput ca un tip de obiecte.Fiecare obiect individual constituie o realizare(sau instan) a entitii.n cadrul unei entiti nu pot exista dou realizri(instane) identice. Fiecare entitate trebuie sa conin un atribut sau un grup de atribute care identific n mod unic instanele entitii. Acesta este denumit identificatorul(cheia) entitii i servete drept cheie primar n viitoarea baz de date. Exist dou tipuri de identificatori naturali i artificiali. Un identificator natural este alctuit dintr-un atribut sau un grup de atribute cu semnificaie real pentru entitatea n cauz. De exemplu, combinaia Nume, Prenume, Data naterii este un identificator natural pentru entitatea Angajat.

Un identificator artificial este alctuit dintr-un atribut sau un grup de atribute fr semnificaie real pentru entitatea n cauz, fiind folosit doar pentru a face distincie ntre instanele entitii. Exemple CNP, Marca, Numr inventarn reprezentarile grafice identificatorii entitilor se noteaza subliniat.

Regul (minimalitatea identificatorilor): n cazul identificatorilor compui dintr-un grup de atribute sau roluri, trebuie s nu existe un subgrup care s poat ndeplini rolul de identificator, adic numrul de elemente componente ale identificatorului s fie minim. Aceasta se poate asigura prin verificarea dependenelor funcionale dintre componentele identificatorului respectiv.

Asocierile modeleaz interdependenele dintre clasele de obiecte reprezentate de entiti. Sunt luate n considerare doar interdependenele necesare aplicaiei de proiectat, n lumea real putnd exista ntre entitile analizate i alte asocieri care nu sunt semnificative pentru aplicaie. O asociere poate avea atribute proprii.

Asocierile sunt reprezentate uzual prin verbe.Asocierile pot fi binare (ntre 2 mulimi de entiti) sau n-are (ntre n mulimi de entiti, n>2).

O caracteristica foate importanta a asocierilor binare este cardinalitatea. Acesta exprima modul de participare al instanelor fiecarei entitati la asociere.

Fiind date dou entiti, E1 i E2, se definesc urmtoarele asocierile binare:

Asocierea unu-la-unu (one-to-one) este asocierea n care unei instane a entitii E1 i coreaspunde cel mult o instan a entitii E2, i reciproc; se noteaz cu 1:1.

Asocierea unu-la-multe (one-to-many) este asocierea n care unei instane a entitii E1 i coreaspund zero, una sau mai multe instane ale entitii E2, dar unei entiti din E2 i corespunde cel mult o instan a entitii E1; se noteaz cu 1:N. Asocierea multe-la-multe (many-to-many) este asocierea n care unei instane a entitii E1 i coreaspund zero, una sau mai multe instane ale entitii E2, i, de asemenea, instane a entitii E2 i coreaspund zero, una sau mai multe instane ale entitii E1; se noteaz cu M:N.Aceste valori reprezint cardinalitatea maxim a asocierii. O asociere este caracterizat i de o cardinalitate minim care indic obligativitatea participrii instanelor la asociere.

Cardinalitatea minim zero: pot exista instane ale entitii care nu particip la nici o realizare a asocierii.

Cardinalitatea minim unu: toate instanele entitii trebuie s participe la asociere.

Rolul unei entiti este un nume care desemneaz modul de participare al entitii la o asociere. Identificarea asocierilor se realizeaz prin rolurile entitilor participante deci, concret, cu ajutorul identificatorilor entitilor participante.

In determinarea asocierilor trebuie s se in seama i de posibilitatea existenei asocierilor complexe (ntre mai mult de dou entiti). De exemplu, fie entitile FURNIZOR, MATERIAL, DEPOZIT i asocierile binare corespunztoare. Aceste asocieri permit s se determine furnizorii unui materialelor, materialele intrate n depozite respectiv furnizorii ce aprovizioneaz depozitele. Nu se poate determina ce furnizor aprovizioneaz cu un material anume un anume depozit.

Cazuri speciale de entiti i asocieri

Subentitate-Superentitate. n modelul E-A se pot defini subtipuri de entiti denumite i subentiti, care reprezint specializri ale unor tipuri de entiti denumite superentiti, i se pot defini, de asemenea, ierarhii pe mai multe nivele de tipuri i subtipuri de entiti. Se pot folosi dou modaliti de definire a ierarhiilor de tipuri: specializarea i generalizarea.

Specializarea este un proces de abstractizare a datelor prin care, pornind de la o entitate dat, se definesc una sau mai multe subentiti, difereniate ntre ele n funcie de rolul pe care l au n modelul de date. De exemplu, de la tipul de entitate ANGAJAT se definesc subentitile INGINER, ECONOMIST, MUNCITOR. Acestea motenesc toate atributele tipului iniial dar au n plus atribute suplimentare, specifice rolului lor.

Intre subentitate i superentitate exist ntotdeauna o asociere de tip 1(0):1(1), semnificnd faptul c o instan a unei subentiti este asociat cu o singur instan a entitii entiti de baz i reciproc.

O subentitate se reprezint ntr-un dreptunghi inclus n dreptunghiul care reprezint superentitatea corespunztoare.

Generalizarea este procesul de abstractizare invers specializrii, prin care se creaz un supertip de entitate pornind de la mai multe tipuri de entiti. Pentru aceasta se identific atributele comune ale mai multor tipuri de entiti i aceste atribute vor caracteriza superentitatea, iar atributele care difer de acestea rmn atribute specifice ale fiecrui tip.

De exemplu, dac au fost definite tipurile de entiti: AUTOMOBIL (Marca, VitezaMaxima, Pret, NumarPasageri) i CAMION (Marca, VitezaMaxima, Pret, Tonaj), se poate defini un supertip al acestor tipuri: VEHICUL (Marca, VitezaMaxima, Pret), care cuprinde toate atributele comune, iar tipurile AUTOMOBIL i CAMION devin subtipuri ale tipului VEHICUL, fiecare coninnd atributele specifice (NumrPasageri pentru tipul AUTOMOBIL i Tonaj pentru tipul CAMION).

Rezultatul obinut prin generalizare este, ca i n cazul specializrii, o ierarhie de tipuri i subtipuri de entiti, iar asociearea dintre mulimile corespunztoare este tot o asociere 1:1. Ceea ce difer n generalizare fa de specializare, este doar modul n care se definesc nivelele ierarhiei.

Specializarea poate fi total(instanele superentitii aparin unei subentiti) sau pariala(pot exista instane ale superentitaii care sa nu aparin nici unei subentiti). Generalizarea, fiind prin definiie gruparea de entitati deja existente in baza de date nu poate fi decat totala.

Intre subtipuri poate exista o excluziune, ceea ce se traduce prin faptul ca o anumita instan nu poate apartine decat unei singure subentiti. Exista insa si cazuri in care aceeasi instan apartine mai mulor subtipuri. De ex un angajat al unei universitati poate fi i student la frecventa redusa. Pentru astfel de situatii trebuie precizate dupa caz relatii de excluziune, incluziune, etc.

Introducerea de subtipuri prin specializare sau prin generalizare prezint dou avantaje principale: favorizeaz proprietile comune la nivelul tipului (superentitii) i face mult mai clar reprezentarea unor tipuri de asocieri la care particip numai o parte dintre entiti.

Asocieri reflexive Pot exista asocieri i intre o entitate i ea insi, acestea se numesc asocieri reflexive sau recursive.

Nivelul internNivelul intern este nivelul elementar la care pot fi considerate datele i se refer la modul n care sunt stocate datele pe suporturi magnetice. La acest nivel structura datelor este foarte detaliat. Nivelul intern cuprinde structurile de date i organizrile fiierelor utilizate pentru stocarea datelor pe dispozitivele de stocare. El trateaz probleme cum ar fi: alocarea spaiului de stocare pentru date i indexuri, descrierile nregistrrilor pentru stocare, cu dimensiunile de stocare pentru articolele de date, plasarea nregistrrilor, tehnicile de comprimare i de codificare a datelor. Nivelul intern interacioneaz cu metodele de acces al sistemului de operare (tehnici de administrare a fiierelor, pentru stocarea i regsirea nregistrrilor de date) pentru a plasa datele pe suporturile de stocare, a regsi datele, a realiza indexurile.Includerea n baza de date a descrierii structurii acesteia o deosebete calitativ de fiierele de date, deoarece prin aceasta se asigur independena datelor din baz fa de programele de aplicaii i invers. Posibilitatea modific(rii structurii la un nivel, f(r( a afecta structura celorlalte niveluri este (nt(lnit( sub numele de independena datelor, prezent( sub dou( forme:

independena fizic( de date, adic( posibilitatea modific(rii structurii bazei de date la nivel intern (cum ar fi utilizarea unor organizri ale fiierelor sau structuri de stocare diferite, a unor dispozitive diferite de stocare, modificarea de indexuri sau de algoritmi hash), f(r( a fi necesar( schimbarea structurii conceptuale (i rescrierea programelor de prelucrare a datelor. Asemenea modific(ri sunt necesare pentru ameliorarea performan(elor de lucru (vitez( de acces, m(rimea fi(ierelor etc.). Autonomia fizic( este cea care asigur( (i portabilitatea bazei de date de pe un sistem de calcul pe altul f(r( modificarea schemei conceptuale (i a programelor;

independena logic( de date se refer( la faptul c( modificarea schemei conceptuale a bazei de date (cum ar fi adugarea sau eliminarea unor entiti, atribute sau relaii) nu necesit( (i modificarea schemei externe sau rescrierea programelor de aplicaii.

Este important s se fac distincie ntre descrierea bazei de date i baza de date nsi. Descrierea bazei de date constituie schema bazei de date. Ea este specificat n timpul procesului de proiectare a bazei de date i este schimbat rareori. Setul de date din baza de date se numete instana bazei de date. Mai multe instane ale bazei de date pot corespunde aceleiai scheme a bazei de date.

INGINER

Specializare

ECONOMIST

Calificare

ANGAJAT

CNP

nume si prenume

adresa

Muncitor

Meserie

Economist

Calificare

INGINER

Specializare

ANGAJAT

CNP

nume si prenume

adresa

Sef echipa

subordonat

conduce

Muncitor

aprovizionare

DEPOZIT

MATERIAL

FURNIZOR

N(0) 1(1)

lucreaza la loc munca

LUCREAZA

Data INCADRARII

Compartiment

Cod compartimant

Functia

Denumire compartimant

Angajat

CNP

Nume

Prenume

Data nasterii

Adresa

1(1) 1(0)

realizeaz corespunde

Se ponteaz

PONTAJ

Id_Pontaj

Ore_Lucrate

Absene

Concediu_med

Concediu_odihna

Angajat

CNP

Nume

Prenume

Data nasterii

Adresa

MUNCITOR

Meserie

Atribute

Denumirea entitii

Identificatorul entitii

COnference on DAta SYstems Languages Conferina despre Limbajele Sistemelor de Date

Lungu, I., .a., Baze de date, Organizare, proiectare i implementare, Editura All, Bucureti, 1995, p.13

Fotache, M., Baze de date relaionale. Organizare, interogare i normalizare, Editua Junimea, Iai, 1997, p.32

PAGE 7

_1127804865.doc

Utilizator A1

Utilizator B1

Utilizator B2

Aplicaie

Utilizator A2

Comenzi

autonome

Aplicaie

Comenzi

autonome

Imagine A

(nivel extern)

Imagine B

(nivel extern)

.

...

.

Schema

extern A

Schema

extern B

INTERFAA A

INTERFAA B

Imagine global

(nivel global)

Schema conceptual

(global)

Sistem de

gestiune a

bazei de date

INTERFAA

BAZA DE DATE MEMORAT PE DISC

Schema intern