2. Teoria bazelor de date i a sistemelor de gestiune a bazelor de date Organizarea datelor n baze de date. Sisteme de gestiune a bazelor de date. Un sistem de calcul din compunerea sistemului informatic are organizate datele ntr-o ierarhie care ncepe cu bii i octei (bytes) i continu cu cmpuri, nregistrri, fiiere, baze de date i depozite de date. Sistemul baz de date se definete ca fiind ansamblul de colecii organizate de date, mpreun cu descrierea datelor i a relaiilor dintre ele, care reprezint, complet, corect i coerent, universul real al organizaie economice (compartimentului specializat al acesteia) prin caracteristicile relevante (reprezentative) ale elementelor sale, percepute de sistem prin semantica lor (semnificaia lor real) i prin legturile dintre aceste caracteristici (fig. 2.1). Conceptul de baz de date a fost introdus n anul 1969, cu prilejul prezentrii primului raport CODASYL. Ulterior i alte grupuri de lucru specializate (IIBM, ANSI, DBTG) i-au adus contribuia la standardizarea conceptelor din teoria bazelor de date.
Fig. 2.1 Definirea conceptului de baz de date
Colecia de date, se definete ca fiind mulimea de valori (date) pe care le iau caracteristicile reprezentative ale unui element din universul real al organizaiei economice, dac la fiecare moment de timp se aplic asupra lor un predicat, o aciune din realitatea organizaiei economice, mpreun cu domeniile de definiie reale ale acestor caracteristici. ntr-un sistem baz de date, descrierea datelor const n descrierea structurii de date a sistemului baz de date i n descrierea regulilor care asigur coerena datelor, n raport cu universul real al organizaiei economice reprezentat. Se reamintete c tipurile
UNIVERS REAL DOMENIUL CONCEPTUAL
COLECII DE DATE DOMENIUL SEMANTIC
**********
CARACTE- RISTICI BAZA DE DATE
SGBD Percepie Re Percepie Reprez 8 de structuri logice de date sunt: punctual, liniar, arborescent, reea, relaional, orientat pe obiecte (OO). Structura de date a unui sistem baz de date este determinat de modelul abstract de reprezentare a datelor folosit, numit baz de date. n funcie de tipul stabilit pentru legturile dintre datele din coleciile de date (ierarhic, reea, relaional, orientat pe obiecte), s-au realizat mai multe modele abstracte de reprezentare a datelor, dar fiecruia i corespunde o singur structur de date a sistemului baz de date. Din acest motiv s-a generalizat utilizarea conceptului de baz de date, BD sau DB (DataBase), care este folosit att pentru denumirea structurii de date a unui sistem baz de date, ct i pentru denumirea modelului abstract de reprezentare a datelor care o determin. Mai mult chiar, conceptul de baz de date denumete att colecia organizat, ct i structura de date folosit pentru reprezentarea acesteia n sistemul baz de date. Sistemul de gestiune a bazei de date, SGBD sau DBMS (Data-Base Management System) reprezint un ansamblu complex de programe care asigur interfaa dintre baza de date i utilizator. O baz de date trebuie s satisfac urmtoarele condiii: structura bazei de date trebuie s asigure informaiile necesare i suficiente pentru ndeplinirea cerinelor de informare i decizie; s asigure o independen sporit a datelor fa de programe i invers; s se realizeze o redundan (cardinalitatea informaiilor coleciilor de date) minim i controlat a datelor memorate; accesul la datele stocate n baza de date s fie rapid i eficace. O baz de date poate s fie exploatat, de regul, n regim de prelucrare pe loturi (batch) i n regim conversaional. Accesarea bazei de date se realizeaz prin aplicaii generale, programe de aplicaie, limbaje de manipulare autonome (procedurale i neprocedurale), interfee specializate cu limbajele de programare clasice etc., local sau de la distan, prin utilizarea calculatoarelor singulare sau a reelelor de calculatoare. Rezultatele interogrilor utilizatorilor se prezint sub form vizual, listat, prin memorare pe diveri supori tehnic de date, local sau la distan. Sistemul baz de date are rolul de organizare i stocare a unor volume mari de date, n vederea gestionrii, prelucrrii, distribuirii i utilizrii multiple, folosind sistemele de calcul, programele utilitare i programele de aplicaie. Pornind de la funcia sa, un sistem baz de date este format, ca structur general, din: colecii de date, baza de date, SGBD, programe de aplicaie i utilitare, precum i utilizatori. Dac conceptul de baz de date denumete att coleciile de date ct i structura de date folosit pentru reprezentarea acesteia, atunci structura general a sistemului baz de date este baza de date, SGBD, programe de utilizare, utilizatori. Arhitectura unui sistem baz de date este prezentat n fig.4.2. n conformitate cu specificaiile utilizatorilor finali (end-users), programatorii de aplicaie, avnd la dispoziie utilitare (programe specializate de proiectare) i prin colaborarea cu administratorul bazei de date (acesta lucreaz nemijlocit cu schema bazei de date), pun la punct programele de aplicaie. Aa cum s-a precizat deja, interfaa dintre baza de date i schema BD, utilitare i programele de aplicaie este sistemul de gestiune a bazei de date, SGBD. Obiectivele unui SGBD sunt, n principal, urmtoarele: asigurarea independenei datelor fa de aplicaie; 9 asigurarea redundanei minime i controlate a datelor; asigurarea tuturor facilitilor posibile de exploatare a datelor; asigurarea securitii i proteciei datelor mpotriva accesului neautorizat (inclusiv prin criptarea datelor); asigurarea coerenei i integritii datelor mpotriva tergerilor accidentale sau intenionate; asigurarea partajrii datelor (accesul concurent al utilizatorilor la baza de date); asigurarea nivelului de performan global (volum mare de date complexe gestionate cu un timp de rspuns acceptabil la adresarea cererilor de interogare din partea utilizatorilor multipli). Funciile generale ale unui SGBD sunt: 1. descrierea datelor (definirea structurii bazei de date prin intermediul limbajului de definire a datelor); 2. manipularea datelor (ncrcarea, actualizarea, prelucrarea i regsirea datelor cu ajutorul limbajului de manipulare a datelor); 3. utilizarea bazei de date (de ctre toate categoriile de utilizatori); 4. administrarea bazei de date. Fiecare grup de lucru pentru standardizarea bazelor de date (CODASYL i ANSI, n principal) a propus o arhitectur proprie a unui SGBD. Comenzile SGBD (DBMS) pot fi grupate n trei categorii de limbaje: a) limbajul de definire a datelor (DDL, Data Definition Language); b) limbajul de manipulare a datelor (DML, Data Manipulation Language); c) limbajul de descriere a stocrii datelor (DSDL, Data Storage Description Language). Limbajul de definire a datelor asigur, n principal: definirea tuturor tipurilor de nregistrri i de cmpuri de date, precum i asocierea corespondenei acestora cu nivelul conceptual; specificarea ordinii logice a cmpurilor de date; definirea cmpurilor ce vor fi folosite drept chei de cutare; definirea drepturilor de acces; definirea legturilor ntre tipurile de nregistrri. Limbajul de manipulare a datelor permite: parcurgerea structurilor i a legturilor existente; accesul la nregistrri prin adres sau prin coninutul acestora; actualizri ale nregistrrilor; reordonri ale cmpurilor de date; definirea tranzaciilor i a condiiilor de eroare. Limbajul de descriere a stocrii datelor ofer posibiliti de: asociere a fiierelor la programele de aplicaie, a dispozitivelor fizice, alocare de spaii de memorie; specificarea zonelor de lucru permanente i tranzitorii; definirea i izolarea datelor confideniale; specificarea structurilor de memorare, a mecanismelor de adresare, a modului de translatare a nregistrrii logice n nregistrare fizic; crearea indecilor asociai cheilor de cutare. 10 Operaiile ce se execut asupra unei baze de date sunt: creare; ncrcare (populare); consultare: cutare (selecie); actualizare: modificare, adugare articole noi, tergerea unor articole, ordonare (sortare, indexare), prelucrare etc.
Fig.2.2 Arhitectura unui sistem baz de date
Dicionarul de date (Data Dictionary) este un fiier care memoreaz definiiile datelor i caracteristicile lor ca: folosirea, reprezentarea fizic, proprietatea (cine este responsabil pentru ntreinerea lor), autorizarea i securitatea. Prin faptul c reprezint un inventar a datelor coninute ntr-o baz de date, dicionarul de date este un important instrument de management organizaional. n realizarea acestor dicionare de date se folosesc metadatele. Metadatele reprezint date despre date (nume, coninut, semnificaie, proprietar etc.). O baz de date este compus dintr-o mulime de atribute (cmpuri, coloane) i are asociat o mulime de date (linii, rnduri, nregistrri, articole). O nregistrare (record) reprezint o asociere a valorilor pentru fiecare cmp (field) al bazei de date. Cele trei nivele de organizare a datelor ntr-o baz de date sunt logic, virtual i fizic (fig.2.3).
Baza de date
SGBD PROGRAM DE APLICAIE SC HEMA UT ILITARE UTI LIZATORI ADMINISTRATOR PROGRAMATOR DE APLICAIE 11
Fig.2.3 Niveluri de organizare a datelor ntr-o baz de date
Nivelul logic sau extern (nivelul programatorului de aplicaie) calific o structur de date ce are o realitate n planul semnificaiei sau utilizrii, dar nu i n implementarea fizic; calific forma n care fiecare utilizator vede structurarea datelor, n funcie de aplicaia pe care o folosete sau n funcie de resursele de date pe care administratorul bazei de date i le pune la dispoziie. Nivelul virtual sau conceptual (nivelul administratorului bazei de date) se refer la definirea structurii datelor din baza de date astfel nct aceasta s ndeplineasc cerinele tuturor utilizatorilor, n condiii de redundan minim i controlat a acesteia. Nivelul fizic (nivelul inginerului de sistem) privete modul de stocare i de structurare a datelor pe suportul fizic de memorare a datelor (volum magnetic, cilindru, pist, sector, bloc, octet i bit). Structura virtual reprezint schema bazei de date, iar structura logic este denumit subschema bazei de date (concepia CODASYL). Astfel, se poate concluziona c SGBD (DBMS) asigur legtura dintre nivelul conceptual (virtual) i nivelul fizic. O nregistrare virtual se poate prezenta sub forma a una sau mai multe nregistrri fizice i poate participa la construirea unei sau mai multor nregistrri logice. ntr-o baz de date ideal datele sunt definite o singur dat i folosite ori de cte ori este necesar. n funcie de locul n care sunt memorate coleciile de date ce formeaz baza de date, se deosebesc: baze de date centralizate, CDB (Centralized DataBases), n situaia n care toate coleciile care formeaz baza de date sunt stocate pe un singur calculator; baze de date distribuite, DDB (Distributed DataBases), n situaia n care coleciile care formeaz baza de date sunt rspndite n nodurile unei reele de calculatoare i de comunicaii. Dup orientare, bazele de date pot fi generalizate i specializate. n cadrul DDBMS, accesarea bazelor de date distribuite, DDB se realizeaz, n principal, prin intermediul limbajului structurat de interogare, SQL (Structured Querry Language) i al arhitecturii Client/Server (acestea sunt prezentate pe larg n capitolul 7 al lucrrii). Realizarea unei baze de date se obine prin parcurgerea unor etape. SCHEMA EXTERN 1 SCHEMA EXTERN 2 SCHEMA EXTERN n
SCHEMA CONCEPTUAL
SCHEMA FIZIC NIVEL LOGIC NIVEL VIRTUAL NIVEL FIZIC 12 Coninutul acestor etape este dependent, de regul, de tipul bazei de date i de domeniul n care este ea folosit. Activitatea de analiz a sistemului economic presupune: a. analiza componentelor sistemului i a legturilor dintre acestea sau analiza structural n urma creia se definete modelul structural sau static al sistemului economic; b. analiza strilor sistemului i a tranzaciilor posibile ntre aceste stri n raport cu anumite evenimente. n urma acestei analize rezult modelul dinamic sau temporal; c. analiza cerinelor informaionale, n urma creia se definete modelul funcional al sistemului economic; d. integrarea modelelor sistemului economic (structural, dinamic i funcional) n scopul corelrii i completrii lor. Se face meniunea c analiza funcional a sistemului are ca scop determinarea transformrilor de date care se produc n cadrul sistemului n scopul satisfacerii cerinelor informaionale specifice acestui sistem. Transformrile de date se vor prezenta sub forma unei diagrame de flux a prelucrrilor (modelul funcional), n care nodurile reflect procesele de prelucrare informaional i arcele fluxurile informaionale ale datelor n baza de date. La proiectarea unei baze de date, procesul de normalizare ajut proiectantul bazei de date s creeze o structur a bazei de date care poate economisi spaiul de memorare a datelor i poate conduce la creterea eficienei prelucrrii datelor. Scopul normalizrii este de a minimiza redundana datelor. Erorile de introducere a datelor pot s compromit precizia i validitatea bazei de date. Utilizatorul poate s fie uneori n situaia de a nu contientiza faptul c el introduce date incorecte. Datele incorecte pot proveni, n primul rnd, de la apsarea greit a unor taste. Cele mai multe SGBD-uri pot preveni, dar nu pot elimina introducerile incorecte de date. Informaia furnizat de rutinele de prelucrare i de rapoarte este la fel de precis i corect n msura n care aceste caracteristici sunt prezente i la datele stocate n bazele de date. Formatul de cmp menine consistena datelor prin asigurarea unei structuri de introducere a datelor, aa cum se arat n figura urmtoare:
Formatul de cmp pentru CONT LA BANCA
Proiectantul bazei de date poate s prentmpine introducerea datelor incorecte prin: Format cmp CONT LA BANC ROXXAAAAXXXXXXXXXXXXXX XX Exemplu RO96RXBR00000004312679 X cifr, A - liter 13 - specificarea unui anumit format de cmp destinat pentru introducerea datelor (formatul de cmp este de fapt o imagine a cum trebuie s arate data atunci cnd aceast dat este introdus n baza de date); - utilizarea regulilor de validare a cmpurilor (acele specificaii prin care se filtreaz datele introduse ntr-un anumit cmp), a casetelor cu liste sau a formatelor predefinite. Lista subiectelor pentru pregtirea n vederea evalurii finale: ntrebri: 1. Cum se definete un sistem baze de date? 2. Ce condiii trebuie s satisfac o baz de date? 3. Care sunt obiectivele unui SGBD? 4. Caracterizai nivelele de organizare a datelor ntr-o baz de date. 5. Precizai etapele de realizare a unei baze de date.