relatii intre entitati

Download Report

Transcript relatii intre entitati

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.
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 entitati
Exemplu: 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
RELATII INTRE ENTITATI
Conventii 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 entitate
Numele relatiei este un verb sau o expresie verbala si se scrie deasupra
liniei care desemneaza relatia din stanga si sub linie pentru entitatea din
stanga
Capatul 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”)
RELATII INTRE ENTITATI
Orice 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)
RELATII INTRE ENTITATI
Intre 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
RELATII INTRE ENTITATI
Citirea unei diagrame ERD intre entitatea A si entitatea B se va citi astfel:
Fiecare
Numele entitatii A
Optionalitatea(trebuie/poate)
Numele relatiei (scris deasupra/sub liniei)
Cardinalitatea (unul si numai unul/unul sau mai multi)
Numele entitatii B
Entitatea A
Nume relatie A
Nume relatie B
Entitatea 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
RELATII INTRE ENTITATI
Exemplu: Vom considera entitatile JUCATOR si GOL prin intermediul
carora vrem sa memoram golurile marcate in timpul unui meci de fotbal
JUCATOR
#id
*nume
*post
sa marcheze
Este marcat
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”
RELATII INTRE ENTITATI
Daca 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.
JUCATOR
#id
*nume
*post
sa marcheze
Este marcat
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).
RELATII INTRE ENTITATI
O 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.
RELATII INTRE ENTITATI
Pas 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
ABONAT
#id_abonat
*nume
*prenume
*adresa
sa se aboneze
distribita
REVISTA
#id_revista
*nume
*pret
*numar aparitii
RELATII INTRE ENTITATI
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.
ABONAMENT
*data
*durata
ABONAT
#id_abonat
*nume
*prenume
*adresa
pentru
sa se aboneze
pentru
distribita
REVISTA
#id_revista
*nume
*pret
*numar aparitii
RELATII INTRE ENTITATI
Relatiile recursive: o relatie de la o entitate care ea insasi.
Exemplu: Fie urmatoarea diagrama ERD:
CONDUCE
CONDUS DE
DIRECTOR
CONDUCE
CONDUS DE
SEF COMPARTIMENT
MUNCITOR
Se va transforma:
ANGAJAT
CONDUS DE
CONDUCE
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.
RELATII INTRE ENTITATI- TEST
1. 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. culoare
b.marime
c. model
3. Ce semnificatie are simbolul
d. clasa
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.
RELATII INTRE ENTITATI- TEST
4. Care dintre urmatoarele fraze oate fi citita din schema de mai
jos?
STUDENT
a.
b.
c.
d.
Un
Un
Un
Un
urmeaza
urmat de
CURS
STUDENT poate sa urmeze unul sau mai multe CURSURI.
CURS poate fi urmat de unul sau mai multi STUDENTI
STUDENT trebuie sa urmeze un singur CURS
CURS trebuie sa fie urmat de un STUDENT
5.Completati in urmatorul tabel cu exemple de entitati si
instante pentru atributele date:
Entitate
Atribut
Culoare
Numar calorii
Volum
Instanta
RELATII INTRE ENTITATI- TEST
6.Cititi urmatoarea diagrama:
BANCA
*denumire
*adresa
*capital social
CONT
gestioneaza
deschis la
#nr
*balanta
PERSOANA
apartine
detine
#cnp
*nume
*adresa
*telefon
○ email
Precizati:
•
•
•
•
Entitatile
Atributele optionale
Atributele obligatorii
Identificatorii unici
Dati exemplu de instante pentru atributul *denumire din entitatea BANCA