Sunteți pe pagina 1din 163

Universitatea Transilvania din Braov Centrul de pregtire a Resurselor umane

Centrul Regional pentru nvmnt Deschis la Distan Specializarea: Informatic

BAZE DE DATE

Autor : Lector univ !r "aul IACOB Conf univ !r #ariana NEAGU

CUPRINS
0. Introducere Aplicaii tra!iionale %azate pe fi&iere' limitri 1. Sisteme de Gestiune a Bazelor de Date SGBD! $ $ Istoric)comentarii $ + Definirea sistemelor !e gestiune a %azelor !e !ate relaionale $ ( Regulile luiCo!! $ . Criterii minimale !e !efinire a unui S/0DR $ * A%stractizarea !atelor $ , Scheme) corespon!ene &i instane $ - In!epen!ena !atelor $ 2 "rincipalele componente ale unui S/0D $ 3 4%iectivele unui S/0D $ $1 5unciunile unui S/0D ". #odele de descriere a datelor $i modelarea conce%tual& + $ /eneraliti) enumerri + + #o!elare 67R + + $ Concepte !e %az + + + Restricii structurale + + ( Chei + ( #o!elul 667R + ( $ "ro%lemele mo!elului 67R + ( + Superclase &i su%clase ale tipurilor !e entitate + ( ( Specializarea + ( . /eneralizarea + ( * Con!iii impuse specializrii &i generalizrii '. Al(e)ra rela*ionala ( $ Structura relaionala a !atelor ( $ $ Domeniu ( $ + Relaie ( $ ( Atri%ut ( $ . 4peratorii mo!elului relaional ( + Alge%ra relaional &i e8tensiile sale +. ,im)a-e de intero(are comerciale modelul rela*ional! . S/, . $ Istoric) o%iective . + Clauze &i operatori S9L . + $ Clauzele S6L6C:) 5R4# &i ;<6R6 . + + 4r!onarea tuplelor =clauza 4RD6R 0> . + ( /ruparea rezultatelor =clauza /R4?" 0> . + . Interogri pe mai multe ta%ele . + * Su%interogri . + , 4peratorii A@> &i ALL . + - 4peratorul 6AIS:S 0. Normalizarea

pag ( * , $1 $+ $. $* $* $2 +1 +* +($ (. (* (, ((2 (2 (2 (3 .1 .$ .$ .3 *1 ** *, *2 *3 ,+ ,.

* $ Re!un!ana informaiilor &i anomalii !e actualizare ,, * + Depen!ene funcionale ,3 * ( 5orme normale * ( $ "rima form normal -+ * ( + A !oua form normal -. * ( ( A treia forma normal -, * ( . 5orma normal 0oBce7Co!! -, 1. G2id de %roiectare al )azelor de date rela*ionale , $ #eto!ologia , $ $ #eto!ologia proiectrii %azelor !e !ate 21 , $ + "rezentarea meto!ologiei 21 , $ ( Crearea mo!elului logic 2+ , + "roiectarea logic a %azei !e !ate C 68emplu 32 , ( ?tilizarea meto!ologiei !e proiectare a %azelor !e !ate relaionale $1$ , ( $ Ane8a Documentarea tipurilor !e entiti Dn vieE7urile Locatari &i Cheltuieli $$2 , ( + Ane8a Documentarea atri%utelor $$3 , ( ( Ane8a Documentarea tipurilor !e relaii !in vieE7urile FLocatariG &i FCheltuieli $+1 , ( . Ane8a Documentarea !omeniilor atri%utelor $+$ , ( * Ane8a Descrierea relaiilor !in vieE7urile FLocatariG &i FCheltuieli $+$ , ( , Ane8a Regulile !ate !e Dntreprin!ere Dn cazul mo!elului FLocatariG &i FCheltuieli $++ , ( - Ane8a #o!elul glo%al !e !ate al sistemului Asociaia !e Locatari $++ 3. Baze de date distri)uite - $ /eneralii $+. - + Arhitectura unui S/0D !istri%uit $+, - ( "roiectarea unei %aze !e !ate relaionale !istri%uite $+3 - . Alocarea !atelor $(1 - * :ransparene Dn S/0DD $(( 4. Securitate $i inte(ritate 2 $ Integritate $.+ 2 + Securitate $., 5. 6ranzac*ii $i concuren*&. 3 $ :ranzacii $*$ 3 + "roprietile tranzaciilor $*+ 3 ( Controlul concurenei $*+ 3 . :ehnici optimiste $*2 3 * Controlul recuperrii $*3 6est de autoe7aluare $,+

Introducere
A%lica*ii tradi*ionale )azate %e 8i$iere9 limit&ri "entru o mai %un Dnelegere a evoluiei prelucrrilor !e !ate vom rezerva cteva rn!uri la Dnceputul cursului nostru pentru o scurt trecere Dn revist a meto!elor tra!iionale !e prelucrare a masivelor !e !ate) a&a7numitele siteme tra!iionale %azate pe fi&iere n primii ani) calculatoarele erau utilizate mai ales pentru a !uce la %un sfr&it calcule la%orioase Dn care nu erau implicate cantiti prea mari !e !ate) a&a7 numitele calcule &tiinifice 4!at cu apariia lim%aHelor !e nivel Dnalt &i a posi%ilitii stocrii !e mari cantiti !e informaie pe suport magnetic a!resa%il =memorie e8ternaI s7a pus &i pro%lema eficientizrii prelucrrii acestora De !ata aceasta nu calculele cre&teau costul Dn timp al prelucrrilor ci manipularea !atelor) respectiv regsirea) actualizarea) etc S7a constatat ca un factor important al cre&terii eficienei prelucrrilor este mo!ul !e organizare al informaiilor De aici &i pn la a gn!i sisteme unitare !e reprezentare &i manipulare a masivelor !e !ate n7a mai fost !ect un pas "rima variant !e prelucrare a cantitilor mari !e informaie s7a %azat pe organizarea !atelor su% forma Dnregistrrilor Dn fi&iere tra!iionale pe suport a!resa%il n aceast variant se ela%orau programe !e aplicaie care !efineau &i manipulau propriile !ate &i aveau Dn general ca scop ela%orarea !e rapoarte pentru !iver&i %eneficiari Aceste programe au avut menirea !e a Dnlocui prelucrarea sistemelor !e fi&iere manuale care mai funcioneaz &i astzi Dn unele locuri cum ar fi ca%inetele me!icale A&a!ar prelucrrile oferite !e un sistem tra!iional %azat pe fi&iere copiau Dn mare masur meto!ele manuale !e prelucrare 6vi!ent c puterea !e calcul &i memorare caracteristic sitemelor !e calcul au fcut ca gama prelucrrilor s creasc simitor) la aceasta a!ugn!u7se viteza &i sigurana prelucrrilor Cu toate ca la momentul respectiv a%or!area tra!iional %azat pe fi&iere a fost un evi!ent progres) putem s amintim aici &i o serie !e limitri ale acestui sistem !e prelucrare a !atelor: Separarea &i izolarea !atelor Duplicarea !atelor Depen!ena !atelor Incompati%ilitatea fi&ierelor Interogri fi8e J proliferarea aplicaiilor Comentm pe scurt Dn continuare semnificaia acestora Separarea i izolarea datelor Accesul la !ate care se afl Dn fi&iere !iferite este !ificil !eoarece ca!e Dn sarcina programatorului s sincronizeze Dnregistrrile !in fi&iere Dn a&a fel Dnct !atele e8trase s fie corecte Duplicarea datelor .

n situaia Dn care se realizeaz prelucrri !escentralizate !e !ate) pe compartimente) este posi%il s fie necesar !uplicarea !atelor :otu&i !uplicarea este !e evitat !in urmtoarele motive: 7necesit costuri mari Dn timp &i spaiu !e memorie 7!uce la pier!erea integritii !atelor Datele nu mai sunt consistente) !eci nu se mai poate conta pe ele Dependena datelor A&a cum am su%liniat !eHa) structura fizic &i mo!ul !e memorare al !atelor este !efinit Dn fiecare program !e aplicaie Dn parte 6ste evi!ent ct !e !ificile sunt schim%rile Dn structura !atelor :oate programele tre%uie aHustate la noua structur !e !ate 4 simpl mo!ificare a lungimii unui cmp poate genera pro%leme Depen!ena se refer a&a!ar la !epen!ena program7!ate Incompatibilitatea fiierelor Aceast limitare se trage tot !in !epen!ena !e programe a structurii fi&ierelor Structura fiin! !escris Dn programe ea !epin!e !e lim%aHul !e programare De e8emplu) structura unui fi&ier !eclarat Dntr7un program C404L !ifer !e structura unui fi&ier generat !e un program C Dac e necesar prelucrarea !e !ate !in am%ele fi&iere) programatorul este o%ligat s scrie programe !e conversie) pentru a a!uce fi&ierele la un format comun posi%il !e prelucrat Interogri fixe / proliferarea aplicaiilor Deoarece prelucrarea masivelor !e !ate a !evenit mai u&oara &i mai rapi!a cu aHutorul calculatorului) %eneficiarii au lrgit gama prelucrrilor lansn! interogri noi sau mo!ificn! interogri mai vechi) pentru o%inerea !e informaii mai comple8e 4rice interogare nou sau orice mo!ificare a unei interogri mai vechi se rezolv Dn sistemele tra!iionale prin realizarea !e noi programe !e ctre programatorul !e aplicaie Inutil !e su%limiat ct !e costisitoare sunt acestea ?n efect secun!ar era c se Dnmuleau programele aplicaiei &i !e multe ori &i fi&ierele !e prelucrat :ntre)&ri reca%itulati7e $I +I $I +I n ce mo! aHut calculatorul prelucrrile !e !ateK Care sunt inconvenientele sistemelor !e fi&iereK "relucrrile !e !ate pe calculator se fac mai rapi! &i fr gre&eli Sistemele !e fi&iere !uc la : 7 7 Duplicarea !atelor Depen!ena !atelor

Ras%usuri

7 Incompati%ilitatea fi&ierelor 7 Interogri fi8e J proliferarea aplicaiilor

Ca%itolul 1 Sisteme de Gestiune a Bazelor de Date SGBD!


1.1. Istoric9 comentarii 6voluia meto!elor &i tehnicilor !e organizare a !atelor a fost !eterminat !e necesitatea !e a avea un acces ct mai rapi! &i mai u&or la un volum !in ce Dn ce mai mare !e informaii precum &i !e perfecionarea echipamentelor !e culegere) memorare) transmitere &i prelucrare a !atelor 68ist afirmaii conform crora sistemul !e %aze !e !ate D&i are r!cinile Dn anii L,1) Dn proiectul !e aselenizare Apollo Deoarece pe atunci nu e8ista un astfel !e sistem) @orth American Aviation =actualmente RocMEell InternationalI a !ezvoltat) Dn calitate !e principal cola%orator la proiect) un pachet !e programe cunoscut su% numele /?A# =/eneralize! ?p!ate Access #etho!I) care se %aza pe !ate organizate Dn mo! ierarhic #o!elul !e !ate ierarhic D&i are originea Dn acest proiect La miHlocul anilor L,1) un pas Dnapoi s7a facut prin ela%orarea sitemului I#S =Information #anagement SBstemI) !e ctre I0# Dn cola%orare cu @AA) pornin! !e la sistemul /?A# "asul Dnapoi se !atoreaza faptului c manipularea ierarhiilor !e !ate a fost restrns la organizarea secvenial a !atelor =o cerin !ictat !e piaa la acel momentI In aceea&i perioa!a /eneral 6lectric a !ezvoltat sistemul IDS =Integrate! Data StoreI Con!ucator !e proiect: Charles 0achmann "roiectul a con!us la mo!elul !e !ate reea =numele se !atoreaza ca &i Dn mo!elul prece!ent) mo!ului !e organizare a !atelorI n acea perioa!a se cuta eficientizarea manipulrii !atelor &i se Dncerca sta%ilirea unor stan!ar!e n $3,* C4DAS>L =the Conference 4n DAta S>stems LanguagesI care reunise reprezentani ai guvernului ?SA &i reprezentani ai lumii afacerilor &i comerului) a reu&it s sta%ileasc un grup !e lucru =care a avut iniial numele List "rocessing :asM 5orceI cunoscut !in $3,- su% numele Data 0ase :asM /roup =D0:/I Sarcina acestui grup era s sta%ileasc specificaii cu rol !e stan!ar!e pentru un me!iu care ar permite crearea !e %aze !e !ate &i manipularea !atelor Conceptul !e %az !e !ate s7a !efinit Dn $3,3 cu ocazia prezentrii primului proiect !e raport C4DAS>L =Raportul final s7a prezentat Dn $3-$I I!eea principal Dn organizarea !atelor se %aza pe e8istena a trei componente !e %az: schema !e reea 7 care reprezenta organizarea logica a Dntregii %aze !e !ate su%schema 7 care reprezenta o parte a %azei !e !ate a&a cum e vazut !e utilizator sau !e programele !e aplicaie

un lim%aH !e gestionare a !atelor 7 care !efinea caracteristicile !atelor) structura lor &i care manipula !atele "entru stan!ar!izare) s7au propus trei lim%aHe: un lim%aH !e !efinire a !atelor =LDDI la nivel !e schem un lim%aH tor la nivel !e su%schem un lim%aH !e manipulare a !atelor =L#DI Cu toate c nu a fost a!optat formal !e A@SI =American @ational Stan!ar! InstituteI propunerea D0:/ a fost aplicat Dntr7o serie !e sisteme !ezvoltate ulterior &i ea st la %aza conceptului mo!ern !e %az !e !ate "roiectul ierarhic &i cel prezentat !e C4DAS>L reprezint prima generaie !e Sisteme !e /estiune a 0azelor !e Date =S/0DI n $3-2 6 5 Co!! !e la I0# Research La%oratorB a ela%orat o lucrare care a avut o influen covr&itoare Dn !ezvoltarea %azelor !e !ate Lucrarea trata !espre mo!elul !e !ate relaional De aici Dncolo s7au proiectat multe sisteme !intre care mentionam SBstem R !ezvoltat la I0#Ls San Nose Research La%oratorB !in California) la sfr&itul anilor L-1 Acest proiect a !us la: !ezvoltarea unui lim%aH structurat !e interogare =numit S9LI care !e atunci a !evenit un stan!ar! pentru sistemele relaionale' pro!ucerea Dn anii L21 !e sisteme comerciale arhicunoscute !intre care menionm: D0+ &i S9LJDS !e la I0# &i 4RACL6 !e la 4RACL6 Corporation Alte e8emple !e sisteme relaionale: I@/R6S !e la Relational :echnologB Inc ) Informi8 !e la Informi8 SofEare Inc ) SB%ase !e la SB%ase Inc Dintre sitemele relaionale pentru microcalculatoare enumerm aici: "ara!o8 &i !0ase IO !e la 0orlan!) Access !e la #icrosoft) 5o8"ro &i R:%ase !e la #icrorim :oate acestea constituie generatia a !oua !e S/0D 1.". De8inirea sistemelor de (estiune a )azelor de date rela*ionale ntr7o prim Dncercare !e !efinire) se poate consi!era un sistem !e gestiune a %azelor !e !ate relaionale =S/0DRI ca reprezentn! un S/0D care utilizeaz !rept concepie !e organizare a !atelor mo!elul relaional Astfel spus) un S/D0R reprezint un sistem care suport mo!elul relaional Definiia !e mai sus este prea general pentru a putea fi operaional) !eoareca mo!ul !e implemantare a mo!elului relaional !ifer) !e regul att Dntre !iferitele S/0DR) ct &i Dn raport cu mo!elul F teoreticG) cel !efinit Dn ca!rul teoriei relaionale) !atorit eforturilor pro!uctorilor !e a realiza sisteme ct mai perfomante care s satisfac cerinele &i e8agerrile utilizatorilor Ct !e aproape =sau !e !eparteI !e mo!elul relaional teoretic tre%uie s fie mo!elul !atelor efectiv utilizat !e S/0D pentru a putea afirma

c S/0D7ul respectiv utilizeaz sau nu mo!elul relaional) !eci este sau nu S/0DRK Diversitatea mo!elelor relaionale operaionale au !eterminat) Dn mo! natural e8istana unei mari !iversitii !e S/0DR) pentru a cror prezentare a fost necesar nuanarea terminologiei Au aprut o serie !e sintagme precum: sisteme cu interfa relaional) sisteme pseu!orelaionale) sisteme complet relaionale Conceptele specifice organizrii!atelor Dn fi&iere) S/0DR &i teoriei relaionale Dntre care se pot sta%ili analogii 4rganizarea !atelor Dn fi&iere 5i&ier Recor!=DnregistrareI Cmp S/0DR :a%el Linie Coloan :eoria relaional Relaie :uplu Atri%ut

n general) conceptele utilizate la prezentarea S/0DR &i a mo!elelor relaionale operaionale !ifer !e cele !in ca!rul teoriei relaionale 5igura !e mai sus prezint comparativ conceptele organizrii !atelor Dn fi&iere) concepte S/0DR &i ale teoriei relaionale 5aptul c se pot sta%ili analogii Dntre conceptele organizrii !atelor Dn fi&iere &i conceptele relaionale) i7au !eterminat pe unii pro!uctori s prezinte sisteme fr nici o legtur cu mo!elul relaional !rept S/0DR) Dn scopul asigurrii succesului comercial al acestor sisteme 1.'. Re(ulile lui Codd Definirea unui S/0DR impune o !etaliere a caracteristicilor pe care tre%uie s le prezinte un S/0D pentru a putea fi consi!erat relaional n acest sens) Co!! a formulat $( reguli care e8prim cerinele pe care tre%uie s le prezinte un S/0D ca s fie relaional De&i reguli au strnit o serie !e controverse) eu le voi prezenta Dn continuare) ele fiin! !eose%it !e utile Dn evaluarea unui S/0DR R0: Regula privind gestionarea datelor la nivel de relaie Sistemul trebuie s gestioneze baza de date numai prin mecanisme relaionale. Acest lucru Dnseamn c sistemul tre%uie s7&i Dn!eplineasc toate funciile prin manipulri Dn care unitatea !e informaie s fie mulimea =relaiaI) a!ic s utilizeze lim%aHe) precum S9L) care s opereze la un moment !at pe o Dntreag relaie Deci S/0D nu tre%uie s accepte operaii non7relaionale care s Dn!eplineasc operaiile !e !efinire &i manipulare a !atelor ?nele sisteme utilizeaz mecanisme releionale numai pentru o parte !in funcii) Dn special pentru interogare Aceste sisteme se numesc sisteme cu interfa relaional i nu S/0DR

R1: Regula privind reprezenterea logic a datelor Toate datele din daza de date relaional trebuie s fie reprezentate explicit la nivel logic, ntr!un singur mod, i anume ca valori n tabele de date. Aceste lucru Dnseamn c toate !atele tre%uie s fie memorate &i prelucrate Dn acela&i mo! Informaiile privin! numele !e ta%ele)coloane) !omenii) !efiniiile ta%elelor virtuale) restricii !e integritate tre%uie s fie memotare tot Dn ta%ele !e !ate =cataloageI Referina la Lnivelul logicL Dnseamn c construcia fizic nu este reprezentat &i nu necesit e8plicaie R2: Regula privind garantarea accesului la date. 4rice !at !in %aza !e !ate relaional tre%uie s poat fi accesat prin specificarea numelui !a ta%el) valorii cheii primare &i numelui !e coloan Aceast regul e8prim cerina ca lin%aHul !e cereri al S/0DR s permit accesul la fiecare valoare atomic !in %aza !e !ate R3: Regula privind valorile null Sistemele tre%uie s permit !eclararea s manipularea sistematic a valorilor null; cu semnificaia unor !ate lips sau inaplica%ile Oalorile null) care !ifer !e &irurile !e caractere L spaiuL sau !e &irurile vi!e !a caractere sunt !eose%it !e importante Dn implementarea restriciilor !e integritate =integritatea entitii &i integritatea refereanialI R4: Regula privind metedatele Descrierea bazei de date trebuie s se prezinte la nivel logic n acalai mod cu descrierea datelor propiu!zise, astfel nc"t utilizatorii autorizai s poat descrierii bazei de date aceleai operaii ca i asupra datelor obi#nuite. Acest regul specific c tre%uie s e8iste un unic lim%aH !e manipulare a mete!atelor &i a !atelor propui7zise) mai mult) e8ist o unic structur logic folosit pentru a !epozita informaiile !e sistem Sisteme nu tre%uie s fac !iferenieri Dn !efinirea &i tratarea !atelor &ia meta!atelor) utilizn! o singur structur) &i anume cea relaionala R5: Regula privind facilitaile limba elor utilizate ?n sistem relaional tre%uie s fac posi%il utilizarea mai multor lim%aHe) Dn mai multe mo!uri :re%uie s e8iste Dns cel puin un lim%aH !e nivel Dnalt ale crui instruciuni s poat e8prima oricare !in urmtoarele operaii: !efinirea ta%elelor !e !ate) !efinirea ta%elelor virtuale) manipularea !atelor =interactiv !au prin programI) !efinirea restriciilor !e integritate) autorizarea accesului) precizarea limitelor tranzaciilor A se nota aici c noul stan!ar! 4 <I pentru S9L furnizeaz toate aceste funcii) !eci orice lim%aH care accept acest stan!ar! va satisface automat aceast regul

R!: Regula privind actualizarea tabelelor virtuale :oate ta%elele virtuale care teoretic sunt posi%il !e actualizat tre%uie s poat fi efectiv actualiza%ile @u toate atri%utele !in ca!rul unei ta%ele virtuale) !eci nu toate ta%ele virtuale sunt toeretic actualiza%ile R": Regula privind inserrile# modificrile $i $tergerile %n baza de date Sistemul tre%uie s ofere posi%ilitatea manipulrii unei ta%ele =!a %az sau virtualI nunumai Dn ca!rul operaiilor !e regsire) ci &i Dn aciuni !e inserare) mo!ificare &i &tergere a !atelor Aceast regul e8prim cerina ca prin operaiile Dn care se schim% %azei !a !ate s se lucreze la un moment !at pe o Dntreag relaie R&: Regula privind independena fizic a datelor "rogramele !e aplicaie nu tre%uie s fie afectate !e schim%rile efectuate Dn mo!ul !e reprezentare a !atelor sau Dn meto!ele !e acces 4 schim%are a structurii fizice a !atelor nu tre%uie s %locheze funcionarea programelor !e alpicaie R': Regula privind independena logic a datelor "rogramele !e aplicaie nu tre%uie s fie afectate !e schim%rile efectuate asupra relaiilor %azei !e !ate) schim%ri care conserv !atele &i care toeretic garanteaz vala%ilitatea programelor !e apicaie e8istente R10: Regula privind restriciile de integritate Restrictiile !e integritate tre%uie s fie !efinite Dn lim%aHul utilizat !e sistem pentru !efinirea !atelor i s fie memorate Dn ca!rul %azei !e !ate &i nu Dn ca!rul programului !e aplicaie R11: Regula privind distribuirea geografic a datelor $imba#ul de manipulare a datelor utilizat de sistem trebuie s permit ca, n situaia n care datele sunt distribuite, programele de aplicaie s fie logic aceleai cu cele utilizate n cazul n care datele sunt fizic centralizate. ?tilizatorul tre%uie s perceap !atele ca fiin! centralizate Sarcina !e localizare a !atelor) atunci cn! acestea sunt !istri%uite geografic precum &i sarcina recompunerii !atelor tre%uie s revin sistemului &i nu utilizatorului R12: Regula privind prelucrarea datelor la nivelul de baz Dac sistemul pose! un lim%aH !e %az =!e nivel sczutI orientat pe prelucrare !e recor!uri =tupuriI &i nu pe prelucrarea mulimiilor =relaiilorI) acest lim%aH nu tre%uie s fie utilizat pentru a se evitarestriciile !e integritate sau restriciile intro!use prin utilizarea lim%aHelor !e nivel Dnalt) adic accesul la toate dazele va fi controlat de S%&D', altfel integritate bazelor de date nu

$1

poate fi compromis fr cunoaterea utilizatorului sau a administratorului bazei de date. "e parcursul anilor regulile lui Co!! au generat o seam !e controverse Cteva argumente sunt c aceste reguli nu sunt mai mult !ect ni&te e8erciii aca!emice ?nele reven!icri ale pro!uselor e8istente sunt c ele pot in!eplini cea mai mare parte !in reguli) !ar nu toate Aceast !iscuie a generat Dntr7o !isput Dntre utilizatori &i teoreticienii prietilor eseniale ale unui S/0DR "entru a accentua implicaia regulilor lui Co!! Dn analiza unum S/0DR) aceste reguli au fost reorganizate Dn cinci categorii) &i anume: $I Reguli fun!amentale) +I Reguli structurale) (I Reguli privin! integritatea !atelor) .I Reguli privin! manipularea !atelor) *I Reguli privin! in!epen!ena !atelor 1.+. Criterii minimale de de8inire a unui SGBDR @ici unul !intre S/0DR !isponi%ile astzi nu respect Dntrutotul cerinele e8primate !e Co!!) Dn ca!rul celor $( reguli De aceea pentru caracterizarea unui S/0D nu sunt utilizate regulile lui Co!!) fiin! formulate Dn schim% o serie !e cerine minimale pa care tre%uie s la satisfac un sistem !e gestiune a %azelor !e !ate pentru a putea fi consi!erat releional ?n S/0D este minimal relaional !ac satisface urmtoarela con!iii: $ :oate !atele !in ca!rul relaiei sunt reprezentate prin valori Dn ta%ele) + @u e8ist pointeri o%serva%ili !e ctre utilizatori Dn ta%ele) Dn sensul c operaiile cu releii nu fac apel la pointeri) in!ec&i) fi&iere inverse) etc ( Sistemul suport operatori relaionali !e proiecie) selecie &i Hoing natural) fr limitri Dmpuse !e consi!erente interne =cum ar fi !e e8emplu) necesitetea in!e8rii atri%utelorI ?nitatea !e informaie ciu care se lucreaz Dn ca!rul acestor operaii tre%uie s fie relaia ?n S/0D este com%let rela*ional !ac este minimal ralaional &i satisface Dn plus urmtoarele con!iii: . Sistemul suport toate operaiile !e %az ale alge%rei relaionale) fr limitri Dnpuse !e consi!erente interne * Sistemul suport !ou !intre restriciile !e integritate !e %az al mo!elului relaional &i anume unicitatea cheii unei relaii&i restricia referenial ?n S/0D este %seudorela*ional !ac satisface numai con!iiile $ &i ( ?n S/0D cu inter8a*&rela*ional& este un S/0D are satisface con!iiile $ &i ( ) cu o%servaia c cerina ( 6ste Dn!eplinit numai Dn raport cu funcia !e interogare

$$

n ultimii ani) ca rspuns la necesitatea !e a cre&te comple8itatea aplicaiilor cu %aze !e !ate =DncuraHat &i !e progresele aprute Dn programare o!ata cu programarea orientata o%iectI au aprut mo!elul !e !ate orientat o%iect =4%Hect74riente! Data #o!el 7 44D#I &i mo!elul !e !ate relaional e8tins =68ten!e! Relational Data #o!el 7 6RD#I Cu toate ca mo!elul !e !ate ce sta la %aza noilor mo!ele nu este atat !e clar ca Dn cazul mo!elului relaional) se poate consi!era ca aceste !in urma !ezvoltari reprezinta generatia a treia !e S/0D In esenta) conceptul !e )aza de date poate fi !efinit ca fiin! o colectie partaHata !e !ate aflate Dn inter!epen!enta logica =impreuna cu o !escriere a acestor !ate &i a relatiilor !intre eleI) colectie !esemnata pentru a rezolva nevoia !e informatizare a unei intreprin!eri =sau organizatiiI 0aza !e !ate tre%uie sa Dn !eplineasca urmatoarele con!itii: 7sa asigure o in!epen!enta sporita a !atelor fata !e programe &i invers' 7structura %azei !e !ate tre%uie astfel conceputa Dn cat sa asigure informatiile necesare &i suficiente pentru cerintele !e informare &i !ecizie' 7 sa asigure o re!un!anta minima &i controlata a !atelor' 7 sa permita accesul rapi! la informatiile stocate Dn %aza 0azele !e !ate sunt e8trem !e variate Dn functie !e criteriile luate Dn consi!erare "rezentam cateva criterii !e clasificare: 7 !upa orientare: generalizate) specializate' 7 !upa mo!elul !e !ate: ierarhice) retele) relaionale) orientate o%iect' 7 !upa amploarea geografica: locale) !istri%uite' @umim SGBD Sistem de Gestiune al Bazelor de Date! un sistem softEare care permite) pe !e o parte) !efinirea) crearea &i Dn tretinerea %azei !e !ate &i pe !e alta parte) permite accesul controlat la informatiile !in %aza !e !ate Dn cauza S/0D este format !in programe !e softEare care interactioneaza cu programele !e aplicaie ale utilizatorilor &i cu %aza !e !ate Sistemul !e gestiune al %azei !e !ate asigura realizarea urmatoarelor activitati: 7 !efinirea structurii %azei !e !ate' 7 Dn carcarea !atelor Dn %aza !e !ate' 7 accesul la !ate =interogare) actualizareI' 7 Dn tretinerea %azei !e !ate =colectarea &i reutilizarea spatiilor goale) refacerea %azei !e !ate Dn cazul unui inci!entI' 7 reorganizarea %azei !e !ate =restructurarea &i mo!ificarea strategiei !e accesI' $+

7 integritatea !atelor' 7 securitatea !atelor Asa!ar) sistemul !e gestiune al %azei !e !ate apare ca un sistem comple8 !e programe care asigura interfata Dn tre o %aza !e !ate &i utilizatorii acestuia Clasificarea S/0D se poate realiza !in mai multe puncte !e ve!ere 1. Din punctul !e ve!ere al sistemelor !e calcul pe care se implementeaza S/0D pot fi: sisteme !e gestiune pentru calculatoarele mari' sisteme !e gestiune pentru minicalculatoare' sisteme !e gestiune pentru microcalculatoare In prezent se manifesta ten!inta ca marea maHoritate a sistemelor !e gestiune a %azelor !e !ate sa fie compati%ile pe platforme cat mai largi !e sisteme !e calcul ". Din punctul !e ve!ere al lim%aHului pe care il utilizeaza) sunt: sisteme cu lim%aH gaz!a' sisteme cu lim%aH autonom Sistemele cu lim%aH gaz!a realizeaza activitatile !e creare) actualizare &i interogare a %azei !e !ate) utilizan! lim%aHele !e nivel Dn alt sau e8tensii ale acestora) proprii sistemului !e calcul pe care se implementeaza %aza !e !ate AvantaHul acestor sisteme consta Dn posi%ilitatile sporite ce le ofera lim%aHele !e nivel Dn alt la ela%orarea unor proce!uri comple8e Sistemele cu lim%aH gaz!a prezinta !ezavantaHul ca formularea cerintelor nu este atit !e simplificata ca Dn cazul sistemelor cu lim%aH autonom '. Din punctul !e ve!ere al conceptiei !e organizare a !atelor pe care le gestioneaza) S/0D se clasifica Dn : sisteme !e gestiune a %azelor !e !ate cu structuri ierarhice &i retea' sisteme !e gestiune a %azelor !e !ate relaionale' sisteme !e gestiune a %azelor !e !ate orientate o%iect +. Din punctul !e ve!ere al mo!ului !e localizare a %azelor !e !ate avem: sisteme !e gestiune a %azelor !e !ate centralizate' sisteme !e gestiune a %azelor !e !ate !istri%uite #area maHoritate a sistemelor !e gestiune aprute Dn ultima perioa!a !ispun &i !e o componenta !e gestiune !istri%uita a !atelor 1.0. A)stractizarea datelor ?n scop important al unui sistem !e gestiune a %azelor !e !ate este sa poata asigura o viziune a%stracta asupra realitatii 6ste necesar sa se retina !in multimea vasta !e informatii !oar acele informatii care sunt necesare unei anumite aplicaii Se poate face referire spre e8emplu la Dn cercarea !e mo!elare a unei aplicaii Dntr7o intreprin!ere :re%uie mo!elate Lo%iecteleL &i relatiile !intre ele @u

$(

realitatea comple8a Dn totalitatea ei intra Dn !iscutie ci !oar o mica parte a ei) constituita !in anumite Lo%iecteL &i pentru acele o%iecte se iau Dn consi!erare !oar o parte !in caracteristici =acele caracteristici care sunt importante pentru aplicaia Dn cauzaI Astfel Dn cazul mo!elarii Lo%iectuluiL =sau entitatiiI anga#at) tre%uie alese !oar acele proprietati =sau atri%uteI care intereseaza Acestea ar putea fi) !e e8emplu: numele, adresa, salariul 4 multime impresionanta !e informatii) care contri%uie la !escrierea unei persoane anume) nu sunt luate Dn seama) !eoarece nu prezinta interes pentru intreprin!ere De e8emplu) nu intereseaza !aca persoana are ochii al%astri) !aca este %lon!a sau %runeta) !aca asculta cu placere muzica sau !aca este o fire sentimentala #ai mult !ecat faptul ca realitatea este reprezentata co!ificat &i foarte simplificat) !eoarece %aza !e !ate este o resursa partaHata) este foarte pro%a%il ca fiecare utilizator sa !oreasca !oar o parte !in informatiile stocate) functie !e aplicaia pe care o !ezvolta "entru a se rezolva aceste cerinte) se apeleaza la reprezentarea pe nivele a organizarii informatiilor Dntr7o %aza !e !ate In general este acceptata arhitectura pe trei nivele A@SI7S"ARC D0:/ a propus Dn $3-$ reprezentarea pe !oua nivele a organizarii !atelor =s7 au utilizat termenii !e schema &i su%schemaI 4 arhitectura &i o terminologie asemanatoare au fost propuse !e A@SI prin S"ARC =Stan!ar!s "lanning An! RePuirements CommitteeI Dn $3-* S7au propus atunci trei nivele !e a%stractizare &i un !ictionar !e !ate Componentele %azei !e !ate pot fi structurate pe trei nivele) Dn functie !e clasa utilizatorilor implicati &i !e viziunea asupra structurarii informatiei) !upa cum urmeaza: 7 ni7elul lo(ic de 7izualizare 7ie=! sau ni7elul e>tern 6ste !at !e viziunea programatorului !e aplicaii) care realizeaza programele !e aplicaii pentru manipularea !atelor la nivel !e structura logica =su%schemaI corespunzatoare !escrierii !atelor aplicaiei' .ni7elul conce%tual =(lo)alI 6ste !at !e viziunea a!ministratorului %azei !e !ate) care realizeaza structura conceptuala =schemaI corespunzatoare !escrierii Dntregii %aze !e !ate &i a!ministreaza componentele %azei !e !ate Acest nivel !escrie ce !ate sunt memorate Dn %aza !e !ate &i ce relatii sunt sta%ilite Dntre !ate @ivelul conceptual reprezinta: 7toate entitatile) atri%utele lor &i relatiile !intre ele' 7restrictiile impuse !atelor 7informatiile semantice !espre !ate 7informatiile privitoare la securitatea &i integritatea !atelor .ni7elul 8izic 6ste !at !e viziunea inginerului !e sistem care realizeaza structura fizica corespunzatoare !escrierii !atelor pe suportul fizic =perifericI

$.

Acest nivel !escrie cum sunt memorate !atele Dn %aza !e !ate @ivelul intern se ocupa !e: 7alocarea spatiului !e memorie pentru !ate &i in!e8i' 7!escrierea Dnregistrarilor pentru memorare' 7plasarea Dnregistrarilor pe suport' 7tehnicile !e compresie &i !e criptare a !atelor

?tilizator $

?tilizator +

?tilizator n

@ivel e8tern

OieE $

OieE +

OieE n

@ivel conceptual

Schema conceptuala

@ivel intern

Schema interna

4rganizarea la nivel fizic a !atelor

0aza !e !ate

?i(ura 1.1. Arhitectura A@SI7S"ARC pe trei nivele 1.1. Sc2eme; cores%ondente $i instante Descrierea generala a unei %aze !e !ate se numeste sc2ema )azei de date Conform nivelelor !e a%stractizare a !atelor e8ista trei tipuri !e scheme pentru fiecare %aza !e !ate La nivelul cel mai Dnalt e8ista =in generalI mai multe sc2eme e>terne =numite &i su)sc2emeI care !escriu !iferitele vieE7uri ale %azei !e !ate La nivelul conceptual e8ista sc2ema conce%tuala iar la nivelul cel mai !e Hos !e a%stractizare e8ista sc2ema interna

$*

"entru fiecare %aza !e !ate o singura schema conceptuala !escrie !atele &i relatiile Dntre ele) precum &i restictiile !e integritate Schemei conceptuale ii corespun!e o schema interna care !escrie organizarea fizica a !atelor S/0D realizeaza corespon!enta Dntre cele trei nivele !e a%stractizare) realizan! corespon!enta Dntre cele trei tipuri !e scheme Astfel cores%ondenta conce%tual < intern leaga schema conceptuala !e schema interna Datorita acestei corespon!ente se i!entifica Dnregistrarea sau com%inatia !e Dnregistrari la nivel fizic) care constituie @nre(istrarea lo(ica Dn schema conceptuala) impreuna cu restrictiile !e integritate corespunzatoare Analog) fiecare schema e8terna este legata !e schema conceptuala prin cores%ondenta e>tern < conce%tual Aceasta corespon!enta permite S/0D sa faca legatura Dntre numele !in vieE7urile utilizator &i partea corespunzatoare relevanta !in schema conceptuala 6ste !e retinut ca tre%uie sa facem !istinctie Dntre !escrierea %azei !e !ate =schema %azei !e !ateI &i %aza !e !ate propriu7zisa @umim instanta cazul! unei )aze de date !atele aflate Dn %aza !e !ate la un anumit moment !at Altfel spus) mai multe instante pot sa corespun!a aceleiasi scheme conceptuale pentru o %aza !e !ate

1.3.

Inde%endenta datelor

?n o%iectiv maHor al arhitecturii pe trei nivele !e a%stractizare este realizarea in!epen!entei !atelor 4 aplicaie) Dn general) este !epen!enta !e !ate Dn sensul ca mo!ificarea structurii !e memorare a !atelor sau a strategiei !e acces la !ate afecteaza &i aplicaia In!epen!enta !atelor fata !e aplicaie este totusi necesara cel putin !in urmatoarele consi!erente: 7!iferite aplicaii au nevoie !e viziuni !iferite asupra acelorasi !ate' 7a!ministratorul %azei !e !ate tre%uie sa ai%a li%ertatea !e a schim%a structura !e memorare sau strategia !e acces) ca rspuns la cerinte =schim%ari !e stan!ar!e) prioritatile aplicaiilor) unitatile !e memorare etc I) fara a mo!ifica aplicaiile e8istente) %aza !e !ate e8istenta) precum &i programele !e e8ploatare a ei) care au fost folosite o perioa!a !e timp &i care reprezinta o investitie maHora la care nu tre%uie sa se renunte prea usor De aceea) se impune ca atunci can! apar noi cerinte Dn ca!rul sistemului informational) sistemele informatice sa poata functiona cu programele &i proce!urile e8istente) iar !atele e8istente sa poata fi convertite In!epen!enta !atelor tre%uie privita !in !oua puncte !e ve!ere: in!epen!enta fizica &i in!epen!enta logica a !atelor In!epen!enta fizica a !atelor face ca memorarea !atelor &i tehnicile fizice !e memorarea sa poata fi mo!ificate fara a !etermina rescrierea programelor !e

$,

aplicaie Asa!ar in!epen!enta fizica a !atelor reprezinta gra!ul !e imunitate a schemei conceptuale la schim%arile suferite !e schema interna In!epen!enta logica a !atelor se refera la posi%ilitatea a!augarii !e noi Dn Dnregistari sau la e8tin!erea structurii conceptuale =glo%aleI) fara ca acest lucru sa impuna rescrierea programelor e8istente Cu alte cuvinte in!epen!enta logica a !atelor reprezinta gra!ul !e imunitate a schemelor e8terne la schim%arile suferite !e schema conceptuala 1.4. Princi%alele com%onente ale unui SGBD :inan! seama !e faptul ca e8ista !iferite tipuri !e sisteme !e gestiune) care se !iferentiaza: 7prin lim%aHele utilizate) 7prin anumite componente ce imprima !iferite facilitati !e e8ploatare a %azei !e !ate) 7si prin faptul ca unele ofera posi%ilitatea lucrului Dn regim !e teleprelucrare) altele numai Dn regim local) iar altele atat Dn regim local cat &i Dn regim !e teleprelucrare) aHungem la concluzia ca nu poate fi sta%ilita o arhitectura unica) vala%ila pentru toate sistemele) ci apar particularitati !e la un sistem la altul Arhitectura unui S/0D evi!entiaza componentele acestuia &i urmeaza stan!ar!e internationale 4 astfel !e arhitectura generala cuprin!e urmatoarele componente: 7 %aza !e !ate propriu7zisa Dn care se memoreaza colectia !e !ate' 7 sistemul !e gestiune al %azei !e !ate) care este un asam%lu !e programe =softI care realizeaza gestiunea &i prelucrarea comple8a a !atelor' 7 un set !e proce!uri manuale &i automate) precum &i reglementarile a!ministrative) !estinate %unei functionari a Dntregului sistem' 7 un !ictionar al %azei !e !ate =meta%aza !e !ateI) ce contine informatii !espre !ate) structura acestora) elemente !e !escriere a semanticii) statistici) !ocumentatie etc 7 miHloacele har! utilizate =comune) specializate etc I' 7 personalul implicat: =categorii !e utilizatori: finali 7 =neinformaticieniI' !e specialitate =a!ministratorI) analisti 7 programatori) gestionari) operatoriI Arhitectura %azei !e !ate !a o imagine !espre mo!ul general !e organizare &i functionare a ei Sa !etaliem cateva !in componentele prezentate mai sus Lim%aHele untilizate Dntr7un S/0D sunt !e !oua tipuri: ,im)a-ul de de8inire a datelor =Data Definition Language 7 DDLI &i ,im)a-ul de mani%ulare a

$-

datelor =Data #anipulation Language 7 D#LI Aceste lim%aHe mai sunt cunoscute ca su%lim%aHe !e !ate !eoarece ele nu inclu! constructii a!ecvate oricaror necesitati !e calcul) asemanatoare cu structurile puse la !ispozitie !e lim%aHele !e nivel Dnalt #ulte S/0D au facilitatea !e a incorpora su%lim%aHul Dntr7un lim%aH !e nivel Dnalt =numit lim%aH gaz!aI cum ar fi C404L) 5ortran) "ascal) A!a) C "entru compilare) comenzile su%lim%aHului sunt Dnlocuite Dn lim%aHul gaz!a cu apeluri !e functii 5isierul preprocesat este compilat) plasat Dntr7un mo!ul o%iect) linM7 e!itat cu o %i%lioteca Dn care se afla functiile Dnlocuite) furnizate o!ata cu S/0D) &i este e8ecutat can! este necesar ,im)a-ul de De8inire a Datelor ,DD! este un lim%aH !escriptiv care permite a!ministratorului %azei !e !ate sau utilizatorilor sa !escrie &i sa !enumeasca entitatile &i relatiile care se pot sta%ili Dntre acestea Schema %azei !e !ate este !efinita cu aHutorul LDD Rezultatul compilarii !eclaratiilor Dn acest lim%aH este constituit !intr7o serie !e ta%ele memorate Dntr7un fisier special numit dictionar de date =se mai utilizeaza &i termenii !e catalo( de date sau director de dateI Datele memorate Dn acest !ictionar sunt !ate !espre !ate &i !e aceea se mai numesc &i metadate Definitiile !in !ictionarul !e !ate se refera la Dnregistrari) la !atele !in Dnregistrari &i la alte o%iecte ce compun %aza !e !ate S/0D consulta !ictionarul !e !ate Dnaintea oricarui acces la informatii :eoretic) se poate i!entifica cate un LDD pentru fiecare nivel !e a%stractizare al !atelor) Dn realitate e8ista un singur lim%aH care trateaza toate aspectele !efinirii !atelor ,im)a-ul de mani%ulare a datelor ,#D! furnizeaza un set operatii care suporta operatiile !e manipulare !e %aza asupra !atelor !in %aza !e !ate 4peratii !e %aza sunt inserarea) stergerea) mo!ificarea &i regasirea !atelor Dn %aza !e !ate #anipularea !atelor se aplica la nivel conceptual &i e8tern Se cunosc !oua tipuri !e L#D: %rocedural &i non.%rocedural ?n L#D proce!ural trateaza Dnregistrarile in!ivi!ual &i specifica cum tre%uie o%tinut rezultatul unei interogari Cu alte cuvinte tre%uie sa se specifice un algoritm !e prelucrare a Dnregistrarilor cu aHutorul operatiilor puse la !ispozitie !e lim%aH In contrast) un L#D non7proce!ural specifica !oar ce fel de rezultat tre%uie o%tinut S/0D translateaza cererea !in lim%aH non7proce!ural transforman!7o Dntr7o proce!ura sau Dntr7o serie !e proce!uri care manipuleaza !atele conform cererii utilizatorului Lim%aHele non7proce!urale sunt mai usor !e utilizat !eoarece scutesc utilizatorii !e la a cunoaste implementarea interna a structurilor !e !ate &i !e la a sta%ili algoritmi !e o%tinere a informatiilor "artea componenta a unui L#D care se refera la regasirea !atelor se numeste lim)a- de intero(are Intelegem prin interogare orice cerere !e acces la !atele !in %aza !e !ate) formulata Dntr7un lim%aH !e interogare +G,

$2

./L Dnseamna 5ourth7/eneration Language =Lim%aH !e /eneratia a "atraI @u e8ista Dnca un consens asupra semnificatiei acestei !enumiri In general ./L !esemneaza un lim%aH !e programare !e mare rapi!itate pentru programator Ceea ce se programeaza Dn sute !e linii !e program Dntr7un lim%aH !e generatia a treia) poate sa constituie cateva zeci !e linii !e program Dntr7un lim%aH !e generatia a patra Lim%aHele ./L sunt non7proce!urale &i se %azeaza pe tools7 uri performante ?tilizatorul tre%uie sa !efineasca parametri pentru aceste tools7uri iar acestea genereaza programe !e aplicaie pe %aza parametrilor respectivi ?n avantaH important al utilizarii lim%aHelor ./L este o pro!uctivitate !eose%ita Dn programare ?n ./L cuprin!e: 7lim%aHe !e interogare' 7generatoare !e ecrane' 7generatoare !e rapoarte' 7lim%aHe specializate cum ar fi sprea!sheet7urile &i lim%aHele specifice %azelor !e !ate' 7generatoare !e aplicaii) etc 68emple !e lim%aHe !e interogare ./L sunt S9L &i 906) lim%aHe comerciale asupra carora vom reveni ulterior %eneratoare de ecrane ?n generator !e ecrane este un tool cu aHutorul caruia se pot crea usor &i rapi! ecrane pentru culegerea =intro!ucereaI informatiilor necesare programelor sau chiar pentru intro!ucerea &i mo!ificarea !atelor !in %aza !e !ate %eneratoare de rapoarte ?n generator !e rapoarte aHuta la crearea !e rapoarte =listeI pornin! !e la !atele memorate Dn %aza !e !ate Se cunosc !oua tipuri !e generatoare !e rapoarte: orientat pe lim%aH &i orientat visual In primul caz se utilizeaza comenzile unui su%lim%aH pentru a !efini !atele ce se vor inclu!e Dn raport) Dn al !oilea caz) acelasi lucru se realizeaza cu aHutorul unei facilitati grafice similare cu generatorul !e ecrane %eneratoare de grafice ?n astfel !e generator este o facilitate care regaseste !ate !in %aza !e !ate &i afiseaza aceste !ate su% forma unor grafice %eneratoare de aplicaii ?tilizarea unui generator !e aplicaii poate re!uce timpul necesar realizarii unei aplicaii unitare /eneratoarele !e aplicaii constau Dn mo!ule pre!efinite care cuprin! maHoritatea functiilor !e %aza ce sunt prezente Dn maHoritatea programelor Aceste mo!ule constituie o %i%lioteca !e functii la !ispozitia utilizatorilor

$3

1.5. O)iecti7ele unui SGBD Dupa cum este cunoscut) o%iectivul informaticii il constituie culegerea) verificarea) transmitarea) stocarea &i prelucrarea automata a !atelor cu aHutorul miHloacelor electronice !e calcul) Dn scopul satisfacerii !iferitelor nivele !e con!ucere cu informatii necesare luarii !eciziilor) Dn con!itii !e eficienta economica sporita In aceste con!itii) necesitatea acuta !e informare tre%uie satisfacuta tinan! seama !e o serie !e cerinte prin care sa se asigure: 7minimizarea costului procesului !e prelucrare a !atelor' cre&terea vitezei !e rspuns la Dntre%arile solicitate !e utilizatori' 7a!aptarea facila a sistemului informatic la evolutia in timp a sistemului informational !in care face parte' 7posi%ilitatea rspunsului la anumite intre%ari neanticipate !e catre proiectantii !e sistem' 7posi%ilitatea folosirii sistemului !e informare !ispunan! !e un minim !e cunostinte !espre mo!ul lui !e organizare in general &i !espre informatica in special' 7integritatea &i securitatea !atelor etc In acest conte8t) sistemului !e gestiune al %azei !e !ate ii revin o serie !e o%iective) cum sunt: 1. Asi(urarea inde%endentei datelor Asa cum am aratat mai !evreme) acest o%iectiv consta in linii mari !in in!eplinirea urmatoarei cerinte: mo!ificarile care se fac la un anumit nivel !e structura !e !ate nu tre%uie sa fie Lvizi%ileL la nivelul !e organizare ime!iat superior ". Asi(urarea unei redundante minime $i controlate a datelor din )aza de date Spre !eose%ire !e sistemele clasice !e prelucrare automata a !atelor) stocarea !atelor in cazul %azelor !e !ate se face astfel incat) pe cat posi%il) fiecare informatie sa apara o singura !ata :otusi) nu sunt e8cluse nici cazurile in care) pentru a realiza performante sporite =mai ales in ce priveste timpul !e acces la !ate &i implicit) timpul !e rspuns la solicitarile utilizatorilorI sa se accepte o anumita re!un!anta a !atelor In acest caz se va institui insa un control automat al re!un!antei in ve!erea asigurarii coerentei !atelor !in %aza '. Asi(urarea unor 8acilitati s%orite de utilizare a datelor Aceasta presupune: 7 folosirea !atelor !e catre mai multi utilizatori in !iferite scopuri =aplicatiiI'

+1

7 accesul cat mai simplu al utilizatorilor la !ate) fara ca acestia sa fie nevoiti sa cunoasca structura intregii %aze !e !ate) acest lucru ramanan! in sarcina a!ministratorului %azei !e !ate' 7 e8istenta unor lim%aHe performante !e regasire a !atelor) care permit e8primarea cu usurinta a criteriilor !e selectie a !atelor &i in!icarea unor reguli cat mai generale pentru e!itarea informatiilor solicitate' 7 spre !eose%ire !e sistemul tra!itional %azat pe fisiere) un!e e8ista un singur criteriu !e a!resare =cel care a stat la %aza organizarii fisieruluiI in cazul %azelor !e !ate) sistemul !e gestiune tre%uie sa ofere posi%ilitatea unui acces multicriterial) fara sortari suplimentare #o!ificarea criteriului la fisierele clasice implica in maHoritatea cazurilor reorganizarea lor' 7 utilizarea unui lim%aH cat mai apropiat !e lim%aHul natural) cu posi%ilitatea e8ploatarii %azei !e !ate in regim conversational Aceasta ar oferi posi%ilitatea e8ploatarii in mo! facil a %azei !e !ate &i !e catre utilizatorii neinformaticieni +. S%orirea (radului de securitate a datelor impotriva accesului neautorizat la ele A!ministratorul %azei !e !ate poate preve!ea ca accesul la %aza !e !ate sa se faca numai prin canale corespunzatoare) &i poate) toto!ata) !efini verificari !e autorizare care sa se realizeze orican! se incearca accesul la anumite !ate 0. Asi(urarea inte(ritatii datelor impotriva unor stergeri intentionate sau neintentionate) prin interme!iul unor proce!uri !e vali!are) a unor protocoale !e control concurent &i a unor proce!uri !e refacere a %azei !e !ate !upa inci!ente 1. Asi(urarea %arta-a)ilitatii datelor "artaHa%ilitatea !atelor tre%uie inteleasa nu numai su% aspectul asigurarii accesului mai multor utilizatori la aceleasi !ate) ci &i acela al posi%ilitatii !ezvoltarii unor aplicaii fara a se mo!ifica structura %azei !e !ate 1.10. ?unctiile unui SGBD Sistemele !e gestiune a %azelor !e !ate !ispun !e o serie !e componente ce permit efectuarea numeroaselor operatii necesare functionarii optime a sistemului In functie !e natura lor &i !e scopul urmarit) operatiile pot fi grupate pe activitati Activitatile accepta &i ele o grupare pe functii =una sau mai multe activitati) relativ omogene) realizeaza o anumita functieI :inan! seama !e comple8itatea sistemului !e gestiune) !e facilitatile oferite !e acesta) !e lim%aHele utilizate &i !e tipul %azei !e !ate ce urmeaza a fi gestionata !e S/0D) gruparea activitatilor pe functii are un oarecare caracter relativ In situatia sistemelor !e gestiune ce utilizeaza lim%aHe gaz!a !e nivel inalt) i!entificarea &i !elimitarea functiilor nu este atat !e evi!enta

+$

:otusi) in ciu!a acestor particularitati) se pot prezenta cateva functii cu caracter !e generalitate pentru toate sistemele !e gestiune a %azelor !e !ate &i anume: 1. ?unctia de descriere a datelor permite !efinirea structurii %azei !e !ate cu aHutorul lim%aHului !e !efinire Definirea !atelor poate fi realizata la nivel logic) conceptual &i fizic Aceasta functie asigura: 7!escrierea atri%utelor =campurilorI !in ca!rul structurii %azei !e !ate) 7!escrierea legaturilor !intre entitatile %azei !e !ate sau !intre atri%utele aceleiasi entitati) 7!efinirea eventualelor criterii !e vali!are a !atelor) 7!efinirea meto!elor !e acces la !ate) 7!efinirea aspectelor referitoare confi!entialitatii !atelor) etc la asigurarea integritatii &i

:oate acestea se concretizeaza in schema %azei !e !ate) memorate in co! intern ". ?unctia de mani%ulare a datelor este cea mai comple8a functie &i realizeaza urmatoarele activitati: 7 crearea =incarcareaI %azei !e !ate' 7 a!augarea !e noi inregistrari' 7 stergerea unor inregistrari' 7 mo!ificarea valorilor unor campuri' 7 cautarea) sortarea &i e!itarea partiala sau totala a unei inregistrari virtuale etc 5unctia !e manipulare a !atelor se realizeaza prin interme!iul lim%aHului !e manipulare a !atelor '. ?unctia de utilizare asigura multimea interfetelor necesare pentru comunicarea tuturor utlizatorilor cu %aza !e !ate Sunt recunoscute mai multe categorii !e utilizatori: 7 utilizatori Rli%eriR sau conversationali Aceastia reprezinta categoria %eneficiarilor !e informatii =utilizatori finaliI care utilizeaza lim%aHele !e interogare a %azei !e !ate intr7o forma simplista 6i apar ca utilizatori neinformaticieni' 7 utilizatori programatori) care utilizeaza lim%aHele !e manipulare) realizan! proce!uri comple8e !e e8ploatare a %azei !e !ate' 7 a!ministratorul %azei !e !ate apare ca un utilizator special &i are rolul hotarator in ceea ce priveste functionarea optima a intregului ansam%lu

++

+. ?unctia de administrare a )azei de date apare ca o functie comple8a &i este !e competenta a!ministratorului %azei !e !ate :ntre)&ri reca%itulati7e. $I +I (I .I *I ,I -I 2I 3I 6numerai momentele importante ale na&terii %azelor !e !ata Dai !efiniia %azei !e !ate Dai !efiniia S/0D7ului Ce Dnseamn arhitectura A@SI7S"ARC pe trei niveleK Ce esste in!epen!ena fizic a !atelorK Ce esste in!epen!ena logic a !atelorK Care sunt componentele unui S/0DK Care sunt o%iectivele unui S/0DK Care sunt functiunile unui S/0DK

R&s%unsuri la @ntre)&ri. $I 68ista afirmatii conform carora sistemul !e %aze !e !ate isi are ra!acinile in anii L,1) in proiectul !e aselenizare Apollo @orth American Aviation a !ezvoltat un pachet !e programe cunoscut su% numele /?A#) care se %aza pe !ate organizate in mo! ierarhic In aceeasi perioa!a /eneral 6lectric a !ezvoltat sistemul IDS =Integrate! Data StoreI "roiectul a con!us la mo!elul !e !ate retea Conceptul !e %aza !e !ate s7a !efinit in $3,3 cu ocazia prezentarii primului proiect !e raport C4DAS>L I!eea principala in organizarea !atelor se %aza pe e8istenta a trei componente !e %aza: schema !e reea 7 care reprezenta organizarea logic a intregii %aze !e !ate su%schema 7 care reprezenta o parte a %azei !e !ate a&a cum e vazut !e utilizator sau !e programele !e aplicaei un lim%aH !e gestionare a !atelor 7 care !efinea caracteristicile !atelor) structura lor &i care manipula !atele In $3-2 6 5 Co!! !e la I0# Research La%oratorB a ela%orat o lucrare care a avut o influenta covarsitoare in !ezvoltarea %azelor !e !ate Lucrarea trata !espre mo!elul !e !ate relaional n anul $3-1 a Dnceput !ezvoltarea unui lim%aH structurat !e interogare =numit S9LI care !e atunci a !evenit un stan!ar! pentru sistemele relaionale +I Baza de date poate fi !efinit ca fiin! o colecie partaHat !e !ate aflate Dn inter!epen!en logic colecie !esemnat pentru a rezolva nevoia !e informatizare a unei intreprin!eri =sau organizaiiI (I @umim SGBD Sistem de Gestiune al Bazelor de Date! un sistem softEare care permite) pe !e o parte) !efinirea) crearea &i intreinerea %azei !e

+(

!ate &i pe !e alta parte) permite accesul controlat la informaiile !in %aza !e !ate Dn cauz .I Componentele %azei !e !ate pot fi structurate pe trei nivele) in functie !e clasa utilizatorilor implicati &i !e viziunea asupra structurarii informatiei) !upa cum urmeaza: 7 ni7elul lo(ic de 7izualizare 7ie=! sau ni7elul e>tern 6ste !at !e viziunea programatorului !e aplicaii) care realizeaz programele !e aplicaii pentru manipularea !atelor la nivel !e structura logica =su%schemaI corespunzatoare !escrierii !atelor aplicaiei' .ni7elul conce%tual =(lo)alI 6ste !at !e viziunea a!ministratorului %azei !e !ate) care realizeaza structura conceptual =schemaI corespunzatoare !escrierii intregii %aze !e !ate &i a!ministreaz componentele %azei !e !ate Acest nivel !escrie ce !ate sunt memorate Dn %aza !e !ate &i ce relaii sunt sta%ilite intre !ate @ivelul conceptual reprezint: 7toate entitile) atri%utele lor i relaiile !intre ele' 7restriciile impuse !atelor 7informaiile semantice !espre !ate 7informaiile privitoare la securitatea &i integritatea !atelor .ni7elul 8izic 6ste !at !e viziunea inginerului !e sistem care realizeaza structura fizic corespunzatoare !escrierii !atelor pe suportul fizic =perifericI Acest nivel !escrie cum sunt memorate !atele Dn %aza !e !ate *I In!epen!ena fizic a !atelor face ca memorarea !atelor &i tehnicile fizice !e memorarea s poat fi mo!ificate fr a !etermina rescrierea programelor !e aplicaie A&a!ar in!epen!ena fizic a !atelor reprezinta gra!ul !e imunitate a schemei conceptuale la schim%arile suferite !e schema intern In!epen!ena logic a !atelor se refera la posi%ilitatea a!augrii !e noi Dnregistari sau la e8tin!erea structurii conceptuale =glo%aleI) fr ca acest lucru s impun rescrierea programelor e8istente Cu alte cuvinte in!epen!ena logic a !atelor reprezinta gra!ul !e imunitate a schemelor e8terne la schim%rile suferite !e schema conceptual Arhitectura unui S/0D evi!eniaz componentele acestuia &i urmeaz stan!ar!e internaionale 4 astfel !e arhitectur general cuprin!e urmatoarele componente: 7 %aza !e !ate propriu7zis Dn care se memoreaz colecia !e !ate' 7 sistemul !e gestiune al %azei !e !ate) care este un asam%lu !e programe =softI care realizeaz gestiunea &i prelucrarea comple8 a !atelor' 7 un set !e proce!uri manuale &i automate) precum &i reglementrile a!ministrative) !estinate %unei funcionri a Dntregului sistem'

,I

-I

+.

7 un !icionar al %azei !e !ate =meta%aza !e !ateI) ce conine informaii !espre !ate) structura acestora) elemente !e !escriere a semanticii) statistici) !ocumentaie etc 7 miHloacele har! utilizate =comune) specializate etc I' 7 personalul implicat: =categorii !e utilizatori: finali 7 =neinformaticieniI' !e specialitate =a!ministratorI) anali&ti 7 programatori) gestionari) operatoriI 2I 0azei !e !ate Di revin o serie !e o%iective) cum sunt: 7Asigurarea in!epen!enei !atelor 7Asigurarea unei re!un!ane minime &i controlate a !atelor !in %aza !e !ate 7 Asigurarea unor faciliti sporite !e utilizare a !atelor 7 Sporirea gra!ului !e securitate a !atelor Dmpotriva accesului neautorizat la !ate 7Asigurarea integritii !atelor Dmpotriva unor &tergeri intenionate sau neintenionate) prin interme!iul unor proce!uri !e vali!are) a unor protocoale !e control concurent &i a unor proce!uri !e refacere a %azei !e !ate !up inci!ente 7Asigurarea partaHa%ilitatii !atelor "artaHa%ilitatea !atelor tre%uie ineleas nu numai su% aspectul asigurarii accesului mai multor utilizatori la acelea&i !ate) ci &i acela al posi%ilitii !ezvoltarii unor aplicaii fr a se mo!ifica structura %azei !e !ate 3I 5unciile unui S/0D $ 5uncia !e !escriere a !atelor permite !efinirea structurii %azei !e !ate cu aHutorul lim%aHului !e !efinire Definirea !atelor poate fi realizat la nivel logic) conceptual &i fizic Aceasta funcie asigur: 7!escrierea atri%utelor =cmpurilorI !in ca!rul structurii %azei !e !ate) 7!escrierea legturilor !intre entitile %azei !e !ate sau !intre atri%utele aceleiasi entiti) 7!efinirea eventualelor criterii !e vali!are a !atelor) 7!efinirea meto!elor !e acces la !ate) 7!efinirea aspectelor referitoare la asigurarea integritii &i confi!enialitii !atelor) etc + 5uncia !e manipulare a !atelor este cea mai comple8 funcie &i realizeaz urmatoarele activiti: 7 crearea =incarcareaI %azei !e !ate' 7 a!augarea !e noi inregistrri'

+*

7 &tergerea unor inregistri' 7 mo!ificarea valorilor unor cmpuri' 7 cutarea) sortarea &i e!itarea parial sau total a unei inregistrri virtuale etc ( 5uncia !e utilizare asigur mulimea interfeelor necesare pentru comunicarea tuturor utlizatorilor cu %aza !e !ate Sunt recunoscute mai multe categorii !e utilizatori: 7 utilizatori Rli%eriR sau conversaionali Acea&tia reprezint categoria %eneficiarilor !e informaii =utilizatori finaliI care utilizeaz lim%aHele !e interogare a %azei !e !ate intr7o form simplist 6i apar ca utilizatori neinformaticieni' 7 utilizatori programatori) care utilizeaz lim%aHele !e manipulare) realizn! proce!uri comple8e !e e8ploatare a %azei !e !ate' 7 a!ministratorul %azei !e !ate apare ca un utilizator special &i are rolul hotartor Dn ceea ce prive&te funcionarea optim a Dntregului ansam%lu '. 5uncia !e a!ministrare a %azei !e !ate apare ca o funcie comple8 &i este !e competena a!ministratorului %azei !e !ate

Ca%itolul " #odele de descriere a datelor


".1. Generalitati @umim model de date o colectie integrata !e concepte pentru !escrierea !atelor) !e relatii intre !ate &i !e restrictii asupra !atelor) toate intr7o organizare unitara ?n mo!el !e !ate este o a%stractie) o reprezentare a Llumii realeL cu evi!entierea caracteristicilor esentiale care !escriu atat Lo%iecteleL cat &i relatiile !intre acestea ?n mo!el !e !ate are in principal rolul !e a furniza conceptele !e %aza &i notatiile care sa permita proiectantilor &i utilizatorilor %azei !e !ate sa comunice in mo! neam%iguu &i acurat legat !e mo!ul !e organizare a !atelor ?n mo!el !e !ate cuprin!e trei parti: =$I =+I o parte referitoare la structura) care consta intr7un set !e reguli ce impun mo!ul !e alcatuire a %azei !e !ate' o parte referitoare la manipularea !atelor) care !efineste tipul !e operatii care sunt permise asupra !atelor Sunt incluse aici operatiile care sunt utilizate pentru a actualiza sau a regasi !atele in %aza !e !ate precum &i operatiile pentru schim%area structurii %azei !e !ate'

+,

=(I

o parte referitoare la integritatea !atelor) parte care cuprin!e reguli !e integritate care asigura acuratetea !atelor

#o!ele !e !ate se pot realiza pentru fiecare nivel !e a%stractizare Astfel putem vor%i !e: mo!el e8tern !e !ate =care reprezinta asa7numitul univers al !iscursului) a!ica punctul !e ve!ere al utilizatoruluiI' mo!el !e !ate conceptual =care reprezinta structura logica a %azei !e !ate) in!epen!enta !e sitemul !e gestiune alesI' mo!el !e !ate intern =care reprezinta schema conceptuala intr7un mo! in care poate fi perceputa !e S/0DI Dintre !iversele mo!ele propuse in literatura !e specialitate mentionam aici: mo!elele !e !ate %azate pe o%iecte) mo!elele !e !ate %azate pe inregistrare) am%ele mo!ele fiin! utilizate pentru !escrierea organizarii !atelor la nivel e8tern &i conceptual :re%uie sa mentionam &i mo!elele fizice !e !ate) care !escriu !atele la nivel intern #o!ele !e !ate %azate pe o%iecte Aceste mo!ele utilizeaza concepte specifice mo!elului 67R prezentat in Sectiunea + + &i anume: entitati) atri%ute) relatii Cele mai cunoscute mo!ele !e !ate sunt: mo!elul entitate7relatie) mo!elul semantic) mo!elul functional) mo!elul orientat o%iect #o!ele !e !ate %azate pe inregistrare Intr7un astfel !e mo!el %aza !e !ate consta !intr7un numar !e inregistrari !e format fi8 !e tipuri eventual !iferite 5iecare tip !e inregistrare !efineste un numar fi8 !e campuri) fiecare fiin! in general !e lungime fi8a 68ista trei tipuri importante !e mo!ele !e !ate %azate pe inregistrare: modelul de date rela*ional) modelul de date retea &i modelul ierar2ic de date #o!elele ierarhic &i retea au fost !ezvoltate mai intai) mo!elul relaional aparan! cu o intarziere !e un !eceniu #o!ele fizice !e !ate Aceste mo!ele !escriu efectiv mo!ul in care !atele sunt memorate in calculator) la nivel fizic Informatia furnizata !e aceste mo!ele este cea referitoare la inregistarile fizice) la cai !e acces) la organizarea inregistrarilor) etc Se consi!era ca schema conceptuala sta la %aza structurarii unei %aze !e !ate 4 schema conceptuala completa &i %ine gan!ita permite o reprezentare interna eficienta &i permite realizarea !e vieE7uri utilizator fara !ificultate #o!elarea conceptuala sau proiectarea conceptuala a %azei !e !ate este procesul !e construire a unui mo!el care sa reprezinte mo!ul in care este

+-

utilizata informatia !e catre %eneficiar) reprezentare care este in!epen!enta !e !etaliile !e implemetare cum ar fi programele !e aplicaie) lim%aHele !e programare) S/0D7ul utilizat sau orice alte consi!eratii fizice ?n astfel !e mo!el se numeste model de date conce%tual sau model lo(ic ?nii autori fac !iferenta intre cele !oua !enumiri in sensul ca se consi!era ca mo!elul !e !ate conceptual este intr7a!evar in!epen!ent !e orice !etalii fizice) pe can! mo!elul logic presupune cunoasterea mo!elului !e !ate ce sta la %aza S/0D7ului ce urmeaza a fi utilizat In Capitolul , se va e8pune meto!ologia o%tinerii unui mo!el logic %azat pe mo!elul !e !ate relaional ".". #odelare E.R EntitA.Relations2i%! #o!elul 67R =6ntitB7RelationshipI este un mo!el conceptual !e nivel Dnalt) !ezvoltat !e Chen Dn $3-, "rimele i!ei legate !e utilizarea mo!elului 67R la proiectarea unei %aze !e !ate au fost e8puse !e Chen =$3--I &i au fost continuate !e SaMai =$321I Conceptele !e specializare &i generalizare au fost intro!use !e Smith &i Smith =$3--I &i au fost utilizate ulterior !e Lenzerini &i Santucci =$32(I la !efinirea restrictiilor !e car!inalitate #o!elul 67R constituie un mo! !e reprezentare a %azelor !e !ate relaionale &i !e aceea este un instrument util in proiectarea acestora n acest capitol) vom !escrie conceptele primare care stau la %aza mo!elului 67R) !up care vom i!entifica pro%lemele care pot aprea prin utilizarea unui astfel !e mo!el Oom !iscuta !e asemenea pro%lemele generate prin utilizarea mo!elul 67R la reprezentarea unor aplicaii Avn! Dn ve!ere limitele mo!elului 67R) vom !iscuta un mo!el mai comple8) mo!elul 667R &i conceptul principal asociat acestuia) conceptul !e specializareJgeneralizare ".".1. Conce%te de )aza Conceptele primare ale mo!elului 67R inclu! : ti% de entitate multime. entitate!; ti% de rela*ie multime.relatie!; atri)ute. @umim entitate un o%iect sau un concept ce se poate i!entifica in mo! unic @otiunea !e entitate este un concept !e %aza in ca!rul mo!elului 67R 6a reprezinta Lo%iecteL concrete =cu e8istenta fizicaI sau a%stracte =cu e8istenta conceptualaI 68emplu: "opescu Ion) posesor al %uletinului !e i!entitate seria A0C) numarul: ...*** este o entitate !eoarece i!entifica in mo! unic o persoana in acest univers 4 entitate care reprezinta un o%iect ceva mai a%stract poate fi) !e e8emplu) un cont la %anca i!entifica%il in mo! unic prin numarul sau &i numele %ancii @umim ti% de entitate sau multime.entitate un set !e entitati !e acelasi tip 68emplu: #ultimea tuturor persoanelor care sunt stu!enti ai 5acultatii !e Stiinte pot !efini multimea7entitate sau tipul !e entitate student :ipul !e entitate reprezint o multime !e Lo%iecteL ce apartin lumii reale &i care sunt !escrise !e aceleasi proprietati +2

4rice o%iect care apartine unui tip !e entitate &i care este i!entifica%il in mo! unic este numit simplu entitate =se mai intalnesc !enumirile: aparitia unei entitati sau instanta unei entitatiI ?n tip !e entitate conine mai multe entiti 4 %aza !e !ate este o colectie !e tipuri !e entitate !in care fiecare contine un numar neprecizat !e entitati !e acelasi tip :ipurile !e entitate nu sunt neaparat !isHuncte Aceasta inseamna ca pot e8ista entitati care sa apartina mai multor tipuri !e entitate 68emplu: Se pot !efini urmatoarele tipuri !e entitate: profesor) corespunzator tuturor ca!relor !i!actice ale 5acultatii !e Stiinte &i student) corespunzator tuturor stu!entilor aceleiasi facultati Se o%serva usor ca pot e8ista stu!enti care sunt in acelasi timp &i ca!re !i!actice =stu!enti la master care sunt preparatori sau asistentiI ?n tip !e entitate se i!entific printr7un nume &i o list !e proprietati 4 %az !e !ate conine Dn general mai multe tipuri !e entiti 5iecare tip !e entitate are propriul set !e proprietati @umim atri)ute proprietaile atasate unui tip !e entitate 68emplu: entitatea student poate fi !escrisa !e atri%utele( nume)student, prenume)student, data)nasterii, sex, adresa, telefon, numar)matricol, grupa "rin domeniul atri)utului intelegem multimea valorilor care pot fi atri%uite unui atri%ut simplu Atri%utele unei entitati contin valorile care !escriu fiecare entitate &i cu aHutorul carora fiecare entitate se poate i!entifica in mo! unic Aceste valori reprezinta cea mai mare parte a !atelor memorate intr7o %aza !e !ate Domeniul unui atri%ut nu se poate !efini intot!eauna foarte e8act De e8emplu) atri%utul nume)student tre%uie s fie un &ir !e caractere !ar poate lua ca valori !oar un nume !e familie e8istent ?nele !omenii se pot !escompune Dn mai multe su%!omenii De e8emplu data)naterii se poate !escompune in su%!omeniile: an) lun) zi In general putem consi!era ca fiecare entitate este reprezenta%ila cu aHutorul unei multimi !e perechi !e forma *nume)atribut, valoare)atribut+) cate o pereche pentru fiecare atri%ut atasat tipului !e entitate corespunzator 68emplu: o entitate a tipului !e entitate student poate fi reprezentata !e multimea: S=nume)student) "opescuI) =prenume)student) IonI) =data)nasterii) $* $$ $32$I) =sex) masculinI) =adresa) 07!ul /arii) $+) 0rasov) co! ++11) Hu!etul 0rasovI) =telefon) 1,2J...***I) =numar)matricol) ($.**I) =grupa) -+$$IT Atri%utele se pot clasifica Dn simple sau compuse' cu o singur valoare sau cu mai multe valori' respectiv derivate @umim atri)ut sim%lu orice atri%ut care are !oar o singur component &i o e8isten in!epen!ent

+3

Aceste atri%ute nu se pot !iviza Dn mai multe atri%ute !istincte 6le se mai numesc &i atri)ute atomice. 68emplu: atri%utul sex corespunzator tipului !e entitate student @umim atri)ut com%us orice atri%ut care are mai multe componente) fiecare cu o e8isten in!epen!ent Aceste atri%ute se pot !iviza Dn general in mai multe atri%ute simple 68emplu: atri%utul adres se poate !escompune Dn atri%utele: strada) numr) ora) cod)potal &i #ude Decizia ca un atri%ut compus s se !escompun Dn mai multe atri%ute simple este !epen!ent !e mo!ul Dn care se va utiliza acel atri%ut: pe componente) sau ca un Dntreg @umim atri)ut cu o sin(ur& 7aloare orice atri%ut care poate lua cate o singur valoare pentru fiecare entitate #aHoritatea atri%utelor sunt atri%ute cu o singur valoare @umim atri)ut cu mai multe 7alori orice atri%ut care poate lua mai multe valori pentru fiecare entitate "entru atri%utele cu mai multe valori tre%uie precizate numarul minim &i numarul ma8im !e valori pe care le poate lua atri%utul respectiv 68emplu: atri%utul telefon poate fi un atri%ut cu mai multe valori In acest caz se poate limita !e e8emplu numarul numerelor !e telefon la care poate fi gasit stu!entul la minim 1 &i la ma8im ( Deci se pot sta%ili numarul minim &i numarul ma8im !e valori pe care le poate lua atri%utul @umim atri)ut deri7at orice atri%ut a crui valoare se poate calcula !in unul sau mai multe alte atri%ute Aceste atri%ute nu tre%uie neaparat sa !escrie entitatea careia ii corespun!e atri%utul !erivat 68emple: valoarea pentru atri%utul v"rsta este !erivat !in valoarea atri%utului data)naterii &i !in !ata curenta Oaloarea atri%utului numrul)total)de)entiti se poate calcula numrn! entitile Dnregistrate Re%rezentare (ra8ic& . dia(rame E.R Intreaga structura logica a unei %aze !e !ate poate fi reprezentata grafic cu aHutorul !iagramelor 67R 4 astfel !e !iagrama contine elemente grafice cum ar fi:

dreptung,iuri) care reprezinta tipuri !e entitate' elipse) care reprezinta atri%ute' linii) care au rolul !e a evi!entia legaturile intre elementele !iagramei

Dreptunghiurile &i elipsele sunt etichetate cu numele Lo%iectuluiL reprezentat Acestea nu sunt singurele elemente grafice utilizate intr7o !iagrama 67R "e masura ce vom !efini noi concepte vom reveni cu precizari legate !e mo!ul !e a le reprezenta

(1

?n atri%ut se reprezint printr7o elips) legat !e entitatea careia Di este asociat cu o linie &i etichetat cu numele atri%utului 6lipsa este trasata cu linie punctat) !ac atri%utul este un atri%ut !erivat &i respectiv cu linie !u%l) !aca atri%utul poate lua mai multe valori Dac un atri%ut este compus) atunci componentele atri%utului se reprezint prin elipse legate cu cate o linie !e atri%utul compus

num e numVr matrico l

numVr %loc locatari a!resa a!resa apartame a!resa nt scara etaH

a!resa ?i(ura ".1. Reprezentarea cu !iagrama 67R a entitatii locatari a!resa n e8emplul !in 5igura + $ entitatea locatari are urmtoarele atri%ute: numr)matricol) nume &i adresa Dintre aceste atri%ute) atri%utul adresa este a!resa atri%ut compus) care se !escompune Dn numr)bloc ) scara) eta# &i apartament 68plicatia su%linierii atri%utului numr)matricol se va !a in sectiunea care se ocupa !e chei) tot in acest capitol @umim ti% de rela*ie orice asociere Dntre tipuri !e entiti @umim rela*ie orice asociere Dntre entitti) cn! asocierea inclu!e cate o entitate pentru toate tipurile !e entitate participante 5ie 6$) 6+) ) 6n tipuri !e entitate 5ormal) un tip !e relatie este o su%multime a urmatoarei multimi: S= e$) e+) ) enI U un!e e$6$) e+6+) ) en6n T ceea ce inseamna ca = e$) e+) ) enI reprezinta formal o relatie

68emplu: Intr7o aplicaie care ar servi unor evi!ente in ca!rul asociatiilor !e locatari putem consi!era tipul !e entitate locatari !escris !e atri%utele: nume, adresa i numar)matricol &i tipul !e entitate scari !escris !e atri%utele numar)de)bloc &i scara Intre tipul !e entitate scari &i tipul !e entitate locatari se poate sta%ili un tip !e relatie numit este)locuita)de Acest tip !e relatie va

($

contine relatii !e tipul =LScara AL) L"opescu IonLI care va fi interpretata: RScara A este locuita !e "opescu IonR @umim (radul rela*iei numrul entitilor participante Dn relaie Asa!ar relatia reprezentata mai sus are gra!ul n 6ntitiile implicate intr7o relaie se numesc %artici%an*i Dac intr7o relaie sunt !oi participani) atunci relaia se nume&te )inar& :ipurile !e relatii se reprezinta in !iagramele 67R cu aHutorul rom%urilor care sunt etichetate cu numele tipului !e relatie

nume numar !e %loc scari $ scara este locu7 ita !e # numar matricol locatari a!resa

?i(ura ".". Reprezentarea cu !iagrama 67R a relatiei este)locuita)de 5unctia pe care o Hoaca o entitate intr7o relatie se numeste rolul entitatii In general nu este necesar sa se specifice rolul entitatilor intr7o relatie) !eoarece acesta este in general implicit @umim rela*ie recursi7& orice relaie Dn care acelea&i entiti particip Dn roluri !iferite In acest caz este necesar sa se precizeze rolurile entitatilor implicate n cazul relaiilor recursive) in !iagrama 67R corespunzatoare) cele !ou arce !e la entitate la relaie &i Dnapoi) primesc !iferite etichete) care sunt importante Dn Dnelegerea corect a relaiei 68emplu: Daca am consi!era entitatile lucratori &i manageri care se refera la personalul aceleiasi intreprin!eri) am face constatarea ca sunt !escrise !e aceleasi atri%ute !eci apartin aceluiasi tip !e entitate &i anume anga#ati Relatia %inara lucreaza)pentru, sta%ilita intre lucratori i manageri este o relatie recursiva Rolurile Hucate !e fiecare entitate se pot sta%ili recurgan!u7se la perechi or!onate =muncitor) managerI Astfel relatia =L"opescu IonL) LIonescu /heorgheLI se interpreteaza R"opescu Ion lucreaza pentru =este su%or!onatul luiI Ionescu /heorgheR

(+

angaHati

lucrator manager cu !iagrama 67R

lucreaza pentru a relatiei recursive

?i(ura ".'. Reprezentarea lucreaza)pentru

?nui tip !e relatie i se pot asocia atri%ute !escriptive in acelasi mo! in care se pot asocia atri%ute unui tip !e entitate 68emplu: :ipului !e relatie este)locuita)de, care implica tipurile !e entitate scari &i locatari) i se poate asocia atri%utul data care sa retina !ata la care locatarul L s7a mutat pe scara S Dupa cum se o%serva) acest atri%ut !escrie e8clusiv tipul !e relatie &i el nu mai are sens in afara ei

".".".

Restrictii structurale

6ste posi%il sa se sta%ileasca !iverse restrictii la care continutul unei %aze !e !ate tre%uie sa se conformeze Oom trata in continuare restriciile care se pot impune entitatilor participante intr7o relatie Aceste restrictii tre%uie sa reflecte caracteristicile relatiilor asa cum se percep in Llumea realaL Doua tipuri importante !e restrictii sunt !e mentionat aici: restrictii de cardinalitate &i restrictii de participare a! Restrictii de cardinalitate @umim cardinalitate %olaritate! numrul relaiilor posi%ile pentru o entitate participant Altfel spus) car!inalitatea e8prima numarul entitatilor la care o alta entitate poate fi asociata prin interme!iul unei relatii 4%servatie: Am utilizat in !efinitia !e mai sus referiri la entitati &i la relatii pentru a fi mai e8pliciti Restrictiile structurale se refera insa in mo! evi!ent la tipurile !e relatie &i la tipurile !e entitate asociate Aceasta o%servatie ramane vala%ila &i in consi!eratiile ce urmeaza #aHoritatea tipurilor !e relatie au gra!ul !oi Car!inalitatea in acest caz poate fi !e tipurile: unu7la7unu =$:$I) unu7la7mai7multe =$:#I) sau mai7multe7la7mai7 multe =#:@I Rela*iile unu.la.unuB n relaiile unu7la7unu) o entitate) apartinan! unui tip !e entitate) este legat !e cel mult o entitate !in celalalt tip !e entitate implicat in relatia respectiva Implicarea fiecarei entitati intr7o relatie !ata este numita Rparticiparea entitatiiR In !iagrama 67R se eticheteaza arcul !intre relaie &i fiecare tip !e entitate cu car!inalul relaiei' in cazul relatiilor unu7la7unu fiecare !in cele !oua arce se eticheteaza cu $ Rela*iile unu.la.mai.multeB

((

In relaia !e tip unu7la7mai7multe orice entitate) apartinan! primului tip !e entitate) este legat !e 1) $) sau mai multe entiti apartinan! celui !e7al !oilea tip !e entitate participant la relatie 68emplificm acest tip !e relaie prin relaia este)locuita)de !intre tipurile !e entiti scari) respectiv locatari In reprezentarea grafic a acestui tip !e relatie) arcul !inspre tipul !e entitate scari se eticheteaza cu $ iar arcul !inspre tipul !e entitate locatari se eticheteaza cu # =asa cum s7a &i realizat !e fapt in 5igura + + I #o!elul semantic !in 5igura + . reprezinta relatia unu7la7mai7multe este)locuita)de Din e8emplul !e mai sus se o%serv usor c !ac relaia !irect este !e unu7la7 mai7multe) atunci relatia invers este !e unu7la7unu Rela*iile mai.multe.la.mai.multeB Acest tip !e relaie se !eose%e&te !e relaia unu7la7mai7multe prin faptul c relaia invers nu este !e unu7la7unu) ci !e unu7la7mai7multe Deci) !ac &i relaia !irect &i relaia invers sunt !e tipul unu7la7mai7multe) atunci relaia !irecta este !e tipul mai7multe7la7mai7multe &i se noteaz cu =@:#I atri)ute nrW%loc scara nrW%loc scara nrW%loc scara scari Sc A R+ Sc 0 R( Sc C 5am + 5am ( este locuita de R$ locatari 5am $ atri)ute nrWmat numele nrWmat numele nrWmat numele

?i(ura ".+. Reprezentarea cu retele semantice a relaiei $:# este)locuita)de )! Restrictii de %artici%are @umim restrictii de %artici%are acele restrictii prin care se !etermin !ac e8istena unui tip !e entitate !epin!e !e faptul ca este legat sau nu !e un alt tip !e entitate prin interme!iul relatiei in !iscutie "articiparea unei entitati poate fi total sau parial "articiparea este totala !aca e8istenta entitatii respective necesita e8istenta unei entitati asociate Dn relaia !at n caz contrar participarea se nume&te parial :ermenii participare totala &i participare partiala pot fi inlocuiti cu participare o%ligatorie respectiv participare optionala n !iagrama 67R aceste tipuri !e relaii se reprezint prin arc cu linie !u%l pentru participarea total) respectiv cu linie simpl pentru participarea parial "entru participarea parial) e8ist un mo! !e notaie prin care se eticheteaz arcele relaiei cu perechea !e

(.

numere ce reprezint minimul) respectiv ma8imul entitilor participante la relaie 68emplu: Daca se consi!era filialele unei firme oarecare ca entitati in tipul !e entitate filiala i !aca se consi!era tipul !e entitate personal =un!e entitatile reprezinta personalul firmei respectiveI se poate !efini tipul !e relatie are)alocat sta%ilit intre o filiala concreta &i personalul firmei In acest caz) !aca se consi!era ca fiecare filiala are alocat personal al firmei atunci participarea tipului !e entitate filiala in relatia are)alocat este totala Daca insa a!mitem ca unii mem%ri ai personalului =!e e8emplu vanzatoriiI nu lucreaza in %irourile nici unei filiale) atunci participarea tipului !e entitate personal in relatia are)alocat este partiala

c!

De%enden*ele de e>isten*&

@umim ti% sla) de entitate un tip !e entitate) a crui e8isten este !epen!ent !e e8istenta unui alt tip !e entitate @umim ti% tare de entitate un tip !e entitate) a crui e8isten nu !epin!e !e e8istenta nici unui alt tip !e entitate 6ntitile sla%e se mai numesc existential dependente sau subordonate iar entitatile tari se mai numesc printe sau dominante In !iagrama 67R tipurile !e entitate tari se reprezinta cu un !reptunghi trasat cu linie simpla "entru tipurile !e entitate sla%e conturul !reptunghiului este trasat cu linie !u%la De asemenea aceasta notatie se e8tin!e &i la relatii Astfel: o relatie care leaga !oua tipuri !e entitate tari este reprezentata cu un rom% trasat cu linie simpla iar relatia care leaga un tip !e entitate tare !e un tip !e entitate sla% este reprezentata cu un rom% trasat cu linie !u%la ".".'. C2ei Conceptual este evi!ent ca entitatile &i relatiile in!ivi!uale care participa la mo!elarea unei %aze !e !ate sunt !istincte intre ele Diferenta intre entitati sau !iferenta intre relatii se e8prima cu aHutorul atri%utelor care le !escriu @umim su%erc2eie asociata unui tip !e entitate) orice su%multime a multimii !e atri%ute ce !escriu tipul !e entitate) su%multime care poate !uce la i!entificarea in mo! unic a oricarei entitati in ca!rul tipului !e entitate luat in consi!erare 6ste evi!ent ca) !aca o su%multime !e atri%ute formeaza o supercheie) atunci orice multime !e atri%ute care inclu!e supercheia este tot o supercheie @umim c2eie candidat orice supercheie care contine un numar minim !e atri%ute "entru o cheie can!i!at nici o su%multime proprie nu mai este supercheie "utem spune ca o cheie can!i!at este caracterizata !e urmatoarele proprietati: 7unicitatea) !eoarece valoarea cheii este unica pentru fiecare entitate in parte'

(*

7ire!ucti%ilitatea) !eoarece nici o su%multime proprie !e atri%ute ale cheii nu are proprietatea !e unicitate 4%servatie: 5aptul ca valorile unei chei can!i!at sunt unice pentru fiecare entitate nu poate fi !eterminat !ecat cu aHutorul informatiilor semantice referitoare la valorile atri%utelor ce formeaza cheia :re%uie sa se cunoasca semnificatiile !in lumea reala a atri%utelor ce formeaza cheia pentru a se sta%ili !aca acestea vor avea valori unice Doar faptul ca) pentru o multime oarecare !e entitati concrete) valorile !ifera intre ele nu este !e aHuns "entru un tip !e entitate este posi%il sa se poata !etermina una sau mai multe chei can!i!at Dintre acestea) c2eia %rimar& este cheia aleasa ca miHloc principal !e i!entificare a entitatilor in ca!rul tipului !e entitate respectiv Cheia primar este in general cea mai scurt !intre cheile can!i!at In !iagrama 67R atri%utele care intr Dn componena cheii primare) se evi!entiaz prin su%linierea numelui atri%utului @umim c2eie com%us& orice cheie can!i!at care contine cel putin !ou atri%ute "ro%leme se ivesc atunci can! tre%uie sa i!entificam in mo! unic entitatile unui tip !e entitate sla% Sa o%servam ca un tip !e entitate tare are intot!eauna o cheie primara) !eci are intot!eauna cel putin o cheie can!i!at ?n tip !e entitate sla% nu are cheie primara @umim discriminatorul unui tip !e entitate sla%) un set !e atri%ute care permite realizarea unei !istinctii intre entitatile care !epin! !e o anume entitate tare Asa!ar) c2eia %rimara a unui ti% de entitate sla) este formata !in cheia primara a tipului !e entitate tare !e care este !epen!enta e8istential) la care se a!auga multimea atri%utelor care compun !iscriminatorul tipului !e entitate sla% Si relatiile au chei Cu aHutorul cheilor se pot i!entifica in mo! unic relatiile in!ivi!uale C2eia %rimara a ti%ului de relatie este formata !in reuniunea multimilor !e atri%ute care formeaza cheile primare ale tipurilor !e entitate participante ".'. #odelul En2anced EntitA.Relations2i% EE.R! ".'.1. Pro)lemele modelului E.R Oom e8amina mai intai unele pro%leme ce pot aprea la proiectarea unui mo!el conceptual !e !ate !e tipul 67R Aceste pro%leme apar in general !atorita interpretarii gresite a semnificatiei unor relatii &i !e aceea sunt cunoscute su% !enumirea !e capcane de conexiune =connection trapsI "entru a i!entifica o capcana !e cone8iune tre%uie sa ne asiguram ca semnificatia oricarei relatii este pe !eplin inteleasa &i in mo! clar !efinita #entionam aici

(,

!ou tipuri importante !e capcane !e cone8iune: de tip labirint =fan trapI) respectiv de tip prpastie =chasm trapI @umim ca%can& de ti% la)irint =fan trapI cazul Dn care mo!elul reprezint o relaie Dntre !ou tipuri !e entitate) !ar calea intre unele entitati in!ivi!ualizate este am%igu Cu alte cuvinte) pornin! !e la o entitate) nu se &tie =!up parcurgerea cii relaieiI) la ce entitate se aHunge Dn partea cealalt Aceast capcan se poate elimina prin rearanHarea or!inii relaiilor !intre cele !ou tipuri !e entiti @umim ca%can& de ti% %r&%astie =chasm trapI situatia in care mo!elul sugereaz e8istena relaiei Dntre cele !ou tipuri !e entitate) !ar calea !intre unele entiti in!ivi!ualizate nu e8ist 4 capcana !e tip prapastie ar putea aparea in cazul relatiilor cu participare partiala "ro%lema se poate rezolva prin intro!ucerea unei relaii !irecte Ramane sa revenim asupra acestor aspecte in sectiunea care trateaza proiectarea unei %aze !e !ate #o!elul 67R) !iscutat Dn capitolele !e mai sus) este a!ecvat pentru !escrierea multor scheme !e %aze !e !ate Din anii L21 incoace s7au !ezvoltat foarte mult noi aplicaii ale %azelor !e !ate cum ar fi tools7urile: Computer Ai!e! Design =CADI) Computer Ai!e! #anufacturing =CA#I) Computer Ai!e! SoftEare 6ngineering =CAS6I &i aplicaii multime!ia #o!elul 67R s7a !ove!it insuficient pentru aceste noi aplicaii cu cerinte !eose%ite impuse %azelor !e !ate) cerinte care nu fusesera formulate in cazul aplicaiilor a!ministrative tra!itionale aplicaiile cu mult mai comple8e au necesitat a!augarea !e concepte noi la mo!elul 67R S7au propus mai multe mo!ele semantice noi !e !ate) unele !in conceptele noi fiin! incorporate cu succes chiar in mo!elul 67R o%tinan!u7se in acest mo! noul mo!el 6nhance! 6ntitB7Relationship =667RI #o!elul 667R inclu!e toate conceptele mo!elului 67R) plus alte completri !evenite necesare Aceste concepte nou intro!use sunt: specializarea J generalizarea) categorisirea &i agregarea n acest capitol vom !escrie conceptul !e %az in mo!elul 667R: specializarea J generalizarea Conceptul !e specializare J generalizare este asociat cu mo!ul !e reprezentare a tipurilor !e entitate utilizan! superclase &i su%clase) &i cu mo!ul in care se realizeaza mo&tenirea atri%utelor ".'.". Su%erclase $i su)clase ale ti%urilor de entitate Oom !escrie aceste concepte) avn! ca e8emplu tipul !e entitate locatari @umim su%erclas& un tip !e entitate ce inclu!e su%clase !istincte care necesita reprezentarea Dntr7un mo!el !e !ate @umim su)clas& un tip !e entitate care are un rol !istinct &i care este !e asemenea mem%ru al unei superclase

(-

De e8emplu superclasa locatari se !ivizeaz Dn !ou su%clase &i anume: ef)de)scar &i familii Relaia !intre o superclas &i o su%clas se nume&te relaie superclas J su%clas Aceast relaie este !e tip unu7la7unu Relaia locatari / familii !e e8emplu) este o astfel !e relaie 5iecare mem%ru al unei su%clase este mem%ru &i Dn superclas) !ar are un rol !iferit 68ist su%clase case se suprapun) a!ic e8ist mem%rii Dntr7o su%clas care apar &i Dn cealalt su%clas "utem o%serva c e8emplul !e mai sus este e8act !e acest tip) pentru c &eful !e scar poate s fie &i cap !e familie De ce se folose&te clasificarea Dn su%claseK Rspunsul este simplu !aca ne referim la e8emplul !at Dac nu am clasifica entitiile !in tipul !e entitate locatari) atunci ar tre%ui s memorm informaiile specifice &efului !e scar &i capului !e familie pentru fiecare locatar Deoarece maHoritatea locatarilor nu aparine niciunei categorii) pentru acest grup informatiile !e mai sus ar fi informaii vi!e) !ar care Dns ar ocupa mult spaiu pe suportul magnetic 5iecare su%clas are ca atri%ute comune) atri%utele superclasei !e care aparine Deci fiecare mem%ru al unei su%clase se caracterizeaz prin atri%utele superclasei plus alte atri%ute specifice su%clasei De e8emplu su%clasa familii se caracterizeaz prin toate atri%utele superclasei locatari =numr)matricol) numr)bloc) scara) eta#) apartament &i numeI) pe lng care mai are &i atri%utele specifice =numr)persoane) numr)persoane)prezente) etc I 5iecare su%clas poate s ai% su%clase) creDn!u7se un ar%ore !e clase) care se nume&te ierar2ie de ti%uri Aceast ierarhie !e tipuri inclu!e alte !enumiri !e ierarhii &i anume: ierar2ia de s%ecializ&ri =!e e8emplu) tipul !e entitate familii este o specializare a tipului !e entitate locatariI &i ierar2ia de (eneraliz&ri =!e e8emplu) tipul !e entitate locatari este o generalizare a tipului !e entitate familiiI ".'.'. S%ecializarea @umim s%ecializare procesul !e ma8imizare a !iferenelor intre mem%rii unui tip !e entitate prin i!entificarea caracteristicilor lor !istincte Specializarea este o a%or!are top7!oEn a !efinirii unor superclase) Dmreun cu su%clasele lor Relaia superclas J su%clas se reprezint grafic printr7un arc !e la superclas la un cerc) care la rn!ul lui este legat cu un arc !e su%clase "e arcele catre su%clase se !eseneaz un semn !e incluziune !e la su%clas la superclas Aceste semn !e incluziune in!ic !irecia relaiei superclas J su%clas Atri%utele specifice !oar su%clasei sunt ata&ate !irect la !reptunghiul care reprezint su%clasa :oate aceste notaii se e8emplific Dn figura !e mai Hos: numar matricol numar %loc locatari familii sef !e scara !ata (2 intrarii Dn functie numar persoane

a!resa

?i(ura ".0. Reprezentarea relatiei superclasa J su%clasa in cazul tipului !e entitate locatari n e8emplul !e mai sus tipul superclasa locatari se compune !in su%clasele: sef)de)scar &i familii Superclasa locatari va avea ca mem%ri pe toi locatarii unei scri Dintre ace&ti locatari) unii sunt cap !e familie iar alii sunt &ef !e scar Ace&ti mem%ri ai tipului !e entitate locatari vor aprea ca mem%ri &i Dn su%clasele sef)de)scar) respectiv familii "utem intalni mai multe specializari la acelasi tip !e entitate !aca se porneste !e la caracteristici !e !iferentiere !iferite @umim su)clas& %arta-at& su%clasa care are mai multe superclase #em%rii !in su%clasa partaHat sunt mem%ri Dn fiecare !intre superclase De aceea ei mo&tenesc atri%utele fiecrei superclase 4 astfel !e mo&tenire se nume&te mo$tenire multi%l& ".'.+. Generalizarea Generalizare se nume&te procesul !e minimizare a !iferenelor !intre entiti) pentru i!entificarea caracteristicilor comune "rocesul !e generalizare este o apro8imare %ottom7up a superclaselor) !in su%clasele originale Deci generalizarea este inversa specializrii De e8emplu !ac privim tipurile !e entiti 5amilii &i Xef !e scar) vom o%serva c unele atri%ute ale lor caracterizeaz am%ele tipuri De aici rezult necesitatea crerii unei superclase care s conin toate atri%utele comune celor !ou tipuri ".'.0. Conditii im%use s%ecializ&rii $i (eneraliz&rii n acest capitol vom !iscuta !espre restrictiile ce tre%uie impuse Dn cazul specializrii sau al generalizrii "rima con!itie se nume&te re(ula dis-unc*iei Aceast regul specific !ac su%clasele unei clase sunt !isHuncte) a!ic !aca un mem%ru al superclasei aparine cel mult uneia !intre su%clase 4 specializare !isHunct se reprezint cu un FdG Dnscris Dn cercul care leag su%clasele !e superclase Dac su%clasele nu sunt !isHuncte) a!ic !aca un mem%ru al superclasei poate s aparin la mai multe su%clase) atunci su%clasele respective se numesc non dis-uncte &i se noteaz cu F oG Dn cercul care leag su%clasele !e superclase n e8emplul nostru) su%clasele sef)de)scar &i familii 7 care sunt su%clasele clasei locatari 7 sunt non !isHuncte

(3

A !oua con!itie =a specializriiI este re(ula %artici%&rii) care poate fi total sau parial "articiparea este total !ac toi mem%rii superclasei sunt &i mem%ri ai su%claselor "entru reprezentarea participrii totale) arcul !e la superclas la cercul !intre superclas &i su%clas se !u%leaz n cazul participrii pariale nu toi mem%rii superclasei apartin unei su%clase Acest tip !e participare se reprezint cu linie simpl Dntre superclas &i cerc In e8emplul nostru avem o participare parial Dn cazul superclasei locatari) cu su%clasele sef)de)scar &i familii Cele !ou reguli se aplic !istinct la procesele !e specializare) sau generalizare De aceea putem avea) !e e8emplu) patru tipuri !e specializri: !isHunct total) !isHunct parial) non !isHunct total) sau non !isHunct parial

Ca%itolul ' Al(e)ra rela*ional&


In ca!rul %azelor !e !ate relaionale) !atele sunt organizate su% forma unor ta%louri %i!imensionale =ta%eleI !e !ate) numite rela*ii Asocierile !intre relaii se reprezint e8plicit prin atri%ute !e legtur Aceste atri%ute figureaz Dntr7una !in relaiile implicate in asociere =!e regul) Dn cazul legaturilor !e tip Runu la muliRI sau sunt plasate Dntr7o relaie !istinct) construit special pentru e8primarea legaturilor Dntre relaii =Dn cazul legaturilor !e tip Rmuli la muliRI 4 %az !e !ate relaional =0DRI reprezint un ansam%lu !e relaii) prin care se reprezint att !atele ct &i legturile !intre !ate ". O%eratorii modelului rela*ional Definesc operaiile care se pot efectua asupra relaiilor) in scopul realizarii funciilor !e prelucrare asupra %azei !e !ate) respectiv consultarea) inserarea) mo!ificarea &i &tergerea !atelor '. Restric*iile de inte(ritate ale modelului rela*ional "ermit !efinirea strilor coerente ale %azei !e !ate n continuare) vor fi prezentate pe larg aceste componente '.1 Structura rela*ionala a datelor "rezentarea structurii relaionale a !atelor impune !efinirea noiunilor !e: !omeniu) relaie) atri%ut &i schem a unei relaii '.1.1. Domeniu Domeniul reprezint un ansam%lu !e valori) caracterizat printr7un nume ?n !omeniu se poate !efini e8plicit) prin enumerarea tuturor valorilor apartinn! acestuia sau implicit) prin precizarea proprietilor pe care le au valorile !in ca!rul !omeniului respectiv Sa consi!erm) !e e8emplu !omeniile D$) D+) D() !efinite astfel: D$: =R5R)R#RI D+ : =8 J 8 aparine @) 8 aparine Y1)$11ZI D( :=sJs[&ir !e caractereI n cazul lui D$ s7a recurs la o !efinire e8plicit) Dn timp ce pentru D+ &i D( s7a utilizat !efinirea implicit

.1

"entru un ansam%lu !e !omenii D$) D+) ) Dn pro!usul catezian al acestora reprezinta ansam%lul tuplurilor \v$) v+) ) vn]) un!e: v$ este o valoare apartinn! !omeniului D$) v+ este o valoare !in D+ s a m ! De e8emplu) tuplurile: \R#ariaR) R5R) *1]) \ROasileR) R#R)$*]) \ROasileR)R#R)+1]) \ROasileR) R5R)$11] aparin pro!usului cartezian: D( 8 D$ 8 D+ '.1.". Rela*ie S presupunem c se acor! o anumit semnificaie valorilor !omeniilor D$) D+) D() !efinite anterior Sa consi!erm) !e e8emplu ca D$ cuprin!e valorile referitoare la se8ul unei persoane) D+ conine valori care e8prim vrsta unei persoane &i D( cuprin!e numele unor persoane @umai unele !intre tuplurile pro!usului cartezian: D( 8 D$ 8 D+ pot avea o semnificaie &i anume cele care conin numele) se8ul &i vrsta aceleia&i persoane Dintre cele +1+ tupluri care au valoarea ROasileR pe prima pozitie) numai unul poate avea o semnificaie) !ac presupunem c e8ist o singur persoan cu acest nume Se !esprin!e !e aici necesitatea !efinirii unei su%mulimi !e tupluri) !in ca!rul pro!usului cartezian al !omeniilor) su%mulime care s cuprin! numai tuplurile cu semnificaie Rela*ia reprezint un su%ansam%lu al pro!usului cartezian al mai multor !omenii) su%ansam%lu caracterizat printr7un nume &i care conine tupluri cu semnificatie Consi!ern! !e e8emplu c nu se cunosc !ect !ou persoane !efinim realia R prin tuplurile care !escriu aceste persoane &i anume: R : =\R#ariaR) R5R) (1]) \ROasileR) R#R) (*]I Intr7o relaie) tuplurile tre%uie s fie !istincte =nu se a!mit !uplicri ale tuplurilorI 4 reprezentare como! a relaiei este ta%elul %i!imensional =ta%ela !e !ate Dn care liniile reprezinta tuplurile) iar coloanele corespun! !omeniilor =fig ( $ I

?i(. '.1. Relaie reprezentat su% forma unei ta%ele !e !ate Reprezentarea ta%elar este preferat a!esea altor forme !e reprezentare a relaiilor) Dntrucat este u&or !e Dneles &i !e utilizat n prezentarea conceptului !e reatie se recurge uneori la analogii cu alte concepte) e8trem !e %ine cunoscute Dn !omeniul prelucrrii automate a !atelor precum cel !e fi&ier Relaia poate avea semnificaia unui fi&ier)tuplul poate fi consi!erat !rept o Dnregistrare) iar valorile !in ca!rul tuplului pot fi interpretate !rept valori ale cmpurilor !e Dnregistrare n ca!rul mo!elului relaional nu intereseaza !ecat relaiile finite) chiar !ac .$

Dn construirea relaiilor se a!mit !omenii infinite @umrul tuplurilor !intr7o relaie reprezinta cardinalul relaiei) Dn timp ce numrul valorilor !intr7un tuplu !efineste (radul relaiei

'.1.'. Atri)ut In timp ce tuplurile !intr7o relaie tre%uie s fie unice un !omeniu poate apare !e mai multe ori Dn pro!usul cartezian pe %aza cruia este !efinit relaia S consi!erm) !e e8emplu c pentru o persoana !ispunem !e urmatoarele !ate: nume)se8) vrsta &i numele souluiJsoiei 4 posi%ilitate !e organizare a acestor !ate o reprezint relata !in fig ( + R: D( D$ D+ F#ariaG F5G (1 FOasileG F#G (* ?i(.'.". Relaia "6RS Relatia "6RS reprezint un su%ansam%lu al pro!usului cartezian: D( 8 D$ 8 D+ 8 D( Semnificaia valorilor !in ca!rul unui tuplu se sta%ile&te Dn acest caz nu numai pe %aza !omeniului !e care aparin valorile) ci &i in funcie !e poziia ocupat Dn ca!rul tuplului Depen!ena fat !e or!ine a !atelor inseamn o re!ucere a fle8i%iltii organizarii !atelor ntr7o organizare eficient) fle8i%il) or!inea liniilor &i a coloanelor !in ca!rul ta%elei !e !ate nu tre%uie s prezinte nici o importan "entru a !iferenia coloanele care conin valori ale aceluia&i !omeniu &i a elimina astfel !epen!ena !e poziie Dn ca!rul ta%elei se asociaz fiecarei coloane un nume !istinct) ceea ce !uce la aparita noiunii !e atri%ut Atri)utul reprezint coloana unei ta%ele !e !ate) caracterizat printr7 un nume @umele coloanei =atri%utuluiI e8prim !e o%icei semnificaia valorilor !in ca!rul coloanei respective Sc2ema unei rela*ii "rin sc2ema unei relaii se Dntelege numele relaiei) urmat !e lista atri%utelor) pentru fiecare atri%ut precizn!u7se !omeniul asociat Astfel) pentru o relaie R) cu atri%utele A$) A+) ) An &i !omeniile: D$) D+) ) Dm) cu m \[ n) schema relaiei R poate fi reprezentat Dntr7una !in formele prezentate in fig ( . R=A$:D$) Q) An:DmI aI A$:D$ Q %I An:Dm

.+

'.1.+.O%eratorii modelului rela*ional #o!elul relaional ofera !oua colecii !e operatori pe relaii &i anume: 7 alge%ra relaionala' 7 calculul relaional La rn!ul sau) calculul relaional este !e !ou tipuri: 7 calcul relaional orientat pe tuplu' 7 calcul relaional orientat pe !omeniu @e limitm) Dn cele ce urmeaz) la elemente !e alge%r relaional '.". Al(e)ra rela*ional& $i e>tensiile sale 6 5 Co!! a intro!us alge%ra relaionala =ARI cu operaii pe relaii) fiecare operaie avn! !rept operanzi una sau mai multe relaii &i pro!ucn! ca rezultat o alt relaie ?nele operaii ale AR pot fi !efinite prin interme!iul altor operaii n acest sens) putem vor%i !e: 7 operaii !e %az) precum: reuniunea) !iferena) pro!usul cartezian etc 7 operaii !erivate) ca: intersecia) !iviziunea etc Co!! a intro!us a&a numita AR stan!ar!) constituit !in , operaii !e %az: reuniunea) !iferena) pro!usul cartezian) proiecia) selecia &i Honciunea precum &i !in !ou operaii !erivate: intersecia &i !iviziunea ?lterior) la operaiile AR standard au fost a!ugate &i alte operaii) a&a numitele operaii Ra!iionaleR sau e>tensii ale AR standard) precum:comple7 mentara unei relaii) splitarea =spargereaI unei relaii) Dnchi!erea tranzitiv etc n continuare vor fi prezentate principalele operaii ale AR) precum &i mo!ul lor !e utilizare 1. Reuniunea Reprezint o operaie a AR !efinita pe !oua relaii: R$ &i R+ am%ele cu o aceea&i schem) operaie care const !in construirea unei noi relaii R() cu schema i!entic cu R$ &i R+ &i avn! !rept e8tensie tuplurile !in R$ &i R+ luate impreun o singur !at @otaia uzual pentru reuniune este: R$ ? R+ Reprezentarea grafic a reuniunii este prezentata in fig ( (

.(

?i(.'.'. Reuniunea relatiilor 4RAS6 &i #?@ICI"II In fig ( ( este ilustrata aceasta operatie ". Di8eren*a Reprezint operaie !in AR !efinit pe !oua relaii: R$ &i R+) am%ele cu o aceea&i schem) operaia constn! !in construirea unei noi relaii R() cu schema i!entic cu a operanzilor &i cu e8tensia format !in acele tupluri ale relaiei R$ care nu se regsesc &i Dn relaia R+ @otaia uzual pentru operaia !e !iferen a !oua relaii este: R$7R+ n fig ( . este prezentat un e8emplu !e !iferen a !oua relaii

?i(.'.+. Diferena relaiilor 4RAX6 &i #?@ICI"II '. Produs cartezian Reprezint o operaie a AR !efinit pe !ou relaii: R$ &i R+) operaie care const !in construirea unei noi relaii R() a crei schem se o%ine prin concatenarea schemelor relaiilor R$ &i R+ &i a crei e8tensie cuprin!e toate com%inaiile tuplurilor !in R$ cu cele !in R+ @otaia uzual pentru !esemnarea operaiei este: R$8R+ 5ig ( * prezint un e8emplu !e pro!us cartezian a !ou relaii :RA@S": 4RAX:D$ 0ra&ov :rgovi&te 0ra&ov :rgovi&te 0ra&ov :rgovi&te N?D6^: D$ 0ra&ov Dm%ovia 0ra&ov Dm%ovia 0ra&ov Dm%ovia :RA@S"4R::D( tramvai tramvai auto%uz auto%uz trolei%uz trolei%uz :ARI5: N?D6^:D$ 0ra&ov C :ARI5:D. (1 (1 *1 *1 *1 *1

4RAX6: 4RAX:D$ 0ra&ov

..

:rgovi&te Dm%ovia :RA@S":D( tramvai auto%uz trolei%uz ?i(.'.0 "ro!usul cartezian al relaiilor 4RAX6 &i :ARI56 +. Proiec*ia Reprezint o operaie !in AR !efinit asupra unei relaii R) operaie care const !in construirea unei noi relaii ") Dn care se regsesc unele atri%ute !in R) Dnseamn efectuarea unor tieturi verticale asupra lui R) care pot avea ca efect apariia unor tupluri !uplicate ce se cer a fi eliminate "rin operaia !e proiecie se trece !e la o relaie !e gra! n la o relaie !e gra! p) mai mic !ect cel iniial =p \ nI ceea ce e8plic &i numele !e proiecie atri%uit operaiei @otaia uzual pentru operaia !e proiecie este: _Ai)AH)Q)Am=RI n fig ( , este e8emplificat operaia !e proiecie a unei relaii :ARI5:D( (1 *1 *1

?i(.'.1. "roiectia relaiei 4RAX6 pe atri%utul RNu!eR 0. Selec*ia Roprezint o operaie !in AR !efinit asupra unei relaii R) operaie care const !in construierea unei relaii S) a crei schem este i!entic

.*

cu cea a relaiei R &i a crei e8tensie este constituit !in acele tupluri !in R care satisfac o con!iie menionat e8plicit Dn ca!rul operaiei ntruct cel mai a!esea) nu toate tuplurile !in R satisfac) aceast con!iie) selecia Dnseamn efectuarea unor tieturi orizontale asupra relaiei R) a!ic eliminarea !e tupluri Con!iia precizat Dn ca!rul operaiei !e selecie este Dn general !e forma:

un!e: Roperator !e comparaieR poate fi: \) \[) ][) ] sau \] @otaia folosit in mo! uzual pentru !esemnarea operaiei !e selecie este urmtoarea: `=con!itieIR n fig ( - este e8emplificat operaia !e selecie

?i(.'.3. Selecie efectuata asupra relaiei 4RAX6 1. Donc*iunea Doinul!. Reprezint o operaie !in AR !efinit pe !ou relaii: R$ &i R+) operaie care const !in construirea unei noi relaii R() prin concatenarea unor tupluri !in R$ cu tupluri !in R+ Se concateneaza acele tupluri !in R$ &i R+ care satisfac o anumita con!iie) specificat e8plicit Dn ca!rul operaiei 68tensia relaiei R( va contine !eci com%inaiile acelor tupluri care satisfac con!iia !e concatenare @otaiiile uzuale pentru !esemnarea operaiei !e Honciune sunt:

Reprezentarea grafic a aeestei operaii este prezentat Dn fig ( 2

.,

?i(.'.4 Reprezentarea grafica a operaiei !e Honciune In general) con!iia !e concatenare menionata in ca!rul operaiei !e Honciune este !e forma:

In funcie !e operatorul !o comparaie !in ca!rul con!iiei !e concatenare) Hoinul poate fi !e mai multe tipuri Cel mai important tip !e Hoin) Dn sensul celei mai frecvente utilizri este ePuiHoinul EEui-oinul reprezinta Honciunea !iriHat !e o con!iie !e forma:

4peratia !e Honciune se poate e8prima cu aHutorul operaiilor !e pro!us cartezian &i selecie) rezultatul unui Hoin fiin! acela&i cu rezultatul unei selecii operate asupra unui pro!us cartezian) a!ic: N4I@ =R$)R+) con!iieI [ R6S:RIC:="R4D?C:=R$)R+I) con!iieI "ro!usul cartezian reprezint o operaie la%orioas &i foarte costisitoare) ceea ce face ca in locul pro!usului s fie utilizat Hoinul ori !e cte ori acest lucru este posi%il Cu toate c apare !rept o operaie !erivat) Hoinul este prezentat !e o%icei !rept o operaie !e %az !in AR) !at fiin! importana sa in ca!rul sistemelor relaionale) Dn special la construirea relaiilor virtuale In ca!rul fig ( 3 este ilustrat operaia !e ePuiHoin Au fost !efinite numeroase variante ale operaiei !e Honciune) variante care !ifer nu numai Dn funcie !e tipul con!iiilor !e concatenare) ci &i !up mo!ul !e !efinire a schemei &i respectiv) e8tensiei relaiei rezultate prin Honciune Donc*iunea natural& In cazul ePuiHoinului) schema relaiei conine toate atri%utele celor !oi operanzi =fig ( $1 I n toate tuplurile relaiei rezultat vor e8ista !e aceea cel puin !ou valori egale In sensul eliminrii acestei re!un!ane s7a intro!us Honciunea natural) ca operaie !efinit pe !ou relaii: R$ &i R+) prin care este construit o noua relaie R() a crei schem este o%inut prin reuniunea atri%utelor !in relaiile R$ &i R+ =atri%utele cu acela&i nume se iau o singur !atI &i a crei e8tensie conine tuplurile o%inute prin concatenarea tuplurilor !in R$ cu tuplurile !in R+ care prezint acelea&i valori pentru atri%utele cu acela&i nume

.-

?i(.'.5. 4peraia !e ePuiHoin a relaiilor 4RAX6 &i 6S:I#ARI @otaia uzual pentru Honciunea natural este: Reprezentarea grafic a acestei operaii este prezentat Dn fig ( $1

?i(.'.10. Reprezentarea grafic a operaiei !e Honciune natural

?i(.'.11. 4peraia !e Honciune natural a relaiilor 4RAX6 &i 6S:I#aRI n fig ( $$ este e8emplificat operaia !e Honciune natural 3. Intersec*ia Reprezint o operaie a AR !efinit pe !ou relaii: R$ &i R+ am%ele cu aceea&i schem) operaie care const !in construirea unei noi relaii R() cu schema i!entic cu a operanzilor &i cu e8tensia format !in tuplurile comune lui R$ &i R+ @otaile uzuale folosite pentru !esemnarea operaiei !e intersecie sunt:

.2

Reprezentarea grafic a operaiei !e intersecie este prezantat Dn fig ( $+ ) iar un e8emplu !e intersecie a !oua relaii figureaz Dn fig ( $(

?i(.'.1". Reprezentarea grafica a operatiei !e intersectie

?i(.'.1' Intersecia relatiilor 4RAX6 &i #?@ICI"II Intersecia reprezint o operaie !erivat) care poate fi e8primat prin interme!iul unor operaii !e %az De e8emplu) operaia !e intersecie se poate e8prima prin interme!iul operaiei !e !iferen) cu aHutorul urmtoarelor echivalene: R$ R+[R$7=R$7R+I R$ R+[R+7=R+7R$I ()ercitii recapitulative Se !au urmtoarele relaii cu schemele lor: .Sc&ri =@rW%loc) Scara) LiftI .A%artamente=@rW%loc)Scara)Apartament)Suprafaa)CutiiWpo&tale) @rWprizeWtvI 7 ?amilii =@rWmat) @rWpers) @rWpersWprez) @rWcheiI 7,ocatari @rW#at) @rW%loc) Scara) 6taH) Apartament)@ume S se e8prime Dn alge%ra relaional cererile: $I =ta%el nominal cu locatarii !e pe scara [ ( !in %loc [ (.I [ R$ .3

+I (I .I *I ,I

=ta%el nominal cu locatarii !e pe scara [ $ !in %loc [ (.I [ R+ =ta%el nominal cu locatarii !e pe scara [ + !in %loc [ (.I [ R( ta%el nominal cu locatarii !e pe scrile $)+)( ale %locului (. lista apartamentelor cu suprafaa mai mare !ect *1 mp ta%el nominal cu persoanele carelocuiesc pe scara ( %loc (. &i nu locuiesc &i pe scara $ a aceluia&i %loc

Rspunsuri la e)erciii $I R$[nume=%loc[(. an! scara[(=scariI =locatariII +I R+[ nume =%loc[(. an! scara[$=scariI =locatariII (I R([ nume =%loc[(. an! scara[+=scariI =locatariII .I R [ R$ R+ R( *I R [ suprafaa ] *1=apartamenteI ,I R[ =R$7R+I

Ca%itolul +. ,im)a-e de intero(are comerciale


+.1. Istoric; o)iecti7e S/, =Structured /uerA ,an(ua(eI) a fost conceput iniial !e firma I0#) pentru pro!usul !0AS6) ca un lim%aH stan!ar! !e !escriere a !atelor &i !e acces la informtiile !in %azele !e !ate Lim%aH !e interogare a %azelor !e !ate relaionale) S9L a fost utilizat pe scar larg &i pan Dn prezent au fost !ezvoltate &apte versiuni ale stan!ar!ului S9L) trei !intre ele aparinDn! Institutului National American !e Stan!ar!e =ANSI!) celelalte fiin! concepute !e firme !e prestigiu ca I0#) #icrosoft &i 0orlan! sau !e cVtre consorii ca SAG =62e S/, Access Grou%I &i C<O%en "rimul stan!ar! S9L a fost creat in anul $323 !e cVtre A@SI fiin! cunoscut su% numele !e ANSI.S/,F45 $i a fost revizuit in octom%rie $33+ su% noua !enumire: ANSI.S/,F5". In anul $33+) firma #icrosoft) in calitate !e mem%ru SA/) a lansat pe piata pro!usul ODBC =O%en Data)ase Connecti7itAI) un stan!ar! API.S/, care !efineste o interfatV !e programare a aplicaiilor =API! pentru accesul la %azele !e !ate "e !e alta parte) un alt mem%ru SA/) firma 0orlan!) a pregatit propriul sVu stan!ar! A"I7S9L !enumit IDAPI =Inte(rated Data)ase A%%lication Pro(rammin( Inter8aceI In Dncercarea !e a e8tin!e su%stantial lim%aHul S9L) A@SI pregateste noua generatie !e stan!ar!e S9L) !enumitV S/,'; care se a!reseaza %azelor !e !ate orientate o%iect #entionam aici &i stan!ar!ul I0# pentru acces la %azele !e !ate !e pe platformele proprii) !enumit DRDA =Distri)uted Relational Data)ase *1

AccessI Interfata !e programare A"I oferV o cale !e comunicare Dntre programe &i %azele !e !ate prin apeluri !e functii care su%stituie instructiunile S9L Astfel) stan!ar!ele A"I se %azeazV pe conectivitate &i anume pe conectarea utilizatorului la %aza !e !ate) precum &i pe schim%ul !e !ate &i mesaHe S9L Conceperea !e interfete !e programare A"I pentru S9L oferV posi%ilitatea gestionarii mai multor tipuri !e %aze !e !ate cu costuri relativ scVzute Interfetele !e programare A"I) realizate in ca!rul grupului SA/ !e cVtre firmele #icrosoft &i 0orlan!) se %azeaza pe un su%set al stan!ar!ului A@SI /estiunea %azelor !e !ate !e !iferite tipuri se poate face usor prin interme!iul interfetelor inteligente) numite !rivere Acestea receptioneazV mesaHele !e la clienti &i le tra!uc Dn instructiuni S9L sau A"I Deci Dn loc !e a interoga !irect %aza !e !ate) clientul conveseazV cu interfata inteligentV) ceea ce asigurV in!epen!enta fatV !e implementarea %azelor !e !ate Aceste interfete con!uc la cre&terea performantelor )utilizDn! !ialectul S9L sau %i%liotecile A"I Se pare ca Dn viitorul apropiat nu se DntrevV! schim%Vri maHore Dn !omeniul stan!ar!elor S9L +.". Clauze $i o%eratori S/, +.".1. Clauzele SE,EC6; ?RO# $i GHERE Clauzele S9L SE,EC6; ?RO# $i GHERE pot fi puse Dn corespon!entV cu operatorii !in alge%ra relaionalV) !upa cum urmeaza: clauza SE,EC6 mentioneaza o lista !e atri%ute &i corespun!e proiectiei !in alge%ra relaionalV' clauza ?RO# mentioneazV o listV !e relatii =ta%eleI &i corespun!e pro!usului cartezian !in alge%ra relaionala' clauza GHERE !escrie un pre!icat !e selectie &i corespun!e selectiei !in alge%ra relaionalV SE,EC6 A1; A"; ...; An ?RO# R1; R"; ...; Rm GHERE P ?n!e: Ai sunt atri%ute care apar Dn cel putin una !intre relatiile Ri' Ri sunt relatii =ta%eleI' P este un pre!icat !e selectie Interogarea este echivalentV cu urmatoarea e8presie !in alge%ra relaionalV: Inelesul !iferit al termenului RselectR utilizat Dn S9L &i in alge%ra relaional este un fapt istoric nefericit In S9L) RselectR !esemneaza proiectia iar in

4 interogare simpla S9L este !e forma:

*$

alge%ra relaionala acelasi termen !esemneaza selectia !upa un pre!icat !e selectie Lista !e atri%ute care apare in clauza S6L6C: !in S9L poate fi inlocuita cu sim%olul b !aca se !oreste selectarea tuturor atri%utelor care apar in relatiile !in clauza 5R4# Intot!eauna rezultatul unei interogari S9L este o relatie =o ta%elaI "entru a ilustra cu e8emple mo!ul in care se scriu interogarile S9L vom utiliza ta%ele cu urmatoarea structura: :a%ela ?URNIIORI cu schema !e relatie =cod)furnizor, nume)furnizor, adresa)furnizorI :a%ela ?,ORI cu schema !e relatie =cod)produs, nume)produs, culoare, inaltime, pret)unitarI :a%ela CO#ENII cu schema !e relatie =nr)comanda, cod)produs, cod)furnizor, data)comenzii, timp)livrare, cantitateI "resupunem ca aceste ta%ele constituie un mo!el foarte simplificat !e %aza !e !ate legata !e evi!entele unei florarii) evi!ente legate !e florile pe care floraria le vin!e !e o%icei =ta%ela 5L4RII) !e comenzile pe care le face floraria =ta%ela C4#6@cII &i !e furnizorii !e la care o%isnuieste floraria sa cumpere flori =ta%ela 5?R@Ic4RII "resupunem !e asemenea ca atri%utul adresa)furnizor !in schema !e relatie corespunzatoare ta%elei 5?R@Ic4RI este un atri%ut compus 6l poate fi !escompus in: oras, strada, numar ECE#P,EB Sa se e8prime in S9L urmatoarele inteogari: 1! -Sa se afiseze toate datele despre toti furnizoriiSE,EC6 J ?RO# 8urnizori "! -Sa se afiseze orasele de resedinta ale tuturor furnizorilorSE,EC6 oras ?RO# 8urnizori Ca rezultat al acestei interogari se va o%tine o ta%ela cu o singura coloana) care contine numele oraselor !e rese!inta ale furnizorilor Se va o%serva ca se repeta numele oraselor) !eoarece se vor afisa orasele pentru fiecare furnizor in parte !in ta%ela 5?R@Ic4RI 4 interogare S9L are urmatoarea forma generala: SE,EC6 KDIS6INC6<A,,L Mlista de atri)uteN ?RO# Mlista de relatiiN KGHERE MconditieN < GROUP BOM lista de atri)uteN < HAPING MconditieN < ORDER BO Mlista de atri)uteN KASC < DESCL < UNION Msu)Qintero(areNL9 ... ... DupV cum se o%servV) singurele elemente o%ligatorii intr7o interogare S9L sunt clauzele S6L6C: cu lista !e atri%ute ce vor fi e8trase &i clauza 5R4# cu *+

relatiile !in care fac parte atri%utele Asa!ar o interogare S9L tre%uie sa contina cel putin urmatoarele informatii: SE,EC6 Mlista de atri)uteN ?RO# Mlista de relatiiN restul clauzelor sunt optionale Lista !e atri%ute poate consta !in : o serie !e atri%ute separate prin virgulV care vor apVrea Dn ta%ela7rezultat Dn or!inea e8plicitatV Dn linia !e coman!V) !e la stanga la !reapta' toate atri%utele !in relatia asupra careia se aplica interogarea) Dn or!inea Dn care au fost !efinite Dn aceastV relatie =in locul acestei liste se poate utiliza semnul RJRI' e8presii formate !in urmatoarele elemente: 7atri%ute &i operatori cantitateJ%retQunitarI 7constante' 7varia%ile !e memorie e8presii care contin functii S9L agregat cum ar fi APG !; #AC !; #IN !; COUN6 !; SU# ! aritmetici =!e e8emplu:

7functii stan!ar! =!e e8emplu C6OD= II'

In e8emplele !e mai sus) pentru a evita repetarea unor informatii in ta%elele rezultat se poate utiliza cuvintul cheie DIS6INC6 4ptiunea DIS6INC6 permite eliminarea tuplelor !uplicat In acest mo! numai prima aparitie a unui tuplu este afisatV Dn ta%ela7rezultat ECE#P,UB -Sa se afiseze toate orasele resedinte ale furnizorilor, dar sa apara fiecare oras o singura data in tabela!rezultatSE,EC6 DIS6INC6 oras ?RO# 8urnizori Aceasta interogare va avea ca rezultat o ta%ela care contine toate orasele in care isi au rese!inta furnizorii !in ta%ela 5?R@Ic4RI) !ar fiecare oras va fi afisat o singura !ata 4ptiunea A,, permite !impotrivV) afisarea tuplelor7!uplicat AceastV optiune este implicitV Clauza ?RO# are forma generala: ?RO# MMnume relatieN< Mnume 7ie=NKMaliasNL ... N

*(

si specifica relatiile =pot fi &i nume !e vieEI !in care vor fi regVsite !atele In cazul Dn care se operazV cu mai multe ta%ele) este utilV atri%uirea unor prescurtVri) =numite aliasI numelor !e ta%ele ce vor fi utilizate Dn interogare ECE#P,EB 1! -Sa se afiseze codurile furnizorilor i numerele de comanda corespunzatoare pentru toti furnizorii care a cel putin o comandaSE,EC6 1.codQ8urnizor; B.numarQcomanda ?RO# 8urnizori 1; comenzi B GHERE 1.codQ8urnizorRB.codQ8urnizor "! -Sa se afiseze codurile furnizorilor, numele furnizorilor, cantitatile, i numerele comenzilor pentru toti furnizorii care au cel putin o comandaSE,EC6 A.codQ8urnizor; numeQ8urnizor; numarQcomanda ?RO# 8urnizori A; comenzi B GHERE A.codQ8urnizorRB.codQ8urnizor cantitate;

A se o%serva ca in al !oilea e8emplu nu s7a mai utilizat notatia cu alias pentru atri%utul numarQcomanda !in ta%ela comenzi !eoarece nu este pericol !e confuzie In schim% s7a utilizat notatia pentru a !eose%i atri%utul codQ8urnizor !in ta%ela 8urnizori !e atri%utul cu acelasi nume !in ta%ela comenzi. "entru a restrange tuplele ce apar Dn ta%ela7rezultat) se specificV o con!itie !e cVutare prin utilizarea unui pre!icat !e selectie in clauza ;<6R6 Clauza ;<6R6 are forma generala: GHERE M%redicatN < Me>%resieN9 @umai tuplele care satisfac pre!icatul !e selectie vor fi incluse in ta%ela7 rezultat "re!icatul !e cVutare poate fi specificat printr7o con!itie logica in care se utilizeaza urmatoarele elemente: operatori: 7 aritmetici: d 7 J b bb e 7 relaionali: M N MR NR MN SR R . logici: NO6 AND OR 7 operatori S9L: IN; ECIS6S; A,,; ANO su%7interogVri =e8primate prin interogari S9LI)cu o%servatia cV acestea vor fi primele evaluate &i ta%ela7rezultat tre%uie sV corespun!V operatorilor ce i se aplicV Dn continuare

O%eratorii aritmetici Acesti operatori sunt %inecunoscuti &i mentionam aici !oar faptul ca &i bb &i e reprezinta ri!icarea la putere

*.

Ca operanzi) se pot utiliza atri%ute) constante) functii sau e8presii alge%rice 68presiile alge%rice pot aparea in clauzele S6L6C: sau ;<6R6 ECE#P,UB -Sa se afiseze codul produsului i valoarea pe care o reprezinta cantitatea de produs comandata la diversi furnizoriSE,EC6 codQ%rodus; cantitateJ%retQunitar ?RO# comenzi GHERE cantitateMN0 O%eratorii rela*ionali \ ] f \[ [] \] mai mic mai mare negarea operatorilor \) ]) [ Se o%tin operatorii: f[=!iferitI) f \=nu mai micI) f]=nu mai mareI mai mic sau egal mai mare sau egal !iferit

5acem o%servatia c valorile comparate tre%uie s apartin unor tipuri !e !ate compati%ile =care se pot compara intre eleI ECE#P,UB -Sa se afiseze codurile plantelor de culoare alba.SE,EC6 cod.%rodus ?RO# 8lori GHERE culoareRFal)F O%eratorii lo(ici DacV o clauzV ;<6R6 contine mai multe con!itii formate prin utilizarea aceluiasi tip !e oparator logic) evaluarea se va face !e la stanga la !reapta tipul !e operator logic este !at !e prece!enta operatorilor 4peratorul @4: are cea mai mare prioritate) urmat !e A@D &i 4R care practic sunt !e prioritati egale "entru a schim%a or!inea !e evaluare a unei e8presii se utilizeazV parantezele rotun!e =I ECE#P,EB 1! -Sa se afiseze numele plantelor de culoare alba i de inaltime minima ./ cmSE,EC6 numeQ%lanta ?RO# 8lori GHERE culoareRFal)F AND inaltimeM00 "! -Sa se afiseze numele, culoarea i inaltimea plantelor care fie au culoarea alba fie sunt de inaltime mai mica de ./ cm-

**

SE,EC6 numeQ%lanta; culoare; inaltime ?RO# 8lori GHERE culoareRFal)F OR inaltimeM00 '! A se o%serva ca ultima interogare este echivalenta cu interogarea SE,EC6 numeQ%lanta; culoare; inaltime ?RO# 8lori GHERE culoareRFal)F OR NO6 inaltimeNR00

+.".". Ordonarea tu%lelor clauza ORDER BO! n e8emplele anterioare) tuplele ta%elei7rezultat apar Dn aceeasi or!ine Dn care au fost intro!use "entru mo!ificarea or!inii !e afisare se utilizeazV clauza ORDER BO. 5orma generala a acestei clauze este: ORDER BO M Mnume atri)utN<MnumTr @ntre(N! ASC< DESC!N;... :uplele sunt or!onate Dn mo! implicit Dn or!ine ascen!entV =ASCI 4r!inea este: 1) )3)A) )c)a) )z conform co!ului ASCII Afisarea Dn or!ine !escrescVtoare se poate face prin utilizarea optiunii D6SC ECE#P,UB -Sa se afiseze datele despre florile din evidente in ordinea alfabetica a numelor florilor.SE,EC6 J ?RO# 8lori ORDER BO numeQ%lanta; ASC A se o%serva ca !aca ar fi lipsit mentiunea ASC) or!inea tuplelor ar fi fost aceeasi !eoarece or!inea ascen!enta este implicita n loc !e precizarea numelui atri%utului !upV care se face or!onarea) se poate preciza pozitia atri%utului Dn lista !e atri%ute specificate Dn coman!a S6L6C: ECE#P,UB SE,EC6 oras; codQ8urnizor; numeQ8urnizor ?RO# 8urnizori ORDER BO 1 DESC; ' ASC In urma e8ecutiei interogarii se va o%tine o ta%ela cu numele oraselor sortate !escrescator &i pentru fiecare oras) co!urile furnizorilor &i apoi numele funizorilor in or!ine alfa%etica O%eratorul IN permite simplificarea pre!icatului !e cVutare "re!icatul I@ testeazV !acV valoarea unui atri%ut specificat Dn lista !e atri%ute !in clauza ;<6R6 se potriveste uneia !in valorile listei specificate Dn pre!icatul I@ =testeazV apartenenta la o multimeI *,

ECE#P,UB -Sa se afiseze toate datele despre furnizorii care au sediul in &ucuresti sau in &rasov sau in 0lu#SE,EC6 J ?RO# 8urnizori GHERE oras IN FBUCURES6IF; FBRASOPF; FC,UDF! ?unctii standard 5unctiile stan!ar!) cunoscute &i su% numele !e functii agregat) apar in clauza S6L6C: &i se aplica atri%utelor !in ta%elele implicate in interogare 5unctii stan!ar! sunt: .7aloarea medie . APG .7aloarea minima . #IN .7aloarea ma>ima . #AC .total sumare! . SU# .numTrTtoare . COUN6 @4:A: @u este permisa utilizarea acestor functii in clauza ;<6R6 !eoarece ele actioneaza la nivel !e atri%ut &i nu la nivel !e tuplu ECE#P,EB 1! -0are este cantitatea minima comandata1SE,EC6 #IN cantitate! ?RO# comenzi Spre e8emplu)urmVtoarea interogare are ca rezultat afisarea cantitVtii totale &i a numVrului !e pro!use !in fisierul !e comenzi SE,EC6 SU# cantitate!; COUN6 J! ?RO# comenzi "! -0are este cantitatea medie comandata1SE,EC6 APG cantitate! ?RO# comenzi '! -0are este cantitatea totala comandata din planta cu cod 23/321SE,EC6 SU# cantitate! ?RO# comenzi GHERE codQ%rodusRF"0"F +! -0ate tuple contine tabela de flori1SE,EC6 COUN6 J! ?RO# 8lori 0! -0ate culori de flori sunt inregistrate pentru florile din fisier1-

*-

SE,EC6 COUN6 DIS6INC6 culoare! ?RO# 8lori +.".'. Gru%area rezultatelor clauza GROUP BO! n multe cazuri) utilizatorul !oreste anumite situatii sintetice) cum ar fi o%tinerea !e totaluri &i su%totaluri "entru aceaste operatii) lim%aHul S9L permite utilizarea clauzelor GROUP BO $i HAPING. Aceste clauze organizeazV tuplele Dn grupuri asupra cVrora se pot realiza anumite operatii) Dn special prin aplicarea functiilor agregat Clauza GROUP BO grupeazV tuplele !in relatie !upV atri%utele cu aceeasi valoare care sunt specificate Dn clauzV) &i generezV un singur tuplu pentru fiecare grup !e tuple cu aceeasi valoare pe atri%ut Atri%utele care apar Dn clauza SE,EC6 pot fi !e !ouV feluri: 7 atri%ute care alcVtuiesc %aza pentru grupare =cele care apar Dn clauza GROUP BOI 7 atri%ute care nu participa la gruparea rezultatelor ECE#P,UB 1! -In ce orase exista furnizori ai florariei1SE,EC6 oras ?RO# 8urnizori GROUP BO oras In urma e8ecutarii interogarii vor apare orasele !in fisierul !e furnizori listate o singura !ata "! -0ati furnizori au sediul in fiecare oras1SE,EC6 oras; COUN6 J! ?RO# 8urnizori GROUP BO oras '! -In care orase locuiesc cel putin 4 furnizori1SE,EC6 oras; COUN6 J! ?RO# 8urnizori GROUP BO oras HAPING COUN6 J!NR' Clauza GROUP BO se poate folosi &i cu clauzele ORDER BO &i GHERE ECE#P,EB 1! -Sa se afiseze in ordine alfabetica orasele in care exista furnizori ai florariei- =A se o%serva ca interogarea este asemanatoare cu interogarea $I !in e8emplele anterioare Diferenta consta in faptul ca lista !e orase va fi or!onata alfa%etic !upa numele oraselor I

*2

SE,EC6 oras ?RO# 8urnizori GROUP BO oras ORDER BO oras "! -0are furnizori livreaza in interval de cel mult 56 zile1SE,EC6 codQ8urnizor ?RO# comenzi GHERE tim%Qli7rareM13 GROUP BO codQ8urnizor +.".+. Intero(ari %e mai multe ta)ele ?na !intre operatiile cele mai frecvente realizate cu mai multe ta%ele este Honctiunea sau pro!usul cartezian Nonctiunea aminteste !e operatiile !in alge%ra relaionala &i chiar este posi%il !e realizat =urman! anumite structuri ale interogarii S9LI oricare !intre tipurile !e Honctiune prezentate teoretic in ca!rul alge%rei relaionale Se pot !e asemenea realiza operatii ca reuniunea) intersectia &i !iferenta Sinta8a interogarii S9L !ifera !e la un S/0D la altul !ar su% o forma !irecta sau printr7o constructie sintactica specifica se pot realiza oricare !intre operatiile amintite ECE#P,EB 1! -Sa se afiseze codurile furnizorilor, numele furnizorilor, cantitatile comandate i numerele comenzilorSE,EC6 1.codQ8urnizor; numeQ8urnizor; cantitate; nrQcomanda ?RO# 8urnizori 1; comenzi ) GHERE 1.codQ8urnizorR).codQ8urnizor A se o%serva scrierea cu notarea tuplelor care apartin fiecarei ta%ele pentru a evita orice confuzie in legatura cu ta%ela !in care se va e8trage informatia 68ista !oua atri%ute in ta%ele !iferite care au acelasi nume: atri%utele cod)furnizor #o!ul !e notare !e mai sus este acceptat !e sinta8a S9L &i !iferentiaza atri%utul cod)furnizor !in ta%ela furnizori !e atri%utul cod)furnizor !in ta%ela comenzi "! -Sa se afiseze datele de mai sus dar numai pentru furnizorii care au adresa in &rasovSE,EC6 1.codQ8urnizor; numeQ8urnizor; cantitate; nrQcomanda ?RO# 8urnizori 1; comenzi ) GHERE 1.codQ8urnizorR).codQ8urnizor AND orasRFBraso7F '! -0e flori au aceeasi inaltime cu laleaua1- A se o%serva ca aceasta interogare necesita realizarea pro!usului cartezian al ta%elei 5L4RI cu ea insasi SE,EC6 %1.numeQ%lanta; %".inaltime *3 %".numeQ%lanta; %1.inaltime;

?RO# 8lori %1; 8lori %" GHERE %1.inaltimeR%".inaltime AND %".numeQ%lantaRF,A,EAF Clauza UNION Clauza ?@I4@ permite realizarea reuniunii !e ta%ele In cazul can! !orim sa reunim !oua sau mai multe ta%ele) este o%ligatoriu ca acestea sa fie !escrise !e scheme !e relatie i!entice =acelasi numar !e atri%ute &i corespunzator C !e la stanga la !reapta C atri%utele !in ta%ele au acelasi nume &i aceeasi !escriereI Aceste con!itii sunt impuse ta%elelor implicate in operatiile intersectie &i minus =!iferentaI 4peratiile reuniune) intersectie &i !iferenta !e ta%ele actioneaza analog cu aceleasi operatii aplicate la multimi 5orma generala a reuniunii !e ta%ele este: SE,EC6 A1 ;U; Am ?RO# KGHERE UL UNION SE,EC6 A1 ;U; Am ?RO# U KGHERE UL ECE#P,EB 1! -Sa se afiseze numele plantelor i codurile plantelor care au inaltimea fie mai mica decat 3/ cm fie mai mare decat ./ cm.SE,EC6 numeQ%lanta; codQ%rodus ?RO# 8lori GHERE culoareRFal)F AND inaltimeM"0 UNION SE,EC6 numeQ%lanta; codQ%rodus ?RO# 8lori GHERE culoareRFal)F AND inaltimeN00! +.".0. Su)intero(ari clauze SE,EC6 im)ricate! ?nul !in motivele pentru care S9L este consi!erat un lim%aH puternic !e interogare este acela cV oferV posi%ilitatea construirii interogVrilor comple8e) formate !in mai multe su%interogVri simple Aceste interogVri comple8e sunt construite prin inclu!erea Dn clauza GHERE a inca unei clauze SE,EC6 5orma generala a unei astfel !e constructii este: SE,EC6 M lista atri)ute1 N ?RO# M lista relatii1 N GHERE M su)intero(are N Se o%serva ca aceasta constructie a fost !eHa utilizata in e8emplul !e mai sus care ilustreaza o clauza ?@I4@ In constructia !e mai sus clauza S6L6C: interioarV genereazV valorile pentru con!itia !e cVutare a clauzei S6L6C: e8terioare care o contine Clauza ,1

S6L6C: e8terioarV genereazV o relatie pe %aza valorilor generate !e cVtre clauza interioarV #o!ul !e constuire a interogVrii e8terioare !epin!e !e numVrul valorilor returnate !e cVtre interogarea interioarV n acest sens) putem !istinge: 7 su%interogVri care returneazV o singurV valoare 7 su%interogVri care returneazV mai multe valori Din punctul !e ve!ere al or!inii !e evaluare al interogVrilor putem !istinge: su)intero(Tri sim%le Interogarea interioarV este evaluatV prima) in!epen!ent !e interogarea e8terioarV Rezultatul evaluVrii interogVrii interioare este utilizat !e cVtre interogarea e8terioarV su)intero(Tri corelate Oalorile returnate !e cVtre interogarea interioarV !epin! !e valorile returnate !e cVtre interogarea e8terioarV Interogarea interioarV este evaluatV repetat pentru fiecare tuplu cercetat !e interogarea e8terioara Su)intero(Tri sim%le care returnezT o sin(urT 7aloare Aceste interogVri au urmVtoarea sinta8V: SE,EC6 M lista atri)ute N ?RO# M lista relatii N GHERE M atri)ut N M su)intero(are N! un!e este un operator relaional: R M N NR MR SR Oom consi!era urmVtorul e8emplu: ECE#P,UB 1! -S7 se afiseze numele plantelor care au inaltimea egala cu cea a lalelei-. SE,EC6 numeQ%lanta ?RO# 8lori GHERE inaltimeR SE,EC6 inaltime ?RO# 8lori GHERE numeQ%lantaRF,A,EAF! Aceeasi interogare poate oferi lista numelor !e plante in or!ine alfa%etica inversa !aca se utilizeaza &i o clauza 4RD6R 0> SE,EC6 numeQ%lanta ?RO# 8lori GHERE inaltimeR SE,EC6 inaltime ?RO# 8lori GHERE numeQ%lantaRF,A,EAF! ORDER BO numeQ%lanta DESC ,$

"rocesul !e evaluare a acestei interogVri se !esfVsoarV astfel: Se evalueazV Dn primul rDn! interogarea interioarV Con!itia !e evaluare a interogVrii interioare este nume)planta82$9$:92 Oaloarea o%tinuta pentru atri%utul inaltime =sa presupunem ca laleaua are (1 cmI este stocata Dntr7o ta%ela temporara Rezultatul evaluVrii interogVrii interioare !evine con!itie !e cVutare pentru interogarea e8terioarV) care ar putea fi e8primata in aceasta faza ca: SE,EC6 numeQ%lanta ?OR# 8lori GHERE inaltimeR'0 In urma e8ecutarii interogarii e8terioare este creatV o relatie finalV) ce va contine tuplele a cVror inaltime este aceeasi cu valoarea stocata Dn ta%ela temporarV Interogarea interioarV poate contine Dn clauza ;<6R6 &i con!itii comple8e) formate prin utilizarea operatorilor logici =@4:) A@D) 4RI &i a functiilor agregat =AO/) #AA) QI ECE#P,UB RSa se afiseze numele plantelor care au inaltimea minimaR SE,EC6 numeQ%lanta ?OR# 8lori GHERE inaltimeR SE,EC6 #IN inaltime! ?RO# 8lori! Su)intero(Tri sim%le care returnezT mai multe 7alori "rincipiul !e construire a acestui tip !e interogare im%ricatV utilizeazV Dn clauza ;<6R6 con!itii) care evaluate) genereazV o multime !e valori In aceastV categorie intrV operatorii =@4:I I@) =@4:I A@>) =@4:I ALL) =@4:I 6AIS:S ECE#P,EB 1! -0are furnizori mai au inca de executat livrari1SE,EC6 numeQ8urnizor ?RO# 8urnizori GHERE codQ8urnizor IN SE,EC6 codQ8urnizor ?RO# comenzi GROUP BO codQ8urnizor! "! -0are furnizori, dintre furnizorii obisnuiti ai florariei, nu mai au nimic de livrat1SE,EC6 numeQ8urnizor ?RO# 8urnizori ,+

GHERE codQ8urnizor NO6 IN SE,EC6 codQ8urnizor ?RO# comenzi GROUP BO codQ8urnizor! A se o%serva ca cele !oua interogari !ifera !oar prin operatorul logic @4: De asemenea se poate remarca faptul ca prima interogare aminteste !e apartenenta !in teoria multimilor iar a !oua interogare corespun!e operatiei minus =!iferentaI Daca versiunea S9L nu are un cuvant rezervat pentru operatia !iferenta intre ta%ele) se poate constru aceasta operatie cu aHutorul preicatului @4: I@ ca in e8emplul !e mai sus '! -0are furnizori au numarul maxim de comenzi de flori1SE,EC6 numeQ8urnizor ?RO# 8urnizori GHERE codQ8urnizor IN SE,EC6 codQ8urnizor ?RO# comenzi GROUP BO codQ8urnizor HAPING COUN6 J!R SE,EC6 #AC COUN6 codQ8urnizor!! ?RO# comenzi GROUP BO codQ8urnizor!! Su)intero(Tri corelate n e8emplele !e panV acum) interogarea interioarV era evaluatV prima) !upV care valoarea sau valorile rezultate erau utilizate !e cVtre clauza ;<6R6 !in interogarea e8terioarV 68ista &i o alt forma !e su%interogare &i anume su)intero(area corelatT; caz Dn care interogarea e8terioarV transmite repetat cDte o valoare pentru interogarea interioarV De fiecare !atV cDn! este transmisV o valoare) este evaluatV interogarea interioarV DacV am%ele interogVri acceseazV acelasi ta%el) tre%uie asigurate alias7uri pentru fiecare referintV la ta%elul respectiv Am%ele interogVri accesezV tuple !iferite !in acelasi ta%el Dn acelasi moment ECE#P,UB -Sa se afiseze culoarea, inaltimea i numele plantelor pentru plantele cu inaltimea maxima, ordonate dupa culoareSE,EC6 culoare; inaltime; numeQ%lanta ?RO# 8lori 8 GHERE inaltimeR SE,EC6 #AC inaltime! ?RO# 8lori GHERE culoareR8.culoare!

,(

ORDER BO culoare A se o%serva ca &i interogarea anterioara se poate inca!ra in cazul ilustrat !e e8emplul !e mai sus +.".1. O%eratorii ANO $i A,, 4peratorul ANO poate fi utilizat Dn com%inatie cu oricare !intre operatorii relaionali =R M N NR MR fR! pentru a se verifica !acV valoarea unui atri%ut este egala) mai mica) mai mare) etcQ!ecat oricare !intre valorile mentionate o!ata cu operatorul ?rmVtoarele pre!icate sunt echivalente : R ANO SR ANO si si IN NO6 IN

4peratorul A,, returneazV tuplele pentru care valorile atri%utului !in clauza ;<6R6 sunt mai mici) mai mari) mai mici sau egale) etc Q !ecat toate valorile generate !e interogarea interioarV SV facem o%servatia cV acest operator nu poate fi utilizat cu operatorul relaional [) ceea ce ar corespun!e cazului %anal Dn care toate valorile !in listV sunt i!entice: "entru a sta%ili mai e8act mo!ul in care se selecteaza valorile cu operatorii A@> &i ALL !am mai Hos o serie !e cazuri concrete Sa presupunem ca interogarea este !e forma: SE,EC6 U ?RO# U GHERE > M A,, 1; "; '; +! Sa o%servam ca !aca inlocuim operatorul A,, cu e8presia ver%ala toate putem citi ROalorile lui 8 tre%uie sa fie mai mici !ecat toate valorile !in paranteza ce urmeaza !upa ALL R Atunci vom lua in consi!erare urmatoarele situatii: E>%resia din clauza GHERE 8 \ ALL 8 \[ ALL 8 ] ALL 8 ][ ALL Daca vom stu!ia o interogare !e forma: SE,EC6 U ?RO# U GHERE > M ANO 1; "; '; +! Sa o%servam ca !aca inlocuim operatorul ANO cu e8presia ver%ala oricare putem citi ROalorile lui 8 tre%uie sa fie mai mici !ecat oricare !intre valorile !in paranteza ce urmeaza !upa ALL R Oom lua in consi!erare urmatorul ta%el: ,. Palori ale lui > care cores%und 1) 7$) 7+) Q $) 1) 7$) 7+) Q *) ,) -) Q .) *) ,)

E>%resia din clauza GHERE 8 \ A@> 8 \[ A@> 8 ] A@> 8 ][ A@> ECE#P,EB

Palori ale lui > care cores%und () +) $) 1) 7$) 7+) Q .) () +) $) 1) 7$) 7+) Q +) () .) *) ,) -) Q $) +) () .) *) ,)

1! -Sa se afiseze numele plantelor, pretul unitar i culoarea pentru plantele care au minim ./ cm inaltime i pretul minim din grupul de plante de inaltime sub ./ cmSE,EC6 numeQ%lanta; %retQunitar; culoare ?RO# 8lori GHERE %retQunitarMA,, SE,EC6 %retQunitar ?RO# 8lori GHERE inaltimeNR00! "! -Sa se afiseze numele plantelor i pretul unitar pentru plante mai mari de ./ cm, din care se exclude cea mai scumpa plantaSE,EC6 numeQ%lanta; %retQunitar ?RO# 8lori GHERE inaltimeNR00 AND %retQunitarMANO SE,EC6 %retQunitar ?RO# 8lori GHERE inaltimeNR00! '! -Sa se afiseze numele plantei i pretul unitar pentru planta cea mai scumpa cu inaltimea mai mare sau egala cu ./ cmSE,EC6 numeQ%lanta; %retQunitar ?RO# 8lori GHERE inaltimeNR00 AND NO6 %retQunitarMANO SE,EC6 %retQunitar ?RO# 8lori GHERE inaltimeNR00! +.".3. O%eratorul ECIS6S 4peratorul ECIS6S verificV !acV pentru fiecare tuplu al relatiei e8istV tuple care satisfac con!itia interogVrii interioare In cazul Dn care e8istV asemenea tuple) 6AIS:S ia valoarea !e a!evVr :R?6 Astfel) operatorul 6AIS:S permite specificarea mai multor atri%ute Dn interogarea interioarV Acest lucru este posi%il !eoarece nu se verificV valoarea unui anumit atri%ut ca Dn cazurile anterioare) ci se genereazV o valoare !e a!evVr =:R?6 sau 5ALS6I) !upV cum e8istV sau nu e8istV o anumitV valoare Dntr7o relatie !iferitV !e cea utilizatV Dn interogarea e8terioarV

,*

Ca &i operatorii A@> &i ALL) operatorul 6AIS:S apare in clauza ;<6R6 ECE#P,UB -0are plante au un pret unitar egal sau mai mic cu cea mai ieftina planta de culoare alba1SE,EC6 numeQ%lanta; %retQunitar; culoare ?RO# 8lori 8 GHERE NO6 ECIS6S SE,EC6 J ?RO# 8lori GHERE culoareRFal)F AND %retQunitarN8.%retQunitar! Interogarea S6L6C: interioarV !efineste o ta%ela care contine acele tuple pentru care se verifica con!itia !in clauza ;<6R6 interna Daca nu e8ista nici o planta !e culoare al%a &i care sa ai%a pretul unitar mai mare !ecat pretul unitar !in tuplul curent) con!itia @4: 6AIS:S este evaluatV la valoarea logica :R?6 68erciii recapitulative Se !au urmtoarele relaii cu schemele lor: .Sc&ri =@rW%loc) Scara) LiftI .A%artamente=@rW%loc)Scara)Apartament)Suprafaa)CutiiWpo&tale) @rWprizeWtvI 7 ?amilii =@rWmat) @rWpers) @rWpersWprez) @rWcheiI 7,ocatari @rW#at) @rW%loc) Scara) 6taH) Apartament)@ume S se e8prime Dn S9L cererile: -I =ta%el nominal cu locatarii !e pe scara [ ( !in %loc [ (.I [ R$ 2I =ta%el nominal cu locatarii !e pe scara [ $ !in %loc [ (.I [ R+ 3I =ta%el nominal cu locatarii !e pe scara [ + !in %loc [ (.I [ R( $1I ta%el nominal cu locatarii !e pe scrile $)+)( ale %locului (. $$I lista apartamentelor cu suprafaa mai mare !ect *1 mp $+I ta%el nominal cu persoanele carelocuiesc pe scara ( %loc (. &i nu locuiesc &i pe scara $ a aceluia&i %loc 'spunsuri la exerciii $I select nume 8rom scari) locatari =2ere =scari %loc[(.I an!=scari %loc [ locatari %locI an! =scari scara[(I an! =scari scara[ locatar scaraI +I select nume 8rom scari) locatari =2ere =scari %loc[(.I an!=scari %loc [ locatari %locI an! =scari scara[$I an! =scari scara[ locatar scaraI (I select nume 8rom scari) locatari =2ere =scari %loc[(.I an!=scari %loc [ locatari %locI an! =scari scara[+I an! =scari scara[ locatar scaraI .I select nume ,,

8rom scari) locatari =2ere =scari %loc[(.I an!=scari %loc [ locatari %locI an! =scari scara[(I an! =scari scara[ locatar scaraI union select nume 8rom scari) locatari =2ere =scari %loc[(.I an!=scari %loc [ locatari %locI an! =scari scara[$I an! =scari scara[ locatar scaraI union select nume 8rom scari) locatari =2ere =scari %loc[(.I an!=scari %loc [ locatari %locI an! =scari scara[+I an! =scari scara[ locatar scaraI *I select @rW%loc)Scara)Apartament 8rom apartamente =2ere suprafaa ] *1 ,I select nume 8rom scari) locatari =2ere =scari %loc[(.I an!=scari %loc [ locatari %locI an! =scari scara[(I an! =scari scara[ locatar scaraI an! not in = select nume 8rom scari) locatari =2ere =scari %loc[(.I an!=scari %loc locatari %locI an! =scari scara[$I an! =scari scara[ locatar scaraII

Ca%itolul 0 Normalizarea
0.1. Redundanta in8ormatiilor $i anomalii la actualizare La proiectarea unei %aze !e !ate) un o%iectiv foarte important) care tre%uie urmarit can! se gan!este un mo!el !e !ate) este realizarea unei reprezentari corecte a !atelor) a relatiilor !intre !ate &i a restrictiilor impuse asupra !atelor "entru realizarea acestui o%iectiv se utilizeaza tehnica normalizarii) care are ca scop principal i!entificarea setului celui mai a!ecvat !e relatii care sa mo!eleze realitatea !orita "rocesul !e normalizare a fost intro!us !e 6 5 Co!! =$3-+I Iniial s7au propus trei forme normale) notate 1N?) "N?) respectiv 'N? #ai trziu) prin enuntarea unei !efinitii mai tari a formei normale trei) s7a o%tinut forma BoAce.Codd) !up numele celor care au intro!us aceasta forma normala: R 0oBce &i 6 5 Co!! =$3-.I :oate aceste forme normale se %azeaza pe !epen!entele functionale sta%ilite intre atri%utele unei relatii 5ormele normale cele mai folosite sunt: forma normal 4 &i forma normal &o;ce!0odd 68ist &i forme normale mai tari 7 forma normal . = +N?I &i forma normal * =0N?I 7 !ar acestea se folosesc foarte rar

,-

"rocesul !e normalizare este o meto! formal care i!entifica relaiile %azan!u7se pe cheile primare ale acestora =sau pe cheile can!i!at Dn cazul 0C@5I &i pe !epen!enele funcionale care e8ista intre atri%utele acestor relatii @ormalizarea spriHina proiectantul %azei !e !ate) !an!u7i posi%ilitatea sa aplice o serie !e teste asupra relatiilor in!ivi!uale) asa incat schema relaionala poate fi normalizata la forma normala !orita) pentru a se preveni aparitia anomaliilor la actualizare "entru a ilustra procesul !e normalizare) vom utiliza e8emple !in sistemul informatic 9sociatie de locatari "artea cea mai important la proiectarea %azei !e !ate este gruparea atri%utelor Dn relaii cu scopul !e a minimiza re!un!ana informaiilor &i =o!ata cu aceastaI spaiul ocupat !e relatii =ta%ele sau fi&iereI pe suportul magnetic 5ie relaia <urnizori)0,eltuieli e8emplificat mai Hos In e8emple se vor simplifica numele atri%utelor CodQ8urn DenQ8urn Paloare 5$11 +)$*1)111 5$11 *11)111 5$$1 ()111)111 5$$1 +11)111 Romgaz Romgaz Renel Renel CodQ8iscal CodQc2elt R$+(.*,R$+(.*,R-,*.(+$ R-,*.(+$ C$* C$, C$1 C$$ DenQc2elt Incalzire (1 1, 33 Data

Apa cal!a (1 1, 33 Iluminat Lift (1 1, 33 (1 1, 33

?i(ura 0.1. Relaia <urnizori)0,eltuieli Sa presupunem ca aplicaia pe care o vom stu!ia ca e8emplu contine !atele organizate intr7o singura relatie !escrisa !e urmatoarele schema !e relatie: 5urnizoriWCheltuieli [ =CodQ8urn) DenWfurn) Co!Wfiscal) DenWchelt) Data) OaloareI CodQc2elt;

Dintre atri%ute) cele evi!entiate constituie cheia primara pentru relatia respectiva Relatia <urnizori)0,eltuieli are cheia compusa !in atri%utele 0od)furn) 0od)0,elt &i Data Datele sunt prost organizate in relatia prezentata Informaia !espre furnizori !in relatia <urnizori)0,eltuieli este re!un!ant Detaliile !espre furnizor se repet la fiecare intro!ucere a unei cheltuieli noi @u este insa singura pro%lema pe care o organizare nepotrivita a !atelor o poate genera

,2

4 alt consecinta a re!un!anei informatiilor !in %aza !e !ate) o reprezinta pro%lemele !e actualizare a informaiei stocate 6numeram mai Hos o parte !intre acestea Anomalii de adau(are Anomaliile !e inserare se pot clasifica Dn !ou tipuri: "entru a a!auga !etaliile !espre o cheltuial ctre un furnizor) Dn relaia <urnizori)0,eltuieli tre%uie o%ligatoriu a!ugate &i !etaliile !espre furnizorul Dn cauz) chiar !ac ele e8ist !eHa Dn %aza !e !ate Aceast anomalie poate !uce la apariia !e informatii !iferite !espre acelasi furnizor Dn Dnregistrri !iferite Informatia !espre furnizor isi pier!e in acest mo! consistenta) nu ne mai putem %aza pe corectitu!inea !atelor !espre furnizor in %aza !e !ate "entru a a!uga !etalii !espre un furnizor nou Dn relaia <urnizori)0,eltuieli) tre%uie neaprat a!ugat &i o cheltuial pentru asociaia !e locatari ctre acel furnizor n cazul Dn care Dnc nu a sosit factura !e la furnizor) nu se poate Dnregistra nici o cheltuial &i !eci tre%uie intro!use valori nule 6ste nerecoman!a%il sa se lucreze cu valori nule !eoarece se genereaza pro%leme la regasirea &i actualizarea informatiilor Anomalii de $ter(ere n cazul &tergerii unei cheltuieli a asociaiei !e locatari ctre un furnizor nou =tot in ca!rul relatiei <urnizori)0,eltuieli I) se va &terge &i furnizorul Deci toate !etaliile intro!use !espre acel furnizor vor fi pier!ute) ceea ce !uce la o%ligativitatea reintro!ucerii !atelor la o nou folosire al acelui furnizor Anomalii de modi8icare Dac Dn relaia <urnizori)0,eltuieli !orim s schim%m valoarea unui atri%ut al unui furnizor) va tre%ui s schim%m !atele pentru fiecare apariie a acelui furnizor De e8emplu !ac !orim s schim%m co!ul fiscal al furnizorului cu co!ul 5$11) va tre%ui s schim%m acest atri%ut Dn toate tuplele in care apare furnizorul 5$11 Din nou) este posi%il ca !atele sa nu fie mo!ificate corect 6ste posi%il sa ramana tuple cu !atele nemo!ificate sau este posi%il sa se mo!ifice !atele respective cu valori !iferite in locuri !iferite =@u !orim sa insistam asupra cauzelor care pot !uce la aceste situatii I Anomaliile enumerate mai sus se pot evita prin folosirea =in acest cazI a !ou relatii !istincte: 0,eltuieli &i <urnizori n acest caz !ac tre%uie mo!ificat un atri%ut al unui furnizor) mo!ificarea se va 8ecuta intr7un singur loc Dn relatia <urnizori Asemanator) !aca e necesara o stergere in relatia 0,eltuieli) aceasta nu va mai afecta furnizorii !in relatia <urnizori De asemenea orice cheltuiala a!augata &i orice furnizor nou a!augat nu se vor mai con!itiona reciproc in nici un fel Descom%uneri cu %ierderi de in8ormatii In urma analizarii anomaliilor !e actualizare prezentate mai sus am tras

,3

concluzia ca o !escompunere a relatiilor care ne fac pro%leme este %inevenita &i !uce la rezolvarea pro%lemelor 6ste %ine insa sa tratam !escompunerile !e relatii cu pru!enta !eoarece o !escompunere negliHenta ne poate crea pro%leme la fel !e mari cu acelea !e care tocmai ne7am ocupat 6ste posi%il sa pier!em informatii !aca nu suntem atenti la mo!ul in care se realizeaza !escompunerea In general se poate urmari ca in fiecare relatie sa se reprezinte informatii !espre o singura multime7entitate Criteriul este mai mult !e or!in intuitiv &i el nu ne este !e mare aHutor in cazul reprezentarii multimilor7relatie In acest caz) intr7o relatie se intalnesc !ate !espre mai multe multimi7entitate 6ste necesar sa se sta%ileasca o mo!alitate riguroasa !e a !eci!e care sunt informatiile care tre%uie sa alcatuiasca o astfel !e relatie 4rice relatie se construieste pe %aza unei scheme !e relatie 5ie R o schema oarecare !e relatie ?n set !e scheme !e relatie reprezinta o !escompunere a lui R &i se noteaza SR$) R+) Q) RnT !aca

' [R
i i= $

Aceasta inseamna ca orice atri%ut !in schema !e relatie initiala R se regaseste in cel putin o schema !e relatie !in !escompunere Daca ne raportam la relatiile care se %azeaza pe schemele !e mai sus) fie r relatia construita pe schema R sie fie relatiile r$) r+) Q) rn construite pe schemele !e relatie ce formeaza !escompunerea In termenii alge%rei relaionale se poate consi!era egalitatea' ri [

'i

=rI pentru toti $in

Deci fiecare ri este proiectia relatiei r pe atri%utele care apar in schema !e relatie Ri Descompunerile cu pier!eri !e informatii se pot clasifica in Descom%uneri cu %ierderi la -onctiune &i Descom%uneri cu %ierderea de%endentelor "entru a clarifica lucrurile in aceasta !irectie este necesara mai intai !efinirea notiunii !e !epen!enta functionala 0.". De%enden*e 8unc*ionale ?nul !in cele mai importante concepte asociate cu normalizarea este conceptul !e !epen!en funcional Depen!ena funcional !escrie un anumit tip !e legatura care se sta%ileste intre atri%utele aceleiasi relatii 5ie o schema !e relatie R &i fie su%multimile !e atri%ute A &i 0 !in R Se verifica AR &i 0R Spunem ca 0 !epin!e functional !e A &i scriem A 0 !aca pentru orice relatie legala r) construita pe schema !e relatie R) se verifica urmatoarea situatie: pentru orice pereche !e tuple t$ &i t+ !in r) pentru care t$YAZ[t+YAZ) are loc intot!eauna &i t$Y0Z[t+Y0Z Aceasta inseamna ca atunci can! un tuplu t $ are =pe su%multimea !e atri%ute -1

AI aceeasi valoare cu alt tuplu t+) o%ligatoriu cele !oua tuple vor avea aceeasi valoare &i pe su%multimea !e atri%ute 0 Oalorile !in 0 sunt in mo! unic !eterminate !e valorile !in A @umim determinant al unei !epen!ente funcionale) atri%utul) sau mulimea atri%utelor !in partea stng a sgeii 4 parte !intre !epen!enele funcionale pentru relaia <urnizori)0,eltuieli sunt: Co!Wfurn DenWfurn Co!Wfurn Co!Wfiscal Co!Wchelt DenWchelt Co!Wchelt) Co!Wfurn) Data Oaloare @umele furnizorului este !eterminat in mo! unic !e co!ul furnizorului La co!uri egale) numele sunt i!entice Oaloarea insa nu poate fi !eterminata in mo! unic !ecat !e com%inatia co! cheltuiala) co! furnizor &i !ata Intr7o anume !ata) un anumit furnizor) pentru un anumit serviciu =care !uce la un anume co! cheltuialaI cere o suma %ine !eterminata !e %ani @ici una !intre valori nu poate !etermina valoarea &i nici in com%inatii !e cate !oua Daca nu se iau cele trei informatii impreuna se pot crea confuzii in legatura cu valoarea =Acelasi co! !e cheltuiala poate corespun!e la valori !iferite in !ate !iferite Acelasi furnizor poate avea chiar &i co!uri !e cheltuiala !iferite !armite valoarea care le reprezinta) s a m ! QI @otiunea !e !epen!enta functionala generalizeaza notiune !e cheie Se poate !a urmatoarea !efinitie a supercheii: Spunem ca su%multimea !eatri%ute g !in schema !e relatie R este o supercheie !aca gR) a!ica pentru orice pereche !e tuple t $ &i t+ !in r) pentru care t$YgZ[t+YgZ) are loc intot!eauna &i t$YRZ[t+YRZ Depen!entele functionale ne permit sa e8primam restrictii asupra relatiilor pe care nu le putem e8prima cu aHutorul cheilor Depen!ena funcional este o proprietate legata !e semantica atri%utelor Dn relaii Depen!entele functionale pot fi sta%ilite !e cine cunoaste e8act legaturile intre valorile atri%utelor) !eci !e catre cineva care cunoaste foarte %ine aplicaia &i semnificatia informatiilor !in relatii @u se pot !a retete pentru sta%ilirea !epen!entelor functionale) !ar se pot !a meto!e !e a !etermina toate !epen!entele functionale !intr7o relatie !aca se cunosc cateva !epen!ente !e la care poate porni algoritmul 4 meto!a !e a !etermina multimea tuturor !epen!entelor functionale !intr7o relatie se %azeaza pe asa7numitele A8iome ale lui Armstrong Re(ulile A>iomele! lui Armstron(B $I regula reflexivitatii C !aca A este un su%set !e atri%ute !in R &i > A)

-$

atunci are loc A>' +I regula creterii C !aca A) > &i ; sunt su%seturi !e atri%ute !in R &i !aca A> atunc ;A;>' (I regula tranzitivitatii C !aca A) > &i c sunt su%seturi !e atri%ute !in R &i !aca A> &i >c atunci are loc &i Ac Cele trei reguli sunt suficiente &i formeaza un set complet pentru a se putea !etermina toate !epen!entele functionale !aca se porneste !e la un set !e %aza initial :otusi se mai utilizeaza in mo! o%isnuit &i reguli suplimentare =care pot fi !e!use !in primele treiI !eoarece usureaza calculele Astfel: .I regula reuniunii C !aca A) > &i c sunt su%seturi !e atri%ute !in R &i !aca A> &i Ac atunci &i A>c' *I regula descompunerii C !aca !aca A) > &i c sunt su%seturi !e atri%ute !in R &i !aca A>c atunci au loc &i A> &i Ac' ,I regula pseudotranzitivitatii 7 !aca A) >) ; &i c sunt su%seturi !e atri%ute !in R &i !aca A> &i ;>c atunci &i ;Ac ECE#P,UB 5ie schema !e relatie R[SA) 0) C) /) <) IT &i fie setul !e !epen!ente initial notat cu 5 &i format !in !epen!entele: A0) AC) C/<) C/I) 0< "ornin! !e la acest set initial se mai pot calcula &i urmatoarele !epen!ente: A<) utilizan! regula tranzitivitatii aplicata la !epen!entele A0 &i 0<' C/<I) utilizan! regula reuniunii pentru !epen!entele C/< &i C/I'

si asa mai !eparteQ Q Daca se noteaza cu 5 setul initial !e !epen!ente functionale) cu 5 d se va nota inchi!erea lui 5 =!eci toate !epen!entele functionale care se pot !efini pentru relatia in cauza I "utem reveni in acest moment pentru a trata !escompunerile !e relatii Am su%liniat mai inainte ca este necesar sa fim atenti la !escompuneri pentru a evita pier!erea !e informatii Descom%uneri 8ara %ierderi la -onctiune 5ie o !escompunere oarecare SR$) R+) Q) RnT a relatiei R) asa cum am !efinit7 o formal la inceputul acestui capitol "entru o !escompunere oarecare se verifica intot!euna relatia: r A ri
i= $ n

un!e prin A s7a notat pro!usul cartezian) operatie !in alge%ra relaionala -+

Altfel spus) orice tuplu !in relatia r !uce) prin !escompunere) la cate un tuplu ti in fiecare relatie ri Can! se realizeaza pro!usul cartezian cu toate relatiile r i) se o%tin in general mai multe tuple !ecat au fost in relatia initiala r) !eoarece pro!usul cartezian are ca rezultat toate com%inatiile posi%ile intre elementele participante Asupra relatiilor !intr7o %aza !e !ate se impun intot!eauna anumite restrictii sau con!itii) care sa asigure corectitu!inea informatiilor !in respectiva %aza !e !ate In general spunem ca o relatie este legala !aca satisface toate regulile sau restrictiile care sunt impuse la proiectarea %azei !e !ate 5ie C un set !e restrictii asupra %azei !e !ate 4 !escompunere SR$) R+) Q) RnT a unei scheme !e relatie R este o !escompunere fara pier!eri la Honctiune pentru R) !aca pentru toate relatiile r !efinite pe schema R =care sunt legale su% restrictiile CI se verifica: r[ A 'i =rI
i= $ n

Oom prezenta in continuare un criteriu cu aHutorul caruia se poate verifica !aca este o !escompunere fara pier!eri la Honctiune sau nu De8initie. 5ie R o schema !e relatie &i fie !escompunerea lui R reprezentata !e SR$) R+T Aceasta !escompunere este fara pier!eri la Honctiune !aca cel putin una !intre urmatoarele !epen!ente functionale se gasesc in 5d: R$R+R$ R$R+R+ Descom%uneri cu %astrarea de%endentelor "astrarea !epen!entelor !uce la pastrarea consistentei informatiilor !in %aza !e !ate Se pot impune restrictii care permit sistemului sa verifice la orice actualizare a informatiilor ca nu se va crea o relatie ilegala 5ie 5 setul initial !e !epen!ente functionale) !efinit pe o schema !e relatie R &i fie SR$) R+) Q) RnT o !escompunere a lui R @otam cu 5i restrictia la Ri a multimii !e !epen!ente functionale 5 =Se cere ca !epen!entele functionale !in 5i sa inclu!a !oar atri%ute care se regasesc in relatia RiI Oom o%tine un set !e multimi !e !epen!ente functionale 5$) 5+) Q) 5n 5ie 5L[

5i) reuniunea seturilor !e !epen!ente funtionale In general 5L5 Dar s7ar


i =$

putea ca sa se verifice relatia 5Ld[5d Daca se intampla asa atunci spunem ca !escompunerea este o !escompunere cu pastrarea !epen!entei 0.'. ?orme normale @ormalizarea este un proces !e organizare a !atelor in relatiile unei %aze !e !ate Acest proces presupune respectarea unor reguli prin care %aza !e !ate se

-(

poate normaliza pn la un anumit gra!) a!ica se a!uce la o anumita forma normala @ormalizarea se e8ecut trecn! prin toate formele normale) pn la forma normal cerut La proiectarea unei %aze !e !ate e recoman!a%il sa se aHunga cel puin pana la forma normal trei Aceasta asigura evitarea anomaliilor !escrise la inceputul acestui capitol 0.'.1. ?orma Normal& Unu 1N?! @umim ?orm& Nenormalizat& UN?! orice ta%el care conine una sau mai multe grupuri repetitive pe atri%ute ?orma Normal& Unu 1N?!B Spunem ca o relaie se gaseste in 5orma normala unu !aca orice atri%ut este atomic) a!ica nu e8ista nici atri%ute compuse nici repetitive "entru a transforma ta%ela !in 5igura * + Dn forma normal unu) i!entificm &i &tergem grupurile repetitive !in ta%el 6liminarea acestor grupuri repetitive se poate realiza Dn !ou mo!uri: Conform primei mo!aliti) eliminm grupurile repetitive) prin crearea altor Dnregistrri) Dn care s fie intro!use valorile !in aceste grupuri) Dmpreun cu celelalte valori ale atri%utelor !in Dnregistrarea la care se lucreaz :a%ele astefel rezultat va fi Dn form normal unu n a !oua mo!alitate) fiecere valoare a grupurilor repetitive le copiem Dntr7o nou relaie Dmpreun cu cheia primar !in ta%ela iniial "utem avea mai multe grupuri repetitive n acest caz crem mai multe relaii noi Aceste relaii noi) precum &i ta%ela normalizat vor fi Dn form normal unu "entru relaia <urnizori)0,eltuieli: CodQ8urn DenQ8urn Paloare 5$11 +)$*1)111 Romgaz CodQ8iscal CodQc2elt R$+(.*,C$* C$, *11)111 5$$1 ()111)111 Renel R-,*.(+$ C$1 C$$ +11)111 ?i(ura 0.". :a%ela nenormalizat <urnizori)0,eltuieli 4%servm c pentru furnizorul RRomgazR avem !ou tipuri !e cheltuieli La fel &i pentru furnizorul RRenelR "entru a transforma aceast ta%el Dn $@5) tre%uie s avem o singur valoare la fiecare intersecie linie coloan Iluminat Lift (1 1, 33 (1 1, 33 DenQc2elt Incalzire (1 1, 33 Data

Apa cal!a (1 1, 33

-.

Daca vom normaliza !upa prima meto!a) vom scrie repetiiile pe !iferite rn!uri iar coloanele care nu conin repetiii) vor fii copiate corespunzator pe fiecare rn!

CodQ8urn DenQ8urn Paloare 5$11 +)$*1)111 5$11 *11)111 5$$1 ()111)111 5$$1 +11)111 Romgaz Romgaz Renel Renel

CodQ8iscal CodQc2elt R$+(.*,R$+(.*,R-,*.(+$ R-,*.(+$ C$* C$, C$1 C$$

DenQc2elt Incalzire (1 1, 33

Data

Apa cal!a (1 1, 33 Iluminat Lift (1 1, 33 (1 1, 33

?i(ura 0.'. :a%ela <urnizori)0,eltuieli Dn $@5 n ta%ela normalizatV) cheia va fi =Co!Wfurn) Co!Wchelt) DataI @ormalizn! ta%ela iniial !up a !oua mo!alitate) vom crea o a !oua ta%el cu informaiile care nu se repet) Dmpreun cu cheia primar !in ta%ela iniial Deci cele !ou ta%ele vor fi urmtoarele: 5urnizori =CodQ8urn) DenWfurn) Co!WfiscalI Cheltuieli =CodQ8urn) CodQc2elt) Data) DenWchelt) OaloareI Cele !ou ta%ele astfel create sunt Dn $@5: *+eltuieli CodQ8urn. 5$11 5$11 + 5$$1 ( 5$$1 . ,urnizori CodQ8urn 5$11 5$$1 DenQ8urn Romgaz Renel CodQ8iscal R$+(.*,R-,*.(+$ CodQc2elt C$* C$, C$1 C$$ Data (1 1, 33 (1 1, 33 (1 1, 33 (1 1, 33 DenQc2elt Incalzire Apa cal!a Iluminat Lift Paloare $*11111 *11111 (111111 +11111

-*

?i(ura 0.0. Relaiile 0,eltuieli &i <urnizori) create prin meto!a a !oua !e normalizare "entru a !emonstra trecerea la forma normal !oi &i mai !eparte) vom folosi relaia <urnizori)0,eltuieli) prezentata Dn figura * ( 0.'.". ?orma Normal& Doi "N?! 5orma normal !oi se o%tine utilizan! conceptul !e !epen!en funcional total De%enden*a 8unc*ional& total&. Dac A este un su%set !e !oua sau mai multe atri%ute &i 0 este atri%ut =sau su%set !e atri%uteI al aceleiasi relaii) spunem ca 0 este total !epen!ent funcional !e grupul !e atri%ute A) !ac 0 este !epen!ent funcional !e A) !ar nu este !epen!ent funcional !e nici un su%set !e atri%ute !in A De e8emplu s lum urmtoarea !epen!en funcional: Co!Wchelt) Co!Wfurn) Data Oaloare Depen!ena funcional este totala pentru ca Oaloare nu !epin!e functional !e nici un su%set !e atri%ute al grupului Co!Wchelt) Co!Wfurn) Data 5orma normal !oi tre%uie verificat !oar la relaiile care au cheie compus pe poziie !e cheie primar Relaia la care cheia primar se compune !intr7un singul atri%ut) este Dn +@5 !aca este in $@5 ?orma Normal& Doi "N?!. 4 relaie este Dn forma normal !oi) !ac este Dn forma normal unu &i fiecare atri%ut care nu aparine cheii primare) este total !epen!ent funcional !e cheia primar Oom !emonstra a!ucerea la forma normal !oi) folosin! relaia <urnizori)0,eltuieli. "utem trece la forma normal !oi prin &tergerea atri%utelor care nu !epin! total !e cheia primar &i trecerea lor Dntr7o alt ta%el Dmpreun cu !eterminantul lor Dup efectuarea acestor transformri) vom o%tine urmtoarele relaii: Relatia *+eltuieli: CodQ8urn. 5$11 5$11 5$$1 5$$1 Relaia ,urnizori: CodQ8urn 5$11 DenQ8urn Romgaz CodQ8iscal R$+(.*,CodQc2elt C$* C$, C$1 C$$ Data (1 1, 33 (1 1, 33 (1 1, 33 (1 1, 33 Paloare $*11111 *11111 (111111 +11111

-,

5$$1 CodQC2elt C$* C$, C$1 C$$

Renel DenQc2elt Incalzire Apa cal!a Iluminat Lift

R-,*.(+$

Relatia -ip.c+eltuiala:

?i(ura 0.0. Relaiile rezultate !up trecerea la +@5 a relaiei <urnizori)0,eltuieli Relaiile rezultate au urmtoarele scheme !e relatie: 5urnizori [ =CodQ8urn ) DenWfurn) Co!WfiscalI :ip cheltuial [ =CodQC2elt ) DenWcheltI Cheltuieli [ =CodQ8urn) CodQc2elt) Data) OaloareI 0.'.'. ?orma Normal& 6rei 'N?! 5orma normal !oi chiar !ac nu conine atta re!un!an ca forma normal unu) totu&i e8ist cazuri Dn care pot aprea anomalii la actualizare Aceste anomalii apar !in cauza re!un!anei generate !e !epen!ena tranzitiv De%enden*& tranziti7&. Dac atri%utele A) 0) C sunt Dn relaiile Ah0 &i 0hC) atunci spunem c atri%utul C este !epen!ent tranzitiv !e atri%utul A) via 0 ?orma Normal& 6rei 'N?!. Spunem ca o relaie este Dn form normala trei !aca este !eHa in forma normal !oi &i nici un atri%ut care nu aparine cheii primare nu este tranzitiv !epen!ent !e cheia primara n cazul e8istenei !epen!enei tranzitive) &tergem coloanele care sunt tranzitiv !epen!ente !e cheia primar &i crem o relaie nou cu aceste coloane) Dmpreun cu !eterminantul lor) a!ic cheia primar 68aminn! relaiile Dn forma normal !e mai sus) o%servm c nu e8ist !epen!ene tranzitive Deci relaiile sunt Dn form normal trei 0.'.+. ?orma Normal& BoAce.Codd BCN?! 0aza !e !ate tre%uie proiectat astfel Dnct s nu conin !epen!ene pariale sau tranzitive) pentru c altfel ne putem confrunta cu anomaliile !escrise la inceputul capitolului 5orma normal 0oBce7Co!! se o%tine utilizan! cheile can!i!at !in relaie 4 relaie cu o singur cheie can!i!at Dn form normal trei este &i Dn form normal 0oBce7Co!! ?orma normal& BoAce.Codd BCN?I Spunem ca o relaie este Dn forma normal 0oBce7Co!! !ac &i numai !ac orice !eterminant !in relaie este cheie can!i!at

--

S cutm !eterminanii !in e8emplul !e mai sus: Co!Wfurn h DenWfurn) Co!Wfiscal Co!Wchelt h DenWchelt Co!Wfurn) Co!Wchelt) Data h Oaloare :oi cei trei !eterminani sunt &i chei can!i!at in relatiile lor Deci relatiile !in e8emplul !e mai sus sunt Dn form normal 0oBce7Co!! Relaiile Dn form normal trei sunt Dn general &i Dn form normal 0oBce7Co!! n cazul Dn care relaia nu este Dn form normal 0oBce7Co!!) trecerea la 0C@5 se realizeaz prin &tergerea !in relaia iniial a atri%utelor care sunt asociate unui !eterminant care nu este cheie can!i!at &i crearea unei noi relaii cu aceste atri%ute &i !eterminantul lor 68ist situaii cn! este foarte greu !e !escompus relatiile) ca s aHungem la 0C@5 n aceste situaii este in!icata rmnerea la forma normal trei Concluzii ?orma Normal& Unu 1N?! :re%uie s cutm toate interseciile !e linii &i coloane) un!e e8ist repetiii Aceste repetiii se pot elimina prin !ou ma!aliti: Crearea !e noi Dnregistrri pentru fiecare valoare a repetiiei) !up care se caut o nou cheie primar Xtergerea atri%utelor care conin repetiii &i crearea !e noi relaii care vor conine atri%utele &terse) precum &i cheia primara !in relaia iniial ?orma Normal& Doi "N?! Se caut !epen!enele totale !e cheia primara) a!ic toate atri%utele care !epin! funcional !e un su%set !e atri%ute a cheii primare Dac cheia primar este compus !intr7un singur atri%ut) atunci relaia este Dn forma normal !oi) !aca este !eHa in forma normala unu Dac e8ist !epen!ene partiale) &tergem atri%utele care !epin! parial !e cheia primara &i crem o relaie nou care s se compun !in atri%utele &terse Dmpreun cu !eterminantul lor ?orma Normal& 6rei 'N?! "entru a trece la forma normal trei) tre%uie s eliminm !epen!enele tranzitive 6liminarea se realizeaz prin &tergerea cmpurilor !epen!ente tranzitiv !e cheia primar !in relaia iniial &i crearea unei noi relaii cu aceste atri%ute &i !eterminantul lor ?orma Normal& BoAce.Codd BCN?! Cerina la forma normal 0oBce7Co!! este ca fiecare !eterminant !in relaie s fie cheie can!i!at n cazul Dn care nu este Dn!eplinit aceast cerin) vom &terge atri%utele !epen!ente funcional !e !eterminantul care nu este cheie can!i!at &i crem o nou relaie Dn care s avem atri%utele &terse &i !eterminantul lor n unele cazuri trecerea la forma normal 0oBce7Co!! complic foarte mult %aza !e !ate) caz Dn care este !e preferat rmnerea la -2

forma normal trei Pro)leme reca%itulati7e. $I A!ucei la forma normal $ urmrtoarea ta%el: Relaia 5urnizoriWCheltuieli:

Cod ?urn. 5$11

Nr. Cod Denumire Crt. C2elt. C2eltuial& Romgaz $ C$* Chelt pt nclzire + C$, Chelt pt 0uctrii 5$$1 Renel R-,*.(+$ ( C$1 Chelt cu iluminatul . C$$ Chelt pt 5unc liftului +I A!ucei la forma normal + schema: =Co! 5urn ) Denumire) Co! fiscal) Co! Chelt ) Denumire cheltuial) @r Crt ) Co!) OaloareI (I A!ucei la forma normal ( schema: carte [ =cWcarte) titlu) co!W!omeniu) !enW!omeniuI Ras%unsuri la intre)&ri. $I 5ie ta%ela !in enun: Cod Denumire Cod ?urn. 8iscal 5$11 Romgaz R$+(.*,5$$1 Renel R-,*.(+$

Denumire

Cod 8iscal R$+(.*,-

Paloare $*11111 *11111 (111111 +11111

Nr. Crt. $ + ( .

Cod C2elt. C$* C$, C$1 C$$

Denumire C2eltuial& Chelt pt nclzire Chelt pt 0uctrii Chelt cu iluminatul Chelt pt 5unc liftului

Paloare $*11111 *11111 (111111 +11111

n aceast ta%el o%servm c pentru furnizorul FRomgazG avem !ou tipuri !e cheltuieli /rupul !e atri%ute =nr crt ) co! chelt ) !enumire cheltuial) valoareI apare !e mai multe ori "entru a transforma aceast ta%el Dn $@5) tre%uie s avem o singur valoare la fiecare intersecie linie coloan n cazul primei mo!aliti) scriem repetiiile pe !iferite rn!uri iar coloanele care nu conin repetiii) vor fi copiate pe fiecare rn! Dup !esprirea repetiiilor pe mai multe rn!uri) i!entificm o nou cheie Cod Denumire Cod Nr. Cod Denumire ?urn. 8iscal Crt. C2elt. C2eltuial& 5$11 Romgaz R$+(.*,$ C$* Chelt pt nclzire 5$11 Romgaz R$+(.*,+ C$, Chelt pt 0uctrii 5$$1 Renel R-,*.(+$ ( C$1 Chelt cu iluminatul 5$$1 Renel R-,*.(+$ . C$$ Chelt pt 5unc liftului :a%ela 5urnizoriWCheltuieli Dn $@5 creat prin prima mo!aliate !e transformare -3

Paloare $*11111 *11111 (111111 +11111

n ta%ela normalizat) noua cheie va fi =Co! 5urn ) @r Crt ) Co! Chelt I @ormalizn! ta%ela iniial !up a !oua mo!alitate) vom crea o a !oua ta%el cu informaiile care nu se repet) Dmpreun cu cheia primar !in ta%ela iniial Deci cele !ou ta%ele vor fi urmtoarele: 5urnizori =Co! 5urn ) Denumire) Co! fiscalI Cheltuieli =Co! 5urn ) Co! Chelt ) @r Crt ) Denumire cheltuial) OaloareI Cele !ou ta%ele astfel create sunt Dn $@5: +I 5ie R [ =Co! 5urn ) Denumire) Co! fiscal) Co! Chelt ) Denumire cheltuial) @r Crt ) Co!) OaloareI Oom avea !epen!entele functionale: g [ =Co! 5urn ) Co! Chelt ) @r Crt I R !eci g este cheie !$ Co! Chelt Denumire cheltuial !+ Co! 5urn =Denumire) Co! fiscalI Depen!enele !$ &i !+ sunt !epen!ene pariale !e cheie Relaiile rezultate au urmtoarea form: 5urnizori [ =Co! 5urn ) Denumire) Co! fiscalI :ip cheltuial [ =Co! Chelt ) Denumire cheltuialI Cheltuieli [ =@r Crt ) Co! 5urn ) Co! Chelt ) OaloareI .I 5ie relaia !in enun: carte [ =cWcarte) titlu) co!W!omeniu) !enW!omeniuI cu cheia cWcarte n afara !epen!enelor care !efinesc cheia mai avem !epen!ena: co!W!omeniu !enW!omeniu &i pentru c cWcarte este cheie avem &i cWcarte co!W!omeniu !eci !enW!omeniu !epin!e tranzitiv !e cheie "rin !escompunere rezult !ou scheme (@5: carte$ [ =cWcarte) titlu) co!W!omeniuI &i !omeniu [ =co!W!omeniu) !enW!omeniuI

Ca%itolul 1. G2id de %roiectare a )azelor de date rela*ionale


1.1. #etodolo(ia de %roiectarea a )azelor de date rela*ionale. n acest capitol vom Dnva !espre: Scopul meto!ologiei !e proiectarea a %azelor !e !ate "roiectarea %azelor !e !ate are !ou faze mari: proiectarea logic &i proiectarea fizic ?tilizatorii sistemului informatic au un rol important Dn proiectarea %azelor !e !ate Cum !ocumentm procesul !e proiectare a %azelor !e !ateK Cum !escompunem scopul proiectrii Dn ve!eri =vieE7uriI specifice utilizatorilor Dnrtreprin!eriiK

21

Cum utilizm mo!elarea 6ntitB7Relationship =6RI) pentru a crea un mo!el conceptual local) %azat pe informaiile a!unate !espre vieE7urile utilizatorilorK Cum proiectm un mo!el local conceptual Dntr7un mo!el local logic !e !ateK Cum crem relaiile pentru un mo!el conceptual localK Cum vali!m mo!elul logic !e !ate) utilizn! technica normalizriiK Cum compunem mo!elele logice locale !e !ate) %azate pe vieE7urile specifice utilizatorilor) Dntr7un mo!el logic glo%al !e !ate al Dntreprin!eriiK Cum ne asigurm c mo!elul glo%al este o reprezentare a!evrat &i total a prii Dntreprin!erii pe care vrem s o mo!elmK #eto!ologia proiectrii %azei !e !ate se compune !in !ou etape mari: proiectarea logic) Dn care proiectantul !eci!e asupra structurii logice a %azei !e !ate) &i proiectarea fizic) Dn care proiectantul !eci!e cum se va implementa structura logic Dn sistemul !e gestiune a %azelor !e !ate =S/0DI n acest capitol vom prezenta pas cu pas) crearea unei %aze !e !ate Oom utiliza mo!elarea 6R !escris Dn capitolul +) pentru proiectarea %azei !e !ate' vom vali!a acest mo!el prin normalizare) prezentat Dn capitolul *' iar Dn final vom compune !iferitele vieE7uri Dntr7un mo!el glo%al al Dntreprin!erii n acest capitol vom utiliza covintele FentitateG &i FrelaieG Dn locul e8presiilor Ftip !e entitateG &i Ftip !e relaieG ?n!e aceast utilizare ar putea crea confuzii) vom specifica Ftip !e entitateG) respectiv Ftip !e relaieG !.1.1. /etodologia proiectrii bazelor de date 1.1.$ $ Ce este o meto!ologie !e proiectareK Definiie: #etodolo(ie de %roiectareB 4 apro8imare structurat) care utilizeaz proce!uri) tehnici) instrumente &i !ocumentaii pentru a facilita procesul !e proiectare #eto!ologia !e proiectare se compune !in etape) care la rn!ul lor se compun !in pa&i) care orienteaz proiectantul la fiecare nivel al crerii %azei !e !ate 1.1.$ ". "roiectarea logic &i fizic a %azei !e !ate Definiie: Proiectare lo(ic&B "rocesul !e construcie a unui mo!el !e informaii folosite Dntr7o Dntreprin!ere) %azat pe mo!elul !e !ate) !ar in!epen!ent !e particularizrile sistemului !e gestiune a %azei !e !ate &i a altor consi!erente fizice "roiectarea logic Dncepe cu crearea mo!elului conceptual al %azei !e !ate) care este in!epen!ent !e implementarea Dntr7un S/0D #o!elul conceptual este apoi proiectat pe un mo!el logic) care va influena mai trziu mo!elul !e !ate Dn care se va implementa Definiie: Proiectare 8izic&B 6ste procesul !e !escriere a implementrii %azei !e !ate Dntr7un S/0D

2$

n aceast etap a proiectrii este creat %aza !e !ate Dntr7un S/0D) Dmpreun cu proce!urile !e actualizare n aceast etap e8ist un fee!%acM Dntre proiectarea fizic &i cea logic) pentru c !eciziile luate la implementarea fizic pot afecta %aza !e !ate logice !.1.2. 0rezentarea metodologiei n acest capitol vom prezenta o !escriere a meto!ologiei !e proiectare a %azelor !e !ate "rima !at s ve!em care sunt pa&ii !e urmat Dn proiectare: "asul $ Proiectarea lo(ic& a )azei de date rela*ionaleB Crearea unui mo!el conceptual local) pentru ve!erile utilizatorilor "asul $ $ I!entificarea tipurilor !e entiti "asul $ + I!entificarea tipurilor !e relaii "asul $ ( I!entificarea &i atri%uirea !e atri%ute la tipurile !e entiti &i tipurile !e relaii "asul $ . Determinarea !omeniilor !e !efiniie a atri%utelor "asul $ * Determinarea atri%utelor care compun cheile can!i!ate &i primare "asul $ , SpecializareJgeneralizare =pas opionalI "asul $ - Desenarea !iagramei entitB7relationship "asul $ 2 Oerificarea mo!elului conceptual local cu aHutorul utilizatorului "asul + Crearea &i vali!area mo!elului logic local "asul + $ "roiectarea mo!elului conceptual local pe un mo!el logic local "asul + + Crearea relaiilor pentru mo!elul logic local "asul + ( Oali!area mo!elului) utilizn! normalizarea "asul + . Oali!area mo!elului !in nou) utilizn! tranzaciile "asul + * Desenarea !iagramei 6R "asul + , Definirea regulilor !e integritate a %azei !e !ate "asul + - Oerificarea mo!elului logic local cu aHutorul utilizatorului "asul ( Crearea &i vali!area mo!elului logic glo%al !e !ate "asul ( $ Compunerea me!elelor logice locale Dntr7un mo!el logic glo%al "asul ( + Oali!area mo!elului logic glo%al "asul ( ( Oerificarea posi%ilitii !e a completa %aza !e !ate Dn viitor "asul ( . Desenarea !iagramei 6R finale "asul ( * Oerificarea mo!elului logic glo%al cu aHutorul utilizatorului "asul . Proiectarea 8izic& $i im%lementarea )azei de date rela*ionaleB :ranslatarea mo!elului logic glo%al Dn S/0D

2+

"asul . $ "roiectarea relaiilor !e %az Dn S/0D "asul . + Crearea regulilor !e integritate Dn S/0D "asul * "roiectarea &i implementarea reprezentrii fizice "asul * $ Analizarea tranzaciilor "asul * + Alegerea organizrii fi&ierelor "asul * ( Alegerea in!ecsilor secun!ari "asul * . Intro!ucerea unei re!un!ane comntrolate "asul * * 6stimarea spaiului pe !isc "asul , "roiectarea &i implementarea unui mechanism !e securitate "asul , $ Crearea vieE7urilor pentru utilizatori "asul , + "roiectarea regulilor !e acces la %aza !e !ate "asul - Oerificarea sistemului operaional
"roiectarea logic a %azei !e !ate se !ivi!e Dn trei pa&i mari "rimul pas are ca o%iectiv) !escompunerea proiectrii sistemului informatic Dn ve!eri) care se pot !iscuta cu utilizatorii sistemului #o!elul !e !ate astfel creat) se vali!eaz prin normalizare &i prin tranzacii Dn pasul !oi n final) se genereaz mo!elul glo%al al Dntreprin!erii) cars este la rn!ul lui vali!at &i verificat cu aHutorul utilizatorului sistemului <actori critici pentru succesul proiectrii logice( Lucrul interactiv cu utilizatorul sistemului 5olosirea unei meto!ologii structurate pentru procesul !e proiectare a %azei !e !ate ncorporarea regulilor !e integritate Dn mo!elul logic !e !ate Com%inarea vali!rii conceptuale) prin normalizare &i prin tranzactii) la proiectarea mo!elului logic !e %aze !e !ate ?tilizarea !iagramelor pentru a reprezenta ct mai multe mo!ele logice posi%ile Crearea !icionarului !e !ate) ca supliment al mo!elului !e !ate !.1.3. *rearea modelului logic n acest capitol vom prezenta pas cu pas) proiectarea unei %aze !e !ate Pasul 1. Crearea modelului conce%tual local; %entru utilizatori. 4%iectivul: Crearea unui mo!el conceptual local) pentru vieE7urile utilizatorilior "rimul pas Dn proiectarea %azei !e !ate este !e a colecta !atele necesare pentru realizarea sistemului) ceea ce putem culege) !iscutn! cu viitorii tilizatori ai %azei !e !ate Acrast !iscuie presupune o !esprire Dn ve!eri) a %azei !e !ate) ve!eri care pot lucra separat Desprirea Dn ve!eri se poate realiza Dn mai multe mo!uri 4 mo!aliate ar fi analiza !atelor glo%ale &i gsirea !e pri relativ in!epen!ente 4 alt mo!alitate ar fii analiza rapoartelor) proce!urilor cerute &iJsau o%servarea sistemului e8istent Dn lucru #o!elele conceptuale locale tre%uie s conin:

2(

tipuri !e entiti) tipuri !e relaii) atri%ute) !omeniile atri%utelor) cheile can!i!at) chei primare "a&ii !in prima etap a proiectrii logice sunt: "asul $ $ I!entificarea tipurilor !e entiti

"asul $ + I!entificarea tipurilor !e relaii "asul $ ( I!entificarea &i atri%uirea !e atri%ute la tipurile !e entiti &i tipurile !e relaii "asul $ . Determinarea !omeniilor !e !efiniie a atri%utelor "asul $ * Determinarea atri%utelor care compun cheile can!i!ate &i primare "asul $ , SpecializareJgeneralizare =pas opionalI "asul $ - Desenarea !iagramei entitB7relationship

"asul $ 2 Oerificarea mo!elului conceptual local cu aHutorul utilizatorului =asul 5.5. Identificarea tipurilor de entiti 4%iectivul: I!entificarea tipurilor !e entiti principale Dn ve!erile utilizatorilor "rimul pas Dn proiectarea %azei !e !ate este i!entificarea entitiilor !in !atele furnizate !e utilizatori De e8emplu) !ac avem informaiile @rW#at) @rW0loc) Scara) 6taH) Apartament &i @ume) putem i!entifica entitatea Locatari n general putem i!entifica entitiile Dn mai multe mo!uri De e8emplu Dn locul entitii Locatari) am putea crea o entitate Locatari cu atri%utele @rW#at &i @ume) iar celelelte informaii Dn entitatea "roprietateLocatari 68ist cazuri cn! entitiile sunt greu !e i!entificat) pentru c mo!ul !e prezentare a viitorilor utilizatori necesit e8plicaii ?tilizatorii !escriu aceste entiti) folosin! sinonime &i omonime) ceea ce Dngreuneaz i!entificarea entitilor Sinonimele prin care se !escrie acea&i entitate) se pot consi!era sinonime &i la crearea mo!elului logic) evi!eniin! aceste sinonime ca !iverse aliasuri ai entitiilor Documentarea tipurilor de entiti Dup i!entificarea entitiilor) le !m cte un nume) iar aceste nume le vom evi!enia Dn !icionarul !e !ate) Dmpreun cu e8plicaiile !espre entiti) precum &i posi%ilele aliasuri =asul 5.2. Identificarea tipurilor de relaii 4%iectivul: I!entificarea relaiilor importante !intre entiti Dup i!entificarea entitiilor) va tre%ui s i!entificm &i relaiile importante !intre aceste entiti Releiile se !escriu printr7un ver% al relaiei De e8emplu: Scrile sunt $ocuite de Locatari 2.

5urnizorii =rovoac Cheltuieli


La i!entificarea relaiilor vom lua Dn consi!erare !oar relaiile care ne intereseaz Degea%a e8ist &i alte relaii care s se poat i!entificate) !ac nu prezint importan pentru pro%lema noastr) atunci nu le lum Dn consi!eraie n cele mai multe !in cazuri) relaiile sunt %inare) a!ic se realizeaz Dntrea e8act !ou entiti 68ist &i relaii mai comple8e) care se realizeaz Dntre mai multe entiti) sau relaii recursive) care pune Dn relaie o singur entitate cu ea Dns&i Determinarea cardinalitii i a participrii la tipurile de relaii Dup i!entificarea tipurilor !e relaii) tre%uie s !eterminm car!inalitatea lor) alegn! !intre posi%ilitiile: unu7la7unu =$:$I) unu7la7multe =$:#I) sau multe7la7multe =#:@I Dac se cunosc valori specifice ale car!inalitiilor) aceste valori se scriu la !ocumentarea relaiilor n continuare !eterminm &i participarea la relaie) care poate fii total) sau parial Documentarea tipurilor de relaii Dup i!entificarea tipurilor !e relaii) le !enumim &i le intro!ucem Dn !icionarul !e !ate) Dmpreun cu car!inalitatea &i participarea lor >tilizarea modelrii :' "entru vizualizarea sistemelor complicate) utilizm !iagrama 6R) pentru c este mult mai u&or !e a cuprin!e toate informaiile O propunem ca s utilizai Dntot!eauna !iagrama 6R) pentru o mai %un vizualizare a !atelor =asul 5.4. Identificarea i asocierea de atribute la tipurile de entiti i tipurile de relaii 4%iectivul: Asocierea !e atri%ute la tipurile !e entiti &i la tipurile !e relaii ?rmtorul pas Dn meto!ologie este i!entificarea atri%utelor Aceste atri%ute se i!entific Dn aceea&i mo! ca &i entitiile "entru o mai u&oar i!entificare) tre%uie s lum entitiile &i relaiile ra rn! &i s ne punem urmtoarea Dntre%are: 0e informaii deinem despre aceast ? 1 Rspunsul la aceast Dntre%are ne va !a atri%utele cutate 9tribute simple sau compuse 6ste important s notm !ac un atri%ut este simplu sau compus Conform acestei informaii va tre%ui s lum !ecizii referitoare la acel atri%ut Dac un atri%ut este compus) atunci putem opta pentru !escompunerea sa) !ac este necesar prelucrarea separat a !etelor compuse) sau putem s7l lsm compus Dn caz contrar De e8emplu) atri%utul A!res conine informaiile =@rW0loc) Scara) 6taH) ApartamentI @oi va tre%ui s prelucrm aceste informaii separat) !eci vom !escompune acest atri%ut Dn cele patru atri%ute simple "utem avea cazuri Dn care atri%utele simple s le compunem De e8emplu Dn cazul atri%utelor @umeW5amilie &i "renume) neavn! nevoie !e aceste informaii separat) le vom compune Dn atri%utul @ume 9tribute derivate *calculate+ Sunt acele atri%ute) care se pot calcula !in alte atri%ute e8istente Dn %aza !e !ate De e8emplu numrul locatarilor !e pe o scar se poate numra Dn tipul !e entitate Locatari Deci acest atri%ut este atri%ut !erivat

2*

n general aceste atri%ute nu tre%uie incluse Dn mo!elul !e !ate) pentru c Dn cazul Dn care se mo!ific atri%utul !in care se calculeaz atri%utul !erivat) tre%uie s se mo!ifice &i acesta n cazul Dn care nu se mo!ific) %aza !e !ate !evine inconsistent De aceea este important !e a meniona !ac un atri%ut este sau nu !erivat Dac i!entificm un atri%ut care s nu7l putem asocia nici unei entiti sau relaii) ne Dntoarcem la pa&ii anteriori) i!entificn! noua relaie sau entitate la care s asociem atri%utul respectiv n cazul Dn care putem asocia acela&i atri%ut la mai multe entiti) atunci va tre%ui s !eci!em !ac generalizm sau nu aceste entiti) proces care este !escris la pasul $ , Documentarea atributelor Dup i!entificarea atri%utelor) le asociem un nume) &i le Dnregistrm Dn !icionarul !e !ate) Dmpreun cu urmtoarele informaii: numele &i !escrierea atri%utului)

toate aliasurile &i sinonimele prin care este cunoscut atri%utul) tipul !e !ate &i lungimea) valorile iniiale ale atri%utelor =!ac e8istI) !ac atri%utul accept sau nu valoarea nul)

!ac atri%utul este sau nu compus) &i !ac este atunci atri%utele simple care Dl compun) !ac atri%utul este sau nu !erivat &i atri%utul !in care !eriv)

!ac atri%utul accept sau nu mai multe valori


local

=asul 5.@. Determinarea domeniului atributelor 4%iectivul: Determinarea !omeniului atri%utelor Dn mo!elul conceptual Domeniul atri%utului este o mulime !e valori pe care o poate lua "entru a controla Dn totalitate !omeniul atri%utelor) se poate evi!enia urmtoarele: setul !e valori a!misi%ile pentru un atri%ut)

operaiile a!misi%ile asupra unui atri%ut) ce atri%ute se pot compara cu atri%utul respectiv) Dn com%inaiile cu alte

atri%ute) mrimea &i formatul cmpului atri%utului Documentarea domeniilor atributelor Actualizm !icionarul !e !ate cu !omeniul !e !efiniie al fiecrui atri%ut =asul 5... Determinarea atributelor care compun c,eile candidat i primare 4%iectivul: I!entificarea cheilor can!i!at pentru fiecare entitate &i alegerea cheilor primare Dn cazul Dn care sunt mai multe chei can!i!at Identificarea c,eilor i selectarea c,eilor primare

2,

4 cheie can!i!at este un atri%ut) sau un grup !e atri%ute care i!entific unic fiecare Dnregistrare !in tipul !e entitate "utem i!entifica una) sau mai multe chei can!i!at n acest caz tre%uie s alegem !intre ele o cheie primar Cheile can!i!at care nu sunt primare) se vor numi chei alternante "entru alegerea unei chei ca fiin! cheie primar) vom ine cont !e urmtoarele: cheia can!i!at) care are un numr minim !e atri%ute)

cheia can!i!at) care D&i va schim%a cel mai rar valoarea) cheia can!i!at) care este cel mai puin pro%a%il s sufere mo!ificri Dn
viitor) cheia can!i!at) care este compus !in cele mai puine caractere =Dn cazul atri%utelor !e tip caracterI) cheia can!i!at) care este cel mai u&or !e folosit !in punctul !e ve!ere al utilizatorului "rin procesul !e i!entificare a cheilor primare) !e!ucem &i !ac o entitate este entitate FtareG) sau entitate Fsla%G Dac reu&im s i!entificm o cheie primar) atunci entitatea este tare) altfel este sla% 4 entitate sla% nu poate e8ista fr o entitate tare) care s7i fie FprinteG Cheia primar a entitii sla%e este !erivat parial sau total !in cheia primar a entitii tari Documentarea c,eilor primare i alternante nscriem cheile primare &i pe cele alternante Dn !icionarul !e !ate =asul 5.A. Specializarea/generalizarea tipurilor de entiti *pas opional+ 4%iectivul: I!entificarea entitiilor su%clas respectiv superclas) Dntre entitiile apropiate n acest pas putem opta pentru a continua mo!elarea 6R) folosin! procesul !e generalizare sau specializare Dac alegem procesul !e specializare) vom Dncerca s !efinim una) sau mai multe su%clase ale entitii respective Dac Dns alegem procesul !e generalizare) vom cuta superclase pentru acea entitate ?n e8emplu pentru procesul !e generalizare ar fii entitiile XefW!eWscar &i 5amilii Am%ele entiti au atri%uite urmtoarele atri%ute: @rWmat) @rW%loc) Scara) 6taH) Apartament &i @ume "e lng aceste atri%ute) entitatea XefW!eWscar mai are asociate atri%utul DataWintrareWfunc' iar entitatea 5amilii) atri%utele @rWpers) @rWpersWprezente &i @rWchei Deci) cele !ou entiti avn! atri%ute Dn comun) le putem generaliza Dn entitatea Locatari) care va conine atri%utele comune) &i entitile XefW!eWscar &i 5amilii) coninn! !oar atri%utele !iferite 7 particularizrile fa !e superclas =asul 5.6. Desenarea diagramei :'. 4%iectivul: Desenarea unei !iagrame 6R care va fi reprezentarea conceptual a ve!erilor utilizatorilor !espre Dntreprin!ere n momentul acesta suntem Dn msur s prezentm o giagram complet a mo!elului %azat pe ve!erile utilizatorilor !espre Dntreprin!ere =asul 5.B. Cerificarea modelului conceptual local cu a#utorul utilizatorului

2-

4%iectivul: Oerificarea mo!elului conceptual local cu aHutorul utilizatorului) pentru a ve!ea !ac mo!elul este o reprezentare a!evrat a ve!erii utilizatorului !espre Dntreprin!ere nainte !e a termina pasul $) tre%uie verificat mo!elul conceptual ela%orat Acest mo!el inclu!e !iagrama 6R &i !ocumentaia ane8at n cazul Dn care apare orice fel !e anomalie) repetm procesul !e mai Dnainte &i reme!iem pro%lema Pasul ". Crearea $i 7alidarea modelului lo(ic local 4%iectivul: Crearea unui mo!el logic local %azat pe mo!elul conceptual al utilizatorilor asupra Dntreprin!erii &i vali!area ei prin procesul !e normalizare &i prin tehnica tranzaciilor cerute n acest pas verificm mo!elul conceptual creat Dn pasul anterior &i eliminm !in el structurile care sunt !ificil !e realizat Dntr7un S/0D Dac la sfr&itul acestui proces mo!elul ete alterat) vom corecta aceste pro%leme &i ne vom referi Dn continuare la mo!elul rezultat) ca fiin! mo!elul logic local Oom vali!a mo!elul logic prin procesul !e normalizare &i a tranzaciilor Activitile !in acest pas sunt: "asul + $ "roiectarea mo!elului conceptual local pe un mo!el logic local

"asul + + Crearea relaiilor pentru mo!elul logic local "asul + ( Oali!area mo!elului) utilizn! normalizarea "asul + + Oali!area mo!elului !in nou) utilizn! tranzaciile "asul + * Desenarea !iagramei 6R "asul + , Definirea regulilor !e integritate ale %azei !e !ate

"asul + - Oerificarea mo!elului logic local cu aHutorul utilizatorului =asul + $ =roiectarea modelului conceptual local pe modelul logic local 4%iectivul: Oerificarea mo!elului conceptual local pentru eliminarea structurilor care se pot implementa greu Dntr7un S/0D &i proiectarea mo!elului rezultat la mo!elul logic local n pasul Dnti am pregtit un mo!el conceptual %azat pe informaiile !ate !e utilizator Acest mo!el tre%uie prelucrat) pentru a putea fi u&or !e prelucrat !e sistemul !e gestiune a %azelor !e !ate 4%iectivele acestui pas sunt: =$I 6liminarea relaiilor #:@ =+I 6liminarea relaiilor comple8e =(I 6liminarea relaiilor recursive =.I 6liminarea relaiilor cu atri%ute =*I Ree8aminarea relaiilor $:$ =,I 6liminarea relaiilor re!un!ante *5+ :liminarea relaiilor multe!la!multe Dac Dn mo!elul !e !ate apar relaii !e tipul multe7la7multe =#:@I) tre%uie !escompuse Dn !ou relaii unu7la7multe =$:#I prin a!ugarea unei noi entiti suplimentare

22

De e8emplu) pot e8ista mai multe cheltuieli pentru o scar) !ar &i o cheltuial =facturI poate s se refere la mai multe scri Deci relaia !intre entitatea Scri &i entitatea Cheltuieli este !e #:@) ceea !e este evi!eniat Dn figura , $ =aI
Scari Nr_Bloc Scara Lift Cheltuieli Nr_Crt Cod_Cheltuiala (FK) Cod_Furnizor (FK) Nr_factura Data_factura aloare_factura Sunt platite de
Scari Nr_Bloc Scara Lift !e "cari Scara (FK) Nr_Crt (FK) Nr_Bloc (FK) Cheltuieli Nr_Crt Cod_Furnizor (FK) Cod_cheltuiala Nr_factura Data_factura aloare_factura

Au cheltuieli

Se calculeaza

?i(ura 1.1. =aI Relaie !e tipul @:# relaii $:#

=%I Relaie transfornamt Dn !ou

Aceast relaie se poate elimina) prin crearea unui tip !e entitate suplimentar) care s fac legtura !intre scri &i cheltuieli Diagrama acestor relaii se ve!e Dn figura 1.1.=%I @otm) c tipul !e entitate nou creat 7 "eWscri 7 este tip !e entitate sla%) pentru c !epin!e atDt !e tipul !e entitate Scri) ct &i !e tipul !e entitate Cheltuieli *3+ :liminarea relaiilor complexe 4 relaie comple8 este o relaie Dntre mai mult !e cou tipuri !e entiti Dac Dn mo!elul conceptual apar relaii comple8e) acestea tre%uie eliminate Se pot elimina prin crearea unui nou tip !e entitate) care s fie Dn relaie !e tipul $:# cu fiecare tip !e entitate !in relatia iniial) partea cu # a relaiei fiin! spre tipul !e entitate nou creat *4+ :liminarea relaiilor recursive Relaiile recursive sunt ni&te relaii particulare) prin care un tip !e entitate este Dn relaie cu el Dnsu&i Dac apare o astfel !e relaie Dn mo!elul conceptual) ea tre%uie eliminat 6liminarea se poate rezolva prin crearea unei noi entiti un!e s se evi!enieze fiecare entitate care este legat !e entitatea 23

!in tipul !e entitate iniial n acest caz vom avea o relaie !e tipul $:# Dntre tipul !e entitate iniial &i tipul !e entitate nou creat &i o relaie !e tipul $:$ Dntre tipul !e entitate nou creat &i tipul !e entitate iniial *@+ :liminarea relaiilor cu atribute Dac Dn mo!elul conceptual avem relaie cu atri%ute) putem !escompune aceast relaie) i!entificn! un nou tip !e entitate Dn care s Dnregistrm atri%utele necesare *.+ 'eexaminarea relaiilor de tipul 5(5 n mo!elul conceptual putem avea entiti Dntre care s avem relaie !e tipul $:$ Se poate Dntmpla ca aceste entiti s fie !e fapt aceea&i entitate cu nume !iferite Dac suntem Dn acest caz) unim cele !ou entiti) cheia primar !evenin! cheia primar al uneia !intre entiti *A+ :liminarea relaiilor redundante 4 relaie este re!un!ant !ac se poate aHunge !e la un tip !e entitate la alt tip !e entitate pe mai multe !rumuri O amintim c noi vrem s aHungem la un mo!el minimal &i !eci relaiile re!un!ante nu sunt necesare Decizia c o relaie este re!un!ant tre%uie s fie prece!at !e o analiz amnunit a relaiilor care compun cele !ou !rumuri !intre cele !ou entiti) pentru c pot aprea situaii) cn! o relaie este aparent re!un!ant) !ar Dn realitate este nevoie !e ea n finalul acestui pas putem spune c am eliminat !in mo!elul conceptual acele structuri care sunt !ificil !e implementat &i !eci este mai corect ca Dn continuare s ne referim la acest mo!el ca fiin! un model lo(ic local de date =asul 2.2. 0rearea de relaii peste modelul logic local 4%iectivul: Crearea !e relaii peste mo!elul logic Relaia pe care un tip !e entitate o are cu alt tip !e entitate este reprezentat prin mecanismul cheie primarJcheie strin Cheia strin pentru o entitate este repro!ucerea cheii primare a altei entiti "entru a !eci!e entitiile un!e vom inclu!e copia cheii primare a altei entiti) tre%uie Dnainte s i!entificm entitile FprinteG &i FfiuG 6ntitile FprinteG se refer la acele entiti ale cror chei primare se vor copia Dn entitile FfiuG "entru !escrierea relaiilor vom folosi un lim%aH !e !efinire a %azei !e !ate =Data%ase Definition Language 7 DDLI n acest lim%aH) specificm prima !at numele entitii) urmat !e atri%utele asociate Dntre paranteze Dup aceea i!entificm cheia primar &i toate cheile alternante) precum &iJsau cheile strine Tipuri de entitai tari "entru tipurile !e entiti tari Dn mo!elul logic crearea unei relaii inclu!e toate atri%utele entitii "entru atri%utele compuse al unei entiti) vom inclu!e numai atri%utele simple !in compunerea atri%utului compus Dn !escrierea entitii De e8emplu tipul !e entitate 5amilii) prezentat Dn figura 1.". se !escrie Dn urmtorul mo! ?amilii =@rWmat) @rW%loc) Scara) 6taH) Apartament) @ume) @rWpers) @rWpersWprezente) @rWcheiI 31

C2eie %rimar&B @rWmat Fa$ilii Nr_%at Nr_per" Nr_per"_prezente Nr_chei Nr_Bloc Scara Eta& Aparta$ent Fond_rul$ent Fond_reparatii Alte_fonduri !lati Data Nr_%at (FK) aloare 'e"tanta

Tre#uie "a platea"ca logic

?i(ura 1.". 68emplu !e mo!el

Tipurile de entiti slabe Descrierea tipurilor !e entiti sla%e se face la fel ca &i tipurile !e entiti tari) cu o completare &i anume) evi!enierea cheii strine De e8emplu !escrierea tipului !e entitate !e mai sus se !escrie astfel: Pl&*i =Data) @rWmat) Oaloare) RestanI C2eie %rimar&B Data) @rWmat C2eie str&in&B @rWmat se re8er& la 5amilii=@rWmatI #enionm c Dn cazul acesta cheia strin este &i Dn compunerea chei primare Deci Dnainte !e intro!ucerea cheii strine) cheia primar nu i!entifica unic o entitate La terminarea acestui pas) putem i!entifica cheile prinare pentru toate tipurile !e entiti !in mo!elul logic Tipurile de relaii binare de tipul unu!la!unu *5(5+ "entru fiecare tip !e relaie %inar !e tipul $:$ Dntre !ou tipuri !e entitate 6$ &i 6+ gsim o copie a cheii primare a tipului !e entitate 6$ Dn compunerea tipului !e entitate 6+) su% !enumirea !e cheie strin I!entificarea tipului !e entitate FprinteG &i a tipului !e entitate FfiuG !epin!e !e participarea entitilor la relaie :ipul !e entitate care particip parial la relaie este !esemnat ca fiin! FprinteG iar cel cu participare total FfiuG Dac am%ele tipuri !e entitate particip parial sau total la relaie) atunci tipurile !e entiti se pot evi!enia ca fiin! FprinteG sau FfiuG ar%itrar n cazul Dn care participarea este total) putem Dncerca s com%inm cele !ou tipuri !e entiti Dntr7una singur Aceast compunere poate s fie posi%il Dn cazul Dn care nici unul !intre cele !ou tipuri !e entiti nu mai ia parte la alt relaie Tipurile de relaii binare de tipul unu!la!multe 5(D "entru toate relaiile $:# Dntre !ou entiti 6$ &i 6+ Dn mo!elul logic !e !ate) vom avea copia cheii primare a entitii 6$ Dn compunerea entitii 6+ :ot!eauna entitatea !e partea unu a relaiei este consi!erat entitate FprinteG) iar cealalt entitate FfiuG 3$

9tributele cu mai multe valori "entru ficarea atri%ut A care permite mai multe valori !in entitatea 6$ Dn mo!elul logic !e !ate) crem o nou relaie care va conine atri%utul A Dmpreun cu cheia primar a entitii 6$ pe post !e cheie strin Cheia primar a noii relaii va fi atri%utul A) sau !ac este necesar) compunerea ei cu cheia primar al lui 6$ 'elaiile superclas/subclas "entru fiecare relaie superclasJsu%clas vom i!entifica superclasa ca fiin! entitatea FprinteG) iar su%clasa entitatea FfiuG 68ist multe mo!uri !e a reprezenta relaia aceasta De e8emplu s lum relaia prezentat Dn figura ,$( =4piunea $I ,ocatari =@rWmat) @rW%loc) Scara) 6taH) Apartament) @ume) DataWintrareWfunc) @rWpers) @rWpersWprez) @rWcheiI C2eie %rimar&B @rWmat =4piunea +I ?amilii =@rWmat) @rW%loc) Scara) 6taH) Apartament) @ume) @rWpers) @rWpersWprez) @rWcheiI C2eie %rimar&B @rWmat Ve8QdeQscar& =@rWmat) @rW%loc) Scara) 6taH) Apartament) @ume) DataWintrareWfuncI C2eie %rimar&B @rWmat

?i(ura 1.1.'. 68emplu !e relatie superclasJsu%clas Documentarea relaiilor i a atributelor din c,eile strine Actualizm !icionarul !e !ate) Dntro!ucn! fiacare atri%ut nou intro!us Dn compunerea unei chei la acest pas =asul + ( Calidarea, utiliz"nd normalizarea 4%iectivul: Oali!area mo!elului logic) utilizn! tehnica normalizrii 68aminm procesul !e normalizare !up cum am !escris Dn capitolul 0 "rin normalizare tre%uie s !emonstrm c mo!elul creat este consistent) conine re!un!an minimal &i are sta%ilitate ma8im @ormalizarea este procesul prin care se !eci!e !ac atri%utele pot sau nu s rmn Dnpreun Conceptul !e %az a teoriei relaiilor este c atri%utele sunt grupate Dmpreun pentru c e8ist o relaie logic Dntre ele Cteo!at %aza !e !ate nu este cea mai eficient Acesta se argumenteaz prin urmtoarele: "roiectarea normalizat organizeaz !atele Dn funcie !e !epen!enele funcionale Deci acest proces este situat un!eva Dntre proiectarea conceptual &i cea fizic

3+

"roiectul logic nu este un proiect final 6l aHut priectantul s Dneleag


natura !atelor Dn Dntreprin!ere "roiectul fizic poate fi !iferit 68ist posi%ilitatea ca unele tipuri !e entiti s se !enormalizeze :otu&i normalizarea nu este un timp pier!ut "roiectul normalizat este ro%ust &i in!epen!ent !e anomaliile !e actualizare prezentate Dn capitolul 0. Calculatoarele mo!erne au mult mai mult putere !e calcul) ca cele !e acum civa ani Din aceast cauz) cteo!at este mai convena%il implementarea unei %aze !e !ate cu puin re!un!an) !ect suportarea cheltuielilor pentru proce!urile a!iionale @ormalizarea pro!uce o %az !e !ate care va fi u&or e8tensi%il Dn viitor =asul + + Calidarea modelului prin tranzacii 4%iectivul: Oerificarea ca mo!elul !e !ate suporte toate tranzaciile cerute !e utilizator n acest pas se vali!eaz %aza !e !ate prin verificarea tranzaciilor ce se cer !e catre utilizator Lun! Dn consi!erare tipurile !e entiti) relaiile) cheile primare &i strine) Dncercm s rezolvm manual cerinele utilizatorilor Dac reu&im s rezolvm fiecare tranzacie cerut) atuci Dnseamn c mo!elul creat este vali! Dac nu putem rezolva o tranzacie) atunci este foarte posi%il s fi omis un atri%ut) o relaie) sau o entitate !in mo!elul !e !ate :re%uie s e8aminm !ac %aza !e !ate suport tranzaciile cerute #ai Dntir fi prin rezolvarea !e tranzacii De e8emplu s lum relaia !intre 5urnizori &i Cheltuieli e8emplificat Dn figura 1.'. ?i(ura 1.'. 68emplu !e relaie Furnizori Cheltuieli pentru vali!area prin tranzacii
Nr_Crt Cod_Furnizor (FK) Cod_cheltuiala Nr_factura Data_factura aloare_factura Cod_Furnizor Denu$ire Cod_fi"cal (AK)) Cont Banca Strada Nr Bl Sc Ap Localitate *udet

!ro(oaca

Inserarea de detalii despre un nou furnizor. Cheia primar al acestei entiti este @rWfurnizor Deci prima !at verific !ac numrul intro!us nu e8ist !eHa' !up care) Dn caz c nu e8ist acest co!) inserez !etaliile !espre furnizor Dac e8ist !eHa co!ul) nu a!mit inserarea "ot verifica &i e8istena co!ului fiscal) care pentru aceast entitate este cheie alternant Etergerea detaliilor despre un furnizor

3(

Se caut co!ul furnizorului !e &ters Dac e8ist se &terge furnizorul) actualizn!u7se &i cheia strin Dn entitatea Cheltuieli Dac nu e8ist co!ul cerut) atunci apare un mesaH !e eroare &i nu este &ters nici un furnizor A !oua mo!alitate !e verificare tre%uie folosit Dn cazul Dn care avem entiti care nu iau parte !irect la nici o tranzacie "entru verificarea acestor entiti) vom verifica ni&te interogri pregtie special =asul + *. Desenarea diagramei :'. 4%iectivul: Desenarea !iagramei 6ntitB7Relationship) care este reprezentarea logic a ve!erilor utilizatorilor aspra Dntreprin!erii =asul + , Identificarea regulilor de integritate. 4%iectivul: I!entificarea regulilor !e integritate pentru ve!erile utilizatorilor asupra Dntreprin!erii Regulile !e integritate sunt importante pentru a proteHa %aza !e !ate Dmpotriva posi%ilelor inconsistene Dac este necesar) putem pro!uce un proiect fizic !e %az !e !ate) pentru a putea ve!ea mai u&or ce reguli sunt necesare Oom consi!era cinci tipuri !e reguli !e integritate: necesitatea !atelor)

regulile Dntreprin!erii Fecesitatea datelor 68ist atri%ute care nu pot conine valoarea nul) ci tre%uie s ai% tot!eauna o valoare De e8emplu fiecare cheltuial Dnregistrat tre%uie s ai% asociat un furnizor al serviciilor sau al o%iectelor ce se pltesc prin acea cheltuial Aceste reguli !eHa le7am i!entificat) cn! am !ocumentat atri%utele Dn pasul $ ( 'eguli asupra domeniului atributelor. ?nele atri%ute au un !omeniu !e !efiniie %ine !efinit Aceste !omenii tre%uie respectate Domeniile !e !efiniie au fost !eHa i!entificate cn! am !ocumentat !omeniile atri%utelor Dn pasul $ + Integritatea entitilor. Cheia primar a entitilor nu poate lua valori nule De e8emplu fiecare furnizor tre%uie s ai% un co! !iferit !e zero Aceste reguli au fost !eHa i!entificate) cn! am !ocumentat cheile primare Dn pasul $ * Integritatea referinelor Cheia strina !in tipul !e entitate FfiuG face ligtura cu o entitate !in tipul !e entitate FprinteG Deci) !ac cheia strin conine o valoare) ea tre%uie neaprat s se regseasc &i Dn tipul !e entitate FprinteG De e8emplu tipul !e entitate Cheltuieli conine cheia strin Co!Wfurnizor) care se refer la 5urnizori=Co!WfurnizorI Dac aceast cheie nu este nul) atunci tre%uie s gsim un furnizor care s ai% acel co! 3.

reguli asupra !omeniului atri%utelor) integritatea entitilor) integritatea referinelor)

"rima Dntre%are pe care tre%uie s ne7o ponem este: "oate fii cheia strin nulK n cazul e8emplului nostru asta ar Dnsemna c e8ist cheltuieli care nu se prtesc nimnui Aceste cazuri nu sunt a!mise !e lege) !eci nu putem avea valoare nul Dn cheia strin !in tipul !e entitate Cheltuieli n general !ac pariciparea tipului !e entitate FfiuG este total) atunci nu putem avea valoare nul Dn cheia strin n caz contrar putem avea valoare nul "entru a !emonstra !iferitele cazuri la !efinirea acestor reguli) folosim relaia !e mai sus !intre 5urnizori &i Cheltuieli) care este !e tipul $:# Consi!erm urmtoarele cazuri: 0azul 5( Inserarea unei entiti n tipul de entitate GfiuH *0,eltuieli+( "entru a verifica integritatea referinei) verificm !ac atri%utele !in componena cheii strine =Co!WfurnizorI sunt vi!e) sau s e8iste entitate Dn tipul !e entitate FprinteG care s ai% valoare cheii primare egal cu valoare cheii strine 0azul 3( Etergerea unei entiti din tipul de entitate GfiuH *0,eltuieli+( Xtergerea unei entiti !in tipul !e entitate FfiuG nu creeaz pro%leme la integritatea referinelor 0azul 4( 9ctualizarea c,eii strine n tipul de entitate GfiuH *0,eltuieli+( Acest caz este similar cazului $ 0azul @( Stergerea unei entiti din tipul de entitate GprinteH *<urnizori+( Dac se &terge o entitate !in tipul !e entitate FprinteG) integritatea referinelor se stric Dn cazul Dn care e8ist entiti Dn tipul !e entitate FfiuG) care se refer la entitatea &tears 68ist strategii severe !e a rezolva integritatea referinelor: 5aRa AC^I?@6 @eacceptarea &tergerii unei entiti !in tipul !e entitate printe) !ac acesta este referit !e o entitate !in tipul !e entitate fiu n cazul nostru) nu se accept &tergerea furnizorului) !ac el are o factur !e Dncasat CASCADa Dac o entitate !in tipul !e entitate printe este &tears) se &terg automat toate entitiile !in tipurile !e entiti fiu Dac tipurile !e entiti fiu au &i ei la rn!ul lor alte tipuri !e entiti fiu) se va efectua &tergerea Dn casca! Dn toate tipurile !e entiti fiu) pn la ultimul nivel Cu alte cuvinte) !ac se &terge un furnizor) atunci automat se &terge fiacare factur pe carea are !e Dncasat acest furnizor S6:AR6 LA @?L Dac o entitate !in tipul !e entitate printe se &terge) atunci se vor seta la valoare nul toate cheile strine ai tipurilor !e entiti fiu Dn casca! pn la ultimul nivel n e8emplul nortru) !ac se &terge un furnizor) atunci se vor seta la valoare nul toate referinele la acest furnizor Dn tipul !e entitate Cheltuieli Acesta Dnseamn c nu vom &tii ca anumite cheltuieli la ce furnizor tre%uie pltite S6:AR6 I#"LICI:a 6ste analog cazului !e setare la nul) cu !iferena c aici se seteaz cheia strin la o valoare implicit Dn loc !e valoare nul n e8emplul nostru putem seta cheia strin !in Cheltuieli la o valoare a cheii primare !in 5urnizori) care s conin un furnizor pre!efinit 7 !e e8emplu cu numele !e F5urnizor &tersG

3*

5aRa #4DI5ICAR6

n cazul &tergerii unei entiti !in tipul !e antitate printe) nu se actualizeaz !eloc cheile strine !in tipurile !e entiti fiu 0azul A( Dodificarea c,eii primare n tipul de entitate printe *<urnizori+( Dac se mo!ific cheia primar !in tipul !e entitate printe) integritatea referinelor se stric "entru meninerea integritii) se pot folosii toate cazurile !escrise mai sus) !ar cel mai in!icat este folosirea cazului CASCADa 'egulile ntreprinderii. n final evi!eniem acele reguli care sunt !ate !e realitatea ce se va mo!ela Dn %aza !e !ate Documentarea tuturor regulilor de integritate. :recem toate regulile !e integritate Dn !icionarul !e !ate =asul + - Cerificarea modelului logic local cu a#utorul utilizatorului. 4%iectivul: Convingerea c mo!elul creat reprezint Dn totalitate realitatea care tre%uie mo!elat Dn %aza !e !ate La acest pas mo!elul local logic este clomplet &i este %ine !ocumentat nainte !e a trece la pasul () tre%uie verificat mo!elul) s fie conform cu realitatea n cazul Dn care se gsesc !iferene) ne vom reDntoarce la pa&ii anteriori &i mo!ificm cele necasare =asul ( 0rearea i validarea modelului global logic de date. 4%iectivul: Com%inarea mo!elelor locale logice Dntr7un mo!el logic glo%al care s reprezinte Dntreprin!erea care este mo!elat A treia activitate maHor Dn proiectarea %azei !e !ate logice este crearea mo!elului logic glo%al) prin compunerea tuturor mo!elelor locale Dup com%inarea mo!elelor locale) tre%uie vali!at mo!elul glo%al prin tehnica !e normalizare &i !up aceea) prin tehnica tranzaciilor Acest proces utilizeaz acelea&i tehnici pe care le7am !escris la pa&ii + ( &i + + Acest proces este foarte important Dn proiectarea %azei !e !ate) pentru c el !emonstreaz c reprezentarea Dntreprin!erii este in!epen!ent !e orice utilizator) funcie sau aplicaie Activitile !in acest pas sunt: "asul ( $ Compunerea me!elelor logice locale Dntr7un mo!el logic glo%al

"asul ( + Oali!area mo!elului logic glo%al "asul ( ( Oerificarea posi%ilitii !e a completa %aza !e !ate Dn viitor "asul ( + Desenarea !iagramei 6R finale

"asul ( * Oerificarea mo!elului logic glo%al cu aHutorul utilizatorului =asul ( $ 0ompunerea modelelor logice locale ntr!un model logic global. 4%iectivul: Compunerea tuturor mo!elelor logice locale Dntr7un mo!el logic glo%al al Dntreprin!erii n cazul unui sistem mic) cu puine ve!eri ai utilizatorilor) este relativ u&or !e a compune mo!elele logice locale n cazul unui sistem mai mare Dns) tre%uie s urmm un proces sistematic !e realizare a mo!elului glo%al "a&ii acestui proces sunt urmtoarele:

3,

=$I Oerificarea numelor entitilor &i a cheilor lor primare =+I Oerificarea numelor relaiilor =(I Compunerea entitilor !e pe vieE7urile locale =.I Inclu!erea =fr compunereI a entitilor care apar pe !oar una !intre
vieE7uri =*I Compunerea relaiilor !e pe vieE7urile locale =,I Inclu!erea =fr compunereI a relailor care apar pe !oar una !intre vieE7 uri =-I Cutarea entitilor &i a relailor care lipsesc =!ac e8istI =2I Cutarea cheilor strine =3I Cutarea regulilor !e integritate =$1I Desenarea mo!elului logic glo%al =$$I Actualizarea !ocumentaiei Cel mai u&or !e compus mai multe mo!ele locale este compunerea succesiv a !ou cte !ou !intre mo!ele *5+ Cerificarea numelor entitilor i a c,eilor lor primare. Aceast verificare se face folosin! &i !icionarul creat Dn !ecursul pa&ilor !e !inainte "ro%leme apar !oar atunci cn!: Dou entiti au acela&i nume) !ar sunt !e fapt !iferii

Dou entiti sunt acelea&i) !ar nu au acelea&i nume

"ro%a%il va fi necesar analizarea atri%utelor antitilor) prntru a rezola aceast pro%lem n particular) putem utiliza cheia primar &i numele entitii) pentru a i!entifica entitile echivalente *3+ Cerificarea numelor relaiilor. Aceast activitate este asemntoare celei !escrise la entiti *4+ 0ompunerea entitilor de pe vieI!urile locale. 68aminm numele &i atri%utele entitilor ca vor fi compuse Activitile care se inclu! Dn acest pas sunt: Compunerea entitilor cau au acelea&i nume &i acelea&i chei primare

Compunerea entitilor care au acelea&i nume) !ar cu chei primare !iferite Compunerea entitilor care au nume !iferite) cu chei primare egale sau
!iferite 0ompunerea entitilor care au aceleai nume i aceleai c,ei primare. n general entitile cu acelea&i chei primare reprezint Flumea realG) &i !eci pot fi compuse Atri%utele care apar Dn entitile !e pe am%ele vieE7uri) vor fi trecute !oar o singur !at Dac Dntr7un vieE apare un atri%ut compus) iar Dntr7un alt vieE acela&i atri%ut !ar !escompus Dn atri%ute simple) atunci vom Dntre%a) !ac se poate) utilizatorii pentru a !eci!e asupra formei !e utilizare a atri%utului 0ompunerea entitilor care au aceleai nume, dar au c,ei primare diferite. n astfel !e situaii) cutm !ou entiti care au acelea&i nume &i nu au acelea&i chei primare) !ar au acelea&i chei can!i!at Cele !ou entiti pot fi

3-

compuse) urmn! ca !up compunere s alegem o cheie primar) restul rmnn! chei alternante 0ompunerea entitilor care nu au nume comune i nu au aceleai c,ei primare. Aceste entiti se pot !epista prin analiza atri%utelor celor !ou entiti *@+ Includerea *fr compunere+ a entitilor care apar doar ntr! un vieI. "asul anterior i!entific toate entitile comune Celelalte entiti) se vor inclu!e Dn mo!elul logic glo%al e8act a&a cum apar Dn vieE7ul respectiv *.+ 0ompunerea relaiilor de pe modelele locale. n acest pas analizm similitu!inile !intre relaii !e pe !iferite mo!ele locale n timpul compunerii relaiilor tre%uie rezolvate &i conflictele !intre relaii) ca &i regulile !e car!inalitate &i participare "utem compune relaii care au acelea&i nume &i acela&i scop) sau acela&i scop) !ar nume !iferite *A+ Includerea *fr compunere+ a relaiilor care apar doar pe un vieI. Relaile care au rmas neincluse Dn mo!elul glo%al !up pasul anterior) se inclu! Dn mo!elul glo%al fr mo!ificare *6+ 0utarea entitilor i relailor care lipsesc. 6ste unul !in cei mai grei pa&i !in crearea mo!elului glo%al :re%uie cutate acele entiti &i relaii) care s7au omis la pa&ii anteriori &i n7au aHuns Dn mo!elul glo%al *B+ 0utarea c,eilor strine. n !ecursul pa&ilor anterioare) s7au mo!ificat entiti) chei primare &i chei strine n acest pas verificm !ac cheile strine sunt corecte Dn fiecare entitate fiu &i efectum toate mo!ificrile necesare *J+ 0utarea regulilor de integritate Oerificm !ac regulile !e integritate a mo!elului glo%al nu sunt Dn conflict cu regulile !efinite la mo!elele locale 5iecare pro%lem !e acest gen se rezolv cu aHutorul utilizatorului sistemului *5/+ Desenarea diagramei :'. Acum !esenm !iagrama 6R pentru mo!elul glo%al !e !ate *55+ 9ctualizarea documentaiei. Actualizm !ocumentaia) ca s reflecte toate mo!ificrile a!use Dn acest pas mo!elului =asul 4.3. Calidarea modelului logic global. 4%iectivul: Oali!area mo!elului glo%al logic !e !ate) folosin! normalizarea) !up care folosin! tranzacile cerute Acest pas este schivalent cu pa&ii ".( &i ".+.) un!e am vali!at mo!elul local !e !ate =asul 4.4. Cerificarea posibilitilor de extindere a bazei de date n viitor. 4%iectivul: Determinarea ca !ac mo!elul se acomo!eaz u&or la mo!ificri orict !e mari ce pot intervenii Dn viitor

32

6ste important ca mo!elul creat s fie e8pansi%il Dn viitor Dac mo!elul nu are aceast calitate) viaa lui poate fi scurt &i pentru o mai mare mo!ificare va tre%ui refcut !e la Dnceput =asul 4.@. Desenarea diagramei :ntitz!'elations,ip finale. 4%iectivul: Desenarea unei !iagrame 6R) care s reprezinte mo!elul glo%al !e !ate al Dntreprin!erii =asul 4... Cerificarea modelului global cu a#utorul utilizatorului. 4%iectivul: Oerificarea c mo!elul glo%al reprezint Dn totalitate realitatea n acest moment mo!elul glo%al este complet &i !ocumentat mpreun cu utilizatorul sistemului se verific acest mo!el &i se a!uc eventualele corecturi prin Dntoarcerea la pa&ii Dn cauz 1.".Proiectarea lo(ic& a )azei de date . E>em%lu n acest capitol vom Dnva !espre: Cum s folosim meto!ologia !e proiectare a %azelor !e !ate relaionele) !escris Dn , $ Cum s folosim aceast meto!ologie pentru proiectarea %azei !e !ate a sistemului iAsociaie !e locatarij n acest capitol vom e8plica !etaliat) cum putem folosi meto!ologia prezentat Dn , $ Oom e8emplifica folosirea meto!ologiei cu proiectarea %azei !e !ate pentru sistemul informatic al asociaiei !e locatari n !ecursul acestui capitol) vom folosii e8presiile FentitateG &i FrelaieG Dn locul e8presiilor Ftip !e entitateG respectiv Ftip !e relaieG n cazul Dn care pot aprea am%iguiti) se va folosii Ftip !e entitateG respectiv Ftip !e realieG 1.".1. Cerin*ele utilizatorilor. Analiza &i colectarea !atelor Dl vom Dncepe la o asociaie !e locatari Aici tre%uie s cerem informaiile necesare pentru realizarea sistemului :re%uie s colectm informaiile !espre lucrul !e zi cu zi a &efului asociaiei !e locatari Oom mai avea nevoie !e toate rapoartele pe care ei le Dntocmesc :oate informaiile !espre sistemul !e evi!en a asociaiei !e locatari se pot Dmpri Dn mai multe vieE7uri Aceste vieE7uri sunt: 6vi!ena locatarilor &i a apartamentelor !in asociaie) 6vi!ena cheltuielilor locatarilor) 6vi!ena personalului asociaiei) 6vi!ena o%iectelor !e inventar &i a miHloacelor fi8e) "lata !atoriilor asociaiei ctre furnizoriG 1.".1.1. Cerin*ele la )aza de date. E7iden*a locatarilor $i a a%artamentelor din asocia*ieB =$I n %aza !e !ate vor fi memorate toi locatarii asociaiei !e locatari Informaiile necesare !espre locatari sunt: a!resa =numr %loc) scara) etaHul &i apartamentulI &i numele 6i vor fi unic !eterminai !e un numr matricol unic pe toat asociaia !e locatari

33

=+I Dintre locatari tre%uie s evi!eniem pentru fiecare familie cte un


reprezentant "entru fiecare familie tre%uie s avem la !ispoziie informaiile: numrul mem%rilor !e familie) numrul persoanelor prezente Dn locuin Dn luna curent &i numrul !e chei !e la u&a principal =(I :ot !intre locatari se alege cte un &ef !e scar pentru fiecare scar !in asociaie Xef !e scar tre%uie s fie e8act unul pe fiecare scar &i tre%uie s locuiasc Dn scara pentru care s7a ales "entru &eful !e scar mai avem Dn plus informaia: !ata intrrii Dn funcie =.I La evi!ena cl!irilor !in asociaia !e locatari) avem !e memorat scrile care aparin asociaiei Scrile sunt i!entificate unic prin numrul %locului &i litera scrii #ai tre%uie s &tim !espre fiecare scar !ac are lift =*I "e fiecare scar avem mai multe apartamente Despre apartamente tre%uie s memorm informaiile urmtoare: nr apartamentului) suprafaa) numrul !e cutii po&tale &i numrul !e prize tv E7iden*a c2eltuielilor locatarilor =$I 5iecare cheltuial se Dnregistreaz Dn momentul primilii facturii !e la furnizor Cheltuielile sunt i!entificate unic printr7un numr !e or!ine care este continuu pe un an "entru fiecare cheltuial se Dnregistreaz informaiile: co!ul cheltuielii) co!ul furnizorului) numrul &i !ata facturii) valoarea facturii =+I Cheltuielile se pot referii la o singur scar sau la mai multe scri) sau se pot referi la o singur familie sau mai multe familii =(I "entru fiecare familie se Dnregistreaz lunar valoarea ce tre%uie pltit asociaiei Dac este cazul) se Dnregistreaz &i restanele =.I Cn! o familie D&i achit !atoria la asociaie) se emite o chitan) care tre%uie s conin informaii !espre valoarea pltit) !ata plii &i numele persoanei care a fcut plata Chitana se i!entific unic prin numrul su =*I "entru a efectua mai u&or Dnregistrarea cheltuielilor) memorm &i !atele !espre furnizori Aceste !ate sunt: !enumirea) co!ul fiscal) contul %ancar &i %anca) a!resa =stra!a) numrul) %l ) sc ) ap ) localitatea &i Hu!eulI 5urnizorii se pot i!entifica unic printr7un co! intern 7 co! furnizor =,I "e lng cheltuielile ctre furnizori e8ist &i cheltuieli) care tre%uiesc pltite !e locatari) !ar care rmn la asociaie Astfel !e cheltuial este fon!ul !e rulment) fon!ul !e reparaii) sau !ac este cazul) &i alte fon!uri Aceste cheltuieli se vor Dnregistra Dn acela&i mo! ca &i celelalte) cu !iferena c aici se va intro!uce un FfurnizorG special pregtit =-I 5iecare familie tre%uie s ai% pltit o sum la asociaia !e locatari pentru fon!ul !e rulment n cazuri speciale se a!un %ani &i pentru fon!ul !e reparaii) sau alte fon!uri E7iden*a %ersonalului asocia*iei. =$I "ersonalul asociaiei se va memora Dn %aza !e !ate) i!entificarea fcn!u7 se !up un numr matricol unic #ai folosim informaiile: numele) !ata na&terii) meseria) !ata angaHrii &i scrile !in asociaie un!e lucreaz

$11

=+I ?n angaHat poate s lucreze Dn mai multe scri &i pe o scar pot s lucreze
mai muli angaHati E7iden*a mi-loacelor 8i>e $i a o)iectelor de in7entar. =$I #iHloacele fi8e &i o%iactele !e inventar se vor i!entifica unic) cu aHutorul unui co! numit numar !e inventar "entru aceste o%iecte mai reinem urmtoarele informaii: numele) valoarea &i locul un!e este amplasat Plata datoriilor asocia*iei c&tre 8urnizori. =$I 4 factur sosit !e la un furnizor se poate achita prin cas) sau prin or!in !e plat "entru aceste achitri reinem informaiile: valoarea achitat) !ata achitrii &i numrul ur!inului !e plat sau a chitanei 1.".1.". 6ranzac*iile cerute. E7iden*a locatarilor $i a a%artamentelor din asocia*ieB =$I List cu locatarii !e pe o scar) =+I List cu familiile !e pe o scar) =(I List cu &efii !e scar) =.I List cu proprietile apartamentelor ocupate pe o scar E7iden*a c2eltuielilor locatarilor =$I List cu cheltuielile fiecrei familii pe scri) =+I List cu toate cheltuielile asociaiei !e locatari =(I Chitana care se emite la fiecare plat E7iden*a %ersonalului asocia*iei. =$I List cu personalul asociaiei E7iden*a mi-loacelor 8i>e $i a o)iectelor de in7entar. =$I List cu miHloacele fi8e &i valoarea lor) !in asociaia !e loacatari) =+I List cu o%iectele !e inventar ai asociaiei !e locatari Plata datoriilor asocia*iei c&tre 8urnizori. =$I List cu facturile sca!ente primite !e la furnizori) =+I Situaia plilor facturilor !e la furnizori) Dnglo%n! facturile !intr7o perioa! !at) Dmpreun cu mo!ul lor !e plat 1.'. Utilizarea metodolo(iei de %roiectare a )azelor de date rela*ionale. Pasul 1. Crearea modelelor conce%tuale locale; )azate %e 7ie=.urile utilizatorilorB nainte s ne apucm !e crearea mo!elului conceptual local) s ne reamintim !in ce se compune acest mo!el: tipuri !e entiti) tipuri !e relaii) atri%ute) !omeniile atri%utelor) chei can!i!at) chei primare $1$

n acest capitol vom e8emplifica meto!ologia !e proiectare pe !ou ve!eri ai sistemului informatic: 6vi!ena locatarilor &i a apartamentelor !in asociaie) 6vi!ena cheltuielilor locatarilor =asul 5.5. Identificarea tipurilor de entiti. ncepem s i!entificm tipurile !e entiti !in toate ve!erile utilizatorilor Oom !escrie separat i!entificarea acestor entiti pentru cele !ou ve!eri n cazul evi!enei locatarilor &i al apartamentelor) tipurile !e entiti sunt: Locatari Scri Xef !e scar Apartamente 5amilii n cazul evi!enei plilor tipurile !e entiti sunt: Cheltuieli 5urnizori "li Chitane 5amilii Scri Documentarea tipurilor de entiti n !ocumentarea tipurilor !e entiti inclu!em o !escriere amnunit a fiecrei entoti) Dmpreun cu aliasurile lor Aceste informaii sunt prezentate Dn ane8a , , + $ =asul $ + Identificarea tipurilor de relaii. n continuare i!entificm tipurile !e relaii :ipurile !e relaii se reprezint prin ver%e ale relaiilor :ipurile !e relaii !in cele !ou vieE7uri sunt prezentate Dn ta%elele !e mai Hos:

:ipuri !e relaii !in vieE7ul FLocatariG: :ip !e entitate :ip !e relaie :ip !e entitate Scri sunt locuite !e Locatari sunt locuite !e 5amilii sunt con!use !e Xef !e scar se compun !in Apartamente :ipuri !e relaii !in vieE7ul FCheltuieliG: :ip !e entitate :ip !e relaie :ip !e entitate 5urnizorii provoac Cheltuieli Celtuieli sunt pltite !e 5amilii sunt pltite !e Scri 5amilii tre%uie s plteasc "li primesc Chitane Dac la acest pas apar am%iguiti) ele tre%uie neaprat clarificate cu utilizatorii Determinarea cardinalitii i a participrii pentru tipurile de relaii. n contunuare vom !etermina car!inalul &i participarea relaiilor prezentate Dn ta%elele !e mai sus Car!inalul poate s fie unul !entre $1+

urmtoarele: unu7la7unu =$:$I) unu7la7multe =$:#I) sau multe7la7multe =#:@I "articiparea poate s fie parial sau total Informaiile pe %aza crora tre%uie s !eterminm aceste caracteristici ai tipurilor !e relaii) sunt prezentate Dn capitorul CC. n cazul Dn care apar am%iguiti) ele tre%uie clarificate cu aHutorul utilizatorului S lum !e e8emplu relaia !intre Scri &i Locatari "entru a fi foarte siguri !e car!inalul relaiei) vom pune urmtoarea Dntre%are: ntre%are: "ot locui pe o scar mai muli locatariK Rspuns: Da Deci relaia Scrile sunt locuite de Locatari are car!inalul $:# n continuare va tre%ui s aflm &i car!inalul relaiei inverse) a!ic a relaiei Locatarii locuiesc n apartementele !e pe Scri ntre%are: ?n locatar poate locui Dn mai multe apartamente !e pe scri !iferiteK Rspuns : @u La aceast Dntre%are avem nevoie !e o e8plicaie: Dac o persoan are !ou locuine Dn acea&i asociaie !e locatari) atunci el va apare Dn entitatea locatari !e !ou ori) cu numr matricol !iferit Deci un numr matricol poate s locuiasc !oar Dntr7un singur apartament Deci car!inalul acestei relaii este !e $:$) !e un!e rezult c relaia iniial are car!inalul $:# "entru a afla participarea entitilor la relaie) punem urmtoarele Dntre%ri: ntre%are: 5iecare scar este locuit !e cel puin un locatarK Rspuns : @u ntre%are: 5iecare locatar locuie&te Dntr7unul !in aceste scriK Rspuns: Da Deci tipul !e entitate scri partcip parial) iar tipul !e entitate Locatari particip total la relaie 5ie relaia Cheltuieli sunt pltite de Scri) !in vieE7ul FCheltuieliG S !eterminm car!inalul &i participarea ei: ntre%are: 68ist cheltuial care se refer la mai multe scriK Rspuns : Da ntre%are: Scrile pot avea mai multe cheltuieliK Rspuns : Da ntre%are: 5iecare cheltuial tre%uie s fie asociat unei scriK Rspuns : @u) pentru c poate fi asociat !oar unor familii ntre%are: 5iecare scar tre%uie s ai% cheltuieliK Rspuns : @u) pentru c pot fi scri fr locatari Dup aceste Dntre%ri &i rspunsuri) am aHuns la concluzia c relaia are car!inalul @:# =am%ele relaii 7 &i cea !irect &i cea invers 7 au car!inalul $:#I) iar participarea parial !e am%ele pri Car!inalul &i partciparea relaiilor !e mai sus sunt prezentate Dn ane8a ,(( >tilizarea modelrii :'.

$1(

"entru o Dnelegere mai u&oar a relaiilor !intre entiti) se poate folosi !iagrama 6R Diagramele 6R ale celor !ou vieE7uri ale cror relaii au fost prezentate mai sus) se pot ve!ea Dn figura 1.'.$ =aI &i =%I #enionm) c ver%ele care reprezint relaiile !e car!inal $:# se pun Dn !irecia unu7la7multe n cazul Dn care relaia a fost altfel evi!eniat) ea va fi re!enumit Documentarea tipurilor de relaii. Documantarea vieE7urilor care apar Dn figura , ( $ este realizat Dn ane8a , + (

Locatari

Sunt locuite de Sunt locuite de

Scari

Se co$pun din

Fa$ilii Sunt condu"e de Sef de "cara Aparta$ente

?i(ura 1.'.1. a! Diagrama 6R a vieE7ului FLocatariG Sunt locuite de Scari Sunt platite de Furnizori Fa$ilii Tre#uie "a platea"ca !ri$e"c

!lati Sunt platite de

Chitante

Cheltuieli

!ro(oaca

?i(ura 1.'.1. )!. Diagrama 6R a vieE7ului FCheltuieliG =asul 5.4. Identificarea i asocierea atributelor la tipurile de releii i tipurile de entiti. n acest pas i!entificm atri%utele ce se asociaz tipurilor !e entiti sau tipurilor !e relaii Atri%utele sunt informaii care caracterizeaz entitile) resoective relaiile Aceste atri%ute le putem gsi Dn !escrierea acor!at !e utilizatori n cazul nostru) atri%utele i!entificate &i asociate entitilor se pot regsi Dn ta%ela , ( + a &i , ( + % 6a)ela 1.'.".a. Atri%utele tipurilor !e entiti !in vieE7ul FLocatariG: 6i% de entitate Atri)ute $1.

Locatari 5amilii

SefWScara

Scri Apartamente

@rW#at A!resa =@rW%loc) Scara) 6taH) ApartamentI @ume @rW#at A!resa =@rW%loc) Scara) 6taH) ApartamentI @ume @rWpers @rWpersWprez @rWchei @rW#at A!resa =@rW%loc) Scara) 6taH) ApartamentI @ume DataWintrareWfunc A!resa =@rW%loc) ScaraI Lift Apartament Suprafaa CutiiWpo&tale @rWprizeWtv

6a)ela 1.'.".). Atri%utele tipurilor !e entiti !in vieE7ul FCheltuieliG: 6i% de entitate Atri)ute 5amilii @rWmat 5on!Wrulment 5on!Wreparaii AlteWfon!uri "li Data Oaloare Restan Chitane @rWChit Oaloare Data Cheltuieli @rWcrt Co!Wcheltuiala @rWfactura DataWfactura Oaloare 5urnizori Co!Wfurnizor Denumire Co!Wfiscal Cont 0anca

$1*

A!resa =Stra!a) @r ) 0l ) Sc ) Ap ) Localitate) Nu!I Documentarea atributelor( "entru !ocumentaie se !escrie fiecare atri%ut) se menioneaz tipul !e !ate folosit precum &i lungimea cmpului) reguli) valoarea implicit) toate aliasurile lui) !ac atri%utul este sau nu compus) !ac este !erivat sau nu) !ac a!mite mai multe valori &i !ac a!mite valoarea nul 4 parte a acestei !ocumentaii este e8emplificat Dn ane8a , ( + =asul 5.2. Determinarea domeniilor atributelor( n acest pas !eterminm !omeniile atri%utelor Domeniul unui atri%ut este nulimea acelor valori) pe care le poate lua Dn lucrul !e zi cu zi Documentarea atributelor. Cteva !in !omeniile e8emplului nostru sunt artate Dn ane8a , ( + =asul 5... Determinarea atributelor care aparin c,eilor candidat i primare( Acum vom e8amina ta%elele , + + a &i , + + % ) &i vom cuta cheile can!i!at pentru entitile Dn cauz Dintre aceste chei can!i!at vom selecta cheia primar) !up criterii !eHa !escrise Dn , $ Cheile primare &i alternante pentru entitile !in vieE7ul FLocatariG &i vieE7ul FCheltuieliG) sunt afi&ate Dn ane8a , ( + #enionm) c Dn acest pas nu asociem chei primare entitilor sla%e) acesast operaie fiin! rezolvat Dn pasul ++ Documentarea c,eilor primare i alternante. Documentm atri%utele care compun cheile primare &i cheile alternante ?n e8emplu !e !ocumentare gsii Dn ane8a , ( + =asul 5.A. Specializarea/generalizarea tipurilor de entiti *pas opional+. n acest pas putem !ezvolta mo!elul 6R) utilizn! procesul !e specializareJgeneralizare asupra entitilor i!entifcate Dn pasul $ $ Dac vrem s folosim procesul !e specializare) vom cuta !iferenele !intre entiti) iar Dn cazul procesului !e generalizare) asemnrile !intre ele De e8emplu) Dn vieE7ul FLocatariG) entitile Locatari) 5amilii &i XefWscar au atri%utele @rWmat) A!resa &i @ume Dn comun 6ntitatea 5amilii mai are Dn plus atri%utele @rWpers) @rWpersWprez &i @rWchei iar entitatea XefWscar are Dn plus !oar atri%utul DataWintreareWfunc 6ntitatea Locatari are asociate !oar atri%utele comune cu cele !ou entiti Deci putem generaliza entitile 5amilii &i XefWscar) punn! pe post !e superclas entitatea Locatari) iar celelalte !ou fiin! su%clase Relaia superclas7su%clas !intre entitatea Locatari &i 5amilii respectiv XefWscar este o relaie parial &i non!isHunct) pentru c Dn Locatari sunt toi locatarii asociaiei) !eci &i acelea care nu sunt nici capi !e familie &i nici &efi !e scar iar pe !e alt parte) &eful !e scar poate s fie &i cap !e familie 5igura , ( ( reprezint !iagrama celor trei entiti !up procesul !e generalizare ?i(ura 1.'.'. 68emplu !e relie superclas 7 su%clas

$1,

=asul 5.6. Desenarea modelului :'. "entru o mai %un Dnelegere a mo!elului local creat) folosim !iagrama 6R Aceast !iagram &i !ocumentaia creat se refer la mo!elul local conceptual Diagramele 6R ale celor !ou vieE7uri ai e8emplului nostru se pot ve!ea Dn figura , ( + a ) respectiv , ( + % =asul 5.B. Cerificarea modelului conceptual local cu a#utorul utilizatorului. nainte !e a termina pasul $) tre%uie verificat mo!elul la care s7a aHuns Dac se !escoper erori) atunci ne Dntoarcem la pasurile anterioare &i le reme!iem Oom repeta ace&ti pa&i pn cn! mo!elul creat va fi Dn conformitate cu realitatea Sunt locuite de Locatari
Scari Se co$pun din

Sef de "cara

Fa$ilii

Aparta$ente

?i(ura 1.'.".a. #o!elul conceptual local al vieE7ului FLocatariG

Scari

Fa$ilii Tre#uie "a platea"ca !ri$e"c

Sunt platite de Furnizori

!lati

Chitante

Cheltuieli

!ro(oaca

Sunt platite de ?i(ura 1.'.".). #o!elul conceptual local al vieE7ului FCheltuieliG =asul + + 0rearea i validarea modelului local de date. n acest pas revizuim mo!elul creat &i eliminm acele structuri care se pot implementa greu Dn sistemul !e gestiune a %azelor !e !ate Dup aceea vali!m mo!elul) utilizn! meto!a normalizrii &i a tranzaciilor =asul + $ =roiectarea modelului local conceptual n modelul local logic. n acest pas eliminm acele structuri !in %aza !e !ate) care sunt !ificil !e implementat Dn sistemul !e gestiune al %azelor !e !ate "entru a rezolva aceast pro%lem) se vor urma urmtorii pa&i:

$1-

=$I 6liminarea relaiilor !e tipul @:# =+I 6liminarea relaiilor comple8e =(I 6liminarea relaiilor recursive =.I 6liminarea relaiilor cu atri%ute =*I Ree8aminarea relaiilor !e tipul $:$ =,I 6liminarea relaiilor re!un!ante
*5+:liminarea relaiilor de tipul F(D. Cum putem o%serva &i Dn figura , + + % ) relaiile Cheltuieli Sunt pltite de 5amilii &i Cheltuieli Sunt pltite de Scri au car!inalul !e @:# Oom !escompune aceste relaii Dn cte !ou relaii !e tipul unu7la7multe =$:#I) numite Dn am%ele cazuri Se calculeaz &i 9u c,eltuieli Aceast mo!ificare !evin posi%il prin intro!ucerea a !oi entiti noi) numite "eWfamilii) respectiv "eWscri Aceste entiti noi vor fi entiti sla%e) pentru c vor !epin!e !e entile Cheltuieli) 5amilii &i Scri A!ic cheia primar a lor va fi !erivat !in cheia primar a entitilor tari #o!ificrile se pot o%serva Dn figura , ( * ?i(ura 1.'.0. OieE7ul FCheltuieliG) !up eliminarea relaiilor @:# *3+ :liminarea relaiilor complexe. n acest pas) eliminm toate relaiile comple8e =care sunt Dntre mai mult !ect !ou entitiI !in mo!elul conceptual Aceast eliminare se poate rezolva prin crearea a noi entiti 68emplul nostru nu conine nici o relaie comple8 *4+ :liminarea relaiilor recursive. "asul acesta este pentru eliminarea tuturor relaiilor recursive) a!ic acele relaii care pun Dn relaie o entitate cu el Dns&i n e8emplul nostru nu avem astfel !e cazuri *@+ :liminarea relaiilor cu atribute. Se elimin toate acele relaii) care au asociate atri%ute 6liminarea se realizeaz prin a!ugarea a noi entiti) care vor memora aceste atri%ute @u este cazul e8emplului nostru *.+ 'eexaminarea relaiilor de tipul 5(5. n foarte multe !in cazuri) entitile care sunt relaionate prin relaii cu car!inalul $:$) se pot Dnglo%a Dntr7o singur entitate De aceea este in!icat ree8aminarea relaiilor !e tipul unu7la7unu 68emplul nostru nu conine relaii !e acest tip *A+ :liminarea relaiilor redundante. "ot e8ista cazuri Dn care s avem relaii re!un!ante A!ic s se poat aHunge !e la o entitate la alte prin mai multe !rumuri !iferite n acest caz relaiile re!un!ante tre%uie eliminate) pentru c noi tre%uie s aHungem la o %az !e !ate minimal &i foarte sta%il @u este cazul e8emplului nostru Desenarea diagramei :'. #o!elul conceptual care este reprezentat Dn figura , + a &i % ) s7a mo!ificat Dn acest pas Am eliminat !in acest mo!el) toate structurile greu !e implementat Dntr7un sistem !e gestiune a %azelor !e !ate Diagrama mo!ificat $12

se va numi Dn continuare mo!elul local logic al %azei !e !ate Acest mo!el este prezentat Dn figura , ( , a &i , ( , % Sunt locuite de Locatari
Scari Se co$pun din

Sef de "cara

Fa$ilii

Aparta$ente

?i(ura 1.'.1.a. #o!elul logic local al vieE7ului FLocatariG

Scari

Fa$ilii Tre#uie "a platea"ca

Au cheltuieli !ri$e"c Chitante

!e fa$ilii Se calculeaza Cheltuieli

Furnizori

Au cheltuieli !lati !e "cari

!ro(oaca

Se calculeaza

?i(ura 1.'.1.). #o!elul logic local al vieE7ului FCheltuieliG =asul + + 0rearea de relaii peste modelul logic local. n acest pas vom crea relaiile Dntre entitile !in mo!elul logic local !e !ate) cu aHutorul mecanismului chei primareJchei strine "entru e8emplificarea acestui proces) s lum relaia 5urnizori =rovoac Cheltuieli !in vieE7ul FCheltuieliG Oom folosi lim%aHul !e !efinire a %azelor !e !ate =D0DLI) pentru !escrierea fiecrei relaii "entru fiecare entitate tare a mo!elului) crem o relaie care inclu!e toate atri%utele simple ale entitii Structura entitii 5urnizori este: ?urnizori =Co!Wfurnizor) Denumire) Co!Wfiscal) Cont) 0anca) Str ) 0l ) Sc ) Ap ) Loc ) Nu! I C2eie %rimar&B Co!Wfurnizor "entru fiecare entitate sla%) !escriem relaia) incluzn! atri%utele simple ale entitii) specificn! cheia strin &i entitatea la care se refer aceast cheie strin Structura entitii Cheltuieli este: C2eltuieli =@rWcrt) Co!Wfurnizor) Co!Wcheltuial) @rWfactur) DataWfactur) OaloareI C2eie %rimar&B @rWcrt C2eie str&in& B Co!Wfurnizor

$13

Acest proces continu) pn cn! se vor prelucra toa!e relaiile !in %aza !e !ate Documentarea relaiilor i a atributelor din c,eile strine. Relaiile !erivate pentru vieE7urile FLocatariG &i FCheltuieliG se pot ve!ea Dn ane8a , ( * ) la sfr&itul acestui capitol La crearea relaiilor tre%uie actualizat &i !icionarul !e !ate) cu atri%utele nou intro!use &i cu noile chei primare &i alternante =asul + ( Calidarea modelului prin normalizare. n acest pas vali!m %aza !e !ate prin normalizare "rocesul !e normalizare este !escris amnunit Dn capitolul +. 5orma @ormal ?nu =$@5I) eliminarea repetiiilor !in atri%ute 5orma @ormal Doi =+@5I) eliminarea !epen!enelor pariale !e cheia primar 5orma @ormal :rei =(@5I) eliminarea !epen!enelor tranzitive !e cheia primar 5orma @ormal 0oBce7Co!! =0C@5I) eliminarea anomaliilor care au mai rmas :re%uie s analizm fiecare relaie care este !escris Dn ane8a , ( * Oerificm !ac relaiile sunt Dn forma normal 0oBce7Co!!) iar !ac gsim una care nu satisface aceast form normal) ne Dntoarcem la pa&ii prece!eni &i rezolvm pro%lema "entru a e8emplifica acest proces) s analizm relaia 5urnizori =rovoac Cheltuieli) !escris Dn ane8a , ( * #enionm c notaiile !e aici nu inclu! cheia strin ?urnizori =Co!Wfurnizor) Denumire) Co!Wfiscal) Cont) 0anca) Str) @r) 0l) Sc) Ap) Loc) Nu!I C2eie %rimar&B Co!Wfurnizor C2eie alternant&B Co!Wfiscal Co!Wfurnizor Denumire) Co!Wfiscal) Cont) 0anca) Str) @r) 0l) Sc) Ap) Loc) Nu! Co!Wfiscal Co!Wfurnizor) Denumire) Cont) 0anca) Str) @r) 0l) Sc) Ap) Loc) Nu! C2eltuieli =@rWcrt) Co!Wfurnizor) Co!Wcheltuial) @rWfactur) DataWfactur) OaloareI C2eie %rimar&B @rWcrt @rWcrt Co!Wfurnizor) Co!Wcheltuial) @rWfactur) DataWfactur) Oaloare "entru acest e8emplu avem urmtoarele !emonstraii: @u e8ist grupuri repetitive Dn niciunul !intre entiti Deci relaia este Dn forma normal unu 5iecare cheie se compune !intr7un singur atri%ut De aceea nu putem avea !epen!en parial !e cheie Deci relaia este Dn form normal !oi @u e8ist !epen!ene tranzitive !e cheie) !eci relaia este Dn form normal trei

$$1

5iecare !eterminant evi!eniat este cheie) !eci relaia este Dn form normal 0oBce7Co!! Acest proces se continu pentru fiecare relaie care apare Dn ane8a ,(* =asul + + Calidarea modelului prin tranzaciile cerute. "entru a vali!a prin tranzacii un mo!el logic !e !ate) folosim !iagrama 6R !in figura , ( , a respectiv , ( , % &i !ocumentaia Dntocmit ncercm s rezolvm manual toate tranzaciile cerute !e utilizator) folosin! !oar !atele &i relaiile !in mo!elul !e !ate creat Dac nu putem rezolva o tranzacie) Dnseamn c am omis ceva la mo!elarea %azei !e !ate &i !eci tre%uie s ne Dntoarcem la pa&ii anteriori &i s reme!iem eroarea "e !e alt parte) !ac o parte a mo!elului !e !ate nu este folosit la nici o tranzacie) atunci 7 Dn caz c nu se preve!e ca Dn viitor s folosim aceast parte a mo!elului 7 va tre%ui s7l consi!erm re!un!ant) &i s7l eliminm !in mo!elul !e !ate Consi!erm !ou posi%iliti !e verificare a mo!elului !e !ate Conform primei meto!e) ne asigurm c e8ist Dn mo!elul !e !ate toate entitile &i relaiile care sunt necesare pentru tranzacia aleas "entru a e8emplifica aceast meto!) s verificm urmtoarea tranzacie: Crearea $i modi8icarea de @nre(istr&ri cu detaliile unei c2eltuieli. "entru crearea Dnregistrrii !espre o cheltuial) !up intro!ucerea !atelor !espre cheltuial) se vor selecta &i scrile sau familiile la care este asociat 4 cheltuial nu poate fi asociat &i unor familii &i unor scri "entru a mo!ifica o cheltuial) tre%uie s &tim numrul cheltuielii !in %azs !e !ate Cutm acea cheltuial &i !ac e8ist mo!ificm !etaliile !espre cheltuial) recreDn! &i legturile la familii sau scri) !epin!e cine tre%uie s plteasc Dac nu e8ist) atunci apare un mesaH !e eroare &i proce!ura !e mo!ificare se Dntrerpe n cazul &tergerii unei cheltuieli) prima !at tre%uie cutate Dnregistrrile !e legtur a acelor cheltuieli cu scri sau cu familii Dac e8ist 7 se &terg) !up care se &terge &i cheltuiala Dac nu e8ist Dnseamn c nu e8ist nici cheltuiala &i se va afi&a un mesaH !e eroare A !oua mo!aliate !e a verifica mo!elul !e !ate este !e a !esena cile generate !e relaii) pentru fiecare tranzacie Dn parte Aceste ci se noteaz cu o linie avn! o sgeat Dn !irecia tranzaciei :ranzaciile !escrise Dn capitolul , + $ + sunt reprezentate prin !iagramele !in figurile , ( - a respectiv , ( - % Sunt locuite de :$ ?i(ura 1.'.3.a. Locatari Diagrama tranzaciilor cerute la :. vieE7ul FLocatariG Scari :(
:+

Se co$pun din

Sef de "cara

Fa$ilii

Aparta$ente

$$$

Scari

Fa$ilii Tre#uie "a platea"ca

Au cheltuieli !ri$e"c
:( :+

!e fa$ilii Se calculeaza Cheltuieli

Furnizori

Au cheltuieli !lati !e "cari

:$ :+

Chitante Se calculeaza

!ro(oaca

?i(ura 1.'.3.). :ranzaciile cerute pentru vieE7ul FCheltuieliG =asul + * Desenarea diagramei :'. Diagrama 6R !in figura , + - a &i , + - % ne aHuta s i!entificm u&or relaiile critice pentru tranzacii) precum &i ariile !in mo!elul creat) care nu iau parte la nici o tranzaciie Dup i!entificarea &i eliminarea acestor arii) re!esenm !iagrama 6R n cazul nostru acest !iagram nu se mo!ific =asul + , Definirea regulilor de integritate. n acest pas i!entificm acele reguli care s ne garanteze c !atele intro!use Dn %aza !e !ate rmn consistente "utem i!entifica cinci tipuri !e reguli: necesitatea !atelor) !omeniile atri%utelor) integritatea entitilor) integritatea relaiilor) reguli !ate !e intreprin!ere Fecesitatea datelor. I!entificm acele atri%ute ale %azei !e !ate) care nu a!mit valoarea nul De e8emplu atri%utele @rWmat 7 !in entitatea Locatari 7 &i A!resa =@rW%loc) ScaraI 7 !in entitatea Scri Aceste reguli asupra atri%utelor mo!elului sunt !escrise Dn pasul $ ( &i sunt !ocumentate Dn ane8a , ( + Domeniile atributelor. Domeniile atri%utelor i!entific valorile posi%ile pe care le poate loa un atri%ut De e8emplu atri%utul 6taH !in entitatea locatari poate lua valori Dntre 7$ &i $11 Domeniile atri%utelor sunt !escrise Dn pasul $ + &i sunt !ocumentate Dn ane8a , ( + Integritatea entitilor. Cheia primar a entitilor nu poate lua valori nule De e8emplu @rWmat) chiea primar a entitii Locatari nu poate lua valoarea nul Cheile primare ale fiecrei entiti au fost i!entificate Dn pasul $ , iar !ucumentarea cheilor se gse&te Dn ane8a , ( * Integritatea relaiilor. Relaiile !intre entiti sunt reprezentate prin copierea chei primare a entitii FprinteG) Dn cheia strin a entitii FfiuG Integritatea relaiilor se refer la faptul c !ac cheia strin !intr7o entitate sla% conine o valoare)

$$+

atunci aceast valoare s e8ista &i Dn entitatea tare la care este asociat prin relaie De e8emplu !ac se Dnregistreaz pli unei familii Dn entitatea "li) atunci acea familie tre%uie s e8iste &i Dn entitatea 5amilii Atri%utele care compum cheile primare &i cheile strine sunt !escrise Dn ane8a , ( * 6ste important ca s i!entificm regulile relaiilor) pentru ca relaiile !intre entiti s rmn consistente #enionm c relaiile se !escriu cu lim%aHul specific !efinirii %azelor !e !ate =DDLI "rima !at s consi!erm cazul c cheile strine au valoare nul n general cn! participarea entitii sla%e la relaie este total) nu se permite valoare nul Dn cheia strin De e8emplu s !escriem relaia Scri Se compun din Apartamente 6ntitatea Apartamente =sla%I particip total la relaie) !eci nu a!mitem valori nule atri%utelor !in cheia strin &i anume @rW%loc &i Scara "e !e alt parte) !ac entitatea sla% particip parial la relaie) putem a!mite valoare nul &i a cheii strine @u este cazul e8emplului nostru) pentru c nu avem entitate sla% cu participare parial Descriem relaia Scri Se compun din Apartamente cu lim%aHul DDL: Sc&ri =@rW%loc) Scara) LiftI C2eie %rimar&B @rW%loc) Scara A%artamente =@rW%loc) Scara) Apartament) Suprafaa) CutiiWpo&tale) @rWprizeWtvI C2eie %rimar&B @rW%loc) Scara) Apartament C2eie str&in& B @rW%loc) Scara Nenul& re8erindu.se la Scri =@rW%loc) ScaraI n continuare consi!erm cazul Dn care se mo!ific cheia primar a entitii tari #enionm c inserarea cheii primare) sau &tergerea cheii strine nu !uneaz consistenei %azei !e !ate "entru celelalte chei primare) !efinim mo!ul !e mo!ificare &i &tergere a cheii primare "utem alege Dntre patru mo!uri: 5aRa AC^I?@6) CASCADa) S6:AR6 @?La &i S6:AR6 I#"LICI:a Descriem aceste mo!aliti !e mo!ificareJ&tergere pe %aza relaiei Scri Se compun din Apartamente) e8tinzn! Dn continuare lim%aHul D0DL Sc&ri =@rW%loc) Scara) LiftI C2eie %rimar&B @rW%loc) Scara A%artamente =@rW%loc) Scara) Apartament) Suprafaa) CutiiWpo&tale) @rWprizeWtvI C2eie %rimar&B @rW%loc) Scara) Apartament C2eie str&in& B @rW%loc) Scara Nenul&; Cascad&; re8erindu.se la Scri =@rW%loc) ScaraI Aceast operaie se e8ecut pentru fiecare relaie !escris Dn ane8a ,(* 'egulile ntreprinderii. Aceste reguli sunt !efinite !e Dntreprin!ere &i reprezint reguli ce tre%uie respectate &i Dn viaa !e zi cu zi De e8emplu lista cu plile locatarilor se poate tiprii !oar pe !urat !e o lun :oate aceste reguli sunt prezentate Dn ane8a , ( ,

$$(

Documentarea regulilor de integritate. :oate cele !escrise mai sus se !ocumenteaz Dn mo!elul !e !ate =asul + - 'evizuirea modelului de date cu a#utorul utilizatorului. n acest pas revizuim mo!elul creat cu aHutorul utilizatorului 6ste foarte important ca mo!elul s fie o reprezentare fi!el a realitii ?tilizatorul sistemului tre%uie s verifice att !iagrama ct &i !ocumentaia Dntocmit Dac se gse&te o eroare) se vor reface pa&ii necesari pentru corectarea erorii =asul ( 0rearea i validarea modelului global de date. n acest pas crem mo!elul glo%al prin compunerea entitilor !e pe !iversele mo!ele locale Acest mo!el glo%al va tre%ui &i ea vali!at prin normalizare =asul 4.5. 0ompunerea modelelor locale n modelul global. n pasul acesta compunem !ou mo!ele locale Dntr7un mo!el glo%al !e !ate #ai multe mo!ele glo%ale se compun tot !ou cte !ou) pn cn! aHungem la mo!elul glo%al "entru Dnceput i!entificm similaritile !intre mo!elele locale) !up care tre%uie i!entificate &i rezolvate ariile !e conflicte Dntre mo!ele iar Dn final se trec toate mo!elele Dntr7un singur mo!el "a&ii care tre%uie urmai pentru compunerea mo!elelor sunt prezentai Dn continuare: *5+ 'evizuirea numelor entitilor i c,eile lor primare. Comparm numele &i cheile primare !intre !ou mo!ele locale) comparaie ce este prezentat Dn ta%ela 1.'.2 6i% de entitate C2eie %rimar& 6i% de entitate C2eie %rimar& 7ie=.ul ,ocatari! 7ie=.ul C2eltuieli! Scri @rW%loc) Scar Scri @rW%loc) Scar 5amilii @rWmat 5amilii @rWmat Locatari @rWmat Xef !e scar @rWmat Apartamente @rW%loc) Scara) Ap "li Data) @rWmat Chitane @rWchit "eWfamilii @rWcrt "eWscri @rWcrt Cheltuieli @rWcrt 5urnizori Co!Wfurnizor 6a)ela 1.'.4. 4 comparaie Dntre numele entitilor &i ale cheilor lor primare Aceste similariti !intre entiti arat care sunt acele mo!ele care se suprapun 6ntitile care se suprapun se pot compune) cren! o singur entitate cu toate atri%utele entitii !in cele !ou mo!ele *3+ 'evizuirea numelor relaiilor. n continuare) comparm numele relaiilor !in !ou mo!ele !e !ate 4 comparaie Dntre mo!elele Locatari &i Cheltuieli este prezentat Dn ta%ela , ( 3 Relaiile sunt incluse Dn aceast ta%el !oar o singur !at Dn !irecia !e la entitatea tare la cea sla%

$$.

6i% entitate 7ie=.ul ,ocatari Scri

6i% de rela*ie Sunt locuite de Se compun din

6i% entitate 6i% entitate 6i% de rela*ie 7ie=.ul 7ie=.ul ,ocatari C2eltuieli Locatari Apartamente Scri 5amilii 9u c,eltuieli 9u c,eltuieli Trebuie s plteasc =rimesc Se calculeaz Se calculeaz =rovoac

6i% entitat 7ie=.ul C2eltuieli "eWscri "eWfamilii "li Chitane "eWfamilii "eWscri Cheltuieli

Cheltuieli 5urnizori

6a)ela 1.'.5. Comparaia tipurilor !e relaii Informaiile cuprinse Dn aceast ta%el arat Dnc o !at aria mo!elelor care se suprapun 6ste important s inelegem c acela&i nume se relaie Dn !ou mo!ele nu Dnseamn c acele relaii au &i acela&i rol :re%uie s avem mare griH la astfel !e nume !e relaii =se numesc omonimeI #ai e8ist &i posi%ilitatea ca relaii care reprezint acelea&i concepte s fie !enumite cu nume !iferite =sinonimeI Aceste pro%leme la i!entificarea relaiilor se pot rezolva) analizn! atri%utele =&i Dn particular !omeniile cheilorI asociate entitilor care fac parte !in relaie n final tre%uie s ne asigurm c relaiile pe care le consi!erm echivalente s reprezinte acelea&i relaii &i Dn Flumea realG *4+ 0ompunerea entitilor din cele dou modele. n acest pas analizm numele &i coninutul entitilor !in am%ele mo!ele n particular) utilizm cheia primar s ve!em care !intre entiti sunt echivalente) chiar !ac apar su% nume !iferite Dn cele !ou mo!ele Acest pas inclu!e urmtoarele activiti: Compunerea entitilor cu acelea&i nume &i acelea&i chei primare Compunerea entitilor cu acelea&i nume !ar cu chei primare !iferite Compunerea entitilor cu nume !iferite !ar cu chei primare acelea&i sau !iferite 0ompunerea entitilor cu aceleai nume i aceleai c,ei primare. 6ntitile care sunt !enumite cu acelea&i nume &i acelea&i chei primare Dn cele !ou mo!ele reprezint Dn general aceleai concepte a Flumii realeG Deci aceste entiti sunt cele mai simplu !e i!entificat Astfel !e entiti sunt !e e8emplu entitile Scri &i 5amilii 6ntitile com%inate vor inclu!e toate atri%utele celor !ou entiti !in cele !ou mo!ele) eliminn!u7se !u%lurile 68emplul !e compunere a entitii 5amilii este prezentat Dn figura , ( $1 0ompunerea entitilor cu aceleai nume dar cu c,ei primare diferite. n cazurile cn! entitile au acela&i nume !ar cu chei primare !iferite) tre%uie s i!entificm &i cheile alternante a celor !ou entiti Dac Dntre

$$*

cheile can!i!at ale unei entiti apare cheia primar a celeilalte) atunci compunem entitile &i alegem o cheie primar !intre cele !ou chei primare n e8emplul nostru nu avem astfel !e caz 0ompunerea entitilor cu nume diferite dar cu c,ei primare aceleai sau diferite. "utem Dntlni cazuri Dn care nici numele entitilor &i nici cheile primare & nu fie la fel) !ar &tim !in atri%utele celor !ou entiti c ele reprezint acelea&i concepte Aceste entiti se compun ca la cazul anterior) avn! Dn plus o%ligaia !e a alege un nume care poate s fie una !intre cele !ou nume) sau o nume nou ?i(ura 1.".10. 68emplu !e compunere a !ou entiti 7ie=.ul ,ocatari! ?amilii =@rWmat) @rWpers) @rWpersWprez) @rWcheiI C2eie %rimar&B @rWmat C2eie str&in& B @rWmat re8erindu.se la Locatari =@rWmatI 7ie=.ul C2eltuieli! ?amilii =@rWmat) 5on!Wrulment) 5on!Wreparaii) AlteWfon!uriI C2eie %rimar&B @rWmat =mo!elul glo%alI ?amilii =@rWmat) @rWpers) @rWpersWprez) @rWchei) 5on!Wrulment) 5on!Wreparaii) AlteWfon!uriI C2eie %rimar&B @rWmat C2eie str&in& B @rWmat re8erindu.se la Locatari =@rWmatI *@+ Includerea *fr compunere+ a entitilor unice n cele dou modele. Dup inclu!erea tuturor entitilor comune Dn mo!elul glo%al) mai rmn alte entiti care nu sunt comune &i care Dnc nu au fost incluse Aceste entiti se vor inclu!e neschim%at Dn mo!elul glo%al Astfel !e entiti sunt: Cheltuieli !in mo!elul Cheltuieli) respectiv Apartamente !in mo!elul Locatari *.+ 0ompunerea tipurilor de relaii din modelele locale. n acest pas analizm numele &i caracteristicile relaiilor pentru a le putea compune 6ste important !e rezolvat conflictele !atorate !in participarea &i car!inalul relaiilor @umele relaiilor !in cele !ou mo!ele sunt listate Dn ta%ela 1.".3 0ompunerea relaiilor cu aceleai nume i aceleai caracteristici. Aceste relaii sunt cel mai u&or !e i!entificat Compunerea se rezolv prin simpla Dnscriere a relaiei Dn mo!elul glo%al "ot e8ista situaii cn! car!inalul sau participarea nu coinci! Dn cele !ou mo!ele Cazul acesta tre%uie clarificat cu utilizatorul sistemului Atragem atenia c pot e8ista relaii cu acelea&i !enumiri !ar care s ai% roluri !iferite =omonimeI 0ompunerea relaiilor cu nume diferite dar cu aceleai caracteristici. I!entificm acele relaii care apar Dn am%ele mo!ele !ar cu !enumiri !iferite Acest i!entificare !evine evi!ent !up ce o%servm c relaia leag

$$,

acelea&i entiti Xi Dn acest caz tre%uie rezolvat pro%lema car!inalului &i a participrii *A+ Includerea *fr compunere+ a relaiilor unice pe cele dou modele. I!entificm toate relaiile pe care nu am inclus7o Dnc &i le inclu!em neschim%at Dn mo!elul glo%al :oate relaiile !escrise Dn ta%ela 1.'.3 sunt !e acest tip *6+ Cerificarea dac s!a omis vre!o entitate sau relaie. Aceast aciune !e verificare este foarte important !ar &i foarte grea !e rezolvat 6ntitile &i relaiile compuse pot avea chiar alt nume !ect cele !e pe mo!elele locale ceea ce face greu !e urmrit inclu!erea entitii sau a relaiei Dn mo!elul glo%al *B+ Cerificarea c,eilor strine. n acest pas verificm !ac toate entitile sla%e conin cheia strin asociat lor Aceste chei tre%uie s se formeze la compunerea entitilor) Dns tot la compunere se pot &i re!enumi *J+ Cerificm regulile de integritate. Oerificm toate regulile !e integritate pe mo!elul glo%al !e !ate si) !ac apar pro%leme la verificare) ne Dntoarcem la pa&ii anteriori &i le reme!iem *5/+ Desenarea modelului global de date. Acum !esenm mo!elul glo%al !e !ate #o!elul glo%al al sistemului !e evi!en a asociaiei !e locatari este prezentat Dn figura , ( $$ @umele entitilor &i a relaiilor se poate schim%a la aceast aciune *55+ 0ompletarea documentaiei. 6ste foarte important actualizarea !ocumentaiei) pentru a reflecta mo!ificrile efectuate asupra %azei !e !ate Ane8a , ( - !escrie relaiile mo!elului glo%al prezentat Dn figura , ( $$ ) folosin! lim%aHul DDL

$$-

Locatari

Sunt locuite de

Scari

Aparta$ente Se co$pun din

Furnizori !ro(oaca

Alocate Sunt

Cheltuieli !e "cari

Au cheltuieli E"te !atri$oniu

Se calculeaza Sef de "cara Fa$ilii !er"onal Contin !e fa$ilii

Se achita Se calculeaza Achitari

Au cheltuieli Chitante !ri$e"c Tre#uie "a platea"ca !lati

?i(ura 1.'.11. Diagrama glo%al &i final 6R =asul ( +. Calidarea modelului global de date. n acela&i mo! cum am vali!at mo!elele locale) tre%uie vali!at &i mo!elul glo%al) folosin! normalizarea &i vali!area prin tranzacii Acesta este foarte important pentru a verifica =&i !emonstraI !ac nu cumva s7au intro!us erori la crearea mo!elului glo%al =asul ( ( Cerificarea posibilitii de extindere n viitor. 6ste important ca mo!elul creat s se poat e8tin!e Dn viitor De e8emplu Dn sistemul !e evi!en a asociaiei !e locatari se va putea intro!uce un mo!ul care s rezolve salarizarea personalului asociaiei #o!elul glo%al al aplicaiei este e8tensi%il) e8tin!erea putn!u7se realiza cu minime mo!ificri =asul ( .. Desenarea diagramei :' finale. La acest pas o%servm c nu am mo!ificat nimic !e la ultima !iagram !esenat) !eci !iagrama 6R final este !iagrama !in figura 1.'.$$ =asul ( * Cerificarea modelului global cu a#utorul utilizatorului. 6ste important s ree8aminm mo!elul creat Dmpreun cu utilizatorul) pentru a ve!ea !ac Dn!epline&te toate cerinele Dac apar cerine care nu sunt Dn!eplinite) ne Dntoarcem la pa&ii anteriori &i reme!iem situaia Ane>a 1.'.1. Documentarea tipurilor !e entiti Dn vieE7urile Locatari &i Cheltuieli :ipurile !e entiti !in vieE7ul FLocatariG: Nume ti% Descriere Aliasuri Entit&*i de entitate Locatari 4amenii care locuiesc Dn "ersoanele care au !omiciliul asociaie Dn asociaie 5amilii 5amiliile !in asociaie CapWfamilie Cte o persoan !in fiecare familie) consi!erat $$2

SefWScara Scri Apartamente

"ersoana care se ocup cu pro%lemele unei scri Scrile !in asociaie Apartamentele asociaie !in

reprezentantul acesteia Cte o persoan !e pe fiecare scar !in asociaie 5iecare scar care aparine asociaiei) Dmpreun cu caracteristicele ei 5iecare apartament !in asociaie) Dmpreun cu caracteristicile ei Entit&*i Analog ca la FLocatariG Analog ca la FLocatariG 5iecare furnizor cu care s7a lucrat vreo!at Dn asociaie 5iecare factur) care reprezint o cheltuial a locatarilor !in asociaie "lile calculate pentru fiecare familie :oate chitanele emise ctre locatari

:ipurile !e entiti !in vieE7ul FCheltuieliG: Nume ti% Descriere Aliasuri de entitate Scri Scrile !in asociaie 5amilii 5amiliile !in asociaie CapWfamilie 5urnizori Societile !e la care vin facturile Cheltuieli Cheltuielile asociaiei ctre furnizori "li Chitane "lile calculate Chitanele emise

Ane>a 1.'.". Documentarea atri%utelor Atri%utele tipurilor !e entiti !in vieE7ul FLocatariG: 6i% de Atri)ute Descriere entitate Locatari @rW#at Det unic locatarii 6taH 6taHul la care loc Apartament Apartamentul @ume @umele locatarului 5amilii Ca la Locatari) plus @rWpers @r pers Dn familie @rWpersWprez @r pers prezente Dn luna curent @rWchei @r !e chei !e la u&a principal SefWScara Ca la Locatari plus DataIntr5unc Data intrrii Dn func

6i% de date $i Re(uli lun(ime ntreg Cheie primar ntreg Y7$)$11Z ntreg +* !e caractere Ca la Locatari Ca la Locatari plus ntreg ntreg ntreg Ca la plus Dat Locatari Ca la Locatari

$$3

Scri

A!resa =@rW%loc) ScaraI Lift 68ist sau nu lift Apartamente Apartament Apartamentul Suprafaa Sup total a ap CutiiWpo&tale @r cutii po&tale @rWprizeWtv @r prize tv Atri%utele tipurilor !e entiti !in vieE7ul FCheltuieliG: 6i% de Atri)ute Descriere entitate 5amilii @rWmat I!entific familia 5on!Wrulment 5on! !e rulment 5on!Wreparaii 5on! !e reparaii AlteWfon!uri Alte fon!uri "li Data Luna pt care e plata Oaloare Suma !e plat Restan Suma restant Chitane @rWchit I! unic chitana Oaloare Oaloarea pltit Data Data plii Cheltuieli @rWcrt I!entific cheltuiala Co!Wcheltuiala :ipul cheltuielii @rWfactura @umrul facturii DataWfactura Data facturii Oaloare Oaloarea cheltuialii 5urnizori Co!Wfurnizor I!entific furnizorul Denumire @umele societii Co!Wfiscal Co!ul fiscal Cont Contul %ancar 0anca 0anca A!resa Str)@r)0l)Sc)Ap)Loc

Cheie primar Logic ntreg Real ntreg ntreg 6i% de date $i Re(uli lun(ime ntreg Cheie primar Real Real Real Dat Real Real ntreg Cheie primar Real Dat ntreg Cheie primar ntreg ntreg Dat Real ntreg Cheie primar (1 !e caractere $1 caractere Cheie alt +* !e caractere +1 !e caractere

Ane>a 1.'.'. Documentarea tipurilor !e relaii !in vieE7urile FLocatariG &i FCheltuieliG :ipuri !e relaii !in vieE7ul FLocatariG: 6i% de 6i% de rela*ie 6i% de entitate Cardinal entitate Scri sunt locuite !e Locatari $:# sunt locuite !e 5amilii $:# sunt con!use !e Xef !e scar $:# se compun !in Apartamente $:# :ipuri !e relaii !in vieE7ul FCheltuieliG: 6i% de 6i% de rela*ie 6i% de entitate Cardinal entitate 5urnizorii provoac Cheltuieli $:# Celtuieli sunt pltite !e 5amilii #:@

Partici%areJ ":: ":: ":: ::: Partici%areJ ":: ":"

$+1

5amilii

sunt pltite !e tre%uie s plteasc primesc b "[parial) :[total

Scri "li Chitane

#:@ $:# $:#

":" ::: "::

Ane>a 1.'.+. Documentarea !omeniilor atri%utelor Nume domeniu Caracteristici 6taH ntreg Dntre 7$ &i $11 String(1 (1 !e caractere) lungime varia%il String$1 $1 caractere) lungime varia%il String+1 +1 !e caractere) lungime varia%il

E>em%le 1["arter R4#/Ac

Ane>a 1.'.0. Descrierea relaiilor !in vieE7urile FLocatariG &i FCheltuieliG Descrierea relaiilor !in vieE7ul FLocatariG ,ocatari =@rWmat) @rW%loc) Scara) 6taH) Apartament) @ume) @rWpers) @rWpersWprez) @rWchei) DataWintrareWfuncI C2eie %rimar&B @rWmat C2eie str&in& B @rW%loc) Scara re8erindu.se la Scri =@rW%loc) ScaraI Sc&ri =@rW%loc) Scara) LiftI C2eie %rimar&B @rW%loc) Scara A%artamente =@rW%loc) Scara) Apartament) Suprafaa) CutiiWpo&tale) @rWprizeWtvI C2eie %rimar&B @rW%loc) Scara) Apartament C2eie str&in& B @rW%loc) Scara re8erindu.se la Scri =@rW%loc) ScaraI Descrierea relaiilor !in vieE7ul FCheltuieliG: Sc&ri =@rW%loc) ScaraI C2eie %rimar&B @rW%loc) Scara ?amilii =@rWmat) 5on!Wrulment) 5on!Wreparaii) AlteWfon!uriI C2eie %rimar&B @rWmat Pl&*i =Data) @rWmat) Oaloare) RestanI C2eie %rimar&B Data) @rWmat C2eie str&in& B @rWmat re8erindu.se la 5amilii =@rWmatI C2itan*e =@rWchit) @rWmat) Oaloare) DataI C2eie %rimar&B @rWchit C2eie str&in& B @rWmat re8erindu.se la 5amilii =@rWmatI ?urnizori =Co!Wfurnizor) Denumire) Co!Wfiscal) Cont) 0anca) Str) @r) 0l) Sc) Ap) Loc) Nu!I C2eie %rimar&B Co!Wfurnizor C2eie alternant&B Co!Wfiscal C2eltuieli =@rWcrt) Co!Wfurnizor) Co!Wcheltuial) @rWfactur) DataWfactur) OaloareI

$+$

C2eie %rimar&B @rWcrt C2eie str&in& B Co!Wfurnizor re8erindu.se la 5urnizori =Co!WfurnizorI PeQ8amilii =@rWcrt) @rWmatI C2eie %rimar&B @rWcrt C2eie str&in& B @rWcrt re8erindu.se la Cheltuieli =@rWcrtI C2eie str&in& B @rWmat re8erindu.se la 5amilii=@rWmatI PeQsc&ri =@rWcrt) @rW%loc) ScaraI C2eie %rimar&B @rWcrt C2eie str&in& B @rWcrt re8erindu.se la Cheltuieli =@rWcrtI C2eie str&in& B @rW%loc) Scara re8erindu.se la Scri =@rW%loc) ScaraI Ane>a 1.'.1. Regulile !ate !e Dntreprin!ere Dn cazul mo!elului FLocatariG &i FCheltuieliG =$I Lista !e pli se ela%oreaz !oar pe o lun Dntreag =+I 5iecare familie tre%uie s !eclare la Dnceputul lunii !ac va lipsii un mem%ru al familiei toat luna =(I @ici o familie nu va putea s se mute pn cn! nu si7a pltit toate !atoriile Ane>a 1.'.3. #o!elul glo%al !e !ate al sistemului Asociaia !e Locatari ,ocatari =@rWmat) @rW%loc) Scara) 6taH) Apartament) @umeI C2eie %rimar&B @rWmat C2eie str&in& B @rW%loc) Scara Nenul&; re8erindu.se la Scri =@rW%loc) ScaraI la &tergere &i la mo!ificare Cascad&. ?amilii =@rWmat) @rWpers) @rWpersWprezente) @rWchei) 5on!Wrulment) 5on!Wreparaii) AlteWfon!uriI C2eie %rimar&B @rWmat C2eie str&in& B @rWmat Nenul&; re8erindu.se la Locatari =@rWmatI la &tergere &i mo!ificare Cascad&. Ve8QdeQscar& =@rWmat) DataWintrareWfuncI C2eie %rimar&B @rWmat C2eie str&in& B @rWmat Nenul&; re8erindu.se la Locatari =@rWmatI la &tergere &i mo!ificare Cascad&. Sc&ri =@rW%loc) Scara) LiftI C2eie %rimar&B @rW%loc) Scara A%artamente =@rW%loc) Scara) Apartament) Suprafaa) CutiiWpo&tale) @rWprizeWtvI C2eie %rimar&B @rW%loc) Scara) Apartament C2eie str&in& B @rW%loc) Scara Nenul&; re8erindu.se la Scri =@rW%loc) ScaraI la &tergere &i mo!ificare Cascad&. Pl&*i =Data) @rWmat) Oaloare) RestanI $++

C2eie %rimar&B Data) @rWmat C2eie str&in& B @rWmat Nenul&; re8erindu.se la 5amilii =@rWmatI la &tergere ?&r& ac*iune) la mo!ificare Cascad&. C2itan*e =@rWchit) @rWmat) Oaloare) DataI C2eie %rimar&B @rWchit C2eie str&in& B @rWmat Nenul&; re8erindu.se la 5amilii =@rWmatI la &tergere ?&r& ac*iune) la mo!ificare Cascad&. ?urnizori =Co!Wfurnizor) Denumire) Co!Wfiscal) Cont) 0anca) Stra!a) @r) 0l) Sc) Ap) Localitate) Nu!etI C2eie %rimar&B Co!Wfurnizor C2eie alternant&B Co!Wfiscal C2eltuieli =@rWcrt) Co!Wfurnizor) Co!Wcheltuial) @rWfactur) DataWfactur) OaloareWfacturI C2eie %rimar&B @rWcrt C2eie str&in& B Co!Wfurnizor Nenul&; re8erindu.se la 5urnizori =Co!WfurnizorI la &tergere ?&r& ac*iune) la mo!ificare Cascad&. PeQ8amilii =@rWcrt) @rWmatI C2eie %rimar&B @rWcrt C2eie str&in& B @rWcrt Nenul&; re8erindu.se la Cheltuieli =@rWcrtI la &tergere &i mo!ificare Cascad&. C2eie str&in& B @rWmat Nenul&; re8erindu.se la 5amilii=@rWmatI la &tergere &i mo!ificare Cascad&. PeQsc&ri =@rWcrt) @rW%loc) ScaraI C2eie %rimar&B @rWcrt C2eie str&in& B @rWcrt Nenul&; re8erindu.se la Cheltuieli =@rWcrtI la &tergere &i mo!ificare Cascad&. C2eie str&in& B @rW%loc) Scara Nenul&; re8erindu.se la Scri =@rW%loc) ScaraI la &tergere &i mo!ificare Cascad&. Personal =@rWmatricol) @ume) DataWna&terii) #eseria) DataWangaHriiI C2eie %rimar&B @rWmatricol Alocate =@rWmatricol) @rW%loc) ScaraI C2eie %rimar&B @rWmatricol) @rW%loc) Scara C2eie str&in& B @rWmatricol Nenul&; re8erindu.se la "ersonal =@rWmatricolI la &tergere &i mo!ificare Cascad&. C2eie str&in& B @rW%loc) Scara Nenul&; re8erindu.se la Scri =@rW%loc) ScaraI la &tergere &i mo!ificare Cascad&. Patrimoniu =@rWinventar) @rW%loc) Scara) Denumire) InvWfi8) OaloareI C2eie %rimar&B @rWinventar C2eie str&in& B @rW%loc) Scara Nenul&; re8erindu.se la Scri =@rW%loc) ScaraI la &tergere &i mo!ificare Cascad&. Ac2it&ri =@rWcrt) @rW!oc) :ipWop) OaloareWachit) DataI

$+(

C2eie %rimar&B @rWDoc) :ipW4p C2eie str&in& B @rWcrt Nenul&; re8erindu.se la Cheltuieli =@rWcrtI la &tergere &i mo!ificare Cascad&.

Ca%itolul 3. Baze de date distri)uite


3.1. Generalit&*i 4 %aza !e !ate !istri%uit =0DDI este o colecie logic corelat !e !ate partaHate) !istri%uite fizic pe o reea !e calculatoare ?n sistem !e gestiune al unei %aze !e !ate !istri%uite =S/0DDI este un sistem softEare care permite gestionarea 0DD &i face !istri%uirea transparent pentru utilizator Sistemele !e !ate !istri%uite sunt menite s rezolve pro%lema Rinsulelor !e informaiiR 6le au aprut ca o necesitate) Dn special in cazul reelelor !e calculatoare) pentru a spriHini gestionarea !atelor Dn situaia cn! acestea se regsesc fizic Dn !iferite puncte ale reelei "rimele sisteme !e %aze !e !ate !istri%uite au fost I@/R6SJS:AR) versiune !istri%uit a lui I@/R6S) S9LbS:AR versiune !istri%uit a lui 4RACL6 &i Rb versiune !istri%uita a lui D0+ Sistemul fizic =reeauaI care constituie suportul unei %aze !e !ate !istri%uite poate fi format !in calculatoare personale) minicomputere) staii !e lucru) etc toate legate Dn reea &i numite generic site7uri "utem reformula !efiniia !e la Dnceput spunn! ca un sistem !e %aze !e !ate !istri%uite const !intr7o colecie !e site7uri) fiecare putn! participa la e8ecutarea tranzaciilor care acceseaz !atele !e pe un site sau !e pe mai multe site7uri "rintre cerinele pe care tre%uie s le asigure un sistem !e %aze !e !ate !istri%uite menionm: autonomia locala Dn organizarea &i prelucrarea !atelor) neutilizarea unei centralizri a evi!enei &i a !atelor) posi%ilitatea !e lucru continuu al site7urilor in!epen!ent !e schim%rile in configuraiile !e lucru =a!ugari sau eliminari !e site7uriI) in!epen!ena localizrii &i fragmentrii !atelor =transparena fizicI) posi%iliti !e replicare =copiereI &i in!epen!ena copiilor) prelucrarea !istri%uit a cererilor) a!ministrarea !istri%uit a tranzaciilor) in!epen!ena !e har!Eare) !e sistemul !e operare) !e reea &i !e sistemul !e gestiune a %azelor !e !ate ?n S/0DD const !intr7o singur %az !e !ate care este !escompus Dn fragmente) eventual unele fragmente sunt multiplicate) &i fiecare fragment sau copie se pastreaz pe unul sau mai multe site7uri) su% controlul unui S/0D local 5iecare site este capa%il sa proceseze interogri utilizator Dn regim local) in!epen!ent !e restul reelei) sau este capa%il s participe la procesarea unor

$+.

!ate situate Dn alte site7uri !in reea "entru a spune c un S/0D este !istri%uit tre%uie s e8iste cle puin o cerere glo%al :ranzaciile Dntr7o %aza !e !ate !istri%uit sunt clasificate Dn tranzacii locale &i tranzacii glo%ale !up site7urile pe care le solicit e8cutarea lor 4 configuratie pe retea reprezinta o %aza !e !ate !istri%uita !aca !iversele site7 uri sunt RconstienteR !e e8istenta celorlalte site7uri &i !aca fiecare site ofera un me!iu in care se pot e8ecuta tranzactii locale &i glo%ale AvantaHele !istri%uirii %azelor !e !ate: sistemul !istri%uit se mo!eleaz cel mai %ine pe structura organizaional a multor organizaii) avan! Dn ve!ere ca multe companii sunt localizate R!istri%uitR !in punct !e ve!ere geografic !atele sunt partaHa%ile !ar a!ministrarea lor se %ucur !e un gra! Dnalt !e autonomie local !isponi%ilitatea %azei !e !ate este evi!ent mai %un !ect Dn cazul centralizat Dac se semnaleaz unele erori sau R!eriR !e sistem la nivel local sistemul Zn Dntregime poate s continue s funcioneze Dn con!iii satisfctoare fia%ilitatea sistemului este Dm%untit Se pot reface rapi! fi&iere !istruse utilizn! replici aflate pe alte site7uri performanele Dn prelucrarea !atelor se Dm%untesc prin posi%ilitatea prelucrYrii Dn paralel a unor interogYri un sistem !istri%uit ofer avanatHe economice !ac lum Dn consi!erare costurile implementrii &i Dntreinerii unei reele fa !e costurile corespunztoare ale unui sistem centralizat !e putere compara%il !e prelucrare Costuri scazute se mai o%tin !aca se realizeaza prelucrri locale ct mai multe =Dn caz sistemul &i aplicaiile permit acest lucruI De asemenea este mult mai convena%il s se RaHustezeR o reea !e calculatoare la nevoile organizajiei =!acY !e e8emplu este necesar a!ugarea unor site7 uri Dn plusI !ect un calculator central !e putere asemntoare capacitatea !e gestionare mo!ular a sistemului permite e8tensii ale acestuia sau rezolvarea unor Rc!eriR pariale fr s se afecteze prea tare =uneori fr a se afecta !elocI mersul activitilor pe ansam%lul sistemului !istri%uit

"rintre !ezavantaHele !istri%uirii amintim comple8itatea crescuta a unui astfel !e sistem Acesta este un !ezavantaH maHor !in care !ecurg unele !ezavantaHe RconsecintaR !intre care: este mai greu !e gestionat &i !e implementat un sistem !istri%uit costurile legate !e un astfel !e sistem sunt mult mai mari !ecat in cazul centralizat DeHa la nivelul proiectarii &i implementarii sistemului este $+*

necesar mai mult timp &i personal specializat Am%ele lucruri necesita costuri mai mari in %ani La aceste costuri se pot a!auga acelea care vin !in necesitatea asigurarii echipamentelor har!Eare performante &i a soft7ului necesar De asemenea) in cazul e8ploatarii sistemului la costurile o%isnuite se vor a!auga costuri !estul !e ri!icate !e comunicatii potential marit !e erori La erorile o%isnuite in lucrul cu %aze !e !ate se pot a!auga o serie !e erori cum ar fi !e e8emplu cele generate !e algoritmi !istri%uiti este necesara o procesare suplimentara care se !atoreaza schim%urilor !e mesaHe intre site7uri &i a coor!onarii acestora in general securitatea unui sistem !istri%uit este mai greu !e asigurat !ecat in cazul unui sistem centralizat Datele sunt mai usor !isponi%ile unor persoane neautorizate !eoarece se poate incerca acces la ele prin interme!iul accesului intre calculatoare Controlul la nivel fizic a!ministrativ are mai putina pon!ere !ecat in cazul unui sistem centralizat intergitatea !atelor este !e asemenea mai greu !e realizat intr7un sistem !istri%uit Integritatea se e8prima !e o%icei in termeni !e restrictii =reguli) con!itiiI pe care tre%uie sa le verifice !atele !in %aza !e !ate Datorita costurilor mari !e comunicatii =in timp &i %aniI uneori se renunta la verificarea unor reguli in !etrimentul consistentei %azei !e !ate lipsa stan!ar!elor @u se poate vor%i !e o lipsa totala !e stan!ar!e !ar) lucrul cu sisteme !e !ate !istri%uite inca nu are la %aza stan!ar!e internationale unanim acceptate De aici !ecurg !ezavantaHe cum ar fi: pro%leme !e comunicare care se pun !eoarece stan!ar!ele !e comunicatii &i protocoalele !e acces la !ate inca nu au stan!ar!e fi8ate &i acceptate pe scara larga @u e8ista foarte multa e8perienta privin! lucrul !istri%uit &i proiectarea) gestionarea &i e8ploatarea unui sistem !istri%uit sunt mai !ificile !ecat in cazul centralizat un alt !ezavantaH pe care il mentionam aici il constituie posi%ilitatea aparitiei unui flu8 mare !e informatii intre site7uri &i !e aici necesitatea rezolvarii unor pro%leme cum ar fi sincronizarea mesaHelor) !etectarea &i corectarea unor pertur%ari) eliminarea unor inconsistente !atorate re!un!antelor) etc

3.". ?unctiile $i ar2itectura unui SGBDD 6numeram mai Hos functiile principale ale unui S/0DD: toate functiile pe care le atri%uim unui S/0D centralizat sa e8tin!a comunicatiile pentru a furniza acces la site7urile !in retea &i sa permita transferul !e !ate &i realizarea interogarilor sa gestioneze un !ictionar !e !ate e8tins pentru !etalii legate !e mo!ul !e !istri%uire a !atelor

$+,

sa permita &i sa sustina procesarea !istri%uita a interogarilor sa faciliteze un control e8tins al concurentei in scopl mentinerii unui gra! satisfacator al consistentei !atelor sa ofere servicii !e recoverB e8tinse care sa rezolve ca!eri ale site7urilor &i ale comunicatiilor

Arhitectura A@SI7S"ARC pe trei nivele a unei %aze !e !ate !istri%uite este re!ata grafic in pagina urmatoare) 5ig - $ Dam mai Hos cateva e8plicatii referitoare la unele elemente prezente in schema: schema conceptuala glo%ala este o !escriere logica a intregii %aze !e !ate) fara a se evi!entia aspectul !istri%uit La acest nivel se !efinesc entitatile) relatiile) restrictiile !e integritate) informatiile generale !e securitate a !atelor schemele !e fragmentare !escriu mo!elul logic al partitionarii %azei !e !ate iar alocarea !escrie repartizarea fragmentelor &i a eventualelor copii ale acestora pe site7urile retelei schemele locale !e mapare re!au fragmentele !in schema !e alocare in Ro%iecteR e8terne %azei !e !ate locale Aceasta !escriere este in!epen!enta !e S/0D7ul ales &i !atorita acestui fapt se poate vor%i !e S/0D heterogene

Ca o paranteza mentionam aici clasificarea S/0D7urilor !istri%uite in heterogene &i omogene S/0D omogene reprezinta situatia can! pe toate site7urile !in retea este har!Eare similar) sistem !e operare i!entic si) cel mai important) S/0D local i!entic In cazul S/0D heterogene e8ista mai multe situatii !upa cum !ifera !otarea har!Eare) sistemele !e operare siJsau S/0D7urile utilizate local pe site7uri Diferentele pot fi impinse pana la a avea structuri ale %azei !e !ate !iferite =!ate !e mo!ele !e !ate !iferiteI !ar) evi!ent) lucrul in acest caz este !estul !e greoi &i este supus multor limitari

$+-

Schema e8terna glo%ala Schema conceptuala glo%ala Schema !e fragmentare

Schema e8terna glo%ala

Schema !e alocare

Schema locala !e mapare

Schema conceptuala locala Schema interna locala

5ig - $ Arhitectura A@SI7S"ARC pe trei nivele

$+2

In ca!rul unui S/0DD putem i!entifica urmatoarele componente: o component local S/0D =LS/0DI o component !e comunicaii !e !ate =CDI un !icionar !e !ate glo%al =DD/I Acest !icionar are aceea&i funcionalitate ca &i un! !icionar !e !ate Dn cazul S/0D centralizat !ar conine informaii suplimentare referitoare la fragmentare &i la alocarea !atelor Xi DD/ poate fi fragmentat &i replicat ca orice alt informaie !in %aza !e !ate !istri%uit componente !e S/0D !istri%uit =S/0DDI

3.'. Proiectarea unei )aze de date rela*ionale distri)uite "roiectarea corect a unei %aze !e !ate relaionale !istri%uite necesit) pe lng cerinele cunoscute pentru sistemele centralizate) &i realizarea urmtoarelor: fragmentarea !atelor C informaiile pot fi partitionate Dn fragmente care sunt apoi stocate pe !iferite site7uri Dn reea replicarea C se pot realiza copii ale !iferitelor relaii sau ale fragmentelor alocarea fragmentelor &i a replicilor pe !iferite site7uri realizarea) pe cat posi%il a accesului in regim !e referinte locale Acolo un!e este necesar &i un!e permite aplicaia se recoman!a utilizarea !e copii ale fragmentelor o%tinerea unei fia%ilitati &i a unei !isponi%ilitati !eose%ite ale %azei !e !ate prin utilizarea optima a replicarii fragmentelor realizarea unor parametri !eose%iti !e performanta Daca se aloca prost !atele pe site7uri se aHunge fie la suprasolicitarea unui site =loc ingustI fie la utilizarea resurselor la un nivel inferior optimizarea capacitatii &i a costurilor !e stocare Capacitatea &i costuril !e stocare tre%uie puse in %alanta cu ten!inta !e a avea referinte locale) !eoarece au efecte contrare optimizarea costurilor !e comunicare Aici sunt !e luat in consi!erare mai ales costurile interogarilor intre site7uri :re%uie sa se ai%a in ve!ere ca) !aca se pot micsora costurile !e regasire atunci can! referintele sunt mai ales locale =sau can! fiecare site are propriile copii ale !atelorI in schim% actualizarile in aceeasi situatie pot cre&te costurile foarte mult =si riscul o%tinerii inconsistenteiI !eoarece tre%uie sa fie realizate asupra !atelor !e la toate site7urile

Definirea fragmentelor &i alocarea acestora pe site7uri au ca o%iective:

$+3

3.+. Alocarea datelor Se cunosc patru strategii !e alocare a !atelor Dntr7o %aza !e !ate relaional !istri%uit: $ centralizat 0aza !e !ate se afl Dn Dntregime pe un singur site !in reea &i este gestionat !e un singur D0#S Spunem Dn acest caz c %aza !e !ate este procesat distribuit) ea !e fapt nu mai este o %az !e !ate !istri%uit in a!evaratul sens al cuvntului DezavantaHele sunt mai ales costurile mari !e comunicaii &i o fia%ilitate &i o !isponi%ilitate foarte sczute) avn! Dn ve!ere c orice eroare care %locheaz accesul la %aza !e !ate) practic paralizeaz Dntreaga activitate Dn reea pe aceast !irecie + fragmentat =partiionatI 0aza !e !ate este partiionat Dn mai multe fragmente !isHuncte care sunt stocate pe !iverse site7uri Comentarii: ( . aceasta paritionare a !atelor poate Dm%untti frecvena referinelor locale !ac nu e8ist replici ale fragmentelor) costurile !e stocare sunt re!use fia%ilitatea &i !isponi%ilitatea sunt sczute !ar nu a&a !e mici ca Dn cazul centralizat !ac !atele sunt !istri%uite corect) costurile !e comunicare pot fi relativ sczute replicat complet eficiena referirilor locale) fia%ilitatea &i !isponi%ilitatea sunt ma8ime costurile !e stocare sunt Dn schim% &i ele foarte mari) la fel sunt &i costurile !e actualizare replicat selectiv

"e fiecare site se gseste o copie complet a %azei !e !ate Comentarii:

Aceasta strategie este o com%inaie intre partiionare) replicare &i centralizare cu scopul !e a se cumula) pe cat posi%il) avantaHele fiecrei strategii &i s se elimine !ezavantaHele Definirea replicilor &i a fragmentelor) precum &i alocarea acestora tre%uie sa se %azeze pe mo!ul !e utilizare a !atelor !in %aza !e !ate In faza !e analiza) la proiectarea %azei !e !ate tre%uie sa se tina cont !e cele mai frecvent utilizate aplicaii !eoarece nu se poate realiza o alocare care sa optimizeze toate aplicaiile simultan "rintre criteriile care !uc la !ecizia corecta !e alocare a %azei !e !ate: frecventa cu care se ruleaza o aplicaie $(1

site7urile !e la care se ruleaza cel mai frecvent aplicaia mo!ul !e lucru al tranzactiilor e8ecutate !e aplicaie &i tipurile !e acces la !ate etc

3.+.1. ?ra(mentarea La %aza fragmentarii %azei !e !ate e8ista) printre altele) urmatoaele motivari: mo! !e utilizare C in general intr7o aplicaie utilizatorii au acces mai mult la vieE7uri !ecat la intreaga %aza !e !ate eficienta C se !oreste ca !atele sa fie stocate acolo un!e sunt utilizate mai frecvent paralelism C o tranzactie poate fi !ivizata in mai multe su%interogari care opereaza pe fragmente in paralel &i astfel se castiga timp securitate C !atele care nu sunt necesare sunt stocate in alta parte) !eci nu sunt la !ispozitia accesului neautoarizat performantele pot fi !estul !e scazute !aca sunt necesare !ate ce apar in !iverse fragmente controlul integritatii !atelor este mai !ificil !aca !atele &i !epen!entele functionale sunt fragmentate &i localizate pe !iferite site7uri completitu!ine C !ac relaia R este !escompus Dn fragmentele R $) R+) Q)Rn) tre%uie luate msuri care s previn pier!erea !e informaii reconstrucie C s fie posi%il Dn orice moment s se refac relaia R !e la care s7a pornit cu fragmentarea Aceasta regul conserv !epen!enele funcionale !isHuncie C !ac !ata !i apare Dn fragmentul Ri atunci nu este permis s apar Dn nici un alt fragment De la aceast regul se a!mite !oar o e8cepie) cazul cn! o relaie este fragmentat pe vertical pe orizontal pe vertical com%inat

DezavantaHele lucrului cu fragmente ale %azei !e !ate: -

Reguli !e %az care !uc la o fragmentare corect a %azei !e !ate: $ +

:ipuri !e fragmentare: -

?ra(mentarea %e orizontal&B @e putem imagina c o ta%el se fragmenteaz orizontal ca mai Hos:

$($

?n fragment al unei relaii partitionate pe orizontal const !intr7o su%mulime a tuplelor relaiei respective ?n fragment orizontal se pro!uce prin selecie: 5iecare tuplu !in relatia R apare Dntr7un anume fragment) o singur !at Dac se !ore&te reconstrucia relaiei) se utilizeaz reuniunea pentru a o%ine relaia R iniiala R[ R$R+QRn In general fragmentele unei relaii R sunt !isHuncte ?ra(mentarea %e 7ertical& ?n fragment vertical !intr7o relaie consta !intr7o relaie care are ca atri%ute o su%mulime a atri%utelor relaiei iniiale

?n fragment vertical se pro!uce prin proiecie: Dac S$R &i S+R atunci r$ = S$ = ' I &i r+ = S + = 'I Completitu!inea este asigurat prin faptul c fiecare atri%ut apare cel puin Dntr7 una !in su%mulimile S$ &i S+ Reconstrucia relaiei iniilale se realizeaz prin Honciune natural
r = ' I = r$ K F r+

A&a!ar la !escompunerea relaiei iniiale Dn fragmente tre%uie s se in seama !e regulile care asigur o !escompunere fr pier!eri la Honciune In cazul !escompunerii pe vertical nu este posi%il s se realizeze o !isHuncie total Se a!mite e8istena unor atri%ute comune) &i anume a atri%utelor care formeaz cheile primare =respectiv cheile e8terneI 5ragmentele verticale se sta%ilesc prin !eterminarea afinitilor Dntre atri%ute) Dnc !in faza !e analiz ?ra(mentarea com)inat& mi>t&; 2i)rid&; com%us&! $ fragmente verticale fragmentate orizontal

$(+

68presia corespunzatoare Dn alge%ra relaional =pentru fiecare !reptunghi !in figura !e mai susI este: = = 9$ ) ) 9n = ' II + fragmente orizontale fragmentate vertical

68presia corespunztoare Dn alge%ra relaional =pentru fiecare !reptunghi !in figura !e mai susI este: 9$ ) ) 9n = = = 'II 3.0. 6rans%arenta @n SGBDD "rima regula) consi!erata regula !e %aza in sistemele !istri%uite) este cerinta ca aspectul !istri%uit tre%uie sa fie transparent pentru utilizator Cu alte cuvinte utilizatorul nu tre%uie sa7si !ea seama ca lucreaza cu o %aza !e !ate !istri%uita) !eci nu tre%uie sa ai%a cunostinte in plus ca sa utilizeze resursele unei astfel !e %aze !e !ate n realitate transparena poate fi realizat !oar Dntr7o anumit msur :ipuri !e transparen: $ + ( transparena !istri%uirii transparena tranzaciilor transparena performanelor

3.0.1. 6rans%arenta distri)uirii Dac se realizeaz transparena !istri%uirii) utilizatorul percepe %aza !e !ate ca pe o entitate unitar !in punct !e ve!er logic Acest tip !e transparen se poate !escompune Dn !ou aspecte: utilizatorul nu tre%uie s cunoasc faptul c e8ist fragmentarea !atelor =transparena fragmentriiI sau utilizatorul nu &tie !e localizarea !atelor pe reea =transparena localizriiI :ransparena fragmentrii este cel mai Dnalt gra! !e transparena ?tilizatorul se a!reseaz cu interogri %azei !e !ate ca &i cn! ar fi localizat centralizat) !eci nu tre%uie s se preocupe !e e8istena fragmentelor :ransparena fragmentrii este strns legat !e acor!area numelor =i!entificatorilorI Dn ca!rul %azei !e !ate !istri%uite Xi Dntr7o %az !e !ate !istri%uit =ca &i Dn cazul centralizatI numele !iferitelor Ro%iecteR tre%uie s fie unic Dou site7uri nu pot conine o%iecte cu nume i!entice Sunt cateva solutii posi%ile: $((

Se poate crea un server central !e nume care are menirea sa sigure ca numele !ate in aplicaii !istri%uite sunt nume unice pe toata %aza !e !ate Aceasta a%or!are are !ezavantaHele ca se pier!e autonomia locala a site7 urilor) se poate aHunge la o suprasolicitarea serverului !e nume =se creeaza un asa7numit loc ingust 7 R%ottlenecMRI &i !isponi%ilitatea %azei !e !ate este re!usa =!aca serverul !e nume iese !in uz temporar) se %locheaza accesul la !ateI Alternativa la solutia !e mai sus este sa se recurga la prefi8area o%iectelor cu un i!entificator !e site) !e fragment) !e copie

68emplu: prin notatia s5.client.f4.c3 se poate !esemna copia a !oua a fragmentului ( a ta%elei client care se afla pe site7ul s5 Consecinta cea mai grava a acestui mo! !e a numi o%iectele este pier!erea completa a transparentei In aceasta situatie mai e8ista un mo! prin care se poate Rin!ulciR situatia: se utilizeaza alias7uri De e8emplu s5.client.f4.c3 poate avea ca alias numele client)local pentru utilizatorii site7ului s5 :ransparenta localizarii reprezinta un nivel me!iu !e transparenta In aceasta situatie utilizatorul stie cum este fragmentata %aza !e !ate !ar nu stie un!e sunt plasate !iferitele fragmente sau copii ale acestora In interogari vor aparea numele fragmentelor !ar nu se vor face referiri la localizare 4 interogare poate avea un format asemanator cu cel !e mai Hos: select A$)QAn from f$ Ehere conditie5 union select A$)QAn from f+ QQQ AvantaHul maHor in cazul !e mai sus consta in faptul ca se poate orican! reorganiza %aza !e !ate =ca locatiiI fara ca aplicaiile ce o utilizeaza sa tre%uiasca mo!ificate :ransparenta maparii locale reprezinta cel mai Hos nivel al transparentei !istri%uite ?tilizatorul tre%uie sa specifice &i numele fragmentelor &i localizarea !atelor 3.0.". 6rans%aren*a tranzac*iilor Acest tip !e transparena asigur faptul c toate tranzaciile !istri%uite pstreaz integritatea &i consistena 0DD 4 tranzacie !istri%uit acceseaz !ate stocate la mai mult !e o locaie Dn reea 5iecare tranzacie e !ivizata Dn su%7tranzacii) cte una pentru fiecare site accesat Su%7tranzaciile se e8ecut Dn paralel pe site7uri &i Dn mo! concurent pe fiecare site S/0DD are sarcini !eose%ite Dn legtur cu gestionarea tranzaciilor !istri%uite !ar acestea nu vor fi tratate in acest capitol

$(.

n ca!rul transparenei tranzaciilor se trateaz Dn mo! !eose%it transparena concurenei &i transparena erorilor S/0DD ofer transparen concurenei !ac rezultatele tuturor tranzaciilor concurente =!istri%uite sau nuI sunt e8ecutate in!epen!ent &i sunt logic echivalente cu rezultatele o%tinue Dn cazul Dn care tranzaciile sunt e8ecutate pe rn!) Dntr7o or!ine serial ar%itrar :ransparena erorilor necesit &i un mecanism !e recoverB care ne s asigure c tranzaciile se comport atomic Dn faa erorilor: ori sunt e8ecutate toate operaiile unei tranzacii ori nici o operaie nu este e8ecutat 4!at ce o tranzacie s7a e8ecutat) transformrile operate !e ea asupra %azei !e !ate sunt !ura%ile =permanenteI 3.0.'. 6rans%aren*a %er8orman*elor :ransparena performanelor se asigur prin cerina ca sistemul consi!erat s ai% performane compara%ile cu ale unui sistem centralizat n aceast situaie tre%uie ca S/0DD s !etermine strategia cea mai eficient !e a e8ecuta fiecare interogare Dn parte n acest scop un D9" =Distri%ute! 9uerB "rocessorI mapeaza o cerere !e !ate Dntr7o secven or!onat !e operatii asupra %azei !e !ate D9" !eci!e ce fragment se acceseaz) ce copie se utilizeaz) care locaie se utilizeaz D9" pro!uce o strategie !e e8ecuie care este optimizat relativ la o funcie !e cost Costul asociat cu o interogare !istri%uita inclu!e: timp !e acces =inputJoutputI la accesarea !atelor fizice pe suportul respectiv) timp C"? la e8ecutatrea operatiilor asupra !atelor in memoria principala) costuri !e comunicatii asociate cu transmiterea !atelor prin retea $I +I (I .I *I ,I -I 2I 3I $1I $$I Ce este o %az !e !ate !istri%uitK Care sunt avantaHele unui sistem !istri%uitK Care este arhitectura unui sistem !istri%uitK Ce !iferene apar la proiectarea %azelor !e !ate !istri%uiteK Cum se poate face proiectarea alocrii !atelorK Cum se face o fragmentare corectK Ce este fragmentareaK Ce tipuri !e transparen tre%uie s realizeze un sistem !istri%uitK Ce este transparena !istri%uiriiK Ce este transparena tranzaciilorK Ce este transparena performanelorK

:ntre)&ri reca%itulati7e.

R&s%unsuri la @ntre)&ri. $(*

$I

?n S/0DD const !intr7o singur %az !e !ate care este !escompus Dn fragmente) eventual unele fragmente sunt multiplicate) &i fiecare fragment sau copie se pastreaz pe unul sau mai multe site7uri) su% controlul unui S/0D local 5iecare site este capa%il sa proceseze interogri utilizator Dn regim local) in!epen!ent !e restul reelei) sau este capa%il s participe la procesarea unor !ate situate Dn alte site7uri !in reea "entru a spune c un S/0D este !istri%uit tre%uie s e8iste cle puin o cerere glo%al AvantaHele !istri%uirii %azelor !e !ate sunt:

+I -

sistemul !istri%uit se mo!eleaz cel mai %ine pe structura organizaional a multor organizaii) avan! Dn ve!ere ca multe companii sunt localizate R!istri%uitR !in punct !e ve!ere geografic !atele sunt partaHa%ile !ar a!ministrarea lor se %ucur !e un gra! Dnalt !e autonomie local !isponi%ilitatea %azei !e !ate este evi!ent mai %un !ect Dn cazul centralizat Dac se semnaleaz unele erori sau R!eriR !e sistem la nivel local sistemul Zn Dntregime poate s continue s funcioneze Dn con!iii satisfctoare fia%ilitatea sistemului este Dm%untit Se pot reface rapi! fi&iere !istruse utilizn! replici aflate pe alte site7uri performanele Dn prelucrarea !atelor se Dm%untesc prin posi%ilitatea prelucrYrii Dn paralel a unor interogYri un sistem !istri%uit ofer avanatHe economice !ac lum Dn consi!erare costurile implementrii &i Dntreinerii unei reele fa !e costurile corespunztoare ale unui sistem centralizat !e putere compara%il !e prelucrare Costuri scazute se mai o%tin !aca se realizeaza prelucrri locale ct mai multe =Dn caz sistemul &i aplicaiile permit acest lucruI De asemenea este mult mai convena%il s se RaHustezeR o reea !e calculatoare la nevoile organizajiei =!ac !e e8emplu este necesar a!ugarea unor site7 uri Dn plusI !ect un calculator central !e putere asemntoare capacitatea !e gestionare mo!ular a sistemului permite e8tensii ale acestuia sau rezolvarea unor Rc!eriR pariale fr s se afecteze prea tare =uneori fr a se afecta !elocI mersul activitilor pe ansam%lul sistemului !istri%uit

(I

Schema e8terna glo%ala $(,

Schema e8terna glo%ala

Schema conceptuala glo%ala Schema !e fragmentare

Schema !e alocare

Schema locala !e mapare

Schema conceptuala locala Schema interna locala

Arhitectura A@SI7S"ARC pe trei nivele In ca!rul unui S/0DD putem i!entifica urmatoarele componente: o component local S/0D =LS/0DI o component !e comunicaii !e !ate =CDI un !icionar !e !ate glo%al =DD/I Acest !icionar are aceea&i funcionalitate ca &i un! !icionar !e !ate Dn cazul S/0D centralizat !ar conine informaii suplimentare referitoare la fragmentare &i la alocarea !atelor Xi DD/ poate fi fragmentat &i replicat ca orice alt informaie !in %aza !e !ate !istri%uit componente !e S/0D !istri%uit =S/0DDI $(-

.I "roiectarea corect a unei %aze !e !ate relaionale !istri%uite necesit) pe lng cerinele cunoscute pentru sistemele centralizate) &i realizarea urmtoarelor: fragmentarea !atelor C informaiile pot fi partitionate Dn fragmente care sunt apoi stocate pe !iferite site7uri Dn reea replicarea C se pot realiza copii ale !iferitelor relaii sau ale fragmentelor alocarea fragmentelor &i a replicilor pe !iferite site7uri

*I Se cunosc patru strategii !e alocare a !atelor Dntr7o %aza !e !ate relaional !istri%uit: af centralizat 0aza !e !ate se afl Dn Dntregime pe un singur site !in reea &i este gestionat !e un singur D0#S Spunem Dn acest caz c %aza !e !ate este procesat distribuit) ea !e fapt nu mai este o %az !e !ate !istri%uit in a!evaratul sens al cuvntului DezavantaHele sunt mai ales costurile mari !e comunicaii &i o fia%ilitate &i o !isponi%ilitate foarte sczute) avn! Dn ve!ere c orice eroare care %locheaz accesul la %aza !e !ate) practic paralizeaz Dntreaga activitate Dn reea pe aceast !irecie a+ fragmentat =partiionatI 0aza !e !ate este partiionat Dn mai multe fragmente !isHuncte care sunt stocate pe !iverse site7uri Comentarii: aceasta paritionare a !atelor poate Dm%untti frecvena referinelor locale !ac nu e8ist replici ale fragmentelor) costurile !e stocare sunt re!use fia%ilitatea &i !isponi%ilitatea sunt sczute !ar nu a&a !e mici ca Dn cazul centralizat !ac !atele sunt !istri%uite corect) costurile !e comunicare pot fi relativ sczute

a( replicat complet "e fiecare site se gseste o copie complet a %azei !e !ate Comentarii: eficiena referirilor locale) fia%ilitatea &i !isponi%ilitatea sunt ma8ime costurile !e stocare sunt Dn schim% &i ele foarte mari) la fel sunt &i costurile !e actualizare

a. replicat selectiv Aceasta strategie este o com%inaie intre partiionare) replicare &i centralizare cu scopul !e a se cumula) pe cat posi%il) avantaHele fiecrei strategii &i s se elimine !ezavantaHele ,I Reguli !e %az care !uc la o fragmentare corect a %azei !e !ate:

$(2

7 completitu!ine C !ac relaia R este !escompus Dn fragmentele R $) R+) Q)Rn) tre%uie luate msuri care s previn pier!erea !e informaii 7 reconstrucie C s fie posi%il Dn orice moment s se refac relaia R !e la care s7a pornit cu fragmentarea Aceasta regul conserv !epen!enele funcionale !isHuncie C !ac !ata !i apare Dn fragmentul Ri atunci nu este permis s apar Dn nici un alt fragment De la aceast regul se a!mite !oar o e8cepie) cazul cn! o relaie este fragmentat pe vertical :ipurile !e fragmentare sunt: pe orizontal pe vertical com%inat

-I

?ra(mentarea %e orizontal&B @e putem imagina c o ta%el se fragmenteaz orizontal ca mai Hos:

?n fragment al unei relaii partitionate pe orizontal const !intr7o su%mulime a tuplelor relaiei respective ?n fragment orizontal se pro!uce prin selecie: 5iecare tuplu !in relatia R apare Dntr7un anume fragment) o singur !at Dac se !ore&te reconstrucia relaiei) se utilizeaz reuniunea pentru a o%ine relaia R iniiala R[ R$R+QRn In general fragmentele unei relaii R sunt !isHuncte ?ra(mentarea %e 7ertical& ?n fragment vertical !intr7o relaie const !intr7o relaie care are ca atri%ute o su%mulime a atri%utelor relaiei iniiale

?n fragment vertical se pro!uce prin proiecie: Dac S$R &i S+R atunci r$ = S$ = ' I &i r+ = S + = 'I

$(3

Completitu!inea este asigurat prin faptul c fiecare atri%ut apare cel puin Dntr7 una !in su%mulimile S$ &i S+ Reconstrucia relaiei iniilale se realizeaz prin Honciune natural
r = ' I = r$ K F r+

A&a!ar la !escompunerea relaiei iniiale Dn fragmente tre%uie s se in seama !e regulile care asigur o !escompunere fr pier!eri la Honciune In cazul !escompunerii pe vertical nu este posi%il s se realizeze o !isHuncie total Se a!mite e8istena unor atri%ute comune) &i anume a atri%utelor care formeaz cheile primare =respectiv cheile e8terneI ?ra(mentarea com)inat& mi>t&; 2i)rid&; com%us&! Se poate face !in fragmente verticale fragmentate orizontal:

68presia corespunzatoare Dn alge%ra relaional =pentru fiecare !reptunghi !in figura !e mai susI este: = = 9$ ) ) 9n = ' II Sau se poate face !in fragmente orizontale fragmentate vertical

68presia corespunztoare Dn alge%ra relaional =pentru fiecare !reptunghi !in figura !e mai susI este: 9$ ) ) 9n = = = 'II 2I 7 7 3I :ipuri !e transparen: transparena !istri%uirii transparena tranzaciilor transparena performanelor :ransparena !istri%uirii se poate e8plica astfel:

Dac se realizeaz transparena !istri%uirii) utilizatorul percepe %aza !e !ate ca pe o entitate unitar !in punct !e ve!er logic Acest tip !e transparen se poate !escompune Dn !ou aspecte: utilizatorul nu tre%uie s cunoasc faptul c e8ist fragmentarea !atelor =transparena fragmentriiI sau utilizatorul nu &tie !e localizarea !atelor pe reea =transparena localizriiI

$.1

:ransparena fragmentrii este cel mai Dnalt gra! !e transparena ?tilizatorul se a!reseaz cu interogri %azei !e !ate ca &i cn! ar fi localizat centralizat) !eci nu tre%uie s se preocupe !e e8istena fragmentelor :ransparena fragmentrii este strns legat !e acor!area numelor =i!entificatorilorI Dn ca!rul %azei !e !ate !istri%uite Xi Dntr7o %az !e !ate !istri%uit =ca &i Dn cazul centralizatI numele !iferitelor Ro%iecteR tre%uie s fie unic Dou site7uri nu pot conine o%iecte cu nume i!entice $1I :ransparena tranzaciilor asigur faptul c toate tranzaciile !istri%uite pstreaz integritatea &i consistena 0DD 4 tranzacie !istri%uit acceseaz !ate stocate la mai mult !e o locaie Dn reea 5iecare tranzacie e !ivizata Dn su%7tranzacii) cte una pentru fiecare site accesat Su%7tranzaciile se e8ecut Dn paralel pe site7uri &i Dn mo! concurent pe fiecare site n ca!rul transparenei tranzaciilor se trateaz Dn mo! !eose%it transparena concurenei &i transparena erorilor S/0DD ofer transparen concurenei !ac rezultatele tuturor tranzaciilor concurente =!istri%uite sau nuI sunt e8ecutate in!epen!ent &i sunt logic echivalente cu rezultatele o%tinue Dn cazul Dn care tranzaciile sunt e8ecutate pe rn!) Dntr7o or!ine serial ar%itrar :ransparena erorilor Dnseamn e8istena unui mecanism !e recoverB care ne s asigure c tranzaciile se comport atomic Dn faa erorilor: ori sunt e8ecutate toate operaiile unei tranzacii ori nici o operaie nu este e8ecutat 4!at ce o tranzacie s7a e8ecutat) transformrile operate !e ea asupra %azei !e !ate sunt !ura%ile $$I :ransparena performanelor se asigur prin cerina ca sistemul consi!erat s ai% performane compara%ile cu ale unui sistem centralizat n aceast situaie tre%uie ca S/0DD s !etermine strategia cea mai eficient !e a e8ecuta fiecare interogare Dn parte n acest scop un D9" =Distri%ute! 9uerB "rocessorI mapeaz o cerere !e !ate Dntr7o secven or!onat !e operaii asupra %azei !e !ate D9" !eci!e ce fragment se acceseaz) ce copie se utilizeaz) care locaie se utilizeaz D9" pro!uce o strategie !e e8ecuie care este optimizat relativ la o funcie !e cost

Ca%itolul 4 Securitate $i inte(ritate

$.$

4.1. Inte(ritate Integritatea %azelor !e !ate se refera la corectitu!inea informaiilor &i presupune !etectarea) corectarea &i prevenirea !iferitelor erori care pot afecta !atele intro!use Dn %azele !e !ate Can! facem referiri la integritatea !atelor) Dntelegem c !atele sunt consistente relativ la toate restrictiile formulate anterior =care se aplica !atelor respectiveI &i ca urmare a acestui fapt) !atele sunt consi!erate vali!e Con!itiile !e integritate numite &i reguli sau restrictii !e integritate nu permit intro!ucerea in %aza !e !ate a unor !ate a%erante &i sunt e8primate prin con!itii puse asupra !atelor In general sunt acceptate mai multe criterii !e clasificare a regulilor !e integritate 4 serie !e con!itii sunt !e tip structural) legate !e anumite egalitati intre valori) &i e8primate prin !epen!ente functionale sau prin !eclararea unor campuri cu valori unice =!e cele mai multe ori aceste campuri sunt cheiI 4 alta serie !e con!itii se clasifica !upa unitatea la care se aplica restrictia si) in acest caz) e8ista restrictii pe !omenii =ce privesc anumite valori pentru atri%uteI sau restrictii pe ta%ele =relatiiI Restrictiile pe ta%ele pot fi unituplu =se refera la fiecare tuplu in parteI sau multituplu =se refera la com%inatii !e mai multe tupluriI 4 restrictie !e integritate !e relatie unituplu impune ca in fiecare tuplu al unei relatii !e %aza) in campurile corespunzatoare cheii primare) sa apara valori !iferite !e valorile nule corespunzatoare Aceasta regula se mai poate enunta &i su% forma: Rintr7o %aza !e !ate relaionala nu se inregistreaza nici o informatie !espre ceva ce nu poate fi i!entificat R ?n e8emplu !e restrictie !e integritate !e relatie !e tip multituplu este restrictia referentiala care se e8prima prin con!itia ca) pentru cheile e8terne) !aca nu sunt nule) sa se a!mita valori corespunzatoare uneia !in cheile primare e8istente in relatia referita Oerificarea acestei con!itii are loc !e cate ori se insereaza un nou tuplu ce contine o cheie e8terna sau se mo!ifica valoarea unei chei e8terne a unui tuplu) semnalan!u7se eventualele neconcor!ante &i anulan! mo!ificarile Oerificarea unicitatii cheii primare &i restrictiile rezultate !in !epen!entele functionale &i multivaloare sunt alte e8emple !e acelasi tip ?n alt criteriu !e clasificare este acela prin care se !eose%esc regulile !e integritate ce se refera la !iferitele stari ale %azei !e !ate !e regulile ce se refera la tranzitia !intr7o stare in alta Restrictiile pot fi clasificate &i !in punct !e ve!ere al momentului in care se aplica ele) astfel avem reguli ime!iate =ce se verifica in momentul in care se efectueaza operatia in!icataI sau reguli amanate =ce se verifica numai !upa ce au fost e8ecutate &i alte operatii asociate !ar inainte !e a se mo!ifica %aza !e !ateI

$.+

In functie !e aria !e aplicare) restrictiile pot fi impartite in restrictii generale) aplica%ile tuturor relatiilor !in %aza !e !ate &i restrictii particulare) care se pot aplica numai la anumite relatii Regulile !e integritate se aplica relatiilor !e %aza in care sunt reprezentate efectiv !atele %azei !e !ate Dintre regulile generale cel mai !es folosite in mo!elul relaional sunt regulile ce privesc cheile primare =vezi unicitatea valorilor cheilor primare in ca!rul relatieiI &i cheile e8terne Analizam in continuare cateva tipuri !e restrictii !e integritate I Restrictii pentru integritatea entitatii 6nunt: Intr7o relatie !e %aza nici un atri%ut al unei chei primare nu poate avea valori nule DeHa cunoastem ca se cere =in multe situatiiI ca valorile cheilor primare sa fie unice In maHoritatea S/0D unicitatea cheii primare &i integritatea entitatii sunt con!itii o%ligatorii II Restrictii pentru integritatea referentiala 6nunt: Daca e8ista o cheie e8terna intr7o relatie) ori valoarea cheii e8terne tre%uie sa se potriveasca cu valoarea unei chei can!i!at a vreunui tuplu in relatia !e origine) ori valoarea cheii e8terne tre%uie sa fie nula Cu late cuvinte) !aca o valoare e8ista intr7o relatie pe post !e cheie e8terna) ori ea tre%uie sa se potriveasca cu valoarea unei chei primare !intr7o alta relatie ori sa fie nula "ro%leme serioase apar in momentul can! sunt !e efectuat mo!ificari sau stergeri !e valori ale cheilor primare Daca se actualizeaza o cheie primara sau se sterge intregul tuplu &i !aca $I valoarea cheii primare nu apare nicaieri ca &i cheie e8terna atunci se permite efectuarea operatiei +I valoarea cheii primare apare in alta parte ca &i cheie e8terna atunci aI nu se permite efectuarea operatiei %I se permite efectuarea operatiei !ar !e asemenea se seteaza aparitiile cheii e8terne la valorile nule sau o valoare implicita =!aca s7a specificat vreunaI cI se permite efectuarea operatiei !ar !e asemenea =iI in cazul actualizarii C se propaga valoarea schim%ata la aparitiile cheii e8terne un!e cheia e8terna este o parte a cheii primare a relatiei si) !e asemenea) se propaga schim%arile acolo un!e aceasta !in urma cheie primara este cheie e8terna intr7o alta relatie

$.(

=iiI

in cazul stergerilor C se propaga stergerea ) a!ica se sterg tuplele care au valori ale cheii e8terne care se potrivesc cu cheia primara

!I se intra in !ialog cu utilizatorul :oate acestea sunt reguli generale care) !upa caz) pot suferi mici transformari) in functie !e aplicaia concreta Situatiile !escrise mai sus pot fi rezolvate in ca!rul aplicaiei sau se pot inclu!e in S/0D utilizan! mecanismul trigger7elor #ai multe S/0D permit sa se creeze &i sa se memoreze proce!uri referitoare la %aza !e !ate &i aceste proce!uri pot fi invocate can! au loc anumite evenimente) cum ar fi actualizari &i stergeri ale unor atri%ute Stan!ar!ul S9L furnizeaza controale pentru integritatea referentiala in !eclaratiile !e creare a ta%elelor III Restrictiile !e !omeniu Aceste restrictii sunt intot!eauna restrictii !e stare ime!iate Aceste restrictii se pot referi la tipul !e !ate pentru un atri%ut) la o lista !e valori posi%ile) la un or!in !e marime) la un format sau o forma) la o con!itie e8primata cu o formula logica sau la o proce!ura care este apelata !e cate ori are loc o mo!ificare pentru !omeniul specificat 68emplu: Restrictiile !e !omeniu referitoare la o !ata calen!aristica pot fi e8primate =eventualI in felul urmator: create !omain cI char=+I checM isWinteger=cII an! num=cII ][ $ an! num=cII \[ ($' create !omain L?@A char=+I checM isWinteger=L?@AI an! num=L?@AI ][ $ an! num=L?@AI \[ $+' create !omain A@ char=+I checM isWinteger=A@I an! num=A@I ][ 1 an! num=A@I \[ 33' create !omain DA:A=cc !omain=cII) LL !omain=L?@AI) AA !omain=A@II checM if num=LLI in =$)()*)-)2)$1)$+I then num=ccI \ ($' checM if num=LLI in =.),)3)$$I then num=ccI \ (1' checM if num=LLI [ + an! mo!=num=AAI).I [ 1 an! mo!=num=AAI)$11I \] 1 then num=ccI \ +3' checM if num=LLI [ + an! mo!=num=AAI).I \] 1 then num=ccI \ +2' Restrictiile !e integritate pot fi e8primate prin interme!iul lim%aHului !e prelucrare a !atelor su% forma unei egalitati sau ca o relatie intre rezultatele a !oua cereri Integritatea !atelor este strans corelata cu securitatea !atelor unei %aze !e !ate

$..

Daca se !efinesc controalele !e securitate in a%senta celor !e integritate) vali!itatea &i consistenta !atelor se %azeaza e8clusiv pe utilizarea corecta &i !e %una cre!inta a sistemului !e catre utilizatorii autorizati Daca insa se !efinesc numai controale !e integritate) !atele au sansa sa fie consistente !ar sunt suscepti%ile la pericolele care provin !in lipsa securitatii 6ste important !e mentionat aici ca restrictiile !e integritate nu garanteaza corectitu!inea !atelor Aceasta !eoarece este aproape imposi%il =in multe situatiiI ca verificarea corectitu!inii sa fie realizata automat 68emplu: @u se poate verifica automat !aca numele unei persoane este R"opR sau R"opaR) cum nu se poate verifica automat !aca !ata nasterii este R$1 1$ +11$R sau R1$ 1$ +11$R) etc "entru a asigura un gra! multumitor !e integritate a !atelor tre%uie prevazute restrictii !e integritate in asociere cu principalele momente in care !atele respective sunt manipulate) cum ar fi: intro!ucerea) actualizarea &i stergerea Acestea sunt operatii suscepti%ile !e intro!ucerea !e !ate inconsistente in %aza !e !ate Restrictiile !e integritate pot fi memorate in multe cazuri chiar in S/0D) !ar gra!ul in care acest lucru este posi%il !epin!e !e S/0D Asociata cu integritatea !atelor este &i protectia !atelor impotriva unor evenimente !e avarie cum ar fi ca!erea sistemului cauzata !e !efectarea unor componente har!Eare sau softEare "ier!erea acci!entala !e consistenta a !atelor poate rezulta !in: 7inci!ente ce apar pe parcursul e8ecutarii tranzactiilor) 7anomalii !atorate accesului concurent la %aza !e !ate) 7anomalii !atorate lucrului cu !ate !istri%uite pe mai multe calculatoare intr7o retea) 7erori logice care apar !in programele utilizator) si altele "entru reconstituirea %azelor !e !ate in cazul can! pot sa apara inconsistente in general) maHoritatea %azelor !e !ate se copiaza perio!ic pe me!ii magnetice ce se pastreaza in locuri sigure De asemenea se tine o evi!enta a tuturor transformarilor efectuate in %aza !e !ate !e can! s7a efectuat ultima copie 5isierul care contine aceste mo!ificari se numeste Hurnal 5iecare inregistrare !in Hurnal contine un i!entificator al programului care a facut mo!ificarea) fosta valoare &i noua valoare intro!usa pentru un element :ot in Hurnal se mai pastreaza !iferitele momente importante !in !esfasurarea programelor =inceput) sfarsit) terminarea unor operatii) etc I :oate mecanismele mentionate in acest paragraf sunt caracteristice lucrului cu tranzactii La terminarea unei tranzactii) in!iferent !aca ea s7a incheiat normal sau prin eroare) %aza !e !ate tre%uie sa ai%a acelasi gra! !e integritate ca la momentul inceperii e8ecutiei tranzactiei respective

$.*

Se spune !espre o tranzactie ca este comisa !aca au fost terminate toate calculele pro!use !e ea in aria !e lucru &i s7a facut o copie a rezultatelor ei in Hurnal Aparitia unor ca!eri !upa ce o tranzactie a fost comisa nu afecteaza continutul %azei !e !ate !eoarece se poate reconstitui %aza !e !ate cu aHutorul ultimei copii &i a Hurnalului in care se gasesc toate rezultatele tranzactiilor comise #o!ificarile tranzactiilor a%an!onate sau necomise nu sunt luate in consi!erare la parcurgerea Hurnalului pentru restaurarea %azei !e !ate Se !efineste strategia !e comitere in !oua faze astfel: o tranzactie poate sa scrie intr7o %aza !e !ate numai !upa ce a fost comisa &i o tranzactie poate fi comisa numai !upa ce a inregistrat in Hurnal toate schim%arile !e elemente pro!use !e ea 4.". Securitate "rin securitatea %azelor !e !ate se intelege proteHarea %azelor !e !ate impotriva folosirii neautorizate a lor &i in special a mo!ificarilor &i !istrugerilor ne!orite !e !ate &i a citirilor nepermise !e !ate "entru realizarea securitatii !atelor !in %aza !e !ate se utilizeaza controale tehnice &i a!ministrative Securitatea este in general asociata cu urmatoarele situatii: 7acces frau!ulos la !ate) 7pier!erea confi!entialitatii =secretuluiI !atelor) 7pier!erea caracterului privat al !atelor) 7pier!erea integritatii !atelor) 7pier!erea !isponi%ilitatii !atelor 6ste mai !ificila proteHarea !atelor impotriva accesului rauvoitor) intentionat Se recunoaste ca !e fapt nu e8ista protectie a%solut sigura ci !oar protectii &i masuri !e securitate mai eficiente sau mai putin eficiente 5orme !e acces intentionat &i rauvoitor la !atele unei %aze !e !ate: 7citire neautorizata a unor !ate) 7mo!ificari neutorizate !e !ate) 7!istrugeri !e !ate @otiunea !e securitate a %azei !e !ate este !e o%icei asociata cu accesul rauvoitor) pe can! integritatea se refera la evitarea pier!elor acci!entale !e consistenta A!evarul este insa un!eva la miHloc "entru protectia %azei !e !ate se pot lua masuri !e asigurare a securitatii la mai multe nivele: 7la nivel fizic 7 locurile in care se afla calculatoarele tre%uie proteHate !e accesul persoanelor neautorizate'

$.,

7la nivel uman C este recoman!a%il sa se acor!e autorizatiile !e acces cu multa griHa &i sa se tina evi!ente stricte ale persoanelor autorizate 7la nivel sistem !e operare C sla%iciunile protectiei la nivel !e sistem !e operare tre%uie eliminate sau compensate !e alte masuri 7la nivel S/0D C sistemul ofera anumite facilitati care spriHina protectia !atelor :ehnici !e asigurare a securitatii !atelor: $ I!entificarea utilizatorilor 5iecarui utilizator in parte i se acor!a anumite !repturi !e operare pe !iferite portiuni !in %aza !e !ate la !iferite nivele cum ar fi relatia) inregistrarea) pagina) atri%utul) etc Drepturile se refera la posi%ilitatea citirii) inserarii) stergerii sau mo!ificarii !atelor respective I!entificarea se face !e o%icei prin parole sta%ilite fie !e a!ministratorul %azei !e !ate fie !e utilizator + "roteHarea !atelor prin co!ificare =criptareI Deoarece s7ar putea aHunge la !ate &i prin alte miHloace !ecat prin interme!iul S/0D7ului =!e e8emplu prin citirea !irecta a me!iului magneticI se poate face o protectie prin pastrarea co!ificata a !atelor pe me!iul magnetic Deco!ificarea !atelor se poate face numai !upa i!entificarea utilizatorului prin garzi asociate lui ( ?tilizarea vieE7urilor in aplicaii A%ilitatea vieE7urilor !e a Rascun!eR o parte !in informatiile !in %aza !e !ate poate fi utilizata &i pentru sta%ilirea unui anumit gra! !e securitate a !atelor Astfel se poate vor%i !e acces la nivel !e relatie =ta%elaI sau acces la nivel !e vieE In unele sisteme nu sunt acceptate mo!ificari prin interme!iul vieE7urilor Astfel !e vieE7uri se numesc rea!7onlB =numai pentru citireI &i sunt utilizate mai ales in aplicaiile in care !atele pot fi citite !e toti utilizatorii =%aze !e !ate pu%liceI !ar mo!ificarile se fac numai cu apro%area a!ministratoruluiJproprietarului %azei !e !ate #o!ificarile !in vieE7uri nu sunt in general a!mise !eoarece pot !uce la efecte laterale ce privesc parti !in %aza !e !ate ce nu apar in vieE7uri De e8emplu stergerea unui element !in vieE poate sa !uca la eliminarea unui alt element care are singura legatura cu elemntul sters &i care nu se afla in vieE . A!ministrarea &i transmiterea !repturilor Se tine evi!enta stricta a !repturilor !e acces ale fiecarui utilizator la portiuni !in %aza !e !ate &i se fi8eaza reguli !e transmitere !e la un utilizator la altul a !reptului !e acces 5orme !e autorizare: 7autorizare la citire =consultareI 7autorizare la inserare =a!augareI $.-

7autorizare la actualizare =care e8clu!e stergerileI 7autorizare la stergeri =la nivel !e tupluI In situatiile !e mai sus nu se pune pro%lema mo!ificarilor la nivel !e schema a %azei !e !ate Daca consi!eram &i acest aspect putem vor%i !e: 7autorizare la nivel !e in!e8 =creare7stergere !e in!e8iI 7autorizare la nivel !e relatii =creareI 7autorizare !e mo!ificari la nivel !e relatii =stergeri sau a!augari !e atri%ute in ca!rul relatiilorI 7autorizari !e stergeri ale relatiilor Diferitele protectii pot fi in!icate prin interme!iul lim%aHului !e prelucrare a !atelor "ortiunile !in %aza !e !ate ce pot fi folosite !e utilizator pot fi !efinite prin operatii !e selectie &i proiectie care fac invizi%ile alte portiuni ale %azei !e !ate Con!ucerea organizatiei) care este proprietara %azei !e !ate) tre%uie sa ia masuri !e securitate care re!uc riscul !e a se pier!e informatii sau !e a se !istruge informatii "rin pier!ere !e informatii se poate intelege ca se pier!e caracterul privat al informatiilor) ele !evin accesi%ile unui grup mai mare !e persoane !ecat cel prevazut @u intot!eauna RscurgerileR !e informatii lasa urme) !eci nu se materializeaza intot!eauna in schim%ari !etecta%ile la nivelul %azei !e !ate "ro%lema securitatii cuprin!e aspecte legale) sociale &i etice) aspecte privin! controlul fizic =paza &i posi%ilitati !e %locarea accesului la terminaleI) aspecte !e politie =fi8area con!itiilor !e accesI) aspecte operationale =mo!ul !e sta%ilire a parolelorI) aspecte privin! controlul har! =mo!ul !e acces har! la !iferite componenteI) securitatea sistemului !e operare =proteHarea informatiilor &i anularea rezultatelor interme!iare pentru pastrarea secretului !atelorI aspecte privin! notiunea !e proprietate asupra !atelor !in %aza !e !ate &i altele asemanatoare :re%uie sa mentionam aici ca furturile &i frau!ele nu sunt neaparat legate !e %aza !e !ate) ele sunt un factor !e risc pentru intreaga organizatie) gravitatea acestor fapte !epinzan! &i !e profilul organizatiei in cauza In Comunitatea 6uropeana e8ista o preocupare serioasa legata !e actualizarea legislatiei la noile nevoi generate !e utilizarea intensiva a calculatoarelor Se incearca in principal sa se a!opte legi care sa proteHeze persoana sau organizatia &i sa tina seama !e nevoia ca anumite informatii sa ai%a caracter privat) !eci sa nu fie accesi%ile pu%licului larg sau nici macar unui grup relativ restrans) !aca acest fapt ar !auna proprietarului informatiilor respective "utem enumera aici o paleta larga !e !omenii care lucreaza cu informatii al caror caracter privat tre%uie neaparat pastrat: !omeniul %ancar) !omeniul me!ical)

$.2

evi!ente a!ministrativ7financiare) !omeniul pro!uctiei in maHoritatea firmelor !e marca) etc Inre)ari reca%itulati7e. $I +I (I .I *I ,I -I 2I Care sunt restriciile !e integritateK Ce Dnseamn integritatea entitatiiK Ce Dnseamn integritatea referentialaK Ce Dnseamn restrictiile !e !omeniuK Care este !eose%irea Dntre integritate &i securitateK Cum poate fi Dnclcat securitatea !atelor Dntr7o %aza !e !ate K 6numerai msuri !e protecie pentru asigurerea securitii !atelor 6numerai forme !e autorizare

R&s%unsuri la @ntre)&ri. $I Restriciile !e integritate 7 7 7 7 integritatea entitatii integritatea referentiala restrictiile !e !omeniu restriciile !e intreprin!ere

+I Intr7o relaie !e %aza nici un atri%ut al unei chei primare nu poate avea valori nule (I Daca e8ista o cheie e8terna intr7o relaie) ori valoarea cheii e8terne tre%uie s se potriveasca cu valoarea unei chei can!i!at a vreunui tuplu Dn relaia !e origine) ori valoarea cheii e8terne tre%uie s fie nul .I Aceste restricii se pot referi la tipul !e !ate pentru un atri%ut) la o list !e valori posi%ile) la un or!in !e mrime) la un format sau o form) la o con!iie e8primat cu o formul logic sau la o proce!ur care este apelat !e cate ori are loc o mo!ificare pentru !omeniul specificat *I @oiunea !e securitate a %azei !e !ate este !e o%icei asociat cu accesul ruvoitor) pe can! integritatea se refera la evitarea pier!elor acci!entale !e consisten ,I Securitatea este in general asociat cu urmatoarele situaii: 7acces frau!ulos la !ate) 7pier!erea confi!enialitatii =secretuluiI !atelor) 7pier!erea caracterului privat al !atelor) 7pier!erea !isponi%iliatii !atelor

$.3

-I "entru protectia %azei !e !ate se pot lua masuri !e asigurare a securitii la mai multe nivele: 7la nivel fizic 7 locurile Dn care se afla calculatoarele tre%uie proteHate !e accesul persoanelor neautorizate' 7la nivel uman C este recoman!a%il sa se acor!e autorizaiile !e acces cu multa griH &i s se in evi!ene stricte ale persoanelor autorizate 7la nivel sistem !e operare C sl%iciunile proteciei la nivel !e sistem !e operare tre%uie eliminate sau compensate !e alte msuri 7la nivel S/0D C sistemul ofera anumite faciliti care spriHina protecia !atelor 2I 5orme !e autorizare: 7autorizare la citire =consultareI 7autorizare la inserare =a!ugareI 7autorizare la actualizare =care e8clu!e &tergerileI 7autorizare la &tergeri =la nivel !e tupluI In situaiile !e mai sus nu se pune pro%lema mo!ificarilor la nivel !e schem a %azei !e !ate Dac consi!erm &i acest aspect putem vor%i !e: 7autorizare la nivel !e in!e8 =creare7&tergere !e in!ec&iI 7autorizare la nivel !e relaii =creareI 7autorizare !e mo!ificri la nivel !e relaii =&tergeri sau a!ugari !e atri%ute Dn ca!rul relaiilorI 7autorizri !e &tergeri ale relaiilor

Ca%itolul 5 6ranzac*ii $i concuren*&.


n acest capitol vom Dnvaa: 7 Ce este o tranzacie 7 Care sDnt proprietile tranzaciilor 7 De ce este necesar controlul concurenei 7 Ce urmre&te controlul concurenei 7 Ce este %locaHul &i cum poate el asigura serializa%ilitatea 7 Cum funcioneaz %locaHul Dn !ou faze 7 Ce este %locaHul ciclic 7 Cum se folose&te itime stampj7ul pentru a asigura serializa%ilitatea 7 Ce sDnt tehnicile !e control optimist al tranzaciei 5.1. 6ranzac*ii. $*1

:ranzacia este o aciune sau o serie !e aciuni) e8ecutate !e un singur utilizator sau un program) care acceseaz sau schim% coninutul %azei !e !ate :ranzacia este o unitate lo(ic& !e lucru a %azei !e !ate @u e8ist reguli !e sta%ilire automat a acestei uniti "entru a !emonstra acest concept o s !m urmtoarele e8emple 5ie schemele: "ersonal [ =nrmat) nume) a!res) salariuI "roprietate [ =nrprop) stra!) ora&) tip) nrmatI care leag proprietatea !e o persoan prin nrmat printr7o relaie !e car!inalitate n la $) "utem avea urmtoarele tranzacii: cit =nrmat [ 8) salariuI salariu [ salariu b $)$ scrie =nrmat [ 8) salariuI care mre&te salariul cu $1k cit =nrmat [8 I &terge =nrmat [ 8 I pentru toate Dnregistrrile !in "roprietate %egin cit = nrprop) nrmatI !ac =nrmat [ 8 I atunci &terge =nrpropI en! care &terge persoana 8 &i toate proprietile ei 4 tranzacie tre%uie s transforme Dntot!eauna %aza !e !ate !intr7o stare consistent Dntr7o alt stare tot consistent 4 tranzacie se poate termina Dn !ou mo!uri Dac tranzacia s7a terminat cu succes) atunci spunem c tranzacia a fcut icommitj &i %aza !e !ate a trecut Dn noua stare consistent Dac tranzacia nu s7a terminat cu succes atunci) ea este Dntrerupt &i) Dn acest caz ) %aza !e !ate tre%uie s fie rea!us Dn starea consistent Dn care era Dnainte s Dnceap tranzacia Spunem) Dn acest caz) c tranzacia face iroll %acMj este !erulat Dnapoi 4 tranzacie care a fcut icommitj nu mai poate fi Dntrerupt) !ar o tranzacie Dntrerupt poate fi reluat mai trziu &i atunci s7ar putea s se termine cu succes ?n S/0D tre%uie s ai% posi%ilitatea !e a !efini &i mnui tranzacii /sim astfel cuvintele cheie cu semnificaie ime!iat BEGIN 6RANSAC6ION; CO##I6; RO,,BACW

$*$

5.". Pro%riet&*ile tranzac*iilor. De&i nu avem reguli automate pentru construcia tranzaciilor ele tre%uie s respecte proprietile ACID Atomicitate este proprietatea itotul sau nimicj 4 tranzacie este o unitate in!ivizi%il care se e8ecut Dn Dntregime sau !eloc Consisten*& o tranzacie tre%uie s transforme %aza !e !ate !intr7o form consistent Dntr7o alt form tot consistent Inde%enden*& o tranzacie se e8ecut inepen!ent !e oricare alta) a!ic efectele pariale ale unei tranzacii incomplete nu tre%uie s influeneze o alt tranzacie Dura)ilitate efectele unei tranzacii terminat cu succes sunt !efinitiv Dnregistrate Dn %aza !e !ate &i nu se mai pot pier!e Dn tranzaciile Dntrerupte ulterior 5.'. Controlul concuren*ei. Dac fiecare tranzacie lucreaz pe rDn!) se pier!e timp cn! calculatorul st s a&tepte terminarea unei operaii !e intrareJie&ire) sau Dn timpul altei Dntreruperi "e !e alt parte) !ac lsm s lucreze !eo!at) fiecare Dn timpul lsat li%er !e cel !in nainte) zicem c avem tranzacii concurente Concurena va mri ran!amentul timpului !e lucru al calculatorului !ar ea tre%uie controlat& pentru c altfel poate !a na&tere la inconsisten "rezentm Dn continuare) trei e8emple Dn care artm cum se poate pier!e cinsistena n primul e8emplu tranzacia :$ cite&te contul lui 8 =%al8I &i sca!e $1 !in cont :ranzacia :+ cite&te contul lui 8 =%al8I &i a!un $11 la cont "ornin! cu un cont !e $11) evi!ent c !ac se e8ecuta mai Dnti prima tranzacie &i apoi a !oua contul lui 8 ar fi fost $117$1d$11[$31 n cealalt or!ine am fi avut $11d$117$1[$31 aceea&i valoare S consi!erm urmtorul plan !e tranzacii ?n %lan de tranzac*ii este o secven posi%il Dn timp a mo!ului !e e8ecuie a tranzaciilor "utem o%serva) Dn timpii Dnscri&i Dn stnga, cum evolueaz contul !in ultima coloan :ime A t$ A t+ A t( A t. A t* A t, :$ %eginWtransaction cit=%al8I %al8 [ %al8 7 $1 scrie=%al8I commit :+ %eginWtransaction cit=%al8I %al8 [ %al8 d $1 scrie=%al8I commit %al8 $11 $11 $11 +11 31 31

?i(ura 5.1. "ro%lema se nume&te %ro)lema %ierderii actualiz&rii Pro)lema de%enden*ei de o tranzac*ie neterminat& apare cn! o tranzacie este lsats iva!j rezultatele interme!iare alei alte tranzacii Dnainte ca ea s fac icommitj Acelea&i tranzacii ca Dn figura prece!ent se !esf&oar acum !up un alt plan

:ime A t$ A t+ A t( A t. A t* A t, A tA t2

:(

:. %eginWtransaction cit=%al8I %al8 [ %al8 d $1 scrie=%al8I roll)acX

%al8 $11 $11 $11 +11 +11 $11 $31 $31

%eginWtransaction cit=%al8I %al8 [ %al8 7 $1 scrie=%al8I commit

?i(ura 5.". Rezultatul este $31) ai putea spune c este %un) !ar inei cont c tranzacia . a fost Dntrerupt &i) cn! se va relua) va mai mri cu $11 contul ceea ce va !eveni incorect Chiar &i cn! unele tranzacii numai citesc %aza !e !ate se pot Dntmpla neplceri Aceast pro%lem este %ro)lema analizei inconsistente sau pro%lema icitirii murdarej De e8emplu tranzaciile :* &i :, e8ecutate serial) a!ic una !up alta) ar tre%ui s !ea rezultatele: :*:, %al8[$117$1[31) %alz[+*d$1[(*) sum[31d*1d(*d$-* sau :,:* sum[$11d*1d+*[$-*) %al8[$117$1[31) %alz[+*d$1[(* &i putem ve!ea Dn figura urmtoare ce se poate Dntmpla Dncazul concurenei li%ere) necontrolate: :ime A t$ A t+ A t( A t. A t* A t, A tA t2 A t3 A t$1 A t$$ :* :, %al8 %alB *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 %alz +* +* +* +* +* +* +* (* (* (* (* sum 1 1 $11 $11 $*1 $*1 $*1 $*1 $2* $2*

%eginWtransaction $11 %eginWtransaction sum [ 1 $11 cit=%al8I cit=%al8I $11 %al8 [ %al8 sum [ sum d $11 7$1 %al8 scrie=%al8I cit=%alBI 31 cit=%alzI sum [ sum d 31 %alB %alz [ %alz d 31 $1 scrie=%alzI 31 commit cit=%alzI 31 sum [ sum d 31 %alz commit 31

?i(ura 5.'. @u putem) !eci) lsa concurena necontrolat) !ar nici nu este profita%il s o !esfiinm !e tot Spunem c un plan !e tranzacii este serial cDn! tranzaciile se e8ecut una !up alta fr a intercala operaii !in alt tranzacie Spunem c un plan !e tranzacii este neserial cn! tranzaciile sDnt concurente ) a!ic Dntre

operaiile unei tranzacii se intercaleaz operaiile alteia Oom spune c un plan !e tranzacii este corect atunci cn! el are ca rezultat acela&i cu unul e8ecutat serial' acesta se va numi serializa)il Avei !eHa e8emple !e planuri neserializa%ile Am vzut c pro%lemele apar atunci cn! o tranzacie ive!ej =cite&teI sau scrie Dntr7un moment nepotrivit I!eile !e a controla concurena sDnt legate !e a nu lsa pe cellalt =!e a )locaI sau !e a ine cont !e momente =!e a marca tim%ulI Ce Dnseamn s %locm K Cn! o tranzacie )loc2eaz& %arta-at =partW%locI o anumit unitate !e memorie) o alt tranzacir nu mai poate s rescrie tot acolo) iar cn! o tranzacie )loc2eaz& e>clusi7 =e8W%locI o alta nu mai poate nici s o citeasc Despre ce unitate !e memorie este vor%aK Aceasta este pro%lema (ranularit&*ii la care se face %locaHul 0locaHul se poate face la nivel !e: 7 Dntreaga %az !e !ate 7 ta%ela=fi&ierI 7 Dnregistrare =cel mai !esI 7 cmp !in Dnregistrare #ai spunem c avem granularitate !inamic atunci cn! S/0D7ul poate s schim%e granularitatea Dn timpul unei tranzacii Cititorul poate s !emonstreze singur pe un e8emplu =vezi pro%lema I c numai simpla %locare urmat cn!va !e !e%locare =!e%locI nu asigur serializa%ilitatea Serializa%ilitatea este asigurat !ac se respect %rotocolul de )locare @n dou& 8aze. Acesta const !in Dmprirea tranzaciei Dn !ou faze una !e %locri &i cre&teri !e %locaHe &i a !oua !e !escre&teri &i !e%locaHe Aceasta Dnseamn c !up ce s7a fcut prima !e%locare nu se mai pot face %locri ?rmtoarele trei e8emple reiau tranzaciile :$ &i:+ !in figura 3 $ respectiv :( &i :. !in figura 3 +) &i : * &i :, !in figura 3 ( cu protocolul Dn !ou faze &i realizeaz planuri serializa%ile :ime A t$ A t+ A t( A t. A t* A t, A tA t2 A t3 A t$1 A t$$ :$ %eginWtransaction e8W%loc=%al8I AV6EAP6Y AV6EAP6Y AV6EAP6Y cit=%al8I %al8 [ %al8 7$1 scrie=%al8I !e%loc=%al8I commit :+ %eginWtransaction e8W%loc=%al8I cit=%al8I %al8 [ %al8 d$11 scrie=%al8I !e%loc=%al8I commit %al8 $11 $11 $11 $11 +11 +11 +11 +11 $31 $31 $31

?i(ura 5.+.

:ime A t$ A t+ A t( A t. A t* A t, A tA t2 A t3 A t$1 A t$$ A t$+

:(

:. %eginWtransaction e8W%loc=%al8I cit=%al8I %al8 [ %al8 d$11 scrie=%al8I !e%loc=%al8I roll)acX

%al8 $11 $11 $11 $11 +11 $11 $11 $11 $11 31 31 31

%eginWtransaction e8W%loc=%al8I AV6EAP6Y AV6EAP6Y cit=%al8I %al8 [ %al8 7$1 scrie=%al8I !e%loc=%al8I commit

?i(ura 5.0. :ime A t$ A t+ A t( A t. A t* A t, A tA t2 A t3 A t$1 A t$$ A t$+ A t$( A t$. A t$* A t$, A t$A t$2 A t$3 A t+1 A t+$ A t++ :* %eginWtransaction e8W%loc=%al 8 I cit=%al8I %al8 [ %al8 7$1 scrie=%al8I e8W%loc=%al z I cit=%alzI %alz [ %alz d $1 scrie=%alzI !e%loc=%al 8 ) %alzI commit :, %eginWtransaction sum [ 1 partW%loc=%al8I AX:6A":a AX:6A":a AX:6A":a AX:6A":a AX:6A":a AX:6A":a AX:6A":a AX:6A":a cit=%al8I sum [ sum d %al8 partW%loc=%alBI cit=%alBI sum [ sum d %alB partW%loc=%alzI cit=%alzI sum [ sum d %alz !e%loc=%al8)%alB)%alz I commit ?i(ura 5.1. %al8 %alB $11 *1 $11 *1 $11 *1 $11 *1 $11 *1 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 *1 %alz +* +* +* +* +* +* +* +* +* (* (* (* (* (* (* (* (* (* (* (* (* (* sum 1 1 1 1 1 1 1 1 1 1 1 1 31 31 31 $.1 $.1 $.1 $-* $-* $-*

"rotocolul !e %locare Dn !ou faze asigur serializanilitatea !ar nu ne scute&te !e pro%leme "ezentm Dn cele !ou e8emple urmtoare roll)acX.ul @n cascad& &i )loca-ul ciclic 4%servai) Dn figura 3 - la momentul t$. tranzacia : - face roll%acM =!intr7 un motiv e8ternI &i) pentru c :2 este !epen!ent !e :- care a citit o Dnregistrare care a fost actualizat !e :-) tre%uie s fac &i :2 roll%acM) ceea ce pe urm se Dntmpl &i cu :3 :ime A t$ A t+ A t( A t. A t* A t, A tA t2 A t3 A t$1 A t$$ A t$+ A t$( A t$. A t$* A t$, A t$A t$2 ::2 :3

%eginWtransaction e8W%loc=%al8I cit=%al8I partW%loc=%alBI %al8 [ %alB d %al8 scrie=%al8I !e%loc=%al8I %eginWtransaction Q e8W%loc=%al8I Q cit=%al8I Q %al8 [ %al8 d$11 Q scrie=%al8I Q !e%loc=%al8I Q Q roll)acX Q roll)acX

%eginWtransaction partW%loc=%al I 8 Q roll)acX

?i(ura 5.3. 4 alt pro%lem este %locarea ciclic prezentat Dn e8emplul urmtor Cele !ou trnzacii :$1 &i :$$ se %locheaz reciproc :ime :$1 :$$ A t$ A t+ A t( A t. A t* A t, A tA t2 A t3 A t$1 A t$$ %eginWtransaction e8W%loc=%al8I %eginWtransaction cit=%al8I e8W%loc=%alBI %al8 [ %al8 7$1 cit=%alBI scrie=%al8I %alB [ %alB d$11 e8W%loc=%alBI scrie=%alBI AX:6A":a e8W%loc=%al8I AX:6A":a AX:6A":a AX:6A":a AX:6A":a Q AX:6A":a Q Q ?i(ura 5.4.

0locaHul ciclic este !etectat ) !e o%icei) prin constuirea unui graf !e prece!en care arat !epen!ena Dntre tranzacii Dn felul urmtor: 7 se creaz un no! pentru fiecare tranzacie 7 se creaz o muchie !irecionat :i :H !ac tranzacia :i a&teapt s %locheze o Dnregistrare care este !eHa %locat !e :H "e acest graf se !etecteaz un %locaH ciclic !ac e8ist un circuit "entru figura 3 2 graful ar fi urmtorul: B :$1 8 ?i(ura 5.5. 4 alt meto! !e a evita %locaHul ciclic pstrn! serializa%ilitatea este protocolul cu marcarea tim%ului =time stampI Acest protocol ata&eaz un timp =timpul real !in calculator sau un numr care se mre&te autmat !e cte ori este solicitatI fiecrei tranzacii =marc=:II &i timpul tranzaciei care realizeaz operaia fiecrei citiri sau scrieri a unei Dnregistrri Deci fiecare tranzacie va avea o valoare !e marcH &i fiecare Dnregiistrare prelucrat va avea !ou marcaHe' unul care spune ce marcaH a avut tranzacia care a citit7o =citWmarcI &i cellalt care spune ce marcaH a avut tranzacia care a scris7o =scriWmarcI @umai Dn urmtoarele trei situaii se pun pro%leme !eose%ite: $ :ranzacia : cere s citeasc o Dnregistrare 8 care a fost !eHa actualizat !e o tranzacie cu scriWmarc=8I ] marc=:I) a!ic o Dnregistrare scris !e o tranzacie care a Dnceput mai trziu Ce ar rescrie ea ar putea !a na&tere la inconsisten !eci trnzacia respectiv tre%uie Dntrerupt + :ranzacia cere s scrie Dnregistrarea 8 a crei valoare a fost !eHa citit !e o tranzacie care a Dnceput mai tDrziu marc=:I \ citWmarc=8I Aceasta Dnseamn c tranzacia vrea s rescrie o Dnregistrare) pe care o alt tranzacie Dnceput mai trziu) a citit7o &i o folose&te Xi Dn acest caz tranzacia tre%uie Dntrerupt ( :ranzacia cere s scrie o Dnregistrare 8 a crei valoare a fost !eHa scris !e o tranzacie care a Dnceput mai trziu) a!ic marc=:I \ scriWmarc=8I 6ste o Dncercare !e a scrie o valoare perimat &i Dn acest caz se ignor aceast scriere n figura urmtoare se poate o%serva cum funcioneaz acest protocol :$$

:ime A t$ A t+ A t( A t. A t* A t, A tA t2 A t3 A t$1 A t$$ A t$+ A t$( A t$. A t$* A t$, A t$A t$2

4p

:%eginWtransaction cit=%al8I %al8 [ %al8 d$11 scrie=%al8I

:2

:3

cit=%al8I %al8 [ %al8 d$1 scrie=%al8I cit=%alBI %alB [ %alB d+1 cit=%alBI scrie=%alBI %alB [ %alB d(1 scrie=%alBI %alz[$11 scrie=%alzI %alz[*1 scrie=%alzI cit=%alBI %alB [ %alB d+1 scrie=%alBI

%eginWtransaction cit=%alBI %alB [ %alB d+1 scrie=%alBIbb

%eginWtransaction cit=%alBI %alB [ %alB d(1 scrie=%alBI %alz[$11 scrie=%alzI commit

%alz[*1 scrie=%alzIb commit

%eginWtransaction cit=%alBI %alB [ %alB d+1 scrie=%alBI commit

?i(ura 5.10. b la timpul t2 scrierea !e ctre tranzacia :$( violeaz regula + &i !e aceea este Dntrerupt &i reluat la momentul t$. bb la timpul t$. scrierea !e ctre tranzacia :$+ poate fi ignorat conform celei !e a treia reguli 5.+ 6e2nici o%timiste. @u Dntot!euna este necesar s pier!em timp Dn calculator controln! concurena Atunci cn! conflictele Dntre tranzacii sDnt rare putem a!opta a&a7 numitele tehnici optimiste Asta Dnseamn s lsm tranzaciile s ruleze fr s impunem Dntrzieri care s asigure serializa%ilitatea) iar cn! o tranzacie vrea s fac icommitj s efectum un control care s !etermine !ac a avut loc un conflict Dac a avut loc un conflict) tranzacia tre%uie Dntrerupt &i restartat "entru c am spus c aceeste conflicte sDnt rare) aceste Dnteruperi &i restartri vor fi) &i ele) rare Distingem trei faze ale unui control optimist al concurenei <aza de citire. Aceast faz !ureaz !e la Dnceputul tranzaciei pn Dnainte !e icommitj :ranzacia cite&te valorile !e care are nevoie !in %aza !e !ate &i le stocheaz in varia%ile locale Actualizrile nu sDnt fcute !irect Dn %aza !e !ate ci Dntr7o copie local <aza de validare. ?rmeaz !up faza !e citire &i controleaz !ac nu sCar Dnclca serializa%ilitatea Dn cazul c s7ar aplica actulizarea Dn %aza !e !ate Dac avem o tranzacie care numai cite&te %aza =a!ic nu scrieI) controlul const Dn a verifica !ac !atele citite sDnt Dnc !atele curente Dn %az &i) !ac este a&a) atunci se face icommitj) altfel se Dntrerupe &i se reia mai trziu Dac trnzacia face &i rescrieri Dn %az) atunci se verific !ac se pstreaz serializa%ilitatea &i !ac %aza !e !ate rmne Dntr7o stare consistent' !ac acest lucru nu se Dntmpl) atunci se Dntrerupe

<aza de scriere. 6ste o faz care este necesar numai la tranzaciile care fac rescrieri Dac faza anterioar s7a terminat cu succes) atunci actualizrile efectuate Dn copia local) sDnt Dnregistrate !efinitiv Dn %aza !e !ate

Iat cum se !esf&oar acest tip !e control: 5iecrei tranzacii Di este ata&at) la Dnceputul primei faze) un marcaH start=:I) la Dnceputul celei !e a !oua faze) vali!=:I &i la sfr&it fin=:I) !up scriere Dn copia local) !aceste cazul Ca s treac faza !e vali!are tre%uie s avem una !in urmtoarele situaii: $I :oate tranzaciile cu un marcaH mai mic) tre%uie s se fi terminat Dnainte ca tranzacia : s fi Dnceput' a!ic fin=SI \ start=:I +I Dac tranzacia start=SI \ start=:I =S a Dnceput Dnaintea lui :I &i nu s7a terminat a!ic fin=SI \ fin=:I atunci: a Datele scrise !e tranzacia anterioar S nu sDnt cele citite !e cea curent : &i % :ranzacia anterioar S D&i completeaz faza !e scriere Dnainte ca tranzacia curent : s intre Dn faza !e vali!are a!ic start=:I \ fin=SI \ vali!=:I De&i tehnicile optimiste sDnt eficiente cn! conflictele sDnt rare totu&i pot aprea multe reluri =roll%acMI' s reinem c aceste reluri nu sDnt Dn casca! pentru c se lucreaz pe o coppie local Ce ne facem !ac apar totii inconsisteneK :re%uie sS Yputem recupera %aza !e !ate Dntr7o stare anterioar consistent 5.0 Controlul recu%er&rii. Din !iferite motive se poate Dntmpla ca %aza !e !ate s aHung Dntr7o stare incorect sau s se piar! !e tot ?n S/0D tre%uie s preva! mecanisme !e recuperare automat sau manual !e recuperare a unei stri corecte a %azei !e !ate &i posi%ilitatea !e aHunge la zi cu actualizrile ulterioare 4 tranzacie este format !in pa&i mici care se e8ecut pe rn! &i cn! a Dnceput aciunea icommitj ea nu s7a &i terminat Datele sDnt mai Dnti !use Dntr7un %uffer =o memorie intern interme!iarI &i pe urm scrise Dn %az =pe !iscI Dac Dntre scrierea Dn %uffer &i scrierea pe !isc apare vreo c!ere) atunci S/0D7ul tre%uie s reia scrierea =redoI) iar !ac nu s7au umplut %ufferele &i a aprut o c!ere atunci S/0D7ul tre%uie s fac Dntreruperea &i reluarea tranzaciei = undo sau roll)acXI ?n S/0D tre%uie s ai% un mecanism care s fac copii ale %azei !e !ate & Hurnale ale tranzaciilor !up care ele s poat fi refcute Copiile se fac autmat) fr intervenii manuale) &i recuperarea) Dn multe cazuri) tre%uie s se fac tot automat E>erci*ii reca%itulati7e. $I Ce este o trnzacie &i ce proprieti areK +I Dai un e8emplu !e pier!ere a consistenei Dn cazul concurenei necontrolate (I Ce este un plan !e tranzacii serializa%ilK .I Ce este %locaHulK *I Ce este %locaHu ciclicK 68emplu ,I Ce este protocolul !e %locare Dn !ou fazeK -I Care este protocolul !e control cu marcarea timpului =time stampIK 2I Ce este o tehnic optimist !e control al concureneiK

R&s%unsuri la e>erci*ii. 5+ Tranzacia este o aciune sau o serie de aciuni, executate de un singur utilizator sau un program, care acceseaz sau sc,imb coninutul bazei de date. =roprietile sunt(atomicitate,consiten, independen, durabilitate. +I :ranzacia :$ cite&te contul lui 8 =%al8I &i sca!e $1 !in cont :ranzacia : + cite&te contul lui 8 =%al8I &i a!un $11 la cont "ornin! cu un cont !e $11) evi!ent c !ac se e8ecut mai Dnti prima tranzacie &i apoi a !oua contul lui 8 ar fi fost $117$1d$11[$31 n cealalt or!ine am fi avut $11d$117 $1[$31 aceea&i valoare S consi!erm urmtorul plan !e tranzacii :ime :$ :+ %al8

A t$ %eginWtransaction $11 A t+ %eginWtransaction cit=%al8I $11 A t( cit=%al8I %al8 [ %al8 d $1 $11 A t. %al8 [ %al8 7 $1 scrie=%al8I +11 A t* scrie=%al8I commit 31 A t, commit 31 Se ve! c %al8 are valoarea gre&it 31 (I ?n plan !e tranzacii se va numi serializa)il atunci cn! el are ca rezultat acela&i cu unul e8ecutat serial .I Cn! o tranzacie %locheaz partaHat o anumit unitate !e memorie) o alt tranzacie nu mai poate s rescrie tot acolo) iar cn! o tranzacie %locheaz e8clusiv o alta nu mai poate nici s o citeasc *I "rotocolul !e %locare Dn !ou faze const !in Dmprirea tranzaciei Dn !ou faze una !e %locri &i cre&teri !e %locaHe &i a !oua !e !escre&teri &i !e%locaHe Aceasta Dnseamn c !up ce s7a fcut prima !e%locare nu se mai pot face %locri ,I 0locarea ciclic este prezentat Dn e8emplul urmtor Cele !ou trnzacii :$1 &i :$$ se %locheaz reciproc :ime :$1 :$$ A t$ A t+ A t( A t. A t* A t, A tA t2 A t3 A t$1 A t$$ %eginWtransaction e8W%loc=%al8I cit=%al8I %al8 [ %al8 7$1 scrie=%al8I e8W%loc=%alBI AX:6A":a AX:6A":a AX:6A":a Q Q %eginWtransaction e8W%loc=%alBI cit=%alBI %alB [ %alB d$11 scrie=%alBI e8W%loc=%al8I AX:6A":a AX:6A":a AX:6A":a Q

-I "rotocolul cu marcarea timpului =time stampI ata&eaz un timp fiecrei tranzacii =marc=:II &i timpul tranzaciei care realizeaz operaia fiecrei citiri sau scrieri a unei Dnregistrri Deci fiecare tranzacie va avea o valoare !e marcaH &i fiecare Dnregistrare prelucrat va avea !ou marcaHe' unul care spune ce

marcaH a avut tranzacia care a citit7o =citWmarcI &i cellalt care spune ce marcaH a avut tranzacia care a scris7o =scriWmarcI @umai Dn urmtoarele trei situaii se pun pro%leme !eose%ite: $ :ranzacia : cere s citeasc o Dnregistrare 8 care a fost !eHa actualizat !e o tranzacie cu scriWmarc=8I ] marc=:I) a!ic o Dnregistrare scris !e o tranzacie care a Dnceput mai trziu Ce ar rescrie ea ar putea !a na&tere la inconsisten !eci trnzacia respectiv tre%uie Dntrerupt + :ranzacia cere s scrie Dnregistrarea 8 a crei valoare a fost !eHa citit !e o tranzacie care a Dnceput mai tDrziu marc=:I \ citWmarc=8I Aceasta Dnseamn c tranzacia vrea s rescrie o Dnregistrare) pe care o alt tranzacie Dnceput mai trziu) a citit7o &i o folose&te Xi Dn acest caz tranzacia tre%uie Dntrerupt ( :ranzacia cere s scrie o Dnregistrare 8 a crei valoare a fost !eHa scris !e o tranzacie care a Dnceput mai trziu) a!ic marc=:I \ scriWmarc=8I 6ste o Dncercare !e a scrie o valoare perimat &i Dn acest caz se ignor aceast scriere 2I 4 tehnic optimist Dnseamn s lsm tranzaciile s ruleze fr s impunem Dntrzieri care s asigure serializa%ilitatea) iar cn! o tranzacie vrea s fac icommitj) s efectum un control care s !etermine !ac a avut loc un conflict Dac a avut loc un conflict) tranzacia tre%uie Dntrerupt &i restartat "entru c am spus c aceeste conflicte sDnt rare) aceste Dnteruperi &i restartri vor fi) &i ele) rare

6est de autoe7aluare
Se ! schema: Carte [ =co!7carte)titlu)co!7!omeniu)!omeniu)*=co!7autor)nume7autorI)co!7 e!itur)e!itur)a!resaI un!e a!resa[=ora&)stra!a)numrI $I S se a!uc la forma normal $) +) () &i s se specifice cheile folosin !epen!enele funcionale +I "e forma final s se e8prime cererile: aI :a%el cu e!iturile !in 0ucure&ti %I :a%el cu crile scrise !e i6minescuj cI :a%el cu crile scrise numai !e i6minescuj in alge%ra relaional &i in S9L Rspunsuri evaluate: Cheia in schema iniial este co!7carte $I "entru c o s am nevoie !e ora&ul !in a!res ea tre%uie rupt) iar grupul repetitiv =co!7autor)nume7autorI tre%iuie !esfiinat pentru a a!uce la forma normal $ Deci schema !evine: Carten$[=co!7carte)titlu)co!7!omeniu)!omeniu)co!7autor)nume7autor)co!7 e!itur)e!itur) ora&)stra!a)numrI un!e cheia va fi g[= co!7carte) co!7autorI 2 puncte

Depen!enele funcionale sunt:


I II III IO O co!7carte titlu co!7carte co!7!omeniu co!7carte co!7e!itur co!7!omeniu !omeniu co!7e!itur e!itur)

OI co!7e!itur ora&) OII co!7e!itur stra!a) OIII co!7e!itur numr IA co!7autor nume7autor 1 punct un!e !epen!ena IA este parial !e cheie Deci forma normal + va fi: Carten+$[=co!7carte)titlu)co!7!omeniu)co!7e!itur)e!itur)ora&)stra!a)numrII carten++[=co!7autor)nume7autorI Carten+([=co!7carte)co!autorI cu cheile su%liniate !up cum reiese !in !epen!enele: I co!7carte titlu &i respectiv co!7autor nume7autor II co!7carte co!7!omeniu III co!7carte co!7e!itur IO co!7!omeniu !omeniu O co!7e!itur e!itur) OI co!7e!itur ora&) OII co!7e!itur stra!a) OIII co!7e!itur numr 2 puncte Depen!enele IO) O) OI) OII)OIII sunt tranzitive !e cheie Deci forma normal ( va fi: Carten($[=co!7carte)titlu)co!7!omeniu)co!7e!iturI Carten(+[=co!7e!itur) e!itur)ora&)stra!a)numrI Carten(([= co!7!omeniu)!omeniuI carten++[=co!7autor)nume7autorI Carten+([=co!7carte)co!7autorI cu cheile su%liniate 1 punct +aI e!itur=

ora&[j0ucure&tij=Carten(+II

select e!itur from Carte(+ Ehere ora&[j0ucure&tij 2 puncte


+%I titlu

=nume[j6minescuj =Carten($ N@ Carten+( N@ Carten++II

select titlu from Carten($) Carten+() Carten++ Ehere nume[j6minescuj 2 puncte +cI titlu

=nume[j6minescuj =Carten($ N@ Carten+( N@ Carten++II l titlu =numej6minescuj =Carten($ N@ Carten+( N@ Carten++II


select titlu from Carten($) Carten+() Carten++

Ehere nume[j6minescuj an! titlu not in select titlu from Carten($) Carten+() Carten++ Ehere numej6minescuj 3 puncte

BIB,IOGRA?IE

Y$Z L ^m%ulea 7 Structuri !e !ate &i %nci !e !ate) ?niversitatea 0a%e&7 0olBai) CluH) $33+ Y+Z < 5 gorth) A Sil%erschatz 7 Data%ase SBstem Concepts) #c/raE <ill) @eE >orM) $32Y(Z I 5lores 7 Data 0ase Architecture) Oan @ostran! Reinhol!) $32$ Y.Z g ;eisMamp 7 :he 5o8"ro Companion) 0ra!B) @eE >orM) $331 Y*Z b b b 7 5o8"ro + 1 Comentat &i e8emplificat) :imisoara) $33+ Y,Z # Stanescu &i colectiv 7 Lim%aHe !e programare &i %nci !e !ate) AS6) 0ucuresti) $33+ Y-Z R Steiner 7 :heorie un! "ra8is relationaler Daten%anMen) OieEeg Oerlag) $33. Y2Z A Oulpe) D 0ucerzan 7 Lectii !e 5o8"ro) e!itura Al%astra) CluH) $33Y3Z ConnolB)

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