DATABASE DESIGN

15
DATABASE DESIGN RELATII INTRE ENTITATI

description

DATABASE DESIGN. RELATII INTRE ENTITATI. RELATII INTRE ENTITATI. Relatiile sunt expresii verbale care indica asocierile, legaturile logice care se formeaza intre entitati. De regula entitatile sunt substantive iar relatiile sunt verbe si se deduc din documentatia beneficiarului. - PowerPoint PPT Presentation

Transcript of DATABASE DESIGN

Page 1: DATABASE DESIGN

DATABASE DESIGN

RELATII INTRE ENTITATI

Page 2: DATABASE DESIGN

RELATII INTRE ENTITATIRelatiile sunt expresii verbale care indica asocierile, legaturile logice care se formeaza intre entitati. De regula entitatile sunt substantive iar relatiile sunt verbe si se deduc din documentatia beneficiarului.Relatiile pot fi:- obligatorii – orice inregistrare a entitatii trebuie sa fie legata de una

sau mai multe inregistrari ale celeilalte entitati- optionale - orice inregistrare a entitatii ar putea sa fie legata de una

sau mai multe inregistrari ale celeilalte entitatiExemplu: Daca consideram entitatile LOC si CALATOR intre ele exista relatiile:“Un loc poate fi ocupat de un calator” – este o relatie optionala“Un calator trebuie sa ocupe un loc” - este o relatie obligatorie

Page 3: DATABASE DESIGN

RELATII INTRE ENTITATIConventii pentru reprezentarea unei relatii.Relatia dintre doua entitati se reprezinta printr-un segment care le uneste. Acesta poate fi desenat:- cu linie continua – daca relatia este obligatorie pentru entitatea

respectiva- cu linie punctata -daca relatia este optionala pentru acea entitateNumele relatiei este un verb sau o expresie verbala si se scrie deasupra liniei care desemneaza relatia din stanga si sub linie pentru entitatea din stangaCapatul segmentului care reprezinta relatia poate fi:- simplu-o unica inregistrare a entitatii respective este conectata cu alta

entitate- cu trei picioruse -mai multe inregistrari ale entitatii respective sunt in

relatie cu cealalta entitate( numite si “picioare de cioara”)

Page 4: DATABASE DESIGN

RELATII INTRE ENTITATIOrice relatie este caracterizata de:

• Numele relatiei• Optionalitatea relatiei (obligatorie/optionala)• Cardinalitatea relatiei - numarul de instante ale entitatii din

partea dreapta care pot intra in relatie cu o instanta din partea stanga (unul si numai unul sau unul sau mai multi)

Page 5: DATABASE DESIGN

RELATII INTRE ENTITATIIntre doua entitati pot exista urmatoarele tipuri de relatii:

Relatie 1:1 obligatorie la ambele capete

Relatie 1:1 optionala la ambele capete

Relatie 1:1 optionala la stanga, obligatorie la dreapta

Relatie 1:1 obligatorie la stanga, optionala la dreapta

Relatie M:1 optionala la stanga, obligatorie la dreapta

Relatie M:1 obligatorie la stanga, optionala la dreapta

Relatie M:M obligatorie la ambele capete

Relatie M:M optionala la ambele capete

Page 6: DATABASE DESIGN

RELATII INTRE ENTITATICitirea unei diagrame ERD intre entitatea A si entitatea B se va citi astfel:

FiecareNumele entitatii AOptionalitatea(trebuie/poate)Numele relatiei (scris deasupra/sub liniei)Cardinalitatea (unul si numai unul/unul sau mai multi)Numele entitatii B

Tinand cont ca o relatie are doua capete vom citi mai intai diagrama de la stanga la dreapta si apoi de la dreapta la stanga

Entitatea A Entitatea BNume relatie ANume relatie B

Page 7: DATABASE DESIGN

RELATII INTRE ENTITATIExemplu: Vom considera entitatile JUCATOR si GOL prin intermediul carora vrem sa memoram golurile marcate in timpul unui meci de fotbal

sa marchezeEste marcat

JUCATOR#id*nume*post

GOL#id_meci*minut○observatii

Citirea diagramei se face astfel:

“Fiecare jucator poate sa marcheze unul sau mai multe goluri” “Fiecare gol trebuie sa fie marcat de un singur jucator”

Page 8: DATABASE DESIGN

RELATII INTRE ENTITATIDaca o inregistrare dintr-o entitate care se afla intr-o relatie cu o inregistrare din alta entitate poate fi relationata cu o alta intregistrare din cea de-a doua atunci spunem ca relatia este transferabila, altfel spunem ca este nontransferabila. Acest lucru se reprezinta in diagrama printr-un romb.

sa marcheze

Este marcat

JUCATOR#id*nume*post

GOL#id_meci*minut○observatii

Entitatile JUCATOR si GOL sunt in relatie 1:M si ea nu e transferabila pentru entitatea GOL(un gol este marcat in mod unic de un jucator si el nu poate fi atribuit apoi altui jucator).

Page 9: DATABASE DESIGN

RELATII INTRE ENTITATIO relatie in care mai multor inregistrari ale unei entitati ii corespund una su mai multe inregistrari ale altei entitati este de tip mai-multi-la-mai-multi M:M.

Rezolvarea relatiei de tip M:M presupune introducerea intre cele doua entitati a unei noi entitati numita entitate de intersectie. Entitatea de intersectie va fi legata de entitatile initiale prin relatii de timp 1:M.

Pas 1:• se identifica entitatea de intersectie • se trareaza relatiile care pleaca din ea spre entitatile initiale. Acestea vor fi

intotdeauna obligatorii spre entitatea de intersectie. In partea dispre entitatile originale, relatiile pastreaza forma initiala. Ambele relatii vor fi de tipul 1:M, iar “picioarele de cioara” vor intotdeauna spre entitatea de intersectie. Se stabileste apoi numele noilor relatii.

Page 10: DATABASE DESIGN

RELATII INTRE ENTITATIPas 2: • preluarea de atribute din entitatile initiale dar si stabilirea de atribute

proprii pentru entitatea de intersectie

Pas 3:• stabilirea identificatorului unic pentru entitatea de intersectie

( identificatorii unici din entitatile initiale si atributele proprii ale entitatii de intersectie). Faptul ca identificatorul unic al unei entitati preia identificatorul unic din alta entitate cu care este legata se reprezinta prin bararea relatiei respective.Exemplu:

Consideram entitatile ABONAT si REVISTA intre care exista o relatie de tip M:M

sa se aboneze

distribita

ABONAT#id_abonat*nume*prenume*adresa

REVISTA#id_revista*nume*pret*numar aparitii

Page 11: DATABASE DESIGN

RELATII INTRE ENTITATI

sa se aboneze distribita

ABONAT#id_abonat*nume*prenume*adresa

REVISTA#id_revista*nume*pret*numar aparitii

ABONAMENT*data*durata

pentru pentru

Pentru rezolvare vom considera entitatea de intersectie ABONAMENT care preia identificatorul unic de la REVISTA(id_revista) si identificatorul unic de la ABONAT(id_abonat). Pentru a marca faptul ca aceasta entitate a fost nou introdusa si ca unicul identificator este realizat din atribute impreuna cu relatia atunci se foloseste relatia barata.

Page 12: DATABASE DESIGN

RELATII INTRE ENTITATIRelatiile recursive: o relatie de la o entitate care ea insasi.

Exemplu: Fie urmatoarea diagrama ERD:

DIRECTOR

SEF COMPARTIMENT

MUNCITOR

COND

US D

ECO

NDUS

DE

COND

UCE

COND

UCE

DIRECTOR

SEF COMPARTIMENT

MUNCITOR

COND

US D

ECO

NDUS

DE

COND

UCE

COND

UCE ANGAJAT

CONDUS DE

CONDUCE

Se va transforma:

Deoarece entitatile DIRECTOR, SEF COMPARTAMENT si MUNCITOR au multe atribute comune ele vor fi inlocuite cu entitatea ANGAJAT, iar un angajat poate fi condus tot de un angajat si astfel se formeaza o relatie recurenta.

Page 13: DATABASE DESIGN

RELATII INTRE ENTITATI- TEST1. Numele unei entitati este de obicei:

a. un verb b. un substantiv c. un adverb d. orice cuvant

2. Care dintre urmatoarele variante NU poate reprezenta atribut al entitatii PANTOF?

a. culoareb.marime c. model d. clasa3. Ce semnificatie are simbolul in cadrul unui ERD? a. relatia este obligatorie b. relatia este optionala c. pot exista una sau mai multe instante ale entitatii langa care apare in

relatie cu o instanta a celeilate entitati d. niciuna dintre variantele urmatoare.

Page 14: DATABASE DESIGN

RELATII INTRE ENTITATI- TEST4. Care dintre urmatoarele fraze oate fi citita din schema de mai jos?

STUDENT CURSurmeazaurmat de

a. Un STUDENT poate sa urmeze unul sau mai multe CURSURI.b. Un CURS poate fi urmat de unul sau mai multi STUDENTIc. Un STUDENT trebuie sa urmeze un singur CURSd. Un CURS trebuie sa fie urmat de un STUDENT

5.Completati in urmatorul tabel cu exemple de entitati si instante pentru atributele date:

Entitate Atribut InstantaCuloareNumar caloriiVolum

Page 15: DATABASE DESIGN

RELATII INTRE ENTITATI- TEST6.Cititi urmatoarea diagrama:

#cnp*nume*adresa*telefon○ email

PERSOANA*denumire*adresa*capital social

BANCA#nr*balanta

CONTgestioneaza

deschis la

apartine

detine

Precizati:• Entitatile• Atributele optionale• Atributele obligatorii• Identificatorii unici

Dati exemplu de instante pentru atributul *denumire din entitatea BANCA