Sunteți pe pagina 1din 15

1

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 Us' Law)
Fyfe's First Law of Revision
The difference between theory and practice is that in theory, there is no
difference between theory and practice, but in practice, there is.
Jan van de Sneptscheut
Proiectarea logic a bazelor
de date
Capitolul III
2
1. Locul modelrii logice a datelor n CVS
Aplicarea principiului abstractizarii 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 SGBD-ului
1. Locul modelrii logice a datelor n CVS
Criterii de calitate ale modelului logic al datelor
Completitudine - s conin toate datele necesare prelucrrilor
Neredundan - s fie format dintr-un set de tabele normalizate
Stabilitate schimbarea cerinelor funcionale s nu determine modificarea
structurii logice a datelor
Flexibilitate - uurina extinderii structurii logice a datelor pentru nglobarea
unor noi cerine
Simplitate i elegan - s ofere o clasificare natural i elegant a datelor (de
exemplu, s nu existe dou tabele FURNIZOR i CLIENT)
3
2. Modelul relaional
Concepte utilizate
Baz de date relaional - un ansamblu de relaii (tabele) aflate n legtur
Relaie (tabel) - este identificat printr-un nume propriu
- este format din linii (tupluri) i coloane (atribute)
- la intersecia crora se introduc valori atomice (date elementare)
Domeniu - mulimea tuturor valorilor pe care le poate lua o dat elementar
2. Modelul relaional
Concepte utilizate (cont.)
Cheie - ansamblul minimal de atribute prin care se poate identifica n mod unic orice
tuplu dintr-o relaie
Cheie candidat - un atribut sau o combinaie de atribute care s joace rolul de cheie
Cheie primar o cheie candidat aleas special
Cheie secundar o cheie candidat care nu a fost aleas cheie primar
Cheie strin (extern) - un atribut care apare ntr-o tabel i care este cheie primar
n alt tabel. Ea este utilizat pentru stabilirea legturilor ntre tabele.
Restricie de integritate referenial - pentru cheia strin se admite orice valoare
nenul care se regsete ntre valorile cheii primare din tabela-printe
4
Strategii de proiectare a schemei bazei de date
1. strategia bottom-up, reprezint abordarea tradiional i presupune
constituirea relaiei generale
analiza relaiilor de dependen dintre atribute i parcurgerea pailor
normalizrii
2. strategia top-down, presupune urmtoarele activiti:
analiza cerinelor funcionale i ntocmirea modelului ER
transformarea modelului ER prin aplicarea unui set de reguli
analiza tabelelor obinute din perspectiva normalizrii
3. Demersul de proiectare a bazei de date
Strategii de proiectare a schemei bazei de date (cont.)
3. Demersul de proiectare a bazei de date
Avantajele strategiei top down:
DER reprezint un instrument util de comunicare ntre analiti i utilizatori
DER este uor de neles i conceput
Utilizeaz conceptul de abstractizare - se reduce considerabil numrul
obiectelor analizate. Numrul entitailor de date este mult mai mic dect numrul
datelor elementare din sistem.
Existena unui set complet de reguli de transformare a DER n schema logic a
bazei de date - suport pentru generarea automat a bazei de date
5
1. Construirea unor modele logice ale datelor corespunzatoare
perspectivelor diferitelor categorii de utilizatori
2. Contopirea tuturor perspectivelor normalizate ale utilizatorilor
3. Transformarea DER intr-un set de tabele normalizate
4. Obinerea modelului logic final prin compararea modelului logic
consolidat (pasul2) cu modelul obinut prin transformarea DER (pasul 3)
Paii demersului
3. Demersul de proiectare a bazei de date
Activitile specifice transformrii DER
4. Transformarea diagramelor entitate-relaie
Reprezentarea entitilor - se vor obine tabele din prima categorie
Reprezentarea relaiilor dintre entiti - vor rezulta tabele din categoriile a
doua i a treia
Reprezentarea atributelor multivaloare - se vor obine tabele din categoria a
patra
Normalizarea relaiilor - tabelele obinute n paii 1 i 2 pot conine
redundane nedorite
6
4.1 Transformarea entitilor
4. Transformarea diagramelor entitate-relaie
Reguli de transformare:
fiecare entitate din DER este reprezentat ca o relaie (tabel) n modelul logic
identificatorul entitii devine cheie primar a relaiei
celelalte proprieti ale entitii devin atribute non-cheie ale relaiei
NUME
MARCA
ANGAJ AT
ADRESA
ANGAJAT (MARCA, NUME, ADRESA)
ANGAJAT : MARCA, NUME, ADRESA
Marca Nume Adresa
1111 Ion Ion Arini, 28, Iasi
1122 Ion Ionel Anini, 120, Blaj
ANGAJAT
(a)
(b)
(c)
(d)
Exemplu
4.2 Transformarea legturilor
4. Transformarea diagramelor entitate-relaie
Se ia n considerare cardinalitatea legturilor dintre entiti:
maximul cardinalitii indic tabela care va conine cheia strin
ea se va numi entitate slab (tabel copil)
minimul cardinalitii descrie caracterul obligatoriu/facultativ al
legturii
indic dac pentru cheile strine sunt permise valorile nule sau nu
7
4.2.1 Transformarea legturii binare de tipul 1:1
4. Transformarea diagramelor entitate-relaie
Reguli de transformare:
1. Tabela printe este cea aflat de partea cu cardinalitatea minim 1 a
legturii
2. Exist patru variante posibile de transformare:
adugarea cheii primare a entitii A la entitatea B ca cheie
strin
adugarea cheii primare a entitii B la entitatea A ca cheie
strin
combinarea cazurilor 1 i 2, dac cerinele de acces la date
o cer
unirea celor dou entiti ntr-o singur tabel
Factura
Fact_id
Fact_nr
Fact_data
Receptie
Rec_id
Rec_nr
Rec_data
Coresp-
unde
(1,1)
(0,1)
Factura
Fact_id
Fact_nr
Fact_data
Receptie
Rec_id
Rec_nr
Rec_data
Fact_id [FK] NOT NULL
Fiecrei facturi i va
corespunde cel mult o
recepie sau nici una,
iar o recepie are la
baz exact o factur.
4.2.1 Transformarea legturii binare de tipul 1:1 (cont.)
4. Transformarea diagramelor entitate-relaie
8
Departament
Dep_id
Dep_nume
Raport
Rap_id
Rap_den
Dep_id [FK] NULL
Fiecare departament
public unul sau mai
multe rapoarte, ns nu
este obligatoriu ca un
raport s fie publicat de
un anumit departament.
4.2.2 Transformarea legturilor 1:N
(participarea entitii de partea unu este facultativ)
(0,1)
Departament
Dep_id
Dep_nume
Raport
Rap_id
Rap_den
Public
(1,M)
4. Transformarea diagramelor entitate-relaie
Reguli de transformare:
entitatea aflat de partea M va conine cheia strin
se admit valori nule pentru cheia strin
Furnizor
Furn_id
Furn_nume
Factura
Fact_nr
Fact_data
Furn_id [FK] NOT NULL
Fiecare factura este emis
de un singur furnizor, n
timp de un furnizor poate
emite mai multe facturi
sau nici una.
Furnizor
Furn_id
Furn_nume
Emitere
(0,M)
(1,1)
Factura
Fact_nr
Fact_data
4.2.2 Transformarea legturilor 1:N
(participarea entitii de partea unu este obligatorie)
4. Transformarea diagramelor entitate-relaie
Reguli de transformare:
entitatea aflat de partea M va conine cheia strin
NU se admit valori nule pentru cheia strin
9
4.2.3 Transformarea legturilor binare de tip M:N
4. Transformarea diagramelor entitate-relaie
Reguli de transformare:
se creeaz cte o tabel aferent celor dou entiti
se creeaz a treia tabel, aferent legturii M:N, numit entitate asociativ
conine cheile primare ale celor dou entiti i eventualele atribute
ale legturii M:N
cheia primar este format, de regul, prin combinarea celor dou
chei strine
sunt situaii cnd n compoziia cheii primare trebuie introduse i
alte atribute, pe lng cele dou chei strine
nu se admit valori nule pentru cheile strine
Fiecare factura poate contine mai multe produse, iar
un produs se poate regasi pe mai multe facturi
Produs
Prod_id
Prod_den
Factura
Fact_nr
Fact_data
Articol_factura
Prod_id [FK]
Fact_nr [FK]
Cantitate
Pret
4.2.3 Transformarea legturilor binare de tip M:N
Produs
Prod_id
Prod_den
Contine
(1,M)
(0,M)
Factura
Fact_nr
Fact_data
Cantitate
Pret
4. Transformarea diagramelor entitate-relaie
10
4.2.4 Transformarea legturilor recursive de tip 1:M
4. Transformarea diagramelor entitate-relaie
ANGAJAT
Marca_angajat
Nume
Alte_date
Conduce
(0,M)
(1,1)
ANGAJAT
Marca_angajat
Nume
Alte_date
Conduce
(0,M)
(1,1)
ANGAJAT
Marca_angajat
Nume
Alte_date
Conduce Conduce
(0,M)
(1,1)
ANGAJAT
Marca_angajat
Nume
Alte_date
Marca_manager [FK]
Un angajat poate conduce
mai muli angajai sau nici
unul, iar fiecare angajat are
un manager i numai unul
ARTICOL
Cod_articol
Denumire
Cost
Contine
(0,M)
(0,M)
Cantitate
ARTICOL
Cod_articol
Denumire
Cost
Contine
(0,M)
(0,M)
ARTICOL
Cod_articol
Denumire
Cost
Contine
(0,M)
(0,M)
ARTICOL
Cod_articol
Denumire
Cost
Contine Contine
(0,M)
(0,M)
Cantitate Cantitate
ARTICOL
Cod_articol
Denumire
Cost
ARTICOL_COMPONENT
Cod_articol
Cod_componenta [FK]
Cantitate
Un articol poate conine mai
multe articole, iar un articol
poate intra n fabricaia mai
multor alte articole.
4.2.4 Transformarea legturilor recursive de tip M:N
4. Transformarea diagramelor entitate-relaie
11
Reguli de transformare:
se creeaz cte o tabel aferent celor trei entiti
se creeaz a patra tabel, aferent legturii ternare, numit entitate asociativ
(tabel copil)
tabela copil conine cheile primare ale celor trei entiti, ce vor fi chei strine,
i eventualele atribute ale legturii ternare
4.2.5 Transformarea legturilor ternare
4. Transformarea diagramelor entitate-relaie
4.2.5 Transformarea legturilor ternare
4. Transformarea diagramelor entitate-relaie
Reguli de transformare (continuare):
formarea cheii primare a tabelei copil:
dac toate entitile prezint cardinalitatea maxim unu, cheia primar
se formeaz prin combinarea oricror dou din cele trei chei strine
dac dou dintre entiti prezint cardinalitatea maxim unu, cheia
primar se formeaz prin combinarea cheii entitii din partea multe i
una dintre cheile entitilor situate de partea unu
dac o singur entitate prezint cardinalitatea maxim unu, cheia
primar va fi format prin combinarea cheilor celor dou entiti situate de
partea multe
dac toate cele trei entiti au cardinalitatea maxim multe, cheia
primar va fi format din cheile tuturor celor trei entiti
12
Tehnician
Ang_id
Ang_nume
Proiect
Pr_id
Pr_den
Documentatie
Doc_nr
Doc_termen
Intocmeste
1
1 1
Tehnician
Ang_id
Ang_nume
Proiect
Pr_id
Pr_den
Documentatie
Doc_nr
Doc_termen
Doc_proiect
Pr_id [FK]
Doc_nr [FK]
Ang_id [FK]
Un tehnician poate lucra la mai multe proiecte insa el intocmeste o singura
documentatie 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 Doc_proiect exista trei variante pentru stabilirea cheii: Pr_id si Doc_nr;
Pr_id si Ang_id; Doc_nr si Ang_id.
4.2.5 Transformarea legturii ternare (tipul unu-la-unu-la-unu)
4. Transformarea diagramelor entitate-relaie
Profesor
Prof_id
Prof_nume
Disciplina
Disc_id
Disc_den
Student
Stud_id
Stud_nume
Examen
Stud_id [FK]
Disc_id [FK]
Exam_data
Prof_id [FK]
Exam_nota
Fiecare student sustine un
examen cu un singur
profesor, insa el poate fi
examinat de acelasi profesor
la mai multe discipline. De
asemenea, un profesor
examineaza la o disciplina
mai multi studenti.
4.2.5 Transformarea legturii ternare (tipul unu-la-multe-la-multe)
Profesor
Prof_id
Prof_nume
Disciplina
Disc_id
Disc_den
Student
Stud_id
Stud_nume
Examin
eaza
1
M N
Exam_nota Exam_data
4. Transformarea diagramelor entitate-relaie
13
Angajat
Ang_id
Ang_nume
Formatie
Form_id
Form_nrang
Loc_munca
Locm_id
Locm_den
Pontaj
Ang_id [FK]
Form_id[FK]
Locm_id [FK]
Nr_ore
Fiecare angajat poate lucra
in mai multe locuri de
munca in formatii de lucru
diferite, o formatie este
formata din mai multi
angajati si poate lucra in
mai multe locuri de munca,
iar intr-un loc de munca
pot lucra mai multe
formatii alcatuite din mai
multi angajati.
4.2.5 Transformarea legturii ternare (tipul multe-la-multe-la-multe)
Angajat
Ang_id
Ang_nume
Formatie
Form_id
Form_nrang
Loc_munca
Locm_id
Locm_den
Lucreaza
P
M N
Nr_ore
4. Transformarea diagramelor entitate-relaie
Carte
ISBN
Titlu
Copie
Cota
Stare
ISBN [FK]
Atributele
multivaloare Cota si
Stare sunt separate
ntr-o tabel distinct.
Ea se mai numete i
entitate atributiv.
4.3 Transformarea atributelor multivaloare
4. Transformarea diagramelor entitate-relaie
Carte
ISBN
Titlu
Cota
Stare
14
1. Utilizarea conventiilor in atribuirea de nume CamelCase
2. Stabilirea unui prefix unic pt fiecare tabela, care sa fie utilizat ca parte a
numelor atributelor
3. Pastrarea numelor pt atributele cheie straina ramane cu prefixul de la
tabela parinte
4. Evitarea cheilor primare compuse sau chiar a celor cu semnificatie pentru
utilizator (utilizatorul ar putea sa modifice valoarea). Numele atributului
cheie primara PrefixTabelaID, cu valori atribuite automat ca secventa.
5. Recomandri privind proiectarea BD
6. Mecanismul tranzacional al BD
Tranzacie
ansamblu de operaiuni executate mpreun asupra bazei de date
o unitate logic de prelucrare care garanteaz consistena bazei de date
Mecanismul tranzacional trebuie s rezolve urmtoarele dou probleme:
Controlul concurenei - mecanismele de blocare
Rezistena la defecte, tolerana sistemului la defecte i capacitatea de
recuperare a acestuia
O baz de date este ntr-o stare consistent dac datele respect toate restriciile de
integritate definite asupra lor
6.1 Definirea mecanismului tranzacional
15
6. Mecanismul tranzacional al BD
6.2 Exemplu tranzacie Adugare factur
Se decrementeaz valoarea atributului
Stoc cu cantitatea vndut, pentru
fiecare produs n parte. Identificarea
nregistrrilor actualizate se face pe
baza codului produsului.
Update PRODUS Actualizare
stocuri
Se incrementeaz valoarea atributului
Sold, cu valoarea facturii, preluat din
ecranul de culegere a datelor.
Identificarea nregistrrii se face n
funcie de codul clientului pentru care
s-a introdus factura.
Update CLIENT Actualizare
sold client
Toate datele se preiau din ecranul
pentru culegerea datelor.
Insert ARTICOLFACTURA Adugare
articole factur
DataFactura ia valoarea datei din
sistem, iar celelalte valori sunt preluate
din ecranul de culegere a datelor.
Insert FACTURA Adugare
factur
Explicaii Tip acces Nume tabel
accesat
Denumire
operaiune
6. Mecanismul tranzacional al BD
6.3 Proprietile tranzaciilor
Atomicitate -o tranzactie este considerata o unitate elementara de
prelucrare, adica executia unei tranzactii se face pe principiul totul sau nimic
Consistena - se refera la corectitudinea tranzactiei din punctul de vedere
al consistentei datelor
Izolarea - presupune ca orice tranzactie sa aiba acces doar la starile
consistente ale bazei de date
Durabilitatea - odata ce tranzactia este validata, efectele sale devin
permanente si vor fi nscrise n baza de date

S-ar putea să vă placă și

  • Cap1 SIC2
    Cap1 SIC2
    Document27 pagini
    Cap1 SIC2
    Adriana Calin
    Încă nu există evaluări
  • Analistul de Sistem Informaţional
    Analistul de Sistem Informaţional
    Document1 pagină
    Analistul de Sistem Informaţional
    Marian Toma
    Încă nu există evaluări
  • Bancuri 4
    Bancuri 4
    Document3 pagini
    Bancuri 4
    Marian Toma
    Încă nu există evaluări
  • Bancuri 3
    Bancuri 3
    Document3 pagini
    Bancuri 3
    Marian Toma
    Încă nu există evaluări
  • Bancuri 2
    Bancuri 2
    Document3 pagini
    Bancuri 2
    Marian Toma
    Încă nu există evaluări
  • Bancuri
    Bancuri
    Document3 pagini
    Bancuri
    Marian Toma
    Încă nu există evaluări
  • Untitled
    Untitled
    Document3 pagini
    Untitled
    Marian Toma
    Încă nu există evaluări