Documente Academic
Documente Profesional
Documente Cultură
3.1.1. Entitatea
Entitatea este un obiect de interes din sistem pentru care trebuie să existe date
înregistrate. De ex., în sistemul descris mai sus obiectele de interes (entităţi) sunt:
FACULTATE, PROFESOR, STUDENT şi CURS care sunt legate între ele conform figurii de
mai jos
lucrează_în
FACULTATE PROFESOR
studiază_în predă
urmează
STUDENT CURS
Cardinalitatea unei relaţii indică numarul de instanţe din fiecare entitate care poate
participa la relaţie. Există 3 tipuri de cardinalitate:
M(0) studiază_la 1
STUDENT FACULTATE
many_to_one
studiază_la
STUDENT FACULTATE
one_to_one
conduce
PROFESOR FACULTATE
many_to_many
predă
PROFESOR CURS
Fig. 3.6. Altă variantă de reprezentare a relaţiilor, indicând numai cardinalitatea maximă
3.1.3. Atributul
Atributul este o caracteristică a unei entităţi sau a unei relaţii. Fiecare entitate are un anumit
număr de atribute despre care sunt înregistrate date. Ex.: nume, prenume, dată. Fiecare atribut
poate lua valori care furnizează informaţii despre entitatea respectivă. Ex.: Ionescu, Aurel,
13.10.84. Şi relaţiile pot avea atribute. Ex.: “lucrează_în” Æ data_angajării.
Observaţii:
- Numele unui atribut este unic în cadrul unei entităţi sau al unei relaţii.
- Atributele sunt întotdeauna substantive, dar nu orice substantiv este atribut.
- Pentru fiecare atribut este necesară o descriere, împreună cu domeniul de valori
(întreg, şir de caractere, dată calendaristică etc.).
- Trebuie evitate atributele indirecte. Ex.: numele_facultăţii este un atribut indirect
pentru tabelul STUDENT şi un atribut direct pentru tabelul FACULTATE.
Cheia unei entităţi este un atribut sau set de atribute care identifică în mod unic o instanţă a
acelei entităţi (face distincţie între oricare 2 rânduri diferite ale tabelului asociat entităţii).
Cheile sunt de 2 feluri: naturale (au semnificaţie reală pentru entitate, ex.: (nume, prenume,
data_naşterii)) şi artificiale (nu au semnificaţie reală pentru entitate, ex.: cod_student,
cod_facultate).
Avantajele cheilor artificiale primare:
- stabilitatea – Cheile primare artificiale se schimbă rar. Schimbarea unei chei primare
presupune schimbarea cheilor străine care fac referire la ea.
- simplitatea – Au un număr de atribute şi de caractere mai mic.
- Nu prezintă ambiguităţi în reprezentare (ex.: liniuţe, spaţii etc.).
- Elimină apariţia valorilor Null.
a) Subentitate / Superentitate
PROFESOR
grad didactic
PERSONAL_ADMINISTRATIV
- O entitae dependentă (detaliu) este o entitate care nu poate exista de sine stătătoare, ci
numai ataşată unei alte entităţi, numită entitate master, din cadrul legăturii respective.
- Ex.:
MODUL CURS
cod_curs M(0) face_parte_din 1 cod _curs
nr_modul nume_curs
descriere descriere
- Între entităţile master şi detaliu va exista totdeauna o relaţie 1:M având cardinalitatea
minimă 1:0.
- Cheia primară a unei entităţi detaliu va fi formată din cheia primară a entităţii master
la care se adaugă atribute proprii.
c) Relaţii recursive
PROFESOR este_şef_direct
1(0)
Fig. 3.9. Exemplu de relaţie recursivă
d) Relaţii binare (de tip 2) / Relaţii între mai mult de 2 entităţi (de tip 3)
Obs.: O relaţie de tip 3 nu poate fi spartă în relaţii binare între entităţile dependente
deoarece se obţin informaţii eronate, relaţia iniţială nemaiputând fi reconstituită din
relaţiile componente.
Ex.: STUDENT
M(0)
coordoneaza
PROFESOR
M(0)
efectueaza
M(0)
PROIECT
Fig. 3.10. Exemplu de relaţie între mai mult de 2 entităţi (de tip 3)
Ex.:
PROFESOR
FACULTATE 1 lucrează_în M(0) cod_profesor
cod_facultate nume
nume_facultate prenume
adresa 1(0) conduce 1(0) data_naşterii
grad_didactic
1 M(0)
studiază_în predă
M(0) M(0)
STUDENT
cod_student M(0) urmează M(0) CURS
nume cod_curs
prenume nume_curs
data_naşterii descriere
a) Relaţie – entitate
Uneori este greu de identificat dacă o componentă a sistemului este relaţie sau entitate. Dacă o
entitate are o cheie provenită din combinaţia cheilor primare a 2 sau mai multe entităţi, atunci
poate fi definită o relaţie.
Ex.:
PROFESOR PREDARE CURS
cod_profesor cod_profesor cod_curs
cod_curs
b) Relaţie – atribut
- O relaţie poate fi reprezentată ca un atribut al unei entităţi, iar atributele unei entităţi
pot fi înlocuite cu relaţii.
- Atunci când un atribut al unei entităţi reprezintă cheia primară a altei entităţi (e cheie
străină), el reprezintă, de fapt, o relaţie.
Ex.:
STUDENT FACULTATE
cod_student cod_facultate
cod_facultate
exprimă o relaţie
PERSONAL
cod_personal
nume, prenume, data_nasterii
PERSONAL_ADMINISTRATIV
studiaza_la coordoneaza
M(0) preda
STUDENT PROIECT
cod_student M(0) M(0) cod_proiect
nume efectueaza nume_proiect
prenume
data_nasterii
M(0)
M(0)
CURS
urmeaza M(0) cod_curs
nume_curs
descriere
face_parte_din
M(0)
MODUL
Fig. 3.17. cod_curs
Diagrama entitate–legătură a sistemului nr_modul
(PROFESOR, STUDENT, FACULTATE, CURS) descriere
3.2. Realizarea schemei (proiectului, diagramei) logice a unei baze de date
Pentru realizarea schemei logice a unei baze de date se porneşte de la scheme conceptuală
(modelul entitate – legătură) urmărindu-se conversia entităţilor şi a legăturilor în tabele
relaţionale.
Regulile de conversie ale entităţilor, legăturilor şi atributelor sunt următoarele:
b) Entităţile dependente devin tabele dependente (tabele detaliu) adică tabele a căror
cheie primară conţine cheia străină ce face referinta la cheia primara a entitatii de care
depinde entitatea in cauza.
Ex.: Entitatea “MODUL” devine tabelul “MODUL” a carui cheie primara este formata din
cod_curs (care este o cheie straina pentru entitatea “CURS”) si nr_modul.
c) Subentitatile devin subtabele, adica tabele a caror cheie primara este cheia straina
pentru tabelul superentitate.
Ex.: Subentitatea “PROFESOR” va avea cheia primara cod_personal, aceeasi cu cea a
superentitatii “PERSONAL”.
- Avantajele supertabelelor: simplificarea programelor de manipulare a datelor.
- Dezavantajele supertabelelor: probleme de integritate, apar valori de Null.
- Avantajele subtabelelor: mai stabile, mai flexibile, ocupa spatiu mai mic, contin mai
putine valori de Null.
- Dezavantajele subtabelelor: se ingreuneaza manipularea datelor.
a2) SOT 1(0) este_casatorit 1(0) SOTIE - cheia straina va fi plasata in tabelul cu
linii mai putine
b) Relatiile M:1 devin chei straine plasate in tabelul care se afla in partea de “multi” a
relatiei.
Ex.:
PROFESOR M(0) lucreaza_in 1 FACULTATE
Cazuri:
b1) M(0) 1
Cheia straina nu poate avea valoarea Null, iar in cazul entitatilor dependente ea va face parte
chiar din cheia primara a tabelului detaliu.
Cheia straina poate avea valoarea Null si nu poate face parte din cheia primara.
M(0)
coordoneaza
PROFESOR
M(0)
efectueaza
M(0)
PROIECT
M(0)
EFECTUARE_
COORDONARE
STUDENT 1 M(0) cod_student M(0) 1 PROIECT
cod_student cod_proiect cod_proiect
cod_personal
Regula generala: Atributele se convertesc in coloane ale tabelelor provenite din entitati
sau chiar in tabele.
Cazuri:
a) Atributele simple ale unei entitati devin coloane in tabelul provenit din acea entitate.
c) Atributele repetitive (multivaloare) ale unei entitati devin tabele dependente ce contin
fiecare o cheie straina (care face referinta la cheia primara a entitatii) si atributul
multivaloare. Cheia primara a unui astfel de nou tabel este formata din cheia straina
plus alte coloane suplimentare.
Ex.:
STUDENT 1 M(0) TELEFON
cod_student cod_student Fig. 3.22.
nr_telefon
d) - Atributele simple ale unei relatii 1:1 sau M:1 devin coloane ale tabelului care contine
cheia straina.
Ex.: atributul data_inscrierii al relatiei studiaza_la devine coloana in tabelul STUDENT.
- Fiecare componenta a unui atribut compus al unei relatii 1:1 sau M:1 se va converti
in mai multe coloane in tabelul care contine cheia straina.
e) - Atributele simple ale unei relatii M:M vor deveni coloane ale tabelului asociativ.
Ex.: STUDENT M(0) urmeaza M(0) CURS
Fig. 3.24.
(nota_examen)
f) - Atributele repetitive (multivaloare) ale unei relatii 1:1 sau 1:M devin tabele
dependente de tabelul care contine cheia straina.
- Atributele repetitive ale unei relatii M:M devin tabele dependente de tabelul
asociativ corespunzator relatiei. Cheia primara a acestor tabele dependente va fi
formata din cheia straina respectiva plus una sau mai multe coloane suplimentare.
Ex.:
STUDENT M(0) urmeaza M(0) CURS
Fig. 3.25.
(nota_test)
Atributul “test” este un atribut repetitiv. Va rezulta urmatoarea structura:
M(0)
TEST
cod_student
cod_curs
nr_test
In Fig. 3.27. este prezentata diagrama logica a bazei de date pentru sistemul UNIVERSI-
TATE (PROFESOR, STUDENT, FACULTATE, CURS) care a rezultat in urma transfor-
marilor prezentate mai inainte si efectuate asupra diagramei entitate-legatura (Fig. 3.17).
Tabele asociate acestei diagrame sunt urmatoarele:
PERSONAL(cod_personal, nume, prenume, data_nastere, sex, stare_civila,data_angajare)
PERSONAL_ADMINISTRATIV (cod_personal, profesie, functie)
PROFESOR (cod_personal, grad_didactic, titlu, sef, ore_predate, vechime, cod_facultate)
CURS (cod_curs, nume_curs, descriere, nr_ore)
PREDARE (cod_personal, cod_curs, data_inceput)
MODUL (cod_curs, nr_modul, descriere)
FACULTATE(cod_facultate, nume_facultate, localitate, strada,nr,cod_postal, cod_decan)
STUDENT (cod_student, nume, prenume, data_nasterii, tara, localitatea, strada, nr,
cod_postal, studii_anterioare, data_inscriere, cod_facultate)
TELEFON (cod_student, nr_telefon, tip_telefon)
PROIECT (cod_proiect, nume_proiect, domeniu)
EFECTUARE_COORDONARE (cod_student, cod_proiect, cod_personal)
URMARE (cod_student, cod_curs, nota_examen, nota_restanta, observatii)
TEST (cod_student, cod_curs, nr_test, nota_test, data_test, observatii)
PERSONAL
cod_personal
nume, prenume, data_nasterii
PERSONAL_ADMINISTRATIV
cod_personal