Baze de Datesdfsdf

download Baze de Datesdfsdf

of 86

Transcript of Baze de Datesdfsdf

  • 7/23/2019 Baze de Datesdfsdf

    1/86

    Universitatea Transilvania din BraovFacultatea 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

    1

  • 7/23/2019 Baze de Datesdfsdf

    2/86

  • 7/23/2019 Baze de Datesdfsdf

    3/86

    Cuprins

    1. Ba2e de date. %roiectare. Implementare. 3estionare..................................................................................-1.1 Introducere 4n B. Tratarea datelor. $isteme de gestionare a 5a2elor de date. $isteme 5a2ate pefiiere..........................................................................................................................................................-

    1.1.1 Introducere.....................................................................................................................................-

    1.1. Tratarea datelor prin sisteme 5a2ate pe fiiere...............................................................................01.1.6 Tratarea datelor prin 5a2e de date (B*.........................................................................................71.1.) $istemul de gestionare a 5a2ei de date ($3B*............................................................................71.1.- Componentele mediului $3B.....................................................................................................81.1.0 %roiectarea B 9 schim5area de paradigm................................................................................1/1.1.7 %o2iiile persoanelor din mediul B...........................................................................................1/1.1.8 Avanta:ele i de2avanta:ele $3B...............................................................................................111.1.8 &e2umatul capitolului 1.1............................................................................................................161.1.;

  • 7/23/2019 Baze de Datesdfsdf

    4/86

    1.7.1 %asul . Construirea i validarea modelului de date logic pentru fiecare vedere a utili2atorilor -)1.7. %asul 6. Construirea i validarea modelului de date logic glo5al................................................061.7.6 &e2umatul capitolului 1.7............................................................................................................001.7.)

  • 7/23/2019 Baze de Datesdfsdf

    5/86

    1. Baze de date. Proiectare. Implementare. Gestionare

    "5iectivele acestui modul sunt? Cunoaterea noiunilor de 5a2 privind sistemele informatice de gestionare a 5a2elor de date

    relaionale

    ? %lanificarea> proiectarea i administrarea 5a2elor de date

    1.1 Introducere n BD. Tratarea datelor. Sisteme de gestionare a bazelor dedate. Sisteme bazate pe fiiere

    1.1.1 Introducere

    Cu siguran cei mai muli dintre vs. au o idee despre ce ar putea fi o 5a2 de date (B*. Ba2ele de dateau aprut ca rspuns la nevoia organi2aiilor (instituii> 4ntreprinderi> societi comerciale etc.* de a

    eficienti2a evidena activitii lor> din toate punctele de vedere producie> stocuri> aprovi2ionare>conta5ilitate> resurse umane> v@n2ri etc.,edem B 4n viaa de 2i cu 2i 9 listele de ofert ale diferiilor furni2ori de cri> C?uri> cartea de telefon>piesele 4n stoc de furni2at pentru un anumit proiect> fie sau 4nregistrri de prelucrat de un anumit programetc.

    !prim"ndu#ne mai precis$ atunci c"nd utiliz%m termenul de baz% de date ne referim la o colec&iestructurat% de articole de date$ ntre care e!ist% leg%turi logice. ' astfel de colec&ie$ o BD$ a fostconstruit% pentru a ser(i pentru o anume aplica&ie$ reprezent"nd o lume n miniatur%. )rticoleledintr#o BD se manipuleaz%$ pentru a e!trage informa&iile utile.

    *n sistem de gestionare de baz% de date +SGBD,$ sau database management s-stem +DBS, estesoftul care permite ca bazele de date s% fie definite/configurate$ construite i e!ploatate/manipulate.'biectul cursului nostru este SGBD0$ sistemul de gestionare de baze de date rela&ionale$ cu aplica&iin S#)ccess.

    odelul rela&ional de BD

    !ist trei modele u2uale de implementare de B ierarhic> reea sau relaional. Fiecare se 5a2ea2 peconceptul de date stocate ca set sau mulime de 4nregistrri. Imaginai?v un set de fie> de eemplu.=odelele ierarhic i reea se 5a2ea2 pe parcurgerea legturilor dintre date pentru a lucra cu 5a2a de datede regul sunt utili2ate pentru sisteme?cadru generale> vaste i nu fac o5iectul cursului nostru.

    Sistemele de gestionare a bazelor de date rela&ionale +SGBD0, au cunoscut o larg% r%sp"ndire$datorit% modelului simplu$ rela&ional de date pe care#l utilizeaz% Datele se prezint% sub forma unei colec&ii +unui set, de rela&ii 2iecare rela&ie are forma unui tabel +cea mai important% component% a unei BD, 0"ndurile +nregistr%rile, tabelului reprezint% entit%&i Coloanele +c"mpurile, tabelului sunt atribute/propriet%&i ale acestor entit%&i 2iecare tabel are un set de atribute$ care mpreun% reprezint% o 3c4eie5 care definete fiecare

    entitate n mod unic.e eemplu> o societate poate avea 4n 5a2a sa de date un ta5el cu anga:aii si> cu un r@ndD4nregistrarepentru fiecare anga:at. Ce atri5ute ar fi de interesE epinde de sigur de scopul pentru care a fost creat

    -

  • 7/23/2019 Baze de Datesdfsdf

    6/86

    ta5elul> i atri5utele sunt sta5ilite la momentul configurrii 5a2ei de date. Ca eemplu aplicaia poate fi untat de plat> deci va fi nevoie> 4n afar de nume> cod anga:at i de informaii referitoare la adres isalariu.

    1.1.6 Tratarea datelor prin sisteme bazate pe fiiere

    $uperioritatea administrrii datelor dintr?o organi2aie cu a:utorul unui sistem de gestionare de 5a2e dedate ($3B* re2ult dintr?o scurt comparaie 4ntre sistemele tradiionale de date> 5a2ate pe fiiere isistemele de gestionare a 5a2elor de date ($3B*

    Sistemul bazat pe fiiere este o colecie de programe de aplicaie care efectuea2 servicii pentruutili2atorii finali> cum ar fi producerea de rapoarte. Fiecare program definete i gestionea2 propriile date.

    !emplu o firm care furni2ea2 componente pentru diferite proiecteDclieni.Compartimentul maga2ie (al firmei* va ine fiiere cu

    ? componentele 4n stoc> pe fia fiecrei componente apr@nd denumirea> seria> costul> nr. 5uci etc.

    Compartimentul conta5ilitate (al firmei* va ine fiiere cu? componentele 4n stoc> documentele de achi2iie> intrare> denumirea> seria> costul> nr. 5uci etc.? ieirile de componente> cu caracteristicile i cantitile de componente> documentaie 4nsoitoare de

    ieire (inclusiv numele proiectelorDclienilor ctre care se furni2ea2*Compartimentul v@n2ri (al firmei* va ine fiiere cu

    ? numele proiectelor ctre care se livrea2> inclusiv nume clieni> numr contract> tipuri decomponente livrate

    ? cerinele clienilor> cu detalierea componentelor necesitate> inclusiv descrierea componentelor>gradul de urgen i prioritate etc.

    &e2ult urmtoarele limit%ri ale sistemelor 5a2ate pe fiiere

    ? Separarea i izolarea datelor. Atunci c@nd datele sunt i2olate 4n fiiere separate> cele care ar tre5uis fie disponi5ile sunt mai greu de accesat. e eemplu dac vrem s aflm care componente p@nla o anumit limit de pre i 4n ce cantitate se afl 4n stoc pentru un anumit proiect> va tre5ui saetragem date din fiierul cu proiecte i apoi din cel cu stocuri (fiiere eist@nd la compartimentediferite*> va tre5ui s crem un fiier temporar care s cuprind toate aceste date. !tragereacorect de date este dificil> necesit@nd sincroni2area prelucrrii (4n compartimente diferite* a dousau mai multe fiiere.

    ? Dublarea datelor.in cau2a modului de a5ordare descentrali2at> specific fiecrui compartiment>tratarea datelor pe 5a2 de fiiere a dus la du5larea necontrolat a datelor. "5servm 4n eemplulnostru> c mai multe compartimente au introdus aceleai date 4n fiierele lor. u5larea datelor estede nedorit din urmtoarele cau2e

    o &isip introducerea datelor de mai multe ori cost timp i 5ani> ocup spaiu suplimentarde stocare> deci alte costuri

    o Alterarea integritii datelor> prin du5lare> deci datele nu mai concord. e eemplu> dacintrarea unor componente cu pre nou nu este comunicat de ctre compartimentulconta5ilitate celor de la maga2ie> aceleai componente vor aprea 4n fiierele diferitelorcompartimente cu pre diferit.

    0

  • 7/23/2019 Baze de Datesdfsdf

    7/86

    ? Dependena de date. ac este necesar de modificat structura unui fiier (de e. mrimea unuic@mp*> atunci tre5uie de identificat toate programele care lucrea2 cu acest fiier> pentru a operamodificrile respective 4n fiecare dintre ele. Aceast caracteristic a sistemelor 5a2ate pe fiiere senumete dependen&% program#date.

    ? Incompatibilitatea fiierelor. !ste posi5il ca fiecare compartiment s?i genere2e fiiere 4n alt

    lim5a: de programare structura fiierelor va fi dependent de lim5a:ul 4n care este scris programul.e eemplu> dac compartimentul v@n2ri vrea s afle detaliile legate de stocul eistent pentru oanume component> va 4ncerca s accese2e fiierul corespun2tor al compartimentului maga2ie>plec@nd de la c@mpul denumire componenteG eistent 4n fiierele am5elor compartimente dacfiierele sunt generate cu lim5a:e diferite> va tre5ui s intervin un programator care s scrie unprogram de transformare a fiierelor 4ntr?un format comun.

    ? Interogarea fix sau proliferarea programelor de aplicaie. Tratarea datelor prin sisteme de fiiere

    a repre2entat un progres semnificativ fa de sistemele manuale. Au crescut cererile de interogrinoi sau modificate> care necesitau de fiecare dat intervenia programatorului> care tre5uia s scrieinterogrile. Astfel au aprut dou situaii. %entru a limita volumul de lucru al programatorilor> s?aa:uns la fiarea numrului de interogri disponi5ile. %entru a satisface numrul cresc@nd de cereride interogri> a proliferat numrul de aplicaii au re2ultat programe ineficiente> scrise 4n gra5> cudocumentaie limitat i dificil de 4ntreinut. Accesul la fiiere este limitat la un singur utili2ator odat> deci nu eista parta:area accesului pentru mai muli utili2atori din acelai compartiment.

    'imitrile tratrii datelor 5a2at pe fiiere au dou cau2e(1* definiia datelor este 4ncorporat 4n programele de aplicaie> 4n loc de a fi stocat independent(* nu eist control asupra accesului i manipulrii datelor dincolo de cel impus de programele de

    aplicaie.

    Ca urmare a aprut o nou tratare a datelor> prin 5a2e de date (B*> gestionate de sisteme de gestionare a5a2elor de date ($3B*.

    1.1.7 Tratarea datelor prin baze de date +BD,

    Baza de date este o colec&ie parta8at% de date ntre care e!ist% rela&ii logice +i o descriere a acestordate,$ proiectat% pentru a satisface necesit%&ile informa&ionale ale unei organiza&ii.

    Ba2a de date nu mai este deinut de un singur compartiment al unei organi2aii> ci este o resurs comun>parta:at. atele sunt integrate> cu o du5lare minim. B conine datele operaionale ale organi2aiei idescrierea acestora." baz% de dateeste deci o colecie autodescris de nregistrri integrate. Aceast caracteristic B estecunoscut i ca independen&a program # date.

    " BD rela&ional% conine entitile> atri5utele i relaiile logice dintre acestea> repre2entate printr?odiagram entitate 9 relaie (!&*. ,om reveni 4n detaliu asupra modelului !& de B.

    1.1.9 Sistemul de gestionare a bazei de date +SGBD,

    7

  • 7/23/2019 Baze de Datesdfsdf

    8/86

    SGBD este un sistem de programe care permite utilizatorului definirea$ crearea i ntre&inerea bazeide date i accesul controlat la aceasta.

    $3B const 4n elemente de softHare care interacionea2 cu programele de aplicaie ale utili2atorului pede o parte i cu 5a2a de date pe cealalt.

    *n SGBD ofer% o serie de facilit%&i? permite definirea BD printr#un limba8 de definire a datelor +DD:,? permite inserarea$ reactualizarea$ tergerea i e!tragerea de date printr#un limba8 de

    manipulare a datelor +D:,. BD fiind un depozit unic i central de date i descrieri de date$D: poate oferi o interogare general% a acestor date$ numit% limba8 de interogare. *n astfelde limba8 de interogare este S;:$ care elimin% utilizarea unui set fi! de interog%ridisponibile$ ca n cazul trat%rii datelor prin sisteme de fiiere.

    ? 'fer% accesul controlat la BD. )stfel SGBD poate furnizao *n sistem de securitate$ pentru a mpiedica accesul utilizatorilor neautoriza&io *n sistem de integritate$ care men&ine concordan&a datelor stocate pentru a funciona> $3B au nevoie de elemente hardHare> care pot fi un singur %C p@n la oreea. Un $3B poate necesita un anumit tip de elemente hardHare sau de sistem de operare> sau poatefunciona pe o diversitate de elemente hardHare i platforme Access /// este de e. un $3Brelaionale pe 6 5ii> pentru crearea de aplicaii clasice sau de tip client?server pentru B> pentru

    8

  • 7/23/2019 Baze de Datesdfsdf

    9/86

    sistemele de operare JindoHs ; i JindoHs #T )K de asemenea> un $3B necesit un minimum dememorie (=$?a si2e >6 LB* i spaiu de disc (=$?Access si2e on disM ) LB*.

    " configuraie D arhitectur client#ser(ereste pre2entat 4n figura 1.1> pentru oorgani2aie cu patru filiale legate 4ntr?o reea

    de %Curi> deservite de un server central. %eserver se afl programele bac>#end> adicpartea din $3B care administrea2 icontrolea2 accesul la B. %e calculatoareledin diversele locaiiD%C clieni se aflaplicaiile front#end> adic partea din $3Bcare constituie interfaa cu utili2atorul.

    Fig. 1.1

    SoftwareComponenta soft cuprinde programele$3B i programele de aplicaie 4mpreuncu sistemele de operare> inclusiv softHare dereea> dac este ca2ul. %rogramele aplicaiesunt scrise 4ntr?un lim5a: de programare dingeneraia a treia (C> Co5ol> Fortran* sau degeneraia a patra 9 $N'> incorporat 4ntr?un

    lim5a: de generaia a treia.$3B poate avea propriile instrumente de generaia a patra> care permit de2voltarea rapid de aplicaiiprin furni2area unui lim5a: de interogare i a unor generatoare de rapoarte> formulare> grafic etc.Instrumentele de generaia a patra 4m5untesc productivitatea i permit reali2area unor programe uor de4ntreinut.

    Dateleatele repre2int cea mai important component a unui $3B> d.p.d.v. al utili2atorului datele O punte4ntre componentele main i cele umane. B conine

    ? ate operaionale? =eta?date> adic date despre date.

    $tructura B este numit schem i are mai multe ta5ele sau fiiere> fiecare av@nd mai multe atri5ute(c@mpuri*.

    Procedurile%rocedurile se refer la instruciunile i regulile care guvernea2 proiectarea i utili2area B. %rocedurilesunt necesare at@t administratorilor> c@t i utili2atorilor de B i pot cuprinde instruciuni referitoare la

    ? deschiderea unei sesiuni de lucru 4n $3B? utili2area unei anumite faciliti a $3B sau a unui program aplicaie? pornirea i oprirea $3B? efectuarea de copii de siguran a B ? tratarea defeciunilor hard sau soft? modificarea structurii unui ta5el> reorgani2area B pe mai multe discuri> arhivarea datelor etc.

    ;

  • 7/23/2019 Baze de Datesdfsdf

    10/86

    Persoanele$unt ultima component a unui mediu $3B i va fi discutat la paragraful P%o2iiile persoanelor dinmediul $3BG.

    1.1.? Proiectarea BD @ sc4imbarea de paradigm%

    $tructura unei B (entitile> atri5utele> relaiile* este determinat 4n timpul proiectrii B. A5ordareaproiectrii unei B este diferit de cea a sistemelor pe 5a2 de fiiere> unde totul era dictat de nevoileaplicative ale departamentelor individuale. documentaia estelimitat> 4ntreinerea dificil.

    1.1.A Pozi&iile persoanelor din mediul BD

    In acest paragraf se eaminea2 a -?a component a mediului $3B> anume persoanele. $e pot identificapatru tipuri distincte de persoane implicate 4n mediul $3B

    ? administratorii de date i de B? proiectanii de B? programatorii de aplicaii? utili2atorii finali.

    )dministratorii de date i de BD

    B i $3B sunt resurse comune care tre5uie gestionate ca orice resurs.$arcinile administratorului de date (D)O data administrator*

    ? responsa5il cu gestionarea resurselor de date planificarea> ela5orarea i 4ntreinerea strategiilor iprocedurilor 5a2ei de date

    ? responsa5il cu proiectarea conceptualDlogic a B? consultarea i 4ndrumarea managerilor superiori cu privire la direcia de de2voltare a B> a.4 B s

    spri:ine o5iectivele generale ale organi2aiei.Administratorul de 5a2e de date (DB)9 data 5ase administrator* este responsa5il cu reali2area fi2ic aB> av@nd urmtoarele sarcini

    ? proiectarea i implementarea B>? securitatea i controlul integritii B>? 4ntreinerea sistemului operaional>? asigurarea de performane satisfctoare pentru aplicaii i utili2atori

    &olul BA este mai tehnic i necesit cunoaterea 4n detaliu a $3B i a mediului acestuia.

    Proiectan&ii de BD

    !ist proiectani de B logice i proiectani de B fi2ice.

    1/

  • 7/23/2019 Baze de Datesdfsdf

    11/86

    Proiectanii de BD logice ce anumeEG? se ocup cu identificarea datelor (entiti i atri5ute* i relaiilor dintre acestea> i de constr@ngerile

    asupra celor care vor fi stocate 4n B? tre5uie s cunoasc foarte 5ine datele organi2aiei i a regulilor de operare ale organi2aiei? tre5uie s implice toi posi5ilii utili2atori ai B 4n modelul creat.

    !tape de proiectare a B logicea* proiectarea conceptual a B> independent de detaliile de implementare (de e. $3B utili2at>programele de aplicaie> lim5a:ele de programare etc.*

    5* proiectarea logic a B> care se 5a2ea2 pe un anumit model> de e. relaional> ierarhic> 4n reea>orientat pe o5iecte.

    Proiectanii de BD fizice(Cum anumeEG* preia modelul logic i sta5ilete reali2area fi2ic? transpunerea modelului logic de date 4ntr?un set de ta5ele i constr@ngeri privind integritatea? selectarea de structuri de stocare i metode de acces specifice> a.4. s se o5in performane 5une

    ale datelor in activitile legate de B? msuri referitoare la securitatea datelor.

    %roiectarea fi2ic a unei B tre5uie s in cont de $3Bul avut 4n vedere proiectantul tre5uie scunoasc funcionalitatea acestui $3B i avanta:ele i de2avanta:ele fiecrei variante de implementare aB. $trategia de stocare aleas tre5uie s in cont de modul de utili2are.

    Programatorii de aplica&ii

    "dat reali2at B tre5uie implementate programele de aplicaie ce confer funcionalitatea cerut deutili2atorii finali. Aceasta este sarcina programatorilor de aplicaii. Fiecare program conine instruciunicare 4i cere $3B s efectue2e o operaie oarecare 4n B (etragere> inserare> reactuali2are> tergere dedate*. %rogramele pot fi scrise 4ntr?un lim5a: de generaia a treia sau a patra.

    *tilizatorii finali

    $unt clienii pentru care a fost proiectat> implementat i este 4ntreinut B> pentru a le satisfacenecesitile informaionale.

    Utili2atorii simpli nu sunt contieni de $3B. Accesea2 B prin programe de aplicaie speciale>simplificatoare. !i folosesc comen2i simple> opiuni din meniu. Utili2atorul simplu nu tie nimic despreB sau $3B (de e. v@n2torul care citete codul de 5are pentru a afla preul unui produs. !ist totuiun program care citete codul de 5are> caut preul articolului respectiv 4n B> modific c@mpul cu stoculde articole> afiea2 preul la cas*.

    Utili2atorii sofisticai sunt familiari2ai cu structura B i facilitile $3B. %ot utili2a un lim5a: deinterogare de nivel 4nalt ($N'*. %ot scrie programe de aplicaie pentru u2 personal.

    1.1. )(anta8ele i deza(anta8ele SGBD

    )(anta8e? Controlul redundanei datelor< nu se elimin% n ntregime redundan&a$ ci se controleaz%

    (olumul inerent al acesteia n BD.

    11

  • 7/23/2019 Baze de Datesdfsdf

    12/86

    ? Coerena datelor< datorit% elimin%rii redundan&ei$ orice reactualizare a unui articol +stocat osingur% dat%, se face o singur% dat%$ elimin"ndu#se incoeren&a. Dac% articolul este stocat demai multe ori$ SGBD garanteaz% coeren&a tuturor e!emplarelor din articolul respecti(.

    ? Mai multe informaii obinute de la aceeai cantitate de date< ca urmare a integr%rii dateloropera&ionale$ dou% sau mai multe fiiere pot fi integrate$ e!tr%g"ndu#se mai multe informa&ii.

    ? Partajarea datelor< fiierele sunt de&inute de compartimentele organiza&iei care le utilizeaz%$

    dar fiind parte din BD$ ele sunt la dispozi&ia tuturor utilizatorilor interesa&i.? Interitatea crescut! a datelor< se refer% la (aliditatea i coeren&a datelor stocate. Integritateaeste e!primat% prin constr"neri $ care reprezint% reguli de coeren&% pe care BD nu are (oie s%le ncalce.

    ? Securitatea crescut!< se refer% la protec&ia BD fa&% de utilizatorii neautoriza&i. 2%r% sistemede securitate$ integrarea ar face datele foarte (ulnerabile. Securitatea se realizeaz% prinnume de utilizatori plus parole. Se poate limita tipul de opera&ie efectuat%.

    ? #$licarea standardelor< prin integrare se pot aplica standarde organiza&ionale$ na&ionale sauinterna&ionale$ ca de e!. formatul datelor$ con(en&ii referitoare la denumire$ pt. a facilitasc4imburi ntre sisteme.

    ? %conomia de scal!< n loc de bugete pentru fiecare compartiment pentru crearea unui sistempropriu de BD bazat pe fiiere$ e!ist% un buget unic combinat$ care permite alocareafondurilor economisite pentru mbun%t%&irea sistemului.

    ? %c&ilibrul 'ntre cerinele aflate 'n conflict< cerin&ele posibil n conflict ale diferitelorcompartimente referitoare la utilizarea BD sunt gestionate la ni(el de DB)$ care (a luadeciziile ce se impun i (a acorda prioritate aplica&iilor ma8ore.

    ? (mbun!t!irea accesibilit!ii datelor i ca$acit!ii de r!s$uns< limba8ele de interogare igeneratoare de rapoarte asociate SGBD ofer% utilizatorilor posibilitatea unor interog%ri ad#4oc$ f%r% a apela la programator.

    ? Productivitatea crescut!< SGBD furnizeaz% standardele necesare aplica&iei$ economisindtimpul programatorului.

    ? Ca$acitatea de 'ntreinere 'mbun!t!it!) $rin inde$endena de date< ntr#un SGBD descrieriledatelor sunt separate de aplica&ii$ aplica&iile fiind imune la modificarea descrierii dateloranume

    ? integritatea entitilor? integritatea referenial

    1.6.6.1 ull#uriullrepre2int valoarea unui atri5ut care este curent necunoscut sau nu este aplica5il tuplului respectiv.,aloare logic necunoscutG.Un #ull nu este acelai lucru cu o valoare numeric O / sau cu un ir de tet spaiiG (2ero string* acesteasunt valori> un #ull 4nsemn@nd 4ns a5sena unei valori.

    1.6.6.6 Integritatea entit%&ilor

    $e aplic cheilor primare ale relaiilor de 5a2. " relaie de 5a2 (ta5el de 5a2* corespunde unei entiti 4nschema conceptual a B.Integritatea entit%&ilor 4ntr?o relaie de 5a2 nici un atri5ut al unei chei primare nu poate fi #ull.

    1.6.6.7 Integritatea referen&ial%

    $e aplic cheilor strine.Integritatea referen&ial% ac 4ntr?o relaie eist o cheie strin> valoarea acesteia tre5uie ori scoincid cu valoarea unei chei candidat a unui tuplu 4n relaia sa de 5a2> ori s fie 4n 4ntregime #ull.

    1.6.6.9 Constr"ngerile de ntreprindereConstr"ngerile de ntreprindere sunt reguli adiionale> specificate de ctre utili2atorii sauadministratorul 5a2ei de date (BA*.

    1.6.7 ederi

    ,ederea etern este structura B aa cum apare ea unui anumit utili2ator.

    o relaie care nu este de fapt de sine stttoare> ci estederivat 4n mod dinamic din una sau mai multe relaii de 5a2.

    17

  • 7/23/2019 Baze de Datesdfsdf

    18/86

    1.6.7.1 Terminologie

    0ela&ie de baz% " relaie cu o anumit denumire> corespun2toare unei entiti din schema conceptual>ale crei tupluri sunt stocate fi2ic 4n B.

    edere &e2ultatul dinamic al uneia sau mai multor operaii relaionale care acionea2 asupra relaiilor de

    5a2> pentru a o5ine o alt relaie. " vedere este o relaie virtual> care 4n realitate nu eist 4n B> ci esteprodus 4n momentul respectiv> la cererea unui utili2ator.

    Coninutul unei vederi este definit ca o interogare asupra unei sau mai multor relaii de 5a2. ,ederile suntdinamice> adic modificrile 4n relaiile de 5a2 sunt reflectate imediat 4n vederi. i invers> modificrilepermise operate asupra vederii se transmit relaiilor de 5a2.

    1.6.7.6 Scopul (ederilor

    =ecanismul de vedere este util pentru c? furni2ea2 un mecanism de securitate puternic? permite utili2atorilor accesarea datelor 4n mod personali2at aceleai date pot fi vi2uali2ate

    simultan> 4n moduri diferite> de ctre diveri utili2atori? poate simplifica operaiile complee asupra relaiilor de 5a2.

    1.6.7.7. 0eactualizarea (ederilor

    !ist restricii referitor la modificrile care pot fi efectuate prin intermediul vederilor.Condiiile de care depinde reactuali2area datelor prin intermediul vederilor sunt

    ? sunt permise reactuali2rile prin intermediul unor vederi definite prin utili2area unei interogrisimple a unei singure relaii de 5a2> i care interogare conine fie cheia primar> fie cheia candidata acesteia

    ? nu sunt permise reactuali2rile prin vederi care implic relaii de 5a2 multiple? nu sunt permise reactuali2rile prin vederi care implic operaia de acumulare sau de grupare.

    1.6.9 0ezumatul capitolului 1.6

    0ela&iile sunt repre2entate fizic su5 form de tabele> cu r*ndurile corespun2@nd tuplurilor individuale> iarcoloanele corespun2@nd atributelor.$tructura relaiei> 4mpreun cu specificarea domeniilor i altor constr@ngeri fac parte din intensitatea5a2ei de date> iar relaia> 4mpreun cu toate tuplurile sale repre2int o e!tensie a 5a2ei de date.%roprietile relaiilor din 5a2ele de date sunt fiecare celul conine eact o valoare> denumirile atri5utelorsunt diferite> valorile acestora provin din acelai domeniu> ordinea atri5utelor nu are importan> niciordinea tuplurilor> nu eist tupluri du5le.Gradul unei relaii repre2int numrul de atri5ute> 4n timp de cardinalitatea repre2int numrul detupluri. " relaie unar% are un singure atri5ut> una binar% are dou> una ternar% are trei> iar o relaie n#ar% are n atri5ute." superc4eie este un set de atri5ute care identific 4n mod unic tuplurile dintr?o relaie> 4n timp ce o c4eiecandidat este o supercheie minim. " c4eie primar% este o cheie candidat selectat pentru a identificatuplurile. " relaie tre5uie s ai5 4ntotdeauna o cheie primar. " c4eie str%in% este un atri5ut sau set deatri5ute dintr?o relaie care constituie o cheie candidat pentru alt relaie.

    18

  • 7/23/2019 Baze de Datesdfsdf

    19/86

    Un ull repre2int o valoare pentru un atri5ut care este necunoscut 4n momentul respectiv sau nu estedefinit pentru acel tuplu.Integritatea entit%&ilor este o constr@ngere care sta5ilete c> 4ntr?o relaie de 5a2 nici un atri5ut al uneichei primare nu poate avea valoarea #ull. Integritatea referen&ial% sta5ilete c valorile cheii strinetre5uie s corespund valorilor unei chei candidat a unui tuplu oarecare din relaia de 5a2 sau s ai5 4n4ntregime valoarea #ull.

    atri5ut> domeniu> tuplu> intensitate i etensie> gard i cardinalitate.

    Anali2ai diferenele dintre cheile candidat i cheia primar a unei relaii. Ce este o cheie strinECare este legtura dintre cheile strine i cele candidat ale unei relaiiE ai eemple.

    efinii cele dou reguli de integritate principale din modelul relaional. Anali2ai de ce suntnecesare aceste reguli.

    Ce este o vedereE Anali2ai diferena dintre o vedere i o relaie de 5a2. Ce se 4nt@mpl c@nd unutili2ator accesea2 o 5a2 de date prin intermediul unei vederiE

    1.7 Planificarea$ proiectarea i administrarea BD

    1.7.1 Ciclul de (ia&% al sistemelor informa&ionale

    Un sistem informa&ional ($I* include resursele care permit colectarea> administrarea> controlul ipropagarea informaiilor 4n 4ntreaga organi2aie.

    $I al unei organi2aii cuprinde? 5a2a de date (B*? elementele softHare ale B? softHare de aplicaie? elementele hardHare? personalul care utili2ea2 i de2volt sistemul.

    ciclul de via al aplicaiei de tip B cuprinde urmtoarele etape (fig. 1.*

    ? Planificarea BD activitile administrative care permit parcurgerea etapelor aplicaiei de tip Bc@t mai eficient posi5il.

    ? Definirea sistemului specificarea scopului i limitelor aplicaiei de tip B> a utili2atorilor si i adomeniilor de aplicaie.

    1;

  • 7/23/2019 Baze de Datesdfsdf

    20/86

    ? +olectarea i analiza cerinelor,colectarea i anali2area de informaii despre partea de organi2aiece urmea2 s fie deservit de aplicaia de tip B i utili2area acestor informaii pentruidentificarea cerinelor utili2atorilor

    +erin,o caracteristic ce tre5uie inclus 4n noul sistem

    Informaiile i cererile colectate> eprimate de cele mai multe ori neformal tre5uietransformate 4ntr?o formulare structurat pentru aceasta se utili2ea2 te4nici de specificare acerin&elor> anume tehnici de anali2 i proiectare structurat (Structured )nalSsis Design*>diagrame de flu de date (Data 2loH Diagrams* i diagrame de tip intrare?prelucrare?ieireierarhic (HierarchicInput Process 'utput*.

    ? Proiectarea bazelor de date,procesul de reali2are a unui proiect pentru o B> care va a5orda toateoperaiile i o5iectivele 4ntreprinderii.

    $copurile proiectrii B sunt

    o &epre2entarea datelor i a relaiilor dintre ele> necesare tuturor aplicaiilor i utili2atoriloro

    Furni2area unui model de date care s accepte efectuarea oricrei tran2acii necesare asupradateloro $pecificarea unui proiect minimal> structurat adecvat pentru reali2area cerinelor sta5ilite

    referitor la performanele sistemului> de eemplu timpul de rspuns.

    Cele dou a5ordri 4n proiectarea unui sistem de B sunt

    o de :os 4n sus se sta5ilesc atri5utele la un nivel fundamental (adic proprietile entitilor*>care apoi sunt grupate 4n relaii> dup dependenele funcionale ale acestora aceasta5ordare se mai numete inormalizarei este indicat la proiectarea unor B mai simple>cu un numr relativ mic de atri5ute

    o de sus 4n :os pentru B mai complee se 4ncepe cu reali2area unor modele de date careconin c@teva entiti i relaii de nivel 4nalt> urm@nd apoi rafinri succesive de sus 4n :os>pentru a identifica entitile> relaiile i atri5utele asociate de nivel :os. Aceast a5ordareeste ilustrat de modelul -. $e 4ncepe cu identificarea entitilor i relaiilor care pre2intinteres pentru organi2aie> urmat apoi de finali2area atri5utelor. !emplu entiti clieni>produse se identific relaia dintre aceste entiti clientul cumpr produse> apoi seidentific atri5utele Clieni (nr. client> adres etc.* i %roduse (nr. produs> factur intrare>stoc etc.*.

    ? legerea sistemului S/BD se alege un sistem adecvat care s accepte o aplicaie de tip B

    ? Proiectarea aplicaiei, %roiectarea interfeei cu utili2atorul i a programelor de aplicaie careutili2ea2> respectiv prelucrea2 B. %roiectarea B i a aplicaiilor sunt activiti paralele 4nciclul de via al aplicaiei de tip B.

    ? ealizarea prototipului,Construirea unui model de lucru al unei aplicaii de tip B.

    ? Implementarea,reali2area fi2ic a proiectelor pentru B i aplicaii se reali2ea2 printr?un 'corespun2tor $3B ales.

  • 7/23/2019 Baze de Datesdfsdf

    21/86

    corespun2tor $3B> care poate fi incorporat 4ntr?un lim5a: de programare ga2d (e. ,isualBasic> elphi etc.*.

    ? +on$ersia i ncrcarea datelor,transferul 4n noua B a oricror date de:a eistente i conversiaoricror aplicaii eistente> a.4. s poat funciona 4n cadrul acesteia.

    ? #estarea,procesul de eecutare a programelor de aplicaie> cu intenia de a gsi erori ca i laproiectare> i la testare tre5uie de implicat utili2atorii.$trategii de testareo Testarea de sus 4n :oso Testarea de :os 4n suso Testarea pe firo Testarea la suprasolicitare.

    ? 0ntreinerea operaional,procesul de monitori2are i 4ntreinere a sistemului> care se efectuea2dup instalarea acestuia.

    o =onitori2area performanelor sistemului

    o prin 4ncorporarea de noi cerine> parcurg@nd etapeleprecedente.

    1

  • 7/23/2019 Baze de Datesdfsdf

    22/86

    Fig. 1. Ciclul de via al aplicaiilor tip 5a2 de date

    1.7.6 2azele proiect%rii BD

    Proiectarea conceptual% a BD procesul de construire a unui model al informaiilor utili2ate 4n cadrulfiecrei organi2aii> independent de toateconsideraiile fi2ice.Proiectarea logic% a BDprocesul de construire a unui model al informaiilor utili2ate 4n cadrul uneiorgani2aii 5a2at pe un anumit model de date (de eemplu entitate?relaie ? !&*> al $3B> dar independentde alte consideraii fi2ice legate de $3B.

  • 7/23/2019 Baze de Datesdfsdf

    23/86

    Tehnica de normali2are este utili2at pentru a testa corectitudinea unui model de date logic. #ormali2areagarantea2 c relaiile derivate din modelul de date nu pre2int redundan a datelor> care poate fi cau2aanomaliilor dup implementare.

    %roiectarea logic i conceptual a B presupune considerareaD4m5inarea tuturor vederilor utili2atorilor.Un model logic cu multiple vederi ale utili2atorilor asupra organi2aiei se numete model de date logic

    global. dup care se construiete modelul de date logic glo5al. $istemul de Bnu tre5uie s fie prea mare sau comple.

    Tratarea prin integrarea vederilor care repre2int vederi distincteale utili2atorilor> 4ntr?un singur model de date logic glo5al. ,ederile distincte ale utili2atorilor se numescmodele de date logice locale.

    Proiectarea fizic% a BDprocesul de reali2are a descrierii implementrii 5a2ei de date 4ntr?o capacitate destocare descrie structurile de stocare i metodele de acces utili2ate.%rincipalul scop al proiectrii fi2ice pentru modelul relaional presupune

    ? deducerea unui set de ta5ele relaional i de constr@ngeri asupra acestora> din informaiileprovenite din modelul de date logic glo5al

    ? identificarea structurilor de stocare specifice i a metodelor de acces la date> pentru a asiguraperformanele optime ale sistemului de B.

    ? %roiectarea unei protecii de securitate pentru sistem

    1.7.7 Proiectarea aplica&iilor

    1.7.7.1 Proiectarea tranzac&iilor

    Tranzac&ie " aciune sau serie de aciuni efectuate de ctre un singur utili2ator sau program de aplicaie>care accesea2 i pot modifica coninutul 5a2ei de date.

    " tran2acie poate fi format din mai multe operaii i este un eveniment din lumea real.

    $3B garantea2 coerena B> deci 4n urma unei tran2acii o B trece dintr?o stare coerent 4ntr?altstare coerent.$3B garantea2 coerena B i 4n ca2ul unei defeciuni. "dat tran2acia 4ncheiat> modificrileefectuate sunt stocate permanent 4n B i nu pot fi pierdute sau anulate (doar printr?o nou tran2acie*.

    Tipuri de tran2acii? de regsire? de reactuali2are? mite (regsire plus reactuali2are*.

    Tran2aciile se proiectea2 plec@nd de la informaiile din cerinele utili2atorului.

    6

  • 7/23/2019 Baze de Datesdfsdf

    24/86

    !emplu utili2atorul va dori s 4nregistre2e toi noii clieni 4n B> deci se proiectea2 o tran2acie care sfac posi5il aceast aciune> 4nsoit de o interfa prietenoas cu utili2atorul.

    1.7.7.6 Proiectarea interfe&ei cu utilizatorul

    Utili2atorul va lucra de regul nu direct 4n ta5ele> ci 4n formulare> fiecare formular repre2ent@nd un tuplu

    dintr?un ta5el.

  • 7/23/2019 Baze de Datesdfsdf

    25/86

    )dministrarea datelor +D),3estionarea resurselor de date> care include planificarea B> reali2area i4ntreinerea standardelor> politicilor i procedurilor i proiectarea conceptual i logic a 5a2ei de date.

    )dministrarea bazei de date +DB), Administrarea reali2rii fi2ice a unei aplicaii de tip B> inclusivproiectarea i implementarea fi2ic a B> sta5ilirea controlului de securitate> integritate> monitori2areaperformanelor sistemului i reorgani2area B dup necesiti.

    %rincipalele diferene dintre sarcinile din A i BA re2ult din ta5elul de mai :os

    )dministrarea datelor +D), )dministrarea bazei de date +DB),Implicat 4n planificarea IT strategic !valuea2 noile $3B$ta5ilete scopurile pe termen lung !ecut planurile de atingere a scopurilor politicile i procedurile politicile i procedurile$ta5ilete cerinele privind datele Implementea2 cerinele privind datele&eali2ea2 proiectarea conceptual i logic a5a2ei de date

    &eali2ea2 proiectarea logic i fi2ic a 5a2eide date

    e2volt i 4ntreine modelul general de date Implementea2 proiectul fi2ic al 5a2ei de date

    Coordonea2 de2voltarea sistemului =onitori2ea2 i controlea2 5a2a de dateAre o orientare managerial Are o orientare tehnic!ste independent de $3B epinde de $3B

    1.7.= 0ezumatul capitolului 1.7

    Un sistem informa&ional +SI, const 4n resursele care permit colectarea> gestionarea> controlul idifu2area informaiilor 4n cadrul 4ntregii organi2aii.%rincipalele etape ale ciclului de (ia&% al aplica&iei tip baz% de date sunt planificarea B> definireasistemului> colectarea i anali2a cerinelor> proiectarea B> alegerea $3B (opional*> proiectarea

    aplicaiilor> reali2area prototipului (opional*> implementarea> conversia i 4ncrcarea datelor> testarea i4ntreinerea operaional.Proiectarea conceptual% a B este procesul de construire a unui model al informaiilor utili2ate 4n4ntreprindere> independent de toate consideraiile fi2ice.Proiectarea logic% a B este procesul de construire a unui model al informaiilor utili2ate 4n4ntreprindere> 5a2at pe un anumit model de date> dar independent de un anumit $3B i de alteconsideraii fi2ice.Un model logic care repre2int vederile mai multor utili2atori asupra unei organi2aii se numete modelde date logic global.

  • 7/23/2019 Baze de Datesdfsdf

    26/86

    )dministrarea bazei de date const 4n gestionarea reali2rii fi2ice a B> inclusiv proiectarea fi2ic iimplementarea B> controlul de securitate i integritate> monitori2area performanelor i reorgani2area Bdup ca2. Administrarea B intervine mai ales 4n etapele t@r2ii ale ciclului de via al aplicaiei de tip B.

    1.7.? Fntreb%ri la capitolul 1.7

    escriei scopul fiecrei etape din ciclul de via al aplicaiilor de tip B. escriei principalele scopuri ale fa2elor de proiectare conceptual i logic a B. efinii diferenele dintre scopurile i sarcinile A i BA.

    1.9. odelarea ntitate#0ela&ie +0,

    =odelul !& este un model conceptual de nivel 4nalt> de2voltat de Chen (1;70* pentru a facilita proiectareaB. Un model de date conceptual se compune din

    ? un set de concepte care descriu structura 5a2ei de date (entiti> relaii> atri5ute* i? tran2aciile de regsire i actuali2are asociate.

    $copul reali2rii unui model de date de nivel 4nalt este? perceperea datelor de ctre utili2ator>? ascunderea aspectelor tehnice asociate proiectrii B.

    Un model de date conceptual este independent de tipul de $3B utili2at i de platforma hardHareasociat.

    1.9.1 Conceptele modelului 0Conceptele de 5a2 ale modelului !& includ

    ? tipurile de entiti? tipurile de relaii? atri5utele

    1.9.1.1 Tipuri de entit%&i

    Tip de entitate Un o5iect sau concept identificat de organi2aie ca av@nd o eisten independent. Un tipde entitate conine un set de o5iecte sau concepte cu aceleai proprieti.

    -xemplede tipuri de entitiClieni> %roduse> %ersonal> &udXapropiat (o5iecte> entiti cu eisten fi2ic*,@n2are (concepte> entiti cu eisten conceptual*

    !ntitate o instan unic identifica5il a unui tip de entitate.-xemplu 3eorgescu> %opescu sunt entiti ale tipului de entitate ClieniG

    !ntitate tare (entitate printe> proprietar> dominant* Un tip de entitate a crei eisten nu depinde de altetipuri de entiti.

    -xemplu clieni> produse> personal> v@n2are.!ntitate sla5 (entitate copil> dependent> su5ordonat* Un tip de entitate a crei eisten depinde deeistena uneia sau mai multor alte tipuri de entiti.

    -xemplu &udaXapropiat.

    &epre2entare 4n modelul !& entitatea tare se trece 4ntr?un dreptunghi cu chenar simplu> entitatea sla54ntr?un dreptunghi cu chenar du5lu (fig. 1.6*.

    0

  • 7/23/2019 Baze de Datesdfsdf

    27/86

    Fig. 1.6 !ntitate tare i entitate sla5

    1.9.1.6 )tribute

    Atri5ut o proprietate a unui tip de entitate sau relaie.omeniul atri5utului =ulimea 4n care ia valori atri5utul.Atri5ut simplu are o singur component> cu eisten independent.

    -xemplu Atri5ute 4n tipul de entitate %ersonal se> salariuAtri5ut compus are mai multe componente> fiecare independent

    -xemplu Adresa ($tr. +orilor 16* atri5utul strada K atri5utul numrulAtri5ut cu o singur valoare Conine o singur valoare pentru o anumit entitate.Atri5ut cu valori multiple Conine mai multe valori pentru o singur entitate.

    -xemplu un client poate avea mai multe numere de telefon.Atri5ut derivat are o valoare deriva5il din valoarea unui atri5ut sau set de atri5ute de care este legat icare nu sunt 4n mod necesar 4n aceeai entitate.

    -xemplu atri5utul v@rsta se deriv din data naterii.

    eprezentarea atributelor elipse contur punctat pentru atri5ute derivate> contur du5lu pentru atri5ute cuvalori multiple. Atri5utele compuse radia2G atri5utele componente. enumirea atri5utelor cheie primarse su5linia2. Figura 1.) se refer la modelul !& al unei agenii imo5iliare.

    %ersonal &udaXapropiata

    7

  • 7/23/2019 Baze de Datesdfsdf

    28/86

    Fig.1.). &epre2entarea schematic a tipurilor de entiti %ersonalG> FilialaG i &uda apropiatG i aatri5utelor acestora.

    8

  • 7/23/2019 Baze de Datesdfsdf

    29/86

    1.9.1.7 Tipuri de rela&ii

    Tip de relaie " asociere semnificativ 4ntre tipuri de entiti.-xemplu adic fiecare anga:at este alocat unei filiale.

    utili2@nd o diagram numitre&ea semantic%. Aceasta este o diagram la nivel de o5iecte> unde sim5olul repre2int entitile> iarsim5olul repre2int relaiile. %entru simplificare 4n fig. 1.-. sunt pre2entate numai unele atri5ute.

    Fig. 1.-. =odel semantic 4n reea> cu apariiile individuale ale relaiei P!ste AlocatG

    0eprezentarea sc4ematic% a rela&iilor

    =odele semantice sunt dificil de 4neles datorit detaliilor. &epre2entarea de nivel 4nalt a relaiei estealocatG> utili2@nd conceptele modelului !& se pre2int 4n figura 1.0. %entru simplificare s?au repre2entat

    numai atri5utele chei primare.&elaiile se repre2int prin rom5uri rom5ul are linii du5le dac face legtura dintre o entitate sla5 i unatare> de care depinde.

  • 7/23/2019 Baze de Datesdfsdf

    30/86

    Fig. 1.0. &epre2entare schematic a entitilor> relaiilor i atri5utelor cheie primar Filiala> %ersonal i&udaXApropiat

    3radul unei relaii numrul de entiti participante 4ntr?o relaie.

    Fig. 1.7. &elaie 5inar> cu participani ( entiti participante*> relaie numit deineG

    Fig. 1.8. &elaie ternar> numit Fiea2G

    6/

  • 7/23/2019 Baze de Datesdfsdf

    31/86

    Fig. 1.;. &elaie cvadrupl> numit &eglementea2G

    &elaie recursiv " relaie 4n care aceeaientitate particip mai mult dec@t o dat 4n diferite roluri.

    Fig. 1.1/. &elaie recursiv numit supervi2ea2G> cu numele de roluri supervi2at i supervi2or. &elaiei is?au atri5uit nume de roluri pentru a indica scopul pe care?l are fiecare entitate participant 4n cadrul

    relaiei.#ume de roluri pot fi utili2ate i c@nd dou entiti sunt asociate prin mai mult dec@t o relaie (fig. 1.11*.

    Fig. 1.11 !ntiti asociate prin dou relaii distincte numite Administrea2G i !ste alocatG> 4mpreun cunumele de roluri corespun2toare.

    1.9.1.9 )tributele rela&iilor61

  • 7/23/2019 Baze de Datesdfsdf

    32/86

    $e pot asocia atri5ute i relaiilor (eemplul din fig. 1.1*.

    Fig. 1.1. !emplu de relaie numit ,i2itea2 cu atri5utele (ataXvi2itare i Comentarii*.

    %re2ena unor atri5ute asociate relaiilor poate indica eistena unei entiti neidentificate (4n eemplul dat>entitatea ,i2itareG*.

    1.9.6 Constr"ngeri structurale!ntitilor participante 4ntr?o relaie li se impun anumite constr@ngeri> aa cum sunt percepute 4n lumeareal.-xemple o proprietate de 4nchiriat tre5uie s ai5 un proprietar> filiala tre5uie s ai5 personal.!ist dou mari tipuri de constr@ngeri structurale de cardinalitate i de participare.

    1.9.6.1 Constr"ngeri de cardinalitate

    0aport de cardinalitate al unei rela&ii escrie numrul de relaii posi5ile pentru fiecare entitateparticipant.

    %entru relaii 5inare raportul de cardinalitate poate fi 11 unu la unu 1 = unu la mai muli =# mai muli la mai muli.

    &egulile care sta5ilesc cardinalitatea sunt reguli de afaceri ale organi2aiei (4n modelarea unei organi2aiitre5uie repre2entate c@t mai multe reguli de afaceri*.

    0ela&ii unu la unu +11,

    $e consider relaia 5inar dministreaza> anume %ersonal dministreaza Filiala. =odelul semantic

    corespun2tor este pre2entat 4n figura 1.16.

    6

  • 7/23/2019 Baze de Datesdfsdf

    33/86

    Fig.1.16 =odel tip reea semantic al relaiei 11 (%ersonaldministreazaFiliala*

    &elaia este de cardinalitate 11 deoarece o singur entitate din %ersonal este asociat cu o singur entitatedin Filiala. Acesta este confirmat prin regula de afaceri pe care o repre2int relaia o filial are un singuradministrator> iar un anga:at poate administra doar o singur filial. %ot eista anga:ai (de. e. Ann Beech*care nu administrea2 nici o filial.

  • 7/23/2019 Baze de Datesdfsdf

    34/86

    Fig. 1.1- iagrama tip reea semantic a relaiei 1=in diagram reiese gradul de cardinalitate al relaiei ca fiind de 1 => deoarece un mem5ru alpersonalului poate supraveghea mai multe proprieti (de e. p supraveghea2 pr1 i pr*> ceea cecorespunde regulilor de funcionare ale organi2aiei. i de cardinalitate 11 citit de ladreapta la st@nga> din punctul de vedere al proprietii de 4nchiriat. %entru sta5ilirea gradului decardinalitate al relaiei se va lua 4n considerare gradul mai 4nalt> deci 4n ca2ul eemplului 1=.

    iagrama !& corespun2toare acestei relaii esterepre2entat 4n figura 1.10.Fig. 1.10. iagrama !& a relaiei 1=

    6)

  • 7/23/2019 Baze de Datesdfsdf

    35/86

    0ela&ii mai mul&i la mai mul&i +,Considerm relaia +iar1ace eclama%roprietateXdeXInchiriat cu reeaua semantic din figura 1.17.

    Fig. 1.17. iagram tip reea semantic a relaiei =#

    in diagram reiese gradul de cardinalitate al relaiei de =# at@t d.p.d.v. al entitii +iar> c@t i din cel alentitii %roprietateXdeXInchiriat. Corespun2tor regulilor de afaceri> 4ntr?un 2iar se poate face reclammai multor proprieti> i unei proprieti i se poate face reclam 4n mai multe 2iare.

    iagrama !& corespun2toare este pre2entat4n figura 1.18.

    Fig. 1.18.iagrama !& a relaiei =#

    1.9.6.6 Constr"ngeri de participare

    Constr"ngerile de participare determin dac eistena unei entiti depinde de legtura sa de altentitate prin intermediul unei relaii.

    !ist dou tipuri de constr@ngeri de participare (a unei entiti 4ntr?o relaie*? participare total sau o5ligatorie (repre2entat printr?o linie du5l*? participare parial sau opional (repre2entat printr?o linie simpl*.

    Participareaunei entiti 4ntr?o relaie este total%> dac eistena unei entiti necesit (este condiionatde* eistena altei entiti prin intermediul unei anumite relaii. Altfel participareaeste par&ial%.

    6-

  • 7/23/2019 Baze de Datesdfsdf

    36/86

    -xemplu. evident>numai dac are alocat personal. eci eistena entitii Filiala este condiionat de eistena entitii%ersonal. Ca urmare entitatea Filiala va participa total (o5ligatoriu* 4n relaia -ste locat> i se varepre2enta cu linie du5l.

    Conform regulilor de afaceri ale organi2aiei> pot

    4ns eista mem5ri de personal care nu sunt alocaiunei anumite filiale. !ntitatea %ersonal va aveadeci participare parial (opional* 4n relaia -stelocat> i se va repre2enta cu linie simpl

    Fig. 1.1;. Constr@ngeri de participare

    " repre2entare alternativ a constr@ngerilor de participare re2ult din fig. 1./> unde pe liniilede legtur sunt trecute valorile minim imaim cu care pot participa entitile 4n relaie. o filial poate avea minim -i maim nedefinit (#* anga:ai. Un anga:at poates nu fie alocat unei filiale (valoare minim /* saus fie alocat unei filiale> i numai uneia (valoaremaim 1*.Fig. 1./ Constr@ngeri de participare> notaiealternativ

    1.9.7 Problemele modelului 0

    datoritinterpretrii eronate a sensului unei relaii.

    1.9.7.1 Capcane n e(antai

    Capcanele n e(antaisunt acele capcane de conectare care 4ntr?un model !& repre2int o relaie dintretipuri de entiti> dar cile dintre anumite apariii ale entitilor sunt am5igue.

    Capcanele 4n evantai apar c@nd dou sau maimulte relaii 1= provin din aceeai entitate (fig.1.1*.in model nu re2ult la ce filial este alocat unanumit mem5ru al personalului dintr?o secie>tiind c o secie coordonea2 mai multe filiale.!aminm modelul la nivel de apariii individualeprin intermediul reelei semantice (fig. 1.*.

    Fig. 1.1 Capcan 4n evantai

    60

  • 7/23/2019 Baze de Datesdfsdf

    37/86

    $e poate o5serva capcana 4n evantaiAnga:atul $367 este alocat seciei $1> darsecia $1 coordon@nd filialele B6 i B7> nuse tie la care dintre aceste dou filiale estealocat $3 67.

    Fig. 1.. &eeaua semantic a modelului !&din fig. 1.1

    Capcana se re2olv prin restructurarea modelului!&> a.4. acesta s repre2inte corect asocieriledintre entiti (fig. 1.6*.$e o5serv care secie coordonea2 care filiale> ice personal este alocat fiecrei filiale.

    Fig. 1.6. =odel !& restructurat

    &eeaua semantic a modelului restructurat(corect* este cea din fig. 1.).Anga:atul $367 este alocat filialei B6>coordonat de secia $1.

    Fig. 1.). &eeaua semantic a modelului!& din fig. 1.6.

    1.9.7.6 Capcane de ntrerupere

    Capcanele de ntreruperesunt acele capcane de conectare 4n care un model sugerea2 eistena uneirelaii 4ntre tipurile de entiti> dar nu eist ci 4ntre anumite apariii ale acestor entiti.Capcanele de 4ntrerupere apar c@nd 4n calea prin care sunt legate entitile intervine o entitate cuparticipare parial.

    -xemplu. in modelul din fig. 1.- se o5serv urmtoarele%e ramura din st@nga

    ? unei singure filiale 4i sunt alocai mai muli anga:ai (relaie 1=*? filiale eist numai dac are personal> fiecare mem5ru al personalului este o5ligatoriu alocat unei

    filiale (participri totale 9 linii du5le de legtur*.%e ramura din dreapta

    ? Un anga:at (mem5ru al personalului* poate supervi2a mai multe proprieti> o proprietate poate fisupravegheat de un mem5ru al personalului (relaie 1 =*

    67

  • 7/23/2019 Baze de Datesdfsdf

    38/86

    ? #u fiecare mem5ru al personalului supraveghea2 o5ligatoriu proprieti i nu toate proprietilesunt supravegheate o5ligatoriu de un mem5ru al personalului (participri pariale 9 linii simple delegtur*.

    in modelul din fig. 1.- nu se poate deduce ce

    proprieti sunt disponi5ile la care filiale.=odelul !& sugerea2 eistena unei relaii 4ntreentitile Filiala i %roprietateXdeXInchiriat> dar>aa cum re2ult din reeaua semantic asociat(fig. 1.0* nu eist ci 4ntre anumite apariii aleentitilor.

    Fig. 1.- Capcan de 4ntrerupere

    'ipsa cilor 4ntre anumite apariii aleentitilor Filiala i%roprietateXdeXInchiriat se o5serv clardin reeaua semantic din figura 1.0.#u se poate deduce la ce filial estedisponi5il proprietatea %A1).

    Fig. 1.0. &eeaua semantic a modelului!& din fig. 1.-.

    %articiparea parial a entitilor %ersonal i %roprietateXdeXInchiriat 4n relaia Supra$egheazaare ca efectfaptul c unele proprieti nu pot fi asociate cu o filial prin intermediul unui mem5ru al personalului.

    %entru re2olvarea acestei capcane de 4ntreruperetre5uie identificat relaia care lipsete. Aceastaeste relaia re dintre entitile Filiala i%roprietateXdeXInchiriat.$e restructurea2 modelul !&> introduc@nd relaianou identificat re 4ntre entitile 4ntre carelipseau cile (fig. 1.7*.

    Fig. 1.7. =odel !& restructurat pentru eliminareacapcanei de 4ntrerupere.

    68

  • 7/23/2019 Baze de Datesdfsdf

    39/86

    Acum la nivelul apariiilor individuale>adic din reeaua semantic> se poate sta5ilic proprietatea %A1) este disponi5il lafiliala B7 (fig. 1.8*.

    Fig. 1.8. &eeaua semantic a modelului!& restructurat din fig. 1.7.

    1.9.9 0ezumatul capitolului 1.9

    Un tip de entitate este un o5iect sau unconcept care este identificat de organi2aieca av@nd o eisten independent. "

    entitateeste o instan unic identifica5il aunui tip de entitate.Un tip de entitate slab%este o entitate a crei eisten depinde de eistena altor entiti. " entitate tareeste o entitate a crei eisten nu este dependent de eistena altor entiti.Un atributeste o proprietate a uni tip de entitate sau relaie.Domeniul atributuluirepre2int mulimea de valori care pot fi atri5uite acestuia.Un atribut simplueste compus dintr?o singur component> cu eisten independent.Un atribut compuseste format din mai multe componente> fiecare cu eisten independent.Un atribut cu o singur% (aloareconine o singur valoare pentru o singur entitate.Un atribut cu (alori multipledeine mai multe valori pentru o singur entitate.Un atribut deri(atare o valoare deriva5il dn valoarea altui atri5ut sau mulimi de atri5ute> care nu suntneaprat ale aceleiai entiti." c4eie candidateste un atri5ut sau set de atri5ute care identific 4n mod unic apariiile individuale aleunui tip de entitate." c4eie primar%este o cheie candidate aleas pentru o entitate." c4eie compus%este o cheie candidat care const din dou sau mai multe atri5ute.Un tip de rela&ieeste un set de asociaii> toate cu un acelai sens> 4ntre tipuri de entiti." rela&ieeste o asociere 4ntre entiti> aceast relaie cuprin2@nd o entitate din fiecare tip de entitate ceparticip 4n relaie.Gradul unui tip de rela&ieeste numrul de entiti participante 4n aceasta." rela&ie recursi(%conine o aceeai entitate care particip de mai multe ori 4n relaie> cu roluri diferite.umele de rolurisunt utili2ate pentru determinarea funciilor fiecrei entiti participante 4ntr?o relaie.0aportul de cardinalitatedescrie numrul de relaii posi5ile pentru fiecare entitate participant.Constr"ngerile de participaredetermin dac eistena unei entiti depinde de legtura sa cu o altentitate> prin intermediul unei relaii." capcan% n e(antaieist acolo unde un model repre2int o relaie 4ntre tipuri de entiti> dar caleadintre anumite apariii ale acestora este am5igu." capcan% de ntrerupere eist acolo unde modelul sugerea2 eistena unei relaii 4ntre tipuri deentiti> dar nu eist o cale 4ntre anumite apariii ale entitilor.

    6;

  • 7/23/2019 Baze de Datesdfsdf

    40/86

    1.9.= Fntreb%ri la capitolul 1.9

    escriei conceptele de 5a2 ale modelului !&> i repre2entarea schematic a acestora. escriei constr@ngerile ce pot fi impuse entitilor participante 4ntr?o relaie. escriei pro5lemele ce pot aprea 4n crearea unui model !&.

    1.= ormalizarea

    Atunci c@nd proiectm o B pentru un $3B relaional> principalul o5iectiv la crearea unui model dedate logic este repre2entarea corect a datelor> relaiilor i constr@ngerilor. %entru acesta tre5uie deidentificat un set de relaii adecvat> ceea ce se reali2ea2 cu a:utorul tehnicii de normali2are. #ormali2areaeste tratarea de :os 4n sus a proiectrii B> care 4ncepe cu eaminarea relaiilor dintre atri5ute.

    1.=.1 Scopul normaliz%rii

    ormalizareaeste o tehnic de reali2are a unui set de relaii (a unei mulimi de ta5ele* cu proprieti(atri5ute* de2ira5ile> av@nd 4n vedere cerinele organi2aiei.

    #ormali2area este frecvent efectuat ca o serie e teste asupra unei relaii> pentru a sta5ili dac aceastasatisface sau violea2 cerinele unei anumite forme normale. $e deose5esc prima form normal (1#F*>a doua form normal (#F*> a treia form normal (6#F*> forma normal BrSce?Codd (BC#F*> a )?a i a-?a form normal ()#F> -#F*. Toate formele normale se 5a2ea2 pe dependenele funcionale dintreatri5utele unei relaii. %rin aplicarea testelor de normali2are> adic prin normali2area schemei relaionale(ve2i pct. 1..1.6* se previne apariia anomaliilor de reactualizare.

    1.=.6 0edundan&a datelor i anomaliile de reactualizare

    Atri5utele tre5uie grupate 4n relaii (ta5ele* astfel 4nc@t s se minimi2e2e redundana datelor i s se reducspaiul de stocare necesar relaiilor de 5a2 implementate.

    %entru stocarea 4n B a informaiilor referitoare la anga:ai i filiale comparm dou posi5iliti

    a* Crearea a dou ta5ele> unul cu anga:ai (relaia %ersonal* i unul cu filialele (relaia Filiala*

    %ersonal (#rX%ersonal> #ume%> Adresa%> Functie> $alariu> #rXFiliala*Filiala (#rXFiliala> AdresaF> #rXTel*

    5* stocarea tuturor informaiilor 4ntr?un ta5el unic (%ersonalXFiliala*

    %ersonalXFiliala (#rX%ersonal> #ume%> Adresa%> Functie> $alariu> #rXFiliala> AdresaF> #rXTel*.

    care pot crea pro5leme numiteanomalii de reactualizare> care sunt 4mprite 4n

    ? anomalii de inserare? anomalii de tergere

    )/

  • 7/23/2019 Baze de Datesdfsdf

    41/86

    ? anomalii de modificare.

    )nomaliile de inserare

    !ist dou tipuri de anomalii de inserare. %entru a le ilustra considerm relaia %ersonalXFiliala (cu dateredundante*.

    ? 'a inserarea unui nou mem5ru al personalului> tre5uie inserate corect i toate datele referitoare lafiliala la care este alocat> date aflate de:a 4n alte r@nduri din acelai ta5el.? 'a inserarea de date referitoare la o filial care nu are alocat 4nc nici un mem5ru de personal>

    tre5uie de trecut #ull?uri 4n celulele pentru atri5utele personalului. ar #rX%ersonal fiind cheieprimar> 4ncercarea 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 pro5leme se evit proiect@nd i utili2@nd dou relaii distincte> anume %ersonal i Filiala.

    )nomaliile de tergere

    ac 4n relaia %ersonalXFiliala o anumit filial apare o singur dat (filiala are un singur mem5ru depersonal*> atunci tergerea acestui mem5ru de personal va duce la tergerea i a informaiilor referitoare lafiliala respectiv.

    )nomalii de modificare

    ac reactuali2m de eemplu un numr de telefon al unei filiale din ta5elul %ersonalXFiliala> atunci acestnumr va tre5ui de reactuali2at 4n acest ta5el 4n toate r@ndurile 4n care apare filiala respectiv (r@nduricorespun2toare diferiilor mem5ri ai personalului alocai filialei respective*.

    Propriet%&ile de uniune f%r% pierderi i conser(are a dependen&ei

    &elaia %ersonalXFiliala este epus anomaliilor de reactuali2are i tre5uie descompus 4n dou relaii(ta5ele* distincte %ersonal i Filiala.

    Descompunereaare dou proprieti importante? *niune f%r% pierderi permite regsirea oricrei instane din relaia iniial 4n instanele

    corespun2toare ale relaiilor mai mici.? Conser(area dependen&ei permite impunerea unei constr@ngeri asupra relaiei iniiale> prin

    impunerea unei constr@ngeri asupra fiecreia dintre relaiile mai mici. Adic nu este necesarefectuarea uniunii relaiilor mai mici pentru a verifica dac este violat o constr@ngere asuprarelaiei iniiale.

    1.=.7 Dependen&e func&ionale

    Conceptul de dependen funcional este elementul central 4n procesul de normali2are.Dependen&% func&ional%descrie legturile dintre atri5utele unei relaii. e eemplu> dac A i B suntatri5ute ale relaiei &> atri5utul B este dependent funcional de A (se notea2 AB* dac fiecrei valori aatri5utului A 4i este asociat eact o valoare atri5utului B (A i B pot fi formate din mai multe atri5utefiecare*.

    Atunci c@nd eist o dependen funcional> ea este specificat ca o constr@ngere 4ntre atri5ute.

    )1

  • 7/23/2019 Baze de Datesdfsdf

    42/86

    AB pentru o valoare dat a lui A (4n toate r@ndurile din ta5el unde apare aceast valoare* se va gsi osingur valoare a lui B

    -xemplu A O atri5utul PlocalitateG B O atri5utul P:udeG. eoarece A B (adic B este dependentfuncional de A*> 4n fiecare r@nd din ta5el unde A are valoarea Codlea> B va avea valoarea Braov.

    ependena dintre atri5utele A i B poate fi repre2entat i su5 form de diagram (fig. 1.;*.

    eterminantul unei dependene funcionale se refer laatri5utul din partea st@ng a sgeii. Aici A estedeterminantul lui B.

    Fig. 1.;. iagram de dependen funcional

    4nscrii 4n st@ngasgeii

    #rX%ersonal#ume%#rX%ersonalAdresa%#rX%ersonalFunctie#rX%ersonal$alariu#rX%ersonal#rXFiliala#rX%ersonalAdresaF#rX%ersonal#rXTel#rXFilialaAdresaF#rXFiliala#rXTelAdresaF #rXFiliala

    AdresaF #rXTel#rXTel #rXFiliala#rXTel AdresaF

    Identificarea c4eii primare a unei rela&ii cu a8utorul dependen&ei func&ionale

    %entru a identifica cheia primar a relaiei (ta5elului* %ersonalXFiliala se identific 4nt@i toate cheilecandidat> adic acele atri5ute care identific 4n mod unic fiecare r@nd din relaie.Toate atri5utele care nu fac parte din cheia primar tre5uie s fie dependente funcional de aceasta.Ca urmare cheia primar va fi acel atri5ut (sau set de atri5ute* care determin funcional toate celelalteatri5ute ale relaiei.Cu alte cuvinte cheia primar va fi acel atri5ut (sau set de atri5ute* de care sunt dependente funcionaltoate celelalte atri5ute ale relaiei.

  • 7/23/2019 Baze de Datesdfsdf

    43/86

    #ormali2area este o tehnic formal de anali2are a relaiilor (ta5elelor* 5a2at pe cheile primare aleacestora i pe dependenele funcionale. Tehnica presupune o serie de reguli care pot fi utili2ate pentrutestarea relaiilor individuale> re2ult@nd normali2area 5a2ei de date. Atunci c@nd o cerin nu este4ndeplinit> relaia care o violea2 tre5uie descompus 4n relaii care satisfac individual cerinelenormali2rii.

    #ormali2area se eecut ca o serie de pai corespun2tori unei anumite forme normale. %entru modelulrelaional numai prima form normal (1#F* este de importan critic 4n crearea de relaii adecvate. Toateformele normale urmtoare sunt opionale> dar pentru a evita anomaliile de reactuali2are se recomandefectuarea normali2rii p@n la cel puin forma normal 6#F.

    %rocesul de normali2are este ilustrat 4n figura de mai :os> unde se demonstrea2 legtura dintre diverseleforme normale. Unele relaii 4n 1#F sunt i 4n #F> unele relaii 4n #F sunt i 4n 6#F .a.m.d.

    $chema legturilor dintre formele normale

    1.=.= Prima form% normal%

    2orma nenormalizat% +*2, este un ta5el care conine unul sau mai multe grupuri repetitive.Prima form% normal% +12,este o relaie 4n care intersecia fiecrui r@nd cu fiecare coloan conine osingur valoare i numai una.

    $e presupune c datele sunt introduse prin intermediul unui formular. Aceste date se transfer i sestochea2 4ntr?un ta5el de form nenormali2at. $e identific i se elimin grupurile repetitive pentru aaduce ta5elul 4n prima form normal (1#F*.

    Un grup repetiti(este un atri5ut sau grup de atri5ute dintr?un ta5el care are valori multiple pentru osingur apariie a atri5utului (atri5utelor* cheie primar al acelui ta5el.

    !ist dou tratri u2uale pentru eliminarea grupurilor repetitive din ta5ele.

    Prima tratare se elimin grupurile repetitive prin introducerea datelor adecvate 4n coloanele goale aler@ndurilor care conin date repetitive.

    )6

  • 7/23/2019 Baze de Datesdfsdf

    44/86

    -xemplu $e consider un formular (fig. 1.6/* pentru introducere 4n 5a2a de date a ageniei imo5iliare dePetalii client?4nchiriereG. %entru simplificare se presupune c un client 4nchiria2 o anumit proprietate osingur dat i nu poate 4nchiria mai mult de o proprietate 4n acelai timp.

    Fig. 1.6/. Formularul Petalii client?4nchiriereG al ageniei imo5iliare%entru cei doi clieni datele transformate 4ntr?un ta5el nenormali2at se pre2int ca 4n fig. 1.61.

    Fig. 1.61 Ta5elul nenormali2at (U#F* ClientXInchiriere

    Ca urmare eist valori multiple la intersecia dintre anumite r@nduri i coloane. e eemplu pentruclientul Yohn LaS eist dou proprieti %3) i %3 10.

    %entru a transforma ta5elul 4n prima form normal se elimin grupul repetitiv> a.4. s eiste o singurvaloarea 4n fiacre celul.Conform primei tratri grupul repetitiv se elimin prin introducerea datelor adecvate 4n fiecare [email protected] (relaia* va fi acum 4n 1#F (fig. 1.6*.

    ))

  • 7/23/2019 Baze de Datesdfsdf

    45/86

    Fig. 1.6. &elaia ClientXInchiriere 4n prima form normal (1#F*

    care pentru acest ta5el vor fi chei compuse(#rXClient> #rX%roprietate* (#rXClient> InceputInchir* i (#rX%roprietate> InceputInchir*. $e selectea2drept chei primar al acestei relaii setul de atri5ute (#rXClient> #rX%roprietate* 4n fig. 1.6 ele au fostmutate a.4. s fie primele dou coloane.

    Acum relaia ClientXInchiriere 4n 1#F este definit astfel

    ClientXInchiriere (#rXClient> #rX%roprietate> #umeC> Adresa%> InceputInchir>$farsitInchir> Chirie> #rX%roprietar> #ume%*

    &elaia este 4n 1#F> adic la intersecia unui r@nd cu o coloan eist o singur valoare> dar are 4n acelaitimp date redundante. ,a tre5ui trecut 4n #F> ceea ce nu este 4ns o5iectul pre2entului curs.

    ) doua tratare se elimin grupul repetitiv prin plasarea 4ntr?o relaie separat a datelor repetitive>4mpreun cu o copie atri5utului cheie iniial (#rXClient*> aa cum arat figura 1.66. Apoi se identific o

    cheie primar pentru noua relaie.

    Fig. 1.66 &elaiile Client i %ropXInchirX%roprietar 4n 1#F

    Formele celor relaii 4n 1#F re2ultante sunt

    Client (#rXClient> #umeC*

    )-

  • 7/23/2019 Baze de Datesdfsdf

    46/86

    %ropXInchirX%roprietar (#rXClient> #rX%roprietate> Adresa%> InceputInchir>$farsitInchir> Chirie> #rX%roprietar> #ume%*

    Cum re2ult din fig. 1.66> am5ele relaii sunt 4n 1#F> deoarece la intersecia dintre fiecare r@nd i fiecarecoloan eist o singur valoare.

    A doua relaie pre2int o oarecare redundan a datelor i poate suferi anomalii de reactuali2are. $eimpune trecerea 4n #F.

    1.=.? ) doua form% normal% +62,

    A doua form normal se 5a2ea2 pe conceptul de dependen funcional total.

    ac A i B sunt atri5utele unei relaii> atunci B este total dependent func&ionalde A> dac B estedependent funcional de A> dar nu de orice su5mulime adecvat a lui A.

    " dependen funcional A Z B este total%> dac prin eliminarea oricrui atri5ut din componena lui A>dependena nu mai are loc.

    " dependen funcional A Z B este par&ial%> dac eist un atri5ut din componena lui A> care dac esteeliminat din A> dependena funcional se pstrea2.

    !emplu de dependena funcional parial

    eterminantul A se compune din atri5ute #rX%ersonal> #ume%.Atri5utul determinat> dependent funcional de A este B #rXFiliala.

    A Z B> deci #rX%ersonal> #ume% Z #rXFiliala.

    i dup eliminarea atri5utului #ume% din componena lui A> dependena funcional se pstrea2

    #ume% Z #rXFiliala> deci dependena iniial A Z B este una parial.

    A doua form normal (#F* se aplic relaiilor cu chei compuse (din mai multe atri5ute*.

    Al doilea ta5el din fig. 1.66 se afl 4n 1#F i are cheia primar compus din atri5ute #rXClient>#rX%roprietate. Ta5elul este epus anomaliilor de reactuali2are. ac de eemplu tre5uie de modificavaloarea chiriei pentru proprietatea %3) i reactuali2area nu se face 4n fiecare r@nd 4n care apare %3)> sepierde coerena 5a2ei de date. $e o5serv c atri5utul PChirieG depinde funcional numai de atri5utulP#rX%roprietateG i nu de 4ntreaga cheie primar compus. (Adic> dac se elimin atri5utul #rXClient dincheia primar> dependena funcional #rX%roprietate Z Chirie se pstrea2*.

    %entru a evita anomaliile de reactuali2are ta5elul tre5uie de adus 4n #F.

    ) doua form% normal%$ 62 +defini&ie, " relaie (ta5el* 4n 1#F 4n care fiecare atri5ut care nu este cheieprimar este total dependent funcional de cheia primar (compus* se afl 4n #F.

    )0

  • 7/23/2019 Baze de Datesdfsdf

    47/86

    Trecerea din 1 #F 4n #F se face prin eliminarea dependenelor pariale. Atri5utele identificate ca fiindparial dependente de cheia primar se plasea2 4ntr?o nou relaie (ta5el*> 4mpreun cu determinantul lor.

    $e consider ta5elul ClientXInchiriere (fig. 1.6*> av@nd o cu cheie primar compus.

    ClientXInchiriere (#rXClient> #rX%roprietate> #umeC> Adresa%> InceputInchir> $farsitInchir> Chirie>

    #rX%roprietar> #ume%* #rX%roprietate Z InceputInchir> $farsitInchir ependene totale de cheprimar #rXClient> #rX%roprietat

    fd #rXClient Z #umeC Dependen&% par&ial%de (unul din atri5utele din* cheprimar

    fd6 #rX%roprietate Z Adresa%> Chirie> #rX%roprietar> #ume% Dependen&% par&ial%de (unul din atri5utele din* che

    primarfd) #rX%roprietar Z #ume% ependen tran2itivfd- #rXClient> InceputInchir Z #rX%roprietate> Adresa%>

    $farsitInchir> Chirie> #rX%roprietar> #ume%ependene totalede cheia candidat #rXClienInceputInchir

    fd0 #rX%roprietate> InceputInchir Z #rXClient> #umeC>$farsitInchir

    ependene totalede cheia candidat #rX%roprietatInceputInchir

    Ta5elul ClientXInchiriere nu se afl 4n #F> deoarece s?au depistat dependene pariale ale unor atri5ute de(unul din atri5utele din* cheia primar.

    "5servaie ependena tran2itiv nu violea2 #F> dei poate cau2a anomalii de reactuali2are . Astfel dedependene sunt eliminate la trecerea 4n 6#F.

    %entru a aduce ta5elul 4n #F

    ? atri5utele dependente parial se mut 4ntr?un nou ta5el> 4mpreun cu atri5utul lor determinant fd> fd6*

    Client (#rXClient> #umeC*

    %roprietarX%roprietate (#rX%roprietate> Adresa%> Chirie> #rX%roprietar> #ume%*

    ? ta5elul iniial 9 su5 alt nume ? 4i pstrea2 cheia primar iniial> compus> i acele atri5ute care audependen funcional total de cheia primar (fd1*.

    Inchiriere (#rXClient> #rX%roprietate> InceputInchir> $farsitInchir*.

    )7

  • 7/23/2019 Baze de Datesdfsdf

    48/86

    &elaiile (ta5elele* 4n #F derivate din relaia (ta5elul* ClientXInchiriere

    1.=.A ) treia form% normal% +72,

    atunci C este dependent tran2itiv de A prin intermediul lui B (cu condiia ca A s nu fie dependent

    funcional de B sau C*.$e consider de eemplu relaia %ersonalXFiliala%ersonalXFiliala (#rX%ersonal> #ume%> Adresa%> Functie> $alariu> #rXFiliala> AdresaF> #rXTel*.

    !ist (printre altele* urmtoarele dependene funcionale#rX%ersonal Z #rXFiliala i #rXFiliala Z AdresaFeci dependena #rX%ersonal Z AdresaF are loc prin intermediul atri5utului #rXFiliala.

    Aceast dependen este adevrat pentru c atri5utul #rX%ersonal nu este dependent funcional deatri5utul #rXFiliala sau de atri5utul AdresaF.

    ) treia form% normal%$ 72 +defini&ie," relaie (un ta5el* 4n 1#F i #F 4n care nici un atri5ut care nu este cheie primar nu este dependenttran2itiv de cheia primar se afl 4n 6#F

    Ca eemplu consider dependenele funcionale din relaiile (ta5elele* de mai sus

    Client (#rXClient> #umeC*#rXClient Z #umeC

    )8

  • 7/23/2019 Baze de Datesdfsdf

    49/86

    Inchiriere (#rXClient> #rX%roprietate> InceputInchir> $farsitInchir*#rXClient> #rX%roprietate Z InceputInchir> $farsitInchir#rXClient> InceputInchir Z #rX%roprietate> $farsitInchir#rX%roprietate> InceputInchir Z #rXClient> $farsitInchir

    %roprietarX%roprietate (#rX%roprietate> Adresa%> Chirie> #rX%roprietar> #ume%*

    #rX%roprietate Z Adresa%> Chirie> #rX%roprietar> #ume%#rX%roprietar Z #ume%

    $ingura dependen tran2itiv identificat se afl 4n relaia (ta5elul* %roprietarX%roprietate#rX%roprietar Z #ume%>sau mai eact #rX%roprietate Z #rX%roprietar Z #ume%.

    Celelalte relaii (ta5elele PInchiriereG i PClientG* nu conin dependene tran2itive i se afl 4n #F> decisunt considerate automat ca fiind 4n 6#F.

    Ta5elul P%roprietarX%roprietateG se aduce 4n 6#F prin eliminarea dependenei tran2itive

    ? atri5utul determinat> dependent funcional tran2itiv se mut 4n alt relaie (ta5el*> 4mpreun cudeterminantul su

    %roprietar (#rX%roprietar> #ume%*

    ? ta5elul iniial 9 su5 alt nume ? 4i pstrea2 cheia primar iniial> i acele atri5ute care au nu audependen funcional tran2itiv de cheia primar

    %roprietateXdeXInchiriat (#rX%roprietate> Adresa%> Chirie> #rX%roprietar*

    &elaiile (ta5elele* 6#F derivate din relaia (ta5elul* %roprietateX%roprietar

    Cele noi ta5ele se afl 4n 6#F> deoarece nu conin dependene tran2itive ale unor atri5ute de cheiaprimar.

    &elaia PClientXInchiriereG (fig. 1.6* aflat 4n 1#FClientXInchiriere (#rXClient> #rX%roprietate> #umeC> Adresa%> InceputInchir> $farsitInchir>

    Chirie> #rX%roprietar> #ume%*

    a fost supus procesului de normali2are i descompus 4n ) relaii (ta5ele* 6#FClient (#rXClient> #umeC*Inchiriere (#rXClient> #rX%roprietate> InceputInchir> $farsitInchir*%roprietateXdeXInchiriat (#rX%roprietate> Adresa%> Chirie> #rX%roprietar*%roprietar (#rX%roprietar> #ume%*

    %rocesul de normali2are este ilustrat 4n figura de mai :os

    );

  • 7/23/2019 Baze de Datesdfsdf

    50/86

    escompunerea relaiei (ta5elului* 1#F ClientXInchiriere 4n relaii (ta5ele* 6#F

    &elaia iniial ClientXInchiriere poate fi recreat prin uniunea relaiilor (ta5elelor* 6 #F re2ultate 4n urmanormali2rii. Aceasta se reali2ea2 prin mecanismul cheie primar 9 cheie strin.

    e eemplu atri5utul #rX%roprietar este cheie primar 4n relaia (ta5elul* P%roprietarG i cheie strin 4nrelaia (Ta5elul* P%roprietateXde?4nchiriatG.

    &elaiile (ta5elele* sunt pre2entate 4n figura de mai :os

    &elaiile (ta5elele* 6#F derivate din relaia (ta5elul* Client?Inchiriere

    1.=. 0ezumatul capitolului 1.=ormalizareaeste o tehnic de reali2are a unui set de relaii cu proprieti adecvate> av@ndu?se 4n vederecerinele unei 4ntreprinderi privind datele. #ormali2area este o metod formal> ce poate fi utili2at pentruidentificarea relaiilor> 5a2@ndu?se pe cheile i dependenele funcionale dintre atri5utele acestora.&elaiile cu redundan de date pot suferi din cau2a anomaliilor de reactualizare> care se clasific 4nanomalii de inserare> tergere i modificare.#ormali2area este legat de conceptul de dependen&% func&ional%> care descrie legturile dintre atri5uteleunei relaii. ac A i B sunt atri5ute ale relaiei &> atri5utul B este dependent funcional de A (A B*dac fiecrei valori a atri5utului A 4i este asociat eact o valoare atri5utului B (A i B pot fi formate dinmai multe atri5ute fiecare*.

    -/

  • 7/23/2019 Baze de Datesdfsdf

    51/86

    Un determinanteste orice atri5ut de care un alt atri5ut este total dependent funcional. eterminantulunei dependene funcionale se refer la atri5utul (grupul de atri5ute* din partea st@ng a sgeii.%rocesul de normali2are face ca relaia s treac prin diverse forme normale. care o fac sensi5il la anomalii dereactuali2are.2orma nenormalizat%(U#F* este un ta5el cu unul sau mai multe grupuri repetitive.

    Prima form% normal% (1#F* este o relaie 4n care la intersecia dintre fiecare r@nd cu fiecare coloanapare o singur valoare.) doua form% normal% (#F* este o relaie (ta5el* care se afl 4n 1#F i 4n care fiecare atri5ut care nueste cheie primar este total dependent de cheia primar. Dependen&a func&ional% total% arat c dac Ai B sunt atri5ute ale unei relaii (ta5el*> B este total dependent funcional de A dac B este dependentfuncional de A> dar nu i de orice su5mulime adecvat a lui A.) treia form% normal%(6#F* este o relaie (ta5el* care se afl 4n 1#F i #F> 4n care nici un atri5ut carenu este cheie primar nu este dependent tran2itiv de cheia primar. Dependen&a tranziti(%este situaia 4ncare 4ntre trei atri5ute A> B i C ale unei relaii (ta5el* eist dependenele funcionale A Z B i B Z C>adic C este dependent tran2itiv de A prin intermediul lui B (cu condiia ca A s nu fie dependentfuncional de B sau C*.

    1.=.E Fntreb%ri la capitolul 1.=

    escriei scopul normali2rii datelor. escriei pro5lemele ce decurg din redundana datelor. escriei conceptul de dependen funcional. Cum este legat conceptul de dependen funcional de procesul de normali2areE efinii prima> a doua i a treia form normal.

    1.? etodologia de proiectare conceptual% a bazelor de date

    %roiectarea unei 5a2e de date cuprinde urmtorii pai%asul 1 proiectarea conceptual%aii i 6 proiectarea logic%aii )> -> 0> i 7 proiectarea fi2ic.

    Proiectarea conceptual% a bazei de date este procesul de construire a unui model al informaiilorutili2ate 4n 4ntreprindere> independent de consideraiile de ordin fi2ic ($3Bul utili2at*.

    1.?.1 Pasul 1. Construirea modelului de date conceptual local pentru fiecare (edere a utilizatorilor

    e regul vederea unui utili2ator este o 2on funcional a 4ntreprinderii (de eemplu producia>marMetingul> v@n2rile> resursele umane> conta5ilitatea> aprovi2ionarea etc.*. utili2atorul este o persoanreal individual sau un grup de persoane. identificarea vederilor utili2atorilor se reali2ea2 prineaminarea diagramelor de flu i prin chestionarea utili2atorilor.

    -1

  • 7/23/2019 Baze de Datesdfsdf

    52/86

    =odelul de date conceptual corespun2tor vederii unui utili2ator se numete model de date conceptuallocal corespun2tor vederii respective. Fiecare model de date conceptual local cuprinde elementeleenumerate 4n ta5elul de mai :os> din care se desprind sarcinile de proiectare conceptual.

    lemente ale modelului de dateconceptual local

    Sarcini pentru construirea modelului conceptual local+Pai,

    Tipuri de entiti 1.1. Identificarea tipurilor de entiti (t.e.*Tipuri de relaii 1.. Identificarea tipurilor de relaii (t.r.*Atri5ute 1.6. identificarea i asocierea atri5utelor cu t.e. i t.r.omeniile atri5utelor 1.). eterminarea domeniilor atri5utelor Cheile candidat 1.-. eterminarea atri5utelor chei candidat i chei primareCheile primare

    1.0. $peciali2areaDgenerali2area t.e. (opional*1.7. esenarea diagramei !&1.8. &evi2uirea modelului conceptual local cu utili2atorii

    Pasul 1.1 Identificarea tipurilor de entit%&i +t.e.,=odaliti de identificare

    ? studierea specificaiei cerinelor utili2atorului referitor la funcia utili2atorului 4n 4ntreprindere secaut su5stantivele 4n specificaia cerinelor utili2atorului (de eemplu #rX%ersonal #ume%#rX%roprietate Adresa% Chirie etc.*

    ? se caut o5iectele principale de interes> eclu2@ndu?se calitile se grupea2 (de eemplu#rX%ersonal i #ume% vor aparine aceluiai tip de entitate %ersonal*

    ? se identific o5iectele care eist pe cont propriu (de eemplu %ersonal eist indiferent de#rX%ersonal> #ume%> etc.*

    ? discuii cu utili2atorii (de eemplu pentru eliminarea sinonimelor Anga:at O %ersonal*ocumentarea t.e. dup identificarea t.e. li se atri5uie denumiri evidente> care se trec 4ntr?un dicionar dedate.

    Pasul 1.6 Identificarea tipurilor de rela&ii +t.r.,? Identificarea relaiilor de regul relaiile sunt indicate de epresii ver5ale 4n specificaiautili2atorului. e eemplu filiale are personal personal administreaz proprietate chiria$iziteazproprietate etc. Interesea2 numai relaiile dintre entiti cerute. =a:oritatea relaiilor sunt5inare. !ste 5ine de verificat fiecare pereche de tipuri de entiti> pentru a gsi o posi5il relaie4ntre ele.

    ? eterminarea cardinalitii (11 1= =#* i constr@ngerilor de participare (total> parial*eventual se specific i valorile limit ale cardinalitii.

    ? ocumentarea tipurilor de relaii. %e msur ce sunt identificate> li se atri5uie denumiri evidenteacestea> precum i constr@ngerile se trec 4n dicionarul de date.

    ? ,i2uali2area pe parcurs a t.e. i t.r. identificate prin modelarea !&.

    Pasul 1.7 Identificarea i asocierea atributelor cu t.e. sau t.r.? Identificare $e caut su5stantive sau epresii su5stantivale 4n specificaia cerinelor utili2atorilor

    care s caracteri2e2e t.e. i t.r. gsite. Atri5utele sunt proprieti> caliti> caracteristiciidentificatoare ale unei entiti sau relaii. $e deose5ete 4ntre atri5ute simple> compuse> derivate.Atri5utele derivate tre5uie repre2entate 4n modelul conceptual pentru a nu pierde informaii.

    ? ocumentarea atri5utelor pe msur ce sunt identificate li se atri5uit denumiri evidente isemnificative pentru utili2atori. %entru fiecare atri5ut se trec 4n dicionarul de date denumirea>sinonime sau aliasuri> tipul de date i lungimea> eventuale valori presta5ilite (default value*> dac

    -

  • 7/23/2019 Baze de Datesdfsdf

    53/86

    se accept #ull?uri (re[uired*> dac e compus sau derivat> formula de calcul> dac are valorimultiple.

    Pasul 1.9 Determinarea domeniilor atributelor? eterminarea omeniul este un recipient de valori din care unul sau mai multe atri5ute 4i iau

    valorile. e eemplu domeniul numerelor de filial vala5ile este compus din 6 caractere> liter?

    cifr?liter. omeniul va include i mulimea valorilor permise> dimensiunea i formatul c@mpului.? ocumentarea domeniului atri5utelor se 4nregistrea2 denumirea i caracteristicile domeniiloratri5utelor 4n dicionarul de date.

    Pasul 1.= Determinarea atributelor c4ei candidat i c4ei primare? identificare pentru fiecare entitate se identific toate cheile candidat i se secionea2 dintre ele

    cheia primar. " cheie candidat este o su5mulime minim de atri5ute ale unei entiti> careidentific 4n mod unic fiecare apariie a acesteia. Cheia primar aleas va 4ndeplini urmtoarelecriterii

    o va cuprinde un set minim de atri5uteo va fi cheia candidat cu cea mai mic pro5a5ilitate de modificare a valoriloro

    va fi cheia candidat cu cea mai mic pro5a5ilitate de a?i pierde caracterul de unicitateo va fi cheia candidat cu cele mai puine caractereo va fi cheia candidat cel mai uor de utili2at d.p.d.v. al utili2atorilor

    Unei entiti tari i se poate identifica o cheie primar> nu i unei entiti sla5e. Unei entiti sla5e i sepoate identifica o cheie primar numai prin plasarea 4n ea a unei chei strine> 4n cadrul relaiei sale cuentitatea tare.Cheile candidat care nu sunt selectate cheie primar devin chei alternative.? ocumentarea cheilor primare i alternative prin 4nregistrare 4n dicionarul de date.

    Pasul 1.? Specializarea/generalizarea tipurilor de entit%&i +op&ional,

    Acest pas este dictat de repre2entarea c@t mai clar a entitilor importante i a relaiilor dintre ele.iagrama !& final tre5uie s fie c@t mai li2i5il.=odelul !& din figura 1.6) a conine entitile %roprietateXdeXInchiriat i %roprietateXdeX,an2are. $egenerali2ea2 prin crearea entitii %roprietate (fig. 1.6) 5.*

    -6

  • 7/23/2019 Baze de Datesdfsdf

    54/86

    Fig. 1.6). !emplu de generali2are a tipului de entitate

    !ntitile %roprietateXdeXInchiriat i %roprietateXdeX,an2are devin su5clase ale entitii %roprietate 4n5a2a atri5utelor comune (Tipul> Adresa> cheia primar* i 4n 5a2a relaiilor comune asociate fiecreia(%roprietarXdeineX%roprietate*.!ntitile su5clas au i atri5ute diferite (Chirie respectiv %re* i relaii diferite (Inchiria2a respectiv

    Cumpara*.

    Pasul 1.A Desenarea diagramei 0iagrama !& care se desenea2 va fi repre2entarea conceptual a vederii unui utili2ator asupra 4ntregii4ntreprinderi. iagrama !& va repre2enta modelul de date conceptual local 5a2at pe o anumit vedere autili2atorului asupra 4ntreprinderii.

    Pasul 1. 0e(izuirea modelului de date conceptual local mpreun% cu utilizatorii

    -)

  • 7/23/2019 Baze de Datesdfsdf

    55/86

    Acest pas este necesar pentru a garanta c modelul este o repre2entare PadevratG a 4ntreprinderii d.p.d.v.al utili2atorului.

    1.?.6 0ezumatul capitolului 1.?

    Proiectarea conceptual% a bazei de date este procesul de construire a unui model al informaiilorutili2ate 4n 4ntreprindere> independent de consideraiile de ordin fi2ic.%roiectarea conceptual 4ncepe prin crearea unui model de date conceptual al 4ntreprinderii> completindependent de detaliile de implementare. %entru fiecare vedere a utili2atorilor asupra 4ntreprinderii estecreat un model de date conceptual local." (edere a utilizatoruluiconst 4n datele cerute de ctre un anumit utili2ator pentru a lua o deci2ie sau aefectua o anumit sarcin. e regul vederea unui utili2ator este o 2on funcional a 4ntreprinderii. Unutili2ator poate fi o persoan sau un grup de persoane care utili2ea2 4n mod direct sistemul.,ederile utili2atorilor se pot identifica utili2@nd diagrame de flu de date 9 care definesc 2onelefuncionale i eventual funciile individuale 9 sauDi prin chestionarea utili2atorilor> eaminareaprocedurilor> rapoartelor i o5servarea 4ntreprinderii.

    Fiecare model de date conceptual local cuprinde tipurile de entiti> tipurile de relaii> atri5utele> domeniileatri5utelor> cheile candidat i primare.Fiecare model de date conceptual local este susinut de ctre o documentaie> cum ar fi dicionarul de date>care este reali2at pe parcursul de2voltrii modelului.

    1.?.7 Fntreb%ri la capitolul 1.?

    ? escriei principalele fa2e implicate 4n proiectarea B.? Anali2ai rolul important al utili2atorilor 4n procesul de proiectare al 5a2elor de date.? escriei principalul o5iectiv al proiectrii conceptuale a 5a2elor de date.

    ? escriei ce repre2int o vedere a utili2atorului i cum pot fi identificate diferitele vederi.? Identificai principalele sarcini asociate proiectrii conceptuale a 5a2elor de date.? Identificai i descriei scopul documentaiei generate pe parcursul proiectrii conceptuale a

    5a2elor de date.

    1.A etodologia de proiectare logic% a bazelor de date pentru modelulrela&ional

    Proiectarea logic%este procesul de construire a unui model al informaiilor utili2ate 4n 4ntreprindere pe5a2a unui anumit model de date> dar independent de $3B i de alte consideraii de ordin fi2ic.

    1.A.1 Pasul 6. Construirea i (alidarea modelului de date logic pentru fiecare (edere a utilizatorilor

    Acest pas este 5a2at pe modelul de date conceptual al vederii utili2atorului asupra 4ntreprinderii (reali2at lapasul 1*. $e efectuea2 modificarea structurii modelului conceptual conform cerinelor modelului de daterelaional (conform cerinelor caracteristice unui sistem de gestionare relaional*.

    --

  • 7/23/2019 Baze de Datesdfsdf

    56/86

    Pasul 6.1 Transpunerea modelului de date conceptual local ntr#un model de date logic local

    $e rafinea2 modelul de date conceptual local prin eliminarea caracteristicilor nedorite.

    Pasul 6.1.1 liminarea rela&iilor de tip

    " relaie =# (de mai muli la mai muli* se descompune pentru a identifica o relaie intermediar. &elaia=# se 4nlocuiete cu dou relaii 1=.-xemplu,&elaia +iar1ace eclama%roprietate (fig. 1.6- a* este de cardinalitate =#> deoarece un 2iarpoate face reclam mai multor proprieti> iar unei proprieti i se poate face reclam in mai multe 2iare.&elaia se descompune conform figurii 1.6- 5> unde &eclama este o entitate sla5 a crei eisten depindede eistena celorlalte dou entiti tari.

    Fig. 1.6- &elaia de cardinalitate =# se descompune 4n relaii de cardinalitate 1=

    Apar dou tipuri de relaii noi 'istea2a i respectiv &eclamaIn care leag entitatea sla5 de cele entititari. Anali2ai constr@ngerile de participare din fig. 1.6- a i 1.6-. 5\

    Pasul 6.1.6 liminarea rela&iilor comple!e

    " relaie comple include cel puin trei tipuri de entiti. !a tre5uie descompus pentru a identifica orelaie intermediar. &elaia comple se 4nlocuiete cu un numr corespun2tor de relaii 5inare decardinalitate 1=. anume

    2rganizeaza) sociat+u i 3ine s?a identificat o entitate sla5 AcordXdeXInchiriere care este legat deentitile tari (iniiale* prin cele trei relaii 5inare de cardinalitate 1= identificate. Anali2ai constr@ngerilede participare di