Download - Cap3 ProiectareLogicaBD IE

Transcript
  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    1/34

    An army of sheep led by a lion would defeat

    an army of lions led by a sheep.

    Arab Proverb

    Information necessitating a change of design will be conveyed to the

    designer after and only after the design is complete.(Often called the 'Now They Tell s' !aw"

    #yfe's #irst !aw of $evision

    %The difference between theory and practice is that in theory& there is no

    difference between theory and practice& but in practice& there is.

    an van de )neptscheut 

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    2/34

    Proiectarea logic* a ba+elor

    de date

    ,apitolul III

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    3/34

    -. !ocul model*rii logice a datelor n ,/)

    Aplicarea principiului abstracti+arii in modelarea datelor

     Nivelul conceptual al datelor 

    (modelul entitate-relatie)

     Nivelul logic al datelor 

    (modelul relational pur)

     Nivelul fizic al datelor 

    (modelul fizic al datelor)

    Cerintele functionale ale sistemului

    Regulile modelului

    relational Cerintele de calitate(flexibilitate, stabilitate)

    Cerintele nefunctionale

    si de performanta Facilitatile SG!-ului

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    4/34

    -. !ocul model*rii logice a datelor n ,/),riterii de calitate ale modelului logic al datelor

    Completitudine - s" con#in" toate datele necesare prelucr"rilor 

     Neredundanţă - s" fie format dintr-un set de tabele normalizate

    Stabilitate $ sc%imbarea cerin#elor func#ionale s" nu determine modificarea

    structurii logice a datelor 

     Flexibilitate - u&urin#a extinderii structurii logice a datelor pentru 'nglobarea

    unor noi cerin#e

    Simplitate şi eleganţă - s" ofere o clasificare natural" &i elegant" a datelor (de

    exemplu, s" nu existe dou" tabele FRN*+R &i CN.)

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    5/34

    0. 1odelul rela2ional,oncepte utili+ate

    3a+* de date rela2ional* - un ansamblu de rela#ii (tabele) aflate 'n leg"tur"

    $ela2ie (tabel*" - este identificat printr-un nume propriu

    - este format din linii (tupluri) &i coloane (atribute)

    - la intersec#ia c"rora se introduc valori atomice (date elementare)

    4omeniu - mul#imea tuturor valorilor pe care le poate lua o dat" elementar"

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    6/34

    0. 1odelul rela2ional,oncepte utili+ate (cont."

    ,heie - ansamblul minimal de atribute prin care se poate identifica 'n mod unic orice

    tuplu dintr-o rela#ie

    ,heie candidat - un atribut sau o combina#ie de atribute care s" /oace rolul de c%eie

    ,heie primar* $ o c%eie candidat aleas" special

    ,heie secundar* $ o c%eie candidat care nu a fost aleas" c%eie primar"

    ,heie str*in* (e5tern*" - un atribut care apare 'ntr-o tabel" &i care este c%eie primar"

    'n alt" tabel"0 a este utilizat" pentru stabilirea leg"turilor 'ntre tabele0

    $estric2ie de integritate referen2ial* - pentru c%eia str"in" se admite orice valoare

    nenul" care se reg"se&te 'ntre valorile c%eii primare din tabela-p"rinte

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    7/34

    )trategii de proiectare a schemei ba+ei de date

    -. strategia bottom6up, reprezint" abordarea tradi#ional" &i presupune

     constituirea rela#iei generale

     analiza rela#iilor de dependen#" dintre atribute &i parcurgerea pa&ilor

    normaliz"rii

    0. strategia top6down, presupune urm"toarele activit"#i1

     analiza cerin#elor func#ionale &i 'ntocmirea modelului conceptual (!R)

     transformarea modelului R prin aplicarea unui set de reguli

     analiza tabelelor ob#inute din perspectiva normaliz"rii

    7. 4emersul de proiectare a ba+ei de date

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    8/34

    )trategii de proiectare a schemei ba+ei de date (cont."

    7. 4emersul de proiectare a ba+ei de date

    Avanta8ele strategiei top 9 down:

     DER reprezintă un instrument util de comunicare 'ntre anali&ti &i utilizatori

     DER este uşor de înţeles şi conceput 

     Utilizează conceptul de abstractizare - se reduce considerabil num"rul

    obiectelor analizate0 Num"rul entita#ilor de date este mult mai mic dec2t num"rul

    datelor elementare din sistem0

     Existenţa unui set complet de reguli de transormare a DER în sc!ema logică a

    bazei de date - suport pentru generarea automat" a bazei de date

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    9/34

    30 Construirea unor modele logice ale datelor corespunzatoare

     perspectivelor diferitelor categorii de utilizatori

    40 Contopirea tuturor perspectivelor normalizate ale utilizatorilor 

    50 .ransformarea !R (class diagram) intr-un set de tabele normalizate

    60 +b#inerea modelului logic final prin compararea modelului logic

    consolidat (pasul4) cu modelul ob#inut prin transformarea !R (pasul 5)

    Pa;ii demersului

    7. 4emersul de proiectare a ba+ei de date

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    10/34

    7ctivit"#ile specifice transform"rii !R 

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    11/34

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    12/34

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    13/34

    4.2.1 Transformarea legăturii binare de tipul 1:1

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    14/34

    Factura

    #act>id

    Fact9nr 

    Fact9data

    Receptie

    $ec>id

    Rec9nr 

    Rec9data

    Coresp-

    unde

    (3,3)

    (:,3)

    Factura

    #act>id

    Fact9nr 

    Fact9data

    Receptie$ec>id

    Rec9nr 

    Rec9data

     Fact"id #F$% N&' NU((

    Fiecărei facturi îi vacorespunde cel mult o

    recepţie sau nici una,iar o recepţie are labază exact o factură.

    4.2.1 Transformarea legăturii binare de tipul 1:1 (cont.)

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    15/34

    Furnizor 

    #urn>id

    Furn9nume

    Factura

    #act>nr

    Fact9data

     Furn"id #F$% N&' NU((

    #iecare factura este emis*

    de un singur furni+or& n

    timp de un furni+or poate

    emite mai multe facturi

    sau nici una.

    Furnizor 

    #urn>id

    Furn9nume

    mitere

    (:,;)

    (3,3)

    Factura

    #act>nr

    Fact9data

    4.2.2 Transformarea legăturilor 1:N

    (participarea entităţii de partea “unu” este obligatorie) 

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    16/34

    7gentComercial

    agentId

    agentNume

    Comanda

    cmdId

    cmdNumar 

    agent)d  >F?@ N

    #iecare agent comercial

    poate incheia una sau

    mai multe comen+i& ns*

    nu este obligatoriu ca o

    comanda s* fie incheiatade un agent 9 clientul

    poate veni direct in firma

    sau lansea+a comanda

    prin intermediul site6ului

    firmei.

    4.2.2 Transformarea legăturilor 1:N

    (participarea entităţii de partea “unu” este facultatiă) 

    (:,3)

    7gentComercial

    agentId

    agentNume

    ComandacmdId

    cmdNumar 

    nc%eie

    (3,;)

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    17/34

    4.2.! Transformarea legăturilor binare de tip ":N

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    18/34

    #iecare factura poate contine mai multe produse& iar

    un produs se poate regasi pe mai multe facturi

    Arodus

    Prod>id

    Arod9den

    Factura

    #act>nr

    Fact9data

    7rticol9factura

     Prod_id [FK] 

    Fact_nr [FK] 

    Cantitate

    Aret

    4.2.! Transformarea legăturilor binare de tip ":N

    Arodus

    Prod>idArod9den

    Contine

    (3,;)

    (:,;)

    Factura

    #act>nr

    Fact9data

    Cantitate

    Aret

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    19/34

    4.2.4 Transformarea legăturilor recursie de tip 1:"

    anga8at Nume

    7lte9date

    Conduce

    (:,;)

    (3,3)

    7NG7B7.

    1arca>anga8at Nume

    7lte9date

    Conduce

    (:,;)

    (3,3)

    7NG7B7.

    1arca>anga8at Nume

    7lte9date

    ConduceConduce

    (:,;)

    (3,3)

    7NG7B7.1arca>anga8at

     Nume7lte9date

     

     +arca"manager #F$% 

    n anga8at poate conducemai mul2i anga8a2i sau nici

    unul& iar fiecare anga8at are

    un manager ;i numai unul

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    20/34

     

    7R.C+

    ,od>articol!enumire

    Cost

    Contine

    (:,;)

    (:,;)

    Cantitate

    7R.C+

    ,od>articol!enumire

    Cost

    Contine

    (:,;)

    (:,;)

    7R.C+

    ,od>articol!enumire

    Cost

    Contine

    (:,;)

    (:,;)

    7R.C+

    ,od>articol!enumire

    Cost

    ContineContine

    (:,;)

    (:,;)

    CantitateCantitate

    7R.C+,od>articol

    !enumireCost

    7R.C+9C+;A+NN.,od>articolCod_componenta [FK]

    Cantitate

    n articol poate con2ine maimulte articole& iar un articolpoate intra n fabrica2ia maimultor alte articole.

    4.2.4 Transformarea legăturilor recursie de tip ":N

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    21/34

    $eguli de transformare:

     se creeaz" c2te o tabel" aferent" celor trei entit"#i se creeaz" a patra tabel", aferent" leg"turii ternare, numit" entitate asociati*ă

    ,tabelă copil-

     tabela copil con#ine c%eile primare ale celor trei entit"#i, ce vor fi c%ei str"ine,

    &i eventualele atribute ale leg"turii ternare

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    22/34

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    23/34

    .e%nician

    Ang>id

    7ng9nume

    Aroiect

    Pr>id

    Ar9den

    !ocumentatie

    4oc>nr

    !oc9termen

    ntocmeste

    3

    3 3

    .e%nician

    Ang>id

    7ng9nume

    Aroiect

    Pr>id

    Ar9den

    !ocumentatie

    4oc>nr

    !oc9termen

    !oc9proiect

     Pr_id [FK] 

     Doc_nr [FK] 

     .ng"id #F$%

    n tehnician poate lucra la mai multe proiecte insa el intocmeste o singuradocumentatie pentru fiecare proiect in parte@ fiecare documentatie este intocmita de

    un singur tehnician pentru un singur proiect@ un proiect poate avea mai multe

    documentatii& dar fiecare documentatie va fi intocmita de un singur tehnician.

    In tabela 4oc>proiect e5ista trei variante pentru stabilirea cheii: Pr>id si 4oc>nr@Pr id si An id 4oc nr si An id.

    6040D .ransformarea leg"turii ternare (tipul unu-la-unu-la-unu=)

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    24/34

    Arofesor 

    Prof>id

    Arof9nume

    !isciplina

    4isc>id

    !isc9den

    Student

    )tud>id

    Stud9nume

    xamen

     Stud_id [FK] 

     Disc_id [FK] 

    =5am>data

     /ro"id #F$%xam9nota

    #iecare student sustine une5amen cu un singur profesor&

    insa el poate fi e5aminat de

    acelasi profesor la mai multe

    discipline. 4e asemenea& un

    profesor e5aminea+a la o

    disciplina mai multi studenti.

    6040D .ransformarea leg"turii ternare (tipul unu-la-multe-la-multe=)

    Arofesor 

    Prof>idArof9nume

    !isciplina

    4isc>id

    !isc9den

    Student

    )tud>id

    Stud9nume

    xamin

    eaza

    3

    ; N

    xam9notaxam9data

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    25/34

    7nga/at

    Ang>id

    7ng9nume

    Formatie

    #orm>id

    Form9nrang

    oc9munca

    !ocm>id

    ocm9den

    Aonta/

     Ang_id [FK] 

    Form_id[FK] 

     Locm_id [FK] 

     Nr9ore

    1 6 un anga8at poate lucra

    la un loc de munca in

    cadrul mai multor formatii.

    N 6 un anga8at poate lucra

    intr6o formatie dar la mai

    multe locuri de munca.P 9 o formatie care

    lucrea+a intr6un loc de

    munca poate fi alcatuita

    din mai multi anga8ati.

    6040D .ransformarea leg"turii ternare (tipul multe-la-multe-la-multe=)

    7nga/at

    Ang>id

    7ng9nume

    Formatie

    #orm>id

    Form9nrang

    oc9munca

    !ocm>id

    ocm9den

    ucreaza

    A

    ; N

     Nr9ore

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    26/34

    605 .ransformarea rela#iilor de mo&tenire

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    27/34

    605 .ransformarea rela#iilor de mo&tenire

    A?@

    tip!ocument

    nr!oc

    data!oc

    data+perare

    mi/l.ransport

    $eceptie

    idReceptie >A?@tip!ocument

    nr!oc

    data!oc

    data+perare

    facturaArimita

    4oc,onsum

    id!ocConsum >A?@

    tip!ocument

    nr!oc

    data!oc

    data+perare

    numarComanda 1 N

    locConsum

    < T f di l i l i

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    28/34

    605 .ransformarea rela#iilor de mo&tenire

    A?@

    id!ocument >F?@mi/l.ransport

    $eceptie

    idReceptie >A?@

    id!ocument >F?@

    facturaArimita

    4oc,onsum

    id!ocConsum >A?@

    id!ocument >F?@

    numarComanda

    locConsum

    4ocument

    id!ocument >A?@

    nr!oc

    data!oc

    data+perare

    (B&-"

    (B&-"

    (B&-"

    (-&-"

    (-&-" (-&-"

    < T f di l i l i

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    29/34

    605 .ransformarea rela#iilor de mo&tenire

    A?@

    denumire;aterial

    um

    contvidenta

    duratatilizare 1 N

     perioada7cordare 1 N

     procentC%eltuieli 1 N

    tipun;aterial

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    30/34

    Carte

    I)3N.itlu

    Copie,ota

    Stare

     )S0N #F$%

    Atributele

    multivaloare Cota si

     Stare sunt separate

     ntr6o tabel* distinct*.

    =a se mai nume;te ;i

    entitate atributiv*.

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    31/34

    30 tilizarea conventiilor in atribuirea de nume $ camel,ase 9 opus Pascal,ase

    40 Stabilirea unui prefix unic pt fiecare tabela, care sa fie utilizat ca parte a

    numelor atributelor 

    50 Aastrarea numelor pt atributele c%eie straina $ ramane cu prefixul de la tabela

     parinte

    60 vitarea c%eilor primare compuse sau c%iar a celor cu semnificatie pentru

    utilizator (utilizatorul ar putea sa modifice valoarea)0 Numele atributului c%eie

     primara Arefix.abela!, cu valori atribuite automat ca secventa0

    ?. $ecomand*ri privind proiectarea 34

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    32/34

    C. 1ecanismul tran+ac2ional al 34

    Tran+ac2ie

    ansamblu de opera2iuni e5ecutate mpreun* asupra ba+ei de date

     o unitate logic* de prelucrare care garantea+* consisten2a ba+ei de date

    1ecanismul tran+ac2ional trebuie s" rezolve urm"toarele dou" probleme1 

     ,ontrolul concuren2ei - mecanismele de blocare

     $e+isten2a la defecte, toleran#a sistemului la defecte &i capacitatea de

    recuperare a acestuia

    + baz" de date este 'ntr-o stare consistent" dac" datele respect" toate restric#iile de

    integritate definite asupra lor

    C.- 4efinirea mecanismului tran+ac2ional

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    33/34

    C. 1ecanismul tran+ac2ional al 34

    C.0 =5emplu tran+ac2ie 9 Ad*ugare factur*

    4enumire

    opera2iune

    Nume tabel* accesat* Tip acces =5plica2ii

    7d"ugarefactur"

    F7C.R7 Insert  DataFactura ia valoarea datei dinsistem, iar celelalte valori sunt preluatedin ecranul de culegere a datelor0

    7d"ugare

    articole factur"

    7R.C+F7C.R7 Insert .oate datele se preiau din ecranul

     pentru culegerea datelor0

    7ctualizaresold client

    CN. pdate Se incrementeaz" valoarea atributuluiSold , cu valoarea facturii, preluat" dinecranul de culegere a datelor0dentificarea 'nregistr"rii se face 'nfunc#ie de codul clientului pentru care

    s-a introdus factura0

    7ctualizarestocuri

    AR+!S pdate Se decrementeaz" valoarea atributuluiStoc cu cantitatea v2ndut", pentrufiecare produs 'n parte0 dentificarea'nregistr"rilor actualizate se face pe baza codului produsului0

  • 8/17/2019 Cap3 ProiectareLogicaBD IE

    34/34

    C. 1ecanismul tran+ac2ional al 34

    C.7 Propriet*2ile tran+ac2iilor

    E Atomicitate -o tranzactie este considerata o unitate elementara de

     prelucrare, adica executia unei tranzactii se face pe principiul totul sau nimic 

    E ,onsisten2a - se refera la corectitudinea tranzactiei din punctul de vedereal consistentei datelor

    E I+olarea - presupune ca orice tranzactie sa aiba acces doar la starile

    consistente ale bazei de date

    E 4urabilitatea - odata ce tranzactia este validata, efectele sale devin

     permanente si vor fi 'nscrise 'n baza de date