f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
Transcript of f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
1/83
1 - Prof.dr. Bogdan IONESCU
Teoria general
a bazelor de date
Baza de date este: Un ansamblu de date structurate
Legate funcional Stocate pe suporturi tehnice adresabile
Accesate de mai muli utilizatori de o manierselectiv i ntr-un timp oportun
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
2/83
1 - Prof.dr. Bogdan IONESCU
Modele de date:
modelul RELAIONAL
Un model de organizare bidimensional a datelor
n tabele Implementeaz schema relaional (MRD)
Tabele
Rela
ii ntre tabele
Reguli de validare
Algebra relaional (Operatori relaionali) Operatori de asamblare (Reuniunea, Intersecia, Produsul
cartezian, Diferena) Operatori unari (Proiecia, Selecia) Operatori de extensie (Compunerea, Diviziunea)
Un limbaj standard de gestiune a BDR
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
3/83
1 - Prof.dr. Bogdan IONESCU
Modele de date:
modelul RELAIONAL
Modelul relaional introdus de Edgar
Frank Coddn 1970 se fundamenteaz penoiunea matematic
de relaie R(X
1
,X
2
,....
X
n
) unde, pentru fiecare element Xi se definete un
domeniu de valori
Domeniul reprezint mulimea valorilorposibile care definesc o anumit proprietateaferent unui obiect
Atributul reprezint mulimea valorilorexistenten coloana pe care o desemneaz ncadrul relaiei.
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
4/83
1 - Prof.dr. Bogdan IONESCU
Modele de date:
modelul RELAIONAL
Relaiile se reprezint prin tabele care
sunt supuse urmtoarelor restricii: n fiecare coloan, toate valorile sunt de
acelai tip;
Ordinea liniilor (tuplurilor sau nregistrrilor)nu este predefinit; Nu sunt admise nregistrri duplicate; Coloanele sunt identificate prin nume
distincte (atribute sau proprieti)Tuplurile unei relaii se pot identifica de o manier unicprin intermediul valorilor unuia sau mai multor atribute
care joac rol de CHEIE PRIMARa relaiei respective.
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
5/83
1 - Prof.dr. Bogdan IONESCU
Modele de date:
modelul RELAIONAL Se numete
DOMENIU PRIMARacel domeniu pe care este definitun singur atribut drept cheie primar
CHEIA EXTERN: Fiind dou relaii R1 i R2, cu atributeleA1 iA2 chei primare definite pe acelai domeniu primar D, se spune c nrelaia R1,A2 este cheie extern dac, utiliznd o
parte din valorileei sau toate, pot fi regsite
tuplurile relaiei R2 (altfel spus, un atribut al unei relaii este cheie extern, dac se
regsete pe post de cheie primarn alt relaie)
R1(A1,B1,C1,D1,
A2) R2(A2,B2,C2,D2)
Relaii
Chei primare
Cheie extern
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
6/83
1 - Prof.dr. Bogdan IONESCU
Modele de date:
modelul RELAIONAL
R1(A1,B1,C1,D1,
A2) R2(A2,B2,C2,D2)
Relaii
Chei primareClieniCod_client
Nume_client
Adres
Localitate
Factura
Nr_factur
Data_factur
Data_scaden
Cod_client
Cheie extern
Factura(Nr.Factura,Data_f,Data_s,
Cod client)
Clienti(Cod client,Nume_cl,Adresa,Localitate)
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
7/831 - Prof.dr. Bogdan IONESCU
Modele de date: modelul RELAIONAL
RESTRICIILE DE INTEGRITATE depind de
semantica valorilor domeniilor. Integritatea entitii prin care valorile cheii primare
trebuie s fie diferite de zero; Integritatea referirii potrivit creia valorile unei chei
externe trebuie s se refere la tuplurile unei alte relaii ALTE RESTRICII care se aplic asupra domeniilor
(validri prin care se reflect alte corelaii de ordinvaloric)
SCHEMA unei relaii este format din: Numele relaiei Atributele relaiei
Restriciile de integritate
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
8/831 - Prof.dr. Bogdan IONESCU
Normalizarea se bazeaz pe urmtoarele concepte:
Proces de normalizare
Dependena funcional
Diagrama dependenelor funcionale
Dependene Inter-Tabele i Multivaloare
Forme normale
Matricea dependenelor funcionale Etapele proiectrii MR prin normalizare
Exemplul II (facturi ctre clieni)
Exemplul III (editur)
Normalizarea Bazelor de Date
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
9/831 - Prof.dr. Bogdan IONESCU
DD+RG NORMALIZARE MRD
Normalizarea Bazelor de Date:Procesul de normalizare
Normalizarea este un demers ce conduce la
construirea modelului relaional al bazei de dateSe descompune o tabel complex n subtabele maimici i mai uor de manipulat
SCOP: Normalizarea garanteaz coerena bazei de date n timpuloperaiilor de actualizare (CMS) de date, evitnd redundanele
REZULTAT: Un model nedecompozabil ce respect regulile dedefinire semantic i de integritate a datelor
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
10/831 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date:Procesul de normalizare
O baz de date normalizat trebuie s conin tabele (relaii) ncare s nu existe anomalii i pierderi de informaii.
De asemenea, o baz de date normalizat trebuie s respecteatt restriciile modelului relaional ct cerinele definite
de ctre utilizator.
Proiectarea unei baze de date relaionale se poate realiza prinurmtoarele metode:
1. Obinerea modelului relaional pe baza unui modelconceptual semantic (Merise, Entitate-Asociere)2. Obinerea modelului relaional utiliznd modelarea
obiectuala (OMT, UML .a.)3. Obinerea modelului relaional prin normalizare
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
11/831 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date:Procesul de normalizare : ANOMALII
1) Redundanpentru facturile emise de acelai
furnizor;2)Anomalii la adugare: se refer la faptul canumite date ce urmeaz a fi adugate, fac parte dintupluri incomplete (nu pot fi adugai furnizori care
nu au emis facturi);
Serie
facturNumar
factura
Data
facturCod
furnizor
Denumire
furnizor
Adresfurnizor
A01 1 01/01/2009 111 S.C. Alfa S.A. Bucureti
A01 2 12/05/2009 112 S.C. Beta S.A. Braov
A01 3 15/05/2009 112 S.C. Beta S.A. Braov
FurnizoriFacturi(SerieFactura, NumarFactura, DataFactura,CodFurnizor, DenumireFurnizor, AdresaFurnizor)
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
12/831 - Prof.dr. Bogdan IONESCU
Procesul de normalizare : ANOMALII
3)Anomalii la modificare: se refer la faptul c e dificil s se
modifice o realizare, dac ea se repet n mai multetupluri (dac un furnizor i schimb numele, atunci, acestatrebuie modificat n toate nregistrrile aferente facturiloremise de acel furnizor);
4)Anomalii la tergere : constau n faptul c anumiteinformaii ce se doresc a fi terse, fac parte dintr-untuplu ce conine i alte date care sunt utile ncontinuare (de exemplu, tergerea unei facturi din tabelaFurnizori-Facturi, conduce la eliminarea din baza de date a
furnizorului emitent).
Serie
facturNumar
factura
Data factur Codfurnizor
Denumire
furnizor
Adres furnizor
A01 1 01/01/2008 111 S.C. Alfa S.A. BucuretiA01 2 12/05/2008 112 S.C. Beta S.A. Braov
A01 3 15/05/2008 112 S.C. Beta S.A. Braov
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
13/831 - Prof.dr. Bogdan IONESCU
Exist o dependen funcional ntre 2 atribute atunci cndcunoscnd valoarea luat de ctre un atribut, se furnizeaz sistematicvaloarea pentru cellalt atribut : dependen simpl sau unic A -> B (B depinde funcional de A, dac la orice valoare a lui A
corespunde n orice moment o valoare unic a lui B) Exemple de dependene funcionale:
Cod Produs -> Denumire produs Cod Produs -> Pre de referin Numr Comand -> Dat Comand Numr Comand -> Cod Client -> Nume Client
-> Cod Fiscal
Dependena funcional : unicDependenelesunt legturi logice, ce se stabilesc ntre
cmpurile modelului relaional.
Dac un atribut sau un grup de atribute dintr-un tabel determinfuncional celelalte atribute ale tabelului, rezult c atributul saugrupul de atribute constituie cheia primar a tabelului
Tranzitivitate:Dac A -> B i B -> C, atunci
A ->C
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
14/83
1 - Prof.dr. Bogdan IONESCU
Dependena multipl: exist o dependen multipl de laAla B (A B) atunci cnd o valoare a luiA determin maimulte valori ale lui B; Exemple de dependene funcionale multiple:
SerieFactur CodProdus DataFactur NumarFactur
Dependena funcional : multipl
Dac ntre dou atribute A i B exist o dependen multivaloare(A B), atunci ntre A i B exist i o dependen multipl (AB).
Dependena dubl (tripl): se identific o dependen dubl(tripl) acele dependene dintre un lan de atribute; Exemple de dependene funcionale triple:
SerieFactur CodProdus DenumireProdus
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
15/83
1 - Prof.dr. Bogdan IONESCU
Se numete dependen funcional complet
(elementar, total, deplin), o dependenfuncional de forma A B n care B estedependent funcional de A, fr s fie dependentfuncional de nici una din componentele lui A.
Dependena funcional complet
(NrFactur, CodProdus) Cantitate NrFactur Cantitate CodProdus Cantitate
ntre grupul de atribute (NrFactur, CodProdus) iCantitate exist o dependen funcional complet,deoarece cmpul Cantitate depinde funcional doar de(NrFactur, CodProdus) fr s depind funcional deNrFactur sau de CodProdus.
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
16/83
1 - Prof.dr. Bogdan IONESCU
O dependen funcional A B se numete
dependen funcional parialdac i numaidac B este dependent funcional att de A ct ide o parte a lui A.
Dependena funcional partial
(NrFactur, CodProdus) CodFurnizor NrFactur CodFurnizor CodProdus CodFurnizor
ntre CodProdus i CodFurnizor nu este o dependenfuncional, deoarece un produs poate fi livrat de mai mulifurnizori.
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
17/83
1 - Prof.dr. Bogdan IONESCU
Reprezentarea grafic a dependenelor funcionale
Normalizarea Bazelor de Date:Diagrama dependenelor funcionale
Cod Produs Denumire, UM, Pre de referin
NrComandCod Produs
Dat comand, Cantitatecomandat
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
18/83
1 - Prof.dr. Bogdan IONESCU
Dependene Inter-Tabele (1-1) Cnd la o valoare a atributului Cheie primar dintr-o tabel, se
asociaz o singur valoare a atributului Cheie primar dintr-o alttabel, se poate spune c exist o dependen funcional ntretabele, exprimat prin dependena funcional dintre atributelechei primare aferente celor dou tabele
Normalizarea Bazelor de Date:Dependene Inter-Tabele i Multivaloare
CodProfesor NumeProfesor
Dependene Multivaloare (1-n) (n-m) n cazul n care la o valoare a atributului Cheie primar dintr-o
tabel, corespund mai multe valori ale altui atribut dintr-o alttabel, se poate spune c exist o dependen funcionalmultivaloare
Nr.factur Cod Produs
CodProfersor Cod Carte
l l d
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
19/83
1 - Prof.dr. Bogdan IONESCU
n relaia
Lucreaz(CodSectie, NumarInventarMijlocFix,MarcaAngajat)
exist dependene multivaloare, deoarece: ntr-o secie lucreaz mai muli muncitori, la mai multe
utilaje (mijloace fixe). Dac fiecare muncitor lucreaz la toate mijlocele fixe,
atunci exist urmtoarele dependene multivaloare: CodSectie NumarInventarMijlocFix CodSectie MarcaAngajat Deci, dac exist tuplurile (Sectia1, MijFix1, 001) i
(Sectia1, MijFix2, 002), atunci vor exista i tuplurile(Sectia1, MijFix1, 002) i (Sectia1, MijFix2, 001).
Normalizarea Bazelor de Date:Dependene Multivaloare
N li B l d D
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
20/83
1 - Prof.dr. Bogdan IONESCU
Dicionar de date i Reguli degestiune Potrivit regulilor de gestiune coroborate
cu analiza informaional referitoare laaplicaia de informatizat se declar ntr-untablou toate atributele disponibile(Identificatorul + Denumirea n clar)
Normalizarea Bazelor de Date :Formele normale 1, 2, 3
DD+RG
1FN2FN
3FN
1 FN O relaie R este n 1FN atunci cnd atributele sale nu pot fi
descompuse n uniti mai mici 2 FN
O relaie R este n 2FN, dac este n 1FN i toate dependenelentre cheia primar a lui R i celelalte atribute a lui R suntelementare (atributele nu depind de o parte din cheie)
3 FN O relaie R este n 3FN, dac este n 2FN i dac sunt eliminate
toate dependenele funcionale tranzitive (dac nu exist nici odependen funcional ntre atributele non-cheie)
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
21/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :1 FN
O relaie R este n 1FN dac toateatributele sale conin numai valori(realizri) atomice (elementare sauindivizibile); n general, o valoare este considerat elementar,
atunci cnd descompunerea ei nu mai prezintinteres pentru utilizatorii finali.
Fiecare relaie trebuie s conin un identificatorcare s o caracterizeze de o manier unic
O relaie R este n 1FN dac conine valorinerepetitive. n acest sens, o list de valori
repetitive trebuie nlocuit cu un singuratribut. Atributele descompuse trebuie s fie
stabile n timp (de exemplu, este preferabila se utiliza data naterii, dect vrsta).
DD+RG
1FN
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
22/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date : DD+RG1FN
Persoana(CNP, Nume, Domiciliu) nu respectFN1, dac sedorete dezvoltarea unui sistem informatic n care s seurmreasc evidena persoanelor n funcie delocalitate, strad etc.
CNP Nume Domiciliu
1621018400230 Ionescu Ion Bucuresti, str. Stefan cel Mare,nr.2
2650305503507 Popescu Mirela Ploiesti, str. Viitorului, nr.4
N li B l d D t
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
23/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :
Pentru aducerea relaiei n 1FN
atributele compuse suntnlocuite cu atributeelementare
DD+RG
1FN
Persoana(CNP, Nume, Localitate, AdresaDomiciliu)
Persoana(CNP, Nume, Domiciliu)
Persoana(CNP, Nume, Localitate, Strada, ..)
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
24/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date : 1 FN
De asemenea, FN1 excludeapariia atributelor sau grupurilorde atribute repetitive n cadrul uneirelaii.
DD+RG
1FN
De exemplu, relaia :Comenzi(NumrComand, Data, Material1, Material2)nu respect FN1, deoarece conine atribute repetitive.
Numar
ComandData Material1 Material2
11 01/01/2008 Ciment Var
12 02/01/2008 Ciment Balastru
13 02/01/2008 Var Nisip
N li B l d D t
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
25/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :Pentru aducerea relaiei n FN1,
se parcurg urmtoarele etape: Pentru grupul de atribute
repetitive, se formeaz o altrelaie
Cheia primar din nouarelaie, va
fi n vechearelaie, cheie extern.
DD+RG
1FN
Comand(NumrComanda, Data, CodMaterial)
Comenzi(NumrComanda, Data, Material1, Material2)
Materiale (CodMaterial, DenumireMaterial)
2 FN N li B l d D t
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
26/83
1 - Prof.dr. Bogdan IONESCU
2 FN
O relaie R este n 2FN, dac este n 1FN idac orice atribut noncheiese afl ndependen funcional complet fa de cheia
primar a relaiei. FN2 interzice existena dependenelor
funcionale parialentre atributele cu rol decheie primar i celelalte atribute
Normalizarea Bazelor de Date : DD+RG1FN2FN
Relaia PieseComandate(NumrComand, CodPies,Cantitate, PreUnitar, DenumirePies)nu se afl n FN2 pentru c ntre (NumrComand,
CodPies)i DenumirePiesexist o dependenparial:
(NumrComand, CodPies) DenumirePiesCodPies DenumirePiesNumr
ComandCodPies Cantitate Pret
Unitar
Denumire
Pies
1 01 100 20 P1
1 02 150 25 P2
2 01 200 20 P1
N li B l d D t
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
27/83
1 - Prof.dr. Bogdan IONESCU
2 FN : Relaia PieseComandateprezinturmtoarele anomalii:
Redundapentru cmpurile care depind
parial de cheia primar. Realizrile cmpuluiDenumirePies, se repet inutil
Anomalii la adugare: nu se pot aduga piesedac nu s-au fcut comenzi pentru acestea
Anomalii la modificare: dac se modificdenumirea unei piese, atunci trebuie modificatetoate nregistrrile care conin denumireapiesei respective
Anomalii la tergere: tergerea unei comenzipoate conduce la tergerea definitiv a unor
piese
Normalizarea Bazelor de Date : DD+RG1FN2FN
NumrComand
CodPies Cantitate PretUnitar
Denumire
Pies
1 01 100 20 P1
1 02 150 25 P2
2 01 200 20 P1
N li B l d D t
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
28/83
1 - Prof.dr. Bogdan IONESCU
2 FN : Pentru aducerea relaiilor din FN1 n FN2, se parcurgurmtoarele etape:
Se identific eventualele dependene funcionalepariale Fiecare dependen funcional parial va genera
cte o relaie nou. Relaia nou format va aveaca structur atributele participante n dependenafuncional parial.
Atributele determinante devin chei externe nrelaiile iniiale i chei primare n relaiile nouformate
Normalizarea Bazelor de Date : DD+RG1FN2FN
PieseComandate(NumrComand, CodPies, Cantitate)
PieseComandate(NumrComand, CodPies,Cantitate, PreUnitar, DenumirePies)
Piese(CodPies, DenumirePies, PreUnitar)
N li B l d D t
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
29/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :3 FN O relaie verific FN3 dac se afl n
FN2 i dac toate atributele
noncheie sunt dependentefuncional netranzitiv de cheiaprimar a relaiei(toate atributelecare nu aparin cheii primare s nudepind funcional de un alt atribut.
DD+RG
1FN2FN
3FN
De exemplu, relaia :Comand(NumrComand, Data, CodClient,
DenumireClient) nu respect FN3, pentru c ntreNumrComandi DenumireClientexist o dependen
funcional tranzitiv:
NumrComand Data CodClient DenumireClient
1 01/01/2009 01 Ionescu
2 02/01/2009 02 Popescu
3 03/02/2009 02 Popescu
No m li e B elo de D te
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
30/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :O relaie care nu respect FN3 prezint
urmtoarele anomalii:
Redundan pentru atributele determinatefuncional tranzitiv Anomalii la adugare: nu se pot aduga clieni
care nu au ntocmit comenzi
Anomalii la modificare: dac un client i
schimb denumirea, atunci trebuie modificatetoate nregistrrile n care apare aceadenumire de client
Anomalii la tergere: tergerea unei comenzipoate conduce la tergerea definitiv a
clientului din relaie
DD+RG
1FN2FN
3FN
NumrComand Data CodClient DenumireClient
1 01/01/2009 01 Ionescu
2 02/01/2009 02 Popescu
3 03/02/2009 02 Popescu
Normalizarea Bazelor de Date :
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
31/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :Pentru aducerea unei relaii din FN2 n FN3: Se identific eventualele dependene
funcionale tranzitive Determinantul noncheiempreun cu
atributul sau atributele determinatefuncional de ctre acesta, vor forma o nourelaie
Determinantul noncheie devine cheieprimar n relaia nou format i cheieextern n relaia iniial
DD+RG
1FN2FN
3FN
Comand(NumrComand, Data, CodClient)
Comand(NumrComand, Data, CodClient, DenumireClient)
Client(CodClient, DenumireClient)
Normalizarea Bazelor de Date :
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
32/83
Boyce-Codd O relaie R este n forma BC dac este n
3FN i toate atributele non-cheie nugenereaz dependene funcionale
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :Forma normala BC
3FN
Boyce-Codd
FNBC trateaz toate dependenele funcionale noncheie, ea fiind
de fapt o generalizare a FN2 i FN3.Condiii: Exist mai multe chei candidate ntr-o relaie; O parte din cheile candidate sunt compuse;
Cheile candidate compuse au atribute n comun.
Normalizarea Bazelor de Date
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
33/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de DateRelaiaStudent(NrMatricol, CodFacultate, Specializare) nu respect FNBC.
Dac se presupune c un student nu se poate nscrie la mai multe specializrin cadrul aceleiai faculti, dar se poate nscrie la mai multe faculti, iarnumrul matricol este stabilit independent n cadrul fiecrei faculti, relaiadispune de dou chei candidate:
(NrMatricol, CodFacultate)
Specializare(NrMatricol, Specializare) CodFacultateDe asemenea mai exist i dependena Specializare CodFacultate, n careSpecializare nu este cheie candidat (o specializare exist la o singurfacultate).
NrMatricol CodFacultate Specializare
010 CIG Specializare1Cig011 CIG Specializare2Cig
... ... ...
011 FAB Specializare1Fab
012 FAB Specializare1Fab
013 FAB Specializare2Fab... ... ...
Normalizarea Bazelor de Date
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
34/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de DatePentru aducerea unei relaii n FNBC, se parcurg urmtoarele
etape:
Se identific cheile candidate din cadrul relaiei Se identific determinanii care nu sunt chei candidate Fiecare determinant identificat la pasul 2 mpreun cu
atributul determinat, va genera o nou relaie unde va ficheie primar. n vechea relaie, acesta va deveni i cheie
extern.Parcurgnd aceste etape, relaia Studentva deveni:
Specializari(Specializare, CodFacultate)
Student(NrMatricol, CodFacultate, Specializare)
Student(NrMatricol, Specializare)
Normalizarea Bazelor de Date :
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
35/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :Forma normala 4
3FN
Boyce-Codd
4FN4 FN
O relaie R este n 4FN, dac este nforma BC i dac nu existdependene funcionale multivaloareelementaren aceeai relaie (unice)
Exemplu: o carte e scris de mai muli autori i fiecare autor scriela toate capitolele. Adic, exist toate combinaiile posibile ntreCodAutor i NrCapitol.Ca urmare, n relaia Carte(CodCarte, CodAutor, NrCapitol) existurmtoarele dependene multivaloare:
CodCarte CodAutor/NrCapitol CodCarte CodAutor NrCapitol111 Ionescu 1111 Popescu 2
111 Ionescu 2
111 Popescu 1
... ... ...
Normalizarea Bazelor de Date :
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
36/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :Forma normala 4
3FN
Boyce-Codd
4FN
Pentru aducerea unei relaii n FN4: Se identific dependenele multivaloare Determinantul dependenei (X) va formacte o relaie cu fiecare atribut determinat (Y i Z)
n relaiile nou formate cheile primare vor fi compuse dindeterminant i atributul determinat
CarteCapitol(CodCarte, NrCapitol)
Carte(CodCarte, CodAutor, NrCapitol)
CarteAutor(CodCarte, CodAutor)
Normalizarea Bazelor de Date :
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
37/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :Forma normala 5
3FN
Boyce-Codd
4FN
5FN
5 FN O relaie R este n 5FN, dac este n 4FN
i trateaz cazurile n care exist maimulte dependene funcionalemultivaloare care sunt interlegate ntreele
De exemplu, fie relaia :Aprovizionare(Factura, Material, Gestiune).n aceast relaie se manifest dependene multivaloare
interlegate (FacturaMaterial, MaterialGestiune, FacturaGestiune),dac sunt ndeplinite condiiile:F1 conine M1M1 se depoziteaz n G1F1nsoete materialul n G1Atunci, F1 conine M1 care va fi depozitat n G1.
Factura Material Gestiune
F1 M1 G2
F2 M2 G1
F1 M2 G1
F1 M1 G1
F3 M3 G2
Normalizarea Bazelor de Date :
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
38/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date :Forma normala 5
3FN
Boyce-Codd
4FN
5FN
Etape FN5: Se identific dependenele interlegate Fiecare dependen interlegata sedescompune conform proieciilor sale(XYZ = XY * YZ * XZ)
Pentru fiecare relaie, cheia primar va fiformat din atributele componente.
Aprovizionare(Factura, Material, Gestiune)
FacturaMaterial(Factura, Material)
MaterialGestiune(Material, Gestiune)
FacturaGestiune(Factura, Gestiune)
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
39/83
1 - Prof.dr. Bogdan IONESCU
Formalizarea procesului de normalizare esteoperaional prin Matricea Dependenelor Funcionale: MDF are pe linie toate atributele dicionarului de date
MDF are pe coloan toate atributele sau numai atributelecare pot avea rol de cheie primar Se noteaz 1 la intersecia liniei cu coloana pentru care
exist dependen funcional
Se noteaz cuM dependena multipl Se noteaz 1T dependenele funcionale tranzitive
Liniile care NU AU 1 desemneaz fie atribute care nu suntdependente funcional de un identificator simplu, fie desemneazatribute parametru
Normalizarea Bazelor de Date:Matricea Dependenelor Funcionale
Normalizarea Bazelor de Date:
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
40/83
1 - Prof.dr. Bogdan IONESCU
Inventarierea atributelor (se vor selecta toate atributele referitoare lafacturile primite) Numr factur Dat factur Cod furnizor
Denumire furnizor Adresa, etc.
Normalizarea Bazelor de Date:Etapele procesului de NORMALIZARE
Se specific regulile de gestiune i algoritmii de calcul asociai (se vorspecifica diversele restricii i condiii impuse datelor) O factur este emis de un singur furnizor Codul materialului este unic O factur conine mai multe produse aprovizionate Furnizorii pot fi numai persoane juridice
Algoritmii de calcul: (Val_mat_fact=Cant_facturat*Pre_unitar)
Normalizarea Bazelor de Date:
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
41/83
1 - Prof.dr. Bogdan IONESCU
Se ntocmete dicionarul datelor
Un atribut poate fi nscris o singur dat n dicionar Se elimin atributele sinonime (de ex. Cod furnizor = Simbol
furnizor)
Dicionarul datelor nu admite atribute derivate sau calculate
(Valoare, TVA)
Normalizarea Bazelor de Date:Etapele procesului de NORMALIZARE
Nr.crt Atribut n clar1 CodFz Cod Furnizor
2 DenFz Denumire Furnizor3 AdrFz Adres Furnizor4 NrFact Numr Factur
5 DataFact Dat Factur
Normalizarea Bazelor de Date:
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
42/83
1 - Prof.dr. Bogdan IONESCU
Se stabilesc dependenele funcionalentre atribute prin
MDF Toate atributele sau grupurile de atribute determinante,
devin CHEI CANDIDATE (posibile chei ale relaiei). Cheilecandidate aparinnd aceleiai relaii sunt caracterizate prindependene funcionale reciproce.
Se stabilesc CHEILE PRIMAREdintre cheile candidate
Normalizarea Bazelor de Date:Etapele procesului de NORMALIZARE
CodFz DenFz AdrFz NrFact DataFactCodFz NU 1 1
DenFz NUAdrFz NUNrFact 1 1T 1T NU 1
DataFact NU
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
43/83
1 - Prof.dr. Bogdan IONESCU
Sau se stabilesc dependenele funcionale ntre atribute prin DDF
Normalizarea Bazelor de Date:Etapele procesului de NORMALIZARE
Numr Factur Dat Factur
Cod Furnizor
Denumire Furnizor
Adres Furnizor
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
44/83
1 - Prof.dr. Bogdan IONESCU
Pentru atributele izolate se vor cuta grupuri deatribute ce pot constitui determinani ai acestora. Sevor cuta mai nti grupuri de chei primare, apoigrupuri de atribute non-cheie, iar n final, dac va ficazul, se vor aduga chei surogat.
Cu fiecare cheie primar i cu atributele determinate
direct (fr tranzitivitate) se formeaz o nou relaie. Se stabilesc CHEILE EXTERNE
Normalizarea Bazelor de Date:Etapele procesului de NORMALIZARE
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
45/83
1 - Prof.dr. Bogdan IONESCU
Dacntre doucheiprimare existo dependenmultipl (reciproc), atunci, aceast dependenvagenerao relaie.
Cheia primaraacestei relaiivafi formatdincele douatribute,care,individualvoravea iroldecheiexterne(inalterealtii).
Normalizarea Bazelor de Date:Etapele procesului de NORMALIZARE
FURNIZOR(CodFz, DenFz, AdrFz)
FACTUR(NrFact, DataFact, CodFz)
Normalizarea Bazelor de Date:
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
46/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date:EXEMPLUL II: Evidena facturilor emise
CLIENTI
PRODUSE
FACTURINrFact,
DataFact
CodCli,Nume,
Adresa,Tel
CodProd,DenProd,
CantFact,Pret
Normalizarea Bazelor de Date:
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
47/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date:EXEMPLUL II: Evidena facturilor emise
NrFact, DataFact, CodCli, Nume, Telefon,Adresa,CodProd, DenProd, CantFact, Pret
FN1Descompunerea atributelor compuse ale
dicionarului de date n atribute simplePrecizarea identificatorului.
Dicionarul datelor
(NrFact, DataFact,CodCli, Nume, Telefon,Adresa, Localitate, CodPostal,CodProd, DenProd, CantFact, PretRef, PretFact)
Normalizarea Bazelor de Date:
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
48/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date:EXEMPLUL II: Evidena facturilor emise
FN2Fiecare atribut non-cheie s
depind de ntreaga cheie
primar (dependeneelementare).
CLIENTI
FACTURAT
FACTURI
PRODUSE
FACTURAT(NrFact, CodProd, CantFact, PretFact)
PRODUSE(CodProd, DenProd, PretRef)
FACTURI(NrFact, DataFact, CodCli)
CLIENTI (CodCli, Nume,Telefon, Adresa, CodPostal,
Localitate)
Normalizarea Bazelor de Date:
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
49/83
1 - Prof.dr. Bogdan IONESCU
Normalizarea Bazelor de Date:EXEMPLUL II: Evidena facturilor emise
FN3Eliminarea dependenelor tranzitive
CLIENT (CodCli, Nume, Telefon, Fax, Adresa, CodPostal)
FACTURA(NrFact, DataFact, CodCli)PRODUS(CodProd, DenProd, PretRef)FACTURAT(NrFact, CodProd, CantFact, PretFact)LOCALIZARE(CodPostal, Localitate)
EXEMPLUL III: Enun + RG
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
50/83
1 - Prof.dr. Bogdan IONESCU
EXEMPLUL III: Enun + RGO editur dorete informatizarea activitii legate de evidenastocurilordecarteproduse,aautorilor iafacturilor ctre clieni.
Regulidegestiune:a. Editura produce mai multe crianual;b. O carte primeteun Cod ISBN la fiecare retiprire;c. Crilesunt scrise de ctreautori. Un autor poate scrie mai
multe cri;d. Clieniiediturii sunt numai persoane juridice;e. O factur coninecel puino carte io carte poate figura pe
mai multe facturi;f. Preulde vnzare se stabileten momentul producerii unei
cri,acesta fiind un pre orientativ, rmnnd neschimbatpn la epuizarea tirajului, preul efectiv de vnzare fiind
negociat cu fiecare client;-
EXEMPLUL III D.A.
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
51/83
1 - Prof.dr. Bogdan IONESCU
EXEMPLUL III D.A.1 Cod ISBN
2 Denumire carte
3 Data apariiei
4 Stocul tiprit
5 Preul debaz
7 Numr factur
8 Data factur
9 Cantitatea facturat
10 Denumire Carte facturat
11 Pret Carte factur
12 Valoare Carte factur
13 Total factur
14 Cod Fiscal Client
15 Denumire Client
16 Adresa client
17 Telefon
18 CNP autor
19 Nume Prenume
20 Data naterii
21 Adresa autor
Din studiul activitii
editurii au rezultaturmtoarele atribute:
Se elimin atributelesinonime i calculate
CRICod ISBN
.........
AUTORICNP autor
.........
CLIENICF client
.........
FACTURINr Factur
.........
?
?
EXEMPLUL III D.A.CRI
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
52/83
1 - Prof.dr. Bogdan IONESCU
EXEMPLUL III D.A.
FACTURINr Factur
.........
?
CRICod ISBN
.........
CONINUT FACTURNr Factur, Cod ISBN
.........
CRICod ISBN
.........
FACTURINr Factur
.........
EXEMPLUL III D.A.
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
53/83
1 - Prof.dr. Bogdan IONESCU
EXEMPLUL III D.A.
CRI
Cod ISBN.........
AUTORI
CNP autor.........
?
AUTORI CRTICod ISBN, CNP autor
CRICod ISBN
.........
AUTORICNP autor
.........
ura l r
Matricea dependentelor functionale
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
54/83
1 - Prof.dr. Bogdan IONESCU
CodISBN
enum
re
carte
Data
aparitiei
Stocul
tiparit
Pretde
baza
Numar
factura
Datafactu
Cantitate
facturata
Pretcarte
factura
Codfiscal
client
Denumire
client
Adresa
client
Telefon
CNPautor
Nume
prenume
Data
nasterii
Adresa
autor
Cod ISBN 1 1 1 1
Den. carte
Data aparitieiStocul tiparit
Pret de baza
Numar factura 1 1 1T
1T
1T
Data factura
Cantitate
facturata
Pret cartefactura
Cod fiscal
client 1 1 1
Denumire
client 1 1 1
Adresa client
Telefon
CNP autor 1 1 1
Nume prenume
Data nasterii
Adresa autor
Cod ISBN +
Numar factura 1T
1T
1T
1T
1T
1 1 1T
1T
1T
1T
CNP +
Cod ISBN
ura l r
Matricea dependentelor functionale
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
55/83
1 - Prof.dr. Bogdan IONESCU
CodISBN
Denumire
carte
Data
aparitiei
Stocul
tiparit
Pretde
baza
Numar
factura
Datafactu
Cantitate
facturata
Pretcarte
factura
Codfiscal
client
Denumire
client
Adresa
client
Telefon
CNPautor
Nume
prenume
Data
nasterii
Adresa
autor
Cod ISBN 1 1 1 1
Numar factura 1 1 1T
1T
1T
Cantitatefacturata
Pret carte
factura
Cod fiscal client 1 1 1
CNP autor 1 1 1
Cod ISBN +
Numar factura 1
T
1
T
1
T
1
T
1
T
1 1 1
T
1
T
1
T
1
T
CNP +
Cod ISBN
Se observ din matrice, c PretCarteFactura i CantitateFacturatsunt atribute
izolate i c nu exist un grup de chei primare sau grup de atribute noncheie care
s le determine funcional.
Astfel, se identific grupul de atribute SerieFactur, NumarFactura siCodISBN,vor determina funcional cele dou cmpuri izolate. Noua tabela va fiContinutFactura
(NumarFactura, SerieFactura, CodISBN) CantitateFacturat(NumarFactura, SerieFactur, CodISBN) PretCarteFactura
A
UTORI
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
56/83
1 - Prof.dr. Bogdan IONESCU
CRINume camp Tip date Obligatoriu Unic Integritate
ReferentialaReguli devalidare
Cod ISBN Text,13,M
Da Da
Denumire carte Text, 50 Da
Data aparitiei Date/Time Da 0
Pret baza Currency Da >0
Nume camp Tip date Obligatoriu Unic IntegritateReferentiala
Reguli de
validare
CNP Number,LI Da Da
Nume prenume Text, 50 Da
Adresa Text, 100 Da
Data nasterii Date/Time Da
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
57/83
1 - Prof.dr. Bogdan IONESCU
Nume camp Tip date Obligatoriu Unic IntegritateReferentiala
Reguli de validare
Serie factura Text,5,M Da Da
Numar factura Number, LI Da
Cod Fiscal Number , LI Da Da
CONINUT FACTURNume camp Tip date Obligatoriu Unic Integritate
Referentiala
Reguli de validare
Serie factura Text,5,M Da Da Da
Numar factura Number, LI Da Da
Cod ISBN Text, 13,M Da Da
Cantitate fact Number, Int Da >0
Pret factura Currency Da >0
CLIENINume camp Tip date Obligatoriu Unic Integritate
Referentiala
Reguli de validare
Cod fiscal Number, LI Da Da
Denumire client Text,50 Da Da
Adresa Text,100 DaTelefon Text,20
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
58/83
1 - Prof.dr. Bogdan IONESCU
MRD mbuntit prin adugarea de noi reguli de gestiune
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
59/83
MRD mbuntit prin adugarea de noi reguli de gestiune
APROVIZIONAREA
Editura comand tirajul fiecrei apariii editoriale ce urmeaz a fi tiprit
la o tipografie (ce are in acest exemplu calitatea de FURNIZOR).
Aceasta livreaza carti editurii, care atunci cnd le recepioneaz
ntocmete Nota de Recepie i Constatare de Diferene (NRCD).
FURNIZORI(CodFiscalFz, DenumireFurnizor, Adresa, Localitate, ..)
NRCD(Nr.NRCD, CodFiscalFz, DataAproviz, MijlocTransport, etc)
CARTI_APROVIZIONATE(Nr.NRCD, Cod_ISBN, CantitateIntrata,
PretAprovizionareFaraTVA, PretAprovizionareCuTVA se calculeaz in
tabela)
CARTI(Cod_ISBN, .)1 - Prof.dr. Bogdan IONESCU
MRD mbuntit prin adugarea de noi reguli de gestiune
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
60/83
MRD mbuntit prin adugarea de noi reguli de gestiune
GENURI, COLECTII si DOMENII
Editura are ca obiect de activitate editarea de carti si manualeuniversitare. Crile editate suntmprite pe tipuri sau genuri
(manual, culegere, carte specialitate, etc.). Aceste tipuri sunt utile
editurii, la acreditari si in relaiile cu Biblioteca Naional.
Cartile apartin unor colectii tematice (InfoBD, InfoProg, ContaGen), iarcolectiile apartin unui domeniu tiinific (sau de interes didactic), cum
ar fi : Analiza economica, Audit, Contabilitate, Informatica, Finante,
Management, Marketing, etc.
GENURI (CodGenLiterar, NumeGenLiterar)
COLECTII (CodColectie, Nume Colectie, Cod Domeniu)
DOMENII (Cod Domeniu, Nume Domeniu)
CARTI(Cod_ISBN, .., CodGenLiterar, CodColectie)1 - Prof.dr. Bogdan IONESCU
MRD mbuntit prin adugarea de noi reguli de gestiune
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
61/83
MRD mbuntit prin adugarea de noi reguli de gestiune
COORDONATORI
Cartile pot avea unul sau mai multi coordonatori.Coordonatorii reprezinta autorii unei aparitii editoriale in raporturile
juridice cu editura. Coordonatorii pot fi sau nu, autori.
COORDONATORI(CNPCoordonator, NumeCoordonator, Adresa,
Localitate, Afiliere, etc)
COORDONATORI_CARTI(Cod_ISBN, CNPCoordonator)
CARTI(Cod_ISBN, .)
1 - Prof.dr. Bogdan IONESCU
CONTRIBUTIA AUTORILOR LA OPERA (I)
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
62/83
( )
Cartile au mai multe capitole si sectiuni. Se defineste o sectiune ca fiind
un interval de pagini ce constituie o contributie cuantificabila a unui
autor. Un capitol poate avea mai multe sectiuni. Un autor poate scrieintervale de pagini in cadrul unuia sau a mai multe capitole. Numarul de
pagini scrise reprezint procent din opera si este important pentru
calculul drepturilor de autor.
Problema cuantificarii contributiei ar fi urmatoarea :
a) fiecare autor are o contributie totala intr-o carte sub forma unui
numar total de pagini, care reprezinta procent din opera
AUTORI(CNP Autor, ..)
CONTRIBUTIE_AUTORI(Cod_ISBN, CNP Autor, Nr.PaginiContributie)
CARTI(Cod_ISBN, .)1 - Prof.dr. Bogdan IONESCU
CONTRIBUTIA AUTORILOR LA OPERA (II)
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
63/83
( )
b) Fiecare autor isi identific contributia sub forma unui interval depagini, fie la nivel de capitol (ar mai interveni inca o tabela si ar fi de
exemplu : cap IV Ionescu pag 45-56; 73-80; Stanciu pag 23-37, etc), fie la
nivel de opera.
AUTORI(CNP Autor, ..)CARTI(Cod_ISBN, .)
CAPITOL_CARTE(NrCapitol, NumeCapitol, Pag.Inceput, Pag.Sfarsit,
Cod_ISBN)
SECTIUNI_AUTORI(Cod_Sectiune, Nr.Capitol, Cod_ISBN, CNP Autor,
Pag.Inceput, Pag.Sfarsit)
SECTIUNI(Cod_Sectiune, Nume_Sectiune)1 - Prof.dr. Bogdan IONESCU
MRD mbuntit prin adugarea de noi reguli de gestiune
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
64/83
MRD mbuntit prin adugarea de noi reguli de gestiune
DREPTURI AUTOR (I)
Fiecare apariie editoriala este purttoare de drepturi de autor.
Drepturile de autor sunt stabilite in forma procentuala din veniturile
nete inregistrate de carte la vanzarea sa (din pretul de vanzare, numit si
pretul de baza sau catalog se deduce comisionul vanzatorului).
CARTI(Cod_ISBN, ., ProcentDrepturiAutor,)
1 - Prof.dr. Bogdan IONESCU
DREPTURI AUTOR (II)
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
65/83
( )
Se abordeaz problema prin prisma CONTRACTULUI DE EDITARE. Acesta
ar specifica procentul drepturilor de autor si care este coordonatorul
lucrrii. Coordonatorul reprezint autorii intr-un contract de editare.Rmne de vzut dac se face asocierea dintre fiecare carte si fiecare
autor, prin tabela intermediara AUTORI_CARTI sau se abordeaz aceeai
problem prin Coordonator(i) carte care ii reprezint pe autori,
CARTI(Cod_ISBN, ., )
CONTRACT_EDITARE(Nr.ContractEditare, DataContractEditare, Tiraj
Total, Data primei aparitii, (ProcentDrepturiAutor) , Primul tiraj,
Cod_ISBN)
COORDONATORI_CARTI(Nr.ContractEditare (Cod_ISBN),
CNPCoordonator)
COORDONATORI(CNPCoordonator, NumeCoordonator, .)1 - Prof.dr. Bogdan IONESCU
FACTURAREA
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
66/83
Factura este unica la nivel de editura; O factura contine mai multe
carti livrate, iar o carte figureaz pe mai multe facturi; Cota de TVA
este marcata pe factura, deoarece din punctul de vedere al editurii,
continutul facturii este omogen, adica se vand numai carti.
Altfel, daca se schimb regula de gestiune si editura livreaza si altceva,
cu cote diferite de TVA, atunci se poate trece cota de TVA pe
CONTINUT FACTURA. Pe fiecare factura se marcheaz un delegat din
partea editurii
CLIENTI(CodFiscalClient, Nr_inreg.RC, )
FACTURI(NrFactura, DataFactura, DataScadentei, Cota_TVA,
CodFiscalClient, CNP_Delegat)
CONTINUT_FACTURA(NrFactura, Cod_ISBN, Cantitate,
Reducere_comerciala)
DELEGAT(CNP_Delegat, CI_serie, CI_numar, ..)
CARTI(Cod_ISBN, .)1 - Prof.dr. Bogdan IONESCU
INCASAREA
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
67/83
Pentru a evidentia platile facute de clienti pentru cartile primite, adica
incasarile editurii, putem aborda urmtoarea modelare :
CLIENTI(CodFiscalClient, Nr_inreg.RC, )
INCASARE_CLIENT(TipDoc.Incasare-Nr.Doc.Incasare, , CodFiscalClient)
Iar pentru faptul ca unii clienti platesc partial facturile, se asociaz
facturile cu incasarile.
FACTURA_INCASATA(NrFactura, TipDoc.Incasare-Nr.Doc.Incasare,
DataIncasarii, SumaIncasata)
FACTURI(NrFactura, DataFactura, DataScadentei, ..)1 - Prof.dr. Bogdan IONESCU
Algebra relaional
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
68/83
1 - Prof.dr. Bogdan IONESCU
g
Algebra relaional poate fi definit ca un set de operatori, care
prelucreaz relaii n scopul obinerii altorrelaii.Operatorii relaionali se mpart n :
operatori de asamblarereuniunea;
intersecia; diferena;produsul cartezian
operatori unari:
proiecia; seleciaoperatori de extensie:
compunerea;diviziunea
Algebra relaional: Operatori de Asamblare
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
69/83
1 - Prof.dr. Bogdan IONESCU
g p
Operatorii de asamblare sunt operatori binari, care
primesc la intrare dou relaii i genereaz la ieire osingur relaie.
Operatorii de asamblare sunt:
Reuniunea;Intersecia;Diferena;Produsul cartezian.
OperatoriBinari
Relaie3Relaie1
Relaie2
Algebra relaional: Operatori de Asamblare:
R
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
70/83
1 - Prof.dr. Bogdan IONESCU
g pReuniunea a dou relaii Ri S, cu aceeai structur, unde Reste format din ntupluri i S este format din mtupluri, are ca
rezultat o a treia relaie T, avnd aceeai structur cu a relaiilorsurs i coninnd m +ntupluri.
RelaiaR
A B C
a1 b1 c1
a2 b2 c2
RelaiaS
A B C
a3 b3 c3
a4 b4 c4
a5 b5 c5
Relaia T (Rreunit cu S)A B C
a1 b1 c1
a2 b2 c2
a3 b3 c3
a4 b4 c4
a5 b5 c5
Ex. Care sunt furnizori i care au
livrat cel puin unul dintre produsele A
i B= reuniunea furnizorilor care au
livrat A cu fz. care au livrat B
Algebra relaional: Operatori de Asamblare:
I
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
71/83
1 - Prof.dr. Bogdan IONESCU
g pIntersecia a dou relaiiRiS cu aceeai structur este o relaie T,(cu aceeai structur), coninnd tuplurile identice aparinnd att
lui Rct i lui S.
Relaia S
A B C
a3 b3 c3
a4 b4 c4
a5 b5 c5
Relaia T (Rintersectat cu S)
A B C
a4 b4 c4
RelaiaR
A B C
a1 b1 c1
a2 b2 c2
a4 b4 c4
Ex. Care sunt furnizori i care au
livrat i produsul A iprodusul B=
interseciatabelelor de furnizori care
au livrat A cu fz. care au livrat B
Ex. Care sunt zilele n
care au fost cumprate
autoturismele A i B
Algebra relaional: Operatori de Asamblare:
D
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
72/83
1 - Prof.dr. Bogdan IONESCU
g pDiferenaa dou relaiiRiSavnd aceeasi structur(R-S), esteo relaieT, cuprinznd mulimeatuplurilor aparinndluiRdar
neaparinndluiS.
RelaiaRA B C
a1 b1 c1
a2 b2 c2
RelaiaS
A B C
a3 b3 c3
a4 b4 c4
a5 b5 c5
RelaiaT R-S
A B C
a1 b1 c1
a2 b2 c2
Diferena nu este comutativ. Atributele relaiei diferen (T)sunt cele ale primei relaii (desczutul), iar tuplurile care suntextrase din relaia desczut, nu se regsesc n relaia scztor
Ex. Care sunt clienii
care au cumprat
produsul A, fr a-l
cumpra pe B
Algebra relaional: Operatori de Asamblare:
PC
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
73/83
1 - Prof.dr. Bogdan IONESCU
g pProdusul cartezian a dou relaiiR iS(RxS) este o relaie Tstocnd mulimea perechilor obinute prin concatenarea
nregistrrilor aparinndluiRcu cele aparinndluiS.
Relaia R
A B
a1 b1
a2 b2
Relaia S
C D E
c1 d1 e1
c2 d2 e2
c3 d3 e3
Relaia T RxSA B C D E
a1 b1 c1 d1 e1
a1 b1 c2 d2 e2
a1 b1 c3 d3 e3
a2 b2 c1 d1 e1
a2 b2 c2 d2 e2
a2 b2 c3 d3 e3
Algebra relaional: Operatori Unari
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
74/83
1 - Prof.dr. Bogdan IONESCU
g p
Operatorii unari se aplic asupra unei relaii i
genereaz o alt relaie.Operatorii unari opereaz prin restricii.
Operatorii unari permit decuparea unei relaii peorizontal:Selecia i pe vertical:Proiecia
Relaie1
OperatoriUnari
Relaie2
Algebra relaional: Operatori Unari:
Pr
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
75/83
1 - Prof.dr. Bogdan IONESCU
g pProiecia unei relaii R dup anumite atribute, este relaiaR1 custructura R1 (Ai1, Ai2, , Aip), ale crei tupluri se obin prin eliminarea
valorilor atributelor dinR care nu apar nR1 i prin suprimareatuplurilor identice (dubluri) .Altfel spus,prin intermediul proieciei, dintr-un tabel cu un anumitnumr de coloane se obine unul cu un numr mai mic de coloane
Relaia R
A B C D
a1 b1 c1 d1
a2 b2 c2 d2
a3 b3 c3 d3
R1(R;A,B)
Relaia R1
A B
a1 b1
a2 b2
a3 b2
Algebra relaional: Operatori Unari:
Sel
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
76/83
1 - Prof.dr. Bogdan IONESCU
g p
Altfel spus,prin operatorul de selecie, dintr-un tabel cu un anumitnumr de coloane se obine unul cu aceleai coloane, dar cu un numrmai mic de rnduri.
Selecia relaieiR fa de criteriulQ este relaiaR1 cu aceeai structurca i R, ale crei tupluri satisfac criteriul specificat.
Relaia R
A B
a1 b1
a2 b2
a3 b3
R1SELECTIE(R;A=a2ORA=a3) Relaia R1
A B
a2 b2
a3 b3
Selecia triaz dintr-otabel numai tuplur i le ce satisfac ocondiie precizat (pr intr -un predicat).
R2SELECTIE(R;A=a2AND B=b2)
Relaia R2
A B
a2 b2
Algebra relaional: Operatori de Extensie
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
77/83
1 - Prof.dr. Bogdan IONESCU
Operatorii de extensie joac un rol foarte important n
interogarea bazelor de date relaionale.
Operatorii de extensie sunt:
Compunerea (fuziunea / jonciunea);
Diviziunea.
Algebra relaional: Operatori de Extensie: Join
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
78/83
1 - Prof.dr. Bogdan IONESCU
Produsul cartezian era o fuziune necondiionat a dou tabele.COMPUNEREA reprezint fuziunea a dou relaii care au o proprietate
comun.Fie 2 relaii R1(A1, A2, ...., An) i R2(B1,B2,......Bm), care au 2 atribute(comune) Ai i Bj, definite pe acelai domeniu de valori, i ansambluloperatorilor de comparaie {=, >, =,
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
79/83
1 - Prof.dr. Bogdan IONESCU
Relaia R1
A B C
a1 b1 c1
COMPUNEREA este echivalent unui produs cartezian urmat deo selecie (i eventual de o proiecie).
Relaia R3R1R2A R1.B C R2.B D
a1 b1 c1 b1 d1
a1 b1 c1 b2 d2
a1 b1 c1 b3 d3Relaia R2
B D
b1 d1
b2 d2
b3 d3
R4=Selecie(R3, R1.B=R2.B)
A B C D
a1 b1 c1 d1
Algebra relaional: Operatori de Extensie: Join
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
80/83
1 - Prof.dr. Bogdan IONESCU
Cele 3 tipuri de jonciuni prezentate (theta, echi, natural) sunt denatur intern i prezint 2 extensii:
Compunerea extern;Semicompunerea
Compunerea extern include n tabela rezultat i tupluri din una
dintre relaii, sau din ambele relaii, care prezint valori ale atributuluide legtur ce nu se regsesc n cealalt relaie
n cazul compunerii externe trebuie s se precizeze din care relaie se vorprelua tuplurile fr corespondent n cealalt relaie. Din acest punct de
vedere exist:compunere extern la stnga (left outer join)compunere extern la dreapta (right outer join)
compunere extern total (reuniunea celor 2 relaii)
Algebra relaional: Operatori de Extensie: Join
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
81/83
1 - Prof.dr. Bogdan IONESCU
R3(R1,R1.C=R2.C,R2)
A B R1.C R2.C D E
a1 b1 c1 c1 d1 e1a3 b3 c3 c3 d2 e2
R1
A B C
a1 b1 c1
a2 b2 c2
a3 b3 c3
R2
C D E
c1 d1 e1
c3 d2 e2
c5 d3 e3 A B R1.C R2.C D E
a1 b1 c1 c1 d1 e1a2 b2 c2 Null Null Null
a3 b3 c3 c3 d2 e2
Right Outer JOIN A B R1.C R2.C D E
a1 b1 c1 c1 d1 e1
Null Null Null c5 d3 e3
a3 b3 c3 c3 d2 e2Compunere total
Left Outer JOIN
Algebra relaional: Operatori de Extensie: Join
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
82/83
1 - Prof.dr. Bogdan IONESCU
Semicompunerea a 2 tabele presupune selectarea tuplurilor din
prima tabel care apar n jonciune cu tuplurile din a doua tabel
R1
A B C
a1 b1 c1
a2 b2 c2
a3 b3 c3
R2
C D E
c1 d1 e1
c3 d2 e2
c5 d3 e3
SemiCompunere
R3(R1,R1.C=R2.C,R2)
A B R1.C R2.C D E
a1 b1 c1 c1 c1 d1
a3 b3 c3 c3 d2 e2
A B C
a1 b1 c1
a3 b3 c3
Algebra relaional: Operatori de Extensie: Div
-
7/22/2019 f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date
83/83
Diviziunea relaiei R1prin relaia R
2este relaia R3format
din toate tuplurile care, concatenate cu fiecare tuplu din R2,
returneaz ntotdeauna un tuplu din R1(R3= R1 R2).
R1
A B
a1 b1
a2 b1
a3 b1
a1 b2
a3 b2
a4 b2a1 b3
a3 b3
a5 b3
a1 b4
a3 b4a4 b4
a1 b5
a2 b5
/
R2
B
b1
b2
b3
b4
b5
R3A
a1
a3
Care dintre valorilea1, a2, a3, a4 i a5apar n relaia R1, ntupluri, mpreun cutoate valorile
atributului B(mpritor) din R2,respectiv b1, b2, b3,b4 b5 ?
R1
A B
a1 b1
a2 b1
a3 b1
a1 b2
a3 b2
a4 b2a1 b3
a3 b3
a5 b3
a1 b4
a3 b4a4 b4
a1 b5
a2 b5
R3A
a1
a3