Baze de date_Iacob
-
Author
adita-adita -
Category
Documents
-
view
442 -
download
6
Embed Size (px)
Transcript of Baze de date_Iacob
Paul IACOB 1 Introducere Aplicaii tradiionale bazate pe fiiere; limitriPentruomaibunnelegereaevoluieiprelucrrilordedatevomrezervacteva rndurilanceputulcursuluinostrupentruoscurttrecerenrevistametodelortradiionale de prelucrare a masivelor de date, aa-numitele sisteme tradiionale bazate pe fiiere. n primii ani, calculatoarele erau utilizate mai ales pentru a duce la bun sfrit calcule laborioasencarenuerauimplicatecantitipreamaridedate,aa-numitelecalcule tiinifice. Odat cu apariia limbajelor de nivel nalt i a posibilitii stocrii de mari cantiti deinformaiepesuportmagneticadresabil(memorieexterna)s-apusiproblema eficientizriiprelucrriiacestora.Dedataaceastanucalculelecreteaucostulntimpal prelucrrilorcimanipulareadatelor,respectivregsirea,actualizarea,etc.S-aconstatatcun factorimportantalcreteriieficieneiprelucrrilorestemoduldeorganizarealinformaiilor. De aici i pn la a gndi sisteme unitare de reprezentare i manipulare a masivelor de date n-a mai fost dect un pas. Prima variant de prelucrarea cantitilor mari de informaie s-a bazat pe organizarea datelorsubformanregistrrilornfiieretradiionalepesuportadresabil.naceastvariant se elaborau programe de aplicaie care defineau i manipulau propriile date i aveau n general ca scop elaborarea de rapoarte pentru diveri beneficiari. Aceste programe au avut menirea de anlocuiprelucrareasistemelordefiieremanualecaremaifuncioneaziastzinunele locuri cum ar fi cabinetele medicale. Aadar prelucrrile oferite de un sistem tradiional bazat pefiierecopiaunmaremsurmetodelemanualedeprelucrare.Evidentcputereade calculimemorarecaracteristicsistemelordecalculaufcutcagamaprelucrrilors creasc simitor, la aceasta adugndu-se viteza i sigurana prelucrrilor.Cutoateclamomentulrespectivabordareatradiionalbazatpefiiereafostun evident progres, putem s amintim aici i o serie de limitri ale acestui sistem de prelucrare a datelor: Separarea i izolarea datelor Duplicarea datelor Dependena datelor Incompatibilitatea fiierelor Interogri fixe / proliferarea aplicaiilor Comentm pe scurt n continuare semnificaia acestora. Separarea i izolarea datelor Accesulladatecareseaflnfiierediferiteestedificildeoarececadensarcina programatoruluissincronizezenregistrriledinfiierenaafelnctdateleextrasesfie corecte. Duplicarea datelor nsituaiancareserealizeazprelucrridescentralizatededate,pecompartimente, este posibil s fie necesar duplicarea datelor. Totui duplicarea este de evitat din urmtoarele motive: - necesit costuri mari n timp i spaiu de memorie. -ducelapierdereaintegritiidatelor.Datelenumaisuntconsistente,decinusemai poate conta pe ele. 2 Dependena datelor Aacumamsubliniatdeja,structurafizicimoduldememorarealdateloreste definit n fiecare program de aplicaie n parte. Este evident ct de dificile sunt schimbrile n structuradatelor.Toateprogrameletrebuieajustatelanouastructurdedate.Osimpl modificarealungimiiunuicmppoategeneraprobleme.Dependenasereferaadarla dependena program-date. Incompatibilitatea fiierelor Aceastlimitaresetragetotdindependenadeprogrameastructuriifiierelor. Structurafiinddescrisnprogrameeadepindedelimbajuldeprogramare.Deexemplu, structuraunuifiierdeclaratntr-unprogramCOBOLdiferdestructuraunuifiiergenerat deunprogramC.Dacenecesarprelucrareadedatedinambelefiiere,programatoruleste obligat s scrie programe de conversie, pentru a aduce fiierele la un format comun posibil de prelucrat. Interogri fixe / proliferarea aplicaiilor Deoarece prelucrarea masivelor de date a devenit mai uoara i mai rapida cu ajutorul calculatorului,beneficiariiaulrgitgamaprelucrrilorlansndinterogrinoisaumodificnd interogri mai vechi, pentru obinerea de informaii mai complexe. Orice interogare nou sau orice modificare a unei interogri mai vechi se rezolv n sistemele tradiionale prin realizarea de noi programe de ctre programatorul de aplicaie. Inutil de subliniat ct de costisitoare sunt acestea. Un efect secundar era c se nmuleau programele aplicaiei i de multe ori i fiierele de prelucrat. Obiectivele cursului Cursuldebazededateesteuncursdebazpentrumeseriadeinformatician.La sfritul acestui curs, studenii vor fi capabili s:Proiecteze o baz de date Programeze cereri n SQL Realizeze un sistem cu baz de date Cerine preliminare Cursul se va susine studenilor dup cursul de structuri de date.Cunotineleacumulatelaacestcurspotfiutilelauncursdeinformaticde gestiune. Resurse PentruaproiectaunsistemcubazdedatevomfolosisistemulACCESSdela Microsoft i ORACLE 10G Express edition.3 Structura cursului Cursul de baze de date este structurat n trei module, astfel: primul modul cuprinde patruunitidenvare,aldoileamodulcuprindedouunitidenvare,al treileamodulcuprindedouunitidenvare,alpatruleamodulcuprindedou unitidenvare,iaralcincileamodulcuprindeaseunitidenvare.La rndul su, fiecare unitate de nvare cuprinde: obiective, aspecte teoretice privind tematicaunitiidenvarerespective,exemple,testedeautoevaluareprecumi probleme propuse spre discuie i rezolvare.La sfritul fiecrui modul sunt date teste de autoevaluare. Rezolvarea acestor teste se gsete la sfritul crii. Durata medie de studiu individual Parcurgereadectrestudeniaunitilordenvarealecursuluidebazededate (attaspecteleteoreticectirezolvareatestelordeautoevaluareirezolvarea problemelor propuse) se poate face n 1-4 ore pentru fiecare unitate. Evaluarea Lasfritulsemestrului,fiecarestudentvaprimionot,carevacuprinde:un examen scris cu materia din modulele 1, 3 i 4 care va deine o pondere de 60% n notafinalinoteleaferentecelordoucapitoledelalaboratorACCESSi ORACLE. 4 CUPRINS Modulul 1. Sisteme de Gestiune a Bazelor de Date (SGBD) ................................ ..................... 5 Unitatea de nvare 1. Istoric; comentarii ................................ ................................ ......... 6 Criterii minimale de definire a unui SGBDR ................................ ................................ ... 10 Unitatea de nvare 1.2 Abstractizarea datelor ................................ ................................ 14 Unitatea de nvare 1.3 Principalele componente i funciuni ale unui SGBD............... 19 Unitatea de nvare 1.4 Baze de date distribuite ................................ ............................. 27 Modulul 2. Modele de descriere a datelor ................................ ................................ ................ 37 Unitatea de nvare 2.1. Generaliti ................................ ................................ ............... 38 Unitatea de nvare 2.2 Modelare E-R (Entity-Relaionship) ................................ ......... 41 Modulul 3. Limbaje de cereri. ................................ ................................ ................................ .. 53 Unitatea de nvare 3.1 Algebra relaional. ................................ ................................ ... 54 Unitatea de nvare 3.2 SQL ................................ ................................ ........................... 65 Modulul 4. Normalizarea................................ ................................ ................................ .......... 85 Unitatea de nvare 4.1 De ce este nevoie de normalizare i cu ce instrumente facem normalizarea. ................................ ................................ ................................ .................... 86 Unitatea de nvare 4.2Forme normale ................................ ................................ ......... 93 Modulul 5. Metodologia de proiectare a bazelor dedate relaionale ................................ ...... 99 Unitatea de nvare U5.1 Generaliti i proiectarea conceptual................................ . 101 Unitatea de nvare U5.2 Proiectarea logic. ................................ ................................ 111 Unitatea de nvare U5.3 Proiectarea fizic. ................................ ................................ . 122 Unitatea de nvare U5.4 Tranzacii i concuren................................ ........................ 126 Unitatea de nvare U5.5 Metode de control al concurenei. ................................ ........ 131 Unitatea de nvare U5.6. Securitate i integritate ................................ ........................ 139 Raspunsuri la testele de autoevaluare. ................................ ................................ .................... 147 Bibliografie. ................................ ................................ ................................ ............................ 164 5 Modulul1.SistemedeGestiuneaBazelordeDate (SGBD) Cuprins Introducere ................................ ................................ ................................ ...................... 3 Obiectivele modului ................................ ................................ ................................ ........ 3 U1.1. Istoric; comentarii U1.2. Abstractizarea datelor U1.3. Principalele componente i funciuni ale unui SGBD U1.4 Baze de date distribuite Introducere Evoluiametodeloritehnicilordeorganizareadatelorafostdeterminatde necesitateadeaaveaunaccesctmairapidimaiuorlaunvolumdincence maimaredeinformaiiprecumideperfecionareaechipamentelordeculegere, memorare,transmitereiprelucrareadatelor.Celmaiimportantdomeniual aplicaiilor calculatorului este cel al bazelor de date. M1. Obiectivele modulului La sfritul acestui modul studenii vor fi capabili s:Disting gradul de relaional al unui SGBD descrie componena unui Sistem de Gestiune al Bazei de Date cunoasc obiectivele unui SGBD cunoasc i s utilizeze funciunile unui SGBD neleag ce este o baz de date distribbuit cum se proiecteaz o baz de date distribuit 6 Unitatea de nvare 1. Istoric; comentarii M1.U1.1. Introducere Esteimportantstimcumaevoluatmodelulisoftulpentrubazelededate.Ne ocupm,nacestcurs,decelmaiimportantdintremodeleianumemodelul relaional. M1.U1.2. Obiectivele unitii de nvare La sfritul acestei uniti de nvare studenii vor fi capabili s:neleag nivelul la care au ajuns bazele de date Disting gradul de relaional al unui SGBD. Durata medie de parcurgere a primei uniti de nvare este de 2 ore. Istoric i comentarii Separecsistemuldebazededateiarerdcinilenanii'60,nproiectulde aselenizareApollo.Deoarecepeatuncinuexistunastfeldesistem,NorthAmerican Aviation(actualmenteRockwellInternational)adezvoltatunpachetdeprogramecunoscut sub numele GUAM (Generalized Update Access Method),care se baza pe date organizate n mod ierarhic. Modelul de date ierarhic, unul din modelele abstracte ale bazelor de date, i are originea n acest proiect. Inanii60GeneralElectricadezvoltatsistemulIDS(IntegratedDataStore). Conductor de proiect: Charles Bachmann. Proiectul a condus la modelul de date reea. n1965CODASYL(theConferenceOnDAtaSYstemsLanguages)carereunea reprezentaniaiguvernuluiUSAireprezentaniailumiiafaceriloricomerului,areuits stabileascungrup de lucru, cunoscut din 1967 sub numele DataBaseTask Group (DBTG). Sarcina acestui grup era s stabileasc specificaii cu rol de standarde pentru un mediu care ar permite crearea de baze de date i manipularea datelor.Conceptuldebazdedates-adefinitn1969cuocaziaprezentriiprimuluiproiectde raportCODASYL(Raportulfinals-aprezentatn1971).Ideeaprincipalnorganizarea datelor se baza pe existena a trei nivele de baz:-schema de reea - care reprezenta organizarea logica a ntregii baze de date-subschema-carereprezentaoparteabazeidedateaacumevzutdeutilizatorsaude programele de aplicaie -un limbaj de gestionare a datelor - care definea caracteristicile datelor, structura lor i care manipula datele Pentru standardizare, s-au propus trei limbaje: -un limbaj de definire a datelor (LDD) la nivel de schem -un limbajla nivel de subschem 7 -un limbaj de manipulare a datelor (LMD) CutoatecnuafostadoptatformaldeANI(AmericanNationalStandardInstitute) propunereaDBTGafostaplicatntr-oseriedesistemedezvoltateulteriorieastlabaza conceptului modern de baz de date. ProiectulierarhicicelprezentatdeCODASYLreprezintprimageneraiedeSistemede Gestiune a Bazelor de Date (SGBD). n1978E.F.CodddelaIBMResearchLaboratoryaelaboratolucrarecareaavuto influencovritoarendezvoltareabazelordedate.Lucrareatratadespremodeluldedate relaional. Deaicincolos-auproiectatmultesistemedintrecaremenionmSystemRdezvoltatla IBM's San Jose Research Laboratory din California, la sfritul anilor '70. Acest proiect a dus la: -dezvoltareaunuilimbajstructuratdeinterogare(numitSQL)caredeatunciadevenitun standard pentru sistemele relaionale; -producerea n anii '80 de sisteme comerciale arhicunoscute dintre care menionm: DB2 i SQL/DS de la IBM i ORACLE de la ORACLE Corporation. Alteexempledesistemerelaionale:INGRESdelaRelaionalTechnologyInc.,Informixde laInformixSofwareInc.,SybasedelaSybaseInc..Dintresistemelerelaionalepentru microcalculatoare enumerm aici: Paradox i dBase IV de la Borland, Access de la Microsoft, FoxPro i R:base de la Microrim. Toate acestea constituie generaia a doua de SGBD.Definirea sistemelor de gestiune ale bazelor de date relaionale ntr-o prim ncercare de definire, se poate considera un sistem de gestiune a bazelor de daterelaionale(SGBDR)careprezentndunSGBDcareutilizeazdreptconcepiede organizareadatelormodelulrelaional.Astfelspus,unSGDBRreprezintunsistemcare suport modelul relaional. Definiia de mai sus este prea general pentru a putea fi operaional, deoarece modul de implementareamodeluluirelaionaldifer,deregulattntrediferiteleSGBDR,ctin raportcumodelulteoretic,celdefinitncadrulteorieirelaionale,datoriteforturilor productorilordearealizasistemectmaiperformanecaressatisfaccerinelei exagerrileutilizatorilor.Ctdeaproape(saudedeparte)demodelulrelaionalteoretic trebuiesfiemodeluldatelorefectivutilizatdeSGBDpentruaputeaafirmacSGBD-ul respectiv utilizeaz sau nu modelul relaional, deci este sau nu SGBDR?Diversitateamodelelorrelaionaleoperaionaleaudeterminat,nmodnaturalexistena uneimaridiversitiideSGBDR,pentruacrorprezentareafostnecesarnuanarea terminologiei.Au aprut o serie de sintagme precum: sisteme cu interfa relaional, sisteme pseudorelaionale, sisteme complet relaionale. Conceptele specifice organizrii datelor n fiiere, SGBDR i teoriei relaionale ntre care se pot stabili analogii Organizarea datelor n fiiereSGBDRTeoria relaional FiierTabelRelaie Record(nregistrare)LinieTupluCmpColoanAtribut ngeneral,concepteleutilizatelaprezentareaSGBDRiamodelelorrelaionale operaionalediferdeceledincadrulteorieirelaionale.Figurademaisusprezint 8 comparativconcepteleorganizriidatelornfiiere,concepteSGBDRialeteoriei relaionale. Faptulcsepotstabilianalogiintreconcepteleorganizriidatelornfiiereiconceptelerelaionale,i-audeterminatpeuniiproductorisprezintesistemefrnicio legturcumodelulrelaionaldreptSGBDR,nscopulasigurriisuccesuluicomercialal acestor sisteme. Regulile lui Codd DefinireaunuiSGBDRimpuneodetaliereacaracteristicilorpecaretrebuiesleprezinte un SGBDpentru a putea fi considerat relaional. n acest sens, Codd a formulat 13 reguli care exprimcerinelepecaretrebuiesleprezinteunSGBDcasfierelaional.Deireguliau strnitoseriedecontroverse,eulevoiprezentancontinuare,elefiinddeosebitdeutilen evaluarea unui SGBDR. R0: Regula privind gestionarea datelor la nivel de relaie Sistemul trebuie s gestioneze baza de date numai prin mecanisme relaionale. Acestlucrunseamncsistemultrebuies-indeplineasctoatefunciileprin manipulrincareunitateadeinformaiesfiemulimea(relaia),adicsutilizezelimbaje, precum SQL, care s opereze la un moment dat pe o ntreag relaie. Dec i SGBD nu trebuie s accepteoperaiinon-relaionalecaresndeplineascoperaiilededefinireimanipularea datelor. Unele sisteme utilizeaz mecanisme relaionale numai pentru o parte din funcii, n special pentru interogare. Aceste sisteme se numesc sisteme cu interfa relaional i nu SGBDR.R1: Regula privind reprezentarea logic a datelor Toate datele din baza de date relaional trebuie s fie reprezentate explicit la nivel logic, ntr-un singur mod, i anume ca valori n tabele de date. Ac este lucru nseamn c toate datele trebuie s fie memorate i prelucrate n acelai mod. Informaiile privind numele de tabele,coloane, domenii, definiiile tabelelor virtuale, restricii de integritate trebuie s fie memorare tot n tabele de date (catal oage). Referina la 'nivelul logic'nseamn c construcia fizic nu este reprezentat i nu necesit explicaie. R2: Regula privind garantarea accesului la date. Oricedatdinbazadedaterelaionaltrebuiespoatfiaccesatprinspecificarea numelui da tabel, valorii cheii primare i numelui de coloan.AceastregulexprimcerinacalimbajuldecererialSGBDRspermitaccesulla fiecare valoare atomic din baza de date. R3: Regula privind valorile null Sistemeletrebuiespermitdeclarareasmanipulareasistematicavalorilornull,cu semnificaia unor date lips sau inaplicabile. Valorile null, care difer de irurile de caractere ' spaiu'saudeirurilevidedacaracteresuntdeosebitdeimportantenimplementarea restriciilor de integritate (integritatea entitii i integritatea referenial).R4: Regula privind metadatele Descriereabazeidedatetrebuiesseprezintelanivellogicnacelaimodcudescrierea datelor propiu-zise, astfel nct utilizatorii autorizai s poat descrierii bazei de date aceleai operaii ca i asupra datelor obinuite.Aceast regul specific c trebuie s existe un unic limbaj de manipulare a metadatelor i adatelorpropui-zise,maimult,existounicstructurlogicfolositpentruadepozita informaiile de sistem. Sistemenutrebuiesfacdiferenierindefinireaitratareadateloriametadatelor, utiliznd o singur structur, i anume cea relaional.R5: Regula privind facilitile limbajelor utilizate Un sistem relaional trebuie s fac posibil utilizarea mai multor limbaje, n mai multe moduri. Trebuie s existe ns cel puin un limbaj de nivel nalt ale crui instruciuni s poat 9 exprima oricare din urmtoarele operaii: definirea tabelelor de date, definirea tabelelor virtuale,manipularea datelor (interactiv dau prin program), definirea restriciilor de integritate, autorizarea accesului, precizarea limitelor tranzaciilor. A se nota aici c noul standard O/I pentru SQL furnizeaz toate aceste funcii, deci orice limbajcare accept acest standard va satisface automat aceast regul. R6: Regula privind actualizarea tabelelor virtuale. Toate tabelele virtuale care teoretic sunt posibil de actualizat trebuie s poat fi efectiv actualizabile. Nu toate atributele din cadrul unei tabele virtuale, deci nu toate tabele virtuale sunt teoretic actualizabile. R7: Regula privind inserrile, modificrile i tergerile n baza de dateSistemul trebuie s ofere posibilitatea manipulrii unei tabele (da baz sau virtual) nu numai n cadrul operaiilor de regsire, ci i n aciuni de inserare, modificare i tergere a datelor.Aceastregulexprimcerinacaprinoperaiilencareseschimbbazeidadatesse lucreze la un moment dat pe o ntreag relaie.R8: Regula privind independena fizic a datelor Programele de aplicaie nu trebuie s fie afectatede schimbrile efectuate n modul de reprezentare a datelor sau n metodele de acces. O schimbare a structurii fizice a datelor nu trebuie s blocheze funcionarea programelorde aplicaie. R9: Regula privind independena logic a datelor Programele de aplicaie nu trebuie s fie afectatede schimbrile efectuate asupra relaiilor bazei de date, schimbri care conserv datele i care teoretic garanteaz valabilitatea programelor de aplicaie existente. R10: Regula privind restriciile de integritate Restriciiledeintegritatetrebuiesfiedefinitenlimbajulutilizatdesistempentru definireadatelorisfiememoratencadrulbazeidedateinuncadrulprogramuluide aplicaie. R11: Regula privind distribuirea geografic a datelorLimbajul de manipulare a datelorutilizat de sistem trebuie s permit ca, n situaia n care datele sunt distribuite, programele de aplicaie s fie logic aceleai cu cele utilizate n cazuln care datele sunt fizic centralizate.Utilizatorul trebuie s perceap datele ca fiind centralizate. Sarcina de localizare a datelor, atunci cnd acestea sunt distribuite geografic precum i sarcina recompunerii datelor trebuie s revin sistemului i nu utilizatorului. R12: Regula privind prelucrarea datelor la nivelul de baz Dac sistemul posed un limbaj de baz (de nivel sczut) orientat pe prelucrare de recorduri (tupluri) i nu pe prelucrarea mulimilor (relaiilor), acest limbaj nu trebuie s fie utilizat pentru a se evita restriciile de integritate sau restriciile introduse prin utilizarea limbajelor de nivel nalt, adic accesul la toate datele va fi controlat de SGBDR, altfel integritate bazelorde date nu poate fi compromis fr cunoa terea utilizatorului sau a administratorului bazei de date. Pe parcursul anilor regulile lui Codd au generat o seam de controverse. Cteva argumente sunt c aceste reguli nu sunt mai mult dect nite exerciii academice. Unele revendicri aleproduselor existente sunt c ele pot ndeplini cea mai mare parte din reguli, dar nu toate. Aceast discuie a generat o disput ntre utilizatori i teoreticienii asupra proprietilor eseniale ale unui SGBDR. Pentru a accentua implicaia regulilor lui Codd n analiza unui SGBDR, aceste reguli au fost reorganizate n cinci categorii, i anume:Reguli fundamentale, 10 Reguli structurale, Reguli privind integritatea datelor, Reguli privind manipularea datelor, Reguli privind independena datelor. S ne reamintim... Abordarea tradiional bazat pe fiiere are o serie delimitri cum ar fi Separarea i izolarea datelor Duplicarea datelor Dependena datelor Incompatibilitatea fiierelor Interogri fixe / proliferarea aplicaiilor Sistemuldebazededateiarerdcinilenanii'60,nproiectulde aselenizare Apollo Ideea principal n organizarea datelor se baza pe existena a trei componente de baz: schema de reea - care reprezenta organizarea logica a ntregii baze de date subschema-carereprezentaoparteabazeidedateaacumevzutde utilizator sau de programele de aplicaie unlimbajdegestionareadatelor-caredefineacaracteristiciledatelor, structura lor i care manipula datele Pentru standardizare avem trei limbaje: un limbaj de definire a datelor (LDD) la nivel de schem un limbaj la nivel de subschem un limbaj de manipulare a datelor (LMD) Conceptelespecificeorganizriidatelornfiiere,SGBDRiteoriei relaionale ntre care se pot stabili analogii Organizareadatelorn fiiere SGBDRTeoria relaional FiierTabelRelaie Record(nregistrare)LinieTupluCmpColoanAtribut Codd a formulat 13 reguli care exprim cerinele pe care trebuie s le prezinte un SGBD ca s fie relaional. Criterii minimale de definire a unui SGBDR NiciunuldintreSGBDRdisponibileastzinurespectntrutotulcerineleexprimatede Codd,ncadrulcelor13reguli.DeaceeapentrucaracterizareaunuiSGBDnusuntutilizate 11 regulile lui Codd, fiind formulate n schimb o serie decerine minimale pa care trebuie s la satisfac un sistem de gestiune a bazelor de date pentru a putea fi considerat relaional.Un SGBD este minimal relaional dac satisface urmtoarele condiii: 1.Toate datele din cadrul relaiei sunt reprezentate prin valori n tabele,2.Nu exist pointeri observabili de ctre utilizatori n tabele, n sensul c operaiile cu relaii nu fac apel la pointeri, indeci, fiiere inverse, etc.3.Sistemulsuportoperatorirelaionalideproiecie,selecieijoinnatural,frlimitri impusedeconsiderenteinterne(cumarfideexemplu,necesitateaindexriiatributelor). Unitatea de informaie cu care se lucreaz n cadrul acestor operaii trebuie s fie relaia.UnSGBDestecompletrelaionaldacesteminimalrelaionalisatisfacenplus urmtoarele condiii: 4.Sistemulsuporttoateoperaiiledebazalealgebreirelaionale,frlimitriimpusede considerente interne. 5.Sistemulsuportdoudintrerestriciiledeintegritatedebazalmodeluluirelaionali anume unicitatea cheii unei relaii i restricia referenial. Un SGBD este pseudorelaional dac satisface numai condiiile 1. i 3. UnSGBDcuinterfarelaionalesteunSGBDaresatisfacecondiiile1.i3.,cu observaia c cerina 3. Este ndeplinit numai n raport cufuncia de interogare nultimiiani,carspunslanecesitateadeacretecomplexitateaaplicaiilorcubazede date (ncurajat i de progresele aprute n programare o dat cu programarea orientata obiect) auaprutmodeluldedateorientatobiect(Object-OrientedDataModel-OODM)imodelul dedaterelaionalextins (ExtendedRelaionalDataModel-ERDM).Cutoatecmodelulde date ce sta la baza noilor modele nu este att de clar c ncazul modelului relaional, se poate considera c aceste din urma dezvoltri reprezint generaia a patra de SGBD.Inesen,conceptuldebazdedatepoatefidefinitcafiindocoleciepartajatdedate aflateninterdependenlogic(mpreuncuodescriereaacestordateiarelaiilordintre ele),coleciedesemnatpentruarezolvanevoiadeinformatizareauneintreprinderi(sau organizaii). Baza de date trebuie s ndeplineasc urmtoarele condiii: - s asigure o independen sporit a datelor fa de programe i invers;- structura bazei de date trebuie astfel conceput nct s asigure informaiile necesare i suficiente pentru cerinele de informare i decizie;- s asigure o redundan minim i controlat a datelor;- s permit accesul rapid la informaiile stocate nbaz.Bazelededatesuntextremdevariatenfunciedecriteriileluatenconsiderare.Prezentm cteva criterii de clasificare: - dup orientare: generalizate, specializate; - dup modelul de date: ierarhice, reele, relaionale, orientate obiect;- dup amploarea geografica: locale, distribuite; NumimSGBD(SistemdeGestiunealBazelordeDate)unsistemsoftwarecare permite,pedeoparte,definirea,creareaintreinereabazeidedateipedealtaparte, permiteaccesulcontrolatlainformaiiledinbazadedatencauz.SGBDesteformatdin 12 programedesoftwarecareinteracioneazcuprogrameledeaplicaiealeutilizatoriloricu baza de date. Sistemul de gestiune al bazei de date asigur realizarea urmtoarelor activiti:- definirea structurii bazei de date;- ncrcarea datelor nbaza de date; - accesul la date (interogare, actualizare);-ntreinereabazeidedate(colectareaireutilizareaspatiilorgoale,refacereabazeide date ncazul unui incident); - reorganizarea bazei de date (restructurarea i modificarea strategiei de acces); - integritatea datelor; - securitatea datelor. Aadar,sistemuldegestiunealbazeidedateaparecaunsistemcomplexdeprograme care asigur interfaa ntre o baz de date i utilizatorii acesteia.Clasificarea SGBD se poate realiza din mai multe puncte de vedere.Din punctul de vedere al sistemelor de calcul pe care se implementeaz. SGBD pot fi: sisteme de gestiune pentru calculatoarele mari;sisteme de gestiune pentru minicalculatoare;sisteme de gestiune pentru microcalculatoare. Inprezentsemanifestatendinacamareamajoritateasistemelordegestiuneabazelorde date s fie compatibile pe platforme ct mai largi de sisteme de calcul. 2. Din punctul de vedere al limbajului pe care l utilizeaz, sunt: sisteme cu limbaj gazd; sisteme cu limbaj autonom. Sistemele cu limbaj gazd realizeaz activitile de creare, actualizare i interogare a bazei de date, utiliznd limbajele de nivel nalt sau extensii ale acestora, proprii sistemului de calcul pe care se implementeaz baza de date. Avantajul acestor sisteme const nposibilitile sporite ce le ofer limbajele de nivel nalt la elaborarea unor proceduri complexe. Sistemele cu limbaj gazd prezint dezavantajul c formularea cerinelor nu este att de simplificat ca ncazul sistemelor cu limbaj autonom. 3. Din punctul de vedere al concepiei de organizare a datelor pe care le gestioneaz, SGBD se clasific n: sisteme de gestiune a bazelor de date cu structuri ierarhice i reea; sisteme de gestiune a bazelor de date relaionale; sisteme de gestiune a bazelor de date orientate obiect. 4. Din punctul de vedere al modului de localizare a bazelor de date avem: sisteme de gestiune a bazelor de date centralizate; sisteme de gestiune a bazelor de date distribuit e. Marea majoritate a sistemelor de gestiune aprute n ultima perioad dispun i de o component de gestiune distribuit a datelor. S ne reamintim... Un SGBD este minimal relaional dac satisface urmtoarele condiii: Toate datele din cadrul relaiei sunt reprezentate prin valori n tabele,Nuexistpointeriobservabilidectreutilizatorintabele,nsensulc operaiile cu relaii nu fac apel la pointeri, indeci, fiiere inverse, etc.Sistemulsuportoperatorirelaionalideproiecie,selecieijoinnatural,fr limitriimpusedeconsiderenteinterne(cumarfideexemplu,necesitatea indexriiatributelor).Unitateadeinformaiecucareselucreazncadrul acestor operaii trebuie s fie relaia.UnSGBDestecompletrelaionaldacesteminimalrelaionalisatisface n plus urmtoarele condiii: 13 Sistemulsuporttoateoperaiiledebazalealgebreirelaionale,frlimitri impuse de considerente interne. Sistemulsuportdoudintrerestriciiledeintegritatedebazalmodelului relaional i anume unicitatea cheii unei relaii i restricia referenial.n esen, conceptul de baz de date poate fi definit ca fiind o colecie partajat de date aflate ninterdependen logic (mpreun cu o descriere a acestor date iarelaiilordintreele),coleciedesemnatpentruarezolvanevoiade informatizare a unei ntreprinderi.Clasificarea SGBD se poate realiza din mai multe puncte de vedere: din punctul de vedere al sistemelor de calcul pe care se implementeaz. SGBD, din punctul devedereallimbajuluipecarelutilizeazidinpunctuldevedereal concepiei de organizare a datelor pe care le gestioneaz M1.U1.6. Rezumat Conceptul debaz de date poate fi definit ca fiind o colecie partajat de date aflateninterdependenlogic(mpreuncuodescriereaacestordateia relaiilordintreele),coleciedesemnatpentruarezolvanevoiade informatizare a unei ntreprinderi. Sistemuldebazededateiarerdcinilenanii'60,nproiectulde aselenizare Apollo Ideeaprincipalnorganizareadatelorsebazapeexistenaatreicomponente de baz: schema de reea - care reprezenta organizarea logica a ntregii baze de date subschema-carereprezentaoparteabazeidedateaacumevzutde utilizator sau de programele de aplicaie unlimbajdegestionareadatelor-caredefineacaracteristiciledatelor, structura lor i care manipula datele Pentru standardizare avem trei limbaje: un limbaj de definire a datelor (LDD) la nivel de schem un limbajla nivel de subschem un limbaj de manipulare a datelor (LMD) Conceptelespecificeorganizriidatelornfiiere,SGBDRiteoriei relaionale ntre care se pot stabili analogii Organizareadatelorn fiiere SGBDRTeoria relaional FiierTabelRelaie Record(nregistrare)LinieTupluCmpColoanAtribut 14 Unitatea de nvare 1.2 Abstractizarea datelor M1.U1.1. Introducere Unscopimportantalunuisistemdegestiunealbazelordedateestespoat asigura o viziune abstract asupra realitii. Este necesar s se rein din mulimea vast de informaii doar acelea care sunt necesare unei anumite aplicaii. M1.U1.2. Obiectivele unitii de nvare La sfritul acestei uniti de nvare studenii vor fi capabili s:neleag care este structura pe trei nivele a bazei de date neleagceesteindependenalogiciceesteceafizicideceeste important aceast independen Durata medie de parcurgere a primei uniti de nvare este de 2 or e. Sepoatefacereferirespreexemplulancercareademodelareauneiaplicaiintr-o ntreprindere.Trebuiemodelate'obiectele'irelaiiledintreele.Nurealitateacomplexn totalitateaeiintrndiscuiecidoaromicparteaei,constituitdinanumite'obiecte'i pentruaceleobiecteseiaunconsideraredoaropartedincaracteristici(acelecaracteristici caresuntimportantepentruaplicaiancauza).Astfelncazulmodelrii'obiectului'(sau entitii)angajat,trebuiealesedoaraceleproprieti(sauatribute)careintereseaz.Acestea ar putea fi, de exemplu: numele, adresa, salariul. O mulime impresionant de informaii, care contribuieladescriereauneipersoaneanume,nusuntluatenseam,deoarecenuprezint interes pentru ntreprindere. Exemple Deexemplu,nuintereseazdacpersoanaareochiialbatri,dacesteblond sau brunet, dac ascult cu plcere muzic sau dac este o fire sentimental. Cecredeicarinteresasmemormdesprestudenintr-obazdedatea facultii?Ce nu ar trebui memorat? Mai mult dect faptul c realitatea este reprezentat codificat i foarte simplificat, deoarece baza de date este o resurs partajat, este foarte probabil ca fiecare utilizator s doreasc doar o parte din informaiile stocate, funcie de aplicaia pe care o dezvolt.15 Pentru a se rezolva aceste cerine, se apeleaz la reprezentarea pe nivele a organizrii informaiilor ntr-o baza de date. n general este acceptat arhitectura pe trei nivele ANSI-SPARC. Componentele bazei de date pot fi structurate pe trei nivele, n funcie de clasa utilizatorilor implicai i de viziunea asupra structurrii informaiei, dup cum urmeaz: - nivelul logic de vizualizare (view) sau nivelul extern. Este dat de viziunea programatorului de aplicaii, care realizeaz programele de aplicaii pentru manipularea datelor la nivel de structur logic (subschema) corespunztoare descrierii datelor aplicaiei;- nivelul conceptual (global). Este dat de viziunea administratorului bazei de date, care realizeaz structura conceptual (schema) corespunztoare descrierii ntregii baze de date i administreaz componentele bazei de date. Acest nivel descriece date sunt memorate n baza de date i ce relaii sunt stabilite ntre date. Nivelul conceptual reprezint:- toate entitile, atributele lor i relaiile dintre ele; - restriciile impuse datelor - informaiile semantice despre date - informaiile privitoare la securitatea i integritatea datelor.-nivelulfizic.Estedatdeviziuneaingineruluidesistemcarerealizeazstructurafizic corespunztoaredescrieriidatelorpesuportulfizic(periferic).Acestniveldescriecumsunt memorate datele n baza de date. Nivelul intern se ocup de:- alocarea spaiului de memorie pentru date i indeci; - descrierea nregistrrilor pentru memorare;- plasarea nregistrrilor pe suport;- tehnicile de compresie i de criptare a datelor. View 1 View 2 View n Schema conceptuala Schema interna Baza de date Utilizator 1Utilizator 2 Nivel extern Nivel conceptual Nivel intern Organizarea lanivel fizic a datelor .. 16 Arhitectura ANSI-SPARC pe trei nivele S ne reamintim... Componentele bazei de date pot fi structurate pe trei nivele, n funcie declasautilizatorilorimplicaiideviziuneaasuprastructurriiinformaiei, dup cum urmeaz: -nivelullogicdevizualizare(view)saunivelulextern.Estedatde viziunea programatorului de aplicaii -nivelulconceptual(global).Estedatdeviziuneaadministratoruluibazei dedate,carerealizeazstructuraconceptual(schema)corespunztoare descrierii ntregii baze de date i administreaz componentele bazei de date.-nivelulfizic.Estedatdeviziuneaingineruluidesistemcarerealizeaz structura fizic corespunztoare descrierii datelor pe suportul fizic (periferic). Scheme, corespondene i instane Descriereageneralaauneibazededatesenumeteschemabazeidedate.Conform nivelelor de abstractizare a datelor exist trei tipuri de scheme pentru fiecare baz de date. La nivelulcelmainaltexist(ngeneral)maimulteschemeexterne(numiteisubscheme) caredescriudiferiteleview-urialebazeidedate.Lanivelulconceptualexistschema conceptual iar la nivelul cel mai de jos de abstractizare existschema intern. Pentrufiecarebazdedateosinguraschemconceptualdescriedateleirelaiile ntreele,precumirestriciiledeintegritate.Schemeiconceptualeicorespundeoschem intern care descrie organizarea fizic a datelor.SGBDrealizeazcorespondenantreceletreiniveledeabstractizare,realiznd corespondenantreceletreitipuridescheme.Astfelcorespondenaconceptual/intern leagschemaconceptualdeschemaintern.Datoritacesteicorespondeneseidentific nregistrarea sau combinaia de nregistrri la nivel fizic, careconstituienregistrarea logic n schema conceptual, mpreun cu restriciile de integritate corespunztoare. Analog, fiecare schemexternestelegatdeschemaconceptualprincorespondenaextern/conceptual. AceastacorespondenpermiteSGBDsfaclegturantrenumeledinview-urileutilizator iparteacorespunztoarerelevantdinschemaconceptual.Estedereinutctrebuies facem distincie ntre descrierea bazei de date (schema bazei de date) i baza de date propriu-zis.Numiminstana(ncazuluneibazededate)dateleaflatenbazadedatelaunanumit momentdat.Altfelspus,maimulteinstanepotscorespundaceleiaischemeconceptuale pentru o baz de date. 17 S ne reamintim... Descriereageneralaauneibazededatesenumeteschemabazeidedate. Conformnivelelordeabstractizareadatelorexisttreitipuridescheme pentrufiecarebazdedate.Lanivelulcelmainaltexist(ngeneral)mai multe scheme externe (numite i subscheme) care descriu diferitele view-uri alebazeidedate.Lanivelulconceptualexistschemaconceptualiarla nivelul cel mai de jos de abstractizare exist schema intern. Independena datelor Unobiectivmajoralarhitecturiipetreiniveledeabstractizareesterealizarea independeneidatelor.Oaplicaie,ngeneral,estedependentdedatensensulc modificareastructuriidememorareadatelorsauastrategieideaccesladateafecteazi aplicaia.Independenadatelorfadeaplicaieestetotuinecesarcelpuindinurmtoarele considerente: - diferite aplicaii au nevoie de viziuni diferite asupra acelorai date; -administratorulbazeidedatetrebuiesaiblibertateadeaschimbastructuradememorare saustrategiadeacces,carspunslacerine(schimbridestandarde,prioritileaplicaiilor, unitiledememorareetc.),framodificaaplicaiileexistente,bazadedateexistent, precumiprogrameledeexploatareaei,careaufostfolositeoperioaddetimpicare reprezint o investiie major la care nu trebuie s se renune prea uor.Deaceea,seimpunecaatuncicndaparnoicerinencadrulsistemuluiinformaional, sistemeleinformaticespoatfuncionacuprogrameleiprocedurileexistente,iardatele existente s poat fi convertite. Independenadatelortrebuieprivitdindoupunctedevedere:independenafizici independena logic a datelor.Independenafizicadatelorfacecamemorareadateloritehnicilefizicedememorareas poat fi modificate fr a determina rescrierea programelor de aplicaie. Aadar independena fizicadatelorreprezintgraduldeimunitateaschemeiconceptualelaschimbrilesuferite de schema intern. Independenalogicadatelorsereferalaposibilitateaadugriidenoinregistrrisaula extindereastructuriiconceptuale(globale),frcaacestlucrusimpunrescri erea programelorexistente.Cualtecuvinteindependenalogicadatelorreprezintgradulde imunitate a schemelor externe la schimbrile suferite de schema conceptual. S ne reamintim... Independenafizicadatelorfacecamemorareadateloritehnicilefizicede memorareaspoatfimodificatefradeterminarescriereaprogramelorde aplicaie.Independenalogicadatelorsereferlaposibilitateaadugriidenoi nregistrrisaulaextindereastructuriiconceptuale(globale),frcaacest lucru s impun rescrierea programelor existente. 18 M1.U1.6. Rezumat Componentelebazeidedatepotfistructuratepetreinivele,nfuncie declasautilizatorilorimplicaiideviziuneaasuprastructurriiinformaiei, dup cum urmeaz: - nivelul logic de vizualizare (view) sau nivelul extern. - nivelul conceptual (global- nivelul fizic Descriereageneralauneibazededatesenumeteschemabazeide date.Conformnivelelordeabstractizareadatelorexisttreitipuridescheme pentrufiecarebazdedate.Exist(ngeneral)maimulteschemeexterne (numiteisubscheme)caredescriudiferiteleview-urialebazeidedate.La nivelulconceptualexistschemaconceptualiarlanivelulcelmaidejosde abstractizare exist schema intern. Independenafizicadatelorfacecamemorareadateloritehnicilefizicede memorareaspoatfimodificatefradeterminarescriereaprogramelorde aplicaie.Independenalogicadatelorsereferlaposibilitateaadugriidenoi nregistrrisaulaextindereastructuriiconceptuale(globale),frcaacest lucru s impun rescrierea programelor existente. M1.U1.2. Test de autoevaluare a cunotinelor 1.2.1 Ce ar trebui memorat despre profesori ntr -o baz de date a facultii? 1.2.2Cenuartrebuimemoratdespreprofesorintr-obazdedatea facultii? 1.2.3 Ce este arhitectura pe trei nivele? Rspunsurile se gsesc la sfrit la pag 147 19 Unitatea de nvare 1.3 Principalele componente i funciuni al e unui SGBD M1.U1.3. Introducere Pentruaconcepeiautilizaobazdedatetrebuiestimceputemceredelao baz de date i de la un SGBD: M1.U1.3. Obiectivele unitii de nvare La sfritul acestei uniti de nvare studenii vor fi capabili s: descrie componena unui Sistem de Gestiune al Bazei de Date cunoasc obiectivele unui SGBD cunoasc i s utilizeze funciunile unui SGBD Durata medie de parcurgere a primei uniti de nvare es te de 2 ore. innd seama de faptul c exist diferite tipuri de sisteme de gestiune, care se difereniaz: - prin limbajele utilizate, - prin anumite componente ce imprim diferite faciliti de exploatare a bazei de date,-iprinfaptulcuneleoferposibilitatealucruluinregimdeteleprelucrare,altele numai n regim local, iar altele att n regim local ct i n regim de teleprelucrare,ajungemlaconcluziacnupoatefistabilitoarhitecturunic,valabilpentrutoate sistemele, ci apar particulariti de la un sistem la altul. ArhitecturaunuiSGBDevideniazcomponenteleacestuiaiurmeazstandarde internaionale. O astfel de arhitectur general cuprinde urmtoarele componente:- baza de date propriu-zis n care se memoreaz colecia de date; -sistemuldegestiunealbazeidedate,careesteunansambludeprograme(soft)care realizeaz gestiunea i prelucrarea complex a datelor; -unsetdeprocedurimanualeiautomate,precumireglementrileadministrative, destinate bunei funcionri a ntregului sistem; -undicionaralbazeidedate(metabazadedate),ceconineinformaiidespredate, structura acestora, elemente de descriere a semanticii, statistici, documentaie etc.- mijloacele hard utilizate (comune, specializate etc.); - personalul implicat: (categorii de utilizatori: finali- (neinformaticieni); de specialitate (administrator), analiti - programatori, gestionari, operatori).Arhitectura bazei de date d o imagine despre modul general de organizare i funcionarea ei. S detaliem cteva din componentele prezentate mai sus. 20 Limbajele utilizate ntr-un SGBD sunt de dou tipuri: Limbajul de definire a datelor (Data Definition Language - DDL) i Limbajul de manipulare a datelor (Data Manipulation Language- DML). Aceste limbaje mai sunt cunoscute ca sublimbaje de date deoareceele nu includconstruciiadecvateoricrornecesitidecalcul,asemntoarecustructurilepusela dispoziie de limbajele de nivel nalt. MulteSGBDaufacilitateadeaincorporasublimbajulntr-unlimbajdenivelnalt (numit limbaj gazd) cum ar fi COBOL, Fortran, Pascal, Ada, C. Pentru compilare, comenzile sublimbajuluisuntnlocuitenlimbajulgazdcuapeluridefuncii.Fiierulpreprocesateste compilat,plasatntr-unmodulobiect,link-editatcuobibliotecncareseaflfunciile nlocuite, furnizate o dat cu SGBD, i este executat cnd este necesar.LimbajuldeDefinireaDatelor(LDD)esteunlimbajdescriptivcarepermite administratoruluibazeidedatesauutilizatorilorsdescrieisdenumeascentitilei relaiile care se pot stabili ntre acestea. Schema bazei de date este definita cu ajutorul LDD. Rezultatul compilrii declaraiilor nacestlimbajesteconstituitdintr-oseriedetabelememoratentr-unFiierspecialnumit dicionardedate(semaiutilizeazitermeniidecatalogdedatesaudirectordedate). Datelememoratenacestdicionarsuntdatedespredateideaceeasemainumesci metadate.Definiiiledindicionaruldedatesereferalanregistrri,ladateledinnregistrri i la alte obiecte ce compun baza de date. SGBD consulta dicionarul de date naintea oricrui acces la informaii.Teoretic,sepoateidentificacateunLDDpentrufiecareniveldeabstractizareal datelor, n realitate existun singur limbaj care trateaz toate aspectele definirii datelor.Limbajuldemanipulareadatelor(LMD)furnizeazunsetoperaiicaresuporta operaiiledemanipularedebazaasupradatelordinbazadedate.Operaiidebazasunt inserarea,tergerea,modificareairegsireadatelornbazadedate.Manipulareadatelorse aplica la nivel conceptual i extern.SecunoscdouatipurideLMD:proceduralinon-procedural.UnLMDprocedural trateaz nregistrrile individual i specificacum trebuie obinut rezultatul unei interogri. Cu altecuvintetrebuiessespecificeunalgoritmdeprelucrareanregistrrilorcuajutorul operaiilor puse la dispoziie de limbaj. ncontrast,unLMDnon-proceduralspecificadoarcefelderezultattrebuieobinut. SGBDtranslateazcerereadinlimbajnon-proceduraltransformnd-ontr-oprocedurasau ntr-oseriedeproceduricaremanipuleazdateleconformcereriiutilizatorului.Limbajele non-proceduralesuntmaiuordeutilizatdeoarecescutescutilizatoriidelaacunoate implementareainternaastructurilordedateidelaastabilialgoritmideobinerea informaiilor.ParteacomponentaaunuiLMDcaresereferalaregsireadatelorsenumetelimbaj deinterogare.nelegemprininterogareoricecereredeaccesladateledinbazadedate, formulata ntr-un limbaj de interogare. 4GL 4GLnseamnFourth-GenerationLanguage(LimbajdeGeneraiaaPatra).Nuexistncunconsensasuprasemnificaieiacesteidenumiri.ngeneral4GLdesemneazunlimbaj de programare de mare rapiditate pentru programator. Ceea ce se programeaz n sute de linii deprogramntr-unlimbajdegeneraiaatreia,poatesconstituiectevazecideliniide programntr-unlimbajdegeneraiaapatra.Limbajele4GLsuntnon-proceduraleise 21 bazeazpetools-uriperformante.Utilizatorultrebuiesdefineascparametripentruaceste tools-uriiaracesteagenereazprogramedeaplicaiepebazaparametrilorrespectivi.Un avantaj important al utilizrii limbajelor 4GL este o productivitate deosebita n programare. Un 4GL cuprinde: - limbaje de interogare; - generatoare de ecrane; - generatoare de rapoarte; - limbaje specializate cum ar fi spreadsheet -urile i limbajele specifice bazelor de date; - generatoare de aplicaii, etc. Exempledelimbajedeinterogare4GLsuntSQLiQBE,limbajecomercialeasupra crora vom reveni ulterior. Generatoare de ecrane Un generator deecraneeste un tool cu ajutorul cruia se pot crea uor i rapid ecrane pentruculegerea(introducerea)informaiilornecesareprogramelorsauchiarpentru introducerea i modificarea datelor din baza de date. Generatoare de rapoarte Ungeneratorderapoarteajutalacreareaderapoarte(liste)porninddeladatele memorate n baza de date. Se cunosc doua tipuri degeneratoare de rapoarte: orientat pe limbaj iorientatvisual.nprimulcazseutilizeazcomenzileunuisublimbajpentruadefinidatele cesevorincludenraport,naldoileacaz,acelailucruserealizeazcuajutorulunei faciliti grafice similare cu generatorul de ecrane. Generatoare de grafice Un astfel degenerator este o facilitate careregsete date din baza de date i afieaz aceste date sub forma unor grafice.Generatoare de aplicaii Utilizareaunuigeneratordeaplicaiipoatereducetimpulnecesarrealizriiunei aplicaiiunitare.Generatoareledeaplicaiiconstaunmodulepredefinitecarecuprind majoritateafunciilordebazacesuntprezentenmajoritateaprogramelor.Acestemodule constituie o biblioteca de funcii la dispoziia utilizatorilor. 22 S ne reamintim... Arhitectura unui SGBD cuprinde urmtoarele componente:-bazadedatepropriu-zisncaresememoreazcoleciade date; - sistemul de gestiune al bazei de date, care este un ansamblu de programe(soft)carerealizeazgestiuneaiprelucrarea complex a datelor; -unsetdeprocedurimanualeiautomate,precumi reglementrileadministrative,destinatebuneifuncionria ntregului sistem; -undicionaralbazeidedate(metabazadedate),ceconine informaii despre date, structura acestora, elemente de descriere a semanticii, statistici, documentaie etc. - mijloacele hard utilizate (comune, specializate etc.);-personalulimplicat:(categoriideutilizatori:finali- (neinformaticieni);despecialitate(administrator),analiti- programatori, gestionari, operatori). Obiectivele unui SGBD Dupcumestecunoscut,obiectivulinformaticiilconstituieculegerea,verificarea, transmiterea, stocarea iprelucrarea automata a datelor cu ajutorul mijloacelorelectronice de calcul,nscopulsatisfaceriidiferitelorniveledeconducerecuinformaiinecesarelurii deciziilor, n condiii de eficienta economica sporita. In aceste condiii, necesitatea acut de informare trebuie satisfcut innd seama de o seriede cerine prin care s se asigure:- minimizarea costului procesului de prelucrare a datelor; creterea vitezei de rspuns la ntrebrile solicitate de utilizatori; -adaptareafacilasistemuluiinformaticlaevoluiantimpasistemuluiinformaional din care face parte; -posibilitatearspunsuluilaanumitentrebrineanticipatedectreproiectaniide sistem; -posibilitateafolosiriisistemuluideinformaredispunnddeunminimdecunotine despre modul lui de organizare n general i despreinformatica n special; - integritatea i securitatea datelor etc. In acest context, sistemului de gestiune al bazei de date i revin o serie de obiective, cum sunt:1.Asigurarea independenei datelor.Aa cum am artat mai devreme, acest obiectiv consta n linii mari din ndeplinirea urmtoarei cerine:modificrilecaresefaclaunanumitniveldestructuradedatenutrebuiesfie 'vizibile' la nivelul de organizare imediat superior.23 2.Asigurarea unei redundane minime i controlate a datelor din baza dedate. Spre deosebire de sistemele clasice de prelucrare automata a datelor, stocarea datelor n cazul bazelordedatesefaceastfelnct,pectposibil,fiecareinformaiesaparosingurdat. Totui, nu sunt excluse nici cazurile n care, pentru arealiza performante sporite (mai ales n ce privete timpul de acces la date i implicit, timpul de rspuns la solicitrile utilizatorilor) s se accepte o anumita redundanta a datelor. n acest caz se va institui insa un control automat al redundantei n vederea asigurrii coerenei datelor din baza. 3. Asigurarea unor faciliti sporite de utilizare a datelor. Aceasta presupune: - folosirea datelor de ctre mai muli utilizatori n diferite scopuri (aplicaii);- accesul ct mai simplu al utilizatorilor la date, fr ca acetia s fie nevoii s cunoasc structurantregiibazededate,acestlucrurmnndnsarcinaadministratoruluibazei de date; -existentaunorlimbajeperformantederegsireadatelor,carepermitexprimareacu uurin a criteriilor de selecie a datelor i indicarea unor reguli ct mai generale pentru editarea informaiilor solicitate; -spredeosebiredesistemultradiionalbazatpeFiiere,undeexistunsingurcriteriu deadresare(celcareastatlabazaorganizriiFiierului)ncazulbazelordedate, sistemuldegestiunetrebuiesofereposibilitateaunuiaccesmulticriterial,frsortri suplimentare.Modificareacriteriuluilafiiereleclasiceimplic,nmajoritatea cazurilor, reorganizarea lor; -utilizareaunuilimbajctmaiapropiatdelimbajulnatural,cuposibilitateaexploatrii bazeidedatenregimconversaional.Aceastaaroferiposibilitateaexploatriinmod facil a bazei de date i de ctre utilizatorii neinformaticieni. 4.Sporireagraduluidesecuritateadatelormpotrivaaccesuluineautorizatlaele. Administratorul bazei de date poate prevedea ca accesul la baza de date s se fac numai prin canalecorespunztoare,ipoate,totodat,definiverificrideautorizarecaresserealizeze oricnd se ncearc accesul la anumite date. 5.Asigurareaintegritiidatelormpotrivaunortergeriintenionatesauneintenionate, prinintermediulunorproceduridevalidare,aunorprotocoaledecontrolconcurentiaunor proceduri de refacere a bazei de date dup incidente. 6. Asigurarea partajabilitii datelor. Partajabilitatea datelor trebuie neleas nu numai sub aspectulasigurriiaccesuluimaimultorutilizatorilaaceleaidate,ciisubacelaal posibilitii dezvoltrii unor aplicaii fr a se modifica structura bazei de date. S ne reamintim... Obiectivele unui SGBD sunt: Asigurarea independentei datelor.Asigurareauneiredundanteminimeicontrolateadatelordin baza de date. Asigurareaunorfacilitisporitedeutilizareadatelor.Aceasta presupune: Asigurareaintegritiidatelormpotrivaunortergeriintenionate sau neintenionate.Asigurarea partajabilitii datelor.24 Funciile unui SGBD Sistemele de gestiune a bazelor de date dispun de o serie de componente ce permit efectuarea numeroaselor operaii necesare funcionrii optime a sistemului.n funcie de natura lor i de scopulurmrit,operaiilepotfigrupatepeactiviti.Activitileacceptieleogruparepe funcii (una sau mai multe activiti, relativ omogene, re alizeaz o anumita funcie). inndseamadecomplexitateasistemuluidegestiune,defacilitileoferitedeacesta,de limbajeleutilizateidetipulbazeidedateceurmeazafigestionatdeSGBD,gruparea activitilorpefunciiareunoarecarecaracterrelativ.nsituaiasistemelordegestiunece utilizeazlimbajegazddenivelnalt,identificareaidelimitareafunciilornuesteattde evident.Totui,nciudaacestorparticulariti,sepotprezentactevafunciicucaracterde generalitate pentru toate sistemele de gestiune a bazelor de date i anume:1.Funciadedescriereadatelorpermitedefinireastructuriibazeidedatecuajutorul limbajului de definire. Definirea datelor poate fi realizat la nivel logic, conceptual i fizic. Aceasta funcie asigur:- descrierea atributelor (cmpurilor) din cadrul structurii bazei de date,-descrierealegturilordintreentitilebazeidedatesaudintreatributeleaceleiai entiti, - definirea eventualelor criterii de validare a datelor,- definirea metodelor de acces la date, - definirea aspectelor referitoare la asigurarea integritii i confidenialitii datelor, etc.Toate acestea se concretizeaz n schema bazei de date, memorat n cod intern.2. Funcia de manipulare a datelor este cea mai complexa funcie i realizeaz urmtoarele activiti: - crearea (ncrcarea) bazei de date;- adugarea de noi nregistrri;- tergerea unor nregistrri; - modificarea valorilor unor cmpuri;- cutarea, sortarea i editarea parial sau total a unei nregistrri virtuale etc. Funciademanipulareadatelorserealizeazprinintermediullimbajuluide manipulare a datelor. 3.Funciadeutilizareasigurmulimeainterfeelornecesarepentrucomunicareatuturor utilizatorilor cu baza de date. Sunt recunoscute mai multe categorii de utilizatori:-utilizatori"liberi"sauconversaionali.Acetiareprezintcategoriabeneficiarilorde informaii (utilizatori finali) care utilizeaz limbajele de interogare a bazei de date ntr-o form simplist. Ei apar ca utilizatori neinformaticieni;-utilizatoriprogramatori,careutilizeazlimbajeledemanipulare,realizndproceduri complexe de exploatare a bazei de date;- administratorul bazei de date apare ca un utilizator special i are rolul hotrtor n ceea ce privete funcionarea optim a ntregului ansamblu. 25 4.Funciadeadministrareabazeidedateaparecaofunciecomplexiestede competena administratorului bazei de date. S ne reamintim... Funciunile unui SGBD sunt: Funciadedescriereadatelorpermitedefinireastructuriibazeide date cu ajutorul limbajului de definire. Funcia de manipulare a datelor. Funciadeutilizareasigurmulimeainterfeelornecesarepentru comunicarea tuturor utilizatorilor cu baza de date. Funciadeadministrareabazeidedateaparecaofuncie complex i este de competena administratorului bazei de date. M1.U1.6. Rezumat Arhitectura unui SGBD cuprinde urmtoarele componente:- baza de date propriu-zis n care se memoreaz colecia de date; -sistemuldegestiunealbazeidedate,careesteunansamblude programe (soft) care realizeaz gestiunea i prelucrarea complex a datelor; -unsetdeprocedurimanualeiautomate,precumi reglementrileadministrative,destinatebuneifuncionria ntregului sistem; -undicionaralbazeidedate(metabazadedate),ceconine informaii despre date, structuraacestora, elemente de descrierea semanticii, statistici, documentaie etc. - mijloacele hard utilizate (comune, specializate etc.);-personalulimplicat:(categoriideutilizatori:finali- (neinformaticieni);despecialitate(administrator),analiti- programatori, gestionari, operatori).Obiectivul informaticii l constituie culegerea, verificarea, transmiterea, stocareaiprelucrareaautomataadatelorcuajutorulmijloacelor electronicedecalcul,nscopulsatisfaceriidiferitelornivelede conducerecuinformaiinecesareluriideciziilor,ncondiiide eficienta economica sporita. Obiectivele sunt: Asigurarea independentei datelor.Acest obiectiv consta n ndeplinirea cerinei ca modificrile care se fac launanumitniveldestructuradedatesnufie'vizibile'lanivelulde organizare imediat superior. Asigurareauneiredundanteminimeicontrolateadatelordin 26 baza de date. Pectposibil,fiecareinformaiesaparosingurdat.Nusunt exclusenicicazurilencaresseaccepteoanumitredundana datelor.Asigurarea unor faciliti sporite de utilizare a datelor.Asigurarea integritii datelor mpotriva unor tergeri intenionate sau neintenionate,prinintermediulunorproceduridevalidare,aunor protocoaledecontrolconcurentiaunorproceduriderefacereabazei de date dup incidente. Asigurareapartajabilitiidatelor.Partajabilitateadatelortrebuie neleasisubaspectulposibilitiidezvoltrii unoraplicaiifrase modifica structura bazei de date. Funciunile unui SDGBD sunt Funciadedescriereadatelorcarepermitedefinireastructuriibazei de date cu ajutorul limbajului de definire.Funciademanipulareadateloresteceamaicomplexfunciei realizeaz urmtoarele activiti: - crearea (ncrcarea) bazei de date;- adugarea de noi nregistrri;- tergerea unor nregistrri; - modificarea valorilor unor cmpuri;- cutarea, sortarea i editarea parial sau total a unei nregistrri virtuale etc. Funciademanipulareadatelorserealizeazprinintermediul limbajului de manipulare a datelor. Funciadeutilizareasigurmulimeainterfeelornecesarepentru comunicarea tuturor utilizatorilor cu baza de date. Sunt recunoscute mai multe categorii de utilizatori: -utilizatori"liberi"sauconversaionali.Eiaparcautilizatori neinformaticieni; - utilizatori programatori, care utilizeaz limbajele de manipulare, realiznd proceduri complexe de exploatare a bazei de date; - administratorul bazei de date apare ca un utilizator special i are rolul hotrtor n ceea ce privete funcionarea optim a ntregului ansamblu. Funcia de administrare a bazei de date apareca o funcie complex i este de competena administratorului bazei de date. M1.U1.3. Test de autoevaluare a cunotinelor 1.3.1 Care sunt obiectivele unui SGBD? 1.3.2 Care sunt funciunile unui SGBD? Rspunsurile se gsesc la sfrit la pag149 27 Unitatea de nvare1.4 Baze de date distribuite M1.U1.4 Introducere Obazadedatedistribuit(BDD)esteocolecielogiccorelatdedate partajate, distribuite fizic pe o reea de calculatoare.Unsistemdegest iunealuneibazededatedistribuite(SGBDD)esteun sistemsoftwarecarepermitegestionareaBDDifacedistribuireatransparent pentru utilizator. Sistemele de date distribuite sunt menite s rezolve problema "insulelor de informaii".Eleauaprutcaonecesitate,nspecialincazulreelelorde calculatoare,pentruasprijinigestionareadatelornsituaiacndacestease regsesc fizic n diferite puncte ale reelei. M1.U1.4. Obiectivele unitii de nvare La sfritul acestei uniti de nvare studenii vor fi capabili s:neleag ce este o baz de date distribbuit cum se proiecteaz o baz de date distribuit Durata medie de parcurgere a primei uniti de nvare este de 2 ore. Generaliti PrimelesistemedebazededatedistribuiteaufostINGRES/STAR,versiune distribuitaluiINGRES,SQL*STARversiunedistribuitaluiORACLEiR*versiune distribuita a lui DB2. Sistemulfizic(reeaua)careconstituiesuportuluneibazededatedistribuitepoatefi formatdincalculatoarepersonale,minicomputere,staiidelucru,etc.toatelegatenreeai numite generic site-uri. Putemreformuladefiniiadelanceputspunndcaunsistemdebazededate distribuiteconstdintr-ocoleciedesite-uri,fiecareputndparticipalaexecutarea tranzaciilor care acceseaz datele de pe un site sau de pe mai multe site -uri. Printrecerinelepecaretrebuiesleasigureunsistemdebazededatedistribuite menionm:autonomialocalanorganizareaiprelucrareadatelor,neutilizareaunei centralizriaevideneiiadatelor,posibilitateadelucrucontinuualsite-urilorindependent deschimbrileinconfiguraiiledelucru(adugarisaueliminaridesite-uri),independena localizriiifragmentriidatelor(transparenafizic),posibilitidereplicare(copiere)i independenacopiilor,prelucrareadistribuitacererilor,administrareadistribuita tranzaciilor,independenadehardware,desistemuldeoperare,dereeaidesistemulde gestiune a bazelor de date. 28 UnSGBDDconstdintr-osingurbazdedatecareestedescompusnfragmente, eventual unele fragmente sunt multiplicate, i fiecare fragment sau copie se pastreaz pe unul saumaimultesite-uri,subcontrolulunuiSGBDlocal.Fiecaresiteestecapabilsaproceseze interogriutilizatornregimlocal,independentderestulreelei,sauestecapabilsparticipe laprocesareaunordatesituatenaltesite-uridinreea.PentruaspunecunSGBDeste distribuit trebuie s existe cle puin o cerere global.Tranzaciilentr-obazadedatedistribuitsuntclasificatentranzaciilocalei tranzacii globale dup site-urile pe care le solicit excutarea lor. O configuratie pe retea reprezinta o baza de date distribuita daca diversele site-uri sunt "constiente"deexistentacelorlaltesite-uriidacafiecaresiteoferaunmediuincaresepot executa tranzactii locale i globale. Avantajele distribuirii bazelor de date: -sistemuldistribuitsemodeleazcelmaibinepestructuraorganizaionalamultor organizaii,avandnvederecamultecompaniisuntlocalizate"distribuit"dinpunctde vedere geografic -datele sunt partajabile dar administrarea lor se bucur de un grad nalt de autonomie local-disponibilitateabazeidedateesteevidentmaibundectncazulcentralizat.Dacse semnaleazuneleerorisau"deri"desistemlanivellocalsistemul]n ntregimepoates continue s funcioneze n condiii satisfctoare -fiabilitateasistemuluiestembuntit.Sepotrefacerapidfiieredistruseutiliznd replici aflate pe alte site-uri -performanelenprelucrareadatelorsembuntescprinposibilitateaprelucr[riin paralel a unor interog[ri -unsistemdistribuitoferavanatjeeconomicedaclumnconsiderarecosturile implementriiintreineriiuneireelefadecosturilecorespunztoarealeunuisistem centralizatdeputerecomparabildeprelucrare.Costuriscazutesemaiobtindacase realizeazaprelucrrilocalectmaimulte(ncazsistemuliaplicaiilepermitacest lucru).Deasemeneaestemultmaiconvenabilsse"ajusteze"oreeadecalculatoarela nevoile organizaiei (dac[ de exemplu este necesar adugarea unor site-uri n plus) dect un calculator central de putere asemntoare -capacitateadegestionaremodularasistemuluipermiteextensiialeacestuiasau rezolvareaunor"cderi"parialefrsseafectezepreatare(uneorifraseafecta deloc) mersul activitilor pe ansamblul sistemului distribuit.Printre dezavantajele distribuirii amintim complexitatea crescuta a unui astfel de sistem.Acesta este un dezavantaj major din care decurg unele dezavantaje "consecinta" dintre care:-este mai greu de gestionat i de implementat un sistem distribuit-costurile legate de un astfel de sistem sunt mult mai mari decat in cazul centralizat. Deja la nivelulproiectariiiimplementariisistemuluiestenecesarmaimulttimpipersonal specializat.Ambelelucrurinecesitacosturimaimariinbani.Laacestecosturisepot adaugaaceleacarevindinnecesitateaasigurariiechipamentelorhardwareperformantei asoft-uluinecesar.Deasemenea,incazulexploatariisistemuluilacosturileobisnuitese vor adauga costuri destul de ridicate de comunicatii.-potential marit de erori. La erorile obisnuite in lucrul cu baze de date se pot adauga o serie de erori cum ar fi de exemplu cele generate de algoritmi distribuiti.29 -este necesara o procesare suplimentara care se datoreaza schimburilor de mesaje intre site-uri i a coordonarii acestora in general -securitateaunuisistemdistribuitestemaigreudeasiguratdecatincazulunuisistem centralizat. Datele sunt mai usor disponibile unor persoane neautorizate deoarece se poate incercaacceslaeleprinintermediulaccesuluiintrecalculatoare.Controlullanivelfizic administrativ are mai putina pondere decat in cazul unui sistem centralizat.-intergitateadatelorestedeasemeneamaigreuderealizatintr-unsistemdistribuit. Integritatea se exprima de obicei in termeni de restrictii (reguli, conditii) pe care trebuie sa le verifice datele din baza de date. Datorita costurilor mari de comunicatii (in timp i bani) uneori se renunta la verificarea unor reguli in detrimentul consistentei bazei de date.-lipsastandardelor.Nusepoatevorbideolipsatotaladestandardedar,lucrulcusisteme dedatedistribuiteincanuarelabazastandardeinternationaleunanimacceptate.Deaici decurgdezavantajecumarfi:problemedecomunicarecaresepundeoarecestandardele de comunicatii i protocoalele deacces la date inca nu au standarde fixate i acceptate pe scaralarga.Nuexistafoartemultaexperientaprivindlucruldistribuitiproiectarea, gestionarea i exploatarea unui sistem distribuit sunt mai dificile decat in cazul centralizat.-unaltdezavantajpecareilmentionamaiciilconstituieposibilitateaaparitieiunuiflux maredeinformatiiintresite-uriideaicinecesitatearezolvariiunorproblemecumarfi sincronizareamesajelor,detectareaicorectareaunorperturbari,eliminareaunor inconsistente datorate redundantelor, etc. Functiile i arhitectura unui SGBDD Enumeram mai jos functiile principale ale unui SGBDD:-toate functiile pe care le atribuim unui SGBD centralizat-saextindacomunicatiilepentruafurnizaacceslasite-uriledinreteaisapermita transferul de date i realizarea interogarilor -sagestionezeundictionardedateextinspentrudetaliilegatedemoduldedistribuirea datelor -sa permita i sa sustina procesarea distribuita a interogarilor-safacilitezeuncontrolextinsalconcurenteiinscoplmentineriiunuigradsatisfacatoral consistentei datelor -saofereserviciiderecoveryextinsecaresarezolvecaderialesite-uriloriale comunicatiilor ArhitecturaANSI-SPARCpetreiniveleauneibazededatedistribuiteesteredatagraficin paginaurmatoare,Fig7.1.Dammaijoscatevaexplicatiireferitoarelauneleelemente prezente in schema: -schemaconceptualaglobalaesteodescrierelogicaaintregiibazededate,faraase evidentiaaspectuldistribuit.Laacestnivelsedefinescentitatile,relatiile,restrictiilede integritate, informatiile generale de securitate a datelor.-schemeledefragmentaredescriumodelullogicalpartitionariibazeidedateiaralocarea descrie repartizarea fragmentelor i a eventualelor copii ale acestora pe site -urile retelei -schemelelocaledemapareredaufragmenteledinschemadealocarein"obiecte"externe bazeidedatelocale.AceastadescriereesteindependentadeSGBD-ulalesidatorita acestui fapt se poate vorbi de SGBD heterogene.30 CaoparantezamentionamaiciclasificareaSGBD-urilordistribuiteinheterogenei omogene. SGBD omogene reprezinta situatia cand pe toate site-urile din retea este hardware similar, sistem de operare identic si, cel mai important, SGBD local identic.ncazulSGBDheterogeneexistamaimultesituatiidupacumdiferadotareahardware, sistemeledeoperaresi/sauSGBD-urileutilizatelocalpesite-uri.Diferentelepotfiimpinse pana la a avea structuri ale bazei de date diferite (date de modele de date diferite) dar, evident, lucrul in acest caz este destul de greoi i este supus multor limitari.n cadrul unui SGBDD putem identifica urmatoarele componente:-o component local SGBD (LSGBD) -o component de comunicaii de date (CD) -undicionardedateglobal(DDG).Acestdicionarareaceeaifuncionalitatecaiund dicionar de date n cazul SGBD centralizat dar conine informaii suplimentare referitoare lafragmentareilaalocareadatelor.iDDGpoatefifragmentatireplicatcaoricealt informaie din baza de date distribuit -componente de SGBD distribuit (SGBDD) Proiectarea unei baze de date relaionale distribuite Proiectareacorectauneibazededaterelaionaledistribuitenecesit,pelngcerinele cunoscute pentru sistemele centralizate, i realizarea urmtoarelor: -fragmentareadatelorinformaiilepotfipartitionatenfragmentecaresuntapoistocate pe diferite site-uri n reea -replicarea se pot realiza copii ale diferitelor relaii sau ale fragmentelor-alocarea fragmentelor i a replicilor pe diferite site-uri Definirea fragmentelor i alocarea acestora pe site-uri au ca obiective: -realizarea, pe cat posibil a accesului in regim de referinte locale. Acolo unde este necesar i unde permite aplicaia se recomanda utilizarea de copii ale fragment elor -obtinerea unei fiabilitati i a unei disponibilitati deosebite ale bazei de date prin utilizarea optima a replicarii fragmentelor -realizareaunorparametrideosebitideperformanta.Dacasealocaprostdatelepesite-uri se ajunge fie la suprasolicitarea unui site (loc ingust) fie la utilizarea resurselor la un nivel inferior -optimizarea capacitatii i a costurilor de stocare.Capacitatea i costuril de stocare trebuie puse in balanta cu tendinta de a avea referinte locale, deoarece au efecte contrare.-optimizareacosturilordecomunicare.Aicisuntdeluatinconsideraremaialescosturile interogarilor intre site-uri. Trebuie sa se aiba in vedere ca, daca se pot micsora costurile de regasireatuncicandreferintelesuntmaialeslocale(saucandfiecaresitearepropriile copii ale datelor) in schimb actualizarile in aceeasi situatie pot crete costurile foarte mult (si riscul obtinerii inconsistentei) deoarece trebuie sa fie realizate asupra datelor de la toate site-urile. Alocarea datelor 31 Se cunosc patru strategii de alocare a datelor ntr-o baza de date relaional distribuit: 1.centralizat Baza de date se afl n ntregime pe un singur site din reea i este gestionat de un singur DBMS.Spunemnacestcazcbazadedateesteprocesatdistribuit,eadefaptnumai este o baz de date distribuit in adevaratul sens al cuvntului. Dezavantajele sunt mai ales costurilemaridecomunicaiiiofiabilitateiodisponibilitatefoartesczute,avndn vedere c orice eroare care blocheaz accesul la baza de date, practic paralizeaz ntreaga activitate n reea pe aceast direcie. 2.fragmentat (partiionat) Bazadedateestepartiionatnmaimultefragmentedisjunctecaresuntstocatepe diverse site-uri. Comentarii: -aceasta paritionare a datelor poate mbuntti frecvena referinelor locale -dac nu exist replici ale fragmentelor, costurile de stocare sunt reduse-fiabilitatea i disponibilitatea sunt sczute dar nu aa de mici ca n cazul centralizat-dac datele sunt distribuite corect, costurile de comunicare pot fi relativ sczute 3.replicat complet Pe fiecare site se gseste o copie complet a bazei de date. Comentarii:-eficiena referirilor locale, fiabilitatea i disponibilitatea sunt maxime -costuriledestocaresuntnschimbielefoartemari,lafelsunticosturilede actualizare 4.replicat selectiv Aceasta strategie este o combinaie intre partiionare, replicare i centralizare cu scopul de a se cumula, pe cat posibil, avantajele fiecrei strategii i s se elimine dezavantajele.Definirearepliciloriafragmentelor,precumialocareaacestoratrebuiesasebazezepe moduldeutilizareadatelordinbazadedate.Infazadeanaliza,laproiectareabazeidedate trebuiesasetinacontdecelemaifrecventutilizateaplicaiideoarecenusepoaterealizao alocare care sa optimizeze toate aplicaiile simultan. Printre criteriile care duc la decizia corecta de alocare a bazei de date:-frecventa cu care se ruleaza o aplicaie -site-urile de la care se ruleaza cel mai frecvent aplicaia -modul de lucru al tranzactiilor executate de aplicaie i tipurile de acces la date -etc. Fragmentarea La baza fragmentarii bazei de date exista, printre altele, urmatoaele motivari:-mod de utilizare ingeneral intr-o aplicaie utilizatorii au acces mai mult la view-uri decat la intreaga baza de date -eficienta se doreste ca datele sa fie stocate acolo unde sunt utilizate mai frecvent-paralelism o tranzactie poate fi divizata in mai multe subinterogari care opereaza pe fragmente in paralel i astfel se castiga t imp 32 -securitatedatelecarenusuntnecesaresuntstocateinaltaparte,decinusuntla dispozitia accesului neautoarizat Dezavantajele lucrului cu fragmente ale bazei de date:-performantelepotfidestuldescazutedacasuntnecesaredateceaparindiverse fragmente -controlulintegritatiidatelorestemaidificildacadateleidependentelefunctionale sunt fragmentate i localizate pe diferite site-uri Reguli de baz care duc la o fragmentare corect a bazei de date:1.completitudine dac relaia R este descompus n fragmentele R1, R2, ,Rn, trebuie luate msuri care s previn pierderea de informaii2.reconstrucie s fie posibil n orice moment s se refac relaia R de la care s -a pornit cu fragmentarea. Aceasta regul conserv dependenele funcionale.3.disjunciedacdatadiaparenfragmentulRiatuncinuestepermissaparnnici unaltfragment.Delaaceastregulseadmitedoaroexcepie,cazulcndorelaie este fragmentat pe vertical. Tipuri de fragmentare: -pe orizontal -pe vertical -combinat Fragmentarea pe orizontal: Ne putem imagina c o tabel se fragmenteaz orizontal ca mai jos: Unfragmentaluneirelaiipartitionatepeorizontalconstdintr-osubmulimeatuplelor relaiei respective. Un fragment orizontal se produce prin selecie: FiecaretupludinrelatiaRaparentr-unanumefragment,osingurdat.Dacsedorete reconstrucia relaiei, se utilizeaz reuniunea pentru a obine relaia R iniiala.R= R1R2Rn In general fragmentele unei relaii R sunt disjuncte.Fragmentarea pe vertical Unfragmentverticaldintr-orelaieconstadintr-orelaiecarearecaatributeosubmulimea atributelor relaiei iniiale. Un fragment vertical se produce prin proiecie:Dac S1_R i S2_R atunci) (11R rSH =i) (2 2R rSH = . 33 Completitudineaesteasiguratprinfaptulcfiecareatributaparecelpuinntr-unadin submulimile S1 i S2. Reconstrucia relaiei iniilale se realizeaz prin jonciune natural.2 1) ( r X r R rN=Aadar la descompunerea relaiei iniiale n fragmente trebuie s se in seama de regulile care asigur o descompunere fr pierderi la jonciune.Incazuldescompuneriipeverticalnuesteposibilsserealizezeodisjuncietotal.Se admiteexistenaunoratributecomune,ianumeaatributelorcareformeazcheileprimare (respectivcheileexterne).Fragmenteleverticalesestabilescprindeterminareaafinitilor ntre atribute, nc din faza de analiz.Fragmentarea combinat (mixt, hibrid, compus) 1.fragmente verticale fragmentate orizontal Expresiacorespunzatoarenalgebrarelaional(pentrufiecaredreptunghidinfigurademai sus) este:)) ( (,...,1RnA A P H o 2.fragmente orizontale fragmentate vertical Expresiacorespunztoarenalgebrarelaional(pentrufiecaredreptunghidinfigurademai sus) este:)) ( (,...,1RP A An o H Transparena n SGBDD Primaregula,consideratreguladebazainsistemeledistribuite,estecerintaca aspectul distribuit trebuie sa fie transparent pentru util izator. Cualtecuvinteutilizatorulnutrebuiesa-sideaseamacalucreazacuobazadedate distribuita,decinutrebuiesaaibacunostinteinpluscasautilizezeresurseleuneiastfelde baze de date. nrealitatetransparenapoatefirealizatdoarntr-oanumitmsur.Tipuride transparen: 1.transparena distribuirii 2.transparena tranzaciilor 3.transparena performanelor Transparena distribuirii 34 Dacserealizeaztransparenadistribuirii,utilizatorulpercepebazadedatecapeo entitate unitar din punct de veder logic. Acest tip de transparen se poate descompune n dou aspecte: utilizatorul nu trebuie scunoascfaptulcexistfragmentareadatelor(transparenafragmentrii)sauutilizatorul nu tie de localizarea datelor pe reea (transparena localizrii). Transparenafragmentriiestecelmainaltgraddetransparena.Utilizatorulse adreseazcuinterogribazeidedatecaicndarfilocalizatcentralizat,decinutrebuies se preocupe de existena fragmentelor. Transparena fragmentrii este strns legat de acordarea numelor (identificatorilor) n cadrulbazeidedatedistribuite.intr-obazdedatedistribuit(caincazulcentralizat) numele diferitelor"obiecte" trebuie s fie unic. Dou site-uri nu pot conine obiecte cu nume identice.Sunt cateva solutii posibile: 1.Sepoatecreaunservercentraldenumecarearemenireasasigurecanumeledatein aplicaiidistribuitesuntnumeunicepetoatabazadedate.Aceastaabordareare dezavantajelecasepierdeautonomialocalaasite-urilor,sepoateajungelao suprasolicitareaserveruluidenume(secreeazaunasa-numitlocingust-"bottleneck")i disponibilitatea bazei dedate esteredusa (daca serverul de nume iese dinuz temporar, se blocheaza accesul la date) 2.Alternativalasolutiademaisusestesaserecurgalaprefixareaobiectelorcuun identificator de site, de fragment, de copie. Exemple Prinnotatias1.client.f3.c2sepoatedesemnacopiaadouaa fragmentului 3 a tabelei client care se afla pe site-ul s1. Consecinta cea mai grava a acestui mod de a numi obiectele este pierderea completa a transparentei.Inaceastasituatiemaiexistaunmodprincaresepoate"indulci"situatia:se utilizeaza alias-uri. De exemplu s1.client.f3.c2 poate avea ca alias numele client_local pentru utilizatorii site-ului s1. Transparentalocalizariireprezintaunnivelmediudetransparenta.Inaceastasituatie utilizatorulstiecumestefragmentatabazadedatedarnustieundesuntplasatediferitele fragmente sau copii ale acestora. n interogari vor aparea numele fragmentelor dar nu se vor face referiri la localizare. O interogare poate avea un format asemanator cu cel de mai jos:select A1,An from f1 where conditie1 union select A1,An from f2 Avantajulmajorincazuldemaisusconstainfaptulcasepoateoricandreorganiza baza de date (ca locatii) fara ca aplicaiile ce o utilizeaza sa trebuiasca modificate.35 Transparentamapariilocalereprezintacelmaijosnivelaltransparenteidistribuite. Utilizatorul trebuie sa specifice i numele fragmentelor i localizarea datelor.Transparena tranzaciilor Acesttipdetransparenaasigurfaptulctoatetranzaciiledistribuitepstreaz integritatea i consistena BDD.O tranzacie distribuit acceseaz date stocate la mai mult de o locaie n reea. Fiecare tranzacieedivizatansub-tranzacii,cteunapentrufiecaresiteaccesat.Sub-tranzaciilese execut n paralel pe site-uri i n mod concurent pe fiecare site. SGBDD are sarcini deosebite n legtur cu gestionarea tranzaciilor distribuite dar acestea nu vor fi tratate in acest capitol.ncadrultranspareneitranzaciilorsetrateaznmoddeosebittransparena concureneiitransparenaerorilor.SGBDDofertransparenconcureneidacrezultatele tuturortranzaciilorconcurente(distribuitesaunu)suntexecutateindependentisuntlogic echivalentecurezultateleobtinuencazulncaretranzaciilesuntexecutatepernd,ntr-o ordine serial arbitrar. Transparenaerorilornecesitiunmecanismderecoverycarenesasigurec tranzaciilesecomportatomicnfaaerorilor:orisuntexecutatetoateoperaiileunei tranzaciioriniciooperaienuesteexecutat.Odatceotranzacies-aexecutat, transformrile operate de ea asupra bazei de date sunt durabile (permanente).Transparena performanelor Transparenaperformanelorseasigurprincerinacasistemulconsideratsaib performane comparabile cu ale unui sistem centralizat. n aceast situaie trebuie ca SGBDD s determine strategia cea mai eficient de a executa fiecare interogare n parte.n acest scop unDQP(DistributedQueryProcessor)mapeazaocererededatentr-osecvenordonatde operatiiasuprabazeidedate.DQPdecidecefragmentseacceseaz,cecopieseutilizeaz, care locaie se utilizeaz. DQP produce o strategie de execuie care este optimizat relativ la o funcie de cost. Costul asociat cu o interogare distribuita include:-timp de acces (input/output) la accesarea datelor fizice pe suportul respectiv, - timp CPU la executatrea operatiilor asupra datelor in memoria principala,-costuri de comunicatii asociate cu transmiterea datelor prin retea. M1.U1.6. Rezumat Obazadedatedistribuit(BDD)esteocolecielogiccorelatdedatepartajate, distribuite fizic pe o reea de calculatoare.Tranzaciilentr-obazadedatedistribuitsuntclasificatentranzaciilocalei tranzacii globale dup site-urile pe care le solicit excutarea lor. Proiectareacorectauneibazededaterelaionaledistribuitenecesit,pelng cerinele cunoscute pentru sistemele centralizate, i realizarea urmtoarelor:-fragmentarea datelor informaiile pot fi partitionate n fragmente care sunt apoi stocate pe diferite site-uri n reea -replicarea se pot realiza copii ale diferitelor relaii sau ale fragmentelor-alocarea fragmentelor i a replicilor pe diferite site-uri 36 Secunoscpatrustrategiidealocareadatelorntr-obazadedaterelaional distribuit: centralizat fragmentat (partiionat) replicat complet replicat selectiv Tipuri de fragmentare: -pe orizontal -pe vertical -combinat Primaregula,consideratareguladebazainsistemeledistribuite,estecerintaca aspectul distribuit trebuie sa fie transparent pentru utilizator.Cu alte cuvinte utilizatorul nu trebuie sa-si dea seama ca lucreaza cu o baza de date distribuita,decinutrebuiesaaibacunostinteinpluscasautilizezeresurseleunei astfel de baze de date. nrealitatetransparenapoatefirealizatdoarntr-oanumitmsur.Tipuride transparen: -transparena distribuirii -transparena tranzaciilor -transparena performanelor M1.U1.4. Test de autoevaluare a cunotinelor 1.4.1 Ce este o baz de date distribuit? 1.4.2 Care sunt avantajele unui sistem distribuit? 1.4.3 Cum se poate face proiectarea alocrii datelor? 1.4.4 Cum se face o fragmentare corect?1.4.5 Ce este fragmentarea? Rspunsurile se gsesc la sfrit la pag 149 37 Modulul 2. Modele de descriere a datelor Cuprins IntroducereObiectivele modulului U2.1 Generaliti U2.2 Modelare E-R (Entity-Relaionship)
Introducere Numimmodeldedateocolecieintegratdeconceptepentru descrierea datelor, de relaii ntre date i de restricii asupra datelor, toate ntr-o organizare unitar. Unmodeldedateesteoabstracie.Unmodeldedatearen principalroluldeafurnizaconcepteledebazinotaiilecares permitproiectaniloriutilizatorilorbazeidedatescomunicen mod neambiguu legat de modul de organizare a datelor. M3. Obiectivele modulului La sfritul acestui modul studenii vor fi capabili s:aleag ce model de date vor folosi pentru baza concret de date disting modele la diferite nivele descrie structura bazei de date cu ajutorul unui model grafic s aleag cheia unei relaii n mod optim 38 Unitatea de nvare 2.1. Generaliti M2.U2.1. Introducere Un model de date cuprinde trei pri: (1) opartereferitoarelastructur,careconstntr-unsetdereguliceimpun modul de alctuire al bazei de date; (2) o parte referitoare la manipularea datelor, care definete tipul de operaii care suntpermiseasupradatelor.Suntincluseaicioperaiilecaresuntutilizate pentruaactualizasauaregsidatelenbazadedateprecumioperaiile pentru schimbarea structurii bazei de date;(3) opartereferitoarelaintegritateadatelor,partecarecuprinderegulide integritate care asigura acurateea datelor. M2.U2.1. Obiectivele unitii de nvare La sfritul acestei uniti de nvare studenii vor fi capabili s:aleag ce model de date vor folosi pentru baza concret de date disting modele la diferite nivele Durata medie de parcurgere a primei uniti de nvare este de 1 or. Modele de date se pot realiza pentru fiecare nivel de abstractizare. Astfel putem vorbi de:-modelexterndedate(carereprezintaa-numituluniversaldiscursului,adicpunctulde vedere al utilizatorului); -model de date conceptual (care reprezint structura logica a bazei de date, independenta de sistemul de gestiune ales); -modeldedateintern(carereprezintschemaconceptualantr-unmodncarepoatefi perceputa de SGBD). Dintrediverselemodelepropusenliteraturadespecialitatemenionamaici:modelelede datebazatepeobiecte,modelelededatebazatepenregistrare,ambelemodelefiindutilizate pentrudescriereaorganizriidatelorlanivelexterniconceptual.Trebuiesmenionami modelele fizice de date, care descriu dat ele la nivel intern. AcestemodeleutilizeazconceptespecificemodeluluiE-Rianume:entiti,atribute, relaii.Celemaicunoscutemodelededatesunt:modelulentitate-relaie,modelulsemantic, modelul funcional, modelul orientat obiect. Modele de date bazate pe nregistrare ntr-un astfel de model baza de date consta dintr-un numr de nregistrri de format fix detipurieventualdiferite.Fiecaretipdenregistraredefineteunnumrfixdecmpuri, 39 fiecare fiind n general de lungime fixa. Exista trei tipuri importante de modele de date bazate penregistrare:modeluldedaterelaional,modeluldedatereeaimodelulierarhicde date. Modelele ierarhic i reea au fost dezvoltate mai nti, modelul relaional aprnd cu o ntrziere de un deceniu. Modele fizice de date Acestemodeledescriuefectivmodulncaredatelesuntmemoratencalculator,la nivel fizic. Informaia furnizata de aceste modele este cea referitoare la nregistrrile fizice, la ci de acces, la organizarea nregistrrilor, etc. Seconsideracschemaconceptualastalabazastructurriiuneibazededate.O schemaconceptualacompletaibinegnditpermiteoreprezentareinternaeficientai permite realizarea de view-uri utilizator fr dificultate. Modelareaconceptualasauproiectareaconceptualaabazeidedateesteprocesulde construireaunuimodelcaresreprezintemodulncareesteutilizatainformaiadectre beneficiar,reprezentarecareesteindependentadedetaliiledeimplementarecumarfi programele de aplicaie, limbajele de programare, SGBD-ul utilizat sau orice alte consideraii fizice. Un astfel de model se numetemodel de date conceptual sau model logic. Modelare E-R (Entity-Relaionship) ModelulE-R(Entity-Relaionship)esteunmodelconceptualdenivelnalt,dezvoltat deChenn1976.PrimeleideilegatedeutilizareamodeluluiE-Rlaproiectareauneibazede dateaufostexpusedeChen(1977)iaufostcontinuatedeSakai(1980).Conceptelede specializareigeneralizareaufostintrodusedeSmithiSmith(1977)iaufostutilizate ulteriordeLenzeriniiSantucci(1983)ladefinirearestriciilordecardinalitate.Avndn vederelimitelemodeluluiE-R,vomdiscutaunmodelmaicomplex,modelulEE-Ri conceptul principal asociat acestuia, conceptul de specializare/generalizare. M2.U2.1. Rezumat Putem vorbi de: model extern de date (adic punctul de vedere al utilizatorului); modeldedateconceptual(carereprezintstructuralogicaabazeidedate, independenta de sistemul de gestiune ales); modeldedateintern(carereprezintschemaconceptualantr-unmodncare poate fi perceputa de SGBD). Modelelededatebazatepeobiectesunt:modelulentitate-relaie,modelul semantic, modelul funcional, modelul orientat obiect.Exista trei tipuri importante de modele de date bazate pe nregistrare: modelul de date relaional, modelul de date reea i modelul ierarhic de date. Modelefizicededatedescriuefectivmodulncaredatelesuntmemoraten calculator, la nivel fizic. 40 M2.U2.1. Test de autoevaluare a cunotinelor 2.1.1 Care sunt modele de date bazate pe nregistrare?Rspunsurile se gsesc la sfrit la pag 152 41 Unitatea de nvare 2.2 Modelare E-R (Entity-Relaionship) M2.U2.2. Introducere ModelulE-Rconstituieunmoddereprezentareabazelordedaterelaionale ideaceeaesteuninstrumentutilnproiectareaacestora.nacestcapitol,vom descrieconcepteleprimarecarestaulabazamodeluluiE-R,dupcarevom identificaproblemelecarepotapreaprinutilizareaunuiastfeldemodel.Vom discutadeasemeneaproblemelegenerateprinutilizareamodelulE-Rla reprezentarea unor aplicaii. M2.U2.2. Obiectivele unitii de nvare La sfritul acestei uniti de nvare studenii vor fi capabili s:descrie structura bazei de date cu ajutorul unui model grafics aleag cheia unei relaii n mod optim Durata medie de parcurgere a primei uniti de nvare est e de 3 ore. Concepte de bazConcepteleprimarealemodeluluiE-Rinclud:tipdeentitate(mulime-entitate),tipde relaie (mulime-relaie), atribute. Numim entitate un obiect sau un concept ce se poate identifica n mod unic.NoiuneadeentitateesteunconceptdebazancadrulmodeluluiE-R.Eareprezint'obiecte' concrete (cu existenta fizica) sau abstracte (cu existenta conceptuala). Exemple PopescuIon,posesoralbuletinuluideidentitateseriaABC,numrul:444555 este o entitate deoarece identifica n mod unic o persoana n acest univers. Ce este studentul Ion Ion? Ce este grupa 7172? O entitate care reprezint un obiect ceva mai abstract poate fi, de exemplu, un cont la banca identificabil n mod unic prin numrul sau i numele bncii.Numim tip de entitate sau mulime-entitate un set de entiti de acelai tip. Exemple Mulimea tuturor persoanelor care sunt studeni ai Facultii de tiine pot defini mulimea-entitate sau tipul de entitate student. Mulimea tuturor profesorilor Facultii de tiine formeaz ce?42 Tipuldeentitatereprezintomulimede'obiecte'ceaparinlumiirealeicaresuntdescrise de aceleai proprietatea.Orice obiect care aparine unui tip deentitate i care este identificabil n mod unic este numit simplu entitate. (se mai ntlnesc denumirile:apariia unei entiti sau instana unei entiti). Un tip de entitate conine mai multe entiti. O baza de date este o colecie de tipuri de entitat e din care fiecare conine un numr neprecizat de entiti de acelai tip.Tipurile de entitate nu sunt neaprat disjuncte. Aceasta nseamn c pot exista entiti care s aparin mai multor tipuri de entitate. Exemple Sepotdefiniurmtoareletipurideentitate:profesor,corespunztortuturor cadrelordidacticealeFacultiidetiineistudent,corespunztortuturor studeniloraceleiaifaculti.Seobservauorcpotexistastudenicaresunt nacelaitimpicadredidactice(studenilamastercaresuntpreparatorisau asisteni). Artaicnicitipuriledeentitatepersonalauxiliariprofesornusunt disjuncte. Un tip de entitate se identific printr-un nume i o list de proprietatea. O baz de date conine n general mai multe tipuri de entiti. Numim atribute proprietile ataate unui tip de entitate. Exemple Entitateastudentpoatefidescrisdeatributele:nume_student, prenume_student, data_nasterii, sex, adresa, telef on, numr_matricol, grupa. Cum ai descrie entitatea materii? Prindomeniulatributuluinelegemmulimeavalorilorcarepotfiatribuiteunuiatribut simplu. Atributele unei entiti conin valorile care descriu fiecare entitate i cu ajutorul crora fiecare entitate se poate identifica n mod unic. Aceste valori reprezint cea mai mare parte a datelor memorate ntr-o baza de date. Domeniulunuiatributnusepoatedefinintotdeaunafoarteexact.Deexemplu,atributul nume_student trebuie s fie un ir de caractere dar poate lua ca valori doar un nume de familie existent.Uneledomeniisepotdescompunenmaimultesubdomenii.Deexemplu data_naterii se poate descompune n subdomeniile: an, lun, zi.Ingeneralputemconsideracfiecareentitateestereprezentabilacuajutoruluneimulimide perechi de forma(nume_atribut, valoare_atribut), cate o pereche pentru fiecare atributataat tipului de entitate corespunztor. 43 Exemple Oentitateatipuluideentitatestudentpoatefireprezentatademulimea: {(nume_student,Popescu),(prenume_student,Ion),(data_nasterii,15.11.1981), (sex,masculin),(adresa,B-dulGarii,12,Brasov,cod2200,judetulBrasov), (telefon, 068/444555), (numr_matricol, 31455), (grupa, 7211)} Reprezentai o entitate a tipului de entitate materii.Atributelesepotclasificansimplesaucompuse;cuosingurvaloaresaucumaimulte valori; respectiv derivate. Numimatributsimpluoriceatributcarearedoarosingurcomponentioexisten independent.Aceste atribute nu se pot diviza n mai multe atribute distincte. Ele se mai numesc i atribute atomice. Exemple Atributul sex corespunztor tipului de entitate student. Artai alte atribute simple ale tipului de entitate materii. Numimatributcompusoriceatributcarearemaimultecomponente,fiecarecuoexisten independent. Aceste atribute se pot diviza n general n mai multe atribute simple. Exemple Atributuladressepoatedescompunenatributele:strada,numr,ora, cod_potal i jude. Artai alte atribute compuse. Decizia ca un atribut compus s se descompun n mai multe atribute simple este dependent de modul n care se va utiliza acel atribut: pe componente, sau ca un ntreg.Numimatributcuosingurvaloareoriceatributcarepoateluacateosingurvaloare pentru fiecare entitate. Majoritatea atributelor sunt atribute cu o singur valoare. Numimatributcumaimultevalorioriceatributcarepoateluamaimultevaloripentru fiecare entitate. Pentruatributelecumaimultevaloritrebuieprecizatenumrulminiminumrulmaximde valori pe care le poate lua atributul respectiv. Exemple Atributultelefonpoatefiunatributcumaimultevalori.nacestcazsepoate limita de exemplu numrul numerelor de telefon la care poate fi gsit studentul la 44 minim0i lamaxim3. Decisepotstabilinumrulminiminumrulmaximde valori pe care le poate lua atributul. Artai alte atribute cu mai multe valori. Numim atribut derivat orice atribut a crui valoare se poate calcula din unul sau mai multe alte atribute. Aceste atribute nu trebuie neaprat s descrie entitatea creia ii corespunde atributul derivat. Exemple Valoareapentruatributulvrstaestederivatdinvaloareaatributului data_naterii i din data curent. Artai alte atribute derivate. Valoareaatributuluinumrul_total_de_entitisepoatecalculanumrndentitile nregistrate. S ne reamintim... entitate care reprezint un obiect ceva mai abstract poate fi, de exemplu, un cont la banca