Documente Academic
Documente Profesional
Documente Cultură
1
Documentarea t.e.: după identificarea t.e. li se atribuie denumiri evidente, care se trec
într-un dicţionar de date.
2
- Documentarea cheilor primare şi alternative prin înregistrare în dicţionarul de date.
Nr.
Nr. Chiriaş Chirie Preţ Cumpărător
Tip Tip
M N Proprietate Proprietate M 1
Chiriaş Închiriază de închiriat de vânzare Cumpără Cumpărător
Nr.
Nr. M
Proprietate
M Proprietate
Deţine
Adresa Adresa
1
Proprietar
Nr.
a) Proprietar
Nr.
Nr. Chiriaş Chirie Preţ Cumpărător
M N Proprietate Proprietate M 1
Chiriaş Cumpără Cumpărător
Închiriază de închiriat de vânzare
d
Tipul
M 1
Proprietate Deţine Proprietar
Adresa
Nr.
Proprietate Nr.
Proprietate
b)
3
Entităţile subclasă au şi atribute diferite (Chirie respectiv Preţ) şi relaţii diferite (Inchiriaza
respectiv Cumpara).
5.1.11. Rezumat
Proiectarea conceptuală a bazei de date este procesul de construire a unui model al
informaţiilor utilizate în întreprindere, independent de consideraţiile de ordin fizic.
Proiectarea conceptuală începe prin crearea unui model de date conceptual al întreprinderii,
complet independent de detaliile de implementare. Pentru fiecare vedere a utilizatorilor
asupra întreprinderii este creat un model de date conceptual local.
O vedere a utilizatorului constă în datele cerute de către un anumit utilizator pentru a
lua o decizie sau a efectua o anumită sarcină. De regulă vederea unui utilizator este o zonă
funcţională a întreprinderii. Un utilizator poate fi o persoană sau un grup de persoane care
utilizează în mod direct sistemul.
Vederile utilizatorilor se pot identifica utilizând diagrame de flux de date – care
definesc zonele funcţionale şi eventual funcţiile individuale – sau/şi prin chestionarea
utilizatorilor, examinarea procedurilor, rapoartelor şi observarea întreprinderii.
Fiecare model de date conceptual local cuprinde tipurile de entităţi, tipurile de relaţii,
atributele, domeniile atributelor, cheile candidat şi primare.
Fiecare model de date conceptual local este susţinut de către o documentaţie, cum ar fi
dicţionarul de date, care este realizat pe parcursul dezvoltării modelului.
5.2.1.1 Transpunerea modelului de date conceptual local într-un model de date logic
local
Se rafinează modelul de date conceptual local prin eliminarea caracteristicilor
nedorite.
4
5.2.1.1.1 Eliminarea relaţiilor de tip M:N
O relaţie M:N (de mai mulţi la mai mulţi) se descompune pentru a identifica o relaţie
intermediară. Relaţia M:N se înlocuieşte cu două relaţii 1:M.
Exemplu: Relaţia Ziar Face Reclama Proprietate (fig. 5.2. a) este de cardinalitate M:N,
deoarece un ziar poate face reclamă mai multor proprietăţi, iar unei proprietăţi i se poate face
reclamă in mai multe ziare.
Relaţia se descompune conform figurii 5.2. b, unde Reclama este o entitate slabă a
cărei existenţă depinde de existenţa celorlalte două entităţi tari.
Nr.
Nume ziar Proprietate
M N
Ziar Face reclama Proprietate
a)
Nr.
Nume ziar Proprietate
1 N M 1
Ziar Listeaza Reclama Reclama In Proprietate
b)
Apar două tipuri de relaţii noi: Listeaza şi respectiv ReclamaIn care leagă entitatea
slabă de cele 2 entităţi tari.
5
Nr.
Nr. Personal Proprietate
M M
Personal Inchiriaza Proprietate
Chirias
Nr. Chirias
a)
Nr.
Nr. Personal Proprietate
1 M M 1
Personal Organizeaza Proprietate Asociat cu Proprietate
Ţine
Chirias
Nr. Chirias
b)
Fig. 5.3. Relaţie complexă M:N descompusă în trei relaţii binare 1:M.
6
Supervizează
1 M
Personal
Nr_Personal
a)
Personal_Alocat
1 M
SupravegheatDe Supervizează
1 1
Personal
Nr_Personal
b)
Fig. 5.4. Eliminarea unei relaţii recursive
7
Ore_Lucrate Nr. Filială
Nr. Personal
M N
Personal Lucrează La Filiala
a)
N M N
Personal
1
Atribuit La Alocaţie_ Necesită Filiala
Filiala
b)
Filiala
Nr. Filială
Nr. Telefon
M 1
Telefon Are Adresa
Filiala
8
situaţii cele două entităţi se îmbină, selectând una din cheile primare, dacă acestea nu coincid.
Cealaltă cheie primară devine alternativă.
1 1
Bărbat CăsătoritCu Femeie
1 1
1
M
M
Copil
În exemplul din figura 5.7. relaţia este neredundantă, deşi există 2 căi intre entitatea
Copil şi Barbat. Tatăl ar putea avea copii dintr-o căsătorie precedentă, sau ar putea să nu fie
căsătorit cu mama copilului, iar în figură se modelează numai căsătoria curentă a tatălui.
5.2.1.2 Extragerea relaţiilor (tipurilor de entităţi) din modelul de date logic local
În urma 5.2.1.1 s-a obţinut modelul de date logic local, ca urmare a rafinării modelului
de date conceptual.
La 5.2.1.2. se extrag relaţiile pentru a reprezenta entităţile care le compun.
Componenţa fiecărei relaţii va fi descrisă utilizând un limbaj de definire a bazelor de date
(DBDL). Într-un DBDL apare denumirea relaţiei, apoi între paranteze atributele simple. Se
identifică cheia primară, cheile alternative şi/sau cheile străine ale relaţiei. Se trece relaţia
care conţine cheia străină ca şi cheie primară.
Relaţia pe care o entitate o are cu altă entitate este exprimată prin mecanismul cheie
primară – cheie străină. Adică cheia primară din entitatea părinte devine cheie străină în
entitatea copil.
În continuare se prezintă cum relaţiile care reprezintă entităţile şi relaţiile acestora
sunt extrase din structurile de date posibile, prezentate în modelul de date logic (fig. 5.8.).
9
Strada Oraşul
Prenume
Nume
Nume_ CodPoştal
Adresa
Prenume
Nr_Filială
Adresa
Funcţie Administrează
1
1
Salariu Personal Filiala
M Nr. Fax
Are 1
Sex 1
Nr_Personal Nr. Tel.
ÎnruditCu
Rudenie M
Rudă
Apropiată
NumeR
Nr. Tel.
Adresa
10
c. Tipuri de relaţii binare unu la unu (1:1)
În relaţia de cardinalitate 1:1 Personal Administreaza Filiala entitatea părinte este
Personal, deoarece are participare parţială. Ca urmare se plasează o copie a cheii primare din
Personal în Filiala, unde devine cheie străină sub denumirea Nr_Personal_Manager.
Exemplu: Filiala Are Personal, unde Filiala este părinte iar personal este copil.
11
5.2.1.5 Desenarea diagramei ER
Se desenează varianta finală a diagramei ER, validată prin normalizare şi conform cu
tranzacţiile pe care trebuie să le accepte.
a. Datele cerute
Unele atribute nu admit Null-uri. În aceste situaţii se selectează proprietatea de câmp
required, care cere date pentru câmpul respectiv. Se verifică dacă aceste constrângeri au fost
identificate şi documentate în dreptul atributelor în dicţionarul de date (vezi 5.1.2)
c. Integritatea entităţilor
Cheia primară a unei entităţi nu poate conţine Null-uri. Se verifică 5.1.5
d. Integritatea referenţială
Se referă la relaţia entitate părinte – entitate copil. Se ştie că cheia primară din părinte
se copiază în copil unde devine cheie străină.
Integritatea referenţială înseamnă ca o valoare nenulă a cheii străine din entitatea copil
trebuie să se refere la (să coincidă cu) o valoare existentă în entitatea părinte.
Dacă entitatea copil are participare totală în relaţie, nu sunt permise Null-uri în câmpul cheie
străină. Se admit atunci când entitatea copil are participare parţială.
12
Cazul 3. Reactualizarea cheii străine în relaţia (entitatea) copil
Similar cazului 1.
SET NULL Când se şterge o apariţie din Ep, valorile cheii străine în Ec sunt setate
la Null. Are loc o reactualizare prin setare la Null a valorilor atributelor
selectate din cheia străină a Ec. Această strategie se poate aplica numai
dacă atributele cheie străină acceptă Null-uri.
SET DEFAULT Când se şterge o apariţie din Ep, valorile cheii străine corespunzătoare
din Ec sunt setate la valori prestabilite (default).
Exemplu: se şterge un membru al personalului în Ep (Personal) şi
automat proprietăţile pe care acestea le-a administrat trecute în Ec
(Proprietăţi) se setează la atributul Nr_Pers la valoarea corespunzătoare
managerului.
NO CHECK Nu are loc nici o verificare de integritate. Când se şterge o apariţie din
Ep nu este garantată menţinerea integrităţii referenţiale.
e. Constrângerile întreprinderii
Sunt de fapt regulile de afaceri care pot uneori genera reactualizări ele entităţilor. De
exemplu agenţia imobiliară poate stabili ca un membru al personalului să administreze
maxim 10 proprietăţi.
5.2.1.6. se încheie cu documentarea tuturor constrângerilor de integritate. Aceasta
se face în dicţionarul de date, pentru a fi luate în considerare la implementarea fizică.
13
5.2.2. Construirea şi validarea modelului de date logic global
În această etapă se construieşte un model de date logic global prin îmbinarea modelelor de
date logice locale individuale, care au fost realizate pentru a reprezenta fiecare vedere a
utilizatorilor.
După îmbinare trebuie rezolvate conflictele dintre vederi, ca şi orice suprapuneri existente.
Va rezulta o reprezentare a întregii întreprinderi independentă de orice utilizator sau aplicaţie.
5.2.2.1. Îmbinarea modelelor de date logice locale individuale într-un singur model de
date logic global al întreprinderii
(Vederea 1)
Personal (Nr_Personal, Nume_Prenume, Funcţie, Sex, Salariu, Nr_Filială)
Cheie primară Nr_Personal
Cheie străină Nr_Filială se referă la Filiala(Nr_Filială)
(Vederea 2)
Personal (Nr_Personal, Prenume, Nume, Adresa, Nr_Filială)
Cheie primară Nr_Personal
Cheie străină Nr_Filială se referă la Filiala(Nr_Filială)
(Vedere Globală)
Personal (Nr_Personal, Prenume, Nume, Adresa, Funcţie, Sex, Salariu, Nr_Filială)
Cheie primară Nr_Personal
Cheie străină Nr_Filială se referă la Filiala(Nr_Filială)
În versiunea globală obţinută prin îmbinare s-a utilizat versiunea descompusă a atributului
Nume_Prenume (în urma consultării cu utilizatorii).
14
(Vederea 1)
Personal (Nr_Personal, Nume_Prenume, Funcţie, Sex, Salariu, Nr_Filială)
Cheie primară Nume_Prenume
Cheie alternativă Nr_Personal
Cheie străină Nr_Filială se referă la Filiala(Nr_Filială)
(Vederea 2)
Personal (Nr_Personal, Prenume, Nume, Adresa, Nr_Filială)
Cheie primară Nr_Personal
Cheie alternativă Prenume, Nume
Cheie străină Nr_Filială se referă la Filiala(Nr_Filială)
(4) Includerea (fără îmbinare) a entităţilor unice din fiecare vedere locală
Toate entităţile care nu au echivalent se includ nemodificate în modelul global.
(6) Includerea (fără îmbinare) a relaţiilor unice din fiecare vedere locală
Relaţiile pentru care nu s-au găsit relaţii identice în alte vederi se includ nemodificate
în modelul global.
15
(9) Verificarea constrângerilor de integritate
Se verifică dacă constrângerile de integritate ale modelului global nu intră în conflict
cu constrângerile de integritate din vederile utilizatorilor. Conflictele se rezolvă prin
consultarea cu utilizatorii.
16
atributelor cu valori multiple, reexaminarea relaţiilor de tip 1:1 şi eliminarea relaţiilor
neredundante.
Modelul de date logic se validează prin normalizare, prin care se garantează că
modelul reprezintă fidel întreprinderea, este coerent, cu redundanţă minimă şi stabilitate
maximă.
Constrângerile de integritate se impun pentru a proteja BD faţă de a deveni
incoerentă. Există 5 tipuri de constrângeri de integritate: asupra datelor necesare, ale
domeniilor atributelor, de integritate a entităţilor, de integritate referenţială şi ale
întreprinderii.
Integritatea referenţială se asigură prin constrângeri de existenţă, care definesc în
ce condiţii poate fi o cheie candidata sau străină inserată, reactualizată sau ştearsă.
Există mai multe strategii care pot fi aplicate atunci când o apariţie a entităţii părinte pe care
vrem să o ştergem are corespondent în entitatea copil: NO ACTION, CASCADE, SET
NULL, SET DEFAULT şi NO CHECK.
Constrângerile întreprinderii se numesc uneori şi reguli de afaceri.
Modelul de date logic este susţinut de către documentaţie, cum ar fi dicţionarul de
date sau schema relaţională, care sunt realizate pe parcursul construirii modelului.
17