Carte

2,620 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,620
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
43
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Carte

  1. 1. PerenitateaConceptelor Promovate de BAZELE DE DATE Editia I-a Alexandru Lelutiu Cluj -Napoca 2002
  2. 2. Copiilor nostri, Smaranduca, Cristi si Raducu Sa învete sa fie curajosi. Tuturor celor apropiati prin preocupari, care, datorita interesului acordat disciplinei de Baze de Date, m-au încurajat sa-mi exprim parereape un tarâm ce depaseste Tehnica si Ingineria, patrunzând în misterul Informatiei, fara de care pentru noi n-ar exista nimic din ceea ce ar putea exista si fara noi, si nici chiar noi.
  3. 3. DIALOGSOCRATE – Suntem de acord, nu-i asa, ca pentru a ne aminti un lucru, trebuie sa-l fi cunoscut înainte.SIMMIAS – Intru totul de acord.SOCRATE – Putem oare a conveni în aceasta privinta ca daca cunostinta ne vine într-o anume maniera, aceasta e o reminiscenta. Iata ce înteleg prin aceasta anume „maniera”: Daca un om care a vazut, a auzit a perceput un lucru într-o maniera diferita decât a lua cunostinta de el, ci gândindu-se la altul, care nu apartine aceluiasi domeniu de cunostinte, nu-i asa ca nu avem drept de a spune ca si-a reamintit lucrul la care s-a gândit?SIMMIAS – Cum asta?SOCRATE – Sa luam un exemplu: Una e cunoasterea unui om si alta e cunoasterea unei lire.SIMMIAS – Fara îndoiala.SOCRATE – Ei bine, n-ai spus tu ce trezeste într-un prieten vederea unui mantou sau a oricarui alt lucru de care amicul sau are obiceiul sa se serveasca? In acelasi moment în care el recunoaste lira el receptioneaza în gândirea sa imaginea prietenului caruia îi apartine acea lira. Si aceasta e o reminiscenta ca si atunci când vazându-l pe Simias îti amintesti de Kebes. Si aici pot sa citez mii de exemple de acest fel.SIMMIAS – Intr-adevar mii, pe Zeus!SOCRATE – Nu este în acest caz un soi de reminiscenta, mai ales când e vorba de lucruri pe care timpul sau neatentia ne-a facut sa le uitam?SIMMIAS – Sigur ca da.SOCRATE – Dar, vazând un cal sau o lira, nu pot oare sa-mi amintesc de un om, si vazând portretul lui Simias sa-mi amintesc de Kebes?SIMMIAS – Desigur.SOCRATE – Si vazând portretul lui Simias sa-mi amintesc de însusi Simias?SIMMIAS – Desigur, se poate Socrate! Platon Dialoguri / Fedon „Doctrina aducerii aminte” (extras)
  4. 4. Rostirea evocata poarta o patina de aproape doua milenii si jumatate. Ea a fost transcrisa de catre Profesorul francez Jean Raymond Abrial, de laUniversitatea din Grenoble, în deschiderea prezentarii conceptului de Baza de Date (denumitasimbolic SOCRATE), pornind de la Modelul de Informatii: Entitate – Caracteristica –Valoare, elaborat în colectivul de cercetare pe care îl conducea la începutul anilor 1970. Ce legatura poate avea cugetarea amintita cu Bazele de Date? In aceasta descoperire a puterii de Evocare în reconstituirea unei Realitati trecute seregasesc o multime de raporturi de dualism între conceptele de baza cu care se opereaza înconstruirea Modelelor de Informatii si Date. Dintre acestea amintim urmatoarele: o Informatie - Data în conceperea, proiectarea si prelucrarea Structurilor o Semantic – Sintactic în reprezentarea continutului si formei Informatiei o Nume – Valoare în reprezentarea Structurile de Date si Informatii o Plan Logic – Fizic în descrierea Structurilor de Date si Informatii o Model de Date – Baza de Date Logica în proiectarea generala si particulara a acelorasi structuri Raporturile de mai sus stau la baza definirii Nivelelor de Abstractizare în operarea cuStructurile de Informatii si Date, deschizând calea spre nivelele înalte de concepere siproiectare a structurilor ce stau la baza oricarui sistem de aplicatii. Ca urmare, putem folosi în locul Valorii concrete a Datei, Numele general al Datei, înlocul Nivelului Fizic de reprezentare, Nivelul Logic de descriere, în locul Bazei de DateLogice particulare, Modelul de Date c e permite generarea mai multor instante de Baze deDate adaptate resurselor disponibile, apelând chiar la Sisteme de Gestiune diferite. Legaturile care se creeaza izvorasc toate din puterea asociativa pe care o oferaplanurile paralele de reprezentare a realitatii, Concreta si Simbolica, sustinute de competentafactorului uman, uneori înnascuta, cel mai adesea învatata, de a extrage din simple asocieri,lucruri aparent ascunse si recuperate prin amintire. In exemplele enumerate, ce apartin în întregime Sistemelor cu Baze de Date, în sensulde a fi initiate si apoi promovate cu perseverenta în timp, de mai bine de o jumatate de veac,gasim motivatia frumoasei evocari folosite de profesorul francez. Ideile cresc în stralucire atunci când vin de la o distanta de patru secole înainte de eranoastra, de unde o fiinta reala, recunoscuta ca filosof, nu numai Iubitor de Întelepciune, ci sifondator al filozofiei morale, deci deopotriva I ubitor de Oameni, transmitea semenilor deatunci si de mai apoi mesajul, purtat din gura-n gura, ca Viata nu e un pret prea mare cândpoti da nastere unui Simbol care sa-i lumineze pe cei ce vin, înlesnindu-le cunoasterea,sporindu-le puterea de aflare a caii spre Adevar, Dreptate si Iubire.
  5. 5. Prefata 5 “Trecutul este usa Viitorului“ B.P. Hasdeu PREFATA Timpul este Judecatorul neînduplecat al Conceptelor. El da adevaratalor masura, reala lor profunzime, dar mai ales confirmarea fertilitatii lor. Aceasta veche constatare poate fi foarte bine verificata în cazulSistemelor cu Baze de Date (SBD), atunci când se analizeaza aportul lor îndomeniul prelucrarii automate a informatiilor si datelor, dar mai ales când seîncearca aprecierea importantei lor trecute, prezente, dar mai ales viitoare. Aceste sisteme au asistat de-a-lungul deceniilor la aparitii spectaculoasede noi metode, tehnici si limbaje de prelucrare, care au cazut apoi în uitaresau au fost mistuite de noi încercari si descoperiri. In tot acest timp SBD si-aucontinuat nestingherit drumul, pastrându-si personalitatea p domeniul de rinpreocupari, devenind tot mai prietenoase cu utilizatorii prin accesibilitateaconceptelor implementate. Tinta acestor sisteme a ramas permanentconstruirea unei viziuni cât mai unitare si cât mai controlabile asupra Spatiilorde Informatii reprezentate si prelucrate cu tehnici din ce în ce maiperformante. Fidele acestui deziderat ele au asimilat toate noutatile pe carele-au filtrat dupa capacitatea lor de a servi ideilor initiale de gestiune acolectiilor mari de informatii si date. Intre aceste noutati tinem sa mentionampe cele legate de conceptele structuraliste de organizare a datelor siprocedurilor, cele ce promovau viziunea functionala în prelucrare, cele cedezvoltau conceptul de independenta, deschizând orientarea spreorganizarea obiectuala etc. Multe din facilitatile dezvoltate au usurat într-atât utilizarea produselorcomerciale care abunda piata informatica, încât a creat falsa impresie caoricine se pricepe la Baze de Date, ca odata însusite câteva cunostinte deoperare, proiectarea SBD e la îndemâna oricui. De aici s-a nascut simentalitatea multor beneficiari ca achizitia unor asemenea aplicatii trebuie safie gratuita, neglijând urmarile pe care diletantismul în proiectare le aduce maidevreme sau mai târziu, când de fapt totul trebuie reproiectat si de obiceiabia acum se realizeaza faptul ca aceasta costa. Un alt pericol consta în faptul ca pâna si unii proiectanti considera ca,de vreme ce exista utilizatori multumiti cu sisteme improvizate, precis cadomeniul de interes al Bazelor de Date s-a deplasat spre construireainterfetelor de acces spectaculoase, acolo unde tehnologiile în inflatielanseaza mereu o noua moda, chiar si atunci când nu sunt înca suficientdefinite, mai ales în ceea ce priveste raportul lor cu sistemele traditionale, pecare refuza sa le înteleaga considerându-le apuse. Atitudinea: „Sursa de Datetrebuie lasata la latitudinea utilizatorului, fie el si neinstruit” determina înmultirearapida a produselor de ocazie, efemere si inconsistente ca structura. Pornind
  6. 6. 6 Prefatade la observatiile facute, consideram utila o prezentare a conceptelor debaza, care în lumina timpului trecut de la prima lor lansare, au fost permanentconfirmate, dezvoltate si corelate, asa încât sa permita în prezent o corectadefinire a SBD si sa ofere totodata fundamentul pentru dezvoltarea acestoraspre o proiectare de nivel mai înalt. Acest nivel va implica definirea siconstruirea structurilor de date si proceduri, reunite în domeniul mai larg alModelelor de Date, ce încorporeaza atât Structurile de Date cât si Restrictiile siOperatiile aferente, declarate la un nivel superior de abstractizare, cucapacitate generativa sporita. Aceasta intentie justifica absenta unor capitolede interes recent, legate de tehnologiile de acces de la distanta la sursele dedate organizate ca Baze de Date, în favoarea concentrarii atentiei asupraîntelegerii acelor particularitati care mentin si azi interesul în jurul SBD. Cititorulva fi ajutat sa caute raspuns la unele întrebari importante, legate deprocesarea datelor, cum ar fi: o De ce Sistemele cu Baze de Date sunt înca în voga? o Este conceptul de Independenta asociat cu SBD? o Este Modelul Relational perisat? o Model Relational sau Obiectual? o Simplitatea Tabelei mai poate ascunde secrete? o Explorarea Dependentele între Informatii e straina Bazelor de Date? Cu acest cadru propus lucrarea nu va oferi prilejul de învatare a unuiLimbaj, a unui Produs sau a unei Tehnici, ci posibilitatea însusirii unei viziunigenerale asupra drumului parcurs de SBD si mai ales asupra zestrei decunostinte pe care acest domeniu îl pune la dispozitia Cercetatorului,Proiectantului si Utilizatorului. Ca urmare ea se adreseaza tuturor acestorcategorii de specialisti, la care se adauga bineînteles cei ce se initiaza prinstudiu sau practica în acest domeniu promitator (studenti sau elevi). Numerosi colaboratori (cadre didactice, cercetatori, proiectanti,implementatori, studenti), însirati pe un drum de 30 de ani de activitate îndomeniu, gasesc aici cuvântul meu de multumire pentru spijinul acordat cugenerozitate si pasiune. Daca acest sprijin a fost cu adevarat folosit va puteahotarî desigur numai cititorul. Exista între cei apropiati o categorie apartepentru care cuvântul meu de multumire e de prisos, caci au alergat preaaproape de mine, ducându-ma spre tinta si ferindu-se la vederea liniei desosire si care doresc acum doar sa afle daca am trecut-o cu bine. Dar siiaceasta informatie o pot afla doar de la cititor. Mai este loc pe prezentapagina pentru o lacrima de iubire închinata celor care mi-au împartasitsinguratatea, asteptându-ma. Autorul
  7. 7. Prefata 7Cluj – Napoca, septembrie 2002
  8. 8. 8 Prefata C U P R I N SPREFATA .................................................................................................................................................. 51 Introducere......................................................................................................................................17 1.1 Importanta Sistemelor cu Baze de Date .........................................................................17 1.2 Aportul Sistemelor cu Baze de Date ...............................................................................19 1.3 Continutul Lucrarii .............................................................................................................212 Sisteme cu Baze de Date...............................................................................................................28 2.1 Aparitia Conceptului de Baza de Date ...........................................................................28 2.1.1 Nivele de Abstractizare într-un SBD ..........................................................................28 2.1.2 Functiile unui SGBD .....................................................................................................33 2.1.3 Raportul Date - Proceduri .............................................................................................34 2.2 Definitia Bazelor de Date ...................................................................................................36 2.3 Avantajele utilizarii Bazelor de Date ..............................................................................37 2.4 Exemple de Baze de Date ...................................................................................................383 Concepte de Baza...........................................................................................................................42 3.1 Multimi si Relatii..................................................................................................................42 3.1.1 Multimi ............................................................................................................................42 3.1.1.1 Caracteristicile de baza ale Multimii......................................................................43 3.1.1.2 Incluziunea Multimilor .............................................................................................43 3.1.1.3 Identitatea Multimilor ...............................................................................................44 3.1.1.4 Multimea Totala .........................................................................................................44 3.1.1.5 Numararea Partilor unei Multimi Totale ................................................................45 3.1.1.6 Operatii Booleene pe Multimea Partilor unei Multimi Totale ...........................46 3.1.1.7 Acoperire si Partitie ...................................................................................................46 3.1.1.8 Latice............................................................................................................................47 3.1.2 Relatii între Multimi ......................................................................................................48 3.1.2.1 Produs Cartezian de multimi....................................................................................49 3.1.2.2 Reuniunea Disjuncta a Multimilor..........................................................................49 3.1.2.3 Relatia n-ara ................................................................................................................49 3.1.2.4 Implicarea relatiilor (Extensii si Restrictii)...........................................................50 3.1.2.5 Proiectia relatiilor ......................................................................................................51 3.1.2.6 Proprietatile Relatiilor Binare ..................................................................................52 3.1.2.6.1 Relatii Binare pe Doua Multimi Distincte .....................................................52 3.1.2.6.2 Relatii Binare pe Aceeasi Multime .................................................................53 3.1.2.6.2.1 Tipuri de Relatii Binare pe Aceeasi Multime ........................................55 3.1.2.6.2.1.1 Relatia de Echivalenta .......................................................................55 3.1.2.6.2.1.2 Relatii de Ordine.................................................................................56 3.1.2.6.2.1.2.1 Relatia de Ordine Partiala ..........................................................57 3.1.2.6.2.1.2.2 Relatia de Ordine Totala ............................................................58
  9. 9. Cuprins 9 3.1.2.6.2.1.2.3 Relatia de Bine Ordonare ..........................................................59 3.1.2.6.2.1.3 Relatia de Similitudine (Asemanare) ..............................................59 3.1.3 Relatii, Aplicatii, Functii .............................................................................................60 3.1.4 Grafuri ..............................................................................................................................60 3.1.4.1 Graful ca Relatie ........................................................................................................60 3.1.4.2 Graful ca Aplicatie .....................................................................................................61 3.1.4.3 Arbori...........................................................................................................................623.2 Informatie si Data ................................................................................................................65 3.2.1 Modelul Matematic ........................................................................................................66 3.2.2 Modelul Semiotic ...........................................................................................................67 3.2.3 Modelul Propozitional...................................................................................................683.3 Date si Proceduri..................................................................................................................713.4 Structuri de Informatii si Date .........................................................................................73 3.4.1 Structura, Organizare si Acces.....................................................................................73 3.4.1.1 Structura Logica si Fizica.........................................................................................77 3.4.1.2 Spatiul de Informatii si de Date...............................................................................80 3.4.2 Structuri Fundamentale de Informatii si Date ...........................................................83 3.4.2.1 Definirea Structurilor Fundamentale ......................................................................83 3.4.2.2 Transformarea Structurilor Fundamentale .............................................................91 3.4.2.2.1 Tipuri de transformari .......................................................................................91 3.4.2.2.1.1 Eliminarea Redondantei............................................................................92 3.4.2.2.1.2 Inversarea Partiala (Indexarea).................................................................93 3.4.2.2.1.3 Eliminarea Redondantei + Inversarea Partiala ......................................94 3.4.2.2.1.4 Inversarea Totala ........................................................................................96 3.4.2.2.1.5 Reorganizarea Structurii............................................................................98 3.4.2.2.2 Generalizarea Conceptului de Inversare.........................................................99 3.4.3 Reprezentarea Structurilor de Informatii si de Date...............................................101 3.4.3.1 Reprezentarea Fizica (Reprezentarea Clasica)....................................................101 3.4.3.2 Reprezentarea Logica (Reprezentarea Simbolica).............................................103 3.4.3.3 Arborele de Structura ..............................................................................................107 3.4.3.4 Diagrama Entitati – Relatii.....................................................................................111 3.4.3.5 Schema de Descriere ..............................................................................................115 3.4.4 Structuri de Informatii la Utilizator...........................................................................116 3.4.4.1 Structura de Ansamblu............................................................................................116 3.4.4.2 Structuri Partiale ......................................................................................................119 3.4.4.3 Reprezentarea Structurii de Ansamblu .................................................................124 3.4.5 Diversificarea Tipurilor de Legaturi între Entitati..................................................127 3.4.5.1 Viziunea în Produsul ORACLE ............................................................................127 3.4.5.2 Viziunea în Produsul ERWIN ...............................................................................1353.5 Structuri de Proceduri......................................................................................................138 3.5.1 Operatie si Procedura ..................................................................................................138 3.5.2 Operatii de control .......................................................................................................139 3.5.2.1 Compozitia ................................................................................................................139 3.5.2.2 Selectia .......................................................................................................................139 3.5.2.3 Repetitia .....................................................................................................................141
  10. 10. 10 Cuprins 3.5.2.4 Substitutia..................................................................................................................142 3.5.3 Elementele Structurilor de Proceduri........................................................................142 3.5.4 Descrierea Formala a Procedurilor............................................................................144 3.5.5 Descrierea în Pseudo - Cod ........................................................................................145 3.5.6 Arborele de Programare ..............................................................................................1464 Modele de Informatii si Date.....................................................................................................152 4.1 Modele de Informatii ........................................................................................................152 4.1.1 Modelul Entitate – Caracteristica – Valoare (Modelul ECV) ..............................152 4.1.1.1 Descrierea Spatiului de Informatii ........................................................................152 4.1.1.2 Descrierea Spatiului de Date..................................................................................155 4.1.1.3 Entitate – Caracteristica – Valoare .......................................................................157 4.1.1.3.1 Entitate ...............................................................................................................158 4.1.1.3.2 Clasa de Entitati................................................................................................159 4.1.1.3.3 Metaclasa de Entitati .......................................................................................161 4.1.1.3.4 Caracteristica.....................................................................................................162 4.1.1.3.5 Valoare ...............................................................................................................163 4.1.1.3.6 Relatii de Asociere ...........................................................................................165 4.1.1.3.7 Ansamblu de Entitati .......................................................................................166 4.1.1.3.8 Clasa de Ansambluri de Entitati ....................................................................168 4.1.1.4 Modelul formal ECV în termeni de Multimi si Relatii ....................................171 4.1.1.4.1 Definire matematica.........................................................................................171 4.1.1.4.2 Descriere g rafica...............................................................................................171 4.1.2 Modelul Obiectelor Abstracte (OA) .........................................................................174 4.1.2.1 Procesul de Abstractizare .......................................................................................174 4.1.2.2 Obiecte Abstracte.....................................................................................................175 4.1.2.2.1 Obiecte Generice ..............................................................................................175 4.1.2.2.2 Obiecte Agregate..............................................................................................178 4.1.2.3 Ierarhii de Obiecte Abstracte .................................................................................179 4.1.2.4 Realizari de Obiecte Abstracte..............................................................................182 4.1.2.5 Ierarhii de Obiecte Abstracte în Planul Realizarilor..........................................183 4.1.2.6 Relativitatea Viziunii asupra Obiectelor Abstracte............................................186 4.1.2.7 Sintaxa Abstracta.....................................................................................................189 4.1.2.8 Operatii Abstracte....................................................................................................191 4.1.2.9 Principiul Conservarii Semantice..........................................................................191 4.1.2.10 Metodologia de Proiectare în Modelul OA.....................................................192 4.1.2.10.1 Continutul Metodologiei de Proiectare ......................................................192 4.1.2.10.2 Erori de Utilizare a Metodologiei ...............................................................193 4.1.2.10.2.1 Stabilirea Categoriilor Directe .............................................................193 4.1.2.10.2.2 Stabilirea Componentelor Directe.......................................................194 4.1.2.10.2.3 Identificarea Incompleta .......................................................................195 4.1.2.10.2.4 Tratarea Obiectelor Abstracte de tip Rol............................................195 4.1.3 Modelul Conceptual.....................................................................................................200 4.2 Modele de Date ...................................................................................................................206 4.2.1 Tipuri de Modele de Date ...........................................................................................206 4.2.1.1 Arhitectura Modelelor de Date Stricte .................................................................207 4.2.1.1.1 Descrierea Structurii........................................................................................209
  11. 11. Cuprins 11 4.2.1.1.2 Descrierea Restrictiilor....................................................................................210 4.2.1.1.3 Descrierea Operatiilor .....................................................................................2134.2.2 Modelul Ierarhic ...........................................................................................................214 4.2.2.1 Segmentul de Articol ca si Constructor de Structura.........................................214 4.2.2.2 Avantajele si Dezavantajele Modelului Ierarhic ................................................2164.2.3 Modelul Retea...............................................................................................................217 4.2.3.1 Setul de Articole ca si Constructor de Structura.................................................217 4.2.3.2 Avantajele si Dezavantajele Modelului Retea ....................................................2224.2.4 Modelul Relational.......................................................................................................224 4.2.4.1 Relatia ca si Constructor de Structura ..................................................................224 4.2.4.2 Proprietatile Relatiei................................................................................................228 4.2.4.3 Intensiunea si Extensiunea Relatiilor ...................................................................230 4.2.4.4 Cheile Relatiilor.......................................................................................................231 4.2.4.4.1 Reguli de Integritate a Relatiilor ...................................................................232 4.2.4.4.2 Identificare, Acces si Ordonare în Structuri Relationale ...........................232 4.2.4.4.2.1 Chei de Identificare ..................................................................................233 4.2.4.4.2.2 Chei de Acces............................................................................................236 4.2.4.4.2.3 Chei de Ordonare......................................................................................242 4.2.4.5 Manipularea Structurilor Relationale ...................................................................244 4.2.4.5.1 Metoda bazata pe Algebra Relationala .........................................................245 4.2.4.5.1.1 Operatori Relationali................................................................................245 4.2.4.5.1.2 Operatori Relationali Traditionali..........................................................247 4.2.4.5.1.3 Operatori Specific Relationali................................................................251 4.2.4.5.1.4 Set Complet de Operatori Relationali...................................................257 4.2.4.5.1.5 Sintaxa unui LMD bazat pe Algebra Relationala ...............................257 4.2.4.5.1.6 Limbajul de Navigare si Operatorii Algebrei Relationale .................259 4.2.4.5.1.7 Tipuri de SGBD-uri Relationale ............................................................260 4.2.4.5.2 Metoda bazata pe Calculul Relational..........................................................261 4.2.4.5.2.1 Limbajul Logic ..........................................................................................261 4.2.4.5.2.2 Calculul Relational al Tuplelor..............................................................264 4.2.4.5.2.2.1 Elementele Expresiilor în CRT ......................................................264 4.2.4.5.2.2.2 Variabile Libere si Legate...............................................................265 4.2.4.5.2.2.3 Expresii de Calcul Relational al Tuplelor ....................................267 4.2.4.5.2.2.4 Implementare Calcului Relational al Tuplelor ............................268 4.2.4.5.2.2.4.1 Exemple de ECT .......................................................................268 4.2.4.5.2.2.4.2 Limbajul SQL............................................................................270 4.2.4.5.2.3 Calculul Relational al Domeniilor.........................................................277 4.2.4.5.2.3.1 Elementele Expresiilor în CRD......................................................277 4.2.4.5.2.3.2 Variabile Libere si Legate...............................................................279 4.2.4.5.2.3.3 Expresii de Calcul Relational al Domeniilor ...............................279 4.2.4.5.2.3.4 Implementare Calcului Relational al Domeniilor.......................280 4.2.4.5.2.3.4.1 Exemple de ECD.......................................................................280 4.2.4.5.2.3.4.2 Limbajul QBE ...........................................................................281 4.2.4.6 Nivelul Extern în Modelul Relational ..................................................................285 4.2.4.6.1 Vederea ca si Constructor al Nivelului Extern ............................................285 4.2.4.6.2 Operatii în LMD asupra Vederilor................................................................287 4.2.4.6.3 Vederile si Independenta Datelor..................................................................290
  12. 12. 12 Cuprins 4.2.4.7 Modelul Relational ca Model Strict de Date.......................................................292 4.2.4.7.1 Structura datelor..............................................................................................292 4.2.4.7.2 Tipuri de Structuri Relationale .......................................................................297 4.2.4.7.2.1 Tipuri de Legaturi Relationale ...............................................................298 4.2.4.7.2.2 Tipuri de Relatii........................................................................................300 4.2.4.7.2.2.1 Relatii de tip Entitate .......................................................................301 4.2.4.7.2.2.1.1 Entitate Completa .....................................................................301 4.2.4.7.2.2.1.2 Entitate Incompleta...................................................................302 4.2.4.7.2.2.2 Relatii de tip Legatura .....................................................................304 4.2.4.7.2.2.2.1 Legatura Simpla ........................................................................304 4.2.4.7.2.2.2.2 Legatura Completa ...................................................................307 4.2.4.7.2.2.3 Relatii de tip Mixt .............................................................................308 4.2.4.7.3 Implementarea Relationala a Operatiilor de Abstractizare .......................311 4.2.4.7.3.1 Implementarea Agregarii.........................................................................312 4.2.4.7.3.2 Implementarea Generalizarii ..................................................................312 4.2.4.7.3.3 Tip General de Structura Relationala ....................................................314 4.2.4.7.4 Restrictii impuse Datelor..............................................................................315 4.2.4.7.4.1 Restrictii Implicite....................................................................................315 4.2.4.7.4.2 Restrictii Explicite....................................................................................316 4.2.4.7.5 Operatii asupra datelor....................................................................................318 4.2.4.7.5.1 Operatii Procedurale – Navigarea în Tabele .......................................319 4.2.4.7.5.2 Operatii Neprocedurale ...........................................................................322 4.2.4.7.5.3 Nivele de Definire a Operatiilor.............................................................323 4.2.4.8 Construirea Structurilor Relationale .....................................................................324 4.2.4.8.1 Generalizarea Entitatilor .................................................................................324 4.2.4.8.2 Agregarea Entitatilor .......................................................................................328 4.2.4.8.2.1 Structuri 1 - n.............................................................................................328 4.2.4.8.2.2 Structuri m - n ...........................................................................................329 4.2.4.8.3 Reprezentarea Structurilor Ierarhice .............................................................345 4.2.4.8.3.1 Reprezentarea Entitatii ............................................................................347 4.2.4.8.3.2 Reprezentarea Subentitatii ......................................................................349 4.2.4.8.4 Reprezentarea Structurilor Matriciale ...........................................................357 4.2.4.8.5 Reprezentarea Datelor de Tip Multime ........................................................359 4.2.4.9 Conditiile ca o BD sa fie Relationala ...................................................................362 4.2.4.9.1 Reguli de Fundamentare – Regula 0 si 12 ...................................................362 4.2.4.9.2 Reguli Structurale – Regula 1 si 6.................................................................363 4.2.4.9.3 Reguli de Integritate – Regula 10 si 3 ..........................................................364 4.2.4.9.4 Reguli de Manipulare a Datelor – Regula 5, 2, 7 si 4................................365 4.2.4.9.5 Reguli de Independenta a Datelor – Regula 8, 9 si 11...............................3665 Optimizarea Modelelor de Date................................................................................................369 5.1 Optimizarea Structurilor de Date .................................................................................369 5.1.1 Introducere.....................................................................................................................370 5.1.2 Abordarea Formalizata a Normalizarii Relatiilor...................................................371 5.1.2.1 Definitii si Notatii....................................................................................................371 5.1.2.2 Dependente Functionale .........................................................................................373 5.1.2.2.1 Definitii si Notatii ............................................................................................373
  13. 13. Cuprins 13 5.1.2.2.1.1 Proprietatile Formale ale Dependentelor Functionale.......................374 5.1.2.2.2 Relatii Normalizate BCNF .............................................................................378 5.1.2.3 Dependente Multivalorice ......................................................................................379 5.1.2.3.1 Proprietatile Formale ale Dependentelor Multivalorice:...........................381 5.1.3 Abordarea Istorica a Normalizarii Relatiilor...........................................................383 5.1.3.1 Studiu de Caz............................................................................................................384 5.1.3.1.1 Spatiul Informatiilor ........................................................................................384 5.1.3.1.1.1 Descrierea Spatiului de Informatii.........................................................384 5.1.3.1.1.2 Diagrama Simbolica.................................................................................385 5.1.3.1.1.3 Diagramele Dependentelor Functionale ...............................................386 5.1.3.1.2 Spatiul Datelor..................................................................................................387 5.1.3.1.2.1 Descriere Intensionala .............................................................................387 5.1.3.1.2.2 Arborele de Structura ...............................................................................389 5.1.3.1.2.3 Descriere Extensionala – Valori Memorate .........................................389 5.1.3.2 Etapele Normalizarii................................................................................................390 5.1.3.2.1 Relatii Normale de Grad 1..............................................................................391 5.1.3.2.2 Relatii Normale de Grad 2..............................................................................391 5.1.3.2.3 Relatii Normale de Grad 3..............................................................................394 5.1.3.2.4 Descompunerea Relatiilor ..............................................................................395 5.1.3.2.5 Relatii Normale BCNF....................................................................................399 5.1.3.2.5.1 Relatii cu Chei Candidate Multiple Disjuncte.....................................399 5.1.3.2.5.2 Relatii cu Chei Candidate Multip le Nedisjuncte.................................400 5.1.3.2.6 Relatii Normale de Grad 4..............................................................................403 5.1.3.2.7 Relatii Normale de Grad 5 (PJNF) ................................................................405 5.1.3.2.8 Concluzii............................................................................................................410 5.1.4 Abordarea Semantica a Normalizarii Relatiilor......................................................411 5.1.4.1 Abordarea Sistemica a Proiectarii.........................................................................413 5.1.4.2 Utilizarea Modelului Obiectelor Abstracte .........................................................427 5.1.4.2.1 Implementarea Relationala a Modelului Obiectelor Abstracte................428 5.1.4.2.2 Definirea Restrictiilor......................................................................................428 5.1.4.2.3 Definirea Procedurilor Stocate.......................................................................428 5.1.4.3 Concluzii finale ........................................................................................................429 5.2 Optimizarea Cererilor ......................................................................................................430 5.2.1 Evaluarea Costurilor de Prelucrare a Cererilor.......................................................430 5.2.2 Reorganizarea Cererilor..............................................................................................431 5.2.2.1 Tratarea Produselor Carteziene .............................................................................431 5.2.2.2 Tratarea Reunirilor..................................................................................................433 5.2.3 Strategii Generale de Optimizare ..............................................................................4336 Securitatea Bazelor de Date.......................................................................................................436 6.1 Controlul Accesului la Date.............................................................................................436 6.1.1 Categorii de Informatii gestionate în Controlul Accesului la Date .....................436 6.1.2 Controlul Drepturilor de Acces la Date cu ajutorul LMD....................................438 6.1.3 Controlul Confidentialitatii de Acces la Date .........................................................439 6.2 Prelucrari Tranzactionale ...............................................................................................443 6.2.1 Erori în Tranzactii Necontrolate ................................................................................444
  14. 14. 14 Cuprins 6.2.2 Tipurile de Întreruperi ale unei Tranzactii...............................................................446 6.2.3 Starile unei Tranzactii .................................................................................................447 6.2.4 Jurnalizarea Tranzactiilor ...........................................................................................450 6.2.5 Proprietatile unei Tranzactii Atomice.......................................................................451 6.2.6 Planul de Operatii Tranzactionale .............................................................................452 6.2.7 Proprietatile Tranzactiilor în Refacerea Bazei de Date .........................................453 6.2.8 Serializarea Tranzactiilor............................................................................................455 6.2.9 Controlul Concurentei.................................................................................................461 6.2.10 Granularitatea Datelor.................................................................................................466 6.3 Refacerea B azelor de Date ...............................................................................................467 6.3.1 Termeni si Concepte....................................................................................................467 6.3.2 Tehnici de Refacere .....................................................................................................471 6.3.2.1 Tehnica bazata pe Actualizarea Amânata............................................................472 6.3.2.2 Tehnica bazata pe Actualizarea Imediata ............................................................4737 Baze de Date Evoluate ................................................................................................................475 7.1 Baze de Date Deductive ....................................................................................................476 7.1.1 Inferenta bazata pe Calculul Propozitional..............................................................477 7.1.2 Inferenta bazata pe Calculul Predicativ ....................................................................482 7.1.3 Descrierea Formala a unui Limbaj Predicativ .........................................................483 7.1.3.1 Predicate ....................................................................................................................483 7.1.3.2 Formule Bine Construite ........................................................................................483 7.1.4 Interpretare si Model ...................................................................................................485 7.1.4.1 Interpretarea Formulelor.........................................................................................485 7.1.4.2 Evaluarea Formulelor Bine Construite.................................................................488 7.1.4.3 Model.........................................................................................................................489 7.1.5 Forme Clauzale .............................................................................................................491 7.1.6 Deducere în Baze de Date...........................................................................................493 7.1.7 Viziunea Inferentiala a unei BDD.............................................................................500 7.1.8 Metode de Deducere în SBD......................................................................................505 7.1.8.1 SBD Pur Deductive .................................................................................................505 7.1.8.2 SBD Deductive Mixte .............................................................................................507 7.1.8.3 SBD Deductiv-Generative......................................................................................510 7.2 Baze de Date Distribuite ...................................................................................................513 7.2.1 Generalitati....................................................................................................................513 7.2.2 Solutii Generale de Proiectare....................................................................................515 7.2.3 Proiectarea Structurilor de Date Distribuite ............................................................520 7.2.3.1 Generalitati................................................................................................................520 7.2.3.1.1 Baze de Date Distribuite ( BDS) ...................................................................521 7.2.3.1.2 Arhitecturi Client - Server ..............................................................................522 7.2.3.2 Tehnici de proiectare a BDS..................................................................................523 7.2.3.2.1 Tehnica de Fragmentare ..................................................................................524 7.2.3.2.1.1 Fragmentarea Orizontala ........................................................................526 7.2.3.2.1.2 Fragmentarea Verticala ..........................................................................527 7.2.3.2.1.3 Fragmentarea Mixta ................................................................................527 7.2.3.2.2 Tehnica de Replicare .......................................................................................528
  15. 15. Cuprins 15 7.2.3.2.3 Tehnica de Alocare ..........................................................................................528 7.2.3.2.4 Studiu de Caz....................................................................................................529 7.2.3.3 Tipuri de Baze de Date Distribuite .......................................................................534 7.2.3.3.1 Criteriul de Omogenitate.................................................................................534 7.2.3.3.2 Criteriul de Autonomie....................................................................................534 7.2.3.3.3 Criteriul de Transparenta................................................................................535 7.2.3.4 Procesarea Cererilor în Baze de Date Distribuite ........................................535 7.2.3.4.1 Costurile în Procesarea Distribuita................................................................535 7.2.3.4.2 Procesarea Cererilor Distribuite prin Operatia de SEMIJOIN.................538 7.2.3.4.3 Descompunerea Cererilor si Actualizarilor .................................................540 7.2.3.5 Controlul Concurentei si al Securitatii.................................................................543 7.2.3.5.1 Generalitati........................................................................................................543 7.2.3.5.2 Controlul Concurentei Distribuite cu Copie Distincta a Datelor .............544 7.2.3.5.2.1 Tehnica Statiei Primare ...........................................................................544 7.2.3.5.2.2 Tehnica Statiei Primare cu Statie de Salvare .......................................545 7.2.3.5.2.3 Tehnica Copiei Primare ...........................................................................545 7.2.3.5.2.4 Tehnica Alegerii Dinamice a Coordonatorului...................................545 7.2.3.5.3 Controlul Concurentei Distribuite prin Tehnica Votarii............................545 7.2.3.5.4 Securitatea Distribuita .....................................................................................546 7.3 Baze de Date Obiectuale...................................................................................................547 7.3.1 Generalitati....................................................................................................................547 7.3.2 Independenta Obiectelor.............................................................................................550 7.3.2.1 Clase de Obiecte.......................................................................................................553 7.3.2.2 Metode si Mesaje .....................................................................................................557 7.3.2.3 Restrictii impuse Obiectelor...................................................................................558 7.3.3 Mostenirea între Obiecte.............................................................................................558 7.3.3.1 Mostenire Structurala ..............................................................................................560 7.3.3.2 Mostenirea Comportamentala ................................................................................563 7.3.3.2.1 Mostenire Simpla .............................................................................................565 7.3.3.2.2 Mostenire Multipla ...........................................................................................566 7.3.3.3 Meclase, Clase si Obiecte.......................................................................................568 7.3.4 Identitatea Obiectelor ..................................................................................................569 7.3.5 Comunicarea între Obiecte .........................................................................................575 7.3.6 Solutii de Implementare pentru BDO.......................................................................576 7.4 Consideratii Critice ...........................................................................................................577ANEXE....................................................................................................................................................5828 Scurt Istoric al Evolutiei SBD...................................................................................................5829 Principalele Surse de Informare...............................................................................................583POSTFATA...........................................................................................................................................584Lista Figurilor si Tabelelor.................................................................................................................585Bibliografie.............................................................................................................................................592Index de Termeni ..................................................................................................................................598
  16. 16. 16 Importanta Sistemelor cu Baze de DatePARTEA 1 -a INTRODUCERE Sectiunile de Introducere subliniaza interesul, consolidat în timp, referitor la Sistemele cu Baze de Date si indirect atractia mentinuta vreme de mai bine de o jumatate de veac în jurul dezbaterilor având în centrul lor subiecte din domeniul SBD. Sectiunile continute în Introducere puncteaza notele caracteristice ale acestei atractii îndelungate. 1.1 – Importanta Sistemelor cu Baze de Date – se face o trecere în revista a domeniilor din Stiinta Calculatoarelor si din Informatica Aplicata care vizeaza SBD. Un accent special este pus pe domenii noi, de mare atractie în prezent (Warehousing, Data Mining), care au în fundal aceleasi Arhitecturi promovate de BD. 1.2 – Aportul Sistemelor cu Baze de Date – sunt enumerate principalele avantaje care mentin SBD în centrul preocuparilor legate de Prelucrarea Automata a Datelor. Rezulta cu usurinta faptul ca avantajele amintite îsi vor mentine perenitatea în contextul cresterii interesului pentru Industrializarea Procesului de Elaborare de Programe si Aplicatii. 1.3 – Continutul Lucrarii – face oficiul consacrat de Ghid al Cititorului în lucrarea gândita ca o Monografie de Concepte, promovate într-un domeniu deosebit de peren.
  17. 17. Importanta Sistemelor cu Baze de Date 171 Introducere1.1 Importanta Sistemelor cu Baze de Date Sistemele cu Baze de Date (SBD) apar ca produse de software individualizate îndeceniul al saptelea al secolului al XX-lea. Un traseu al drumului parcurs de SBD esteprezentat în Tab. 9.1 din Anexe. Viziunea noua pe care ele o aduc asupra prelucrarii automate adatelor polarizeaza atentia specialistilor, cercetatorilor si comerciantilor de-a lungul a mai binede patru decenii. Afirmatia nu este exagerata întrucât, oricât de mare a fost în timp dorinta deînnoire prin introducerea de noi termeni (unii ramasi pentru multi la nivelul unor atragatoare“cuvinte claxon”) – Sisteme cu Reguli Inteligente, Baze de Cunostinte, Baze de DateObiectuale, Explorarea Datelor (Data Mining), Gestiunea Specializata a Depozitelor(Warehousing) etc., acesti noi termeni nu au putut regasi taria principiilor fundamentate siconfirmate prin nenumarate implementari de catre Sistemele cu Baze de Date si înca mai mult,s-au sprijinit puternic pe acestea, în masura în care nu au vrut sa ramâna doar captivanteexercitii de testare a abilitatii discipolilor în prelucrarea informatiei. Argumentatia poate fi completata cu o serie de întrebari retorice: - Ce implementare reala de Reguli Inteligente e mai fecunda decât sistemele de Restrictii ale Bazelor de Date? - Ce Sistem de Constrângeri nu devine mai puternic când e implementat în centrul nucleului de informatii ca si Constrângeri Intrinseci? - Ce Dependente între informatii ramân straine Sistemelor Normalizate ale Bazelor de Date? - Ce Explorare de Date (Data Mining) poate fi efectuata cu succes în afara unei Surse de Date construita pe o Baza de Date? - Ce Warehousing nu e construit pe structura unei Baze de Date Specializate? - Ce Cunostinte nu pot fi înmagazinate în Procedurile Stocate ale unei Baze de Date? - Ce rafinament semantic de Agregare, Generalizare, Specificare, Taxonomie nu poate fi exprimat de Modelele de Date ce stau în spatele structurii logice ale unei Baze de Date?Si exemplele pot continua sub semnul transformarii conceptelor teoretice bine fundamentate îninstrumente practice puse la dispozitia unor categorii foarte diverse de utilizatori finali.Înseamna ca interesul Bazelor de Date mentinut si în prezent este motivat. Motivata apare sicresterea acestui interes prin încorporarea în sistemele ce Baze de Date a tuturor noilor cuceririîn domeniul tehnologiilor avansate de prelucrare a informatiei. Se poate afirma ca în timp cemulte limbaje, metode si tehnici, de mare senzatie în momentul aparitiei lor, au intrat în muzeu(evitam aici enumerari pentru a nu stârni gratuite adversitati), Sistemele cu Baze de Date augasit mereu noi cai de dezvoltare odata cu dezvoltarea tehnologiei de calcul. In prezent oricesistem complex nu poate fi privit în afara unei puternice surse de date, structurata, consistenta,persistenta, care implica un sistem adecvat de gestiune. De data aceasta enumerarile nu ne maipot aduce prejudicii:
  18. 18. 18 Importanta Sistemelor cu Baze de Date o Sistemele Informatice pentru Conducere – privite ca Sisteme cu Baze de Date o Bazele de Date din Sistemele de Programare Logica o Bazele de Date pentru Prelucrarea Textelor si Metatextelor o Bazele de Date Grafice pentru Proiectarea Asisteta de Calculator (CAD) o Bazele de Date din Sistemele Informatice Geografice (GIS) o Bazele de Date Orientate Obiectual o Bazele de Date InteligenteSi în cazul acestei enumerari exemplele pot continua. In privinta interesului pe care piata informatica l-a aratat Sistemelor cu Baze de Dateeste foarte semnificativ numarul deosebit de mare de Sisteme de Gestiune a Bazelor de Date(SGBD-uri) oferite de producatori în acest rastimp pe toate platformele Hardware si Software,precum si în toate tehnologiile de prelucrare, de la SGBD-uri pentru calculatoare individuale latehnologii Client – Server si apoi la arhitecturi pe trei nivele (three tired architectures). SGBD-urile pot fi întâlnite între primele trei produse Software cerute, vândute si utilizate pe piatainformatica. Rasfoiti la întâmplare orice ziar de oferte de servicii informatice si veti puteavedea ce convingator este si în prezent procentul de solicitari de specialisti în domeniul Bazelorde Date. Ca o consecinta fireasca a acestui interes nu exista programa de învatamânt despecialitate, universitar sau preuniversitar, care sa nu contina disciplina de Baze de Date subforma de curs, seminarii, lucrari practice si proiecte. Dar si pentru nespecialisti (chimisti,fizicieni, dar si biologi, filologi, juristi etc.) necesitatea crearii unor Colectii de Informatii binestructurate reprezinta o cerinta primordiala. Potentialul înca neatins al SBD consta pe de o parte în deschiderea pe care ele o au de aconstrui cu ajutorul Modelelor de Date noi nivele de abstractizare în abordarea problemelorreale, carora însa le ofera si promisiunea, sustinuta de garantia necesara, ca vor putea fiimplementate. In al doilea rând SBD sunt pregatite pentru a folosi performantele în continuacrestere ale platformelor Hardware, ceea ce va spori interesul pentru Solutiile Normalizate deStructura, pentru Independenta reala a Nivelului Extern de definire a datelor, pentruimplementarea Obiectelor Active direct în Nivelul Extern etc. Nu putem încheia aceasta scurta pledoarie în favoarea SBD fara a sublinia contributiadeosebita pe care Bazele de Date au adus-o în domeniul dezvoltarii si implementarii unorconcepte deosebit de fructuoase cum ar fi Viziunea Structuralista, Independenta Structurala,Formele de Dependenta Structurala, Unificarea Date-Proceduri prin Materializarea Datelor,Orientarea pe Eveniment a Procedurilor, Conceptia Integratoare de Sistem. Neglijarea concluziilor acumulate timp de aproape o jumatate de secol, poate duce laexperimente foarte costisitoare, nu numai în sfera producatorilor, mai mici dar foarte numerosi,de Sisteme de Aplicatii, dar si în categoria marilor producatori de Produse Specializate, cum arfi SGBD-urile. In acelasi sens, întelegerea aportului real pe care aceste sisteme de prelucrarel-au adus în domeniul procesarii volumelor mari de date, complex structurate, pot orientacercetari si dezvoltari care sa combine cresterea Performantelor în FunctionareaEchipamentelor cu ridicarea Nivelului Conceptual de Proiectare.
  19. 19. Aportul Sitemelor cu Baze de Date 191.2 Aportul Sistemelor cu Baze de Date Dorim sa raspundem în aceasta sectiune, în mod succint, la întrebarea: “Care e motivulperenitatii Sistemelor cu Baze de Date?”, perenitate care a facut obiectul pledoariei anterioare. Ne simtim obligati sa facem pentru început o precizare utila legata de acceptiatermenului de Sistem cu Baza de Date (SBD) si a-l separa de cel de Sistem de Gestiune aBazelor de Date (SGBD): - SBD – Sistem de Aplicatii având în centru o Colectie Structurata de Date de volum mare a carui continut e gestionat în mod direct de un SGBD, dar care pe lânga acesta implica prezenta si a altor componente specializate cum ar fi Interfetele Utilizator, Retelele de Comunicatie, Instrumente de Ingineria Programarii Asistata de Calculator (Computer-Aided Software Engineering - CASE) etc., dar si Personalul (Utilizatori Finali sau Intermediari) însarcinat cu conceperea, proiectarea, întretinerea si dezvoltarea sistemului - SGBD – Sistem specializat în Gestiunea nemijlocita a Colectiei de Date, activitate ce implica doua Functii Principale, cea de Definire si cea de Manipulare a Datelor (vezi functiile unui SGBD descrise în sectiunea 2.1.3) In mod ciudat, într-o sectiune consacrata acestui subiect, vom evita enumerarea aceloravantaje practice aduse de Sistemele cu Baze de Date, ca instrumente de organizare si control avolumelor mari de informatii ce se cer prelucrate în orice domeniu, avantaje care vor fiprezentate în sectiunea 2.3, pentru a ne putea concentra asupra aportului la nivel conceptual,sustinut si consacrat în plan teoretic si confirmat în cenusiul de zi de zi al utilizarii acestorsisteme. Este vorba de concepte si principii lansate de SBD, a caror paternitate le este unanimrecunoscuta si pe care se bazeaza longevitatea lor, dar care nu pot fi exprimate usor într-un„singur cuvânt”.Observatie Organizarea datelor într-o Baza de Date a adus, cu scurgerea timpului, în afara rezultatelor directe, si un câstig indirect, la început aproape neperceput. Aceasta activitate migaloasa de organizare a unui material imens de Fapte a format utilizatorului, indiferent de rolul jucat în Sistemul Informatic, o noua viziune asupra Informatiilor prelucrate. Întregul arsenal de tehnici si metode dezvoltat sub semnul Structuralismului si al Independentei maxime a fiecarei componente a sistemului a declansat resurse sinergetice în descoperirea de noi raporturi si conexiuni între obiectele extrase din realitatea privita ca sursa inepuizabila de informatii, din ce în ce mai complexe si mai rafinate. In acest continuu izvor de noi înfatisari ale aceleiasi prezente trebuie cautata si perenitatea preocuparilor, a interesului si a rezultatelor mereu înnoite obtinute în aproape o jumatate de veac de existenta a domeniului. Ne-a aparut ca foarte sugestiv pentru ideea pe care o avansam, experimentul facut de o echipa de ingineri, biologi si logicieni, condusi de cercetatorul M. McKay. S-a constatat ca inteligenta efectueaza permanent o filtrare a informatiei brute receptionate. Efectul e evident atât în zona constienta, cât si în cea subconstienta a activitatii cerebrale.
  20. 20. 20 Aportul Sitemelor cu Baze de DateEchipa de cercetatori a suprapus peste o miscare browniana doua retele reticulare deforme diferite obtinând imagini deosebite ale aceleiasi existente, imagini rezultate dinfiltrarea, stimulata de retea, dar operata de factorul uman (Fig. 1.2.1).Filtrarile operate au fost induse de structurile particulare prin care a fost privitaaceeasi realitate din care au fost separate detalii initial pierdute în multimea deevenimente dezordonate. + ⇒ Miscare Retea Miscare Browniana Circulara Centrifuga + ⇒ Miscare Retea Miscare Browniana Reticulara Circulara Fig. 1.2.1 Experimentul lui M. McKayOrganizarea informatiilor si datelor în modele si structuri permite, asemenea Retelelorde Filtrare, evidentierea unor Relatii esentiale existente în Colectiile cu care opereazautilizatorul, dar care ramân pentru el pierdute în multitudinea de evenimenteparticulare, supuse hazardului, daca nu i se ofera Instrumente adecvate de introspectie,de scrutare a Planurilor Secunde, generatoare de Legi de Organizare.Înarmate cu metode impuse de necesitatea rezolvarii cazurilor concrete, SBD nu s-ausfiit sa caute un raspuns la întrebari mari: “Poate Independenta sa fie o cale spre Unitate?”Intentionam sa aducem, pe tot parcursul acestei lucrari argumente în sprijinul Ideiloravansate. Personalizarea fiecarei componente a Sistemelor cu Baze de Date prinextinderea conceptului de Independenta va reprezenta punctul central din care vor luanastere argumentele promise.
  21. 21. Continutul Lucrarii 211.3 Continutul Lucrarii Lucrarea contine prezentarea conceptelor principale dezvoltate în activitatea depromovare a Sistemelor cu Baze de Date. Sunt referite totodata conceptele matematice care austat la baza notiunilor cu care opereaza Bazele de Date, în special cele referitoare la ModelulRelational. Aceasta cuprindere face expunerea mult mai accesibila si pentru specialistul care aîntrerupt contactul cu studiul teoretic. Este recomandata si specialistului în domenii conexe,care poate gasi interesante solutii ce-i prilejuiesc comparatii cu cele din domeniul propriu deinteres si totodata îl îndeamna sa vada unde anume conceptele prezentate, suficient decuprinzatoare, l-ar putea ajuta. Parcurgerea lucrarii este utila atât pentru studentul preocupat de studiul disciplinelor deprogramare a calculatoarelor, dar si pentru specialistii care activeaza în domeniul SistemelorInformatice si care pot gasi în lucrare suficiente solutii pentru probleme practice. Lucrarea abunda în ilustratii grafice bazate pe simboluri si formalisme careconcentreaza expunerea prin evitarea descrierilor extinse, greu de urmarit si totodata ofera unsuport bogat de exemple lamuritoare. Se insista de asemenea pe frecvente clasificari, însotite de definitii de termeni si notiuni,strict necesare pentru a putea discuta despre un domeniu dinamic de probleme în careelaboratorii de produse comerciale, ba chiar si Colectivele de Lucru în domeniulTerminologiei, fac cu greu fata necesitatilor de unificare. Lucrarea e structurata pe 7 Sectiuni principale, detaliate poate prea amanuntit peSubsectiuni. S-a preferat aceasta detaliere pentru a oferi cititorului, înca de la lecturaCuprinsului, o orientare în continutul lucrarii si de asemenea posibilitatea regasirii rapide aunui anume subiect. Situatia e ceruta si de faptul ca acelasi subiect este reluat în sectiunidiferite, apelându-se la forme diferite de prezentare si unghiuri diferite de vedere. Prezentarileintuitive alterneaza cu reluari riguros definite, care vin sa fixeze materialul initial, oferind obaza si pentru specialistul interesat în cercetarea domeniului. Aceste sectiuni de prezentare au ca axa de organizare Definitia Bazelor de Date la cares-a oprit autorul si care e prezentata înca în sectiunea 2.2. Sunt urmarite asadar elementele de Descriere a Structurilor de Date privite înindependenta lor fata de proceduri, alaturi de cele ale Limbajelor de Manipulare a Datelor încele doua forme de realizare, prin Navigare si prin Specificare. Pentru a completa cerinta impusa de prelucrarea Volumelor mari de Date sunt tratate însectiunea 6 problemele ridicate de Prelucrarile Tranzactionale, Refacerea Bazelor de Date încaz de incident si Controlul Accesului la Date. Acestor subiecte li se adauga o prezentare finala concentrata asupra viitorului dedezvoltarea a Sistemelor cu Baze de Date. Materialul e completat cu prezentari de informare documentara reunite în câtevasectiuni de Anexa. O Lista de Figuri si Tabele, precum si un Index de Termeni asigura, alaturide cuprinsul detaliat, instrumente de consultare punctuala rapida a întregului material continutîn lucrare.
  22. 22. 22 Continutul LucrariiIn cele ce urmeaza se prezinta continutul celor sapte sectiuni principale ale lucrarii. - Sectiunea 1 – IntroducereSe scoate în evidenta interesul unuia din cele mai raspândite domenii de preocupare înprelucrarea automata a datelor, cel al Sistemelor cu Baze de Date. Este subliniataimportanta cunoasterii rezultatelor obtinute în aceasta sfera de preocupari, cât si ainstrumentelor puse la dispozitia utilizatorilor. - Sectiunea 2 – Sisteme cu Baze de DateSectiunea îsi propune sa prezinte personalitatea Sistemelor cu Baze de Date, ca mijloacespecifice de abordare a problemelor de conceptie, proiectare si implementare asistemelor cuprinzatoare de prelucrare a informatiilor si datelor.Un istoric al aparitiei si consolidarii conceptelor, atât de specifice domeniului, econsiderata necesara în aceasta parte a lucrarii. Se initiaza prezentarea conceptuluiconsiderat fundamental pentru Sistemele cu Baze de Date si anume IndependentaStructurala. Multiplele forme de aparitie ale acestei proprietati definitorii a structurilorde tip Baza de Date, vor contribui în sectiunile ce urmeaza la nuantarea conceptului.Pornind de la Independenta Structurala se sintetizeaza o definitie a Bazelor de Date,supuse de-a-lungul evolutiei lor la multe interpretari si chiar denaturari. Aceastadefinitie este apoi urmarita pe tot parcursul lucrarii, prin acumularea de caracteristici sidirectii de preocupari, toate venind sa încarce cu continut formularea initiala foarteconcentrata.Enumerarea avantajelor principale pe care le aduce viziunea de Sistem cu Baza de Date,întaresc conturul domeniului. Ca exemplu, se prezinta succint Baza de Date care adeschis preocuparile legate de separarea datelor de proceduri si anume PrelucrareaStructurilor de tip Nomenclator. - Sectiunea 3 – Concepte de BazaPrezentarea Conceptelor de Baza este grupata în jurul notiunilor de Multimi si Relatii.Acestea vor contribui mai târziu la construirea Modelului Formal al Structurilor deInformatii si Date, ce va fi utilizat ca model de referinta pentru toti termenii introdusiulterior. Am considerat foarte utila aceasta formalizare întrucât ea evita confuziile într-un domeniu ce sufera de o inflatie terminologica.Aceeasi idee ne-a condus si în cazul prezentarii raporturilor Informatie – Data, a carorcircumscriere într-o acceptiune adecvata demersului lucrarii, am considerat-o foarteutila pentru operarea cu termenii Structurilor de Informatii si Date. Antinomia Date –Proceduri vine sa adânceasca cutele de expresie ale produselor cu pretentii de Baze deDate. Este reluata ideea structuralista a Programarii Structurate, prezentata în paralel cuStructura atasata, dar separata a Datelor, la care însa se adauga viziunea Functionalaintrodusa de Virtualizarea Datelor, atât de proprie Bazelor de Date si care reapropieProcedurile de Date.Toate conceptele prezentate sunt în continuare utilizate si particularizate în prezentareaStructurilor de Informatii si Date. Se începe cu prezentarea conceptelor de Organizare,Structura si Acces, cu insistenta asupra acceptiunilor în definirea nivelelor Logic – Fizicîn reprezentarea datelor.
  23. 23. Continutul Lucrarii 23Se consacra un capitol al acestei sectiuni pentru motivarea importantei recunoasteriiStructurilor Fundamentale pentru analiza si sinteza structurilor complexe, dar si pentrucompararea diferitelor Modele de Date ale SGBD-urilor, pentru evaluareaperformantelor si a perspectivelor lor de evolutie. Problema Structurilor Fundamentalee reluata în lucrare ori de câte ori se face o trecere în revista a constructorilor destructuri, punându-se accentul cuvenit asupra faptului ca orice Model de Date esteatunci stapânit când se cunosc formele de implementare a cestor tipuri de structuri dedate.Metodele de reprezentare, în special cele ce apeleaza la conciziunea grafica, gasesc unspatiu suficient în capitolul care urmeaza si creeaza o baza pentru întelegerea usoara aexemplelor redate în lucrare. Fara o parcurgere atenta a conventiilor propuse, conventiiîn marea majoritate întâlnite în literatura de specialitate (cu exceptia Arborelui deStructura a Datelor) interpretarea exemplelor foarte numeroase din lucrare va întâmpinadificultati.Aplicarea conceptelor cu care s-a început sectiunea continua cu transpunerea lor înslujba disciplinarii gândirii celor care opereaza cu structurile în spatiul problemelorreale. Rafinarile necesare care se cer aduse prezentarilor Structurilor Fundamentaleîncheie aceasta sectiune. Viziuni ale unor producatori de notorietate în domeniulconstruirii Modelelor de Date sunt aduse la cunostinta prin intermediul produselorORACLE si ERWIN. - Sectiunea 4 – Modele de Informatii si DateSectiune vasta, întrucât îsi propune sa sustina ideea ca viitorul construirii SistemelorInformatice îl reprezinta metodele conceptuale, reprezentative, care dau prioritateabordarii de tip Top - Down (realizare de Sus în Jos), pe care nu uita sa o combine cudezvoltarile analitice, cumulative, de tip Bottom - Up (realizare de Jos în Sus).Procesele de Engineering (Generare automata Proiect din Model) si Reengineering(Completare Model cu detalii din Proiect), atât de familiare deja Bazelor de Date, stauchezasie pentru aplicarea acestei metode de lucru în mod industrial.In aceasta tratare Procedurile urmeaza sa migreze în Modelul de Informatii sau Date,care va deveni instrumentul esential pentru aducerea viziunii asupra problemei realeîntr-un singur punct, cel de reprezentare globala a realitatii de modelat. Când s-a reusitaceasta concentrare, reprezentarea câstiga o deosebita putere generativa pentru întregproiectul ce urmeaza sa prinda viata. Vor germina în mod natural Structuri de Date,Restrictii impuse, Proceduri asociate, Reguli de Comportament, Interfete de colaborarecu Utilizatorul, pe scurt tot ce urmeaza a se naste în sistem chiar fara a fi prevazuteanume în Specificatiile Initiale.Acest deziderat a determinat regruparea în aceasta sectiune atât a problemelorconceptuale, desfasurate în Spatiul Informatiilor, cât si a celor de proiectare, dezvoltateîn Spatiul Datelor. Sunt reunite de asemenea descrierile Structurilor de Date (propriiLimbajelor de Descriere a Datelor – LDD) împreuna cu descrierile de Proceduriasociate (proprii Limbajelor de Manipulare a Datelor – LMD).Sectiunea e împartita în doua parti consacrate Modelelor de Informatii si Modelelor deDate. Se regasesc aici exemplificate cele doua acceptiuni date anterior Informatiei capurtatoare a încarcaturii semantice conferite de utilizator Spatiului Modelat (Spatiul
  24. 24. 24 Continutul LucrariiInformatiilor) si Datei ca forma de reprezentare a Modelului în consonanta cuinstrumentul de prelucrare folosit (Sistemul de Calcul).Modelele de Informatii îsi încep prezentarea cu primul model de nivel înalt (fundamenatde colectivul profesorului Abrial), Modelul ECV (Entitate, Caracteristica, Valoare),continua cu Modelul Obiectelor Abstracte (fundamentat de lucrarile de cercetare alesotilor Smith) si se încheie cu un model propus de autor, Modelul Conceptual.Primul model contine definirea notiunilor de baza cu care continua sa opereze toatecelelalte modele dezvoltate: Entitate, Caracteristica, Valoare, Ansamblu de Entitati,Baza de Date Logica, Baza de Date Fizica. Este prezentat aici si un model formal dedescriere a unui Spatiu de Informatii prin stabilirea corespondentelor între termeniimodelului ECV si notiunile din Teoria Multimilor.Al doilea model introduce notiunile generale de Abstractizare, Generalizare, Agregare,Obiecte Abstracte, Operatii Abstracte, Integritate a Obiectelor Individuale etc. Proiectialor într-o reprezentare relationala asigura legatura cu nota generala de aplicabilitate atuturor conceptelor prezentate.In ultimul model se încerca o generalizare a conceptelor anterioare într-o solutie noua,care alege ca si constructor unic Conceptul în forma lui de prezentare în Logica. Suntdiscutate problemele de Identificare si de Derivare a Conceptelor.Modelele de Date sunt tratate într-o sectiune care reuneste teme foarte diverse, de laTipurile de SGBD-uri, la Componentele diverselor Nivele de Abstractizare, de laTipurile de Structuri de Date la modurile de Procesare a Datelor. Aceasta sectiuneformeaza de altfel si centrul lucrarii prin problemele pe care le dezbate si prin solutiilepe care le ofera.Aici este cuprinsa si descrierea Modelului Relational, pe care prezenta lucrare îl vede cao solutie de neînlocuit în reprezentarea structurilor de date si în viitor, cel putin la unnivel intern, apropiat de calculator si netransparent pentru utilizator. Utilizatorul vapastra astfel posibilitatea alegerii unor viziuni agreate de reprezentare, a carorconsistenta conceptuala va fi garantata de posibilitatea proiectiei lor în Modelul InternRelational.Sectiunea debuteaza cu încadrarea Modelelor de Date utilizate de SGBD-uri încontextul general de modelare a structurilor. Modelele Stricte de Date sunt apoiprezentate în formele lor istorice de evolutie: Ierarhic, Retea si Relational, încercându-se o marcare a acumularilor realizate pe linia descrierii structurale.Întrucât atentia ramâne concentrata pe Modelul Relational, dezvoltarea facilitatiloroferite de el au ramas grupate în subsectiunile adiacente, ceea ce a încarcat indentareacapitolelor. S-a urmarit ca prezentarea sa fie organizata pe cele trei componente ale unuiModel Strict de Date: Structura, Restrictii, Operatii.Problemei Identificarii, Accesului si Ordonarii îi sunt consacrate dezbateri interesante înpartea de descriere a structurii.Alaturi de acestea o dezvoltare proprie a Tipurilor de Relatii în Structurile Relationalevin sa pregateasca terenul unor ample exemplificari de implementare a Proceselor deAbstractizare în Structuri Relationale precum si de aplicare a lor în practica deproiectare a Structurilor Relationale. O legatura fertila este astfel stabilita între
  25. 25. Continutul Lucrarii 25conceptele proiectarii în Modelul Obiectelor Abstracte si formele de implementare aacestor concepte în proiectarea Structurilor Relationale.Relatiile de tip Entitate, Legatura si Mixte sunt definite si utilizate apoi în construireaStructurilor Elementare a caror însusire va crea competenta viitorului proiectant deStructuri Relationale. Se creeaza acum baza pentru metodele de proiectare dezvoltate însectiunea 5.1.4, care vor asigura un înalt grad de Normalizare, fara apelul la algoritmiiconsacrati acestor activitati de Optimizare a Structurilor.Partea de descriere a Restrictiilor aduce detalii de realizare pentru clasificarile operate însectiunea 3.4.5. Sunt trecute în revista diferitele forme de încorporare a Conditiilor deValidare a Structurilor în Modelul de Date prin intermediul Constrângerilor, Triggerilorsi Procedurilor Stocate.Incursiunea în Limbajele de Manipulare a Datelor (Algebra Relationala - AR, StructureQuery Language - SQL si Query By Example - QBE, preced încadrarea acestor formede procesare în tipurile de limbaje, de Navigare, Specificare Operatoriala si SpecificarePredicativa.Nivelul extern este analizat prin prisma Independentei pe care acesta o prezinta fata deoperatiile care se efectueaza asupra structurii unei Baze de Date.Un set bogat de exemple de implementare a Structurilor Relationale de Baza încheiesectiunea, cu incursiuni în aplicarea Generalizarii si Agregarii, a construirii Structurilorde tip 1 – n si m – n, a descrierii Structurilor Ierarhice, a implementarii Datelor de tipMultime etc. - Sectiunea 5 – Optimizarea Modelelor de DateO sectiune aparte este rezervata problemei optimizarii Modelelor de Date. Divizata îndoua parti, sectiunea dezbate în prima parte conceptul de Normalizare a structurilor deDate, rezervând problema Optimizarii Cererilor pentru cea de a doua. Se observa si aicitratarea alternativa a Datelor si Procedurilor în ceea ce aduce particular fiecare elementîn problema optimizarii.O prezentare formalizata a Modelului Relational creeaza cadrul necesar dezbaterilorcentrate pe problema Dependentelor Functionale în structurile relationale. Noutateadezbaterii o constituie doua aspecte aparte asupra carora este concentrata atentia.Primul aspect este legat de încadrarea normalizarii structurilor în problematica mai largaa asigurarii Independentei Structurale, de data aceasta transferata la nivelul AtributelorDesciptoare ale Relatiilor.Al doilea aspect aduce în discutie alternativele conceptuale oferite pentru proiectareastructurilor consistente, vizavi de metodele pur analitice de optimizare „post festum” aunor structuri vicioase. Este aici interesant de urmarit demersul provocat de întrebarearetorica: ”De ce sa tratezi când poti simplu sa previi?”. Numeroase exemple ofera solutiipractice utile. - Sectiunea 6 – Securitatea Bazelor de DateAceasta sectiune vine sa raspunda ultimei parti a definitiei Bazei de Date avansata încaîn sectiunea 2. Prelucrarea Volumelor Mari aduc în atentie problema Securizarii Datelorprelucrate.
  26. 26. 26 Continutul LucrariiIn capitole dedicate sunt prezentate cele trei probleme importante legate de acest aspect.Prima tratare se refera la asigurarea Controlului Accesului la Date prin metodele clasicede interzicere a accesului neautorizat.Al doilea subiect concentreaza atentia asupra Prelucrarilor Tranzactionale în forma lorde implementare a restrictiilor ACID (Atomicitate, Consistenta, Izolare, D urabilitate).Si în acest caz nu se pierde ocazia de a încadra solutiile de rezolvare a StarilorConflictuale prin urmarirea asigurarii maximei Independente Procedurale aTranzactiilor.Problema Restaurarii Bazelor de Date în caz de incident este în final tratata în strânsalegatura cu prelucrarea tranzactionala. - Sectiunea 7 – Baze de Date EvoluateIn cadrul facilitatilor ce urmeaza a fi transferate catre Bazele de Date, cum ar fi cele deDeducere de Fapte, Distribuire de Resurse, Creare de Viziune Obiectuala sunt gasitenoi prilejuri de a privi sub alte aspecte problema Independentei Structurale.In cazul Bazelor de date Deductive problema Independentei reiese ca forma deMaterializare a Datelor prin functii de Calcul Logic, ceea ce readuce în discutieopozitia Redondanta – Inconsistenta. Se reitereaza importanta procesului deductiv nuatât sub aspectul evitarii redondantei, cât sub aspectul asigurarii consistentei, prinevitarea memorarii datelor dependente ca date ce pot fi aduse în contradictie prinactualizare independenta.In cazul Bazelor de Date Distribuite atentia e îndreptata catre problema IndependenteiSurselor de Date. Încalcarea unicitatii datelor din motive de performanta, prinacceptarea replicarii, determina construirea unor proceduri de sistem care sa transferecontrolul consistentei Bazelor de Date Distribuite din Structural în Procedural.In cazul Bazelor de Date Obiectuale problema Independentei e tratata mai amplu. Inprimul rând prin sublinirea structurii obiectuale ca forma de asigurare maxima aIndependentei elementelor sale, fie ele Date sau Proceduri.In al doilea rând se atrage atentia asupra pericolului pe care îl reprezinta implementareala nivel intern a structurilor obiectuale nenormalizate, prin eliminarea ModeluluiRelational.Acestui subiect îi este consacrat si capitolul de consideratii critice. Se acrediteaza dinnou ideea ca Viziunea Obiectuala, adaptata în general pozitiei Utilizatorului, nu trebuiesa constituie o solutie pentru construirea Nivelului Conceptual, ci o alternativa aNivelului Extern al unei Baze de Date, capabil în aceasta forma sa implementeze viziunimultiple asupra aceleiasi Structuri de Date. Si în acest caz sursa pentru Structura deDate a Obiectelor se recomanda a fi alcatuita din Vederile consacrate Structurilor deBaza de Date, împreuna cu tot arsenalul de Proceduri Stocate aferent.Consideram ca, în sprijinul ideilor avansate, vine întreaga evolutie prezenta ainterfetelor create pentru a avea acces la Sursele de Date din orice mediu (ClientSpecializat – Thick Client, Client Banal – Thin Client, Interfete Vocale, Interfete MassMedia etc.) utilizând Tehnologia Obiectelor Active.
  27. 27. Continutul Lucrarii 27PARTEA a 2 -a SISTEME cu BAZE de DATE Legate într-un fel de Partea Introductiva, sectiunile prezentei Parti initiaza cititorul neavizat în problematica Sistemelor cu Baze de Date (SBD). Sectiunile incluse pornesc de la o fundamentare istorica a preocuparilor în domeniu, definesc Conceptul de Baza de Date, consolidându-l cu exemple. 2.1 – Aparitia Conceptului de Baza de Date – o incursiune istorica în Prelucrarea Automata a Datelor subliniaza modul natural de aparitie a preocuparilor legate de cresterea performantelor calitative si cantitative în Prelucrarea Informatiilor si Datelor. 2.2 – Avantajele Utilizarii Bazelor de Date – sunt concretizate o suma de avantaje, în prezent indispensabile în conceperea si utilizarea Sistemelor Complexe, pe care le ofera abordarea acestora ca Sisteme cu Baze de Date. 2.3 – Exemple de Baze de Date – se prezinta Structura primului Sis tem cu Baze de Date, a carui actualitate se mentine si în prezent prin modul de Proiectare si prin Avantajele finale oferite..
  28. 28. 28 Nivele de Abstractizare într-un SBD2 Sisteme cu Baze de Date Ca orice concept care si-a câstigat o anume popularitate, si cel al Bazelor de Date nueste unul de trecut cu vederea din aceasta privinta, cel cu care ne vom ocupa în continuare nu ascapat de alterare pâna la chiar golirea de continut. Desi credem ca orice sechestrare aconceptului de BD de catre o singura categorie de utilizatori, fie ea chiar reprezentata decercetatori în domeniul dependentelor operatoriale abstracte, este neavenita, dorim sa limitamacceptiunea termenului prin circumscrierea domeniului care a putut sa reziste atâta timp înlumea diversa a teoreticienilor, comerciantilor si utilizatorilor.2.1 Aparitia Conceptului de Baza de Date In paginile care urmeaza vom încerca sa parcurgem pe scurt un istoric de aparitie anecesitatii de abordare a prelucrarii datelor de volum din ce în ce mai mare, care a determinatfundamentarea acelor concepte care au stat la radacina Sistemelor cu Baze de Date. Existadesigur destule voci care sustin ca nu e nevoie sa acordam o asa atentie trecutului si sa neconcentram mai mult asupra cerintelor prezentului. Raspunsul nostru consta în faptul caprezenta lucrare îsi propune sa se ocupe mai mult de viitor si de aceea rememorarea drumuluiparcurs de SBD, deloc neglijabil în timp, este o chezasie a presupunerilor corecte de evolutie înviitor a acestor sisteme. Nu putem însa omite nici aportul pe care întelegerea corecta a noutatiiconceptelor promovate de SBD o are la utilizarea lor în prezent. Ne referim în special larecuperarea importantei pe care Sursele de Date, construite solid, o au în prezent si o vor aveaîn viitor pe tarâmul prelucrarii de informatii.2.1.1 Nivele de Abstractizare într-un SBD Aparitia Bazelor de Date a fost o urmare fireasca a dezvoltarii tehnologiilor în procesulde prelucrare a datelor. Aceste transformari pot fi urmarite sub doua aspecte: o sub aspect cantitativ – ca o crestere a numarului datelor ce urmau a fi prelucrate automat; colectii de date incluzând milioane de date care se cereau memorate, actualizate, regasite, calculate si transmise cu ajutorul dispozitivelor automate de calcul (calculatoare si retele de interconectare) o sub aspect calitativ – ca o crestere a complexitatii structurii datelor prelucrate atât în ceea ce privea relatiile descrise între date, cât si a distribuirii datelor, puternic legate prin intercorelare, pe diferitele medii de stocare Trei etape pot fi semnalate în procesul de evolutie prezentat anterior: o Prima etapa – Separarea Numelor de Valorile datelor o A doua etapa – Cresterea Complexitatii datelor prelucrate o A treia etapa - Separarea Datelor de Proceduri Separarea Numelor de Valorile datelor determina aparitia a doua nivele de descriere aacestora: o Un nivel Concret de descriere – descriere cu ajutorul Valorilor numit nivel Fizic de descriere (descriere de Instanta)

×