Diagrame entitate relatie

39
Diagrame entitate- Diagrame entitate- rela rela ţie ţie

description

.

Transcript of Diagrame entitate relatie

Page 1: Diagrame entitate relatie

Diagrame entitate-relaDiagrame entitate-relaţieţie

Page 2: Diagrame entitate relatie

Diagrama E/R – model neformalizat pentru Diagrama E/R – model neformalizat pentru reprezentarea unui sistem din lumea reală. Este un reprezentarea unui sistem din lumea reală. Este un model de date conceptual de nivel înalt dezvoltat de model de date conceptual de nivel înalt dezvoltat de Chen (1976) pentru a facilita proiectarea bazelor de Chen (1976) pentru a facilita proiectarea bazelor de date.date.Modelul de date conceptual este independent de:Modelul de date conceptual este independent de:

tipul SGBD-ului;tipul SGBD-ului; platforma platforma hardwarehardware utilizata. utilizata.

Modelul conceptual este constituit din concepte care Modelul conceptual este constituit din concepte care descriu:descriu:

structura bazei de date;structura bazei de date; tranzactii de regasire si reactualizare asociate.tranzactii de regasire si reactualizare asociate.

Page 3: Diagrame entitate relatie

EntitateEntitate: persoană, loc, concept, activitate, : persoană, loc, concept, activitate, eveniment care este semnificativ pentru ceea ce eveniment care este semnificativ pentru ceea ce

modelăm.modelăm.

Page 4: Diagrame entitate relatie

Observaţii:Observaţii:Entităţile devin tabele în modelele relaţionale.Entităţile devin tabele în modelele relaţionale.În general, entităţile se scriu cu litere mari.În general, entităţile se scriu cu litere mari.Entităţile sunt substantive, dar nu orice Entităţile sunt substantive, dar nu orice substantiv este o entitate.substantiv este o entitate.Pentru fiecare entitate este obligatoriu să se dea Pentru fiecare entitate este obligatoriu să se dea o descriere detaliată.o descriere detaliată.Nu pot exista, în aceeaşi diagramă, două entităţi Nu pot exista, în aceeaşi diagramă, două entităţi cu acelaşi nume, sau o aceeacu acelaşi nume, sau o aceeaşi şi entitate cu nume entitate cu nume diferite.diferite.

Page 5: Diagrame entitate relatie

Cheia primarăCheia primară este un identificator unic este un identificator unic în în cadrul entităţii, făcând cadrul entităţii, făcând distincţie între valori distincţie între valori diferite ale acesteia. diferite ale acesteia. Cheia primarCheia primară:ă: trebuie să fie unică şi cunoscută la orice moment;trebuie să fie unică şi cunoscută la orice moment; trebuie să fie controlată de administratorul bazei;trebuie să fie controlată de administratorul bazei; trebuie să nu conţină informaţii descriptive, să fie trebuie să nu conţină informaţii descriptive, să fie

simplă, fără ambiguităţi;simplă, fără ambiguităţi; să fie stabilă;să fie stabilă; să fie familiară utilizatorului.să fie familiară utilizatorului.

Page 6: Diagrame entitate relatie

RelaţieRelaţie (asociere): o comunicare între două sau mai multe (asociere): o comunicare între două sau mai multe entităţi. Existenţa unei relaţii este subordonată existenţei entităţi. Existenţa unei relaţii este subordonată existenţei entităţilor pe care le leagă. Gradul (tipul) unei relatii este dat entităţilor pe care le leagă. Gradul (tipul) unei relatii este dat de numarul entitatilor participante la relatia respectiva.de numarul entitatilor participante la relatia respectiva.ObservaţiiObservaţii::

În modelul relaţional, relaţiile devin tabele speciale sau coloane speciale În modelul relaţional, relaţiile devin tabele speciale sau coloane speciale care referă chei primare.care referă chei primare.

Relaţiile sunt verbe, dar nu orice verb este o relaţie.Relaţiile sunt verbe, dar nu orice verb este o relaţie. Pentru fiecare relaţie este important să se dea o descriere detaliată.Pentru fiecare relaţie este important să se dea o descriere detaliată. În aceeaşi diagramă pot exista relaţii diferite cu acelaşi nume. În acest În aceeaşi diagramă pot exista relaţii diferite cu acelaşi nume. În acest

caz, le diferenţiază entităţile care sunt asociate prin relaţia respectivă.caz, le diferenţiază entităţile care sunt asociate prin relaţia respectivă. Pentru fiecare relaţie trebuie stabilită cardinalitatea (maximă şi minimă) Pentru fiecare relaţie trebuie stabilită cardinalitatea (maximă şi minimă)

relaţiei, adică numărul de tupluri ce aparţin relaţiei.relaţiei, adică numărul de tupluri ce aparţin relaţiei. poate (cardinalitate maximă) poate (cardinalitate maximă) trebuie (cardinalitate minima) trebuie (cardinalitate minima)

Page 7: Diagrame entitate relatie

Exemplu:Exemplu:Câţi salariaţi Câţi salariaţi potpot lucra într-un departament? Mul lucra într-un departament? Mulţi!ţi!În câte departamente În câte departamente poatepoate lucra un salariat lucra un salariat? ? In cel mult unul!In cel mult unul!

RelaRelaţia SALARIAT_lucreaza_in_DEPARTAMENT are cardinalitatea ţia SALARIAT_lucreaza_in_DEPARTAMENT are cardinalitatea maximă maximă many-onemany-one (n:1). (n:1).

Exemplu:Exemplu:Câţi salariaţi Câţi salariaţi trebuietrebuie să conducă un departament? Cel pu să conducă un departament? Cel puţin unul!ţin unul!Câte departamente Câte departamente trebuie trebuie să conducă un salariat? Zero!să conducă un salariat? Zero!

RelaRelaţia SALARIAT_conduce_DEPARTAMENT are cardinalitatea ţia SALARIAT_conduce_DEPARTAMENT are cardinalitatea minimă minimă one-zeroone-zero (1:0). (1:0).

Page 8: Diagrame entitate relatie

AtributAtribut: proprietate descriptivă a unei entităţi sau a unei : proprietate descriptivă a unei entităţi sau a unei relaţii. Atributele pot fi simple, compuse, cu valori multiple, relaţii. Atributele pot fi simple, compuse, cu valori multiple, derivate.derivate.

ObservaţiiObservaţii::Trebuie făcută distincţia între tipul atributului (devine coloană Trebuie făcută distincţia între tipul atributului (devine coloană în modelele relaţionale) şi valoarea acestuia (devine valoare în modelele relaţionale) şi valoarea acestuia (devine valoare în coloane).în coloane).Atributele sunt substantive, dar nu orice substantiv este Atributele sunt substantive, dar nu orice substantiv este atribut.atribut.Fiecărui atribut trebuie să i se dea o descriere completă Fiecărui atribut trebuie să i se dea o descriere completă (exemple, contraexemple, caracteristici).(exemple, contraexemple, caracteristici).Pentru fiecare atribut trebuie specificat numele, tipul fizic Pentru fiecare atribut trebuie specificat numele, tipul fizic ((integerinteger, , floatfloat, , charchar etc.), valori posibile, valori implicite, reguli etc.), valori posibile, valori implicite, reguli de validare, tipuri compuse.de validare, tipuri compuse.

Page 9: Diagrame entitate relatie

Pentru proiectarea Pentru proiectarea diagramei entitate-relaţie diagramei entitate-relaţie au fost stabilite anumite reguli (nu sunt unice):au fost stabilite anumite reguli (nu sunt unice):

entităţile sunt reprezentate prin dreptunghiuri;entităţile sunt reprezentate prin dreptunghiuri;relaţiile dintre entităţi sunt reprezentate prin arce relaţiile dintre entităţi sunt reprezentate prin arce neorientate;neorientate;atributele care reprezintă chei primare trebuie atributele care reprezintă chei primare trebuie subliniate sau marcate prin simbolul „#“, plasat la subliniate sau marcate prin simbolul „#“, plasat la sfârşitul numelui acestor atribute;sfârşitul numelui acestor atribute;cardinalitatea minimă este indicată în paranteze, iar cardinalitatea minimă este indicată în paranteze, iar cardinalitatea maximă se scrie fără paranteze;cardinalitatea maximă se scrie fără paranteze;nu trebuie specificate toate atributele.nu trebuie specificate toate atributele.

Page 10: Diagrame entitate relatie

Diagrama E/R

Page 11: Diagrame entitate relatie

Cazuri speciale de entitCazuri speciale de entităţăţi, relaţii, atribute şi modul lor i, relaţii, atribute şi modul lor de reprezentare în cadrul diagramei entitate-relaţie.de reprezentare în cadrul diagramei entitate-relaţie.

1.1. Entitate dependentăEntitate dependentă – nu poate exista în mod independent – nu poate exista în mod independent (SARCINA depinde de PROIECT). Cheia primară a unei entităţi (SARCINA depinde de PROIECT). Cheia primară a unei entităţi dependente include cheia primară a sursei (dependente include cheia primară a sursei (nr_proiectnr_proiect) şi cel puţin o ) şi cel puţin o descriere a entităţii (descriere a entităţii (nr_sarcinanr_sarcina). Entitatea dependentă se ). Entitatea dependentă se desenează prin dreptunghiuri cu linii mai subţiri.desenează prin dreptunghiuri cu linii mai subţiri.

2.2. Moştenirea atributelor.Moştenirea atributelor. Subentitate Subentitate (subclasă) – submulţime a unei (subclasă) – submulţime a unei alte entităţi, numită alte entităţi, numită superentitatesuperentitate (superclasă) (SALARIAT < –– > (superclasă) (SALARIAT < –– > PROGRAMATOR). Subentitatea se desenează prin dreptunghiuri PROGRAMATOR). Subentitatea se desenează prin dreptunghiuri incluse în superentitate. Există o relaţie între o subentitate şi o incluse în superentitate. Există o relaţie între o subentitate şi o superentitate, numită ISA, care are cardinalitatea maximă 1:1 şi superentitate, numită ISA, care are cardinalitatea maximă 1:1 şi minimă 1:0. Cheile primare, atributele şi relaţiile unei superentităţi minimă 1:0. Cheile primare, atributele şi relaţiile unei superentităţi sunt valabile pentru orice subentitate. Afirmaţia reciprocă este falsă.sunt valabile pentru orice subentitate. Afirmaţia reciprocă este falsă.

Page 12: Diagrame entitate relatie

3.3. Generalizare. Din entităţi similare care au mai multe atribute Generalizare. Din entităţi similare care au mai multe atribute comune se pot crea superentităţi. Aceste superentităţi comune se pot crea superentităţi. Aceste superentităţi conţin atributele comune, iar atributele speciale sunt conţin atributele comune, iar atributele speciale sunt asignate la subentităţi. asignate la subentităţi. Pentru noile superentităţi se introduc Pentru noile superentităţi se introduc chei primare artificiale.chei primare artificiale.

4.4. Specializare. După valorile unor atribute clasificatoare se Specializare. După valorile unor atribute clasificatoare se pot determina pot determina claseclase. Un grup de subentităţi reciproc . Un grup de subentităţi reciproc exclusive defineşte o clasă. Clasele se aliniază în desen exclusive defineşte o clasă. Clasele se aliniază în desen vertical. vertical.

5.5. Într-o diagramă E/R se pot defini relaţii recursive. Într-o diagramă E/R se pot defini relaţii recursive. 6.6. Unele relaţii sunt relative la două entităţi şi le numim de tip Unele relaţii sunt relative la două entităţi şi le numim de tip

2, iar dacă relaţiile implică mai mult de două entităţi, le vom 2, iar dacă relaţiile implică mai mult de două entităţi, le vom numi de tip 3. Trei relaţii de tip 2 sunt diferite de o relaţie de numi de tip 3. Trei relaţii de tip 2 sunt diferite de o relaţie de tip 3. Rupând o relaţie de tip 3 în trei relaţii de tip 2, pot tip 3. Rupând o relaţie de tip 3 în trei relaţii de tip 2, pot apărea informaţii incorecte.apărea informaţii incorecte.

Page 13: Diagrame entitate relatie

7.7. Trebuie excluse din model relaţiile indirecte deoarece Trebuie excluse din model relaţiile indirecte deoarece ele pot conduce la redundanţă în baza de date.ele pot conduce la redundanţă în baza de date.

8.8. Atributele derivabile trebuie eliminate şi introduse Atributele derivabile trebuie eliminate şi introduse expresii prin care aceste atribute pot fi calculate.expresii prin care aceste atribute pot fi calculate.

9.9. RelaRelaţie sau atribut? ţie sau atribut? Dacă un atribut al unei entităţi Dacă un atribut al unei entităţi reprezintă cheia primară a unei alte entităţi, atunci el reprezintă cheia primară a unei alte entităţi, atunci el referă o relaţie (referă o relaţie (cod_departamentcod_departament în tabelul în tabelul SALARIAT)SALARIAT)..

10.10. Entitate sau relaţie? Se cercetează cheia primară. Entitate sau relaţie? Se cercetează cheia primară. Dacă aceasta combină cheile primare a două entităţi, Dacă aceasta combină cheile primare a două entităţi, atunci este vorba de o relaţie. (cheia primară a relaţiei atunci este vorba de o relaţie. (cheia primară a relaţiei asociat_laasociat_la combină combină cod_salariatcod_salariat cu cu nr_proiectnr_proiect, prin , prin urmare, urmare, SALARIAT_asociat la_PROIECTSALARIAT_asociat la_PROIECT va defini o va defini o relaţie şi nu o entitate).relaţie şi nu o entitate).

Page 14: Diagrame entitate relatie

11.11. Un atribut indirect este inoportun. El nu descrie real relaţia Un atribut indirect este inoportun. El nu descrie real relaţia sau entitatea. Prin urmare, atributele indirecte trebuie sau entitatea. Prin urmare, atributele indirecte trebuie reasignate. De fapt, un atribut indirect este un caz special de reasignate. De fapt, un atribut indirect este un caz special de relaţie indirectă care trebuie eliminată pentru că introduce relaţie indirectă care trebuie eliminată pentru că introduce redundanţă în date (numărul clădirii în care lucrează un redundanţă în date (numărul clădirii în care lucrează un salariat este un atribut al entităţii DEPARTAMENT şi nu este salariat este un atribut al entităţii DEPARTAMENT şi nu este o caracteristică a entităţii SALARIAT).o caracteristică a entităţii SALARIAT).

12.12. Există atribute opţionale, a căror valoare este uneori Există atribute opţionale, a căror valoare este uneori necunoscută, alteori neaplicabilă. Aceste atribute trebuie necunoscută, alteori neaplicabilă. Aceste atribute trebuie introduse la subentităţi (comisionul pentru deplasare şi zona introduse la subentităţi (comisionul pentru deplasare şi zona de lucru sunt atribute specifice unui agent teritorial şi trebuie de lucru sunt atribute specifice unui agent teritorial şi trebuie introduse la subentitatea AGENT_TERITORIAL).introduse la subentitatea AGENT_TERITORIAL).

Modelul EER (modelul EModelul EER (modelul E/R extins) = Diagrama E/R + /R extins) = Diagrama E/R + concepte aditionale (subclasă, superclasă, moştenire, concepte aditionale (subclasă, superclasă, moştenire, specializare, generalizare). specializare, generalizare).

Page 15: Diagrame entitate relatie

Algoritmul pentru proiectarea Algoritmul pentru proiectarea diagramei entitate-relaţie:diagramei entitate-relaţie:

1.1. identificarea entităţilor din cadrul identificarea entităţilor din cadrul sistemului analizat;sistemului analizat;

2.2. identificarea relaţiilor dintre entităţi şi identificarea relaţiilor dintre entităţi şi stabilirea cardinalităţii;stabilirea cardinalităţii;

3.3. identificarea atributelor aferente identificarea atributelor aferente entităţilor şi asocierilor dintre entităţi;entităţilor şi asocierilor dintre entităţi;

4.4. stabilirea atributelor de identificare a stabilirea atributelor de identificare a entităţilor (stabilirea cheilor).entităţilor (stabilirea cheilor).

Page 16: Diagrame entitate relatie

Diagrama E/R

Page 17: Diagrame entitate relatie

S-a presupus (restrictiv) că într-o zi un cititor nu poate împrumuta, S-a presupus (restrictiv) că într-o zi un cititor nu poate împrumuta, de mai multe ori, aceeaşi carte. Modelul prezintă anomalii (de de mai multe ori, aceeaşi carte. Modelul prezintă anomalii (de exemplu, cheia primară de la entitatea carte)! A fost gândit în exemplu, cheia primară de la entitatea carte)! A fost gândit în această manieră cu scop pur didactic.această manieră cu scop pur didactic.EntităţileEntităţile şi şi relaţiilerelaţiile care intervin în acest model sunt următoarele: care intervin în acest model sunt următoarele:

CARTE (entitate independentă) – orice carte care se găseşte în CARTE (entitate independentă) – orice carte care se găseşte în inventarul bibliotecii. Cheia primară este atributul inventarul bibliotecii. Cheia primară este atributul codel.codel.

CITITOR (entitate independentă) – orice cititor care poate CITITOR (entitate independentă) – orice cititor care poate împrumuta cărţi. Cheia primară este atributul împrumuta cărţi. Cheia primară este atributul codec.codec.

DOMENIU (entitate independenta) – domeniul căruia îi aparţine DOMENIU (entitate independenta) – domeniul căruia îi aparţine o carte. Cheia primară este atributul o carte. Cheia primară este atributul coded.coded.

IMPRUMUTA – relaţie având cardinalitatea IMPRUMUTA – relaţie având cardinalitatea mm::mm care leagă care leagă entităţile CITITOR şi CARTE.entităţile CITITOR şi CARTE.

APARTINE – relaţie care leagă atributele CARTE şi DOMENIU. APARTINE – relaţie care leagă atributele CARTE şi DOMENIU. Relaţia are cardinalitatea maximă Relaţia are cardinalitatea maximă mm:1, iar cardinalitatea minimă :1, iar cardinalitatea minimă 1:1.1:1.

Gestiunea activităţilor de împrumut Gestiunea activităţilor de împrumut dintr-o bibliotecădintr-o bibliotecă

Page 18: Diagrame entitate relatie
Page 19: Diagrame entitate relatie

Gestiunea activităţilor de editare Gestiunea activităţilor de editare dintr-o editurădintr-o editură

Se analizeaza activitatea dintr-o editură referitoare la culegerea textelor, realizarea Se analizeaza activitatea dintr-o editură referitoare la culegerea textelor, realizarea

elementelor grafice, machetarea unor publicaţii.elementelor grafice, machetarea unor publicaţii.

Page 20: Diagrame entitate relatie

Gestiunea activităţilor unei firme Gestiunea activităţilor unei firme de construcţiide construcţii

Baza de date construită prin acest model, furnizează informaţii legate de obiective de execuţie, Baza de date construită prin acest model, furnizează informaţii legate de obiective de execuţie, investitori, executanţi, şantiere, contracte etc. necesare unui manager al unei firme de construcţiiinvestitori, executanţi, şantiere, contracte etc. necesare unui manager al unei firme de construcţii

Page 21: Diagrame entitate relatie

Tabelele din cursurile Tabelele din cursurile Oracle EducationOracle Education. Tabelele . Tabelele empemp, , deptdept, , salgradesalgrade modelează gestiunea salariaţilor unei firme. modelează gestiunea salariaţilor unei firme. Tabelul Tabelul empemp(empno#, ename, job, mgr, hiredate, sal, com, deptno) (empno#, ename, job, mgr, hiredate, sal, com, deptno) conţine informaţii despre salariaţii unei firme. Pentru fiecare salariat conţine informaţii despre salariaţii unei firme. Pentru fiecare salariat sunt definite următoarele atribute: sunt definite următoarele atribute: empnoempno: codul salariatului; : codul salariatului; enameename: : numele salariatului; numele salariatului; jobjob: funcţia; : funcţia; mgrmgr: codul şefului; : codul şefului; hiredatehiredate: data : data angajării; angajării; salsal: salariul; : salariul; comcom: comisionul; : comisionul; deptnodeptno: codul : codul departamentului în care lucrează. departamentului în care lucrează. Tabelul Tabelul deptdept (deptno#, dname, loc) conţine informaţii despre (deptno#, dname, loc) conţine informaţii despre departamentele în care lucrează salariaţii. Atributele sale reprezintă: departamentele în care lucrează salariaţii. Atributele sale reprezintă: deptnodeptno: codul departamentului; : codul departamentului; dnamedname: numele departamentului; : numele departamentului; loc: loc: localitatealocalitatea unde funcţionează departamentul. unde funcţionează departamentul. Tabelul Tabelul salgradesalgrade(grade#, losal, hisal) conţine informaţii despre (grade#, losal, hisal) conţine informaţii despre grilele de salarizare. Atributele tabelului au următoarea semnificaţie: grilele de salarizare. Atributele tabelului au următoarea semnificaţie: gradegrade: codul grilei de salarizare; : codul grilei de salarizare; losallosal: limita inferioară a grilei de : limita inferioară a grilei de salarizare; salarizare; hisalhisal: limita superioară a grilei de salarizare.: limita superioară a grilei de salarizare.

Page 22: Diagrame entitate relatie

Ordonarea informaţiilor cu privire la Ordonarea informaţiilor cu privire la

descoperirile de monede antice din Romaniadescoperirile de monede antice din Romania

Page 23: Diagrame entitate relatie

STANŢA (nr_stanţă, împărat emitent, STANŢA (nr_stanţă, împărat emitent, valoare nominală, an emitere, valoare nominală, an emitere, monetăria, legenda de pe avers, monetăria, legenda de pe avers, legenda de pe revers) == > atribute legenda de pe revers) == > atribute ale entităţii ale entităţii STANTASTANTA

Completaţi cardinalitatea!Completaţi cardinalitatea!

Page 24: Diagrame entitate relatie

Evidenţa şcolilor de şoferi din Evidenţa şcolilor de şoferi din RomaniaRomania

Completaţi relaţiile (lucreaza_la, conduce, sustine, asista, instruieste) dintre entităţi şi specificaţi cardinalitatea!

Page 25: Diagrame entitate relatie

Campionatele de fotbal ale diferitelor ţăriCampionatele de fotbal ale diferitelor ţări

Page 26: Diagrame entitate relatie

Modelul relaModelul relaţionalţional

Modelul relaţional a fost conceput şi dezvoltat de E.F. Modelul relaţional a fost conceput şi dezvoltat de E.F. CoddCodd. El este un model formal de organizare . El este un model formal de organizare conceptuală a datelor, destinat reprezentării legăturilor conceptuală a datelor, destinat reprezentării legăturilor dintre date, bazat pe teoria matematică a relaţiilor. dintre date, bazat pe teoria matematică a relaţiilor. Modelul relaţional este alcătuit numai din relaţii şi prin Modelul relaţional este alcătuit numai din relaţii şi prin urmare, orice interogare asupra bazei de date este tot o urmare, orice interogare asupra bazei de date este tot o relaţie. relaţie. Cercetarea în domeniu Cercetarea în domeniu 3 mari proiecte 3 mari proiecte ((System RSystem R, , INGRESINGRES, , PRTVPRTV))Calităţi:Calităţi:

este simplu;este simplu; riguros din punct de vedere matematic;riguros din punct de vedere matematic; nu este orientat spre sistemul de calcul.nu este orientat spre sistemul de calcul.

Page 27: Diagrame entitate relatie

Definirea noţiunilor de domeniu, relaţie, schemă Definirea noţiunilor de domeniu, relaţie, schemă relaţională, valoare relaţională, valoare nullnull şi tabel vizualizare ( şi tabel vizualizare (viewview). ). Conceptele utilizate pentru a descrie formal, uzual sau Conceptele utilizate pentru a descrie formal, uzual sau fizic elementele de bază ale organizării datelor sunt date fizic elementele de bază ale organizării datelor sunt date

în următorul tabel:în următorul tabel:

Structura datelorStructura datelor

Page 28: Diagrame entitate relatie

Domeniu – mulţime de valori care poate fi Domeniu – mulţime de valori care poate fi definită fie enumerând elementele definită fie enumerând elementele componente, fie definind o proprietate componente, fie definind o proprietate distinctivă a domeniului valorilor. distinctivă a domeniului valorilor. Fie Fie DD1, 1, DD2, ..., 2, ..., DnDn domenii finite, nu neapărat domenii finite, nu neapărat disjuncte. Produsul cartezian disjuncte. Produsul cartezian DD1 1 DD2 2 ... ... DnDn al domeniilor al domeniilor DD1, 1, DD2, ..., 2, ..., DnDn este definit de este definit de mulţimea tuplurilor (mulţimea tuplurilor (VV1, 1, VV2, ..., 2, ..., VnVn), unde ), unde VV1 1 DD1, 1, VV2 2 DD2, ..., 2, ..., Vn Vn DnDn. Numărul . Numărul nn defineşte defineşte aritatea tuplului.aritatea tuplului.

Page 29: Diagrame entitate relatie

O O relaţierelaţie RR pe mulţimile pe mulţimile DD1, 1, DD2, ..., 2, ..., DnDn este o este o submulţime a produsului cartezian submulţime a produsului cartezian DD1 1 DD2 2 ... ... DnDn, deci este o mulţime de tupluri., deci este o mulţime de tupluri. Caracteristicile unei relatii:Caracteristicile unei relatii: are o denumire unica;are o denumire unica; fiecare celula contine o valoare atomica;fiecare celula contine o valoare atomica; fiecare atribut are nume unic;fiecare atribut are nume unic; toate valorile unui atribut apartin aceluiasi domeniu;toate valorile unui atribut apartin aceluiasi domeniu; ordinea atributelor nu are importanta;ordinea atributelor nu are importanta; nu exista dubluri ale tuplurilor;nu exista dubluri ale tuplurilor; teoretic, ordinea tuplurilor nu are importanta.teoretic, ordinea tuplurilor nu are importanta.

Page 30: Diagrame entitate relatie

Definirea unei relaţii se referă la mulţimi care variază în Definirea unei relaţii se referă la mulţimi care variază în timp. Pentru a caracteriza o relaţie este necesară timp. Pentru a caracteriza o relaţie este necesară existenţa un element invariant în timp: structura relaţiei existenţa un element invariant în timp: structura relaţiei (schema relaţională). Mulţimea numelor atributelor (schema relaţională). Mulţimea numelor atributelor corespunzătoare unei relaţii corespunzătoare unei relaţii RR defineşte defineşte schema schema relaţionalărelaţională a relaţiei respective. Vom nota schema a relaţiei respective. Vom nota schema relaţională prin relaţională prin RR((AA1, 1, AA2, ..., 2, ..., AnAn). Exemplu!). Exemplu!Putem reprezenta o relaţie printr-un tabel bidimensional Putem reprezenta o relaţie printr-un tabel bidimensional în care fiecare linie corespunde unui tuplu şi fiecare în care fiecare linie corespunde unui tuplu şi fiecare coloană corespunde unui domeniu din produsul coloană corespunde unui domeniu din produsul cartezian. O coloană corespunde de fapt unui atribut. cartezian. O coloană corespunde de fapt unui atribut. Numărul atributelor defineşte Numărul atributelor defineşte gradulgradul (aritatea) relaţiei, (aritatea) relaţiei, iar numărul de tupluri din relaţie defineşte iar numărul de tupluri din relaţie defineşte cardinalitateacardinalitatea relaţiei.relaţiei.

Page 31: Diagrame entitate relatie

Exemplu (crearea unui tabel în Exemplu (crearea unui tabel în SQLSQL):):CREATE TABLE salariat ( CREATE TABLE salariat (

cod_salariatcod_salariat SMALLINT, SMALLINT,numenume VARCHAR(25), VARCHAR(25),prenumeprenume VARCHAR(20), VARCHAR(20),salariusalariu INTEGER, INTEGER,sotsot SMALLINT, SMALLINT,job_codjob_cod VARCHAR(6), VARCHAR(6),cod_departament cod_departament SMALLINT ); SMALLINT );

Page 32: Diagrame entitate relatie

Când se inserează tupluri într-o relaţie, de multe Când se inserează tupluri într-o relaţie, de multe ori un atribut este necunoscut sau neaplicabil. ori un atribut este necunoscut sau neaplicabil. Pentru a reprezenta acest atribut a fost Pentru a reprezenta acest atribut a fost introdusă o valoare convenţională în relaţie, şi introdusă o valoare convenţională în relaţie, şi anume valoarea anume valoarea nullnull. . Este necesară o aritmetică şi o logică nouă care Este necesară o aritmetică şi o logică nouă care să cuprindă acest element. Rezultatul să cuprindă acest element. Rezultatul operatorilor aritmetici sau logici este operatorilor aritmetici sau logici este nullnull când când unul din argumente este unul din argumente este nullnull. Comentat excep. Comentat excepţii! ţii! Prin urmare, „Prin urmare, „nullnull = = nullnull“ are valoarea “ are valoarea nullnull, iar , iar null null este este nullnull..

Page 33: Diagrame entitate relatie

Tabele de adevăr pentru operatorii AND şi OR.

Page 34: Diagrame entitate relatie

Multe din echivalentele adevarate in logica cu 2 valori nu mai sunt Multe din echivalentele adevarate in logica cu 2 valori nu mai sunt adevarate in aceasta logica (3VL). adevarate in aceasta logica (3VL).

De exemplu comparatia De exemplu comparatia x = xx = x nu are in mod necesar valoarea nu are in mod necesar valoarea truetrue; ; expresia expresia p OR NOTp OR NOT ( (pp) nu are in mod necesar valoarea ) nu are in mod necesar valoarea truetrue; expresia ; expresia t t JOIN tJOIN t nu este evaluata neaparat ca fiind egala cu nu este evaluata neaparat ca fiind egala cu tt, deoarece , deoarece joinjoin-ul, -ul, spre deosebire de reuniune, se bazeaza pe verificarea egalitatii in „stil spre deosebire de reuniune, se bazeaza pe verificarea egalitatii in „stil de gasire“, nu in „stil de duplicat“.de gasire“, nu in „stil de duplicat“.

Se observa ca Se observa ca nullnull-urile ruineaza modelul relational. Logica 3VL nu -urile ruineaza modelul relational. Logica 3VL nu corespunde realitatii, adica rezultatele care sunt corecte conform corespunde realitatii, adica rezultatele care sunt corecte conform acestei logici sunt uneori eronate in lumea reala. acestei logici sunt uneori eronate in lumea reala. Modelul relational a functionat perfect fara Modelul relational a functionat perfect fara nullnull in perioada 1969- in perioada 1969-1979. 1979. Este preferabil (in multe cazuri) utilizarea unor valori speciale pentru Este preferabil (in multe cazuri) utilizarea unor valori speciale pentru a reprezenta informatiile lipsa. a reprezenta informatiile lipsa. De exemplu, se poate utiliza De exemplu, se poate utiliza valoarea speciala „?“ pentru a indica numarul de ore lucrate de un valoarea speciala „?“ pentru a indica numarul de ore lucrate de un salariat. Atentie! Valoarea speciala sa fie de tipul aplicabil. In salariat. Atentie! Valoarea speciala sa fie de tipul aplicabil. In SQLSQL, , tratarea informatiilor lipsa se bazeaza substantial pe logica 3VL.tratarea informatiilor lipsa se bazeaza substantial pe logica 3VL.

Page 35: Diagrame entitate relatie

Tabelul Tabelul vizualizarevizualizare ( (viewview, filtru, relaţie virtuală, vedere) , filtru, relaţie virtuală, vedere) constituie un filtru relativ la unul sau mai multe tabele, constituie un filtru relativ la unul sau mai multe tabele, care conţine numai informaţia necesară unei anumite care conţine numai informaţia necesară unei anumite abordări sau aplicaţii. abordări sau aplicaţii. Consultarea vizualizarilor Consultarea vizualizarilor functioneaza perfect. functioneaza perfect. Vizualizarea este virtuală deoarece datele pe care le Vizualizarea este virtuală deoarece datele pe care le conţine nu sunt în realitate memorate într-o bază de conţine nu sunt în realitate memorate într-o bază de date. Este memorată numai definiţia vizualizării. date. Este memorată numai definiţia vizualizării. Vizualizarea nu este definită explicit, ca relaţiile de bază, Vizualizarea nu este definită explicit, ca relaţiile de bază, prin mulţimea tuplurilor componente, ci implicit, pe baza prin mulţimea tuplurilor componente, ci implicit, pe baza altor relaţii prin intermediul unor expresii relaţionale. altor relaţii prin intermediul unor expresii relaţionale. Stabilirea efectivă a tuplurilor care compun vizualizarea Stabilirea efectivă a tuplurilor care compun vizualizarea se realizează prin evaluarea expresiei atunci când se realizează prin evaluarea expresiei atunci când utilizatorul se referă la acest tabel.utilizatorul se referă la acest tabel.

Page 36: Diagrame entitate relatie

Exemplu (crearea unei vizualizări în Exemplu (crearea unei vizualizări în SQLSQL):):CREATE VIEW programator(nume,departament)CREATE VIEW programator(nume,departament)

AS SELECT nume,cod_departamentAS SELECT nume,cod_departament

FROM salariatFROM salariat

WHERE job_cod=’programator’;WHERE job_cod=’programator’;

Page 37: Diagrame entitate relatie

Reguli de integritate Reguli de integritate aser aserţţiuni pe care datele iuni pe care datele conţinute în baza de date trebuie să le satisfacă. conţinute în baza de date trebuie să le satisfacă. Trebuie făcută distincţia între:Trebuie făcută distincţia între:

regulile structurale inerente modelării datelor;regulile structurale inerente modelării datelor; regulile de funcţionare specifice unei aplicaţii particulare.regulile de funcţionare specifice unei aplicaţii particulare.

Există trei tipuri de constrângeri structurale (de Există trei tipuri de constrângeri structurale (de cheie, de referinţă, de entitate) ce constituie cheie, de referinţă, de entitate) ce constituie mulţimea minimală de reguli de integritate pe care mulţimea minimală de reguli de integritate pe care trebuie să le respecte un SGBD relaţional. trebuie să le respecte un SGBD relaţional. Restricţiile de integritate minimale sunt definite în Restricţiile de integritate minimale sunt definite în raport cu noţiunea de cheie a unei relaţii.raport cu noţiunea de cheie a unei relaţii.O mulţime minimală de atribute ale căror valori O mulţime minimală de atribute ale căror valori identifică unic un tuplu într-o relaţie reprezintă o identifică unic un tuplu într-o relaţie reprezintă o cheie pentru relaţia respectivă.cheie pentru relaţia respectivă.

Page 38: Diagrame entitate relatie

Fiecare relaţie are cel puţin o cheie. Fiecare relaţie are cel puţin o cheie. Una dintre cheile Una dintre cheile candidat va fi aleasă pentru a identifica efectiv tupluri şi ea va candidat va fi aleasă pentru a identifica efectiv tupluri şi ea va primi numele de primi numele de cheie primarăcheie primară. Cheia primară nu poate fi . Cheia primară nu poate fi reactualizată. Atributele care reprezintă cheia primară sunt fie reactualizată. Atributele care reprezintă cheia primară sunt fie subliniate, fie urmate de semnul #.subliniate, fie urmate de semnul #.O cheie identifică linii şi este diferită de un index care O cheie identifică linii şi este diferită de un index care localizează liniile. O localizează liniile. O cheie secundarăcheie secundară este folosită ca index este folosită ca index pentru a accesa tupluri. Un grup de atribute din cadrul unei pentru a accesa tupluri. Un grup de atribute din cadrul unei relaţii care conţine o cheie a relaţiei poartă numele de relaţii care conţine o cheie a relaţiei poartă numele de supercheiesupercheie..

Fie schemele relaţionale Fie schemele relaţionale RR1(1(PP1, 1, SS1) şi 1) şi RR2(2(SS1, 1, SS2), unde 2), unde PP1 1 este cheie primară pentru este cheie primară pentru RR1, 1, SS1 este cheie secundară 1 este cheie secundară pentru pentru RR1, iar 1, iar SS1 este cheie primară pentru 1 este cheie primară pentru RR2. În acest caz, 2. În acest caz, vom spune că vom spune că SS1 este 1 este cheie externăcheie externă (cheie străină) pentru (cheie străină) pentru RR1.1.

Page 39: Diagrame entitate relatie

Modelul relaţional respectă trei reguli de Modelul relaţional respectă trei reguli de integritate structurală.integritate structurală.

Regula 1Regula 1 – unicitatea cheii. Cheia primară  – unicitatea cheii. Cheia primară trebuie să fie unică şi minimală.trebuie să fie unică şi minimală.

Regula 2Regula 2 – integritatea entităţii. Atributele cheii  – integritatea entităţii. Atributele cheii primare trebuie să fie diferite de valoarea primare trebuie să fie diferite de valoarea nullnull..

Regula 3 – Regula 3 – integritatea referirii. O cheie externă integritatea referirii. O cheie externă trebuie să fie ori trebuie să fie ori nullnull în întregime, ori să în întregime, ori să corespundă unei valori a cheii primare asociate.corespundă unei valori a cheii primare asociate.