proiectarea bazelor de date relationale

Upload: ancamaria

Post on 02-Mar-2018

301 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    1/33

    5. Proiectarea bazelor de date

    relaionale

    Modelul Entitate - Relaie

    Proiectarea bazei de date este o munc de colectiv care armonizeaz cerinele i posibilitilebeneficiarului pe de o parte i proiectantului de sistem pe de alt parte. Baza de date este primatreapt spre o viziune sistemic, de ansamblu, unificatoare i generatoare de rezultate specificecorecte n acelai timp.

    !ec"iul sistem de proiectare a fost bazat pe fiiere. #imitele acestei concepii constau nsepararea datelor, duplicarea datelor, dependena programului de concepia fiierului iincompatibilitatea formatelor de fiiere folosite n diverse limba$e. %ceste limitri implic pierderede timp i spaiu i posibilitatea de inconsisten a datelor.

    &istemul de baz de date - n opoziie cu vec"iul sistem - d posibilitatea de a definii datelen afara programului i asigur controlul asupra manipulrii datelor.

    'efiniie( Baz de date( Este o colecie parta$at de date legate logic, proiectat pentru asatisface necesitile unui sistem informatic.

    'eci datele sunt str)nse ntr-o colecie unic i sunt folosite simultan de mai muliutilizatori. Redundana datelor este controlat prin normalizare, ceea ce implic o redundanminim.

    * astfel de baz de date are nevoie de un sistem de gestiune a bazei de date. %cesta este unsistem de programe care fac posibil definirea, ntreinerea i accesul controlat la baza de date. +n

    astfel de sistem trebuie s conin limba$ul de definire i limba$ul de manipulare a datelor. Putemaminti urmtoarele limba$e( sau BE limba$e generale, respectiv 'B%&E, /*0 PR*,PR*1RE&&, P%R%'*0 .a.m.d. limba$e specifice.

    2um se stabilete structura bazei de date3 4ocmai prin proiectarea de care ne ocupm. 5nopoziie cu proiectarea bazei de date bazate pe fiiere, care pornea de la una sau mai multe aplicaiiale beneficiarului, proiectarea bazei de date se rezolv naintea elaborrii aplicaiei. 'e aceeaaceast aciune devine esenial pentru tot sistemul.

    Proiectantul bazei de date trebuie s identifice datele relaionale, relaiile dintre ele irestriciile asupra lor. Proiectarea const din dou faze( unul logic i unul fizic. 5n timpul proiectriilogice este important implicarea viitorilor utilizatori n procesul de proiectare. 5n proiectarea fizicse decide cum va fi realizat practic modelul logic.

    %vanta$ele i dezavanta$ele sistemului de baze de date(%vanta$ele ar fi urmtoarele( controlul redundanei consistena datelor economia de spaiu pentru aceleai date controlul integritii datelor utilizarea standardelor d posibilitatea rspunsului la cereri variate i cu e6primri parial necunoscute la momentul

    proiectrii. productivitate crescut concuren crescut posibiliti crescute de recuperare n caz de eroare'ezavanta$e(

    7

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    2/33

    comple6itate crescut costul &1B' cost crescut rezultat din cerine de "ard costul trecerii de la un sistem la altul o eventual defeciune are un impact crescut, global

    7. Modelarea ER Entit8-Relations"ip

    5n acest capitol vom descrie urmtoarele obiective(

    /olosirea modelului conceptual de nivel nalt pentru proiectarea de baze de date.

    2onceptele modelului ER, model de nivel nalt.

    * te"nic grafic de reprezentare a modelului ER.

    Modul de identificare a problemelor ce pot aprea la crearea unui model ER.

    #imitele modelului ER primar i conceptele necesare pentru modelarea aplicailor comple6e. 2onceptele modelului EER En"anced Entit8-Relations"ip, numite i specializare9generalizare.

    * te"nic grafic de reprezentare a specializri9generalizri n modelul EER.

    +tilizarea produsului ER:in produs de #ogic ;or?, care faciliteaz crearea de baze de date relaionale. 5n acest capitol, vom descrie conceptele

    primare ale modelului ER, dup care vom identifica problemele care pot aprea la un model ER@o:e, 7=A=. !om discuta deasemenea, problemele reprezentrii unor aplicaii, folosind modelul

    ER &c"midt i &:enson, 7=>. %v)nd n vedere c modelul ER are anumite limite n modelareaaplicaiilor, vom introduce un model mai comple6, modelul EER, numit i specializare9generalizare.

    1.1. Conceptele modelului Entity-Relationship

    2onceptele primare ale modelului ER includ( tip de entitate, tip de relaie, atribute.

    7.7.7. 4ipuri de entiti

    'efiniie( Tip de entitate: Este un obiect sau un concept, identificat de o ntreprindere,av)nd o e6isten independent.4ipurile de entiti reprezint obiecte reale, din viaa de zi cu zi, av)nd proprietile lor, sau obiecteconceptuale, abstracte.

    'efiniie( Entitate: +n obiect sau un concept ce se poate identifica unic.+n tip de entitate conine mai multe entiti.

    +n tip de entitate se identific prin nume i list de atribute. * baz de date conine ngeneral mai multe tipuri de entiti. /iecare tip de entitate are propriile lui atribute. Putem clasificaaceste tipuri n tipuri slabe i tipuri tari.

    'efiniie( Tip slab de entitate:Este un tip de entitate, a crui e6isten este dependent deun alt tip de entitate.

    'efiniie( Tip tare de entitate:Este un tip de entitate, a crui e6isten nu depinde de niciun alt tip de entitate.Entitile slabe se mai numesc dependente sau subordonate iar cele tari printe sau dominante.

    Reprezentarea grafic a entitilor( Entitile tari se reprezint printr-un dreptung"i,etic"etate cu numele entitii iar cele slabe se reprezint printr-un dreptung"i desenat cu linie dubl,etic"etate de asemenea cu numele lor.

    C

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    3/33

    E6emplu( nume entitate tare nume entitate slab

    7.7.C. %tribute

    'efiniie( Atribute:Proprietile unui tip de entitate sau de relaie.'efiniie( Domeniul atributului:+n set de valori ce se pot da acelui atribut.

    'omeniul unui atribut nu se poate definii totdeauna foarte e6act. 'e e6emplu, atributul nume defamiliepoate lua orice nume de familie e6istent. Evident, acest atribut trebuie s fie un ir decaractere, dar oare ce caractere poate s conin3 +nele domenii se pot descompune n mai multesubdomenii. 'e e6emplu data nateriise poate descompune in subdomeniile( an,lun,zi.

    %tributele se pot clasifica nsimple sau compuseD cu o singur valoaresau cu mai multevaloriD respectiv derivate.

    'efiniie( Atribut simplu: %tribut care are doar o singur component i o e6istenindependent.

    %ceste atribute nu se pot diviza mai t)rziu n mai multe atribute distincte.'efiniie( Atribut compus: %tribut care are mai multe componente i o e6isten

    independent.%ceste atribute se pot diviza n mai multe atribute simple. 'e e6emplu atributul adresse poatedescompune n atributele(strada,numr,ora,cod potal ijude. 'ecizia ca un atribut compus sse descompun n mai multe atribute simple este dependent de modul n care se va utiliza acelatribut( separat pe componente, sau ntregul atribut.

    'efiniie( Atribut cu o singur valoare: Atribut care poate lua o singur valoare pentrufiecare entitate.Ma$oritatea atributelor sunt atribute cu o singur valoare, ceea ce este indicat n proiectarea bazelorde date.

    'efiniie( Atribut cu mai multe valori:%tribut care poate lua mai multe valori pentrufiecare entitate.%tributele cu mai multe valori, trebuie s aib totdeauna o limit inferioar i una superioar.

    'efiniie( Atribut derivat: %tribut a crei valoare se poate calcula din unul, sau mai multealte atribute, care nu sunt neaprat atributele entitii n cauz.'e e6emplu atributul vrstaeste derivat din atributul data nateriii data zilei n care se utilizeazacest atribut. %lt e6emplu ar fi atributul numrul total de entiti, ceea ce se poate calcula,numr)nd entitile nregistrate.

    2"ei(ntuitiv, o c"eie este un atribut, care determin unic o entitate dintr-un tip de entitate. 5n

    continuare, dm o definiie riguroas a c"eii.'efiniie( !eie candidat:+n atribut, sau un set de atribute, care identific unic o entitatedintr-un tip de entitate.

    'efiniie( !eie primar:* entitate poate s aib una sau mai multe c"ei candidat, din caredoar una selectat este i primar.'ecizia referitoare la care din c"eile candidate s fie c"eie primar este dependent de lungimeac"eii. 2"eia primar este de obicei cea mai scurt dintre c"eile candidat.

    'efiniie( !eie compus:* c"eie candidat care conine cel puin dou atribute.

    Reprezentarea grafic a atributelor(+n atribut se reprezint printr-o elips, legat de entitatea de care aparine cu o linie i

    etic"etat cu numele atributului. Elipsa este punctat, dac atributul este un atribut derivatD respectivdublat, daca poate lua mai multe valori.

    F

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    4/33

    'ac un atribut este compus, atunci componentele atributului se reprezint n elipse legateprintr-o linie de atributul compus.

    %tributele care intr n componena c"eii primare, se noteaz prin sublinierea numeluiatributului.

    E6emplu(

    5n acest e6emplu, entitatea Locatari, fiind o entitate tare, are urmtoarele atribute(Numrmatricol, Nume i Adresa. 'intre aceste atribute, atributul Numr matricol este c"eie primarDatributulAdresaeste atribut compus, care se descompune nNumr bloc,Scara,Etaj iApartament.

    7.7.F. 4ipuri de relaii

    'efiniie( Tip de relaie: %sociere ntre tipuri de entiti.'efiniie( "elaie:%sociere ntre entiti, c)nd asocierea include un tip de entitate dintre

    toate tipurile participante.

    Reprezentarea grafic a relaiilor( Relaiile se reprezint printr-un romb etic"etat cu numelerelaiei. Rombul se deseneaz cu linie dubl, dac relaia leag o entitate slab de entitatea tare decare aparine.

    'efiniie( #radul relaiei:Gumrul entitilor participante n relaie.Entitile dintr-o relaie se numesc participani. Gumrul lor d gradul relaiei. 'ac intr-o relaiesunt doi participani, atunci relaia se numete binar.

    'efiniie( "elaie recursiv:Relaie n care aceleai entiti particip n roluri diferite.5n cazul relaiilor recursive cele dou arce de la entitate la relaie i napoi, primesc diferite

    etic"ete, care sunt importante n nelegerea corect a relaiei.

    7.7.H. %tributele relaiilor

    %tributele descrise mai sus, se pot asocia i relaiilor. %ceste atribute se reprezint grafic, ca

    i atributele entitilor, cu deosebirea c legtura nu este cu o entitate, ci cu o relaie. %dic linialeag elipsa de rombul ce semnific relaia.

    1.2. Structuralitatea

    & analizm acum restriciile ce pot aprea la includerea unei entiti participante ntr-orelaie. %vem dou tipuri mari de restricii( cardinalitateaiparticiparea.

    7.C.7. 2ardinalitatea

    'efiniie( ardinaluleste numrul relaiilor posibile pentru o entitate participant.Ma$oritatea relaiilor au gradul doi, care pot fi( unu-la-unu 7(7, unu-la-multe 7(M, sau

    multe-la-multe M(G.Relaiile unu-la-unu(

    H

    #ocatari

    Gume

    Gumrmatricol

    %dresa

    Gumrbloc

    &cara

    Eta$

    %partament

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    5/33

    5n relaiile unu-la-unu, o entitate este legat de cel mult o entitate din partea cealalt arelaiei. %ceast relaie se reprezint grafic prin etic"etarea arcului dintre relaie i entitate cucardinalul relaiei, adic cu 7.

    Relaiile unu-la-multe(

    Relaia de tip unu-la-multe are cardinalul 7 n st)nga i G n dereapta. 'eci o entitateparticipant este legat n relaia respectiv de I, 7, sau mai multe entiti. E6emplificm acest tipde relaie prin relaia J&unt locuiteK dintre tipurile de entiti J&criK, respectiv J#ocatariK.

    $igura %.%.E6emplu de relaie 7(M5n reprezentarea grafic a relaiilor, relaia unu-la-multe se noteaz cu etic"etarea arcului cu

    7 n partea st)ng i cu G n partea dreapt. 'in e6emplul de mai sus observm c dac relaiadirect este de unu-la-multe, atunci relaia invers este de unu-la-unu.

    Relaiile multe-la-multe(%cest tip de relaie se deosebete de relaia unu-la-multe prin faptul c relaia invers nu este

    de unu-la-unu, ci de unu-la-multe. 'eci, dac i relaia direct i relaia invers este de tipul unu-la-multe, atunci relaia este de tipul multe-la-multe i se noteaz cu G(M.

    7.C.C. Participarea

    'efiniie( Participareadetermin dac e6istena unei entiti depinde sau nu de relaia cu oalt entitate.

    Participarea poate fi de mai multe tipuri( totali parial. 5n cazul participrii totale, toateentitile particip n relaia dat. 5n caz contrar participarea se numete parial. 5n diagrama ERaceste tipuri de relaii se reprezint prin arc cu linie dubl pentru participarea total, respectiv cu

    linie simpl pentru participarea parial. Pentru participarea parial, e6ist un mod de notaie princare se etic"eteaz arcele relaiei cu perec"ea de numere ce reprezint minimul, respectiv ma6imulentitilor participante la relaie.

    1.3. Problemele modelului ER

    5n acest capitol vom e6amina numeroasele probleme ce pot aprea la modelarea unei bazede date. %ceste probleme se refer la capcanele care pot aprea la definirea relaiilor ntre tipuri deentiti. %mintim dou tipuri mari de capcane( de tip labirint fan trap, respectiv de tip prpastiec"asm trap.

    'efiniie( $an trapcapcan de tip labirint( %cest tip de capcan reprezint cazul n caremodelul reprezint o relaie ntre dou tipuri de entiti, dar calea dintre cele dou membrii este

    ambigu.

    &c.%

    &c.B

    &c.2

    &cri &unt locuite de

    R7

    RC

    RF

    /am.7

    /am.C

    /am.F

    #ocatariGrLbloc&cara

    GrLbloc

    &cara

    GrLbloc&cara

    %tributeGrLmatGumele

    GrLmat

    Gumele

    GrLmatGumele

    %tribute

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    6/33

    2u alte cuvinte, pornind de la o entitate, nu se tie ca dup parcurgerea cii relaiilor, la ceentitate se a$unge n partea cealalt. %ceast capcan se poate elimina prin rearan$area ordiniirelaiilor dintre cele dou tipuri de entiti.

    2ellalt tip de capcan este(

    'efiniie( !asm trap capcan de tip prpastie( %cest tip de capcan se descrie prin faptulc modelul sugereaz e6istena relaiei ntre cele dou tipuri de entitate, dar calea dintre tipurile deentiti nu e6ist.

    %ceast problem provine din participarea parial a unor entiti la una dintre relaii.Problema se poate rezolva prin introducerea unei relaii directe.

    1.4. Modelul Enhanced Entity-Relationship (EER

    Modelul ER, discutat n capitolele de mai sus, este adecvat pentru descrierea multor sc"emede baze de date. 'in 7=AI s-au dezvoltat foarte mult aplicaiile care folosesc baze de date. ModelulER nu mai era suficient pentru reprezentarea comple6elor sc"eme de baze de date. 'e aceea s-auintrodus alte concepte n modelul ER, dezvolt)nd modelul EER.

    Modelul EER include toate conceptele modelului ER, plus alte completri devenitenecesare. %ceste concepte sunt nou introduse sunt( specializarea9generalizarea, categorisirea incapsularea. 5n acest capitol vom descrie conceptele de baz a modelului EER i anume,specializare9generalizare.

    &pecializarea9generalizarea este n str)ns legtur cu modul de descriere a tipurilor deentiti n superclase i subclase, precum i de motenirea atributelor. 'e aceea vom descrie acesteconcepte.

    7.H.7. &uperclasele i subclasele tipurilor de entiti

    !om descrie aceste concepte, av)nd ca e6emplu tipul de entitate J#ocatariK.

    'efiniie( &uperclas( &uperclasa este un tip de entitate care include subclase distinctereprezentate ntr-un model de date.'efiniie( &ubclas( &ubclasa este un tip de entitate care are un rol distinct i este membru

    al unei superclase.'e e6emplu superclasa J#ocatariK se divizeaz n dou subclase i anume( Jef de scarK i

    J/amiliiK. Relaia dintre o superclas i o subclas se numete relaie superclas9subclas. %ceastrelaie este de tip unu-la-unu. Relaia J#ocatari9/amiliiK de e6emplu, este o astfel de relaie.

    /iecare membru al unei subclase este membru i n superclas, dar are un rol diferit. E6istsubclase case se suprapun, adic e6ist membrii ntr-o subclas care apar i n cealalt subclas.Putem observa c e6emplul de mai sus este e6act de acest tip, pentru c eful de scar poate s fie icap de familie.

    'e ce se folosete clasificarea n subclase3 Rspunsul este simplu de observat direct dine6emplul dat. 'ac nu am clasifica entitile din tipul de entitate J#ocatariK, atunci ar trebui smemorm informaiile specifice efului de scar i capului de familie pentru fiecare locatar.'eoarece ma$oritatea locatarilor nu aparine nici unei categorii, pentru acestea ar fi informaiinefolositoare, dar care ns ar ocupa mult spaiu pe suportul magnetic.

    7.H.C. Motenirea atributelor

    /iecare subclas are ca atribute comune, atributele superclasei n care aparine. 'eci fiecaremembru al unei subclase se caracterizeaz prin atributele superclasei i alte atribute specificesubclasei. 'e e6emplu subclasaFamiliise caracterizeaz prin toate atributele superclaseiLocatariNumr matricol, Numr bloc, Scara, Etaj, Apartament i Nume, pe l)ng care mai are i alte

    atribute specifice Numr persoane,Numr persoane prezente, etc./iecare subclas poate s aib subclase, cre)ndu-se un arbore de clase, care se numete

    ierar!ie de tipuri. %ceast ierar"ie de tipuri include alte denumiri de ierar"ii i anume( ierar!ia de

    ?

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    7/33

    specializride e6emplu, tipul de entitateFamiliieste o specializare a tipului de entitateLocatarii ierar!ia de generalizride e6emplu,Locatarieste o generalizare a tipului de entitateFamilii.

    7.H.F. &pecializarea

    'efiniie( &pecializareeste un proces de ma6imizare a diferenelor unor membrii ale uneientiti, identific)nd caracteristicile distincte.

    &pecializarea este o apro6imare top-do:n a definirii unor superclase, mpreun cusubclasele lor. Relaia superclas9subclas se reprezint grafic printr-un arc de la superclas la uncerc, care la r)ndul lui este legat cu un arc de subclas. Pe arcele de la subclase se deseneaz unsemn de incluziune de la subclas la superclas. %ceste semn de incluziune indic direcia relaieisuperclas9subclas.

    %tributele specifice doar subclasei sunt ataate direct la dreptung"iul care reprezintsubclasa.

    4oate aceste notaii se e6emplific n figura de mai $os(

    5n e6emplul de mai sus tipul superclasaLocatarise compune din mai multe subclase( ef descar i Familii. &uperclasaLocatariva avea ca membrii pe toi locatarii unei scri. 5ntre acetilocatari, unii sunt capi de familii iar alii efi de scar. %ceti membrii ai tipului de entitateLocatarivor aprea ca membrii i n subclasele ef de scar, respectivFamilii.

    'efiniie( &ubclas parta'atse numete subclasa care are mai multe superclase.Membrii din subclasa parta$at sunt membrii n fiecare dintre superclase. 'e aceea ei

    motenesc atributele fiecrei superclase o astfel de motenire se numete mo(tenire multipl.5n cazul relaiilor, dac o subclas este n relaie cu un alt tip de entitate, aceast relaie se

    refer doar la subclasa respectiv, nu i la superclasa lui.

    7.H.H. 1eneralizarea

    'efiniie( #eneralizarese numete procesul de minimizare a diferenelor dintre entiti,pentru identificarea caracteristicilor comune.Procesul de generalizare este o apro6imare bottom-up a superclaselor, din subclasele

    originale. 'eci generalizarea este inversa specializrii. 'e e6emplu dac privim tipurile de entiti/amilii i ef de scar, vom observa c unele atribute ale lor caracterizeaz ambele tipuri. 'e aicirezult necesitatea crerii unei superclase care s conin toate atributele comune celor dou tipuri.

    7.H.. Regulile specializrii i generalizrii

    5n acest capitol vom discuta despre regulile ce trebuie aplicate n cazul specializrii sau algeneralizrii.

    Prima regul se numete regula dis'unciei. %ceast regul specific dac subclasele unei

    clase sunt dis$uncte, adic un membru al superclasei aparine cel mult uneia dintre subclase. *specializare dis$unct se reprezint cu un JdK nscris n cercul care leag subclasele de superclase.

    >

    #ocatariGumrmatricol

    Gumrbloc %dresa

    ef de scar

    'ataintrrii nfuncie

    /amilii

    Gumrpersoane

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    8/33

    'ac subclasele nu sunt dis$uncte, adic un membru al superclasei poate s aparin la maimulte subclase, atunci subclasele respective se numesc non dis'unctei se noteaz cu JoK n cerculcare leag subclasele de superclase. 5n e6emplul nostru subclasele Sef de scariFamilii- care suntsubclasele claseiLocatari- sunt non dis$uncte.

    % doua regul a specializrii este regula participrii, care poate fi total sau parial.Participarea este total dac toi membrii superclasei sunt i membrii subclaselor. Pentrureprezentarea participrii totale, arcul de la superclas la cercul dintre superclas i subclas sedubleaz.

    5n cazul participrii pariale nu toi membrii superclasei iau parte ntr-o subclas. %cest tipde participare se reprezint cu linie simpl ntre superclas i cerc. 5n e6emplul nostru avem o

    participare parial n cazul superclaseiLocatari, cu subclasele ef de scar iFamilii.2ele dou reguli se aplic distinct la procesele de specializare, sau generalizare. 'e aceea

    putem avea patru tipuri de specializri( dis$unct total, dis$unct parial, non dis$unct total, saunon dis$unct parial.

    ). *ormalizarea bazei de date

    5n acest capitol vom discuta despre( Gecesitatea normalizrii Problemele asociate cu informaiile redundante n r)nduri. dentificarea tipurilor variate de anomalii ce pot aprea la actualizare( inserare, tergere i

    modificare. Procesul de normalizare. 2onceptul de dependen funcional, modalitatea de a grupa atributele n relaii

    2um utilizm dependenele funcionale, pentru a grupa atributele n relaii care sunt nforme normale cunoscute3 2um definesc relaiile, formele normale3 2um derulm procesul de normalizare3 2um identificm prima 7G/, a doua CG/ i a treia FG/ form normal, respectiv

    forma normal Bo8ce-2odd B2G/3

    2.1. !ecesitatea normali"#rii

    2)nd proiectm o baz de date, dorina noastr este de a reprezenta c)t mai corecte

    informaiile i s diminum c)t mai mult posibilitatea de a a$unge la informaii eronate dac nuputem elimina de tot acest nea$uns. Pentru a a$unge la aceast performan, trebuie s folosimnormalizarea.

    'efiniie( *ormalizare( * te"nic de generare a unor relaii cu proprietile dorite, n scopulmemorrii corecte a datelor unei ntreprinderi.

    Procesul de normalizare prima dat a fost introdus de E. /. 2odd 7=>C. niial s-au propustrei forme normale, numerotate de al unu la trei. Mai t)rziu s-a inclus nc o form normal, numitBo8ce-2odd, dup numele celor care l-au introdus( R. Bo8ce i E. /. 2odd.

    /ormele normale cele mai folosite sunt( forma normal F i forma normal Bo8ce-2odd.E6ist i forme normale mai tari - forma normal H HG/ i forma normal G/ - dar aceste sefolosesc foarte rar.

    Procesul de normalizare este o metod formal de identificare a relaiilor bazate pe c"eiprimare sau c"ei candidat n cazul B2G/ i dependenele funcionale cu atributele asociate.Gormalizarea d posibilitatea proiectantului bazei de date, pentru a efectua o seria de teste pe baza

    A

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    9/33

    de date, toate aceste teste duc)nd la prevenirea posibilitii de a aprea anomalii la actualizareabazei de date.

    Pentru a ilustra procesul de normalizare, vom folosi e6emple din sistemul informaticAsociaie de locatari.

    2.2. Redundan$a %n in&orma$ii 'i anomalii la actuali"are

    Partea cea mai important a proiectrii bazei de date este de a grupa atributele n relaii cuscopul de a minimiza redundana n informaii i spaiul ocupat de fiiere pe suportul magnetic.

    /ie relaia /urnizoriL2"eltuieli e6emplificat mai $os. #a e6emple vom simplifica atributeleasociate entitilor.

    od

    $urn.

    Denumire od

    +iscal

    *r.

    rt.

    od

    !elt.

    Denumire

    !eltuial

    aloare

    /7II Romgaz R7CFH?> 7 27 2"elt pt. nclzire 7IIIII/7II Romgaz R7CFH?> C 27? 2"elt pt. buctrii IIIII/77I Renel R>?HFC7 F 27I 2"elt cu iluminatul FIIIIII/77I Renel R>?HFC7 H 277 2"elt pt. func. liftului CIIIII$igura ).% Relaia /urnizoriL2"eltuieli

    'ependenele funcionale pentru relaia /urnizoriL2"eltuieli de mai sus sunt urmtoarele(/urnizori 2od./urn., 'enumire, 2od fiscal2"eltuieli Gr.2rt., 2od c"elt., 2od.furn., !aloare4ipLc"eltuiala 2od.2"elt., 'enumire c"elt./urnizoriL2"eltuieli Gr.2rt., 2od c"elt., 2od furn., 'enumire c"elt., 'enumire, 2od

    fiscal, !aloare

    5n acest e6emplu, informaia despre furnizor devine redundant. 'etaliile despre furnizor serepet la fiecare introducere a unei c"eltuieli noi. 5n dependenele funcionale specificate pentruentitatea !"eltuieli, apare doar codul furnizorului. %nalog, denumirea c"eltuielii, apare i ea n plusfa de entitatea !"eltuieli.

    * alt problem serioas datorat redundanei bazei de date, sunt problemele de actualizarea informaiei stocate. %ceste probleme se pot clasifica n anomalii de inserare, modificare, sautergere.

    C.C.7. %nomalii de inserare

    %nomaliile de inserare se pot clasifica n dou tipuri mari( Pentru a adaug detaliile despre o c"eltuial ctre un furnizor, n relaiaFurnizori#!"eltuielitrebuie obligatoriu adugate i detaliile despre furnizorul n cauz, c"iar dac el e6ist de$a n bazade date. %ceast anomalie poate duce la apariia aceluiai furnizor, av)nd introduse detalii diferite nnregistrri diferite. Pentru a aduga detaliile unui furnizor nou n relaia Furnizori#!"eltuieli, trebuie neapratadugat i o c"eltuial pentru asociaia de locatari ctre acel furnizor. 5n cazul n care nc nu asosit factura de la furnizor, nu pot nregistra nici o c"eltuial i deci trebuie introduse date vide nlocul c"eltuieli. 2umNr$!rt$este c"eia primar n relaiaFurnizori#!"eltuieli, introducerea de datevide n acest c)mp va strica integritatea entitii.

    =

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    10/33

    C.C.C. %nomalii de tergere

    5n cazul tergerii ultimei c"eltuieli a asociaiei de locatari ctre un furnizor, se va terge ifurnizorul. 'eci toate detaliile introduse despre acel furnizor vor fi pierdute, ceea ce duce la

    obligativitatea reintroducerii datelor la o nou folosire al acelui furnizor. 5n cazul entitii separatepentru c"eltuieli i furnizori, dac se terge i ultima c"eltuial ctre un furnizor, datele desprefurnizor rm)n totui n entitateaFurnizori.

    C.C.F. %nomalii de modificare

    'ac n relaia /urnizoriL2"eltuieli dorim s sc"imbm valoarea unui atribut al unuifurnizor, va trebui s sc"imbm datele la fiecare apariie a acelui furnizor. 'e e6emplu dac dorims sc"imbm codul fiscal al furnizorului cu codul /7II, va trebui s ac"imbm acest atribut n doulocuri. 'ac n timpul modificrilor, care poate dura destul de mult, intervine i un incident n uemacruia vor rm)ne nregistrri nemodificate, atunci baza de date devine inconsistent. %ceastanomalie se poate evita prin folosirea a dou entiti distincte precum 2"eltuieli i /urnizori. 5nacest caz dac trebuie s modific un atribut al unui furnizor, va trebui s-o modific doar ntr-unsingur loc( n entitatea /urnizori.

    2.3. ependen$e &unc$ionale

    +nul din cele mai importante concepte asociate normalizrii este dependena funcional.'ependena funcional descrie relaia dintre atribute. 5n acest capitol vom descrie conceptul dedependen funcional, urm)nd ca n capitolele urmtoare s descriem procesul de nlormalizare a

    bazei de date.

    C.F.7. 'efiniia dependenei funcionale

    'efiniie( Dependen +uncional: 'escrie relaia dintre atribute. 'e e6emplu dacatributul % este n relaia R cu atributul B, atunci atributul B este dependent funcional de atributul% notat( % B, dac orice valoarea al lui % este asociat prin relaia R cu e6act o valoare aatributul B.

    'ependena funcional este o proprietate a semanticii atributelor n relaii. &emantica indicatributele care sunt n relaie i specific dependenele funcionale dintre atribute.

    2onsiderm o relaie ntre dou atribute % i B, unde atributul B este dependent funcionalde atributul % atributele % i B pot fi compuse din mai multe atribute. 2u alte cuvinte, dac timvalorile c)mpului %, atunci analiz)nd valorile lui B n relaia cu %, vom considera c pentru valoridiferite al lui % - care fiind c"eie, trebuie s aib valori diferite - avem valori diferite i pentruc)mpul B. 'ependena funcional dintre dou c)mpuri se reprezint grafic n urmtorul mod(

    $igura ).) 'iagrama dependenei funcionale

    'efiniie( Determinant: Gumim determinantul unei relaii funcionale, atributul, sau

    mulimea atributelor din partea st)ng a sgeii.

    7I

    % B

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    11/33

    5n acest capitol vom ignora dependenele funcionale triviale, adic acele relaii de tipul%B, n care B este dependent de un subset de atribute al lui %. Pentru a e6emplifica dependenelefuncionale, considerm urmtorul e6emplu(

    E6emplu( 2onsiderm atributele !od furnizor i %enumire. Pentru un anumit cod de

    furnizor, putem determina denumire acelui furnizor. %dic denumirea este dependent funcional decod furnizor. 'ependena invers nu este adevrat pentru c pot e6ista aceleai denumiri cu coduridiferite.

    Relaia dintre cod furnizor i denumire este de 7(7, iar relaia invers este de 7(M.

    & identificm dependenele funcionale din relaia /urnizoriL2"eltuieli descris mai sus(Gr. 2rt., 2od /urn., 2od 2"elt. 'enumireGr. 2rt., 2od /urn., 2od 2"elt. 2od fiscalGr. 2rt., 2od /urn., 2od 2"elt. 'enumire c"eltuialGr. 2rt., 2od /urn., 2od 2"elt. !aloare

    2od /urnizor 'enumire2od /urnizor 2od fiscal2od fiscal 'enumire2od fiscal 2od /urnizor2od 2"elt. 'enumire c"eltuial

    5n aceast relaie avem = dependene funcionale, care au determinantele Gr. 2rt., 2od/urn., 2od 2"elt., 2od fiscal, 2od /urn. i 2od 2"elt. Putem evidenia aceste dependene i ntr-unalt format(

    Gr.2rt., 2od /urn., 2od 2"elt. 'enumire,2od fiscal, 'enumire c"eltuial, !aloare2od /urn. 'enumire, 2od fiscal2od fiscal 'enumire, 2od /urn.2od 2"elt. 'enumire c"eltuial

    Pentru a identifica c"eile candidate, trebuie s identificm atributul, sau grupul de atributecare determin unic fiecare nregistrare al acestei relaii. 'ac avem mai mult de o c"eie candidat,atunci va trebui s identificm i o c"eie primar. 4oate atributele care nu aparin c"eii primare,depind funcional de c"eia primar. 5n aceast ipostaz este grupul de atribute Gr. 2rt., 2od /urn.,2od 2"elt.. %tributele 2od /urn., 2od fiscal i 2od 2"elt. &unt determinani, dar nu sunt c"eicandidat.

    2onceptul de dependen funcional este conceptul central al normalizrii, ceea ce vomdescrie n capitolele urmtoare.

    2.4. Procesul de normali"are

    Gormalizarea este un proces formal de analiz a relaiilor bazate pe c"ei primare sau pebaza c"eilor candidat n cazul B2G/. Gormalizarea presupune urmarea unor reguli prin care bazade date se poate normaliza p)n la un anumit grad. 'ac o cerin nu este satisfcut, relaia trebuiedescompus n mai multe relaii, care individual satisfac cerinele formei normale.

    Gormalizarea se e6ecut trec)nd prin toate formele normale, p)n la forma normal cerut.#a proiectarea unei baze de date trebuie s a$ungem cel puin la forma normal unu, dar ca sevitm toate anomaliile descrise mai nainte, este recomandat aducerea bazei de date la B2G/.

    77

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    12/33

    5n figura urmtoare evideniem relaia dintre diversele forme normale. *bservm c uneledin relaiile n 7G/ este i n CG/, dintre care unele n FG/ i aa mai departe.

    $igura ).-. lustrarea grafic a relaiei dintre formele normale.

    2.). *orma !ormal# +nu (1!*

    5nainte s discutm despre forma normal unu, vom da definiia stadiului dinainte de aceastform normal.

    'efiniie( $orm *enormalizat /*$0:* tabel care conine una sau mai multe grupurirepetitive.

    'efiniie( $orma *ormal /nu %*$0:Relaie n care la intersecia oricrei linii cu oricarecoloan gsim un c)mp care conine e6act o valoare.

    5n acest capitol ncepem procesul de normalizare. Pentru nceput transferm datele de lasurs ntr-o tabel, care va fi o tabel nenormalizat. Pentru a transforma aceast tabel n formanormal unu, identificm i tergem grupurile repetitive din tabel. 1rupurile repetitive suntatribute, sau grup de atribute, pentru care avem diferite valori pentru aceeai valoare a c"eii, ceea ceeste n contradicie cu definiia c"eii. Eliminarea acestor grupuri repetitive se poate realiza n doumoduri(

    2onform primei modaliti, eliminm grupurile repetitive, prin crearea altor nregistrri, ncare s fie introduse valorile din aceste grupuri, mpreun cu celelalte valori ai atributelor dinnregistrarea la care se lucreaz. 4abele astfel rezultat va fi n form normal unu.

    5n a doua modalitate, fiecare valoare a grupurilor repetitive le copiem ntr-o nou relaiempreun cu c"eia primar din tabela iniial. Putem avea mai multe grupuri repetitive. 5n acest caz

    crem mai multe relaii noi. %ceste relaii noi, precum i tabela normalizat vor fi n form normalunu.

    'e e6emplu s lum relaia /urnizoriL2"eltuieli(

    od

    $urn.

    Denumire od

    +iscal

    *r.

    rt.

    od

    !elt.

    Denumire

    !eltuial

    aloare

    /7II Romgaz R7CFH?> 7 27 2"elt pt. 5nclzire 7IIIIIC 27? 2"elt pt. Buctrii IIIII

    /77I Renel R>?HFC7 F 27I 2"elt cu iluminatul FIIIIIIH 277 2"elt pt. /unc. liftului CIIIII

    $igura ).1. 4abela nenormalizat /urnizoriL2"eltuieli.

    7C

    7G/

    CG/FG/

    B2G/HG/G/

    G/

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    13/33

    5n aceast tabel observm c pentru furnizorul JRomgazK avem dou tipuri de c"eltuieli.Pentru a transforma aceast tabel n 7G/, trebuie s avem o singur valoare la fiecare intersecielinie coloan.

    5n cazul primei modaliti, scriem repetiiile pe diferite r)nduri iar coloanele care nu conin

    repetiii, vor fii copiate pe fiecare r)nd. 'up desprirea repetiiilor pe mai multe r)nduri,identificm o nou c"eie.

    od

    $urn.

    Denumire od

    +iscal

    *r.

    rt.

    od

    !elt.

    Denumire

    !eltuial

    aloare

    /7II Romgaz R7CFH?> 7 27 2"elt pt. 5nclzire 7IIIII/7II Romgaz R7CFH?> C 27? 2"elt pt. Buctrii IIIII/77I Renel R>?HFC7 F 27I 2"elt cu iluminatul FIIIIII/77I Renel R>?HFC7 H 277 2"elt pt. /unc. liftului CIIIII

    $igura ).5. 4abela /urnizoriL2"eltuieli n 7G/, creat prin prima modalitate de transformare.

    5n tabela normalizat, noua c"eie va fii 2od /urn., Gr. 2rt., 2od 2"elt..Gormaliz)nd tabela iniial dup a doua modalitate, vom crea o a doua tabel cu informaiile

    care nu se repet, mpreun cu c"eia primar din tabela iniial. 'eci cele dou tabele vor fiurmtoarele(

    /urnizori 2od /urn., 'enumire, 2od fiscal2"eltuieli 2od /urn., 2od 2"elt., Gr. 2rt., 'enumire c"eltuial, !aloare

    2ele dou tabele astfel create sunt n 7G/(

    od$urn.

    *r.rt.

    od!elt.

    Denumire!eltuial

    aloare

    /7II 7 27 2"elt pt. 5nclzire 7IIIII/7II C 27? 2"elt pt. Buctrii IIIII/77I F 27I 2"elt cu iluminatul FIIIIII/77I H 277 2"elt pt. func. #iftului CIIIII

    od

    $urn.

    Denumire od

    +iscal

    /7II Romgaz R7CFH?>/7II Romgaz R7CFH?>/77I Renel R>?HFC7/77I Renel R>?HFC7

    $igura ).2. Relaia 2"eltuial i /urnizor, create prin metoda a doua de normalizare.

    Pentru a demonstra trecerea la forma normal doi i mai mari, vom folosii relaia/urnizoriL2"eltuieli, evideniat n figura C..

    2.,. *orma !ormal# oi (2!*

    /orma normal doi se bazeaz pe conceptul de dependen funcional total, ceea ce vomdescrie n continuare.

    7F

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    14/33

    C.?.7. 'ependena funcional total

    'efiniie( Dependena +uncional total:'ac % i B sunt atributele unei relaii, atunci Beste total dependent funcional de atributul %, dac B este dependent funcional de %, dar nu este

    dependent funcional de nici un subset al lui %.'e e6emplu s lum urmtoarea dependen funcional(

    Gr. 2rt., 2od 2"elt. 'enumire c"eltuial

    'ependena funcional este corect, pentru c fiecare valoare al lui Gr. 2rt., 2od2"elt. determin unic denumirea c"eltuielii, ns dependena nu este total, pentru c %enumirec"eltuialdepinde funcional i de un subset al lui Gr. 2rt., 2od 2"elt. i anume atributul !od!"elt$

    C.?.C. 'efiniia /ormei Gormale 'oi

    /orma normal doi trebuie verificat doar la relaiile care au c"eie compus pe poziie dec"eie primar. Relaiile la care c"eia primar se compune dintr-un singur atribut, este n CG/.Relaiile care nu sunt n forma normal doi, pot suferii de anomaliile prezentate in capitolul C.C. 'ee6emplu dac n cazul relaiei /urnizoriL2"eltuieli vream s actualizm datele despre furnizorul/7II, trebuie s actualizm dou nregistrri.

    'efiniie( $orma *ormal Doi )*$0:* relaie este n forma normal doi, dac este nforma normal unu i fiecare atribut care nu aparine c"eii primare, este total dependent funcionalde c"eia primar.

    !om demonstra aducerea la forma normal doi, folosind relaia /urnizoriL2"eltuieli

    evideniat n figura C.. Putem trece la forma normal doi prin tergerea atributelor care nu depindtotal de c"eia primar i trecerea lor ntr-o alt tabel mpreun cu determinantul lor. 'upefectuarea acestor transformri, vom avea urmtoarele relaii(

    Relatia 2"eltuieliod

    $urn.

    *r.

    rt.

    od

    !elt.

    aloare

    /7II 7 27 7IIIII/7II C 27? IIIII/77I F 27I FIIIIII/77I H 277 CIIIII

    Relaia /urnizoriod

    $urn.

    Denumire od

    +iscal

    /7II Romgaz R7CFH?>/7II Romgaz R7CFH?>/77I Renel R>?HFC7/77I Renel R>?HFC7

    $igura ).3. Relaiile rezultate dup trecerea la CG/ a relaiei /urnizoriL2"eltuieli.Relaiile rezultate au urmtoarea form(

    /urnizori 2od /urn., 'enumire, 2od fiscal4ip c"eltuial 2od 2"elt., 'enumire c"eltuial2"eltuieli Gr. 2rt., 2od /urn., 2od 2"elt., !aloare

    7H

    Relaia 4ip 2"eltuialod

    !elt.

    Denumire

    !eltuial

    27 2"elt pt. nclzire27? 2"elt pt. buctrii27I 2"elt cu iluminatul277 2"elt pt. func. liftului

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    15/33

    2.. *orma !ormal# rei (3!*

    /orma normal doi c"iar dac nu conine at)ta redundan ca forma normal unu, totuie6ist cazuri n care pot aprea anomalii la actualizare. %ceste anomalii apar din cauza redundanei

    generate de dependena tranzitiv.

    C.>.7. 'ependena tranzitiv

    'efiniie( Dependen tranzitiv:'ac atributele %, B, 2 sunt n relaiile %B i B2,atunci spunem c atributul 2 este dependent tranzitiv de atributul %, via B.

    C.>.C. 'efiniia /ormei Gormale 4rei

    'efiniie( $orma *ormal Trei -*$0:* relaie care este n form normal doi i nu e6ist

    nici un atribut care s nu aparin c"eii principale i care s fie tranzitiv dependent de c"eiaprincipal.5n cazul e6istenei dependenei tranzitive, tergem coloanele care sunt tranzitiv dependente

    de c"eia primar i crem o relaie nou cu aceste coloane, mpreun cu determinantul lor, adicc"eia primar.

    E6amin)nd relaiile n forma normal de mai sus, observm c nu e6ist dependenetranzitive. 'eci relaiile sunt n form normal trei.

    2./. *orma !ormal# 0oyce-Codd (0C!*

    Baza de date trebuie proiectat astfel nc)t s nu conin dependene pariale sau tranzitive,pentru c altfel ne putem confrunta cu anomaliile descrise n cap. C.C.

    C.A.7. 'efiniia /ormei Gormale Bo8ce-2odd

    /orma normal Bo8ce-2odd este bazat pe c"eile candidat din relaie. * relaie cu o singurc"eie candidat n form normal trei este i n form normal Bo8ce-2odd.

    'efiniie( $orma normal Bo4ceodd B*$0: * relaie este n forma normal Bo8ce-2odd dac i numai dac orice determinant din relaie este c"eie candidat.

    & cutm determinanii din e6emplul de mai sus(

    2od /urn. 'enumire, 2od fiscal2od 2"elt. 'enumire c"eltuial

    Gr. 2rt., 2od /urn., 2od 2"elt. !aloare

    4oi cei trei determinani sunt i c"ei candidat. 'eci e6emplul de mai sus este n formnormal Bo8ce-2odd. Relaiile n form normal trei sunt n general i n form normal Bo8ce-2odd. 5n cazul n care relaia nu este n form normal Bo8ce-2odd, trecerea la B2G/ se realizeaz

    prin tergerea din relaia iniial a atributelor care sunt asociate unui determinant care nu este c"eiecandidat i crearea unei noi relaii cu aceste atribute i determinantul lor.

    E6ist situaii c)nd este foarte greu de descompus atributele, ca s a$ungem la B2G/. 5n

    aceste situaii este indicat rm)nerea la forma normal trei.

    7

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    16/33

    2.. S# recapitul#m procesul de normali"are (de la 1!* la 0C!*

    $orma *ormal /nu %*$04rebuie s cutm toate interseciile de linii i coloane, unde e6ist repetiii. %ceste repetiii

    se pot elimina prin dou modaliti( 2rearea a noi nregistrri pentru fiecare valoare a repetiiei, dup care se caut o nou c"eie

    primar. tergerea atributelor care conin repetiii i crearea a unor noi relaii care vor conineatributele terse, precum i c"eia principal din relaia iniial.

    $orma *ormal Doi )*$0&e caut dependenele pariale de c"eia principal, adic toate atributele care depind

    funcional de un subset de atribute a c"eii primare. 'ac c"eia primar este compus dintr-un singuratribut, atunci relaia este n forma normal doi. 'ac e6ist dependene pariale, vom tergeatributele care depind parial de c"eia principal i crem o relaie nou care s se compun dinatributele terse mpreun cu determinantul lor.

    $orma *ormal Trei -*$0

    Pentru a trece la forma normal trei, trebuie s eliminm dependenele tranzitive. Eliminarease realizeaz prin tergerea c)mpurilor dependente tranzitiv de c"eia primar din relaia iniial icrearea unei noi relaii cu aceste atribute i determinantul lor.

    $orma *ormal Bo4ceodd B*$0

    2erina la forma normal Bo8ce-2odd este ca fiecare determinant din relaie s fie c"eiecandidat. 5n cazul n care nu este ndeplinit aceast cerin, vom terge atributele dependente

    funcional de determinantul care nu este c"eie candidat i crem o nou relaie n care s avematributele terse i determinantul lor. 5n unele cazuri trecerea la forma normal Bo8ce-2oddcomplic foarte mult baza de date, caz n care este de preferat rm)nerea la forma normal trei.

    7?

    /orm nenormalizat +G/

    tergem grupurilecare se repet

    /orma normal unu 7G/

    tergemdependenele pariale

    /orma normal doi CG/

    tergem dependeneletranzitive

    /orma normal trei FG/

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    17/33

    Metodologie - Proiectarea bazei de date

    5n acest capitol vom nva despre( &copul metodologiei de proiectarea a bazelor de date. Proiectarea bazelor de date are dou faze mari( proiectarea logic i proiectarea fizic. +tilizatorii sistemului informatic au un rol important n proiectarea bazelor de date. 2um documentm procesul de proiectare a bazelor de date3 2um descompunem scopul proiectrii n vederi vie:-uri specifice utilizatorilor

    ntreprinderii3 2um utilizm modelarea Entit8-Relations"ip ER, pentru a crea un model conceptual local,

    bazat pe informaiile adunate despre vie:-urile utilizatorilor3 2um proiectm un model local conceptual ntr-un model local logic de date3

    2um crem relaiile pentru un model conceptual local3 2um validm modelul logic de date, utiliz)nd te"nica normalizrii3 2um compunem modelele logice locale de date, bazate pe vie:-urile specifice utilizatorilor,

    ntr-un model logic global de date al ntreprinderii3 2um ne asigurm c modelul global este o reprezentare adevrat i total a prii

    ntreprinderii pe care vrem s o modelm3

    Metodologia proiectrii bazei de date se compune din dou etape mari( proiectarea logic, ncare proiectantul decide asupra structurii logice a bazei de date, i proiectarea fizic, n care

    proiectantul decide cum se va implementa structura logic n sistemul de gestiune a bazelor de date&1B'.

    5n acest capitol vom prezenta pas cu pas, crearea unei baze de date. !om utiliza modelareaER descris n capitolul 7, pentru proiectarea bazei de dateD vom valida acest model prinnormalizare, prezentat n capitolul CD iar n final vom compune diferitele vie:-uri ntr-un modelglobal al ntreprinderii.

    5n acest capitol vom utiliza cuvintele JentitateK i JrelaieK n locul e6presiilor Jtip deentitateK i Jtip de relaieK. +nde aceast utilizare ar putea crea confuzii, vom specifica Jtip deentitateK, respectiv Jtip de relaieK.

    3.1. Metodologia proiectrii bazelor de date

    3.1.1. Ce este o metodologie de proiectare?

    'efiniie( 6etodologie de proiectare: * apro6imare structurat, care utilizeaz proceduri,te"nici, instrumente i documentaii pentru a facilita procesul de proiectare.

    Metodologia de proiectare se compune din etape, care la r)ndul lor se compun din pai, careorienteaz proiectantul la fiecare nivel al crerii bazei de date.

    3.1.2. Proiectarea logic i fizic a bazei de date

    'efiniie( Proiectare logic: Procesul de construcie a unui model de informaii folositentr-o ntreprindere, bazat pe modelul de date, dar independent de particularizrile sistemului degestiune a bazei de date i a altor considerente fizice.

    Proiectarea logic ncepe cu crearea modelului conceptual al bazei de date, care esteindependent de implementarea ntr-un &1B'. Modelul conceptual este apoi proiectat pe un modellogic, care va influena mai t)rziu modelul de date n care se va implementa.

    7>

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    18/33

    'efiniie( Proiectare +izic:Este procesul de descriere a implementrii bazei de date ntr-un&1B'.

    5n aceast etap a proiectrii este creat baza de date ntr-un &1B', mpreun cu procedurilede actualizare. 5n aceast etap e6ist un feedbac< ntre proiectarea fizic i cea logic, pentru c

    deciziile luate la implementarea fizic pot afecta baza de date logice.

    3.2. Prezentarea metodologiei

    5n acest capitol vom prezenta o descriere a metodologiei de proiectare a bazelor de date.Prima dat s vedem care sunt paii de urmat n proiectare(

    Pasul 7. Proiectarea logic a bazei de date relaionale: 2rearea unui model conceptual local,pentru vederile utilizatorilor.Pasul 7.7. dentificarea tipurilor de entiti.

    Pasul 7.C. dentificarea tipurilor de relaii.Pasul 7.F. dentificarea i atribuirea de atribute la tipurile de entiti i tipurile de relaii.Pasul 7.H. 'eterminarea domeniilor de definiie a atributelor.Pasul 7.. 'eterminarea atributelor care compun c"eile candidate i primare.Pasul 7.?. &pecializare9generalizare pas opional.Pasul 7.>. 'esenarea diagramei entit8-relations"ip.Pasul 7.A. !erificarea modelului conceptual local cu a$utorul utilizatorului.

    Pasul C. 2rearea i validarea modelului logic local.Pasul C.7. Proiectarea modelului conceptual local pe un model logic local.Pasul C.C. 2rearea relaiilor pentru modelul logic local.Pasul C.F. !alidarea modelului, utiliz)nd normalizarea.Pasul C.H. !alidarea modelului din nou, utiliz)nd tranzaciile.Pasul C.. 'esenarea diagramei ER.Pasul C.?. 'efinirea regulilor de integritate a bazei de date.Pasul C.>. !erificarea modelului logic local cu a$utorul utilizatorului.

    Pasul F. 2rearea i validarea modelului logic global de date.Pasul F.7. 2ompunerea modelelor logice locale ntr-un model logic global.Pasul F.C. !alidarea modelului logic global.Pasul F.F. !erificarea posibilitii de a completa baza de date n viitor.

    Pasul F.H. 'esenarea diagramei ER finale.Pasul F.. !erificarea modelului logic global cu a$utorul utilizatorului.

    Pasul H. Proiectarea +izic (i implementarea bazei de date relaionale: 4ranslatarea modeluluilogic global n &1B'.Pasul H.7. Proiectarea relaiilor de baz n &1B'.Pasul H.C. 2rearea regulilor de integritate n &1B'.

    Pasul . Proiectarea i implementarea reprezentrii fizice.Pasul .7. %nalizarea tranzaciilor.Pasul .C. %legerea organizrii fiierelor.

    Pasul .F. %legerea indecilor secundari.Pasul .H. ntroducerea unei redundane controlate.Pasul .. Estimarea spaiului pe disc.

    7A

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    19/33

    Pasul ?. Proiectarea i implementarea unui mecanism de securitate.Pasul ?.7. 2rearea vie:-urilor pentru utilizatori.Pasul ?.C. Proiectarea regulilor de acces la baza de date.

    Pasul >. !erificarea sistemului operaional.Proiectarea logic a bazei de date se divide n trei pai mari. Primul pas are ca obiectiv,

    descompunerea proiectrii sistemului informatic n vederi, care se pot discuta cu utilizatoriisistemului. Modelul de date astfel creat, se valideaz prin normalizare i prin tranzacii n pasul doi.5n final, se genereaz modelul global al ntreprinderii, care este la r)ndul lui validat i verificat cua$utorul utilizatorului sistemului.

    Factori critici pentru succesul proiectrii logice&

    #ucrul interactiv cu utilizatorul sistemului. /olosirea unei metodologii structurate pentru procesul de proiectare a bazei de date.

    5ncorporarea regulilor de integritate n modelul logic de date. 2ombinarea validrii conceptuale, prin normalizare i prin tranzactii, la proiectarea

    modelului logic de baze de date. +tilizarea diagramelor pentru a reprezenta c)t mai multe modele logice posibile. 2rearea dicionarului de date, ca supliment al modelului de date.

    3.3. Metodologia de proiectare a bazei de date logice

    5n acest capitol vom prezenta pas cu pas, proiectarea unei baze de date.

    Pasul %. rearea modelului conceptual local, pentru utilizatori.

    *biectivul( 2rearea unui model conceptual local, pentru vie:-urile utilizatorilor.Primul pas n proiectarea bazei de date este de a colecta datele necesare pentru realizarea

    sistemului, ceea ce putem culege, discut)nd cu viitorii utilizatori ai bazei de date. %ceast discuiepresupune o desprire n vederi, a bazei de date, vederi care pot lucra separat.

    'esprirea n vederi se poate realiza n mai multe moduri. * modalitate ar fi analiza datelorglobale i gsirea de pri relativ independente. * alt modalitate ar fii analiza rapoartelor,

    procedurilor cerute i9sau observarea sistemului e6istent n lucru.Modelele conceptuale locale trebuie s conin( tipuri de entiti,

    tipuri de relaii, atribute, domeniile atributelor, c"eile candidat, c"ei primare

    Paii din prima etap a proiectrii logice sunt( Pasul 7.7. dentificarea tipurilor de entiti.

    Pasul 7.C. dentificarea tipurilor de relaii.

    Pasul 7.F. dentificarea i atribuirea de atribute la tipurile de entiti i tipurile de relaii.

    Pasul 7.H. 'eterminarea domeniilor de definiie a atributelor. Pasul 7.. 'eterminarea atributelor care compun c"eile candidate i primare.

    7=

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    20/33

    Pasul 7.?. &pecializare9generalizare pas opional.

    Pasul 7.>. 'esenarea diagramei entit8-relations"ip.

    Pasul 7.A. !erificarea modelului conceptual local cu a$utorul utilizatorului.

    'asul ($($ )dentificarea tipurilor de entiti

    *biectivul( dentificarea tipurilor de entiti principale n vederile utilizatorilor.Primul pas n proiectarea bazei de date este identificarea entitilor din datele furnizate de

    utilizatori. 'e e6emplu, dac avem informaiile GrLMat, GrLBloc, &cara, Eta$, %partament iGume, putem identifica entitatea #ocatari. 5n general putem identifica entitile n mai multemoduri. 'e e6emplu n locul entitii #ocatari, am putea crea o entitate #ocatari cu atributele

    GrLMat i Gume, iar celelalte informaii n entitatea Proprietate#ocatari.E6ist cazuri c)nd entitile sunt greu de identificat, pentru c modul de prezentare a

    viitorilor utilizatori necesit e6plicaii. +tilizatorii descriu aceste entiti, folosind sinonime i

    omonime, ceea ce ngreuneaz identificarea entitilor. &inonimele prin care se descrie aceeaientitate, se pot considera sinonime i la crearea modelului logic, evideniind aceste sinonime cadiverse aliasuri ai entitilor.

    %ocumentarea tipurilor de entiti

    'up identificarea entitilor, le dm c)te un nume, iar aceste nume le vom evidenia ndicionarul de date, mpreun cu e6plicaiile despre entiti, precum i posibilele aliasuri.

    'asul ($*$ )dentificarea tipurilor de relaii

    *biectivul( dentificarea relaiilor importante dintre entiti.'up identificarea entitilor, va trebui s identificm i relaiile importante dintre aceste

    entiti. Relaiile se descriu printr-un verb al relaiei. 'e e6emplu( &crilesunt Locuite de#ocatari

    /urnizorii'rovoac2"eltuieli#a identificarea relaiilor vom lua n considerare doar relaiile care ne intereseaz. 'egeaba

    e6ist i alte relaii care s se poat identificate, dac nu prezint importan pentru problemanoastr, atunci nu le lum n consideraie.

    5n cele mai multe din cazuri, relaiile sunt binare, adic se realizeaz ntrea e6act douentiti. E6ist i relaii mai comple6e, care se realizeaz ntre mai multe entiti, sau relaiirecursive, care pune n relaie o singur entitate cu ea nsi.

    %eterminarea cardinalitii i a participrii la tipurile de relaii

    'up identificarea tipurilor de relaii, trebuie s determinm cardinalitatea lor, aleg)nddintre posibilitile( unu-la-unu 7(7, unu-la-multe 7(M, sau multe-la-multe M(G. 'ac secunosc valori specifice ale cardinalitilor, aceste valori se scriu la documentarea relaiilor. 5ncontinuare determinm i participarea la relaie, care poate fii total, sau parial.

    %ocumentarea tipurilor de relaii

    'up identificarea tipurilor de relaii, le denumim i le introducem n dicionarul de date,mpreun cu cardinalitatea i participarea lor.

    +tilizarea modelrii E,

    Pentru vizualizarea sistemelor complicate, utilizm diagrama ER, pentru c este mult maiuor de a cuprinde toate informaiile. ! propunem ca s utilizai ntotdeauna diagrama ER, pentruo mai bun vizualizare a datelor.

    'asul ($-$ )dentificarea i asocierea de atribute la tipurile de entiti i tipurile de relaii

    CI

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    21/33

    *biectivul( %socierea de atribute la tipurile de entiti i la tipurile de relaii.+rmtorul pas n metodologie este identificarea atributelor. %ceste atribute se identific n

    aceeai mod ca i entitile. Pentru o mai uoar identificare, trebuie s lum entitile i relaiile lar)nd i s ne punem urmtoarea ntrebare( !e informaii deinem despre aceast . /Rspunsul la

    aceast ntrebare ne va da atributele cutate.Atribute simple sau compuse

    Este important s notm dac un atribut este simplu sau compus. 2onform acestei informaiiva trebui s lum decizii referitoare la acel atribut. 'ac un atribut este compus, atunci putem opta

    pentru descompunerea sa, dac este necesar prelucrarea separat a datelor compuse, sau putem s-llsm compus n caz contrar.

    'e e6emplu, atributul %dres conine informaiile GrLBloc, &cara, Eta$, %partament. Goiva trebui s prelucrm aceste informaii separat, deci vom descompune acest atribut n cele patruatribute simple.

    Putem avea cazuri n care atributele simple s le compunem. 'e e6emplu n cazul atributelorGumeL/amilie i Prenume, neav)nd nevoie de aceste informaii separat, le vom compune n

    atributul Gume.Atribute derivate 0calculate1

    &unt acele atribute, care se pot calcula din alte atribute e6istente n baza de date. 'ee6emplu numrul locatarilor de pe o scar se poate numra n tipul de entitate #ocatari. 'eci acestatribut este atribut derivat.

    5n general aceste atribute nu trebuie incluse n modelul de date, pentru c n cazul n care semodific atributul din care se calculeaz atributul derivat, trebuie s se modifice i acesta. 5n cazuln care nu se modific, baza de date devine inconsistent. 'e aceea este important de a menionadac un atribut este sau nu derivat.

    'ac identificm un atribut care s nu-l putem asocia nici unei entiti sau relaii, nentoarcem la paii anteriori, identific)nd noua relaie sau entitate la care s asociem atributulrespectiv.

    5n cazul n care putem asocia acelai atribut la mai multe entiti, atunci va trebui sdecidem dac generalizm sau nu aceste entiti, proces care este descris la pasul 7.?.

    %ocumentarea atributelor

    'up identificarea atributelor, le asociem un nume, i le nregistrm n dicionarul de date,mpreun cu urmtoarele informaii(

    numele i descrierea atributului,

    toate aliasurile i sinonimele prin care este cunoscut atributul,

    tipul de date i lungimea,

    valorile iniiale ale atributelor dac e6ist, dac atributul accept sau nu valoarea nul,

    dac atributul este sau nu compus, i dac este atunci atributele simple care le compun,

    dac atributul este sau nu derivat i atributul din care se deriv,

    dac atributul accept sau nu mai multe valori.

    'asul ($2$ %eterminarea domeniului atributelor

    *biectivul( 'eterminarea domeniului atributelor n modelul conceptual local.'omeniul atributului este o mulime de valori pe care o poate lua. Pentru a controla n

    totalitate domeniul atributelor, se poate evidenia urmtoarele( setul de valori admisibile pentru un atribut,

    operaiile admisibile asupra unui atribut,

    C7

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    22/33

    ce atribute se pot compara cu atributul respectiv, n combinaiile cu alte atribute,

    mrimea i formatul c)mpului atributului.%ocumentarea domeniilor atributelor

    %ctualizm dicionarul de date cu domeniul de definiie a fiecrui atribut.'asul ($3$ %eterminarea atributelor care compun c"eile candidat i primare

    *biectivul( dentificarea c"eilor candidat pentru fiecare entitate i alegerea c"eilor primaren cazul n care sunt mai multe c"ei candidat.

    )dentificarea c"eilor i selectarea c"eilor primare

    * c"eie candidat este un atribut, sau un grup de atribute care identific unic fiecarenregistrare din tipul de entitate. Putem identifica una, sau mai multe c"ei candidat. 5n acest caztrebuie s alegem dintre ele o c"eie primar. 2"eile candidat care nu sunt primare, se vor numii c"eialternante. Pentru alegerea unei c"ei ca fiind c"eie primar, vom ine cont de urmtoarele(

    c"eia candidat, care are un numr minimal de atribute,

    c"eia candidat, care i va sc"imba cel mai rar valoarea, c"eia candidat, care este cel mai puin probabil s sufere modificri n viitor,

    c"eia candidat, care este compus din cele mai puine caractere n cazul atributelor de tipcaracter,

    c"eia candidat, care este cel mai uor de folosit din punctul de vedere al utilizatorului.

    Prin procesul de identificare a c"eilor primare, deducem i dac o entitate este entitateJtareK, sau entitate JslabK. 'ac reuim s identificm o c"eie primar, atunci entitatea este tare,altfel este slab. * entitate slab nu poate e6ista fr o entitate tare, care s-i fie JprinteK. 2"eia

    primar a entitii slabe este derivat parial sau total din c"eia primar a entitii tari.%ocumentarea c"eilor primare i alternante5nscriem c"eile primare i pe cele alternante n dicionarul de date.

    'asul ($4$ Specializarea5generalizarea tipurile de entiti 0pas opional1

    *biectivul( dentificarea entitilor subclas respectiv superclas, ntre entitile apropiate.5n acest pas putem opta pentru a continua modelarea ER, folosind procesul de generalizare

    sau specializare. 'ac alegem procesul de specializare, vom ncerca s definim unul, sau mai multesubclase ai entitii respective. 'ac ns alegem procesul de generalizare, vom cuta superclase

    pentru acea entitate.

    +n e6emplu pentru procesul de generalizare ar fii entitile efLdeLscar i /amilii. %mbeleentiti au atribuite urmtoarele atribute( GrLmat, GrLbloc, &cara, Eta$, %partament i Gume. Pel)ng aceste atribute, entitatea efLdeLscar mai are asociate atributul 'ataLintrareLfuncD iarentitatea /amilii, atributele GrLpers, GrLpersLprezente i GrLc"ei. 'eci, cele dou entiti av)ndatribute n comun, le putem generaliza n entitatea #ocatari, care va conine atributele comune, ientitile efLdeLscar i /amilii, conin)nd doar atributele diferite - particularizrile fa desuperclas.

    'asul ($6$ %esenarea diagramei E,$

    *biectivul( 'esenarea unei diagrame ER. care va fi reprezentarea conceptual a vederilor

    utilizatorilor despre ntreprindere.5n momentul acesta suntem n msur s prezentm o diagram complet a modelului bazat

    pe vederile utilizatorilor despre ntreprindere.

    CC

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    23/33

    'asul ($7$ 8erificarea modelului conceptual local cu ajutorul utilizatorului

    *biectivul( !erificarea modelului conceptual local cu a$utorul utilizatorului, pentru a vedea

    dac modelul este o reprezentare adevrat a vederii utilizatorului despre ntreprindere.5nainte de a termina pasul 7, trebuie verificat modelul conceptual elaborat. %cest modelinclude diagrama ER i documentaia ane6at. 5n cazul n care apare orice fel de anomalie, repetm

    procesul de mai nainte i remediem problema.

    Pasul ). rearea (i validarea modelului logic local

    *biectivul( 2rearea unui model logic local bazat pe modelul conceptual al utilizatorilorasupra ntreprinderii i validarea ei prin procesul de normalizare i prin te"nica tranzaciilor cerute.

    5n acest pas verificm modelul conceptual creat n pasul anterior i eliminm din elstructurile care sunt dificil de realizat ntr-un &1B'. 'ac la sf)ritul acestui proces modelul

    alterat, vom corecta aceste probleme i ne vom referii n continuare la modelul rezultat, ca fiindmodelul logic local. !om valida modelul logic prin procesul de normalizare i a tranzaciilor.

    %ctivitile din acest pas sunt( Pasul C.7. Proiectarea modelului conceptual local pe un model logic local.

    Pasul C.C. 2rearea relaiilor pentru modelul logic local.

    Pasul C.F. !alidarea modelului, utiliz)nd normalizarea.

    Pasul C.H. !alidarea modelului din nou, utiliz)nd tranzaciile.

    Pasul C.. 'esenarea diagramei ER.

    Pasul C.?. 'efinirea regulilor de integritate a bazei de date.

    Pasul C.>. !erificarea modelului logic local cu a$utorul utilizatorului.'asul *$($ 'roiectarea modelului conceptual local pe modelul logic local

    *biectivul( !erificarea modelului conceptual local pentru eliminarea structurilor care se potimplementa greu ntr-un &1B' i proiectarea modelului rezultat la modelul logic local.

    5n pasul nt)i am pregtit un model conceptual bazat pe informaiile date de utilizator. %cestmodel trebuie prelucrat, pentru a putea fi uor de prelucrat de sistemul de gestiune a bazelor de date.*biectivele acestui pas sunt(7 Eliminarea relaiilor M(G.C Eliminarea relaiilor comple6e.

    F Eliminarea relaiilor recursive.H Eliminarea relaiilor cu atribute. Ree6aminarea relaiilor 7(7.? Eliminarea relaiilor redundante.

    0(1 Eliminarea relaiilor multe9la9multe'ac n modelul de date apar relaii de tipul multe-la-multe M(G, trebuie descompuse n

    dou relaii unu-la-multe 7(M prin adugarea unei noi entiti suplimentare.'e e6emplu, pot e6ista mai multe c"eltuieli pentru o scar, dar i o c"eltuial factur poate

    s se refere la mai multe scri. 'eci relaia dintre entitatea &cri i entitatea 2"eltuieli este de M(G,ceea de este evideniat n figura F.7.a.

    CF

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    24/33

    Sunt platite de

    Scari

    Nr_locScara

    !ift

    C"eltuieli

    Nr_Crt

    Cod_C"eltuiala #$%&Cod_$urnizor #$%&

    Nr_factura'ata_factura(aloare_factura

    Se calculeaza)u c"eltuieli

    Pe scari

    Scara #$%&

    Nr_Crt #$%&Nr_loc #$%&

    C"eltuieli

    Nr_Crt

    Cod_$urnizor #$%&

    Cod_c"eltuiala

    Nr_factura

    'ata_factura

    (aloare_factura

    Scari

    Nr_loc

    Scara

    !ift

    $igura -.%. a. Relaie de tipul G(M. b. Relaie transformat n dou relaii 7(M.

    %ceast relaie se poate elimina, prin crearea unui tip de entitate suplimentar, care s faclegtura dintre scri i c"eltuieli. 'iagrama acestor relaii se vede n figura F.7.b.

    Gotm, c tipul de entitate nou creat - PeLscri - este tip de entitate slab, pentru c depindeat)t de tipul de entitate &cri, c)t i de tipul de entitate 2"eltuieli.

    0*1 Eliminarea relaiilor comple:e* relaie comple6 este o relaie ntre mai mult de dou tipuri de entiti. 'ac n modelul

    conceptual apar relaii comple6e, acestea trebuie eliminate. &e pot elimina prin crearea unui nou tipde entitate, care s fie n relaie de tipul 7(M cu fiecare tip de entitate din relaia iniial, partea cu Ma relaiei fiind spre tipul de entitate nou creat.

    0-1 Eliminarea relaiilor recursiveRelaiile recursive sunt nite relaii particulare, prin care un tip de entitate este n relaie cu

    el nsi. 'ac apare o astfel de relaie n modelul conceptual, ea trebuie eliminat. Eliminarea sepoate rezolva prin crearea unei noi entiti unde s se evidenieze fiecare entitate care este legat de

    entitatea din tipul de entitate iniial. 5n acest caz vom avea o relaie de tipul 7(M ntre tipul deentitate iniial i tipul de entitate nou creat i o relaie de tipul 7(7 ntre tipul de entitate nou creat itipul de entitate iniial.

    021 Eliminarea relaiilor cu atribute'ac n modelul conceptual avem relaii cu atribute, putem descompune aceast relaie,

    identific)nd un nou tip de entitate n care s nregistrm atributele necesare.031 ,ee:aminarea relaiilor de tipul (&(5n modelul conceptual putem avea entiti ntre care s avem relaie de tipul 7(7. &e

    poate nt)mpla ca aceste entiti s fie de fapt aceeai entitate cu nume diferite. 'ac suntem nacest caz, unim cele dou entiti, c"eia primar devenind c"eia primar al uneia dintre entiti.

    041 Eliminarea relaiilor redundante* relaie este redundant dac se poate a$unge de la un tip de entitate la alt tip de entitate pemai multe drumuri. ! amintim c noi vrem s a$ungem la un model minimal i deci relaiileredundante nu sunt necesare. 'ecizia ca o relaie este redundant trebuie s fie precedat de oanaliz amnunit a relaiilor care compun cele dou drumuri dintre cele dou entiti, pentru c

    pot aprea situaii, c)nd o relaie este aparent redundant, dar n realitate este nevoie de ea.5n finalul acestui pas putem spune c am eliminat din modelul conceptual acele structuri

    care sunt dificil de implementat i deci este mai corect ca n continuare s ne referim la acest modelca fiind un model logic local de date.

    'asul *$*$ !rearea de relaii peste modelul logic local

    *biectivul( 2rearea de relaii peste modelul logic.

    CH

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    25/33

    Relaia pe care un tip de entitate o are cu alt tip de entitate este reprezentat prin mecanismulc"eie primar9c"eie strin. 2"eia strin pentru o entitate este reproducerea c"eii primare alteientiti. Pentru a decide entitile unde vom include copia c"eii primare a altei entiti, trebuienainte s identificm entitile JprinteK i JfiuK. Entitile JprinteK se refer la acele entiti ale

    cror c"ei primare se vor copia n entitile JfiuK.Pentru descrierea relaiilor vom folosii un limba$ de definire a bazei de date 'atabase'efinition #anguage - 'B'#. 5n acest limba$, specificm prima dat numele entitii, urmat deatributele asociate ntre paranteze. 'up aceea identificm c"eia primar i toate c"eile alternante,

    precum i9sau c"eile strine.;ipuri de entitate tari

    Pentru tipurile de entiti tari n modelul logic crearea unei relaii include toate atributeleentitii. Pentru atributele compuse al unei entiti, vom include numai atributele simple dincompunerea atributului compus n descrierea entitii.

    'e e6emplu tipul de entitate /amilii, prezentat n figura F.C. se descrie n urmtorul mod.

    $amilii GrLmat, GrLbloc, &cara, Eta$, %partament, Gume, GrLpers,GrLpersLprezente, GrLc"ei

    !eie primar:GrLmat

    *rebuie sa plateasca

    $amilii

    Nr_+at

    Nr_pers

    Nr_pers_prezente

    Nr_c"ei

    Nr_locScara

    ,ta-

    )partament

    $ond_rulment

    $ond_reparatii

    )lte_fonduri

    Plati

    'ata

    Nr_+at #$%&(aloare

    .estanta

    $igura -.). E6emplu de model logic.

    ;ipurile de entiti slabe

    'escrierea tipurilor de entiti slabe se face la fel ca i tipurile de entiti tari, cu ocompletare i anume, evidenierea c"eii strine. 'e e6emplu descrierea tipului de entitate de mai susse descrie astfel(

    Pli'ata, GrLmat, !aloare, Restan!eie primar: 'ata, GrLmat!eie strin: GrLmat se re+er la /amiliiGrLmat

    Menionm c n cazul acesta c"eia strin este i n compunerea c"ei primare. 'eci nainte

    de introducerea c"eii strine, c"eia primar nu identifica unic o entitate. #a terminarea acestui pas,putem identifica c"eile primare pentru toate tipurile de entiti din modelul logic.

    ;ipurile de relaii binare de tipul unu9la9unu 0(&(1

    C

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    26/33

    Pentru fiecare tip de relaie binar de tipul 7(7 ntre dou tipuri de entitate E7 i EC gsim ocopie a c"eii primare a tipului de entitate E7 n compunerea tipului de entitate EC, sub denumirea dec"eie strin. dentificarea tipului de entitate JprinteK i a tipului de entitate JfiuK depinde de

    participarea entitilor la relaie. 4ipul de entitate care particip parial la relaie este desemnat ca

    fiind JprinteK iar cel cu participare total JfiuK. 'ac ambele tipuri de entitate particip parial sautotal la relaie, atunci tipurile de entiti se pot evidenia ca fiind JprinteK sau JfiuK arbitrar. 5ncazul n care participarea este total, putem ncerca s combinm cele dou tipuri de entiti ntr-unasingur. %ceast compunere poate s fie posibil n cazul n care nici unul dintre cele dou tipuri deentiti nu mai ia parte la alt relaie.

    ;ipurile de relaii binare de tipul unu9la9multe (&

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    27/33

    Cap familie

    Nr_+at #$%&

    Nr_pers

    Nr_pers_prezent

    Nr_c"ei

    $ond_rulmen

    $ond_reparati

    )lte_fonduri

    Sef de scara

    Nr_+at #$%&

    'ata_intrare_fun

    !ocatari

    Nr_+at

    Nr_loc #$%&

    Scara #$%&

    ,ta-

    )partament

    Nume

    $igura -.-. E6emplu de relaie superclas9subclas

    %ocumentarea relaiilor i a atributelor din c"eile strine

    %ctualizm dicionarul de date, introduc)nd fiecare atribut nou introdus n compunerea uneic"ei la acest pas.

    'asul *$-$ 8alidarea= utiliznd normalizarea

    *biectivul( !alidarea modelului logic, utiliz)nd te"nica normalizrii.E6aminm procesul de normalizare dup cum am descris n capitolul C. Prin normalizare

    trebuie s demonstrm c modelul creat este consistent, conine redundan minimal i arestabilitate ma6im.

    Gormalizarea este procesul prin care se decide dac atributele pot sau nu s rm)nmpreun. 2onceptul de baz a teoriei relaiilor este c atributele sunt grupate mpreun pentru ce6ist o relaie logic ntre ele. 2)teodat baza de date nu este cea mai eficient. %cesta seargumenteaz prin urmtoarele( Proiectarea normalizat organizeaz datele n funcie de dependenele funcionale. 'eci acest

    proces este situat undeva ntre proiectarea conceptual i cea fizic.

    Proiectul logic nu este un proiect final. El a$ut proiectantul s neleag natura datelor nntreprindere. Proiectul fizic poate fi diferit. E6ist posibilitatea ca unele tipuri de entiti s sedenormalizeze. 4otui normalizarea nu este un timp pierdut.

    Proiectul normalizat este robust i independent de anomaliile de actualizare prezentate ncapitolul C.

    2alculatoarele moderne au mult mai mult putere de calcul, ca cele de acum c)iva ani. 'inaceast cauz, c)teodat este mai convenabil implementarea unei baze de date cu puinredundan, dec)t suportarea c"eltuielilor pentru procedurile adiionale.

    Gormalizarea produce o baz de date care va fi uor e6tensibil n viitor.

    Procesul de normalizare include urmtoarele etape mari(

    /orma Gormal +nu 7G/, eliminarea grupurilor repetitiveD

    C>

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    28/33

    /orma Gormal 'oi CG/, eliminarea dependenelor pariale de c"eia primarD

    /orma Gormal 4rei FG/, eliminarea dependenelor tranzitive de c"eia primarD

    /orma Gormal Bo8ce-2odd B2G/, eliminarea anomaliilor care au mai rmas.

    'asul *$2$ 8alidarea modelului prin tranzacii

    *biectivul( !erificarea ca modelul de date suporte toate tranzaciile cerute de utilizator.5n acest pas se valideaz baza de date prin verificarea tranzaciilor ce se cer de utilizator.

    #u)nd n considerare tipurile de entiti, relaiile, c"eile primare i strine, ncercm s rezolvmmanual cerinele utilizatorilor. 'ac reuim s rezolvm fiecare tranzacie cerut, atunci nseamnc modelul creat este valid. 'ac nu putem rezolva o tranzacie, atunci este foarte posibil s fi omisun atribut, o relaie, sau o entitate din modelul de date.

    4rebuie s e6aminm n dou posibiliti, dac baza de date suport tranzaciile cerute. +nadintre ele ar fi prin rezolvarea de tranzacii. 'e e6emplu s lum relaia dintre /urnizori i

    2"eltuieli e6emplificat n figura F.H.

    Pro/oaca

    $urnizori

    Cod_$urnizor

    'enumire

    Cod_fiscal #)%1&

    Cont

    anca

    Strada

    Nr

    l

    Sc)p

    !ocalitate

    0udet

    C"eltuieli

    Nr_Crt

    Cod_$urnizor #$%&

    Cod_c"eltuiala

    Nr_factura

    'ata_factura

    (aloare_factura

    $igura -.1.E6emplu de relaie pentru validarea prin tranzacii.

    )nserarea de detalii despre un nou furnizor$

    2"eia primar al acestei entiti este GrLfurnizor. 'eci prima dat verific dac numrulintrodus nu e6ist de$aD dup care n caz c nu e6ist acest cod, inserez detaliile despre furnizor.'ac e6ist de$a codul, nu admit inserarea. Pot verifica i e6istena codului fiscal, care pentruaceast entitate este c"eie alternant.

    tergerea detaliilor despre un furnizor

    &e caut codul furnizorului de ters. 'ac e6ist se terge furnizorul, actualiz)ndu-se ic"eia strin n entitatea 2"eltuieli. 'ac nu e6ist codul cerut, atunci apare un mesa$ de eroare inu este ters nici un furnizor.

    % doua modalitate de verificare trebuie folosit n cazul n care avem entiti care nu iauparte direct la nici o tranzacie. Pentru verificarea acestor entiti, vom verifica nite interogripregtite special.

    'asul *$3$ %esenarea diagramei E,$

    *biectivul( 'esenarea diagramei Entit8-Relations"ip, care este reprezentarea logic avederilor utilizatorilor aspra ntreprinderii.

    CA

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    29/33

    'asul *$4$ )dentificarea regulilor de integritate$

    *biectivul( dentificarea regulilor de integritate pentru vederile utilizatorilor asupra

    ntreprinderii.Regulile de integritate sunt importante pentru a prote$a baza de date mpotriva posibilelorinconsistene. 'ac este necesar, putem produce un proiect fizic de baz de date, pentru a puteavedea mai uor ce reguli sunt necesare.

    !om considera cinci tipuri de reguli de integritate( necesitatea datelor,

    reguli asupra domeniului atributelor,

    integritatea entitilor,

    integritatea referinelor,

    regulile ntreprinderii.

    Necesitatea datelor

    E6ist atribute care nu pot conine valoarea nul, ci trebuie s aib totdeauna o valoare. 'ee6emplu fiecare c"eltuial nregistrat trebuie s aib asociat un furnizor al serviciilor sau alobiectelor ce se pltesc prin acea c"eltuial.

    %ceste reguli de$a le-am identificat, c)nd am documentat atributele n pasul 7.F.

    ,eguli asupra domeniului atributelor$

    +nele atribute au un domeniu de definiie bine definit. %ceste domenii trebuie respectate.'omeniile de definiie au fost de$a identificate c)nd am documentat domeniile atributelor n pasul

    7.H.)ntegritatea entitilor$

    2"eia primar a entitilor nu poate lua valori nule. 'e e6emplu fiacare furnizor trebuie saib un cod diferit de zero.

    %ceste reguli au fost de$a identificate, c)nd am documentat c"eile primare n pasul 7..

    )ntegritatea referinelor

    2"eia strin din tipul de entitate JfiuK face legtura cu o entitate din tipul de entitateJprinteK. 'eci, dac c"eia strin conine o valoare, ea trebuie neaprat s se regseasc i n tipulde entitate JprinteK. 'e e6emplu tipul de entitate 2"eltuieli conine c"eia strin 2odLfurnizor,care se refer la /urnizori2odLfurnizor. 'ac aceast c"eie nu este nul, atunci trebuie s gsim

    un furnizor care s aib acel cod.Prima ntrebare pe care trebuie s ne-o punem este( Poate fii c"eia strin nul3 5n cazul

    e6emplului nostru asta ar nsemna c e6ist c"eltuieli care nu se pltesc nimnui. %ceste cazuri nusunt admise de lege, deci nu putem avea valoare nul n c"eia strin din tipul de entitate 2"eltuieli.

    5n general dac participarea tipului de entitate JfiuK este total, atunci nu putem avea valoarenul n c"eia strin. 5n caz contrar putem avea valoare nul.

    Pentru a demonstra diferitele cazuri la definirea acestor reguli, folosim relaia de mai susdintre /urnizori i 2"eltuieli, care este de tipul 7(M. 2onsiderm urmtoarele cazuri(

    !azul (& )nserarea unei entiti >n tipul de entitate ?fiu@ 0!"eltuieli1& Pentru a verificaintegritatea referinei, verificm dac atributele din componena c"eii strine 2odLfurnizor suntvide, sau s e6iste entitate n tipul de entitate JprinteK care s aib valoare c"eii primare egal cuvaloare c"eii strine.

    !azul *& tergerea unei entiti din tipul de entitate ?fiu@ 0!"eltuieli1& tergerea uneientiti din tipul de entitate JfiuK nu cauzeaz probleme cu privin la integritatea referinelor.

    C=

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    30/33

    !azul -& Actualizarea c"eii strine >n tipul de entitate ?fiu@ 0!"eltuieli1& %cest caz estesimilar cazului 7.

    !azul 2& tergerea unei entiti din tipul de entitate ?printe@ 0Furnizori1& 'ac se terge oentitate din tipul de entitate JprinteK, integritatea referinelor se stric n cazul n care e6ist entiti

    n tipul de entitate JfiuK, care se refer la entitatea tears. E6ist strategii severe de a rezolvaintegritatea referinelor( /NRN %2O+GE Geacceptarea tergerii unei entiti din tipul de entitate printe, dac acesta

    este referit de o entitate din tipul de entitate fiu. 5n cazul nostru, nu se accept tergereafurnizorului, dac el are o factur de ncasat.

    2%&2%'N 'ac o entitate din tipul de entitate printe este tears, se terg automat toateentitile din tipurile de entiti fiu. 'ac tipurile de entiti fiu au i ei la r)ndul lor alte tipuri deentiti fiu, se va efectua tergerea n cascad n toate tipurile de entiti fiu, p)n la ultimul nivel.2u alte cuvinte, dac se terge un furnizor, atunci automat se terge fiecare factur pe care o arede ncasat acest furnizor.

    &E4%RE #% G+# 'ac o entitate din tipul de entitate printe se terge, atunci se vor seta lavaloare nul toate c"eile strine ai tipurilor de entiti fiu n cascad p)n la ultimul nivel. 5ne6emplul nostru, dac se terge un furnizor, atunci se vor seta la valoare nul toate referinele laacest furnizor n tipul de entitate 2"eltuieli. %cesta nseamn c nu vom tii ca anumite c"eltuielila ce furnizor trebuie pltite.

    &E4%RE MP#24N Este analog cazului de setare la nul, cu diferena c aici se seteazc"eia strin la o valoare implicit n loc de valoare nul. 5n e6emplul nostru putem seta c"eiastrin din 2"eltuieli la o valoare a c"eii primare din /urnizori, care s conin un furnizor

    predefinit - de e6emplu cu numele de J/urnizor tersK. /NRN M*'/2%RE 5n cazul tergerii unei entiti din tipul de entitate printe, nu se

    actualizeaz deloc c"eile strine din tipurile de entiti fiu.!azul 4&

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    31/33

    % treia activitate ma$or n proiectarea bazei de date logice este crearea modelului logicglobal, prin compunerea tuturor modelelor locale. 'up combinarea modelelor locale, trebuievalidat modelul global prin te"nica de normalizare, dup care prin te"nica tranzaciilor. %cest

    proces utilizeaz aceleai te"nici pe care le-am descris la paii C.F. i C.H.

    %cest proces este foarte important n proiectarea bazei de date, pentru c el demonstreaz creprezentarea ntreprinderii este independent de orice utilizator, funcie sau aplicaie. %ctivitiledin acest pas sunt(

    Pasul F.7. 2ompunerea modelelor logice locale ntr-un model logic global.

    Pasul F.C. !alidarea modelului logic global.

    Pasul F.F. !erificarea posibilitii de a completa baza de date n viitor.

    Pasul F.H. 'esenarea diagramei ER finale.

    Pasul F.. !erificarea modelului logic global cu a$utorul utilizatorului.

    'asul -$($ !ompunerea modelelor logice locale >ntr9un model logic global$

    *biectivul( 2ompunerea tuturor modelelor logice locale ntr-un model logic global alntreprinderii.

    5n cazul unui sistem mic, cu puine vederi ai utilizatorilor, este relativ uor de a compunemodelele logice locale. 5n cazul unui sistem mai mare ns, trebuie s urmm un proces sistematicde realizare a modelului global. Paii acestui proces sunt urmtoarele(7 !erificarea numelor entitilor i a c"eilor lor primare.C !erificarea numelor relaiilor.F 2ompunerea entitilor de pe vie:-urile locale.

    H ncluderea fr compunere a entitilor care apar pe doar una dintre vie:-uri. 2ompunerea relaiilor de pe vie:-urile locale.? ncluderea fr compunere a relaiilor care apar pe doar una dintre vie:-uri.> 2utarea entitilor i a relaiilor care lipsesc dac e6ist.A 2utarea c"eilor strine.= 2utarea regulilor de integritate.7I 'esenarea modelului logic global.77 %ctualizarea documentaiei.

    2el mai uor de compus mai multe modele locale este compunerea succesiv a dou c)te

    dou dintre modele.0(1 8erificarea numelor entitilor i a c"eilor lor primare$%ceast verificare se face folosind i dicionarul creat n decursul pailor de dinainte.

    Probleme apar doar atunci c)nd(

    'ou entiti au acelai nume, dar sunt de fapt diferii.

    'ou entiti sunt aceleai, dar nu au aceleai nume.Probabil va fi necesar analizarea atributelor entitilor, pentru a rezolva aceast problem.

    5n particular, putem utiliza c"eia primar i numele entitii, pentru a identifica entitileec"ivalente.

    0*1 8erificarea numelor relaiilor$

    %ceast activitate este asemntoare celui descris la entiti.0-1 !ompunerea entitilor de pe vie9urile locale$

    F7

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    32/33

    E6aminm numele i atributele entitilor ca vor fi compuse. %ctivitile care se includ nacest pas sunt(

    2ompunerea entitilor care au aceleai nume i aceleai c"ei primare.

    2ompunerea entitilor care au aceleai nume, dar cu c"ei primare diferite.

    2ompunerea entitilor care au nume diferite, cu c"ei primare egale sau diferite.!ompunerea entitilor care au aceleai nume i aceleai c"ei primare$ 5n general entitile

    cu aceleai c"ei primare reprezint Jlumea realK, i deci pot fi compuse. %tributele care apar nentitile de pe ambele vie:-uri, vor fi trecute doar o singur dat. 'ac ntr-un vie: apare unatribut compus, iar ntr-un alt vie: acelai atribut dar descompus n atribute simple, atunci vomntreba, dac se poate, utilizatorii pentru a decide asupra formei de utilizare a atributului.

    !ompunerea entitilor care au aceleai nume= dar au c"ei primare diferite$ 5n astfel desituaii, cutm dou entiti care au aceleai nume i nu au aceleai c"ei primare, dar au aceleaic"ei candidat. 2ele dou entiti pot fi compuse, urm)nd ca dup compunere s alegem o c"eie

    primar, restul rm)n)nd c"ei alternante.!ompunerea entitilor care nu au nume comune i nu au aceleai c"ei primare$%ceste

    entiti se pot depista prin analiza atributelor celor dou entiti.021 )ncluderea 0fr compunere1 a entitilor care apar doar >ntr9un vie$Pasul anterior identific toate entitile comune. 2elelalte entiti, se vor include n modelul

    logic global e6act aa cum apar n vie:-ul respectiv.031 !ompunerea relaiilor de pe modelele locale$5n acest pas analizm similitudinile dintre relaii de pe diferite modele locale. 5n timpul

    compunerii relaiilor trebuie rezolvate i conflictele dintre relaii, ca i regulile de cardinalitate iparticipare. Putem compune relaii care au aceleai nume i acelai scop, sau acelai scop, dar numediferite.

    041 )ncluderea 0fr compunere1 a relaiilor care apar doar pe un vie$Relaiile care au rmas neincluse n modelul global dup pasul anterior, se includ n modelulglobal fr modificare.

    061 !utarea entitilor i relaiilor care lipsesc$Este unul din cei mai grei pai din crearea modelului global. 4rebuie cutate acele entiti i

    relaii, care s-au omis la paii anteriori i n-au a$uns n modelul global.071 !utarea c"eilor strine$5n decursul pailor anterioare, s-au modificat entiti, c"ei primare i c"ei strine. 5n acest

    pas verificm dac c"eile strine sunt corecte n fiecare entitate fiu i efectum toate modificrilenecesare.

    0B1 !utarea regulilor de integritate!erificm dac regulile de integritate a modelului global nu sunt n conflict cu reguliledefinite la modelele locale. /iecare problem de acest gen se rezolv cu a$utorul utilizatoruluisistemului.

    0(C1 %esenarea diagramei E,$%cum desenm diagrama ER pentru modelul global de date.0((1 Actualizarea documentaiei$%ctualizm documentaia, ca s reflecte toate modificrile aduse n acest pas modelului.

    'asul -$*$ 8alidarea modelului logic global$

    *biectivul( !alidarea modelului global logic de date, folosind normalizarea, dup carefolosind tranzaciile cerute.

    %cest pas este ec"ivalent cu paii C.F. i C.H., unde am validat modelul local de date.

    FC

  • 7/26/2019 Proiectarea Bazelor de Date Relationale

    33/33

    'asul -$-$ 8erificarea posibilitilor de e:tindere a bazei de date >n viitor$

    *biectivul( 'eterminarea ca dac modelul se acomodeaz uor la modificri oric)t de mari

    ce pot intervenii n viitor.Este important ca modelul creat s fie e6pansibil n viitor. 'ac modelul nu are aceastcalitate, viaa lui poate fi scurt i pentru o mai mare modificare va trebui refcut de la nceput.

    'asul -$2$ %esenarea diagramei EntitD9,elations"ip finale$

    *biectivul( 'esenarea unei diagrame ER, care s reprezinte modelul global de date alntreprinderii.

    'asul -$3$ 8erificarea modelului global cu ajutorul utilizatorului$

    *biectivul( !erificarea c modelul global reprezint n totalitate realitatea.5n acest moment modelul global este complet i documentat. 5mpreun cu utilizatorul

    sistemului se verific acest model i se aduc eventualele corecturi prin ntoarcerea la paii n cauz.