8/17/2019 Cap3 ProiectareLogicaBD IE
1/34
An army of sheep led by a lion would defeat
an army of lions led by a sheep.
Arab Proverb
Information necessitating a change of design will be conveyed to the
designer after and only after the design is complete.(Often called the 'Now They Tell s' !aw"
#yfe's #irst !aw of $evision
%The difference between theory and practice is that in theory& there is no
difference between theory and practice& but in practice& there is.
an van de )neptscheut
8/17/2019 Cap3 ProiectareLogicaBD IE
2/34
Proiectarea logic* a ba+elor
de date
,apitolul III
8/17/2019 Cap3 ProiectareLogicaBD IE
3/34
-. !ocul model*rii logice a datelor n ,/)
Aplicarea principiului abstracti+arii in modelarea datelor
Nivelul conceptual al datelor
(modelul entitate-relatie)
Nivelul logic al datelor
(modelul relational pur)
Nivelul fizic al datelor
(modelul fizic al datelor)
Cerintele functionale ale sistemului
Regulile modelului
relational Cerintele de calitate(flexibilitate, stabilitate)
Cerintele nefunctionale
si de performanta Facilitatile SG!-ului
8/17/2019 Cap3 ProiectareLogicaBD IE
4/34
-. !ocul model*rii logice a datelor n ,/),riterii de calitate ale modelului logic al datelor
Completitudine - s" con#in" toate datele necesare prelucr"rilor
Neredundanţă - s" fie format dintr-un set de tabele normalizate
Stabilitate $ sc%imbarea cerin#elor func#ionale s" nu determine modificarea
structurii logice a datelor
Flexibilitate - u&urin#a extinderii structurii logice a datelor pentru 'nglobarea
unor noi cerin#e
Simplitate şi eleganţă - s" ofere o clasificare natural" &i elegant" a datelor (de
exemplu, s" nu existe dou" tabele FRN*+R &i CN.)
8/17/2019 Cap3 ProiectareLogicaBD IE
5/34
0. 1odelul rela2ional,oncepte utili+ate
3a+* de date rela2ional* - un ansamblu de rela#ii (tabele) aflate 'n leg"tur"
$ela2ie (tabel*" - este identificat printr-un nume propriu
- este format din linii (tupluri) &i coloane (atribute)
- la intersec#ia c"rora se introduc valori atomice (date elementare)
4omeniu - mul#imea tuturor valorilor pe care le poate lua o dat" elementar"
8/17/2019 Cap3 ProiectareLogicaBD IE
6/34
0. 1odelul rela2ional,oncepte utili+ate (cont."
,heie - ansamblul minimal de atribute prin care se poate identifica 'n mod unic orice
tuplu dintr-o rela#ie
,heie candidat - un atribut sau o combina#ie de atribute care s" /oace rolul de c%eie
,heie primar* $ o c%eie candidat aleas" special
,heie secundar* $ o c%eie candidat care nu a fost aleas" c%eie primar"
,heie str*in* (e5tern*" - un atribut care apare 'ntr-o tabel" &i care este c%eie primar"
'n alt" tabel"0 a este utilizat" pentru stabilirea leg"turilor 'ntre tabele0
$estric2ie de integritate referen2ial* - pentru c%eia str"in" se admite orice valoare
nenul" care se reg"se&te 'ntre valorile c%eii primare din tabela-p"rinte
8/17/2019 Cap3 ProiectareLogicaBD IE
7/34
)trategii de proiectare a schemei ba+ei de date
-. strategia bottom6up, reprezint" abordarea tradi#ional" &i presupune
constituirea rela#iei generale
analiza rela#iilor de dependen#" dintre atribute &i parcurgerea pa&ilor
normaliz"rii
0. strategia top6down, presupune urm"toarele activit"#i1
analiza cerin#elor func#ionale &i 'ntocmirea modelului conceptual (!R)
transformarea modelului R prin aplicarea unui set de reguli
analiza tabelelor ob#inute din perspectiva normaliz"rii
7. 4emersul de proiectare a ba+ei de date
8/17/2019 Cap3 ProiectareLogicaBD IE
8/34
)trategii de proiectare a schemei ba+ei de date (cont."
7. 4emersul de proiectare a ba+ei de date
Avanta8ele strategiei top 9 down:
DER reprezintă un instrument util de comunicare 'ntre anali&ti &i utilizatori
DER este uşor de înţeles şi conceput
Utilizează conceptul de abstractizare - se reduce considerabil num"rul
obiectelor analizate0 Num"rul entita#ilor de date este mult mai mic dec2t num"rul
datelor elementare din sistem0
Existenţa unui set complet de reguli de transormare a DER în sc!ema logică a
bazei de date - suport pentru generarea automat" a bazei de date
8/17/2019 Cap3 ProiectareLogicaBD IE
9/34
30 Construirea unor modele logice ale datelor corespunzatoare
perspectivelor diferitelor categorii de utilizatori
40 Contopirea tuturor perspectivelor normalizate ale utilizatorilor
50 .ransformarea !R (class diagram) intr-un set de tabele normalizate
60 +b#inerea modelului logic final prin compararea modelului logic
consolidat (pasul4) cu modelul ob#inut prin transformarea !R (pasul 5)
Pa;ii demersului
7. 4emersul de proiectare a ba+ei de date
8/17/2019 Cap3 ProiectareLogicaBD IE
10/34
7ctivit"#ile specifice transform"rii !R
8/17/2019 Cap3 ProiectareLogicaBD IE
11/34
8/17/2019 Cap3 ProiectareLogicaBD IE
12/34
8/17/2019 Cap3 ProiectareLogicaBD IE
13/34
4.2.1 Transformarea legăturii binare de tipul 1:1
8/17/2019 Cap3 ProiectareLogicaBD IE
14/34
Factura
#act>id
Fact9nr
Fact9data
Receptie
$ec>id
Rec9nr
Rec9data
Coresp-
unde
(3,3)
(:,3)
Factura
#act>id
Fact9nr
Fact9data
Receptie$ec>id
Rec9nr
Rec9data
Fact"id #F$% N&' NU((
Fiecărei facturi îi vacorespunde cel mult o
recepţie sau nici una,iar o recepţie are labază exact o factură.
4.2.1 Transformarea legăturii binare de tipul 1:1 (cont.)
8/17/2019 Cap3 ProiectareLogicaBD IE
15/34
Furnizor
#urn>id
Furn9nume
Factura
#act>nr
Fact9data
Furn"id #F$% N&' NU((
#iecare factura este emis*
de un singur furni+or& n
timp de un furni+or poate
emite mai multe facturi
sau nici una.
Furnizor
#urn>id
Furn9nume
mitere
(:,;)
(3,3)
Factura
#act>nr
Fact9data
4.2.2 Transformarea legăturilor 1:N
(participarea entităţii de partea “unu” este obligatorie)
8/17/2019 Cap3 ProiectareLogicaBD IE
16/34
7gentComercial
agentId
agentNume
Comanda
cmdId
cmdNumar
agent)d >F?@ N
#iecare agent comercial
poate incheia una sau
mai multe comen+i& ns*
nu este obligatoriu ca o
comanda s* fie incheiatade un agent 9 clientul
poate veni direct in firma
sau lansea+a comanda
prin intermediul site6ului
firmei.
4.2.2 Transformarea legăturilor 1:N
(participarea entităţii de partea “unu” este facultatiă)
(:,3)
7gentComercial
agentId
agentNume
ComandacmdId
cmdNumar
nc%eie
(3,;)
8/17/2019 Cap3 ProiectareLogicaBD IE
17/34
4.2.! Transformarea legăturilor binare de tip ":N
8/17/2019 Cap3 ProiectareLogicaBD IE
18/34
#iecare factura poate contine mai multe produse& iar
un produs se poate regasi pe mai multe facturi
Arodus
Prod>id
Arod9den
Factura
#act>nr
Fact9data
7rticol9factura
Prod_id [FK]
Fact_nr [FK]
Cantitate
Aret
4.2.! Transformarea legăturilor binare de tip ":N
Arodus
Prod>idArod9den
Contine
(3,;)
(:,;)
Factura
#act>nr
Fact9data
Cantitate
Aret
8/17/2019 Cap3 ProiectareLogicaBD IE
19/34
4.2.4 Transformarea legăturilor recursie de tip 1:"
anga8at Nume
7lte9date
Conduce
(:,;)
(3,3)
7NG7B7.
1arca>anga8at Nume
7lte9date
Conduce
(:,;)
(3,3)
7NG7B7.
1arca>anga8at Nume
7lte9date
ConduceConduce
(:,;)
(3,3)
7NG7B7.1arca>anga8at
Nume7lte9date
+arca"manager #F$%
n anga8at poate conducemai mul2i anga8a2i sau nici
unul& iar fiecare anga8at are
un manager ;i numai unul
8/17/2019 Cap3 ProiectareLogicaBD IE
20/34
7R.C+
,od>articol!enumire
Cost
Contine
(:,;)
(:,;)
Cantitate
7R.C+
,od>articol!enumire
Cost
Contine
(:,;)
(:,;)
7R.C+
,od>articol!enumire
Cost
Contine
(:,;)
(:,;)
7R.C+
,od>articol!enumire
Cost
ContineContine
(:,;)
(:,;)
CantitateCantitate
7R.C+,od>articol
!enumireCost
7R.C+9C+;A+NN.,od>articolCod_componenta [FK]
Cantitate
n articol poate con2ine maimulte articole& iar un articolpoate intra n fabrica2ia maimultor alte articole.
4.2.4 Transformarea legăturilor recursie de tip ":N
8/17/2019 Cap3 ProiectareLogicaBD IE
21/34
$eguli de transformare:
se creeaz" c2te o tabel" aferent" celor trei entit"#i se creeaz" a patra tabel", aferent" leg"turii ternare, numit" entitate asociati*ă
,tabelă copil-
tabela copil con#ine c%eile primare ale celor trei entit"#i, ce vor fi c%ei str"ine,
&i eventualele atribute ale leg"turii ternare
8/17/2019 Cap3 ProiectareLogicaBD IE
22/34
8/17/2019 Cap3 ProiectareLogicaBD IE
23/34
.e%nician
Ang>id
7ng9nume
Aroiect
Pr>id
Ar9den
!ocumentatie
4oc>nr
!oc9termen
ntocmeste
3
3 3
.e%nician
Ang>id
7ng9nume
Aroiect
Pr>id
Ar9den
!ocumentatie
4oc>nr
!oc9termen
!oc9proiect
Pr_id [FK]
Doc_nr [FK]
.ng"id #F$%
n tehnician poate lucra la mai multe proiecte insa el intocmeste o singuradocumentatie pentru fiecare proiect in parte@ fiecare documentatie este intocmita de
un singur tehnician pentru un singur proiect@ un proiect poate avea mai multe
documentatii& dar fiecare documentatie va fi intocmita de un singur tehnician.
In tabela 4oc>proiect e5ista trei variante pentru stabilirea cheii: Pr>id si 4oc>nr@Pr id si An id 4oc nr si An id.
6040D .ransformarea leg"turii ternare (tipul unu-la-unu-la-unu=)
8/17/2019 Cap3 ProiectareLogicaBD IE
24/34
Arofesor
Prof>id
Arof9nume
!isciplina
4isc>id
!isc9den
Student
)tud>id
Stud9nume
xamen
Stud_id [FK]
Disc_id [FK]
=5am>data
/ro"id #F$%xam9nota
#iecare student sustine une5amen cu un singur profesor&
insa el poate fi e5aminat de
acelasi profesor la mai multe
discipline. 4e asemenea& un
profesor e5aminea+a la o
disciplina mai multi studenti.
6040D .ransformarea leg"turii ternare (tipul unu-la-multe-la-multe=)
Arofesor
Prof>idArof9nume
!isciplina
4isc>id
!isc9den
Student
)tud>id
Stud9nume
xamin
eaza
3
; N
xam9notaxam9data
8/17/2019 Cap3 ProiectareLogicaBD IE
25/34
7nga/at
Ang>id
7ng9nume
Formatie
#orm>id
Form9nrang
oc9munca
!ocm>id
ocm9den
Aonta/
Ang_id [FK]
Form_id[FK]
Locm_id [FK]
Nr9ore
1 6 un anga8at poate lucra
la un loc de munca in
cadrul mai multor formatii.
N 6 un anga8at poate lucra
intr6o formatie dar la mai
multe locuri de munca.P 9 o formatie care
lucrea+a intr6un loc de
munca poate fi alcatuita
din mai multi anga8ati.
6040D .ransformarea leg"turii ternare (tipul multe-la-multe-la-multe=)
7nga/at
Ang>id
7ng9nume
Formatie
#orm>id
Form9nrang
oc9munca
!ocm>id
ocm9den
ucreaza
A
; N
Nr9ore
8/17/2019 Cap3 ProiectareLogicaBD IE
26/34
605 .ransformarea rela#iilor de mo&tenire
8/17/2019 Cap3 ProiectareLogicaBD IE
27/34
605 .ransformarea rela#iilor de mo&tenire
A?@
tip!ocument
nr!oc
data!oc
data+perare
mi/l.ransport
$eceptie
idReceptie >A?@tip!ocument
nr!oc
data!oc
data+perare
facturaArimita
4oc,onsum
id!ocConsum >A?@
tip!ocument
nr!oc
data!oc
data+perare
numarComanda 1 N
locConsum
< T f di l i l i
8/17/2019 Cap3 ProiectareLogicaBD IE
28/34
605 .ransformarea rela#iilor de mo&tenire
A?@
id!ocument >F?@mi/l.ransport
$eceptie
idReceptie >A?@
id!ocument >F?@
facturaArimita
4oc,onsum
id!ocConsum >A?@
id!ocument >F?@
numarComanda
locConsum
4ocument
id!ocument >A?@
nr!oc
data!oc
data+perare
(B&-"
(B&-"
(B&-"
(-&-"
(-&-" (-&-"
< T f di l i l i
8/17/2019 Cap3 ProiectareLogicaBD IE
29/34
605 .ransformarea rela#iilor de mo&tenire
A?@
denumire;aterial
um
contvidenta
duratatilizare 1 N
perioada7cordare 1 N
procentC%eltuieli 1 N
tipun;aterial
8/17/2019 Cap3 ProiectareLogicaBD IE
30/34
Carte
I)3N.itlu
Copie,ota
Stare
)S0N #F$%
Atributele
multivaloare Cota si
Stare sunt separate
ntr6o tabel* distinct*.
=a se mai nume;te ;i
entitate atributiv*.
8/17/2019 Cap3 ProiectareLogicaBD IE
31/34
30 tilizarea conventiilor in atribuirea de nume $ camel,ase 9 opus Pascal,ase
40 Stabilirea unui prefix unic pt fiecare tabela, care sa fie utilizat ca parte a
numelor atributelor
50 Aastrarea numelor pt atributele c%eie straina $ ramane cu prefixul de la tabela
parinte
60 vitarea c%eilor primare compuse sau c%iar a celor cu semnificatie pentru
utilizator (utilizatorul ar putea sa modifice valoarea)0 Numele atributului c%eie
primara Arefix.abela!, cu valori atribuite automat ca secventa0
?. $ecomand*ri privind proiectarea 34
8/17/2019 Cap3 ProiectareLogicaBD IE
32/34
C. 1ecanismul tran+ac2ional al 34
Tran+ac2ie
ansamblu de opera2iuni e5ecutate mpreun* asupra ba+ei de date
o unitate logic* de prelucrare care garantea+* consisten2a ba+ei de date
1ecanismul tran+ac2ional trebuie s" rezolve urm"toarele dou" probleme1
,ontrolul concuren2ei - mecanismele de blocare
$e+isten2a la defecte, toleran#a sistemului la defecte &i capacitatea de
recuperare a acestuia
+ baz" de date este 'ntr-o stare consistent" dac" datele respect" toate restric#iile de
integritate definite asupra lor
C.- 4efinirea mecanismului tran+ac2ional
8/17/2019 Cap3 ProiectareLogicaBD IE
33/34
C. 1ecanismul tran+ac2ional al 34
C.0 =5emplu tran+ac2ie 9 Ad*ugare factur*
4enumire
opera2iune
Nume tabel* accesat* Tip acces =5plica2ii
7d"ugarefactur"
F7C.R7 Insert DataFactura ia valoarea datei dinsistem, iar celelalte valori sunt preluatedin ecranul de culegere a datelor0
7d"ugare
articole factur"
7R.C+F7C.R7 Insert .oate datele se preiau din ecranul
pentru culegerea datelor0
7ctualizaresold client
CN. pdate Se incrementeaz" valoarea atributuluiSold , cu valoarea facturii, preluat" dinecranul de culegere a datelor0dentificarea 'nregistr"rii se face 'nfunc#ie de codul clientului pentru care
s-a introdus factura0
7ctualizarestocuri
AR+!S pdate Se decrementeaz" valoarea atributuluiStoc cu cantitatea v2ndut", pentrufiecare produs 'n parte0 dentificarea'nregistr"rilor actualizate se face pe baza codului produsului0
8/17/2019 Cap3 ProiectareLogicaBD IE
34/34
C. 1ecanismul tran+ac2ional al 34
C.7 Propriet*2ile tran+ac2iilor
E Atomicitate -o tranzactie este considerata o unitate elementara de
prelucrare, adica executia unei tranzactii se face pe principiul totul sau nimic
E ,onsisten2a - se refera la corectitudinea tranzactiei din punctul de vedereal consistentei datelor
E I+olarea - presupune ca orice tranzactie sa aiba acces doar la starile
consistente ale bazei de date
E 4urabilitatea - odata ce tranzactia este validata, efectele sale devin
permanente si vor fi 'nscrise 'n baza de date