curs 2

10
DATE_ PERSOANA CERERI_ OFERTE DESCRIERE_IMOBIL STRAZI JUDETE LOCALITATI FACTURI CURS 2. Construirea de diagrame entitate-relaţie Prima etapă pentru realizarea unei baze de date constă analiza sistemului . Se cunosc mai multe tehnici de analiză, dar cea mai tehnica entitate-relaţie. Prin tehnica entiate-relaţie (denumită şi entitate-asoc diagramă entiate-relaţie (notată -!) prin parcurgerea următor a)identi#icarea entităţilor (componentelor) din sistemu b)identi#icarea asocierilor (relaţiilor) dintre entităţ c)identi#icarea atributelor corespunzătoare entităţilor d)stabilirea atributelor de identi#icare a entităţilor. a) Identificarea entităţilor Prin entitatese înţelege un obiect concret sau abstract proprietăţile sale. Prin con%enţie, entităţile sunt substanti% se reprezintă prin dreptunghiuri. &ntr-o diagramă nu pot e'ist nume, sau o aceeaşi entitate cu nume di#erite. Pentru baza de date din domeniul imobiliar considerată ant în e%idenţă următoarele entităţi" - *+P!S / entitate care stochează date personale (%ânzătorului) sau ale clientului (cumpărătorului)$ - 0!!1+ 2!* / conţine o#ertele sau cererile imob %ânzători, respecti% cumpărători$ - S0!1!+13 415 / stochează in#ormaţiile re#eritoare la - 67 8 / entitate ce conţine 9udeţele în care sunt amplas - 5 0 51* 81 - entitate ce conţine localităţile în care sunt amplasate imobilele$ - S*! :1 - entitate ce precizează străzile în care sunt am - 2 0*7!1 / #ormularul necesar unei tranzacţii de cumpărare 2igura următoare prezintă o primă #ormă a diagramei entit 2ig. ;.<. iagrama -! pentru domeniul imobiliar (prim b) Identificarea asocierilor dintre entităţi şi calificarea lor &ntre ma9oritatea componentelor (adică a entităţilor) unu stabilesc legături (asocieri).

Upload: lazy-alex

Post on 05-Nov-2015

214 views

Category:

Documents


0 download

DESCRIPTION

Curs baze de date

TRANSCRIPT

CURS 2. Construirea de diagrame entitate-relaie

Prima etap pentru realizarea unei baze de date const n analiza sistemului. Se cunosc mai multe tehnici de analiz, dar cea mai des ntlnit este tehnica entitate-relaie.Prin tehnica entiate-relaie (denumit i entitate-asociere) se construiete o diagram entiate-relaie (notat E-R) prin parcurgerea urmtorilor pai:a) identificarea entitilor (componentelor) din sistemul proiectului;b) identificarea asocierilor (relaiilor) dintre entiti i calificarea lor;c) identificarea atributelor corespunztoare entitilor;d) stabilirea atributelor de identificare a entitilor.

a) Identificarea entitilor

Prin entitate se nelege un obiect concret sau abstract reprezentat prin proprietile sale. Prin convenie, entitile sunt substantive, se scriu cu litere mari i se reprezint prin dreptunghiuri. ntr-o diagram nu pot exista dou entiti cu acelai nume, sau o aceeai entitate cu nume diferite.Pentru baza de date din domeniul imobiliar considerat anterior, se pot pune n eviden urmtoarele entiti: DATE_PERSOAN entitate care stocheaz date personale ale ofertantului (vnztorului) sau ale clientului (cumprtorului); CERERI_ OFERTE conine ofertele sau cererile imobiliare propuse de vnztori, respectiv cumprtori; DESCRIERE_IMOBIL stocheaz informaiile referitoare la imobile; JUDEE entitate ce conine judeele n care sunt amplasate imobilele; LOCALITI - entitate ce conine localitile n care sunt amplasate imobilele; STRZI - entitate ce precizeaz strzile n care sunt amplasate imobilele; FACTURI formularul necesar unei tranzacii de cumprare-vnzare.Figura urmtoare prezint o prim form a diagramei entitate-asociere (E-R).

DATE_ PERSOANACERERI_ OFERTEDESCRIERE_IMOBILSTRAZIJUDETELOCALITATIFACTURIFig. 2.1. Diagrama E-R pentru domeniul imobiliar (prima form)

b) Identificarea asocierilor dintre entiti i calificarea lor

ntre majoritatea componentelor (adic a entitilor) unui sistem economic sestabilesc legturi (asocieri). Exemplu: Exist o asociere ntre entitile CERERI_OFERTE i FACTURI deoarece facturile reprezint finalizarea unei cereri/oferte. Aceast asociere se reprezint ca n figura de mai jos.

CERERI_OFERTEsunt finalizate prin FACTURI(1,1)(0,1)

Fig. 2.2. Prezentarea asocierii dintre entitile CERERI_OFERTE i FACTURI

Sunt necesare precizarea ctorva notaii i noiuni utilizate n exemplul de mai sus: legturile (asocierile) se reprezint prin arce neorientate ntre entiti; fiecrei legturi i se acord un nume plasat la mijlocul arcului i simbolizat printr-un romb (semnificaia legturii); numerele simbolizate deasupra arcelor se numesc cardinaliti i reprezint tipul legturii; cardinalitatea asocierilor exprim numrul minim i maxim de realizri ale unei entiti cu cealalt entitate asociat. Exemplu: Cardinalitatea (1,1) ataat entitii CERERI_OFERTA nseamn c o factur poate fi rezultatul tranzacionrii a minim unei cereri/oferte i a unui numr maxim de tot o cerere/ofert. Cardinalitatea (0,1) ataat entitii FACTURI nseamn c o cerere se poate finaliza prin maxim o factur sau prin nici una (0 facturi) . Aceast cardinalitate reiese din analiz:

CERERI_OFERTE123FACTURIF1F2Fig. 2.3. Determinarea cardinalitii asocierii dintre entitile CERERI_OFERTE i FACTURI

Maximele unei cardinaliti sunt cunoscute i sub denumirea de grad de asociere, iar minimele unei cardinaliti, obligativitatea participrii entitilor la asociere.

Tipuri de asocieri (legturi) ntre entiti

Asocierile pot fi de mai multe feluri, iar odat cu asocierea, se impune stabilirea calificrii acesteia. Asocierea dintre entiti se face n funcie de:i) cardinalitatea asocierii;ii) numrul de entiti distincte care particip la asociere.i. Dup cardinalitatea asocieriin funcie de maxima cardinalitii (gradul de asociere), se cunosc trei tipuri de asocieri, care, la rndul lor, sunt de dou tipuri, n funcie de minima cardinalitii (gradul de obligativitate al participrii la asociere): asocieri de tip unu la unu: asocieri pariale de tip unu la unu asocieri totale de tip unu la unu asocieri de tip unu la mai muli: asocieri pariale de tip unu la muli asocieri totale de tip unu la muli asocieri de tip muli la muli: asocieri pariale de tip muli la muli asocieri totale de tip muli la muli.ii. Dup numrul de entiti distincte care particip la asociere: asocieri binare (ntre dou entiti distincte); asocieri recursive (asocieri ale entitilor cu ele nsele); asocieri complexe (ntre mai mult de dou entiti distincte). n continuare se descriu asocierile grupate dup cardinalitatea lor.

Asocieri n funcie de cardinalitatea legturii

1. Asocieri de tip unu la unu sunt asocieri n care maximele cardinalitii auvaloarea 1.

A(...,1)E1E2(...,1)Fig. 2.4. Asociere de tip unu la unu

Exemplu: Asocierea din figura 2.3 este asociere de tip 1 la 1.

2. Asocieri de tip unu la mai muli sunt asocieri n care maxima cardinalitiiunei entiti este unu, iar a celeilalte entiti are valoarea muli.

E1E2A (...,1) (...,n)E1E2A (...,n) (...,1)Fig. 2.5. Asociere de tipul unu la mai muliExemplu:

LOCALITATIL1L2L3CERERI_OFERTE123AB

(0,n)(1,1)LOCALITATICERERI_OFERTE i corespunde

Fig. 2.6. Asociere de unu la mai muli ntre entitile LOCALITI i CERERI_OFERTE

3. Asocieri de tipul muli la muli sunt asocieri n care maximele cardinalitii au valoarea muli.

A(...,n)E1E2(...,n)Fig. 2.7. Asociere de tipul muli la muli

Exemplu:

DEPOZITD1D2D3PRODUSP1P2P3

DEPOZITPRODUSnmagazi neaz(0,n)(0,n)

Fig. 2.8. Asociere de tipul muli la muli ntre entitile DEPOZIT i PRODUS

Observaie: Uneori (n cazul utilizrii unor SGBD), asocierea de tip muli la muli se transform n dou asocieri de tipul unul la muli fiind, de regul, mai uor de implementat i de utilizat i anume:

DinE1E2 (...,n) (...,n)nE1EE2 (...,1) (...,n) (...,n) (...,1) A A1 A2a)b)Fig. 2.9. Transformarea unei asocieri de tipul muli la muli (a) n asocieri de tipul unu la muli (b)

Exemplu: n cazul exemplului de mai sus (vezi figura 2.8), transformarea asocierii muli la muli n asocieri de tipul unu la muli se poate realiza prin construirea unei noi entiti DEPOZIT_PRODUS astfel:

DEPOZITD1D2D3D4....PRODUSP1P2P3P4...DEPOZIT_PRODUSD1-P1D1-P3D2-P2D3-P2....(1,1)asociazasociaz(0,n)(0,n)(1,1) Fig. 2.10. Transformarea asocierii de tipul muli la muli n asocieri de tipul unu la muli

Asocieri pariale i totale

Printr-o asociere parial se nelege o asociere n care nu exist obligativitatea participrii la aceast asociere a tuturor entitilor vizate, ci numai a unora dintre ele sau a nici uneia. Asocierea parial se caracterizeaz prin faptul c minima cardinalitii ataat unei entiti este zero.Observaii (asupra minimii cardinalitii) minima cardinalitii zero, are drept rezultat lipsa obligativitii participrii partenerului la aceast asociere; minima cardinalitii mai mare dect zero, are drept rezultat obligativitatea participrii.

E1E2E1E2 A Aa)b) (0,) (,) (,) (0,)Fig. 2.11 Asocieri pariale ntre entitile E1 i E2

Exemplu: Asocierea dintre entitile CERERI_OFERTE i FACTURI din fig. 2.3 reprezint o asociere parial, deoarece participarea entitii FACTURI nu este obligatorie, minima caracteristicii corespunztoare entitii FACTURI fiind 0.

O asociere este total dac toate entitile au obligativitatea s participe la asociere, adic minima cardinalitii este mai mare dect zero.

E1E2 Aa) (1,) (1,)E1E2 (1,) (n,)E1E2 (n,) (n,)E1E2 (n,) (1,)b)c)d) A A AFig. 2.12 Asocieri totale ntre entitile E1 i E2

n continuare se dau cteva exemple de asocieri totale, respectiv pariale.Exemplu: Asocieri pariale de tip unu la unu

CERERI_OFERTE123FACTURIF1F2

Exemplu: Asocieri totale de tip unu la unu

CERERI_OFERTE123DESCRIERE_IMOBILI1I2I3

Exemplu: Asocieri pariale de tip unu la muli

LOCALITATIL1L2L3CERERI_OFERTE123

Exemplu: Asocieri totale de tip unu la muli

CLASEC1C2C3ELEVIE1E2E3E4Exemplu: Asocieri pariale de tip muli la muli

DEPOZITD1D2D3D4PRODUSP1P2P3

Exemplu: Asocieri totale de tip muli la muli

CURSURIC1C2C3STUDENTIS1S2S3S4

Fig. 2.13 Asocieri dup gradul i obiectivitatea lor

n exemplul bazei de date AGENTIE_IMOBILIARA, tipurile de asocieri dintre entiti stabilite n funcie de modul n care se desfoar activitatea modelat sunt: JUDETE-LOCALITATI 1:n deoarece unui jude i corespund mai multe localiti; LOCALITATI-STRAZI 1:n - deoarece unei localiti i corespund mai multe strzi; STRAZI-CERERI_OFERTE 1:n deoarece unei strzi i pot corespunde mai multe oferte/cereri; FACTURI-CERERI_OFERTE 1:1 deoarece fiecare factur conine doar cte o ofert/cerere; CERERI_OFERTE-DESCRIERE_IMOBIL 1:1 fiecrui imobil i se face o singur descriere; FACTURI- DATE_PERSOANA 1:1 o factur este ncheiat de o singur persoan; DATE_PERSOANA - CERERI_OFERTE 1:n o persoan poate lansa mai multe cereri sau oferte de imobil.

c) Identificarea atributelor entitilor i a asocierilor dintre entiti

Atributele unei entiti reprezint proprieti ale acestora. Atributele sunt substantive, iar pentru fiecare atribut i se va preciza tipul fizic (integer, float, char, string etc.)Exemplu: Entitatea LOCALITI are urmtoarele atribute: codul localitii, notat cod_loc, simbolul de identificare al judeului simbol_jude i denumirea localitii nume_loc.

d) Stabilirea atributelor de identificare a entitilor

Un atribut de identificare (numit cheie primar), reprezint un atribut care se caracterizeaz prin unicitatea valorii sale pentru fiecare instan a entitii. n cadrul diagramei entitate-asociere, un atribut de identificare se marcheaz prin subliniere sau prin marcarea cu simbolul # plasat la sfritul numelui acestuia.

E a (a)E a#(b)Fig. 2.14. Notaii uzuale pentru atributele de identificare

Exemplu: Ca atribut de identificare putem considera codul numeric personal cnp pentru entitatea DATE_PERSOAN.Pentru ca un atribut s fie atribut de identificare, acesta trebuie s satisfac unele cerine: ofer o identificare unic n cadrul entitii; este uor de utilizat; este scurt (de cele mai multe ori, atributul de identificare apare i n alte entiti, drept cheie extern). Pentru o entitate pot exista mai multe atribute de identificare, numite atribute (chei) candidate. Dac exist mai muli candidai cheie, se va selecta unul, preferndu-se acela cu valori mai scurte i mai puin volatile.

Exemplu: n urma analizrii celor 4 etape necesare construirii diagramei entitate-asociere: identificarea entitilor domeniului sau a sistemului economic; identificarea asocierilor dintre entiti; identificarea atributelor aferente entitilor i a asocierilor dintre acestea; stabilirea atributelor de identificare a entitilor, se poate prezenta forma complet a diagramei asociate domeniului ales n exemplu.

(0,n)

STRAZILOCALITATIJUDETEDATE_PERSOANAFACTURICERERI_ OFERTEDESCRIERE _IMOBILare asociatfinisateconinconin(1,1)(1,1)(0,n)are asociat se regsete(1,1)(1,n)(1,n)(1,1)(1,1)(1,1)(0,1)(1,1)incheie(1,1)(0,1)

Fig. 2.15. Diagrama E-R pentru domeniul imobiliar (a doua form)

n cazul n care se dorete o diagram care s conin i atributele fiecrei entiti nsoite de precizarea atributelor de identificare (adic a cheilor primare), pentru a nu ncrca imaginea, diagrama proiectului se poate fragmenta pe mici domenii, dup cum este cazul entitii CERERI_OFERTE, prezentat n figura 2.16. (S-au considerat un numr relativ mic de atribute).

CERERI_OFERTEtipuldata_inregcod_locid_stradanr_imobilpret_maxtip_solutionarecnppret_minid_co#Fig. 2.16. Reprezentarea atributelor aferente entitii CERERI_OFERTE (detaliu dintr-o diagram E-R)

n reprezentarea atributelor aferente entitii CERERI_OFERTE semnificaia atributelor este urmtoarea: cheia primar a entitii id_co reprezint numrul de ordine al cererii sau ofertei de imobil lansat de o anumit persoan, atributul tipul specific dac este vorba de o cerere sau de o ofert, prin cnp se precizeaz codul numeric personal al clientului, data_inreg reprezint data la care s-a nregistrat oferta/cererea, apoi urmeaz cteva date legate de imobil: codul localitii cod loc, codul strzii id_strada, numrul imobilului nr_imobil, preul minim, respectiv preul maxim al imobilului pret_min, pret_max. Ultimul atribut, tip_solutionare precizeaz dac cererea/oferta respectiv a fost soluionat; pentru o cerere/oferta nou introdus, acest atribut se va completa cu explicaia de nesoluionat. Astfel, diagrama bazei de date AGENIE IMOBILIAR conine 7 entiti a cror asociere a fost prezentat n figura 2.15.

DATE_PERSOANAcnp#numeleadresanr_telefonemailbanca_clientnr_cont_clientSTRZIid_strada#cod_loc#nume_str_LOCALITATIcod_loc#simbol_judet#nume_locJUDETEsimbol_judet#nume_judetCERERI-OFERTEid_co #tipcnpdata_inregtip_solutionarecod_locid_stradanr_imobilpret_minpret_maxDESCRIERE_IMOB ILid_co#tip_imobiletajnr_cameresuprafatagarajcentrala_termicatermopaneFACTURIid_oferta#data_facturacnppretTVAtotal

Fig. 2.17. Baza de date AGENIE IMOBILIAR- entiti i atribute