Sunteți pe pagina 1din 116

Universitatea Transilvania din Braov Facultatea de Inginerie tehnologic Catedra de Inginerie economic i sisteme de producie

ef lucr. dr. ing. Andrea

!AC"#!$CU

%&!'UC&A&!A AT!'"& pentru anul II Inginerie economic () ani de studiu* resp. BA+! ! AT! %entru anul I, Inginerie economic (- ani de studiu*

Braov .//0

Cuprins
1. Baze de date. Proiectare. Implementare. Gestionare.................................................................................5 1.1 Introducere n BD. Tratarea datelor. Sisteme de gestionare a bazelor de date. Sisteme bazate pe fi iere..........................................................................................................................................................5 1.1.1 Introducere.....................................................................................................................................5 1.1.2 Tratarea datelor prin sisteme bazate pe fi iere ..............................................................................! 1.1." Tratarea datelor prin baze de date #BD$.........................................................................................% 1.1.& Sistemul de gestionare a bazei de date #SGBD$............................................................................% 1.1.5 'omponentele mediului SGBD...................................................................................................1( 1.1.! Proiectarea BD ) sc*imbarea de paradigm+................................................................................12 1.1., Pozi-iile persoanelor din mediul BD............................................................................................1" 1.1.. /0anta1ele i deza0anta1ele SGBD..............................................................................................15 1.1.. 2ezumatul capitolului 1.1 ...........................................................................................................1, 1.1.% 3ntreb+ri la capitolul 1.1...............................................................................................................1. 1.2. 4odelul rela-ional #SGBD2$.............................................................................................................1% 1.2.1 Terminologie................................................................................................................................1% 1.2.2 Integritatea rela-ional+.................................................................................................................2" 1.2." 5ederi...........................................................................................................................................2& 1.2.& 2ezumatul capitolului 1.2............................................................................................................25 1.2.5 3ntreb+ri la capitolul 1.2...............................................................................................................2! 1." Planificarea6 proiectarea i administrarea BD.....................................................................................2! 1.".1 'iclul de 0ia-+ al sistemelor informa-ionale................................................................................2! 1.".2 7azele proiect+rii BD..................................................................................................................."( 1."." Proiectarea aplica-iilor................................................................................................................."2 1.".& /dministrarea datelor i a bazei de date......................................................................................"" 1.".5 2ezumatul capitolului 1."............................................................................................................"& 1.".! 3ntreb+ri la capitolul 1."..............................................................................................................."5 1.&. 4odelarea 8ntitate92ela-ie #82$......................................................................................................."5 1.&.1 'onceptele modelului 82............................................................................................................"! 1.&.2 'onstr:ngeri structurale...............................................................................................................&2 1.&." Problemele modelului 82............................................................................................................&. 1.&.& 2ezumatul capitolului 1.&............................................................................................................51 1.&.5 3ntreb+ri la capitolul 1.&...............................................................................................................5" 1.5 ;ormalizarea.......................................................................................................................................5" 1.5.1 Scopul normaliz+rii......................................................................................................................5" 1.5.2 2edundan-a datelor i anomaliile de reactualizare......................................................................5" 1.5." Dependen-e func-ionale...............................................................................................................55 1.5.& Procesul de normalizare...............................................................................................................5, 1.5.5 Prima form+ normal+...................................................................................................................5. 1.5.! / doua form+ normal+ #2;7$......................................................................................................!1 1.5., / treia form+ normal+ #";7$.......................................................................................................!& 1.5.. 2ezumatul capitolului 1.5............................................................................................................!. 1.5.% 3ntreb+ri la capitolul 1.5...............................................................................................................!% 1.! 4etodologia de proiectare conceptual+ a bazelor de date..................................................................!% 1.!.1 Pasul 1. 'onstruirea modelului de date conceptual local pentru fiecare 0edere a utilizatorilor..!% 1.!.2 2ezumatul capitolului 1.!............................................................................................................,& 1.!." 3ntreb+ri la capitolul 1.!...............................................................................................................,& 1., 4etodologia de proiectare logic+ a bazelor de date pentru modelul rela-ional..................................,5
"

1.,.1 Pasul 2. 'onstruirea i 0alidarea modelului de date logic pentru fiecare 0edere a utilizatorilor.,5 1.,.2 Pasul ". 'onstruirea i 0alidarea modelului de date logic global................................................., 1.,." 2ezumatul capitolului 1.,............................................................................................................%1 1.,.& 3ntreb+ri la capitolul 1.,...............................................................................................................%2 1.. 4etodologia de proiectare fizic+ a bazelor de date pentru bazele de date rela-ionale........................%2 1...1 Pasul &. Transformarea modelului de date logic global pentru un SGBD -int+...........................%" 1...2 Pasul 5. Proiectarea reprezent+rii fizice.......................................................................................%. 1..." Pasul !. Proiectarea mecanismelor de securitate.......................................................................1(. 1...& Pasul ,. 4onitorizarea i reglarea sistemului opera-ional.........................................................11" 1...5 2ezumatul capitolului 1............................................................................................................115 1...!. 3ntreb+ri la capitolul 1..............................................................................................................11!

&

1. Baze de date. Proiectare. Implementare. Gestionare "1iectivele acestui modul sunt2 9 Cunoaterea noiunilor de 1a3 privind sistemele informatice de gestionare a 1a3elor de date relaionale4 9 %lanificarea5 proiectarea i administrarea 1a3elor de date4 1.1 Introducere n BD. Tratarea datelor. Sisteme de gestionare a bazelor de date. Sisteme bazate pe fiiere 1.1.1 Introducere Cu siguran cei mai muli dintre vs. au o idee despre ce ar putea fi o 1a3 de date (B *. Ba3ele de date au aprut ca rspuns la nevoia organi3aiilor (instituii5 6ntreprinderi5 societi comerciale etc.* de a eficienti3a evidena activitii lor5 din toate punctele de vedere2 producie5 stocuri5 aprovi3ionare5 conta1ilitate5 resurse umane5 v7n3ri etc. ,edem B 6n viaa de 3i cu 3i 8 listele de ofert ale diferiilor furni3ori de cri5 C 9uri5 cartea de telefon5 piesele 6n stoc de furni3at pentru un anumit proiect5 fie sau 6nregistrri de prelucrat de un anumit program etc. !:prim7ndu9ne mai precis5 atunci c7nd utili3m termenul de baz de date ne referim la o colecie structurat de articole de date5 6ntre care e:ist legturi logice. " astfel de colecie5 o B 5 a fost construit pentru a servi pentru o anume aplicaie5 repre3ent7nd o lume 6n miniatur. Articolele dintr9o B se manipulea35 pentru a e:trage informaiile utile. Un sistem de gestionare de baz de date ($;B *5 sau data1ase management s<stem ( B=$* este softul care permite ca 1a3ele de date s fie definite>configurate5 construite i e:ploatate>manipulate. "1iectul cursului nostru este $;B &5 sistemul de gestionare de 1a3e de date relaionale5 cu aplicaii 6n =$9Access. !odelul rela"ional de BD

!:ist trei modele u3uale de implementare de B 2 ierarhic5 reea sau relaional. Fiecare se 1a3ea3 pe conceptul de date stocate ca set sau mulime de 6nregistrri. Imaginai9v un set de fie5 de e:emplu. =odelele ierarhic i reea se 1a3ea3 pe parcurgerea legturilor dintre date pentru a lucra cu 1a3a de date4 de regul sunt utili3ate pentru sisteme9cadru generale5 vaste i nu fac o1iectul cursului nostru. $istemele de gestionare a 1a3elor de date relaionale ($;B &* au cunoscut o larg rsp7ndire5 datorit modelului simplu5 relaional de date pe care9l utili3ea32 atele se pre3int su1 forma unei colecii (unui set* de relaii Fiecare relaie are forma unui ta1el (cea mai important component a unei B * &7ndurile (6nregistrrile* ta1elului repre3int entiti Coloanele (c7mpurile* ta1elului sunt atri1ute>proprieti ale acestor entiti Fiecare ta1el are un set de atri1ute5 care 6mpreun repre3int o ?cheie@ care definete fiecare entitate 6n mod unic. e e:emplu5 o societate poate avea 6n 1a3a sa de date un ta1el cu angaAaii si5 cu un r7nd>6nregistrare pentru fiecare angaAat. Ce atri1ute ar fi de interesB epinde de sigur de scopul pentru care a fost creat ta1elul5 i atri1utele sunt sta1ilite la momentul configurrii 1a3ei de date. Ca e:emplu aplicaia poate fi un tat de plat5 deci va fi nevoie5 6n afar de nume5 cod angaAat i de informaii referitoare la adres i salariu. 1.1.# Tratarea datelor prin sisteme bazate pe fiiere $uperioritatea administrrii datelor dintr9o organi3aie cu aAutorul unui sistem de gestionare de 1a3e de date ($;B * re3ult dintr9o scurt comparaie 6ntre sistemele tradiionale de date5 1a3ate pe fiiere i sistemele de gestionare a 1a3elor de date ($;B * Sistemul bazat pe fiiere este o colecie de programe de aplicaie care efectuea3 servicii pentru utili3atorii finali5 cum ar fi producerea de rapoarte. Fiecare program definete i gestionea3 propriile date. !:emplu2 o firm care furni3ea3 componente proiecte>clieni. Compartimentul maga3ie (al firmei* va ine fiiere cu2
!

pentru

diferite

9 componentele 6n stoc5 pe fia fiecrei componente apr7nd denumirea5 seria5 costul5 nr. 1uci etc. Compartimentul conta1ilitate (al firmei* va ine fiiere cu2 9 componentele 6n stoc5 documentele de achi3iie5 intrare5 denumirea5 seria5 costul5 nr. 1uci etc. 9 ieirile de componente5 cu caracteristicile i cantitile de componente5 documentaie 6nsoitoare de ieire (inclusiv numele proiectelor>clienilor ctre care se furni3ea3* Compartimentul v7n3ri (al firmei* va ine fiiere cu2 9 numele proiectelor ctre care se livrea35 inclusiv nume clieni5 numr contract5 tipuri de componente livrate 9 cerinele clienilor5 cu detalierea componentelor necesitate5 inclusiv descrierea componentelor5 gradul de urgen i prioritate etc. &e3ult urmtoarele limit ri ale sistemelor 1a3ate pe fiiere2 9 Separarea i izolarea datelor. Atunci c7nd datele sunt i3olate 6n fiiere separate5 cele care ar tre1ui s fie disponi1ile sunt mai greu de accesat. e e:emplu dac vrem s aflm care componente p7n la o anumit limit de pre i 6n ce cantitate se afl 6n stoc pentru un anumit proiect5 va tre1ui sa e:tragem date din fiierul cu proiecte i apoi din cel cu stocuri (fiiere e:ist7nd la compartimente diferite*5 va tre1ui s crem un fiier temporar care s cuprind toate aceste date. !:tragerea corect de date este dificil5 necesit7nd sincroni3area prelucrrii (6n compartimente diferite* a dou sau mai multe fiiere. 9 Dublarea datelor. in cau3a modului de a1ordare descentrali3at5 specific fiecrui compartiment5 tratarea datelor pe 1a3 de fiiere a dus la du1larea necontrolat a datelor. "1servm 6n e:emplul nostru5 c mai multe compartimente au introdus aceleai date 6n fiierele lor. u1larea datelor este de nedorit din urmtoarele cau3e2 o &isip2 introducerea datelor de mai multe ori cost timp i 1ani5 ocup spaiu suplimentar de stocare5 deci alte costuri4 o Alterarea integritii datelor5 prin du1lare5 deci datele nu mai concord. e e:emplu5 dac intrarea unor componente cu pre nou nu este comunicat de ctre compartimentul conta1ilitate celor de la maga3ie5 aceleai componente vor aprea 6n fiierele diferitelor compartimente cu pre diferit.
,

9 Dependena de date. ac este necesar de modificat structura unui fiier (de e:. mrimea unui c7mp*5 atunci tre1uie de identificat toate programele care lucrea3 cu acest fiier5 pentru a opera modificrile respective 6n fiecare dintre ele. Aceast caracteristic a sistemelor 1a3ate pe fiiere se numete dependen" program$date. 9 Incompatibilitatea fiierelor. !ste posi1il ca fiecare compartiment s9i genere3e fiiere 6n alt lim1aA de programare4 structura fiierelor va fi dependent de lim1aAul 6n care este scris programul. e e:emplu5 dac compartimentul v7n3ri vrea s afle detaliile legate de stocul e:istent pentru o anume component5 va 6ncerca s accese3e fiierul corespun3tor al compartimentului maga3ie5 plec7nd de la c7mpul ?denumire componente@ e:istent 6n fiierele am1elor compartimente4 dac fiierele sunt generate cu lim1aAe diferite5 va tre1ui s intervin un programator care s scrie un program de transformare a fiierelor 6ntr9un format comun. 9 Interogarea fix sau proliferarea programelor de aplicaie . Tratarea datelor prin sisteme de fiiere a repre3entat un progres semnificativ fa de sistemele manuale. Au crescut cererile de interogri noi sau modificate5 care necesitau de fiecare dat intervenia programatorului5 care tre1uia s scrie interogrile. Astfel au aprut dou situaii. %entru a limita volumul de lucru al programatorilor5 s9a aAuns la fi:area numrului de interogri disponi1ile. %entru a satisface numrul cresc7nd de cereri de interogri5 a proliferat numrul de aplicaii4 au re3ultat programe ineficiente5 scrise 6n gra15 cu documentaie limitat i dificil de 6ntreinut. Accesul la fiiere este limitat la un singur utili3ator o dat5 deci nu e:ista partaAarea accesului pentru mai muli utili3atori din acelai compartiment. 'imitrile tratrii datelor 1a3at pe fiiere au dou cau3e2 (C* definiia datelor este 6ncorporat 6n programele de aplicaie5 6n loc de a fi stocat independent4 (.* nu e:ist control asupra accesului i manipulrii datelor dincolo de cel impus de programele de aplicaie.

Ca urmare a aprut o nou tratare a datelor5 prin 1a3e de date (B *5 gestionate de sisteme de gestionare a 1a3elor de date ($;B *.

1.1.% Tratarea datelor prin baze de date &BD' Baza de date este o colecie partaAat de date 6ntre care e:ist relaii logice (i o descriere a acestor date*5 proiectat pentru a satisface necesitile informaionale ale unei organi3aii. Ba3a de date nu mai este deinut de un singur compartiment al unei organi3aii5 ci este o resurs comun5 partaAat. atele sunt integrate5 cu o du1lare minim. B conine datele operaionale ale organi3aiei i descrierea acestora. " baz de date este deci o colecie autodescris de nregistrri integrate. Aceast caracteristic B este cunoscut i ca independen"a program $ date. " BD rela"ional conine entitile5 atri1utele i relaiile logice dintre acestea5 repre3entate printr9o diagram entitate 8 relaie (!&*. ,om reveni 6n detaliu asupra modelului !& de B . 1.1.( Sistemul de gestionare a bazei de date &SGBD' SGBD este un sistem de programe care permite utili3atorului definirea5 crearea i 6ntreinerea 1a3ei de date i accesul controlat la aceasta. $;B const 6n elemente de softDare care interacionea3 cu programele de aplicaie ale utili3atorului pe de o parte i cu 1a3a de date pe cealalt. Un $;B ofer o serie de faciliti2 9 permite definirea B printr9un lim1aA de definire a datelor ( '* 9 permite inserarea5 reactuali3area5 tergerea i e:tragerea de date printr9un lim1aA de manipulare a datelor ( ='*. B fiind un depo3it unic i central de date i descrieri de date5 =' poate oferi o interogare general a acestor date5 numit limba) de interogare. Un astfel de lim1aA de interogare este S*+5 care elimin utili3area
%

unui set fi: de interogri disponi1ile5 ca 6n ca3ul tratrii datelor prin sisteme de fiiere. 9 "fer accesul controlat la B . Astfel $;B poate furni3a2 o Un sistem de securitate5 pentru a 6mpiedica accesul utili3atorilor neautori3ai o Un sistem de integritate5 care menine concordana datelor stocate4 o Un sistem de control al utili3rii simultane5 care permite accesul partaAat la B 4 o Un sistem de control al refacerii5 care restaurea3 B 6ntr9o stare precedent concordant5 ca urmare a unei defeciuni hard sau soft4 o Un catalog accesi1il utili3atorilor5 care conine descrieri ale datelor din B 9 "fer generarea de vederi/views numite i moduri de vizualizare a D prin mecanismul de ,izualizare. Astfel se vor afia numai acele date din B care sunt utile utili3atorului5 elimin7ndu9se 6ncrcarea re3ultatului unei interogri cu date e:istente 6n B 5 dar care nu interesea3 utili3atorul. =odurile de vi3uali3are ofer i alte avantaAe2 o Un anumit nivel de securitate4 se e:clud date care nu tre1uie v3ute de anumii utili3atori4 o " personali3are a aspectului B . e e:emplu redenumirea c7mpurilor dup preferinele utili3atorului4 o " imagine coerent5 neschim1at a structurii B 5 chiar dac B 6nsi este modificat4 prin modul de vi3uali3are se va afia 6n continuare structura presta1ilit a B .

1.1.- Componentele mediului SGBD =ediul $;B are cinci componente principale2 ate 99 99 %roceduri 8 %unte "m %ersoane

99 EardDare 9 $oftDare 99 =ain Hardware

1(

!vident5 pentru a funciona5 $;B au nevoie de elemente hardDare5 care pot fi un singur %C p7n la o reea. Un $;B poate necesita un anumit tip de elemente hardDare sau de sistem de operare5 sau poate funciona pe o diversitate de elemente hardDare i platforme4 Access ./// este de e:. un $;B relaionale pe F. 1ii5 pentru crearea de aplicaii clasice sau de tip client9server pentru B 5 pentru sistemele de operare GindoDs H: i GindoDs #T )I4 de asemenea5 un $;B necesit un minimum de memorie (=$9a2 si3e2 .5F. JB* i spaiu de disc (=$9Access2 si3e on disK2 ) JB*. " configuraie > arhitectur client$ser,er este pre3entat 6n figura C.C5 pentru o organi3aie cu patru filiale legate 6ntr9o reea de %Curi5 deservite de un server central. %e server se afl programele bac.$end5 adic partea din $;B care administrea3 i controlea3 accesul la B . %e calculatoarele din diversele locaii>%C clieni se afl aplicaiile front$end5 adic partea din $;B care constituie interfaa cu utili3atorul. Fig. C.C Software Componenta soft cuprinde programele $;B i programele de aplicaie 6mpreun cu sistemele de operare5 inclusiv softDare de reea5 dac este ca3ul. %rogramele aplicaie sunt scrise 6ntr9un lim1aA de programare din generaia a treia (C5 Co1ol5 Fortran* sau de generaia a patra 8 $L'5 incorporat 6ntr9un lim1aA de generaia a treia. $;B poate avea propriile instrumente de generaia a patra5 care permit de3voltarea rapid de aplicaii prin furni3area unui lim1aA de interogare i a unor generatoare de rapoarte5 formulare5 grafic etc.
11

Instrumentele de generaia a patra 6m1untesc productivitatea i permit reali3area unor programe uor de 6ntreinut. Datele atele repre3int cea mai important component a unui $;B 5 d.p.d.v. al utili3atorului4 datele M punte 6ntre componentele main i cele umane. B conine2 9 ate operaionale 9 =eta9date5 adic date despre date. $tructura B este numit schem i are mai multe ta1ele sau fiiere5 fiecare av7nd mai multe atri1ute (c7mpuri*. Procedurile %rocedurile se refer la instruciunile i regulile care guvernea3 proiectarea i utili3area B . %rocedurile sunt necesare at7t administratorilor5 c7t i utili3atorilor de B i pot cuprinde instruciuni referitoare la 4 9 deschiderea unei sesiuni de lucru 6n $;B 4 9 utili3area unei anumite faciliti a $;B sau a unui program aplicaie4 9 pornirea i oprirea $;B 4 9 efectuarea de copii de siguran a B 4 9 tratarea defeciunilor hard sau soft4 9 modificarea structurii unui ta1el5 reorgani3area B pe mai multe discuri5 arhivarea datelor etc. Persoanele $unt ultima component a unui mediu $;B i va fi discutat la paragraful N%o3iiile persoanelor din mediul $;B @. 1.1./ Proiectarea BD 0 sc1imbarea de paradigm $tructura unei B (entitile5 atri1utele5 relaiile* este determinat 6n timpul proiectrii B . A1ordarea proiectrii unei B este diferit de cea a sistemelor pe 1a3 de fiiere5 unde totul era dictat de nevoile aplicative ale departamentelor individuale. On ca3ul B tre1uie de considerat 6nt7i datele apoi aplicaiile. Aceast schim1are a modului de tratare se numete sc!imbare de paradigm.
12

Cau3a principal a eecurilor sistemelor informaionale este lipsa aplicrii unei metodologii de proiectare a B 6n mod structurat. Astfel re3ult B ineficiente pentru cerinele aplicaiilor5 documentaia este limitat5 6ntreinerea dificil. 1.1.2 Pozi"iile persoanelor din mediul BD In acest paragraf se e:aminea3 a -9a component a mediului $;B 5 anume persoanele. $e pot identifica patru tipuri distincte de persoane implicate 6n mediul $;B 2 9 administratorii de date i de B 4 9 proiectanii de B 4 9 programatorii de aplicaii4 9 utili3atorii finali. 3dministratorii de date i de BD B i $;B sunt resurse comune care tre1uie gestionate ca orice resurs. $arcinile administratorului de date (D3 M data administrator*2 9 responsa1il cu gestionarea resurselor de date2 planificarea5 ela1orarea i 6ntreinerea strategiilor i procedurilor 1a3ei de date 9 responsa1il cu proiectarea conceptual>logic a B 9 consultarea i 6ndrumarea managerilor superiori cu privire la direcia de de3voltare a B 5 a.6 B s spriAine o1iectivele generale ale organi3aiei. Administratorul de 1a3e de date (DB3 8 data 1ase administrator* este responsa1il cu reali3area fi3ic a B 5 av7nd urmtoarele sarcini2 9 proiectarea i implementarea B 5 9 securitatea i controlul integritii B 5 9 6ntreinerea sistemului operaional5 9 asigurarea de performane satisfctoare pentru aplicaii i utili3atori4 &olul BA este mai tehnic i necesit cunoaterea 6n detaliu a $;B i a mediului acestuia. Proiectan"ii de BD
1"

!:ist proiectani de B

logice i proiectani de B

fi3ice.

"roiectanii de D logice2 ?ce anumeB@ 9 se ocup cu identificarea datelor (entiti i atri1ute* i relaiilor dintre acestea5 i de constr7ngerile asupra celor care vor fi stocate 6n B 4 9 tre1uie s cunoasc foarte 1ine datele organi3aiei i a regulilor de operare ale organi3aiei4 9 tre1uie s implice toi posi1ilii utili3atori ai B 6n modelul creat. !tape de proiectare a B logice2 a* proiectarea conceptual a B 5 independent de detaliile de implementare (de e:. $;B utili3at5 programele de aplicaie5 lim1aAele de programare etc.* 1* proiectarea logic a B 5 care se 1a3ea3 pe un anumit model5 de e:. relaional5 ierarhic5 6n reea5 orientat pe o1iecte. "roiectanii de D fizice (?Cum anumeB@* preia modelul logic i sta1ilete reali3area fi3ic2 9 transpunerea modelului logic de date 6ntr9un set de ta1ele i constr7ngeri privind integritatea4 9 selectarea de structuri de stocare i metode de acces specifice5 a.6. s se o1in performane 1une ale datelor in activitile legate de B 4 9 msuri referitoare la securitatea datelor. %roiectarea fi3ic a unei B tre1uie s in cont de $;B ul avut 6n vedere4 proiectantul tre1uie s cunoasc funcionalitatea acestui $;B i avantaAele i de3avantaAele fiecrei variante de implementare a B . $trategia de stocare aleas tre1uie s in cont de modul de utili3are. Programatorii de aplica"ii "dat reali3at B tre1uie implementate programele de aplicaie ce confer funcionalitatea cerut de utili3atorii finali. Aceasta este sarcina programatorilor de aplicaii. Fiecare program conine instruciuni care 6i cere $;B s efectue3e o operaie oarecare 6n B (e:tragere5 inserare5 reactuali3are5 tergere de date*. %rogramele pot fi scrise 6ntr9un lim1aA de generaia a treia sau a patra.
1&

4tilizatorii finali $unt clienii pentru care a fost proiectat5 implementat i este 6ntreinut B 5 pentru a le satisface necesitile informaionale. Utili3atorii simpli nu sunt contieni de $;B . Accesea3 B prin programe de aplicaie speciale5 simplificatoare. !i folosesc comen3i simple5 opiuni din meniu. Utili3atorul simplu nu tie nimic despre B sau $;B (de e:. v7n3torul care citete codul de 1are pentru a afla preul unui produs. !:ist totui un program care citete codul de 1are5 caut preul articolului respectiv 6n B 5 modific c7mpul cu stocul de articole5 afiea3 preul la cas*. Utili3atorii sofisticai sunt familiari3ai cu structura B i facilitile $;B . %ot utili3a un lim1aA de interogare de nivel 6nalt ($L'*. %ot scrie programe de aplicaie pentru u3 personal. 1.1.5 3,anta)ele i deza,anta)ele SGBD 3,anta)e 9 #ontrolul redundanei datelor4 nu se elimin 6n 6ntregime redundana5 ci se controlea3 volumul inerent al acesteia 6n B . 9 #oerena datelor4 datorit eliminrii redundanei5 orice reactuali3are a unui articol (stocat o singur dat* se face o singur dat5 elimin7ndu9se incoerena. ac articolul este stocat de mai multe ori5 $;B garantea3 coerena tuturor e:emplarelor din articolul respectiv. 9 $ai multe informaii obinute de la aceeai cantitate de date 4 ca urmare a integrrii datelor operaionale5 dou sau mai multe fiiere pot fi integrate5 e:trg7ndu9se mai multe informaii. 9 "arta%area datelor4 fiierele sunt deinute de compartimentele organi3aiei care le utili3ea35 dar fiind parte din B 5 ele sunt la dispo3iia tuturor utili3atorilor interesai. 9 Integritatea crescut a datelor 4 se refer la validitatea i coerena datelor stocate. Integritatea este e:primat prin constr&ngeri5 care repre3int reguli de coeren pe care B nu are voie s le 6ncalce. 9 Securitatea crescut4 se refer la protecia B fa de utili3atorii neautori3ai. Fr sisteme de securitate5 integrarea ar face datele
15

9 9

foarte vulnera1ile. $ecuritatea se reali3ea3 prin nume de utili3atori plus parole. $e poate limita tipul de operaie efectuat. 'plicarea standardelor4 prin integrare se pot aplica standarde organi3aionale5 naionale sau internaionale5 ca de e:. formatul datelor5 convenii referitoare la denumire5 pt. a facilita schim1uri 6ntre sisteme. (conomia de scal4 6n loc de 1ugete pentru fiecare compartiment pentru crearea unui sistem propriu de B 1a3at pe fiiere5 e:ist un 1uget unic com1inat5 care permite alocarea fondurilor economisite pentru 6m1untirea sistemului. (c!ilibrul ntre cerinele aflate n conflict 4 cerinele posi1il 6n conflict ale diferitelor compartimente referitoare la utili3area B sunt gestionate la nivel de BA5 care va lua deci3iile ce se impun i va acorda prioritate aplicaiilor maAore. )mbuntirea accesibilitii datelor i capacitii de rspuns 4 lim1aAele de interogare i generatoare de rapoarte asociate $;B ofer utili3atorilor posi1ilitatea unor interogri ad9hoc5 fr a apela la programator. "roductivitatea crescut4 $;B furni3ea3 standardele necesare aplicaiei5 economisind timpul programatorului. #apacitatea de ntreinere mbuntit* prin independena de date4 6ntr9un $;B descrierile datelor sunt separate de aplicaii5 aplicaiile fiind imune la modificarea descrierii datelor4 este caracteristica de independen program9date5 care uurea3 6ntreinerea aplicaiilor din B . #oncurena/simultaneitatea mbuntit4 se garantea3 alterarea datelor 6n situaia c7nd acelai fiier este utili3at simultan de mai muli utili3atori. )mbuntirea serviciilor de salvare de siguran i refacere . $e minimi3ea3 pierderile aprute ca urmare a unor defeciuni. #u este necesar reali3area 3ilnic de copii de siguran.

Deza,anta)e 9 #omplexitatea+ pt. ca un $;B s fie funcional5 acesta va evolua 6ntr9un sistem soft e:trem de comple:. Funcionalitatea tre1uie cunoscut de ctre toi cei implicai 6n B 5 de la A la utili3atorul final5 pentru a o putea e:ploata. ac $;B este greit 6neles5 B proiectat poate fi greit5 cu toate consecinele acestei situaii.

1!

9 Dimensiunea+ Fiind un element soft foarte complicat5 $;B ocup mult spaiu pe disc i necesit mult memorie pentru a funciona eficient. 9 #ostul S, D+ varia3 6n funcie de mediu i funcionalitate. e la C-/ U$ pt. un %C cu un utili3ator5 la P-/./// U$ pt. un sistem mainframe cu sute de utili3atori. $e adaug cheltuieli periodice anuale de 6ntreinere. 9 #osturile adiionale pentru elemente !ardware+ pentru a sigura performanele $;B poate fi nevoie de achi3iionarea unui calculator mai mare5 chiar dedicat rulrii $;B 5 cu disc i memorie mai mari. 9 #ostul conversiei+ la implementarea unui nou sistem $;B i>sau a unei noi configuraii hard5 conversia poate costa semnificativ mai mult dec7t noile elemente hard. $e include costul instruirii personalului5 angaAarea de personal speciali3at. Apare termenul de sistem motenit5 adic un sistem mai vechi5 inferior5 de care organi3aia se cramponea3 din motive de costuri de conversie. 9 "erformana+ $;B (spre deose1ire de cel 1a3at pe fiiere* este general5 creat pentru a permite diverse aplicaii4 astfel unele pot funciona mai puin rapid dec7t 6n ca3ul sistemului 1a3at pe fiiere5 creat pentru o anume aplicaie. 9 Impactul crescut al unei defeciuni. Centrali3area (partaAarea* resurselor crete vulnera1ilitatea $;B . !ecul oricrei componente poate duce la sistarea tuturor operaiilor. 1.1.5 6ezumatul capitolului 1.1 Sistemul de gestionare a bazelor de date &SGBD' repre3int cadrul de 1a3 pentru sistemele informaionale i a avut un impact fundamental asupra modului de operare al organi3aiilor. %redecesorul $;B a fost sistemul bazat pe fiiere. Acesta repre3int o serie de programe de aplicaie ce efectuea3 servicii (de regul generarea de rapoarte* pentru utili3atorii finali. Fiecare program 6i definete i 6i gestionea3 propriile date. Acest sistem repre3int un mare progres fa de sistemele manuale de fiare i 6ndosariere5 dar are i pro1leme semnificative cum ar fi redundana datelor i dependena program 8 date.
1,

Tratarea datelor prin 1a3e de date re3olv dificultile a1ordrii pe 1a3 de fiiere. " baz de date repre3int un set partaAat de date i descrierea acestora 6ntre care e:ist relaii logice. B este proiectat pentru a satisface necesitile informaionale ale unei organi3aii. Un SGBD este un sistem de elemente softDare5 care permite utili3atorilor definirea5 crearea i 6ntreinerea 1a3ei de date i acre permite accesul controlat la aceasta. $;B ofer un limba) de definire a datelor &DD+'5 care permite utili3atorilor definirea B 5 i un limba) de manipulare a datelor &D!+'5 care permite utili3atorilor inserarea5 reactuali3area5 tergerea i e:tragerea datelor din B . !ediul SGBD const din elemente hardDare (calculatorul*5 de softDare (sistemul $;B 5 sistemul de operare i programele de aplicaie*5 date5 proceduri i persoane. %ersoanele includ administratorii de date i de 1a3e de date5 proiectanii de 1a3e de date5 programatorii de aplicaii i utili3atorii finali. 3,anta)ele tratrii datelor prin BD includ2 controlul redundanei datelor5 coerena i partaAarea datelor5 6m1untirea securitii i integritii datelor. Deza,anta)ele includ2 comple:itate5 pre5 impact sc3ut al defeciunilor. 1.1.7 8ntreb ri la capitolul 1.1 ai patru e:emple de sisteme de 1a3e de date (situaii 6n care activitatea unei organi3aii ar avea 1eneficia de pe urma unei 1a3e de date* Anali3ai termenii2 date4 1a3 de date4 sistem de gestionare a 1a3elor de date4 vederi. Anali3ai avantaAele tratrii datelor prin sisteme 1a3ate pe fiiere. escriei principalele diferene 6ntre tratarea datelor prin 1a3e de date fa de tratarea 1a3at pe fiiere. escriei cele cinci componente ale mediului $;B i anali3ai relaiile dintre acestea. Anali3ai rolurile urmtoarelor categorii de personal 6n mediul $;B 2 administrator de date4 administrator de 1a3e de date4 proiectant de 1a3e de date logice4 proiectant de 1a3e de date fi3ice4 programator de aplicaii4 utili3atori finali.
1.

1.#. !odelul rela"ional &SGBD6' On cadrul modelului relaional (='* toate datele sunt structurate logic 6n cadrul unor relaii (ta1ele*. Fiecare relaie are o anumit denumire (titlu ta1el* i este format din anumite atri1ute (coloane* ale datelor. Fiecare tuplu (line* conine c7te o valoare per atri1ut. 1.#.1 Terminologie 1.#.1.1 Structura rela"ional a datelor

6ela"ie2 o relaie este un ta1el cu coloane i r7nduri. 3tribut2 Un atri1ut este o coloan a unei relaii5 cu o anumit denumire. Domeniu2 Un domeniu este mulimea de valori permise pentru unul sau mai multe atri1ute. %entru fiecare atri1ut se definete 6n mod central denumirea domeniului5 sensul acestuia i domeniul de definiie. Ca urmare sistemul va evita operaiile incorecte semantic. ( e e:. compararea unui numr de telefon cu nr. de cas5 dei am1ele sunt iruri de caractere4 6ns2 nr. luni este legal de 6nmulit cu salariile5 dei primele sunt caractere te:t5 iar celelalte sunt valori monetare*. !:emplu2 'tribut -cap de coloan. 'ocalitatea Denumirea domeniului 'ocalitatea Sensul =ulimea tuturor denumirilor de localiti din &om7nia =ulimea tuturor numerelor de telefon din &om7nia Domeniul de definiie Caracter2 dimensiune ./ Caracter2 dimensiune C)

#r tel

#umere telefon

Tuplu2 Un tuplu este un r7nd dintr9o relaie. Intensitatea unei rela"ii2 structura ta1elului5 specificarea domeniilor i a altor restricii referitoare la valorile posi1ile. Intensitatea este de regul fi:>fi:at.
1%

9:tensia &starea' unei rela"ii2 tuplurile5 care se modific 6n timp. Grad2 ;radul unei relaii repre3int numrul de atri1ute pe care 6l conine. " relaie cu dou atri1ute5 de e:emplu5 se numete 1inar. Cardinalitate2 cardinalitatea unei relaii este numrul de tupluri coninute de aceasta. Baza de date rela"ional 2 Un set de relaii normali3ate. " B & const din relaii structurate adecvat. /ermeni formali &elaie Tuplu Atri1ut 'lternativa 0 Ta1el &7nd Coloan 'lternativa 1 Fiier Onregistrare (&ecord* C7mp (Field*

1.#.1.# 6ela"ii matematice %entru a 6nelege sensul termenului de relaie revedem unele concepte matematice. %rodusul carte3ian2 C : .4 C M Q.5 )R4 . M Q C5 F5 -R4 C : . M Q(.5C*4 (.5F*4 (.5-*4 ()5C*4 ()5F*4 ()5-*R "rice su1mulime a produsului carte3ian este o relaie2 de e:. & M Q(.5C*4 ()5C*R5 adic2 & M Q(:5<*S : C5 < sau2 $ M Q(:5<*S : C5 < . i : M .<R5 adic $ MQ(.5C*R i < M CR

On general scriem produsul carte3ian a n mulimi ca fiind2 i =1 Fiecare element al produsului carte3ian va fi un n9tuplu5 adic este format din n elemente5 c7te unul din fiecare mulime de la C la n. "rice su1mulime a acestui produs carte3ian5 adic orice mulime de n9tupluri repre3int o relaie a celor n mulimi (care formea3 produsul carte3ian*. 1.#.1.% 6ela"ii n bazele de date Sc1ema de rela"ie2 " denumire a relaiei5 urmat de un set (mulime* de perechi formate din atri1ute i denumiri de domenii.
2(

X Di

Fie o relaie & cu atri1utele Ai cu domeniile corespun3toare i5 iMC5n. &elaia & va fi definit de schema de relaie $M QA C2 C5 A.2 .5 ...5 An2 nR. Fiecare 6nregistrare (tuplu* din acest ta1el (relaie* va fi descris prin n coloane (atri1ute*5 va fi deci un n9tuplu5 fiecare atri1ut (A i 5 iMC5n* lu7nd o valoare (di 5 iMC5n* din domeniul corespun3tor ( i 5 iMC5n*. eci di i. Un n9tuplu al relaiei (o 6nregistrare din ta1el* va avea deci forma2 (AC2dC5 A.2d.5 T5 An2dn*. Fiecare element din acest n9tuplu este format dintr9un atri1ut i valoarea lui. &elaia va fi deci o mulime (un set* de astfel de n9tupluri. C7nd relaia & se scrie su1 form de ta1el5 atri1utele (A i* vor fi capetele de coloane5 iar tuplurile (n9tuplurile* vor fi r7ndurile5 de forma d C5 d.5 T5 dn. Astfel5 o relaie din modelul relaional este o su1mulime al produsului carte3ian al domeniilor atri1utelor. Ta1elul este o repre3entare fi3ic a unei astfel de relaii. 1.#.1.( Propriet "ile rela"iilor 9 fiecare relaie are o denumire5 diferit de toate celelalte denumiri de relaii4 9 fiecare celul a relaiei conine e:act o valoare atomic (singular*4 este ilegal trecerea de mai multe valori 6ntr9o celul4 9 fiecare atri1ut are o denumire distinct4 9 toate valorile unui atri1ut aparin aceluiai domeniu4 9 ordinea atri1utelor nu are nici o importan4 9 fiecare tuplu este distinct4 nu e:ist du1luri ale tuplurilor4 9 teoretic5 ordinea tuplurilor nu are nici o importan (6n practic poate afecta eficiena accesrii tuplurilor*. Aceste proprieti re3ult din proprietile relaiilor matematice2 9 din moment ce relaia este o mulime5 ordinea elementelor nu are importan4 deci ordinea tuplurilor nu are importan4 9 6ntr9o mulime nu se repet nici un element4 deci nu e:ist tupluri du1le. 1.#.1.- C1ei rela"ionale
21

Tre1uie s e:iste posi1ilitatea de identificare unic a unui tuplu dintr9o relaie5 prin valorile atri1utelor sale. Superc1eia2 !ste un atri1ut sau un set de atri1ute care identific 6n mod unic un tuplu din interiorul unei relaii. " supercheie poate conine i atri1ute care nu sunt necesare identificrii unice a tuplului. C1eia candidat2 este o supercheie minim5 pentru care nici o su1mulime nu este supercheie 6n cadrul relaiei respective. " cheie poate include mai multe atri1ute5 ca3 6n care se numete c!eie combinat. " cheie candidat este unic (6n fiecare tuplu al relaiei &5 valorile cheii identific acel tuplu 6n mod unic* i ireducti1il (nici o su1mulime a cheii candidat nu este unic*. C1eia primar 2 este cheia candidat care este selectat Udin toate cheile candidat identificateV pentru a identifica 6n mod unic tuplurile din cadrul unei relaii. Cheile candidat neselectate se numesc c!ei alternative. C1eie str in 2 Un atri1ut sau o mulime de atri1ute din cadrul unei relaii5 care se potrivesc cu o cheie candidate din alt relaie. e e:emplu o cheie strin dintr9o relaie poate (spunem c "intete* coincide cu cheia primar din alt relaie. ($punem c "intete cheia primar din alt relaie*. Atri1utele comune Aoac un rol important 6n manipularea datelor. 1.#.1./ 6eprezentarea sc1emelor &de rela"ii' din BD rela"ionale Sc1ema unei rela"ii dintr$o BD are forma2 Denumire relaie 2titlu tabel3 -'tribute* ncep&nd cu c!eia primar* subliniat. Clieni (#r. crt.5 firm5 localitate5 adres facturare5 Aude5 cod potal5 nr. telefon5 cont tre3orerie5 dat contact*. !odelul conceptual &sc1ema conceptual ' al unei BD este mulimea tuturor schemelor de relaie pentru B respectiv.
22

1.#.# Integritatea rela"ional Un model de date relaional cuprinde2 9 o parte structural5 discutat 6n paragraful precedent4 9 un set de reguli de integritate care asigur corectitudinea datelor4 9 o parte de manipulare5 care definete tipurile de operaii permise asupra datelor. Fiecare atri1ut are un domeniu5 deci asupra valorilor permise pentru fiecare atri1ut e:ist anumite constr;ngeri de domeniu. =ai e:ist dou reguli de integritate importante constr7ngeri ce se aplic 6ntregii 1a3e de date5 anume2 9 integritatea entitilor 9 integritatea referenial 1.#.#.1 <ull$uri <ull repre3int valoarea unui atri1ut care este curent necunoscut sau nu este aplica1il tuplului respectiv. ,aloare logic ?necunoscut@. Un #ull nu este acelai lucru cu o valoare numeric M / sau cu un ir de te:t ?spaii@ (3ero string*4 acestea sunt valori5 un #ull 6nsemn7nd 6ns a1sena unei valori. 1.#.#.# Integritatea entit "ilor $e aplic cheilor primare ale relaiilor de 1a3. " relaie de 1a3 (ta1el de 1a3* corespunde unei entiti 6n schema conceptual a B . Integritatea entit "ilor2 6ntr9o relaie de 1a3 nici un atri1ut al unei chei primare nu poate fi #ull. 1.#.#.% Integritatea referen"ial $e aplic cheilor strine. Integritatea referen"ial 2 ac 6ntr9o relaie e:ist o cheie strin5 valoarea acesteia tre1uie ori s coincid cu valoarea unei chei candidat a unui tuplu 6n relaia sa de 1a35 ori s fie 6n 6ntregime #ull.
2"

care

sunt

1.#.#.( Constr;ngerile de ntreprindere Constr;ngerile de ntreprindere2 sunt reguli adiionale5 specificate de ctre utili3atorii sau administratorul 1a3ei de date ( BA*.

1.#.% =ederi ,ederea e:tern este structura B utili3ator. aa cum apare ea unui anumit

On modelul relaional o vedere este o relaie virtual5 o relaie care nu este de fapt de sine stttoare5 ci este derivat 6n mod dinamic din una sau mai multe relaii de 1a3. 1.#.%.1 Terminologie 6ela"ie de baz 2 " relaie cu o anumit denumire5 corespun3toare unei entiti din schema conceptual5 ale crei tupluri sunt stocate fi3ic 6n B . =edere2 &e3ultatul dinamic al uneia sau mai multor operaii relaionale care acionea3 asupra relaiilor de 1a35 pentru a o1ine o alt relaie. " vedere este o relaie virtual5 care 6n realitate nu e:ist 6n B 5 ci este produs 6n momentul respectiv5 la cererea unui utili3ator. Coninutul unei vederi este definit ca o interogare asupra unei sau mai multor relaii de 1a3. ,ederile sunt dinamice5 adic modificrile 6n relaiile de 1a3 sunt reflectate imediat 6n vederi. i invers5 modificrile permise operate asupra vederii se transmit relaiilor de 1a3. 1.#.%.# Scopul ,ederilor =ecanismul de vedere este util pentru c2 9 furni3ea3 un mecanism de securitate puternic4 9 permite utili3atorilor accesarea datelor 6n mod personali3at4 aceleai date pot fi vi3uali3ate simultan5 6n moduri diferite5 de ctre diveri utili3atori4 9 poate simplifica operaiile comple:e asupra relaiilor de 1a3.
2&

1.#.%.%. 6eactualizarea ,ederilor !:ist restricii referitor la modificrile care pot fi efectuate prin intermediul vederilor. Condiiile de care depinde reactuali3area datelor prin intermediul vederilor sunt2 9 sunt permise reactuali3rile prin intermediul unor vederi definite prin utili3area unei interogri simple a unei singure relaii de 1a35 i care interogare conine fie cheia primar5 fie cheia candidat a acesteia4 9 nu sunt permise reactuali3rile prin vederi care implic relaii de 1a3 multiple4 9 nu sunt permise reactuali3rile prin vederi care implic operaia de acumulare sau de grupare. 1.#.( 6ezumatul capitolului 1.# 6ela"iile sunt repre3entate fizic su1 form de tabele5 cu r&ndurile corespun37nd tuplurilor individuale5 iar coloanele corespun37nd atributelor. $tructura relaiei5 6mpreun cu specificarea domeniilor i altor constr7ngeri fac parte din intensitatea 1a3ei de date5 iar relaia5 6mpreun cu toate tuplurile sale repre3int o e:tensie a 1a3ei de date. %roprietile relaiilor din 1a3ele de date sunt2 fiecare celul conine e:act o valoare5 denumirile atri1utelor sunt diferite5 valorile acestora provin din acelai domeniu5 ordinea atri1utelor nu are importan5 nici ordinea tuplurilor5 nu e:ist tupluri du1le. Gradul unei relaii repre3int numrul de atri1ute5 6n timp de cardinalitatea repre3int numrul de tupluri. " relaie unar are un singure atri1ut5 una binar are dou5 una ternar are trei5 iar o relaie n$ar are n atri1ute. " superc1eie este un set de atri1ute care identific 6n mod unic tuplurile dintr9o relaie5 6n timp ce o c1eie candidat este o supercheie minim. " c1eie primar este o cheie candidat selectat pentru a identifica tuplurile. " relaie tre1uie s ai1 6ntotdeauna o cheie primar. " c1eie str in este un atri1ut sau set de atri1ute dintr9o relaie care constituie o cheie candidat pentru alt relaie.
25

Un <ull repre3int o valoare pentru un atri1ut care este necunoscut 6n momentul respectiv sau nu este definit pentru acel tuplu. Integritatea entit "ilor este o constr7ngere care sta1ilete c5 6ntr9o relaie de 1a3 nici un atri1ut al unei chei primare nu poate avea valoarea #ull. Integritatea referen"ial sta1ilete c valorile cheii strine tre1uie s corespund valorilor unei chei candidat a unui tuplu oarecare din relaia de 1a3 sau s ai1 6n 6ntregime valoarea #ull. On modelul relaional o ,edere este o relaie virtual. ,ederea ofer securitate i permite proiectantului s personali3e3e modelul unui utili3ator. ,ederile sunt create dinamic pentru utili3atori. #u toate vederile pot fi reactuali3ate. 1.#.- 8ntreb ri la capitolul 1.# Anali3ai fiecare dintre urmtoarele concepte 6n conte:tul modelului de date relaional2 relaie5 atri1ut5 domeniu5 tuplu5 intensitate i e:tensie5 gard i cardinalitate. Anali3ai diferenele dintre cheile candidat i cheia primar a unei relaii. Ce este o cheie strinB Care este legtura dintre cheile strine i cele candidat ale unei relaiiB ai e:emple. efinii cele dou reguli de integritate principale din modelul relaional. Anali3ai de ce sunt necesare aceste reguli. Ce este o vedereB Anali3ai diferena dintre o vedere i o relaie de 1a3. Ce se 6nt7mpl c7nd un utili3ator accesea3 o 1a3 de date prin intermediul unei vederiB

1.% Planificarea> proiectarea i administrarea BD 1.%.1 Ciclul de ,ia" al sistemelor informa"ionale

Un sistem informa"ional ($I* include resursele care permit colectarea5 administrarea5 controlul i propagarea informaiilor 6n 6ntreaga organi3aie. $I al unei organi3aii cuprinde4 9 1a3a de date (B * 9 elementele softDare ale B
2!

9 softDare de aplicaie 9 elementele hardDare 9 personalul care utili3ea3 i de3volt sistemul. On cadrul $I5 ciclul de via al aplicaiei de tip B etape (fig. C..*2 cuprinde urmtoarele

9 "lanificarea D2 activitile administrative care permit parcurgerea etapelor aplicaiei de tip B c7t mai eficient posi1il. 9 Definirea sistemului2 specificarea scopului i limitelor aplicaiei de tip B 5 a utili3atorilor si i a domeniilor de aplicaie. 9 #olectarea i analiza cerinelor4 colectarea i anali3area de informaii despre partea de organi3aie ce urmea3 s fie deservit de aplicaia de tip B i utili3area acestor informaii pentru identificarea cerinelor utili3atorilor4 #erin4 o caracteristic ce tre1uie inclus 6n noul sistem4 Informaiile i cererile colectate5 e:primate de cele mai multe ori neformal tre1uie transformate 6ntr9o formulare structurat4 pentru aceasta se utili3ea3 te1nici de specificare a cerin"elor5 anume2 tehnici de anali3 i proiectare structurat (Structured 3nal<sis Design*5 diagrame de flu: de date ( Data ?loD Diagrams* i diagrame de tip intrare9prelucrare9ieire ierarhic (@ierarchic Input Process Autput*. 9 "roiectarea bazelor de date4 procesul de reali3are a unui proiect pentru o B 5 care va a1orda toate operaiile i o1iectivele 6ntreprinderii. $copurile proiectrii B sunt2 o &epre3entarea datelor i a relaiilor dintre ele5 necesare tuturor aplicaiilor i utili3atorilor4 o Furni3area unui model de date care s accepte efectuarea oricrei tran3acii necesare asupra datelor4 o $pecificarea unui proiect minimal5 structurat adecvat pentru reali3area cerinelor sta1ilite referitor la performanele sistemului5 de e:emplu timpul de rspuns.
2,

Cele dou a1ordri 6n proiectarea unui sistem de B

sunt2

o de Aos 6n sus4 se sta1ilesc atri1utele la un nivel fundamental (adic proprietile entitilor*5 care apoi sunt grupate 6n relaii5 dup dependenele funcionale ale acestora4 aceast a1ordare se mai numete i normalizare i este indicat la proiectarea unor B mai simple5 cu un numr relativ mic de atri1ute4 o de sus 6n Aos4 pentru B mai comple:e4 se 6ncepe cu reali3area unor modele de date care conin c7teva entiti i relaii de nivel 6nalt5 urm7nd apoi rafinri succesive de sus 6n Aos5 pentru a identifica entitile5 relaiile i atri1utele asociate de nivel Aos. Aceast a1ordare este ilustrat de modelul (5 . $e 6ncepe cu identificarea entitilor i relaiilor care pre3int interes pentru organi3aie5 urmat apoi de finali3area atri1utelor. !:emplu2 entiti2 clieni5 produse4 se identific relaia dintre aceste entiti2 clientul cumpr produse5 apoi se identific atri1utele2 Clieni (nr. client5 adres etc.* i %roduse (nr. produs5 factur intrare5 stoc etc.*. 9 'legerea sistemului S, D4 se alege un sistem adecvat care s accepte o aplicaie de tip B 4 9 "roiectarea aplicaiei4 %roiectarea interfeei cu utili3atorul i a programelor de aplicaie care utili3ea35 respectiv prelucrea3 B . %roiectarea B i a aplicaiilor sunt activiti paralele 6n ciclul de via al aplicaiei de tip B . 9 5ealizarea prototipului4 Construirea unui model de lucru al unei aplicaii de tip B . 9 Implementarea4 reali3area fi3ic a proiectelor pentru B i aplicaii4 se reali3ea3 printr9un ' corespun3tor $;B ales. On aceast etap sunt reali3ate i vederile specificate de utili3atori. " parte din programele de aplicaie sunt tran3aciile 1a3ei de date implementate cu un =' corespun3tor $;B 5 care poate fi incorporat 6ntr9un lim1aA de programare ga3d (e:. ,isual Basic5 elphi etc.*.
2.

9 #onversia i ncrcarea datelor4 transferul 6n noua B a oricror date deAa e:istente i conversia oricror aplicaii e:istente5 a.6. s poat funciona 6n cadrul acesteia. 9 /estarea4 procesul de e:ecutare a programelor de aplicaie5 cu intenia de a gsi erori4 ca i la proiectare5 i la testare tre1uie de implicat utili3atorii. $trategii de testare2 o Testarea de sus 6n Aos4 o Testarea de Aos 6n sus4 o Testarea pe fir4 o Testarea la suprasolicitare. 9 )ntreinerea operaional4 procesul de monitori3are i 6ntreinere a sistemului5 care se efectuea3 dup instalarea acestuia. o =onitori3area performanelor sistemului4 o Ontreinerea i moderni3area5 prin 6ncorporarea de noi cerine5 parcurg7nd etapele precedente.

2%

Fig. C.. Ciclul de via al aplicaiilor tip 1a3 de date 1.%.# ?azele proiect rii BD Proiectarea conceptual a BD2 procesul de construire a unui model al informaiilor utili3ate 6n cadrul fiecrei organi3aii5 independent de toate consideraiile fi3ice. Proiectarea logic a BDB procesul de construire a unui model al informaiilor utili3ate 6n cadrul unei organi3aii 1a3at pe un anumit
"(

model de date (de e:emplu entitate9relaie 9 !&*5 al $;B 5 dar independent de alte consideraii fi3ice legate de $;B . Tehnica de normali3are este utili3at pentru a testa corectitudinea unui model de date logic. #ormali3area garantea3 c relaiile derivate din modelul de date nu pre3int redundan a datelor5 care poate fi cau3a anomaliilor dup implementare. %roiectarea logic i conceptual a B presupune considerarea>6m1inarea tuturor vederilor utili3atorilor. Un model logic cu multiple vederi ale utili3atorilor asupra organi3aiei se numete model de date logic global. On proiectarea unui model de date logic glo1al e:ist dou moduri principale de a1ordare2 9 tratarea centrali3at 9 tratarea prin integrarea vederilor. Tratarea centrali3at2 Om1in cerinele separate ale utili3atorilor5 care repre3int vederi distincte ale acestora 6ntr9un set unic de cerine5 dup care se construiete modelul de date logic glo1al. $istemul de B nu tre1uie s fie prea mare sau comple:. Tratarea prin integrarea vederilor2 Om1in modelele de date logice separate5 care repre3int vederi distincte ale utili3atorilor5 6ntr9un singur model de date logic glo1al. ,ederile distincte ale utili3atorilor se numesc modele de date logice locale. Proiectarea fizic a BDB procesul de reali3are a descrierii implementrii 1a3ei de date 6ntr9o capacitate de stocare4 descrie structurile de stocare i metodele de acces utili3ate. %rincipalul scop al proiectrii fi3ice pentru modelul relaional presupune2 9 deducerea unui set de ta1ele relaional i de constr7ngeri asupra acestora5 din informaiile provenite din modelul de date logic glo1al4 9 identificarea structurilor de stocare specifice i a metodelor de acces la date5 pentru a asigura performanele optime ale sistemului de B . 9 %roiectarea unei protecii de securitate pentru sistem4

"1

1.%.% Proiectarea aplica"iilor 1.%.%.1 Proiectarea tranzac"iilor Tranzac"ie2 " aciune sau serie de aciuni efectuate de ctre un singur utili3ator sau program de aplicaie5 care accesea3 i pot modifica coninutul 1a3ei de date. " tran3acie poate fi format din mai multe operaii i este un eveniment din lumea real. $;B garantea3 coerena B 5 deci 6n urma unei tran3acii o B trece dintr9o stare coerent 6ntr9alt stare coerent. $;B garantea3 coerena B i 6n ca3ul unei defeciuni. "dat tran3acia 6ncheiat5 modificrile efectuate sunt stocate permanent 6n B i nu pot fi pierdute sau anulate (doar printr9o nou tran3acie*. Tipuri de tran3acii2 9 de regsire4 9 de reactuali3are4 9 mi:te (regsire plus reactuali3are*. Tran3aciile se proiectea3 plec7nd de la informaiile din cerinele utili3atorului. !:emplu2 utili3atorul va dori s 6nregistre3e toi noii clieni 6n B 5 deci se proiectea3 o tran3acie care s fac posi1il aceast aciune5 6nsoit de o interfa prietenoas cu utili3atorul. 1.%.%.# Proiectarea interfe"ei cu utilizatorul Utili3atorul va lucra de regul nu direct 6n ta1ele5 ci 6n formulare5 fiecare formular repre3ent7nd un tuplu dintr9un ta1el. Onainte de implementare se proiectea3 macheta unui formular sau raport. Indicaii utile pentru proiectarea unui formular>raport 9 titlu semnificativ 9 instruciuni inteligi1ile 9 grupare logic a c7mpurilor 9 aspect atrgtor al machetei
"2

9 9 9 9 9 9 9 9 9 9

etichete familiare ale c7mpurilor terminologie i prescurtri coerente utili3are coerent a culorilor spaii i limite vi3i1ile ale c7mpurilor de introducere a datelor micare convena1il a cursorului corectare de erori pentru caractere individuale sau c7mpuri 6ntregi mesaAe de eroare pentru valori inaccepta1ile marcare clar a c7mpurilor opionale mesaAe e:plicative pentru c7mpuri semnal de terminare

1.%.( 3dministrarea datelor i a bazei de date !tapele ciclului de via al aplicaiilor de tip 1a3 de date i rolurile (principal sau secundar* ale personalului administrator de date ( A* i administrator de 1a3 de date ( BA* re3ult din ta1elul de mai Aos2 9tapa 6ol principal %lanificarea B A efinirea sistemului A Colectarea i anali3a cerinelor A %roiectarea conceptual a 1a3ei de A date Alegerea sistemului $;B BA %roiectarea logic a 1a3ei de date A %roiectarea aplicaiilor BA %roiectarea fi3ic a 1a3ei de date BA &eali3area prototipului BA Implementarea BA Conversia i 6ncrcarea datelor BA Testarea BA Ontreinerea operaional BA 6ol secundar BA BA BA BA A BA A A A A A A A

3dministrarea datelor &D3'B ;estionarea resurselor de date5 care include planificarea B 5 reali3area i 6ntreinerea standardelor5 politicilor i procedurilor i proiectarea conceptual i logic a 1a3ei de date.
""

3dministrarea bazei de date &DB3'2 Administrarea reali3rii fi3ice a unei aplicaii de tip B 5 inclusiv proiectarea i implementarea fi3ic a B 5 sta1ilirea controlului de securitate5 integritate5 monitori3area performanelor sistemului i reorgani3area B dup necesiti. %rincipalele diferene dintre sarcinile din de mai Aos2 3dministrarea datelor &D3' A i BA re3ult din ta1elul

Implicat 6n planificarea strategic $ta1ilete scopurile pe termen lung Ontrete standardele5 politicile i procedurile $ta1ilete cerinele privind datele &eali3ea3 proiectarea conceptual i logic a 1a3ei de date e3volt i 6ntreine modelul general de date Coordonea3 de3voltarea sistemului Are o orientare managerial !ste independent de $;B

3dministrarea bazei de date &DB3' IT !valuea3 noile $;B !:ecut planurile de atingere a scopurilor Ontrete standardele5 politicile i procedurile Implementea3 cerinele privind datele &eali3ea3 proiectarea logic i fi3ic a 1a3ei de date Implementea3 proiectul fi3ic al 1a3ei de date =onitori3ea3 i controlea3 1a3a de date Are o orientare tehnic epinde de $;B

1.%.- 6ezumatul capitolului 1.% Un sistem informa"ional &SI' const 6n resursele care permit colectarea5 gestionarea5 controlul i difu3area informaiilor 6n cadrul 6ntregii organi3aii. %rincipalele etape ale ciclului de ,ia" al aplica"iei tip baz de date sunt2 planificarea B 5 definirea sistemului5 colectarea i anali3a cerinelor5 proiectarea B 5 alegerea $;B (opional*5 proiectarea aplicaiilor5 reali3area prototipului (opional*5 implementarea5 conversia i 6ncrcarea datelor5 testarea i 6ntreinerea operaional.
"&

Proiectarea conceptual a B este procesul de construire a unui model al informaiilor utili3ate 6n 6ntreprindere5 independent de toate consideraiile fi3ice. Proiectarea logic a B este procesul de construire a unui model al informaiilor utili3ate 6n 6ntreprindere5 1a3at pe un anumit model de date5 dar independent de un anumit $;B i de alte consideraii fi3ice. Un model logic care repre3int vederile mai multor utili3atori asupra unei organi3aii se numete model de date logic global. On proiectarea acestuia a1ordrile pot fi2 tratarea centrali3at i tratarea prin integrarea vederilor. Proiectarea fizic a 1a3ei de date este procesul de implementare 6ntr9 o capacitate de stocare4 se descriu structurile de stocare i metodele de acces la date. Proiectarea aplica"iei de tip BD presupune2 proiectarea tran3aciilor i proiectarea interfeei cu utili3atorul. " tran3acie a 1a3ei de date este o operaie care implic acces la 1a3a de date i repre3int un eveniment din lumea real. 3dministrarea datelor const 6n gestionarea resurselor de date5 inclusiv planificarea B 5 proiectarea conceptual i logic a acesteia5 de3voltarea i 6ntreinerea standardelor5 politicilor i procedurilor. Administrarea datelor acionea3 mai ales la 6nceputul ciclului de via al aplicaiei tip B 5 6nainte de implementare. 3dministrarea bazei de date const 6n gestionarea reali3rii fi3ice a B 5 inclusiv proiectarea fi3ic i implementarea B 5 controlul de securitate i integritate5 monitori3area performanelor i reorgani3area B dup ca3. Administrarea B intervine mai ales 6n etapele t7r3ii ale ciclului de via al aplicaiei de tip B . 1.%./ 8ntreb ri la capitolul 1.% escriei scopul fiecrei etape din ciclul de via al aplicaiilor de tip B . escriei principalele scopuri ale fa3elor de proiectare conceptual i logic a B . efinii diferenele dintre scopurile i sarcinile A i BA. 1.(. !odelarea 9ntitate$6ela"ie &96'

"5

=odelul !& este un model conceptual de nivel 6nalt5 de3voltat de Chen (CHP0* pentru a facilita proiectarea B . Un model de date conceptual se compune din2 9 un set de concepte care descriu structura 1a3ei de date (entiti5 relaii5 atri1ute* i 9 tran3aciile de regsire i actuali3are asociate. $copul reali3rii unui model de date de nivel 6nalt este2 9 perceperea datelor de ctre utili3ator5 9 ascunderea aspectelor tehnice asociate proiectrii B . Un model de date conceptual este independent de tipul de $;B utili3at i de platforma hardDare asociat. 1.(.1 Conceptele modelului 96 Conceptele de 1a3 ale modelului !& includ2 9 tipurile de entiti 9 tipurile de relaii 9 atri1utele 1.(.1.1 Tipuri de entit "i Tip de entitate2 Un o1iect sau concept identificat de organi3aie ca av7nd o e:isten independent. Un tip de entitate conine un set de o1iecte sau concepte cu aceleai proprieti. (xemple de tipuri de entiti2 Clieni5 %roduse5 %ersonal5 &udWapropiat (o1iecte5 entiti cu e:isten fi3ic* ,7n3are (concepte5 entiti cu e:isten conceptual* !ntitate2 o instan unic identifica1il a unui tip de entitate. (xemplu2 ;eorgescu5 %opescu sunt entiti ale tipului de entitate ?Clieni@ !ntitate tare (entitate printe5 proprietar5 dominant*2 Un tip de entitate a crei e:isten nu depinde de alte tipuri de entiti. (xemplu2 clieni5 produse5 personal5 v7n3are. !ntitate sla1 (entitate copil5 dependent5 su1ordonat*2 Un tip de entitate a crei e:isten depinde de e:istena uneia sau mai multor alte tipuri de entiti. (xemplu2 &udaWapropiat.

"!

&epre3entare 6n modelul !&2 entitatea tare se trece 6ntr9un dreptunghi cu chenar simplu5 entitatea sla1 6ntr9un dreptunghi cu chenar du1lu (fig. C.F*.
Personal 2uda<apropiata

Fig. C.F !ntitate tare i entitate sla1 1.(.1.# 3tribute Atri1ut2 o proprietate a unui tip de entitate sau relaie. omeniul atri1utului2 =ulimea 6n care ia valori atri1utul. Atri1ut simplu2 are o singur component5 cu e:isten independent. (xemplu2 Atri1ute 6n tipul de entitate %ersonal2 se:5 salariu Atri1ut compus2 are mai multe componente5 fiecare independent (xemplu2 Adresa ($tr. +orilor CF*2 atri1utul strada I atri1utul numrul Atri1ut cu o singur valoare2 Conine o singur valoare pentru o anumit entitate. Atri1ut cu valori multiple2 Conine mai multe valori pentru o singur entitate. (xemplu2 un client poate avea mai multe numere de telefon. Atri1ut derivat2 are o valoare deriva1il din valoarea unui atri1ut sau set de atri1ute de care este legat i care nu sunt 6n mod necesar 6n aceeai entitate. (xemplu2 atri1utul v7rsta se deriv din data naterii. 5eprezentarea atributelor2 elipse4 contur punctat pentru atri1ute derivate5 contur du1lu pentru atri1ute cu valori multiple. Atri1utele compuse ?radia3@ atri1utele componente. enumirea atri1utelor cheie primar se su1linia3. Figura C.) se refer la modelul !& al unei agenii imo1iliare.

",

Fig.C.). &epre3entarea schematic a tipurilor de entiti ?%ersonal@5 ?Filiala@ i ?&uda apropiat@ i a atri1utelor acestora.

".

1.(.1.% Tipuri de rela"ii Tip de relaie 2 " asociere semnificativ 6ntre tipuri de entiti. (xemplu2 Ontre tipul de entitate ?Filiala@ i tipul de entitate ?%ersonal@ e:ist tipul de relaie ?este alocat@. Ontre fiecare entitate din tipurile de entiti de mai sus e:ist o pre3en unic identifica1il a tipului de relaie dintre ele5 numit2 relaie. &elaie 2 o instan unic identifica1il a unui tip de relaie. (xemplu2 6ntre fiecare entitate din tipul de entitate ?%ersonal@ i fiecare entitate din tipul de entitate ?Filial@ e:ist o instan a relaiei ?este alocat@5 adic fiecare angaAat este alocat unei filiale. On figura C.- sunt pre3entate apariiile individuale ale relaiei Neste alocat@ 5 utili37nd o diagram numit re"ea semantic . Aceasta este o diagram la nivel de o1iecte5 unde sim1olul repre3int entitile5 iar sim1olul repre3int relaiile. %entru simplificare 6n fig. C.-. sunt pre3entate numai unele atri1ute.

Fig. C.-. =odel semantic 6n reea5 cu apariiile individuale ale relaiei N!ste Alocat@ 6eprezentarea sc1ematic a rela"iilor

=odele semantice sunt dificil de 6neles datorit detaliilor. &epre3entarea de nivel 6nalt a relaiei ?este alocat@5 utili37nd conceptele
"%

modelului !& se pre3int 6n figura C.0. %entru simplificare s9au repre3entat numai atri1utele chei primare. &elaiile se repre3int prin rom1uri4 rom1ul are linii du1le dac face legtura dintre o entitate sla1 i una tare5 de care depinde. On e:emplul din fig. C.0 se o1serv c entitatea sla1 &udaWApropiat nu are cheie primar.

Fig. C.0. &epre3entare schematic a entitilor5 relaiilor i atri1utelor cheie primar Filiala5 %ersonal i &udaWApropiat ;radul unei relaii2 numrul de entiti participante 6ntr9o relaie.

Fig. C.P. &elaie 1inar5 cu . participani (. entiti participante*5 relaie numit ?deine@

Fig. C.X. &elaie ternar5 numit ?Fi:ea3@

&(

Fig. C.H. &elaie cvadrupl5 numit ?&eglementea3@ &elaie recursiv2 " relaie 6n care aceeai entitate particip mai mult dec7t o dat 6n diferite roluri.

Fig. C.C/. &elaie recursiv numit ?supervi3ea3@5 cu numele de roluri supervi3at i supervi3or. &elaiei i s9au atri1uit nume de roluri pentru a indica scopul pe care9l are fiecare entitate participant 6n cadrul relaiei. #ume de roluri pot fi utili3ate i c7nd dou entiti sunt asociate prin mai mult dec7t o relaie (fig. C.CC*.

&1

Fig. C.CC !ntiti asociate prin dou relaii distincte numite ?Administrea3@ i ?!ste alocat@5 6mpreun cu numele de roluri corespun3toare. 1.(.1.( 3tributele rela"iilor $e pot asocia atri1ute i relaiilor (e:emplul din fig. C.C.*.

Fig. C.C.. !:emplu de relaie ( ataWvi3itare i Comentarii*.

numit

?,i3itea3?

cu

atri1utele

%re3ena unor atri1ute asociate relaiilor poate indica e:istena unei entiti neidentificate (6n e:emplul dat5 entitatea ?,i3itare@*.

1.(.# Constr;ngeri structurale !ntitilor participante 6ntr9o relaie li se impun anumite constr7ngeri5 aa cum sunt percepute 6n lumea real. (xemple2 o proprietate de 6nchiriat tre1uie s ai1 un proprietar5 filiala tre1uie s ai1 personal. !:ist dou mari tipuri de constr7ngeri structurale2 de cardinalitate i de participare. 1.(.#.1 Constr;ngeri de cardinalitate 6aport de cardinalitate al unei rela"ii 2 posi1ile pentru fiecare entitate participant. escrie numrul de relaii

%entru relaii 1inare raportul de cardinalitate poate fi2 C2C unu la unu4 C2 = unu la mai muli4
&2

=2# mai muli la mai muli. &egulile care sta1ilesc cardinalitatea sunt reguli de afaceri ale organi3aiei (6n modelarea unei organi3aii tre1uie repre3entate c7t mai multe reguli de afaceri*. 6ela"ii unu la unu &1B1' $e consider relaia 1inar 'dministreaza5 anume %ersonal 'dministreaza Filiala. =odelul semantic corespun3tor este pre3entat 6n figura C.CF.

Fig.C.CF =odel tip 'dministreaza Filiala*

reea

semantic

al

relaiei

C2C

(%ersonal

&elaia este de cardinalitate C2C deoarece o singur entitate din %ersonal este asociat cu o singur entitate din Filiala. Acesta este confirmat prin regula de afaceri pe care o repre3int relaia2 o filial are un singur administrator5 iar un angaAat poate administra doar o singur filial. %ot e:ista angaAai (de. e:. Ann Beech* care nu administrea3 nici o filial. On schim1 nu pot e:ista filiale fr administrator. iagrama !& a acestei relaii este pre3entat 6n figura C.C).
&"

'iniile sunt etichetate cu raportul de cardinalitate5 care 6n fig. C.C) este C2 C. Fig. C.C) iagrama !& a relaiei C2C %ersonal 'dministreaza Filiala

6ela"ii unu la mai mul"i &1B!' Considerm relaia 1inar %ersonal Supraveg!eaza %roprietateWdeWInchiriat5 al crei model tip reea semantic este pre3entat 6n figura C.C-.

Fig. C.C- iagrama tip reea semantic a relaiei C2= in diagram reiese gradul de cardinalitate al relaiei ca fiind de C2 =5 deoarece un mem1ru al personalului poate supraveghea mai multe proprieti (de e:. p. supraveghea3 prC i pr.*5 ceea ce corespunde regulilor de funcionare ale organi3aiei. On schim1 o proprietate poate fi supravegheat numai de un singur mem1ru al personalului. &elaia este deci de cardinalitate C2 = citit de la st7nga la dreapta5 i de cardinalitate C2C citit de la dreapta la st7nga5 din punctul de vedere al proprietii de 6nchiriat. %entru sta1ilirea gradului de cardinalitate al relaiei se va lua 6n considerare gradul mai 6nalt5 deci 6n ca3ul e:emplului C2=.

&&

iagrama !& corespun3toare acestei relaii este repre3entat 6n figura C.C0. Fig. C.C0. iagrama !& a relaiei C2=

&5

6ela"ii mai mul"i la mai mul"i &!B<' Considerm relaia +iar 6ace 5eclama %roprietateWdeWInchiriat cu reeaua semantic din figura C.CP.

Fig. C.CP.

iagram tip reea semantic a relaiei =2#

in diagram reiese gradul de cardinalitate al relaiei de =2# at7t d.p.d.v. al entitii +iar5 c7t i din cel al entitii %roprietateWdeWInchiriat. Corespun3tor regulilor de afaceri5 6ntr9un 3iar se poate face reclam mai multor proprieti5 i unei proprieti i se poate face reclam 6n mai multe 3iare. iagrama !& corespun3toare este pre3entat 6n figura C.CX.

Fig. C.CX. iagrama !& a relaiei =2# 1.(.#.# Constr;ngeri de participare


&!

Constr;ngerile de participare determin dac e:istena unei entiti depinde de legtura sa de alt entitate prin intermediul unei relaii. !:ist dou tipuri de constr7ngeri de participare (a unei entiti 6ntr9o relaie*2 9 participare total sau o1ligatorie (repre3entat printr9o linie du1l* 9 participare parial sau opional (repre3entat printr9o linie simpl*. Participarea unei entiti 6ntr9o relaie este total 5 dac e:istena unei entiti necesit (este condiionat de* e:istena altei entiti prin intermediul unei anumite relaii. Altfel participarea este par"ial . (xemplu. On relaia 1inar Filiala (ste 'locat %ersonal (fig. C.CH* o filial poate e:ista5 evident5 numai dac are alocat personal. eci e:istena entitii Filiala este condiionat de e:istena entitii %ersonal. Ca urmare entitatea Filiala va participa total (o1ligatoriu* 6n relaia (ste 'locat5 i se va repre3enta cu linie du1l. Conform regulilor de afaceri ale organi3aiei5 pot 6ns e:ista mem1ri de personal care nu sunt alocai unei anumite filiale. !ntitatea %ersonal va avea deci participare parial (opional* 6n relaia (ste 'locat5 i se va linie simpl

repre3enta

cu

Fig. C.CH. Constr7ngeri de participare " repre3entare alternativ a constr7ngerilor de participare re3ult din fig. C../5 unde pe liniile de legtur sunt trecute valorile minim i ma:im cu care pot participa entitile 6n relaie. On ca3ul e:emplului5 o filial poate avea minim - i ma:im nedefinit (#* angaAai. Un angaAat poate s nu fie alocat unei filiale (valoare
&,

minim /* sau s fie alocat unei filiale5 i numai uneia (valoare ma:im C*. Fig. C../ Constr7ngeri de participare5 notaie alternativ

1.(.% Problemele modelului 96 On proiectarea unui model de date conceptual pot aprea aa9numite capcane de conectare5 datorit interpretrii eronate a sensului unei relaii. 1.(.%.1 Capcane n e,antai Capcanele n e,antai sunt acele capcane de conectare care 6ntr9un model !& repre3int o relaie dintre tipuri de entiti5 dar cile dintre anumite apariii ale entitilor sunt am1igue. Capcanele 6n evantai apar c7nd dou sau mai multe relaii C2= provin din aceeai entitate (fig. C..C*. in model nu re3ult la ce filial este alocat un anumit mem1ru al personalului dintr9o secie5 tiind c o secie coordonea3 mai multe filiale. !:aminm modelul la nivel de apariii individuale prin intermediul reelei semantice (fig. C...*. Fig. C..C Capcan 6n evantai $e poate o1serva capcana 6n evantai2 AngaAatul $;FP este alocat seciei $C5 dar secia $C coordon7nd filialele BF i BP5 nu se tie la care dintre aceste dou filiale este alocat $; FP.

&.

Fig. C.... &eeaua semantic a modelului !& din fig. C..C Capcana se re3olv prin restructurarea modelului !&5 a.6. acesta s repre3inte corect asocierile dintre entiti (fig. C..F*. $e o1serv care secie coordonea3 care filiale5 i ce personal este alocat fiecrei filiale.

Fig. C..F. =odel !& restructurat &eeaua semantic a modelului restructurat (corect* este cea din fig. C..). AngaAatul $;FP este alocat filialei BF5 coordonat de secia $C.

Fig. C..). &eeaua semantic a modelului !& din fig. C..F. 1.(.%.# Capcane de ntrerupere Capcanele de ntrerupere sunt acele capcane de conectare 6n care un model sugerea3 e:istena unei relaii 6ntre tipurile de entiti5 dar nu e:ist ci 6ntre anumite apariii ale acestor entiti. Capcanele de 6ntrerupere apar c7nd 6n calea prin care sunt legate entitile intervine o entitate cu participare parial. (xemplu. in modelul din fig. C..- se o1serv urmtoarele2 %e ramura din st7nga2
&%

9 unei singure filiale 6i sunt alocai mai muli angaAai (relaie C2=* 9 filiale e:ist numai dac are personal5 fiecare mem1ru al personalului este o1ligatoriu alocat unei filiale (participri totale 8 linii du1le de legtur*. %e ramura din dreapta2 9 Un angaAat (mem1ru al personalului* poate supervi3a mai multe proprieti5 o proprietate poate fi supravegheat de un mem1ru al personalului (relaie C2 =* 9 #u fiecare mem1ru al personalului supraveghea3 o1ligatoriu proprieti i nu toate proprietile sunt supravegheate o1ligatoriu de un mem1ru al personalului (participri pariale 8 linii simple de legtur*. in modelul din fig. C..- nu se poate deduce ce proprieti sunt disponi1ile la care filiale. =odelul !& sugerea3 e:istena unei relaii 6ntre entitile Filiala i %roprietateWdeWInchiriat5 dar5 aa cum re3ult din reeaua nu e:ist ci 6ntre anumite apariii ale

semantic asociat (fig. C..0* entitilor.

Fig. C..- Capcan de 6ntrerupere

'ipsa cilor 6ntre anumite apariii ale entitilor Filiala i %roprietateWdeWInchiriat se o1serv clar din reeaua semantic din figura C..0. #u se poate deduce la ce filial este disponi1il proprietatea %AC). Fig. C..0. &eeaua semantic a modelului !& din fig. C..-.
5(

%articiparea parial a entitilor %ersonal i %roprietateWdeWInchiriat 6n relaia Supraveg!eaza are ca efect faptul c unele proprieti nu pot fi asociate cu o filial prin intermediul unui mem1ru al personalului. %entru re3olvarea acestei capcane de 6ntrerupere tre1uie identificat relaia care lipsete. Aceasta este relaia 're dintre entitile Filiala i %roprietateWdeWInchiriat. $e restructurea3 modelul !&5 introduc7nd relaia nou identificat 're 6ntre entitile 6ntre care lipseau cile (fig. C..P*. Fig. C..P. =odel !& restructurat pentru eliminarea capcanei de 6ntrerupere. Acum la nivelul apariiilor individuale5 adic din reeaua semantic5 se poate sta1ili c proprietatea %AC) este disponi1il la filiala BP (fig. C..X*.

Fig. C..X. &eeaua semantic a modelului !& restructurat din fig. C..P. 1.(.( 6ezumatul capitolului 1.( Un tip de entitate este un o1iect sau un concept care este identificat de organi3aie ca av7nd o e:isten independent. " entitate este o instan unic identifica1il a unui tip de entitate. Un tip de entitate slab este o entitate a crei e:isten depinde de e:istena altor entiti. " entitate tare este o entitate a crei e:isten nu este dependent de e:istena altor entiti. Un atribut este o proprietate a uni tip de entitate sau relaie.
51

Domeniul atributului repre3int mulimea de valori care pot fi atri1uite acestuia. Un atribut simplu este compus dintr9o singur component5 cu e:isten independent. Un atribut compus este format din mai multe componente5 fiecare cu e:isten independent. Un atribut cu o singur ,aloare conine o singur valoare pentru o singur entitate. Un atribut cu ,alori multiple deine mai multe valori pentru o singur entitate. Un atribut deri,at are o valoare deriva1il dn valoarea altui atri1ut sau mulimi de atri1ute5 care nu sunt neaprat ale aceleiai entiti. " c1eie candidat este un atri1ut sau set de atri1ute care identific 6n mod unic apariiile individuale ale unui tip de entitate. " c1eie primar este o cheie candidate aleas pentru o entitate. " c1eie compus este o cheie candidat care const din dou sau mai multe atri1ute. Un tip de rela"ie este un set de asociaii5 toate cu un acelai sens5 6ntre tipuri de entiti. " rela"ie este o asociere 6ntre entiti5 aceast relaie cuprin37nd o entitate din fiecare tip de entitate ce particip 6n relaie. Gradul unui tip de rela"ie este numrul de entiti participante 6n aceasta. " rela"ie recursi, conine o aceeai entitate care particip de mai multe ori 6n relaie5 cu roluri diferite. <umele de roluri sunt utili3ate pentru determinarea funciilor fiecrei entiti participante 6ntr9o relaie. 6aportul de cardinalitate descrie numrul de relaii posi1ile pentru fiecare entitate participant. Constr;ngerile de participare determin dac e:istena unei entiti depinde de legtura sa cu o alt entitate5 prin intermediul unei relaii. " capcan n e,antai e:ist acolo unde un model repre3int o relaie 6ntre tipuri de entiti5 dar calea dintre anumite apariii ale acestora este am1igu. " capcan de ntrerupere e:ist acolo unde modelul sugerea3 e:istena unei relaii 6ntre tipuri de entiti5 dar nu e:ist o cale 6ntre anumite apariii ale entitilor.

52

1.(.- 8ntreb ri la capitolul 1.( escriei conceptele de 1a3 ale modelului !&5 i repre3entarea schematic a acestora. escriei constr7ngerile ce pot fi impuse entitilor participante 6ntr9o relaie. escriei pro1lemele ce pot aprea 6n crearea unui model !&. 1.- <ormalizarea Atunci c7nd proiectm o B pentru un $;B relaional5 principalul o1iectiv la crearea unui model de date logic este repre3entarea corect a datelor5 relaiilor i constr7ngerilor. %entru acesta tre1uie de identificat un set de relaii adecvat5 ceea ce se reali3ea3 cu aAutorul tehnicii de normali3are. #ormali3area este tratarea de Aos 6n sus a proiectrii B 5 care 6ncepe cu e:aminarea relaiilor dintre atri1ute. 1.-.1 Scopul normaliz rii <ormalizarea este o tehnic de reali3are a unui set de relaii (a unei mulimi de ta1ele* cu proprieti (atri1ute* de3ira1ile5 av7nd 6n vedere cerinele organi3aiei. #ormali3area este frecvent efectuat ca o serie e teste asupra unei relaii5 pentru a sta1ili dac aceasta satisface sau violea3 cerinele unei anumite forme normale. $e deose1esc2 prima form normal (C#F*5 a doua form normal (.#F*5 a treia form normal (F#F*5 forma normal Br<ce9Codd (BC#F*5 a )9a i a -9a form normal ()#F5 -#F*. Toate formele normale se 1a3ea3 pe dependenele funcionale dintre atri1utele unei relaii. %rin aplicarea testelor de normali3are5 adic prin normali3area schemei relaionale (ve3i pct. C...C.F* se previne apariia anomaliilor de reactualizare. 1.-.# 6edundan"a datelor i anomaliile de reactualizare Atri1utele tre1uie grupate 6n relaii (ta1ele* astfel 6nc7t s se minimi3e3e redundana datelor i s se reduc spaiul de stocare necesar relaiilor de 1a3 implementate.
5"

%entru stocarea 6n B a informaiilor referitoare la angaAai i filiale comparm dou posi1iliti2 a* Crearea a dou ta1ele5 unul cu angaAai (relaia %ersonal* i unul cu filialele (relaia Filiala*2 %ersonal (#rW%ersonal5 #ume%5 Adresa%5 Functie5 $alariu5 #rWFiliala* Filiala (#rWFiliala5 AdresaF5 #rWTel* 1* stocarea tuturor informaiilor 6ntr9un ta1el unic (%ersonalWFiliala*2 %ersonalWFiliala (#rW%ersonal5 #ume%5 Adresa%5 Functie5 $alariu5 #rWFiliala5 AdresaF5 #rWTel*. On relaia %ersonalWFiliala valorile atri1utelor referitoare la filial se repet pentru fiecare mem1ru al personalului alocat unei anumite filiale. Apar astfel date redundante5 care pot crea pro1leme numite anomalii de reactualizare5 care sunt 6mprite 6n2 9 anomalii de inserare 9 anomalii de tergere 9 anomalii de modificare. 3nomaliile de inserare !:ist dou tipuri de anomalii de inserare. %entru a le ilustra considerm relaia %ersonalWFiliala (cu date redundante*. 9 'a inserarea unui nou mem1ru al personalului5 tre1uie inserate corect i toate datele referitoare la filiala la care este alocat5 date aflate deAa 6n alte r7nduri din acelai ta1el. 9 'a inserarea de date referitoare la o filial care nu are alocat 6nc nici un mem1ru de personal5 tre1uie de trecut #ull9uri 6n celulele pentru atri1utele personalului. ar #rW%ersonal fiind cheie primar5 6ncercarea de a introduce valoarea #ull ar viola integritatea entitilor i nu va fi permis. Ca urmare nu poate fi inserat o filial nou fr personal alocat. Aceste pro1leme se evit proiect7nd i utili37nd dou relaii distincte5 anume2 %ersonal i Filiala. 3nomaliile de tergere
5&

ac 6n relaia %ersonalWFiliala o anumit filial apare o singur dat (filiala are un singur mem1ru de personal*5 atunci tergerea acestui mem1ru de personal va duce la tergerea i a informaiilor referitoare la filiala respectiv. 3nomalii de modificare ac reactuali3m de e:emplu un numr de telefon al unei filiale din ta1elul %ersonalWFiliala5 atunci acest numr va tre1ui de reactuali3at 6n acest ta1el 6n toate r7ndurile 6n care apare filiala respectiv (r7nduri corespun3toare diferiilor mem1ri ai personalului alocai filialei respective*. Propriet "ile de uniune f r pierderi i conser,are a dependen"ei

&elaia %ersonalWFiliala este e:pus anomaliilor de reactuali3are i tre1uie descompus 6n dou relaii (ta1ele* distincte2 %ersonal i Filiala. Descompunerea are dou proprieti importante2 9 4niune f r pierderi2 permite regsirea oricrei instane din relaia iniial 6n instanele corespun3toare ale relaiilor mai mici. 9 Conser,area dependen"ei2 permite impunerea unei constr7ngeri asupra relaiei iniiale5 prin impunerea unei constr7ngeri asupra fiecreia dintre relaiile mai mici. Adic nu este necesar efectuarea uniunii relaiilor mai mici pentru a verifica dac este violat o constr7ngere asupra relaiei iniiale. 1.-.% Dependen"e func"ionale Conceptul de dependen funcional este elementul central 6n procesul de normali3are. Dependen" func"ional B descrie legturile dintre atri1utele unei relaii. e e:emplu5 dac A i B sunt atri1ute ale relaiei &5 atri1utul B este dependent funcional de A (se notea3 A B* dac fiecrei valori a atri1utului A 6i este asociat e:act o valoare atri1utului B (A i B pot fi formate din mai multe atri1ute fiecare*.

55

Atunci c7nd e:ist o dependen funcional5 ea este specificat ca o constr7ngere 6ntre atri1ute. A B2 pentru o valoare dat a lui A (6n toate r7ndurile din ta1el unde apare aceast valoare* se va gsi o singur valoare a lui B (xemplu2 A M atri1utul Nlocalitate@4 B M atri1utul NAude@. eoarece A B (adic B este dependent funcional de A*5 6n fiecare r7nd din ta1el unde A are valoarea Codlea5 B va avea valoarea Braov. ependena dintre atri1utele A i B poate fi repre3entat i su1 form de diagram (fig. C..H*. eterminantul unei dependene funcionale se refer la atri1utul din partea st7ng a sgeii. Aici A este determinantul lui B. Fig. C..H. iagram de dependen funcional On relaia %ersonalWFiliala e:ist CF dependene funcionale cu urmtorii determinani5 6nscrii 6n st7nga sgeii2 #rW%ersonal #ume%4 #rW%ersonal Adresa%4 #rW%ersonal Functie4 #rW%ersonal $alariu4 #rW%ersonal #rWFiliala4 #rW%ersonal AdresaF4 #rW%ersonal #rWTel4 #rWFiliala AdresaF4 #rWFiliala #rWTel4 AdresaF #rWFiliala4 AdresaF #rWTel4 #rWTel #rWFiliala4 #rWTel AdresaF4 Identificarea c1eii primare a unei rela"ii cu a)utorul dependen"ei func"ionale

5!

%entru a identifica cheia primar a relaiei (ta1elului* %ersonalWFiliala se identific 6nt7i toate cheile candidat5 adic acele atri1ute care identific 6n mod unic fiecare r7nd din relaie. Toate atri1utele care nu fac parte din cheia primar tre1uie s fie dependente funcional de aceasta. Ca urmare cheia primar va fi acel atri1ut (sau set de atri1ute* care determin funcional toate celelalte atri1ute ale relaiei. Cu alte cuvinte cheia primar va fi acel atri1ut (sau set de atri1ute* de care sunt dependente funcional toate celelalte atri1ute ale relaiei. On relaia %ersonalWFiliala aceast cerin o 6ndeplinete numai atri1utul #rW%ers.

1.-.( Procesul de normalizare #ormali3area este o tehnic formal de anali3are a relaiilor (ta1elelor* 1a3at pe cheile primare ale acestora i pe dependenele funcionale. Tehnica presupune o serie de reguli care pot fi utili3ate pentru testarea relaiilor individuale5 re3ult7nd normali3area 1a3ei de date. Atunci c7nd o cerin nu este 6ndeplinit5 relaia care o violea3 tre1uie descompus 6n relaii care satisfac individual cerinele normali3rii. #ormali3area se e:ecut ca o serie de pai corespun3tori unei anumite forme normale. %entru modelul relaional numai prima form normal (C#F* este de importan critic 6n crearea de relaii adecvate. Toate formele normale urmtoare sunt opionale5 dar pentru a evita anomaliile de reactuali3are se recomand efectuarea normali3rii p7n la cel puin forma normal F#F. %rocesul de normali3are este ilustrat 6n figura de mai Aos5 unde se demonstrea3 legtura dintre diversele forme normale. Unele relaii 6n C#F sunt i 6n .#F5 unele relaii 6n . #F sunt i 6n F#F .a.m.d.

5,

$chema legturilor dintre formele normale 1.-.- Prima form normal

?orma nenormalizat &4<?' este un ta1el care conine unul sau mai multe grupuri repetitive. Prima form normal &1<?' este o relaie 6n care intersecia fiecrui r7nd cu fiecare coloan conine o singur valoare i numai una. $e presupune c datele sunt introduse prin intermediul unui formular. Aceste date se transfer i se stochea3 6ntr9un ta1el de form nenormali3at. $e identific i se elimin grupurile repetitive pentru a aduce ta1elul 6n prima form normal (C#F*. Un grup repetiti, este un atri1ut sau grup de atri1ute dintr9un ta1el care are valori multiple pentru o singur apariie a atri1utului (atri1utelor* cheie primar al acelui ta1el. !:ist dou tratri u3uale pentru eliminarea grupurilor repetitive din ta1ele. Prima tratare2 se elimin grupurile repetitive prin introducerea datelor adecvate 6n coloanele goale ale r7ndurilor care conin date repetitive. (xemplu2 $e consider un formular (fig. C.F/* pentru introducere 6n 1a3a de date a ageniei imo1iliare de N etalii client96nchiriere@. %entru simplificare se presupune c un client 6nchiria3 o anumit proprietate o singur dat i nu poate 6nchiria mai mult de o proprietate 6n acelai timp.
5.

Fig. C.F/. Formularul N etalii client96nchiriere@ al ageniei imo1iliare %entru cei doi clieni datele transformate 6ntr9un ta1el nenormali3at se pre3int ca 6n fig. C.FC.

Fig. C.FC Ta1elul nenormali3at (U#F* ClientWInchiriere Ca urmare e:ist valori multiple la intersecia dintre anumite r7nduri i coloane. e e:emplu pentru clientul Yohn Ja< e:ist dou proprieti2 %;) i %; C0. %entru a transforma ta1elul 6n prima form normal se elimin grupul repetitiv5 a.6. s e:iste o singur valoarea 6n fiacre celul. Conform primei tratri grupul repetitiv se elimin prin introducerea datelor adecvate 6n fiecare r7nd. Ta1elul (relaia* va fi acum 6n C#F (fig. C.F.*.

5%

Fig. C.F.. &elaia ClientWInchiriere 6n prima form normal (C#F* On continuare se identific cheile candidat5 care pentru acest ta1el vor fi chei compuse2 (#rWClient5 #rW%roprietate*4 (#rWClient5 InceputInchir* i (#rW%roprietate5 InceputInchir*. $e selectea3 drept chei primar al acestei relaii setul de atri1ute2 (#rWClient5 #rW%roprietate*4 6n fig. C.F. ele au fost mutate a.6. s fie primele dou coloane. Acum relaia ClientWInchiriere 6n C#F este definit astfel2 ClientWInchiriere InceputInchir5 #ume%* (#rWClient5 #rW%roprietate5 #umeC5 Adresa%5 $farsitInchir5 Chirie5 #rW%roprietar5

&elaia este 6n C#F5 adic la intersecia unui r7nd cu o coloan e:ist o singur valoare5 dar are 6n acelai timp date redundante. ,a tre1ui trecut 6n .#F5 ceea ce nu este 6ns o1iectul pre3entului curs. 3 doua tratare2 se elimin grupul repetitiv prin plasarea 6ntr9o relaie separat a datelor repetitive5 6mpreun cu o copie atri1utului cheie iniial (#rWClient*5 aa cum arat figura C.FF. Apoi se identific o cheie primar pentru noua relaie.

!(

Fig. C.FF &elaiile Client i %ropWInchirW%roprietar 6n C#F Formele celor . relaii 6n C#F re3ultante sunt2 Client %ropWInchirW%roprietar InceputInchir5 #ume%* (#rWClient5 #umeC* (#rWClient5 #rW%roprietate5 Adresa%5 $farsitInchir5 Chirie5 #rW%roprietar5

Cum re3ult din fig. C.FF5 am1ele relaii sunt 6n C#F5 deoarece la intersecia dintre fiecare r7nd i fiecare coloan e:ist o singur valoare. A doua relaie pre3int o oarecare redundan a datelor i poate suferi anomalii de reactuali3are. $e impune trecerea 6n .#F. 1.-./ 3 doua form normal &#<?'

A doua form normal se 1a3ea3 pe conceptul de dependen funcional total. ac A i B sunt atri1utele unei relaii5 atunci B este total dependent func"ional de A5 dac B este dependent funcional de A5 dar nu de orice su1mulime adecvat a lui A. " dependen funcional A = B este total 5 dac prin eliminarea oricrui atri1ut din componena lui A5 dependena nu mai are loc.
!1

" dependen funcional A = B este par"ial 5 dac e:ist un atri1ut din componena lui A5 care dac este eliminat din A5 dependena funcional se pstrea3. !:emplu de dependena funcional parial2 eterminantul A se compune din . atri1ute2 #rW%ersonal5 #ume%. Atri1utul determinat5 dependent funcional de A este B2 #rWFiliala. A = B5 deci2 #rW%ersonal5 #ume% = #rWFiliala. i dup eliminarea atri1utului #ume% dependena funcional se pstrea32 din componena lui A5

#ume% = #rWFiliala5 deci dependena iniial A = B este una parial. A doua form normal (.#F* se aplic relaiilor cu chei compuse (din mai multe atri1ute*. Al doilea ta1el din fig. C.FF se afl 6n C#F i are cheia primar compus din . atri1ute2 #rWClient5 #rW%roprietate. Ta1elul este e:pus anomaliilor de reactuali3are. ac de e:emplu tre1uie de modifica valoarea chiriei pentru proprietatea %;) i reactuali3area nu se face 6n fiecare r7nd 6n care apare %;)5 se pierde coerena 1a3ei de date. $e o1serv c atri1utul NChirie@ depinde funcional numai de atri1utul N#rW%roprietate@ i nu de 6ntreaga cheie primar compus. (Adic5 dac se elimin atri1utul #rWClient din cheia primar5 dependena funcional #rW%roprietate = Chirie se pstrea3*. %entru a evita anomaliile de reactuali3are ta1elul tre1uie de adus 6n .#F. 3 doua form normal > #<? &defini"ie' 2 " relaie (ta1el* 6n C#F 6n care fiecare atri1ut care nu este cheie primar este total dependent funcional de cheia primar (compus* se afl 6n . #F. Trecerea din C #F 6n .#F se face prin eliminarea dependenelor pariale. Atri1utele identificate ca fiind parial dependente de cheia primar se plasea3 6ntr9o nou relaie (ta1el*5 6mpreun cu determinantul lor.
!2

$e consider ta1elul ClientWInchiriere (fig. C.F.*5 av7nd o cu cheie primar compus. ClientWInchiriere (#rWClient5 #rW%roprietate5 #umeC5 InceputInchir5 $farsitInchir5 Chirie5 #rW%roprietar5 #ume%* On acest ta1el e:ist urmtoarele dependene funcionale2 fdC #rWClient5 #rW%roprietate = InceputInchir5 $farsitInchir #rWClient = #umeC #rW%roprietate = Adresa%5 #rW%roprietar5 #ume% Chirie5 ependene totale de cheia primar #rWClient5 #rW%roprietate Dependen" par"ial de (unul din atri1utele din* cheia primar Dependen" par"ial de (unul din atri1utele din* cheia primar ependen tran3itiv ependene totale de cheia candidat #rWClient5 InceputInchir ependene totale de cheia candidat #rW%roprietate5 InceputInchir Adresa%5

fd. fdF fd) fd-

#rW%roprietar = #ume% #rWClient5 InceputInchir = #rW%roprietate5 Adresa%5 $farsitInchir5 Chirie5 #rW%roprietar5 #ume% #rW%roprietate5 InceputInchir #rWClient5 #umeC5 $farsitInchir =

fd0

Ta1elul ClientWInchiriere nu se afl 6n .#F5 deoarece s9au depistat dependene pariale ale unor atri1ute de (unul din atri1utele din* cheia primar. "1servaie2 ependena tran3itiv nu violea3 .#F5 dei poate cau3a anomalii de reactuali3are . Astfel de dependene sunt eliminate la trecerea 6n F#F. %entru a aduce ta1elul 6n .#F2 9 atri1utele dependente parial se mut 6ntr9un nou ta1el5 6mpreun cu atri1utul lor determinant fd.5 fdF*2
!"

Client (#rWClient5 #umeC* %roprietarW%roprietate #rW%roprietar5 #ume%* (#rW%roprietate5 Adresa%5 Chirie5

9 ta1elul iniial 8 su1 alt nume 9 6i pstrea3 cheia primar iniial5 compus5 i acele atri1ute care au dependen funcional total de cheia primar (fdC*. Inchiriere (#rWClient5 #rW%roprietate5 InceputInchir5 $farsitInchir*.

&elaiile (ta1elele* 6n .#F derivate din relaia (ta1elul* ClientWInchiriere 1.-.2 3 treia form normal &%<?'

On ta1elul %roprietate9%roprietar s9a identificat dependena tran3itiv #rW%roprietar = #ume%. &eactuali3area numelui unui proprietar (de e:. Ton< $haD* tre1uie fcut 6n fiecare r7nd 6n care acesta apare. On ca3 contrar B va deveni incoerent. Ca urmare e:istena dependenei tran3itive poate cau3a anomalii de reactuali3are. Aducerea unei relaii (unui ta1el* 6n F #F se refer la eliminarea dependenelor tran3itive. Dependen" tranziti, &defini"ie'2 ac A5 B i C sunt atri1utele unei relaii (unui ta1el* i A = B i B = C5 atunci C este dependent
!&

tran3itiv de A prin intermediul lui B (cu condiia ca A s nu fie dependent funcional de B sau C*. $e consider de e:emplu relaia %ersonalWFiliala %ersonalWFiliala (#rW%ersonal5 #ume%5 Adresa%5 Functie5 $alariu5 #rWFiliala5 AdresaF5 #rWTel*. !:ist (printre altele* urmtoarele dependene funcionale2 #rW%ersonal = #rWFiliala i #rWFiliala = AdresaF eci dependena #rW%ersonal = AdresaF are loc prin intermediul atri1utului #rWFiliala. Aceast dependen este adevrat pentru c atri1utul #rW%ersonal nu este dependent funcional de atri1utul #rWFiliala sau de atri1utul AdresaF. 3 treia form normal > %<? &defini"ie'B " relaie (un ta1el* 6n C#F i .#F 6n care nici un atri1ut care nu este cheie primar nu este dependent tran3itiv de cheia primar se afl 6n F#F Ca e:emplu consider dependenele funcionale din relaiile (ta1elele* de mai sus2 Client (#rWClient5 #umeC* #rWClient = #umeC Inchiriere (#rWClient5 #rW%roprietate5 InceputInchir5 $farsitInchir* #rWClient5 #rW%roprietate = InceputInchir5 $farsitInchir #rWClient5 InceputInchir = #rW%roprietate5 $farsitInchir #rW%roprietate5 InceputInchir = #rWClient5 $farsitInchir %roprietarW%roprietate (#rW%roprietate5 Adresa%5 Chirie5 #rW%roprietar5 #ume%* #rW%roprietate = Adresa%5 Chirie5 #rW%roprietar5 #ume% #rW%roprietar = #ume% $ingura dependen tran3itiv identificat se afl 6n relaia (ta1elul* %roprietarW%roprietate2 #rW%roprietar = #ume%5
!5

sau mai e:act2 #rW%roprietate = #rW%roprietar = #ume%. Celelalte . relaii (ta1elele NInchiriere@ i NClient@* nu conin dependene tran3itive i se afl 6n .#F5 deci sunt considerate automat ca fiind 6n F#F. Ta1elul N%roprietarW%roprietate@ se aduce 6n F#F prin eliminarea dependenei tran3itive2 9 atri1utul determinat5 dependent funcional tran3itiv se mut 6n alt relaie (ta1el*5 6mpreun cu determinantul su2 %roprietar (#rW%roprietar5 #ume%* 9 ta1elul iniial 8 su1 alt nume 9 6i pstrea3 cheia primar iniial5 i acele atri1ute care au nu au dependen funcional tran3itiv de cheia primar2 %roprietateWdeWInchiriat (#rW%roprietate5 Adresa%5 Chirie5 #rW%roprietar*

&elaiile (ta1elele* F#F derivate din relaia (ta1elul* %roprietateW%roprietar Cele . noi ta1ele se afl 6n F#F5 deoarece nu conin dependene tran3itive ale unor atri1ute de cheia primar. &elaia NClientWInchiriere@ (fig. C.F.* aflat 6n C#F2 ClientWInchiriere (#rWClient5 #rW%roprietate5 #umeC5 Adresa%5 InceputInchir5 $farsitInchir5 Chirie5 #rW%roprietar5 #ume%* a fost supus procesului de normali3are i descompus 6n ) relaii (ta1ele* F#F2 Client (#rWClient5 #umeC* Inchiriere (#rWClient5 #rW%roprietate5 InceputInchir5 $farsitInchir*
!!

%roprietateWdeWInchiriat (#rW%roprietate5 #rW%roprietar* %roprietar (#rW%roprietar5 #ume%*

Adresa%5

Chirie5

%rocesul de normali3are este ilustrat 6n figura de mai Aos2

escompunerea relaiei (ta1elului* C#F2 ClientWInchiriere 6n relaii (ta1ele* F#F &elaia iniial ClientWInchiriere poate fi recreat prin uniunea relaiilor (ta1elelor* F #F re3ultate 6n urma normali3rii. Aceasta se reali3ea3 prin mecanismul cheie primar 8 cheie strin. e e:emplu atri1utul #rW%roprietar este cheie primar 6n relaia (ta1elul* N%roprietar@ i cheie strin 6n relaia (Ta1elul* N%roprietateWde96nchiriat@. &elaiile (ta1elele* sunt pre3entate 6n figura de mai Aos2

&elaiile (ta1elele* F#F derivate din relaia (ta1elul* Client9Inchiriere


!,

1.-.5 6ezumatul capitolului 1.<ormalizarea este o tehnic de reali3are a unui set de relaii cu proprieti adecvate5 av7ndu9se 6n vedere cerinele unei 6ntreprinderi privind datele. #ormali3area este o metod formal5 ce poate fi utili3at pentru identificarea relaiilor5 1a37ndu9se pe cheile i dependenele funcionale dintre atri1utele acestora. &elaiile cu redundan de date pot suferi din cau3a anomaliilor de reactualizare5 care se clasific 6n anomalii de inserare5 tergere i modificare. #ormali3area este legat de conceptul de dependen" func"ional 5 care descrie legturile dintre atri1utele unei relaii. ac A i B sunt atri1ute ale relaiei &5 atri1utul B este dependent funcional de A (A B* dac fiecrei valori a atri1utului A 6i este asociat e:act o valoare atri1utului B (A i B pot fi formate din mai multe atri1ute fiecare*. Un determinant este orice atri1ut de care un alt atri1ut este total dependent funcional. eterminantul unei dependene funcionale se refer la atri1utul (grupul de atri1ute* din partea st7ng a sgeii. %rocesul de normali3are face ca relaia s treac prin diverse forme normale. On fiecare etap a normali3rii se elimin caracteristici inde3ira1ile din relaie5 care o fac sensi1il la anomalii de reactuali3are. ?orma nenormalizat (U#F* este un ta1el cu unul sau mai multe grupuri repetitive. Prima form normal (C#F* este o relaie 6n care la intersecia dintre fiecare r7nd cu fiecare coloan apare o singur valoare. 3 doua form normal (.#F* este o relaie (ta1el* care se afl 6n C#F i 6n care fiecare atri1ut care nu este cheie primar este total dependent de cheia primar. Dependen"a func"ional total arat c dac A i B sunt atri1ute ale unei relaii (ta1el*5 B este total dependent funcional de A dac B este dependent funcional de A5 dar nu i de orice su1mulime adecvat a lui A. 3 treia form normal (F#F* este o relaie (ta1el* care se afl 6n C#F i .#F5 6n care nici un atri1ut care nu este cheie primar nu este dependent tran3itiv de cheia primar. Dependen"a tranziti, este situaia 6n care 6ntre trei atri1ute A5 B i C ale unei relaii (ta1el* e:ist dependenele funcionale2 A = B i B = C5 adic C este dependent tran3itiv de A prin intermediul lui B (cu condiia ca A s nu fie dependent funcional de B sau C*.
!.

1.-.7 8ntreb ri la capitolul 1. escriei scopul normali3rii datelor. escriei pro1lemele ce decurg din redundana datelor. escriei conceptul de dependen funcional. Cum este legat conceptul de dependen funcional de procesul de normali3areB efinii prima5 a doua i a treia form normal.

1./ !etodologia de proiectare conceptual

a bazelor de date

%roiectarea unei 1a3e de date cuprinde urmtorii pai2 %asul C2 proiectarea conceptual %aii . i F2 proiectarea logic %aii )5 -5 05 i P2 proiectarea fi3ic. Proiectarea conceptual a bazei de date este procesul de construire a unui model al informaiilor utili3ate 6n 6ntreprindere5 independent de consideraiile de ordin fi3ic ($;B ul utili3at*. 1./.1 Pasul 1. Construirea modelului de date conceptual local pentru fiecare ,edere a utilizatorilor e regul vederea unui utili3ator este o 3on funcional a 6ntreprinderii (de e:emplu producia5 marKetingul5 v7n3rile5 resursele umane5 conta1ilitatea5 aprovi3ionarea etc.*. utili3atorul este o persoan real individual sau un grup de persoane. identificarea vederilor utili3atorilor se reali3ea3 prin e:aminarea diagramelor de flu: i prin chestionarea utili3atorilor. =odelul de date conceptual corespun3tor vederii unui utili3ator se numete model de date conceptual local corespun3tor vederii respective. Fiecare model de date conceptual local cuprinde elementele enumerate 6n ta1elul de mai Aos5 din care se desprind sarcinile de proiectare conceptual.

!%

9lemente ale Sarcini pentru construirea modelului modelului de date conceptual local conceptual local &Pai' Tipuri de entiti C.C. Identificarea tipurilor de entiti (t.e.* Tipuri de relaii C... Identificarea tipurilor de relaii (t.r.* Atri1ute C.F. identificarea i asocierea atri1utelor cu t.e. i t.r. omeniile atri1utelor C.). eterminarea domeniilor atri1utelor Cheile candidat C.-. eterminarea atri1utelor chei candidat i chei primare Cheile primare C.0. $peciali3area>generali3area t.e. (opional* C.P. esenarea diagramei !& C.X. &evi3uirea modelului conceptual local cu utili3atorii Pasul 1.1 Identificarea tipurilor de entit "i &t.e.' =odaliti de identificare2 9 studierea specificaiei cerinelor utili3atorului referitor la funcia utili3atorului 6n 6ntreprindere4 se caut su1stantivele 6n specificaia cerinelor utili3atorului (de e:emplu #rW%ersonal4 #ume%4 #rW%roprietate4 Adresa%4 Chirie etc.* 9 se caut o1iectele principale de interes5 e:clu37ndu9se calitile4 se grupea3 (de e:emplu #rW%ersonal i #ume% vor aparine aceluiai tip de entitate %ersonal* 9 se identific o1iectele care e:ist pe cont propriu (de e:emplu %ersonal e:ist indiferent de #rW%ersonal5 #ume%5 etc.* 9 discuii cu utili3atorii (de e:emplu pentru eliminarea sinonimelor2 AngaAat M %ersonal* ocumentarea t.e.2 dup identificarea t.e. li se atri1uie denumiri evidente5 care se trec 6ntr9un dicionar de date. Pasul 1.# Identificarea tipurilor de rela"ii &t.r.' 9 Identificarea relaiilor2 de regul relaiile sunt indicate de e:presii ver1ale 6n specificaia utili3atorului. e e:emplu2 filiale are personal4 personal administreaz proprietate4 chiria viziteaz proprietate etc. Interesea3 numai relaiile dintre entiti cerute. =aAoritatea relaiilor sunt 1inare. !ste 1ine de verificat fiecare pereche de tipuri de entiti5 pentru a gsi o posi1il relaie 6ntre ele.
,(

eterminarea cardinalitii (C2C4 C2=4 =2#* i constr7ngerilor de participare (total5 parial*4 eventual se specific i valorile limit ale cardinalitii. 9 ocumentarea tipurilor de relaii. %e msur ce sunt identificate5 li se atri1uie denumiri evidente4 acestea5 precum i constr7ngerile se trec 6n dicionarul de date. 9 ,i3uali3area pe parcurs a t.e. i t.r. identificate prin modelarea !&. 9 Pasul 1.% Identificarea i asocierea atributelor cu t.e. sau t.r. 9 Identificare2 $e caut su1stantive sau e:presii su1stantivale 6n specificaia cerinelor utili3atorilor care s caracteri3e3e t.e. i t.r. gsite. Atri1utele sunt proprieti5 caliti5 caracteristici identificatoare ale unei entiti sau relaii. $e deose1ete 6ntre atri1ute simple5 compuse5 derivate. Atri1utele derivate tre1uie repre3entate 6n modelul conceptual pentru a nu pierde informaii. 9 ocumentarea atri1utelor2 pe msur ce sunt identificate li se atri1uit denumiri evidente i semnificative pentru utili3atori. %entru fiecare atri1ut se trec 6n dicionarul de date2 denumirea5 sinonime sau aliasuri5 tipul de date i lungimea5 eventuale valori presta1ilite (default value*5 dac se accept #ull9uri (reZuired*5 dac e compus sau derivat5 formula de calcul5 dac are valori multiple. Pasul 1.( Determinarea domeniilor atributelor 9 eterminarea2 omeniul este un recipient de valori din care unul sau mai multe atri1ute 6i iau valorile. e e:emplu domeniul numerelor de filial vala1ile este compus din F caractere5 liter9 cifr9liter. omeniul va include i mulimea valorilor permise5 dimensiunea i formatul c7mpului. 9 ocumentarea domeniului atri1utelor2 se 6nregistrea3 denumirea i caracteristicile domeniilor atri1utelor 6n dicionarul de date. Pasul 1.- Determinarea atributelor c1ei candidat i c1ei primare 9 identificare2 pentru fiecare entitate se identific toate cheile candidat i se secionea3 dintre ele cheia primar. " cheie candidat este o su1mulime minim de atri1ute ale unei entiti5 care identific 6n mod unic fiecare apariie a acesteia. Cheia primar aleas va 6ndeplini urmtoarele criterii2 o va cuprinde un set minim de atri1ute o va fi cheia candidat cu cea mai mic pro1a1ilitate de modificare a valorilor
,1

o va fi cheia candidat cu cea mai mic pro1a1ilitate de a9i pierde caracterul de unicitate o va fi cheia candidat cu cele mai puine caractere o va fi cheia candidat cel mai uor de utili3at d.p.d.v. al utili3atorilor Unei entiti tari i se poate identifica o cheie primar5 nu i unei entiti sla1e. Unei entiti sla1e i se poate identifica o cheie primar numai prin plasarea 6n ea a unei chei strine5 6n cadrul relaiei sale cu entitatea tare. Cheile candidat care nu sunt selectate cheie primar devin chei alternative. 9 ocumentarea cheilor primare i alternative prin 6nregistrare 6n dicionarul de date. Pasul 1./ &op"ional' SpecializareaCgeneralizarea tipurilor de entit "i

Acest pas este dictat de repre3entarea c7t mai clar a entitilor importante i a relaiilor dintre ele. iagrama !& final tre1uie s fie c7t mai li3i1il. =odelul !& din figura C.F) a conine entitile %roprietateWdeWInchiriat i %roprietateWdeW,an3are. $e generali3ea3 prin crearea entitii %roprietate (fig. C.F) 1.*

,2

Fig. C.F). !:emplu de generali3are a tipului de entitate !ntitile %roprietateWdeWInchiriat i %roprietateWdeW,an3are devin su1clase ale entitii %roprietate 6n 1a3a atri1utelor comune (Tipul5 Adresa5 cheia primar* i 6n 1a3a relaiilor comune asociate fiecreia (%roprietarWdeineW%roprietate*. !ntitile su1clas au i atri1ute diferite (Chirie respectiv %re* i relaii diferite (Inchiria3a respectiv Cumpara*. Pasul 1.2 Desenarea diagramei 96 iagrama !& care se desenea3 va fi repre3entarea conceptual a vederii unui utili3ator asupra 6ntregii 6ntreprinderi. iagrama !& va
,"

repre3enta modelul de date conceptual local 1a3at pe o anumit vedere a utili3atorului asupra 6ntreprinderii. Pasul 1.5 6e,izuirea modelului de date conceptual local mpreun cu utilizatorii Acest pas este necesar pentru a garanta c modelul este o repre3entare Nadevrat@ a 6ntreprinderii d.p.d.v. al utili3atorului. 1./.# 6ezumatul capitolului 1./ Proiectarea conceptual a bazei de date este procesul de construire a unui model al informaiilor utili3ate 6n 6ntreprindere5 independent de consideraiile de ordin fi3ic. %roiectarea conceptual 6ncepe prin crearea unui model de date conceptual al 6ntreprinderii5 complet independent de detaliile de implementare. %entru fiecare vedere a utili3atorilor asupra 6ntreprinderii este creat un model de date conceptual local. " ,edere a utilizatorului const 6n datele cerute de ctre un anumit utili3ator pentru a lua o deci3ie sau a efectua o anumit sarcin. e regul vederea unui utili3ator este o 3on funcional a 6ntreprinderii. Un utili3ator poate fi o persoan sau un grup de persoane care utili3ea3 6n mod direct sistemul. ,ederile utili3atorilor se pot identifica utili37nd diagrame de flu: de date 8 care definesc 3onele funcionale i eventual funciile individuale 8 sau>i prin chestionarea utili3atorilor5 e:aminarea procedurilor5 rapoartelor i o1servarea 6ntreprinderii. Fiecare model de date conceptual local cuprinde tipurile de entiti5 tipurile de relaii5 atri1utele5 domeniile atri1utelor5 cheile candidat i primare. Fiecare model de date conceptual local este susinut de ctre o documentaie5 cum ar fi dicionarul de date5 care este reali3at pe parcursul de3voltrii modelului. 1./.% 8ntreb ri la capitolul 1./ 9 escriei principalele fa3e implicate 6n proiectarea B . 9 Anali3ai rolul important al utili3atorilor 6n procesul de proiectare al 1a3elor de date.
,&

escriei principalul o1iectiv al proiectrii conceptuale a 1a3elor de date. 9 escriei ce repre3int o vedere a utili3atorului i cum pot fi identificate diferitele vederi. 9 Identificai principalele sarcini asociate proiectrii conceptuale a 1a3elor de date. 9 Identificai i descriei scopul documentaiei generate pe parcursul proiectrii conceptuale a 1a3elor de date. 9

1.2 !etodologia de proiectare logic modelul rela"ional

a bazelor de date pentru

Proiectarea logic este procesul de construire a unui model al informaiilor utili3ate 6n 6ntreprindere pe 1a3a unui anumit model de date5 dar independent de $;B i de alte consideraii de ordin fi3ic. 1.2.1 Pasul #. Construirea i ,alidarea modelului de date logic pentru fiecare ,edere a utilizatorilor Acest pas este 1a3at pe modelul de date conceptual al vederii utili3atorului asupra 6ntreprinderii (reali3at la pasul C*. $e efectuea3 modificarea structurii modelului conceptual conform cerinelor modelului de date relaional (conform cerinelor caracteristice unui sistem de gestionare relaional*. Pasul #.1 Transpunerea modelului de date conceptual local ntr$ un model de date logic local $e rafinea3 modelul de caracteristicilor nedorite. date conceptual local prin eliminarea

Pasul #.1.1 9liminarea rela"iilor de tip !B< " relaie =2# (de mai muli la mai muli* se descompune pentru a identifica o relaie intermediar. &elaia =2# se 6nlocuiete cu dou relaii C2=.
,5

(xemplu4 &elaia +iar 6ace 5eclama %roprietate (fig. C.F- a* este de cardinalitate =2#5 deoarece un 3iar poate face reclam mai multor proprieti5 iar unei proprieti i se poate face reclam in mai multe 3iare. &elaia se descompune conform figurii C.F- 15 unde &eclama este o entitate sla1 a crei e:isten depinde de e:istena celorlalte dou entiti tari.

Fig. C.F- &elaia de cardinalitate =2# se descompune 6n . relaii de cardinalitate C2= Apar dou tipuri de relaii noi2 'istea3a i respectiv &eclamaIn care leag entitatea sla1 de cele . entiti tari. Anali3ai constr7ngerile de participare din fig. C.F- a i C.F-. 1[ Pasul #.1.# 9liminarea rela"iilor comple:e " relaie comple: include cel puin trei tipuri de entiti. !a tre1uie descompus pentru a identifica o relaie intermediar. &elaia comple: se 6nlocuiete cu un numr corespun3tor de relaii 1inare de cardinalitate C2=. On e:emplul din figura C.F0 relaia comple: Inc!iriaza s9a descompus 6n trei relaii C2=5 anume 7rganizeaza* 'sociat#u i 8ine4 s9a identificat o entitate sla12 AcordWdeWInchiriere care este legat de entitile tari (iniiale* prin cele trei relaii 1inare de cardinalitate C2= identificate. Anali3ai constr7ngerile de participare din fig. C.F0 a i C.F0. 1[
,!

Fig. C.F0. &elaie comple: =2# descompus 6n trei relaii 1inare C2=. Pasul #.1.% 9liminarea rela"iilor recursi,e Acesta este un tip particular de relaie care tre1uie descompus pentru a identifica o relaie intermediar. On e:emplul din figura C.FP relaia recursiv Supraveg!eaza este eliminat prin identificarea unei relaii adiionale denumit Supraveg!eatDe i a unei entiti sla1e2 %ersonalWAlocat. Anali3ai constr7ngerile de participare din fig. C.FP a i C.FP. 1[

,,

Fig. C.FP. !liminarea unei relaii recursive Pasul #.1.( 9liminarea rela"iilor cu atribute Atunci c7nd o relaie are asociat un atri1ut5 acest lucru sugerea3 e:istena unui tip de entitate neidentificat. !:emplul din figura C.FX se refer la determinarea numrului de ore lucrate de angaAaii temporari atri1uii fiecrei filiale. &elaia 9ucreaza9a are atri1utul "re9'ucrate i este de cardinalitate =2#. $e descompune 6n dou relaii 1inare de cardinalitate C2=. Acum atri1utul "reW'ucrate aparine noii entiti sla1e identificate2 AlocaieWFiliala. Anali3ai constr7ngerile de participare din fig. C.FX a i C.FX. 1[

,.

Fig. C.FX. !liminarea unei relaii cu atri1ut Pasul #.1.- 9liminarea atributelor cu ,alori multiple !ste vor1a de atri1ute cu mai multe valori pentru o singur entitate. Acest atri1ut tre1uie descompus pentru a identifica o nou entitate. !:emplul din figura C.FH se refer la evidena filialelor5 unde o filial
,%

poate avea mai multe numere de telefon. $e identific o nou entitate2 Telefon5 legat de entitatea Filiala prin relaia 're. iscutai posi1ilitatea declarrii entitii Telefon ca entitate sla1 i a constr7ngerii de participare a entitii Filiala ca parial. Fig. C.FH. !liminarea atri1utelor cu valori multiple Pasul #.1./ 6ee:aminarea rela"iilor 1B1 Asemenea relaii pot indica e:istena a dou relaii care s repre3inte acelai o1iect 6n cadrul 6ntreprinderii. e e:emplu entitile Filiala i departament pot fi sinonime. On astfel de situaii cele dou entiti se 6m1in5 select7nd una din cheile primare5 dac acestea nu coincid. Cealalt cheie primar devine alternativ. Pasul #.1.2 9liminarea rela"iilor redundante " relaie este redundant atunci c7nd aceeai informaie se poate o1ine i prin alte relaii. Tre1uie deci de aflat dac e:ist mai mult dec7t o singur cale 6ntre dou entiti. ac se identific . ci5 nu 6nseamn neaprat c una din relaii este redundant. Tre1uie de inut cont i de semnificaia temporal a relaiilor. On e:emplul din figura C.)/ relaia este neredundant5 dei e:ist . ci intre entitatea Copil i Bar1at. Tatl ar putea avea copii dintr9o cstorie precedent5 sau ar putea s nu

.(

fie cstorit cu mama copilului5 iar 6n figur se modelea3 numai cstoria curent a tatlui.

Fig. C.)/. &elaie neredundant[ Pasul #.# 9:tragerea rela"iilor &tipurilor de entit "i' din modelul de date logic local On urma pasului ..C s9a o1inut modelul de date logic local5 ca urmare a rafinrii modelului de date conceptual. 'a pasul .... se e:trag relaiile pentru a repre3enta entitile care le compun. Componena fiecrei relaii va fi descris utili37nd un lim1aA de definire a 1a3elor de date ( B '*. Ontr9un B ' apare denumirea relaiei5 apoi 6ntre parante3e atri1utele simple. $e identific cheia primar5 cheile alternative i>sau cheile strine ale relaiei. $e trece relaia care conine cheia strin ca i cheie primar. &elaia pe care o entitate o are cu alt entitate este e:primat prin mecanismul cheie primar 8 cheie strin. Adic cheia primar din entitatea printe devine cheie strin 6n entitatea copil. On continuare se pre3int cum relaiile care repre3int entitile i relaiile acestora sunt e:trase din structurile de date posi1ile5 pre3entate 6n modelul de date logic (fig. C.)C*.

.1

Fig. C.)C. =odel de date logic in acest model de date logic se e:trag2 a. Tipuri de entit "i tariB %entru fiecare entitate tare (o1inuit* se creea3 o relaie care s cuprind toate atri1utele sale simple. (xemplu2 entitatea tare %ersonal Personal (#rW%ersonal5 %renume5 #ume5 $trada5 "rasul5 Cod%5 Functia5 $e:5 $alariu* C1eie primar #rW%ersonal b. Tipuri de entit "i slabe2 &udaWApropiata. %entru fiecare entitate sla1 se creea3 o relaie care s cuprind toate atri1utele sale simple. On plus se include cheia primar a entitii printe (sau proprietar* ca i cheie strin. Compo3iia acestei relaii va fi2 6udaD3propiata (#rW%ersonal5 #ume&5 Adresa5 #rWTel5 &udenie* C1eie primar #rW%ersonal 6mpreun cu #ume& C1eie str in #rW%ersonal se refer la Personal (#rW%ersonal* c. Tipuri de rela"ii binare unu la unu &1B1'
.2

On relaia de cardinalitate C2C %ersonal 'dministreaza Filiala entitatea printe este %ersonal5 deoarece are participare parial. Ca urmare se plasea3 o copie a cheii primare din %ersonal 6n Filiala5 unde devine cheie strin su1 denumirea #rW%ersonalW=anager. Compo3iia acestor relaii va fi2 Personal (#rW%ersonal5 %renume5 #ume5 $trada5 "rasul5 Cod%5 Functia5 $e:5 $alariu* C1eie primar #rW%ersonal ?iliala (#rWFiliala5 Adresa5 #rWTel5 #rWFa:5 #rW%ersonalW=anager* C1eie primar #rWFiliala C1eie alternati, #rWTel sau #rWFa: C1eie str in #rW%ersonalW=anager5 care se refer la %ersonal (#rW%ersonal* d. Tipuri de rela"ii binare unu$la$mai$mul"i &1B!' %entru fiecare relaie 1inar C2= 6ntre entitile !C i !. se plasea3 o copie a cheii primare din !C 6n !.5 unde devine cheie strin. !ntitatea aflat 6n partea notat cu NC@ este entitatea printe5 iar cea din partea cu N=@ este entitatea copil. Ontotdeauna cheia primar din entitatea printe devine cheie strin 6n entitatea copil. (xemplu2 Filiala 're %ersonal5 unde Filiala este printe iar personal este copil. Compo3iia acestor relaii va fi2 Personal (#rW%ersonal5 %renume5 #ume5 $trada5 "rasul5 Cod%5 Functia5 $e:5 $alariu5 #rWFiliala* C1eie primar #rW%ersonal C1eie str in #rWFiliala se refer la Filiala (#rWFiliala* ?iliala (#rWFiliala5 Adresa5 #rWTel5 #rWFa:5 #rW%ersonalW=anager* C1eie primar #rWFiliala C1eie alternati, #rWTel sau #rWFa: C1eie str in #rW%ersonalW=anager5 care se refer la %ersonal (#rW%ersonal*

."

%asul .... se 6ncheie cu documentarea rela"iilor i atributelor c1ei str ine. Compo3iia relaiilor e:trase din modelul de date logic se documentea3 utili37nd B '. $inta:a poate fi e:tins pentru a e:prima constr7ngerile de integritate asupra cheilor strine (ve3i pasul ..0*. i dicionarul de date tre1uie reactuali3at cu noile atri1ute cheie identificate la pasul ... Pasul #.% =alidarea modelului prin utilizarea normaliz rii #ormali3area este o procedur de sta1ilire a atri1utelor care aparin 6mpreun unui tip de entitate. %rin normali3are datele sunt organi3ate conform dependenelor lor funcionale i se elimin riscul anomaliilor de reactuali3are. On prima form normal se elimin grupurile repetitive. Pasul #.( ,alidarea modelului conform tranzac"iilor utilizatorului =odelul tre1uie s accepte tran3aciile cerute de ctre vederile utili3atorului. Tran3aciile se determin din specificaiile cerinelor utili3atorilor. %rin folosirea diagramei !&5 a dicionarului de date i a legturilor cheie primar>cheie strin pre3entate 6n relaii se 6ncearc efectuarea manual a tran3aciilor. Pasul #.- Desenarea diagramei 96 $e desenea3 varianta final a diagramei !&5 validat prin normali3are i conform cu tran3aciile pe care tre1uie s le accepte. Pasul #./ Definirea constr;ngerilor de integritate %rin impunerea de constr7ngeri se proteAea3 1a3a de date fa de riscul de incoeren. $e consider - tipuri de integritate5 anume referitoare la2 a. datele cerute 1. domeniile atri1utelor c. integritatea entitilor d. integritatea referenial e. constr7ngerile 6ntreprinderii a. Datele cerute
.&

Unele atri1ute nu admit #ull9uri. On aceste situaii se selectea3 proprietatea de c7mp re:uired* care cere date pentru c7mpul respectiv. $e verific dac aceste constr7ngeri au fost identificate i documentate 6n dreptul atri1utelor 6n dicionarul de date (ve3i pasul C..* b. Constr;ngerile pri,ind domeniile atributelor $e verific dac s9au identificat i documentat la pasul C.) c. Integritatea entit "ilor Cheia primar a unei entiti nu poate conine #ull9uri. $e verific pasul C.d. Integritatea referen"ial $e refer la relaia entitate printe 8 entitate copil. $e tie c cheia primar din printe se copia3 6n copil unde devine cheie strin. Integritatea referen"ial nseamn ca o ,aloare nenul a c1eii str ine din entitatea copil trebuie s se refere la &s coincid cu' o ,aloare e:istent n entitatea p rinte. ac entitatea copil are participare total 6n relaie5 nu sunt permise #ull9uri 6n c7mpul cheie strin. $e admit atunci c7nd entitatea copil are participare parial. Asigurarea integritii refereniale se reali3ea3 prin constr;ngeri de e:isten" . Acestea definesc condiiile 6n care poate fi inserat5 reactuali3at (modificat* sau tears o cheie candidat sau o cheie strin. $e ia ca e:emplu relaia %ersonal 'dministreaz %roprietate5 de cardinalitate C2=. !ntitate printe (!p*2 %ersonal5 cheie primar2 #rW%ersonal !ntitate copil (!c*2 %roprietate5 cheie strin2 #rW%ersonal5 copie a cheii primare din %ersonal. Cazul 1. Inserarea unei apariii 6n relaia (entitatea* copil %entru a asigura integritatea referenial se verific dac atri1utul #rW%ersonal din apariia nou inserat 6n !c este sta1ilit ca #ull sau are o valoare e:istent 6n !p.
.5

Cazul #. tergerea unei apariii din relaia (entitatea* copil $e poate efectua fr pro1leme5 nu afectea3 integritatea referenial. Cazul %. &eactuali3area cheii strine 6n relaia (entitatea* copil $imilar ca3ului C. Cazul (. Inserarea unei apariii 6n relaia (entitatea* printe $e poate efectua fr pro1leme. !p are participare parial5 deci poate e:ista un mem1ru al personalului care nu administrea3 o proprietate. Cazul -. tergerea unei apariii din relaia (entitatea* printe. ac apariie care urmea3 a fi tears din !p 6i corespunde o apariie (sau mai multe* din !c5 atunci integritatea referenial se pierde prin tergere. %osi1ile strategii de luat 6n considerare2 #" ACTI"# CA$CA ! Blocarea tergerii apariiei corespondent(i* 6n !c din !p5 dac are

ac o apariie 6n !c se terge5 se terg automat corespondenii din !c. ac !c acionea3 ca !p 6n alt relaie5 tergerea se propag 6n cascad. C7nd se terge o apariie din !p5 valorile cheii strine 6n !c sunt setate la #ull. Are loc o reactuali3are prin setare la #ull a valorilor atri1utelor selectate din cheia strin a !c. Aceast strategie se poate aplica numai dac atri1utele cheie strin accept #ull9uri. C7nd se terge o apariie din !p5 valorile cheii strine corespun3toare din !c sunt setate la valori presta1ilite (default*. !:emplu2 se terge un mem1ru al personalului 6n !p (%ersonal* i automat proprietile pe care acestea le9a administrat trecute 6n !c (%roprieti* se setea3 la atri1utul #rW%ers la valoarea corespun3toare managerului. #u are loc nici o verificare de integritate. C7nd se
.!

$!T #U''

$!T

!FAU'T

#" CE!CJ

terge o apariie din !p nu este garantat meninerea integritii refereniale. Cazul /. &eactuali3area cheii primare 6n relaia (entitatea* printe ac valorii reactuali3ate a cheii primare 6n !p 6i corespundeau una (mai multe* valori ale cheii strine 6n !c5 integritatea referenial este pierdut. $e va aplica una din strategiile de la ca3ul -. e. Constr;ngerile ntreprinderii $unt de fapt regulile de afaceri care pot uneori genera reactuali3ri ele entitilor. e e:emplu agenia imo1iliar poate sta1ili ca un mem1ru al personalului s administre3e ma:im C/ proprieti. %asul ..0. se 6ncheie cu documentarea tuturor constr;ngerilor de integritate. Aceasta se face 6n dicionarul de date5 pentru a fi luate 6n considerare la implementarea fi3ic. Pasul #.2 6e,izuirea modelului de date logic local mpreun cu utilizatorii $e verific dac modelul de date logic local este o repre3entare Nadevrat@ a vederii utili3atorului. =odelul de date logic local tre1uie s fie complet i in 6ntregime documentat. =odelul i documentaia se revd 6mpreun cu utili3atorul.

1.2.# Pasul %. Construirea i ,alidarea modelului de date logic global On aceast etap se construiete un model de date logic glo1al prin 6m1inarea modelelor de date logice locale individuale5 care au fost reali3ate pentru a repre3enta fiecare vedere a utili3atorilor. up 6m1inare tre1uie re3olvate conflictele dintre vederi5 ca i orice suprapuneri e:istente. ,a re3ulta o repre3entare a 6ntregii 6ntreprinderi independent de orice utili3ator sau aplicaie. Pasul %.1 8mbinarea modelelor de date logice locale indi,iduale ntr$un singur model de date logic global al ntreprinderii (C* &evi3uirea modelele locale. denumirilor entitilor
.,

cheilor

primare

din

%ot e:ista dou sau mai multe entiti care au aceeai denumire dar sunt de fapt diferite5 respective acre au denumiri diferite5 dar sunt aceleai. $e compar coninutul de date al fiecrui tip de entitate. $e utili3ea3 cheile primare pentru a identifica tipurile de entiti echivalente5 dar cu denumiri diferite. (.* &evi3uirea denumirilor relaiilor. $e procedea3 ca la (C*. (F* Om1inarea entitilor din vederile locale )mbinarea entitilor cu aceeai denumire i aceeai c!eie primar (fig. C.).* Astfel de entiti repre3int de regul acelai o1iect 6n lumea real. 'a fu3iune se includ atri1utele entitilor iniiale5 elimin7ndu9se du1lurile.

Fig. C.).. Om1inarea entitilor cu aceeai denumire i aceeai cheie primar On versiunea glo1al o1inut prin 6m1inare s9a utili3at versiunea descompus a atri1utului #umeW%renume (6n urma consultrii cu utili3atorii*. )mbinarea entitilor cu aceeai denumire i c!ei primare diferite (fig. C.)F* Astfel de entiti nu au aceeai cheie primar5 dar au chei candidat similare. &e3ult aceeai vedere glo1al ca 6n fig. C.)..

..

Fig. C.)F. Om1inarea entitilor cu aceeai denumire i chei primare diferite )mbinarea entitilor cu denumiri diferite* cu c!ei primare similare sau diferite Astfel de entiti se pot identifica atunci c7nd2 denumirile sunt diferite5 dar indic acelai scop5 dup cheia primar5 dup participarea 6n anumite relaii. (xemplu2 !ntitile %ersonal i AngaAai. ()* Includerea (fr 6m1inare* a entitilor unice din fiecare vedere local Toate entitile care nu au echivalent se includ nemodificate 6n modelul glo1al. (-* Om1inarea relaiilor din vederile locale $e e:aminea3 toate relaiile (denumire5 scop5 constr7ngeri structurale* din toate vederile locale i se elimin conflictele5 prin2 9 Om1inarea relaiilor cu aceeai denumire i acelai scop5 apoi 9 Om1inarea relaiilor cu denumiri diferite dar acelai scop (0* Includerea (fr 6m1inare* a relaiilor unice din fiecare vedere local &elaiile pentru care nu s9au gsit relaii identice 6n alte vederi se includ nemodificate 6n modelul glo1al. (P* Cutarea entitilor i relaiilor lips Identificarea entitilor i relaiilor lips dintre diversele vederi ale utili3atorilor i care nu apar 6n nici una dintre vederi este o operaiune dificil2 Acestea pot re3ulta din modelul de date general5 dac e:ist.
.%

C7nd se consult utili3atorii asupra unei anumite vederi5 ei tre1uie rugai s e:amine3e i entitile i relaiile din alte vederi. $e e:aminea3 atri1utele fiecrui tip de entitate i se compar cu atri1utele entitilor din alte vederi. %oate e:ista un atri1ut al unei entiti dintr9o vedere care corespunde unui atri1ut cheie primar5 cheie alternativ sau unui atri1ut simplu al unei entiti din alt vedere. intr9o astfel de coresponden re3ult e:istena unei relaii neidentificate5 construi1il prin mecanismul cheie primar>cheie strin. (X* ,erificarea cheilor strine $e verific dac cheile strine din entitile copil mai sunt corecte i se efectuea3 modificrile necesare. (H* ,erificarea constr7ngerilor de integritate $e verific dac constr7ngerile de integritate ale modelului glo1al nu intr 6n conflict cu constr7ngerile de integritate din vederile utili3atorilor. Conflictele se re3olv prin consultarea cu utili3atorii. (C/* esenarea modelului de date logic glo1al $e desenea3 diagrama !& a modelului de date logic glo1al5 care repre3int 6m1inarea tuturor modelelor de date logica locale. (CC* &eactuali3area documentaiei ocumentaia tre1uie reactuali3at 6n urma modificrilor intervenite la reali3area modelului glo1al. ocumentaia tre1uie s reflecte 6ntotdeauna modelul de date curent. Pasul %.# =alidarea modelului de date logic global $e reali3ea3 prin utili3area normali3rii i conform tran3aciilor cerute5 dac este necesar. !ste un pas echivalent cu ..F respectiv ..)5 anume se fac aceleai validri dar acum pentru modelul de date logic glo1al. Pasul %.% =erificarea n ,ederea dez,olt rii locale $e determin dac este pro1a1il ca 6n viitorul previ3i1il s apar modificri i se evaluea3 capacitatea modelului de date logic glo1al de a cuprinde aceste modificri. =odelul de date logic glo1al tre1uie s poat fi e:tins cu uurin. =odelul creat tre1uie s fie e:tensi1il5 s
%(

poat evolua 6n condiiile afectrii minime a utili3atorului. incorporea3 modificri numai dac utili3atorul o cere.

$e

Pasul %.( Desenarea diagramei 96 finale iagrama !& final repre3int modelul de date logic glo1al al 6ntreprinderii. $e desenea3 dup ce modelul de date logic glo1al a fost validat. ocumentaia (schema relaional i dicionarul de date* tre1uie reactuali3at i completat. Pasul %.- 6e,izuirea modelului de date logic global mpreun cu utilizatorii &evi3uirea va garanta faptul c modelul de date logic glo1al este o repre3entare Nadevrat@ a 6ntreprinderii. =odelul 6mpreun cu documentaia se revi3uiesc 6n cola1orare cu utili3atorii5 pentru a confirma c sunt corecte i complete.

1.2.% 6ezumatul capitolului 1.2 Proiectarea logic a bazelor de date este procesul de construire a unui model al informaiilor utili3ate 6n cadrul unei 6ntreprinderi5 1a3at pe un anumit model de date5 dar independent de un anumit $;B i de alte consideraii de ordin fi3ic. %rincipalele etape cuprind2 construirea i validarea unui model de date logic local corespun3tor fiecrei vederi a utili3atorilor (pasul .* i construirea i validarea unui model de date logic glo1al (pasul F*. &afinarea unui model de date conceptual pentru a o1ine un model de date logic include2 eliminarea relaiilor de tip =2#5 a relaiilor comple:e5 recursive5 cu atri1ute5 a atri1utelor cu valori multiple5 ree:aminarea relaiilor de tip C2C i eliminarea relaiilor neredundante. =odelul de date logic se validea3 prin normalizare5 prin care se garantea3 c modelul repre3int fidel 6ntreprinderea5 este coerent5 cu redundan minim i sta1ilitate ma:im. Constr;ngerile de integritate se impun pentru a proteAa B fa de a deveni incoerent. !:ist - tipuri de constr7ngeri de integritate2 asupra datelor necesare5 ale domeniilor atri1utelor5 de integritate a entitilor5 de integritate referenial i ale 6ntreprinderii.

%1

Integritatea referen"ial se asigur prin constr;ngeri de e:isten" 5 care definesc 6n ce condiii poate fi o cheie candidata sau strin inserat5 reactuali3at sau tears. !:ist mai multe strategii care pot fi aplicate atunci c7nd o apariie a entitii printe pe care vrem s o tergem are corespondent 6n entitatea copil2 #" ACTI"#5 CA$CA !5 $!T #U''5 $!T !FAU'T i #" CE!CJ. Constr;ngerile ntreprinderii se numesc uneori i reguli de afaceri. =odelul de date logic este susinut de ctre documentaie5 cum ar fi dicionarul de date sau schema relaional5 care sunt reali3ate pe parcursul construirii modelului. 1.2.( 8ntreb ri la capitolul 1.2 Anali3ai scopul proiectrii logice a 1a3elor de date. escriei etapele rafinrii modelului de date conceptual pentru a se o1ine modelul de date logic escriei regulile de e:tragere a relaiilor care repre3int tipuri de entiti tari i sla1e5 tipuri de relaii 1inare C2C5 C2m. Anali3ai modul in care tehnica de normali3are poate fi utili3at pentru a valida modelul de date logic. escriei scopul constr7ngerilor de integritate i artai care sunt cele - tipuri principale de constr7ngeri. escriei strategiile alternative aplica1ile atunci c7nd e:ist o apariie a !c care se refer la o apariie a !p pe care vrem s9a tergem. Identificai sarcinile asociate cu 6m1inarea modelelor de date logice locale5 pentru o1inerea modelului de date logic glo1al.

1.5 !etodologia de proiectare fizic bazele de date rela"ionale

a bazelor de date pentru

%roiectarea fi3ic a 1a3elor de date este procesul de descriere a implementrii 1a3ei de date 6ntr9o capacitate de stocare secundar4 se descriu structurile de stocare i metodele de acces utili3ate pentru asigurarea unui acces eficient la date.
%2

1.5.1 Pasul (. Transformarea modelului de date logic global pentru un SGBD "int Acest pas presupune transformarea relaiilor e:trase din modelul de date logic glo1al 6ntr9o form care s poat fi implementat in $;B int. !ste necesar cunoaterea funcionalitii $;B int5 de e:emplu2 9 dac sistemul accept definirea cheilor primare5 strine i alternative4 9 dac sistemul accept definirea datelor necesare (adic a unor atri1ute ca fiind #"T #U''* 9 dac sistemul accept definirea domeniilor 9 dac sistemul accept definirea constr7ngerilor 6ntreprinderii 9 cum se creea3 relaiile de 1a3. Pasul (.1 Proiectarea rela"iilor de baz pentru SGBD "int

Tre1uie confruntate i asimilate informaiile referitoare la relaii (ta1ele* o1inute prin modelarea logic a datelor. Aceste informaii sunt o1inute din definiia relaiilor (6n B '* i din dicionarul de date. %entru fiecare relaie identificat 6n modelul de date logic glo1al vom avea o definiie format din2 9 denumirea relaiei 9 list de atri1ute simple (6ntre parante3e* 9 cheia primar (%J*5 i dup ca35 cheile alternative (AJ* i cheile strine (FJ* 9 constr7ngerile de integritate corespun3toare oricrei chei strine (FJ* identificate in dicionarul de date5 pentru fiecare atri1ut e:ist i2 9 domeniul atri1utului5 care const din tipul de date5 lungimea acestora i constr7ngeri asupra domeniului 9 opional5 o valoare presta1ilit a atri1utului 9 dac atri1utul poate conine #U''uri 9 dac atri1utul este derivat5 i 6n acest ca3 cum tre1uie calculat. e e:emplu 6n ca3ul B a ageniei imo1iliare discutat5 proiectul pentru relaia de 1a3 (ta1elul* %roprietateWdeWOnchiriat5 6n B '5 pentru
%"

implementarea cu aAutorului $;B mai Aos.

=$9Access este redat 6n figura de

%roiectul logic iniial a fost adaptat funcionalitii $;B int (=$9 Access*. On continuare sunt pre3entate c7teva e:emple ale acestui proces de adaptare (rafinare*2

%&

3tributul

Proiectul logic

#rW%roprietate ir varia1il de (%J* caractere5 ma:. -

Proiectul fizic pt. !S$3ccess Tip de date Te:t5 lungimea -

9:plica"ii Access nu deose1ete 6ntre iruri de caractere cu lungime fi: i varia1il Access nu accept ca o aceeai FJ dintr9un ta1el copil s 1at 6n . ta1ele printe diferite (integrit. ref.* =$ Access ofer doar2 &egula de reactuali3are2 CA$CA ! &egula de tergere2 #" ACTI"# =$ Access nu accept2 $!T #U'' i $!T !FAU'T

#rW%roprietar% #rW%roprietar (FJ* = #rW%roprietar din #rW%roprietarA N%roprietarW%rivat@ (FJ* i n totodat #rW%roprietar Admit #U''uri = #rW%roprietar din N%roprietarWAfacere @ #rWFiliala (FJ* &egula de reactuali3are2 CA$CA ! &egula de tergere2 $!T !FAU'T

#rW%roprietar% (FJ* = #rW%roprietar din N%roprietarW%rivat@ iar #rW%roprietarA (FJ* = #rW%roprietar din N%roprietarWAfacere @ &egula de reactuali3are2 CA$CA ! &egula de tergere2 #" ACTI"#

$e trece la crearea 1a3ei de date 6n =$WAccess5 pornind de la BlanK ata1ase. =odul de creare a ta1elelor (relaiilor* 6n =$WAccess este detaliat 6n partea a doua a cursului. =ai Aos este pre3entat vi3uali3area de proiectare ( esign ,ieD* a ta1elului corespun3tor relaiei %roprietateWdeWOnchiriat.

%5

On cadrul ta1elelor2 9 se specific cheia primar 9 se setea3 proprietile c7mpurilor2 field si3e5 format5 input masK5 caption5 default value5 validation rule>te:t5 reZuired. 9 $e creea3 liste de tip NlooKup@5 ca cea pentru tipul de proprietate2

" dat create toate ta1elele proiectate5 se reali3ea3 relaiile dintre acestea i se impune integritatea referenial.
%!

Cascade Update &elated Fields2 modificarea unei valori din cheia primar din ta1elul printe declanea3 automat reactuali3area valorilor corespun3toare din toate 6nregistrrile legate. Cascade elete &elated &ecords2 tergerea unei 6nregistrri din ta1elul printe duce la tergerea tuturor 6nregistrrilor legate din ta1elul copil. %asul ).C se 6ncheie cu documentarea proiectului fi3ic prin B '.

%,

Pasul (.#. SGBD "int

Proiectarea

constr;ngerilor

ntreprinderii

pentru

Constr7ngerile 6ntreprinderii5 provenite din lumea real5 pot influena reactuali3rile relaiilor. (xemplu4 Un angaAat nu poate administra mai mult de C/ proprieti. Constr7ngerile tre1uie reproiectate 6n funcie de $;B ales5 respectiv invers5 $;B se alege astfel 6nc7t s permit implementarea acestei constr7ngeri. %entru Access implementarea constr7ngerilor de 6ntreprindere se reali3ea3 de e:emplu cu lim1aAul ,isual Basic5 care lucrea3 cu 1a3e de date 6n Access.

1.5.# Pasul -. Proiectarea reprezent rii fizice $e determin organi3area fiierelor i metodelor de acces utili3ate pentru stocarea relaiilor de 1a3. $tocarea eficient a datelor se evaluea3 prin2 9 transferul de tran3acii2 numr de tran3acii prelucra1ile 6n timp 9 timpul de rspuns2 timpul scurs p7n la 6ncheierea unei singure tran3acii (de minimi3at* 9 capacitatea de stocare pe disc2 spaiul pe disc necesar stocrii fiierelor 1a3ei de date (de minimi3at*. %roiectantul tre1uie s cunoasc cele ) componente hardDare care interacionea3 i afectea3 performanele sistemului2 memoria principal5 unitatea C%U5 discul I>"5 reeaua. istri1uirea datelor pe unitile de disc se o1serv 6n figura C.)).

Fig. C.)). Configuraia tipic a discului Pasul -.1 3nalizarea tranzac"iilor %entru fiecare tran3acie se determin2 9 frecvena estimat cu care vor fi rulate tran3aciile
%.

9 relaiile i atri1utele accesate de tran3acie i tipul de acces (interogare5 inserare5 reactuali3are5 tergere* 9 constr7ngerile de timp impuse tran3aciilor On ca3ul B a unei agenii imo1iliare se consider 8 cu titlu de e:emplu 8 urmtoarele tran3acii2 A2 reali3area unui raport 6n care sunt enumerate proprietile de 6nchiriat din cadrul fiecrei filiale B2 crearea i 6ntreinerea 6nregistrrilor referitoare la clienii din cadrul fiecrei filiale C2 enumerarea vi3itelor efectuate de clieni5 cunosc7nd adresele proprietilor vi3itate @ r"ile de utilizare a tranzac"iilor a' @arta cu modelul 96 simplificat cu numerele estimate de apari"ii ale fiec rei entit "i

On colul din st7nga sus al fiecrei entiti este trecut estimarea numrului total de apariii ale acesteia (numrul de 6nregistrri din ta1el*. $e indic de asemenea valorile medii i ma:ime ale apariiilor dintr9o entitate copil5 asociate unei apariii din entitatea printe. Astfel2 9 On ta1elul NFiliala@ sunt 6nregistrate -/ de filiale. o Unei filiale 6i sunt alocate 6n medie .)/ i ma:im F// proprieti de 6nchiriat.
%%

o 'a o filial sunt 6nregistrai 6n medie )// i ma:im -// de chiriai. 9 On ta1elul N%roprietateWdeWOnchiriat@ sunt 6nregistrate estimativ C./// proprieti (-/ filiale : .)/ proprieti5 6n medie>filial*. o " proprietate de 6nchiriat este vi3itat (apare 6n N,i3itare@* 6n medie de ./ i ma:im de )/ de ori. 9 On ta1elul NChiria@ sunt 6nregistrai estimativ .//// de chiriai (-/ filiale : )// chiriai 6n medie>filial* o Un chiria efectuea3 6n medie C/ i ma:im ./ de vi3itri. 9 On ta1elul N,i3itare@ sunt 6nregistrate estimativ F0//// vi3itri (C./// proprieti de 6nchiriat : F/ vi3itri >proprietate* b'@arta c ilor i opera"iilor tranzac"iilor 3> B i C

On harta 1* sunt afiate operaiile de inserare (I*5 citire (C*5 reactuali3are (&* sau tergere (* 6mpreun cu calea corespun3toare tran3aciilor A5 B i C. 3B realizarea unui raport n care sunt enumerate propriet "ile de nc1iriat din cadrul fiec rei filiale Tran3acia A deci necesit accesarea ta1elului NFiliala@ i citirea (C* a datelor din acest ta1el. %rin intermediul atri1utului #rWFilial (cheie primar 6n Filiala i cheie strin 6n %roprietateWdeWOnchiriat* se citesc (C* proprietile de 6nchiriat oferite de fiecare filial.
1((

BB crearea i ntre"inerea nregistr rilor referitoare la clien"ii din cadrul fiec rei filiale Tran3acia B necesit inserarea (I* a clienilor (chiriailor* 6nregistrai 6n ta1elul NChiria@ i 6n acelai timp la o anume filial5 reactuali3area (&* i tergerea (* datelor referitoare la chiriai. %entru e:ecutarea tran3aciei B se va accesa ta1elul NFiliala@5 iar prin atri1utul #rWFilial (cheie primar 6n NFiliala@ i cheie strin 6n NChiria@* se vor insera5 citi5 reactuali3a sau terge chiriaii 6nregistrai la fiecare filial. CB enumerarea ,izitelor efectuate de clien"i> cunosc;nd adresele propriet "ilor ,izitate Tran3acia C necesit accesarea ta1elului N%roprietateWdeWOnchiriat@5 punct de acces fiind atri1utul adresa proprietii5 cunoscut. %rin atri1utul #rW%roprietate (cheie primar 6n N%roprietateWdeWOnchiriat@ i cheie strin 6n N,i3itare@* se citesc (C* vi3itelor efectuate la acea proprietate. e asemenea se pot 6nregistra i 3iua i ora estimat la care va fi rulat fiecare tran3acie5 inclusiv momentul sau intervalul de 6ncrcare ma:im. %entru tran3aciile care accesea3 frecvent 1a3a de date5 modelul lor de e:ecuie se documentea3 ca 6n ca3ul e:emplului de mai Aos5 referitor la tran3acia 2 DB c utarea propriet "ilor de nc1iriat oferite de o anumit filial > care satisfac un anumit tip de proprietate cerut de un poten"ial c1iria.

1(1

$ingurele operaii necesare pentru tran3acia sunt de citire (C*5 documentate 6n figura de mai sus. Atri1utele utili3ate ca puncte de acces5 de intrare sunt notate cu (%*. On cadrul tran3aciei se accesea3 ta1elul NFiliala@5 punctul de acces fiind atri1utul cheie primar #rWFilial5 care se citete (C*. in ta1elul NFiliala@5 prin mecanismul cheie primar9cheia strin (#rWFiliala* se citesc (C* 6n ta1elul N%roprietateWdeWOnchiriat@ datele referitoare le toate proprietile oferite de o anumit filial. Atri1utul NTipul@ se utili3ea3 ca punct de intrare pentru interogare (clientul caut un anumit tip de proprietate*. 'a accesarea unui numr de filial din NFiliala@ se accesea3 ta1elul N%roprietateWdeWInchiriat@ de )X 8 F// ori (e:ist minim )X de proprieti din fiecare tip disponi1ile la o filial5 i o filial ofer ma:im F// de proprieti*. Anali37nd toate tran3aciile (nu numai A5 B5 C5 i e:emplificate* asupra 6ntregii 1a3e de date a ageniei imo1iliare se constat c foarte multe tran3acii necesit accesarea ta1elului N%roprietateWdeWOnchiriat@. Pasul -.# 3legerea organiz rii fiierelor $e alege tipul adecvat de fiier5 care poate fi2 heap4 hash4 I$A= 8 Inde:ed $eZuential Access =ethod4 ar1ore BI.

1(2

On maAoritatea ca3urilor $;B urile 1a3ate pe %Curi (de e:. =$9Access* nu permit utili3atorului alegerea sau modificarea organi3rii fiierelor din ta1elele de 1a3. Pasul -.% 3legerea inde:urilor secundare Tre1uie de determinat dac adugarea de inde:uri secundare 6m1untete performanele sistemului. Inde:urile secundare ofer un mecanism de specificare a unei chei adiionale5 pentru regsirea mai eficient a datelor. (xemplu2 pentru entitatea %roprietateWdeWInchiriat se va inde:a cheia primar #rW%roprietate (inde: primar* i se poate constitui un inde: secundar pentru atri1utul Chirie5 ca fiind de interes. Indicaii referitoare la inde:are2 9 se inde:ea3 cheia primar 9 nu se inde:ea3 relaii mici 9 se inde:ea3 cheia strin dac e frecvent utili3at 9 nu se inde:ea3 atri1ute frecvent reactuali3ate 9 nu se inde:ea3 atri1ute cu iruri lungi de caractere. =$9Access inde:ea3 automat cheile primare i cheile strine din ta1ele.

On ca3ul interogrii a mai multe ta1ele simultan (interogare de ta1ele multiple* vite3a de interogare poate fi mrit prin inde:area c7mpurilor din am1ele pri ale firului relaiei (din am1ele pri ale uniunii* i prin inde:area c7mpurilor pentru care se utili3ea3 criterii de interogare. e
1("

e:emplu 6n ta1elul N%roprietateWdeWOnchiriat@ se vor inde:a c7mpurile frecvent interogate Ntipul@ i N3ona@. !ste indicat s se cree3e numai inde:uri care se presupune c vor 6m1unti performanele sistemului5 deoarece 6ntreinerea inde:urilor 6ncarc suplimentar resursele5 ceea ce ar putea avea ca re3ultat final scderea vite3ei sistemului. Crearea inde:urilor secundare se documentea35 6mpreun cu motivaia pentru care au fost considerate necesare. Pasul -.( Considerarea introducerii unei redundan"e controlate Tre1uie de determinat dac introducerea de redundan controlat prin rela:area normali3rii (denormali3are* duce la 6m1untirea performanelor sistemului. atorit denormali3rii implementarea B este mai dificil5 scade fle:i1ilitatea B 5 se pot accelera regsirile dar se 6ncetinesc reactuali3rile. Pasul -.(.1 Considerarea datelor deri,ate ,alorile atri1utelor derivate pot fi calculate din valorile altor atri1ute. $tocarea unui atri1ut derivat 6n B duce la2 9 costuri suplimentare de stocare i meninere a concordanei datelor derivate cu datele operaionale din care au fost derivate4 9 costuri de calculare a datelor derivate de fiecare dat c7nd este necesar. (xemplu2 !ntitatea %ersonal poate conine un nou atri1ut derivat (#rW%roprietati* care arat c7te proprieti administrea3 fiecare mem1ru al personalului. ,aloarea acestui atri1ut se deriv din entitatea %roprietateWdeWInchiriat5 dup atri1utul #r%er (fig. C.)-*.

1(&

Fig. C.)-. &elaia %ersonal simplificat cu atri1utul derivat #rW%roprieti ac B este interogat frecvent asupra numrului de proprieti administrate de fiecare mem1ru al personalului poate fi util de stocat acest atri1ut derivat 6n relaia (entitatea* %ersonal. (xemplu2 Tran3acia !2 !numerarea numrului proprietii5 oraului5 tipului5 chiriei i avansului pentru 6nchiriere (conform regulilor de afaceri2 avansul M . : chiria*. Interogarea tre1uie s cuprind toate c7mpurile cerute plus un c7mp calculat (derivat* pentru Navans@. %entru a evita rularea repetat a interogrii5 se prefer adugarea unui c7mp suplimentar 6n ta1elul de 1a35 N%roprietateWdeWOnchiriat@5 c7mp numit NAvans@5 unde se trece avansul pentru fiecare proprietate5 calculat de operatorul uman la 6nregistrarea sau actuali3area proprietii respective. eci la e:ecutarea tran3aciei ! nu mai tre1uie calculat (prin rularea interogrii* avansul pentru fiecare proprietate.

1(5

Pasul -.(.# Considerarea &uniunii' rela"iilor

dubl rii

atributelor

sau

grup rii

!:ist situaii 6n care se du1lea3 anumite atri1ute sau se grupea3 relaii pentru a reduce numrul de uniuni necesare pentru efectuarea unei interogri. %entru evitarea redundanei5 prin normali3are relaia Filiala (#r9Fil5 $trada5 +ona5 "rasul5 Cod%5 #rWTel5 #rWFa:* se descompune 6n dou relaii2 Filiala (#rWFil5 $trada5 Cod%5 #rWTel5 #rWFa:*
1(!

CodW%ostalWFiliala (#rWFil5 Cod%5 +ona5 "rasul* Astfel la introducerea unei filiale noi nu tre1uie de repetat toate informaiile legate de ora. Totui se 6nt7mpl rar s dorim s accesm adresa filialei fr atri1utele corespun3toare 3onei i oraului. %str7nd atri1utele oraului 6ntr9o relaie separat 6nseamn c5 ori de c7te ori dorim adresa complet a filialei5 tre1uie de efectuat uniunea celor . relaii. Ca urmare se optea3 pentru o denormali3are i se pstrea3 prima variant a relaiei5 dei conine date redundante. (xemplu2 Tran3acia F2 a se enumera pentru fiecare proprietate numrul proprietii5 strada5 oraul5 6mpreun cu numrul de personal i numele angaAatului responsa1il pentru administrarea proprietii respective. $e reali3ea3 o interogare pe ta1ele multiple5 adic o grupare>uniune de ta1ele (ve3i figura de mai Aos*5 pentru a include numele angaAatului (din ta1elul N%ersonal@* 6n re3ultatul interogrii.

1(,

%entru a evita rularea interogrii de fiecare dat (necesitatea reali3rii uniunii 6ntre cele . ta1ele*5 6n ta1elul N%roprietateWdeWOnchiriat@ se introduce o redundan controlat5 anume c7mpul N#ume@ (care e:ist i 6n ta1elul N%ersonal@*. %entru a garanta coerena 6n continuare a B 5 se proiectea3 i se implementea3 un program de aplicaie prin care orice modificare 6n c7mpul N#ume@ 6n ta1elul printe N%ersonal@ s se transmit 6n c7mpul N#ume@ din ta1elul copil N%roprietateWdeWOnchiriat@. Pasul -.(.% Documentarea introducerii redundan"ei "rice redundan introdus ulterior se documentea3 i se motivea3. =odelul de date logic tre1uie reactuali3at5 astfel 6nc7t s reflecte orice modificri aprute prin denormali3are. Pasul -.- 9stimarea necesarului de spa"iu pe disc !ste o1ligatorie pentru sta1ilirea performanelor hardDare cerute pentru implementarea 1a3ei de date. $e determin astfel dac pe moment sau 6n viitor este necesare achi3iionarea de hardDare mai performant. 1.5.% Pasul /. Proiectarea mecanismelor de securitate =surile de securitate pentru 1a3a de date tre1uie s corespund cerinelor utili3atorilor. Pasul /.1 Proiectarea ,ederilor utilizatorilor
1(.

On 1a3a modelelor de date logice local se proiectea3 vederile utili3atorilor. ,ederile se creea3 6n =$9Access prin interogri LB!5 care se 1a3ea3 pe lim1aAul de interogare structurat $L' ($tructured Luer< 'anguage*. (xemplu2 $e doresc detalii referitoare la personalul ageniei imo1iliare5 vi3i1ile pentru supervi3orul organi3aiei5 dar fr informaii referitoare la salarii. In timp ce managerul organi3aiei vede relaia de 1a35 complet2 Personal (#rW%ersonal5 %renume5 #ume5 Adresa5 Telefon5 $e:5 Functia5 $alariu5 #rWFiliala* C1eie primar 2 #rW%ersonal C1eie str in 2 #rWFiliala5 se refer la relaia5 ta1elul NFiliala@ (cu cheia primar #rWFiliala*. On urma interogrii selective LB! (implicit cu $L'* se generea3 vederea2 PersonalD=edereSuper,izor (#rW%ersonal5 %renume5 #ume5 Adresa5 Telefon5 $e:5 Functia5 #rWFiliala* C1eie primar 2 #rW%ersonal C1eie str in 2 #rWFiliala5 se refer la relaia5 ta1elul NFiliala@ (cu cheia primar #rWFiliala*. Aceasta este o vedere pentru un utili3ator cu permisiune de acces la date limitat. ,ederea supervi3orului5 adic rspunsul la interogarea selectiv5 se poate edita (reactuali3a*. =$9Access va scrie reactuali3rile 6n ta1elul sau ta1elele de 1a3 care au fost interogate. eci supervi3orul are dreptul la reactuali3ri asupra ta1elului de 1a3 %ersonal5 cu e:cepia c7mpului N$alariu@5 utili37nd interogarea selectiv LB!5 respectiv formular corespun3tor interogrii. Figurile de mai Aos arat vi3uali3area de proiectare ( esign ,ieD* a interogrii selective LB! (Luer< B< !:ample* i formularul reali3at 6n 1a3a interogrii5 formular cu care lucrea3 supervi3orul.

1(%

Pasul /.# Proiectarea regulilor de acces e regul utili3atorii nu au acces la relaiile de 1a35 ci numai la vederile create pentru ei. Administratorul de B atri1uie fiecrui utili3ator un identificator de autori3aie care are asociat o parol. Fiecare instruciune $L' e:ecutat de ctre $;B este efectuat 6n numele unui anumit utili3ator. Identificatorul de autori3aie determin la ce o1iecte din B se poate referi utili3atorul i ce operaii poate efectua asupra acestor o1iecte. Fiecare o1iect creat 6n $L' are un proprietar identificat prin identificatorul de autori3aie. %roprietarul este singurul care cunoate e:istena o1iectului respectiv i deci poate efectua operaii asupra lui.

11(

Pri,ilegiile sunt aciunile pe care un utili3ator are voie s le efectue3e asupra unei relaii de 1a3 sau vederi. Instruciuni pentru acordarea privilegiilor2 $!'!CT2 privilegiul de a regsi date dintr9o relaie C7nd utili3atorul creea3 o relaie folosind instruciunea Create Ta1le din lim1aAul $L'5 utili3atorul de vine automat proprietarul noii relaii cu privilegii complete ;&A#T2 se acord privilegii altor utili3atori asupra relaiei nou create &!,"J!2 revoc privilegii C&!AT! ,I!G2 utili3atorul care creea3 vederea devine automat proprietarul acesteia5 dar nu neaprat cu privilegii complete5 (ca la $!'!CT* (xemplu2 pentru ca utili3atorul manager s regseasc r7nduri din relaia %ersonal i s insere3e5 s reactuali3e3e i s tearg date din aceasta5 s transmit privilegii utili3atori5 se utili3ea3 urmtoarea instruciune $L'2 ;&A#T A'' %&I,I'!;!$ "# personal T" manager GITE ;&A#T "%TI"#. (xemplu2 Utili3atorului cu identificatorul de autori3aie A =I# i se acord privilegiul $!'!CT pentru relaia %ersonal5 cu urmtoarea instruciune $L'2 ;&A#T $!'!CT "# personal T" admin =$9Access ofer dou metode tradiionale de securi3are a B 2 9 sta1ilirea unei parole a B (pentru deschiderea B * 9 securitatea la nivel de utili3ator (se limitea3 segmentele din B care pot fi citite sau reactuali3ate la nivel de utili3ator*.. Stabilirea unei parole Figura de mai Aos arat caseta de dialog care solicit introducerea parolei pentru deschiderea 1a3ei de date.

111

" dat deschis B 5 toate o1iectele (ta1ele5 interogri5 formulare etc.* sunt puse la dispo3iia utili3atorului. Securitatea la ni,el de utilizator $ecuritatea la nivel de utili3ator este similar metodelor utili3ate 6n maAoritatea sistemelor (softurilor* de reele. Utili3atorului i se cere s se identifice i s scrie o parol atunci c7nd pornete =$9Access. On cadrul fiierului de informaii al grupului de lucru (GorKgroup Administrator* utili3atorii sunt identificai ca mem1ri ai unui grup. Access definete automat grupurile 'dmin i ;sers5 dar pot fi definite i alte grupuri. Figura de mai Aos ilustrea3 caseta de dialog pentru definirea grupurilor i conturilor de utili3ator.

112

Figura de mai Aos ilustrea3 caseta de dialog pentru acordarea permisiunilor de utili3ator i de grup. $e reglementea3 modul 6n care se lucrea3 cu fiecare o1iect din B . Un control mai fin se reali3ea3 prin definirea de grupuri (conturi de grup* noi5 crora li se acord anumite permisiuni (de grup*. Apoi se adaug utili3atorii care fac parte din acest grup5 care au implicit toate drepturile grupului din care fac parte5 dar ale cror drepturi pot fi modificate individual5 astfel 6nc7t s fie mai multe sau mai puine fa de grup.

Pasul /.% Documentarea proiectului m surilor de securitate i ,ederilor utilizatorilor %roiectarea vederilor individuale i mecanismele de securitate tre1uie complet documentate. ac proiectul fi3ic afectea3 modelele de date logice individuale5 atunci i aceste diagrame tre1uie reactuali3ate. 1.5.( Pasul 2. !onitorizarea i reglarea sistemului opera"ional

11"

"1iectiv2 =onitori3area sistemului operaional i 6m1untirea performanelor acestuia5 pentru a corecta deci3iile inadecvate de proiectare sau pentru a reflecta cerinele 6n schim1are. &eglarea din mers a 1a3ei de date de ctre administratorul B pre3int anumite avantaAe2 9 se evit necesitatea procurrii de hardDare adiional 9 se poate micora configuraia hard 9 timpul de rspuns scade5 transferul devine mai eficient 9 ca urmare cresc productivitatea 6ntreprinderii5 moralul angaAailor i satisfacia clienilor. "rice modificare de reglare poate 6n acelai timp 6m1unti o aplicaie i strica alta. !ste de dorit s se verifice>teste3e 6nt7i modificarea pe o 1a3 de date de 6ncercare5 sau atunci c7nd sistemul nu este complet utili3at (6n afara orelor de lucru*. %resupunem c dup c7teva luni de utili3are a B complet operaionale a ageniei imo1iliare au aprut din partea mai multor utili3atori ai sistemului dou noi cerine2 (C* Capacitatea de a pstra fotografii ale proprietilor de 6nchiriat5 6mpreun cu comentariile care descriu principalele caracteristici ale acesteia. On =$9Access se introduc c7mpuri cu tip de date (data t<pe*2 "'! ("1Aect 'inKing and !m1edded M legarea i 6nglo1area de o1iecte*. Acestea permit stocarea de date cum ar fi documente =$9Gord sau =$9 !:cel5 figuri5 sunete sau alte tipuri de date 1inare create 6n alte programe. "1iectele "'! pot fi legate de sau 6nglo1ate 6ntr9un c7mp dintr9un ta1el sau formular 6n Access i pot fi afiate. Ta1elul %roprietateWdeWOnchiriat se va restructura astfel 6nc7t s cuprind un c7mp numit N,edere@ cu tip de date "'!5 i un c7mp numit NComentarii@5 cu tip de date =emo5 capa1il de a cuprinde un te:t mai lung. Figura de mai Aos ilustrea3 un formular care cuprinde cele dou c7mpuri noi5 formular 1a3at pe ta1elul %roprietateWdeWOnchiriat.
11&

Calea ctre imaginea>imaginile stocate pe hard disK se specific 6n design vieD al formularului (sau raportului sau paginii de acces* creat dup ta1el.

(.* Capacitatea de a pu1lica un raport care s disponi1ili3e3e 6n Internet proprietile de 6nchiriat disponi1ile. Aceast cerin se satisface prin crearea 6nt7i a unui raport adecvat5 care s conin c7mpurile dorite pentru a fi vi3uali3ate 6n Internet5 dup care 6n 1a3a acestui raport se reali3ea3 %agina de acces la date. %entru ca pagina de acces la date creat s fie activat5 este necesar legtura la Internet i un 1roDser adecvat. 1.5.- 6ezumatul capitolului 1.5. Proiectarea fizic a 1a3ei de date repre3int procesul de reali3are a descrierii implementrii acesteia 6n capacitatea de stocare secundar. !tapa iniial (pasul )* const 6n transpunerea modelului de date logic global 6ntr9o form care s poat fi implementat 6n $;B relaional int.
115

Urmtoarea etap (pasul -*2 proiectarea organiz rii fiierelor i metodelor de acces care vor fi utili3ate pentru stocarea relaiilor de 1a3. Aceasta presupune anali3area tran3aciilor5 alegerea organi3rii adecvate a fiierelor5 adugarea de inde:uri secundare5 introducerea de redundan controlat i estimarea spaiului necesar pe disc. Inde:urile secundare furni3ea3 un mecanism de specificare a unei chei suplimentare pentru o relaie de 1a35 pentru regsirea mai eficient a datelor. Denormalizarea este o opiune atunci c7nd performanele sistemului nu sunt satisfctoare i o relaie are o rat de reactuali3are sc3ut i o rat de interogare foarte ridicat. Ba3a de date tre1uie prev3ut cu un mecanism de securitate (pasul 0*. =surile de securitate necesare se identific pe parcursul proiectrii logice. !le se reali3ea3 prin crearea de vederi pentru utili3atori i utili3area de mecanisme de control al accesului5 scrise 6n lim1aAul $L'. !tapa final (pasul P* din proiectarea fi3ic a B const 6n monitorizarea i reglarea ne6ntrerupte ale sistemului operaional pentru ma:imi3area performanelor. 1.5./. 8ntreb ri la capitolul 1.5 !:plicaie diferena dintre proiectarea conceptual5 logic i fi3ic a 1a3elor de date. escriei scopul principalelor etape din metodologia de proiectare fi3ic a 1a3elor de date. On ce condiii se Austific denormali3area unui model de date logicB Utili3ai e:emple.

11!

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