f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date

download f993-1_FABBV an 2 - Curs 1-3 BD-Normalizarea Bazelor de Date

of 83

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