Baze de date
Introducere in bazele de date - modele de date (entitate, atribut, articol, tabel, abstractizare, tipizare, instantiere, agregare)1.1. Organizarea interna a datelor (masiv, inregistrare, fisier); Modele de date (entitate, atribut, articol, tabel, abstractizare, tipizare, instantiere, agregare); Baza de date, informatie, data 1.2. Baza de date: componente, aplicatie, tipuri, proprietati, limbaje Lumea in care traim, lumea reala, este un imens sistem ce poate fi modelat ca o infinita colectie de date (baza de date). Impedimentul il constituie insa capacitatea calculatoarelor si a programelor de prelucrare, care nu ar avea cum sa stocheze si sa analizeze un asemenea bagaj de informatii. In memoria calculatorului datele se stocheaza sub forma de: masive (colectii de date caracteristice vectorilor si matricelor) si inregistrari (unitati organizationale de baza pentru reprezentarea si prelucrarea interna a colectiilor de date). Bazele de date cu care se modeleaza lumea reala pot fi: baze de date relationale BDR (cele mai utilizate), baze de date orientate obiect BDOO, baze de date distribuite BDD, etc. Modelarea oricarui sistem din lumea reala porneste de la realitate si se exprima printr-o entitate. Definitie: Numim entitate orice existenta din lumea inconjuratoare, orice realitate. Entitatea este o notiune primara, ea nu se poate defini formal. Entitatile sunt caracterizate prin caracteristici sau proprietati. Exemplul 1: Entitatea SALARIATI are proprietatile: Cod; Nume prenume; Sex; Permis conducere; Operare calculator; Varsta; Studii. Observatii In cazul BDR intre entitati exista relatii. O relatie poate fi de asemenea considerata o entitate. In cazul BDOO se lucreaza cu obiecte care sunt entitati cu identitate proprie caracterizate prin stare si comportament. Orice entitate din lumea reala este un obiect si reciproc, orice obiect reprezinta o entitate din realitate [12]. De la lumea reala compusa din entitati si proprietatile acestora se trece la lumea reprezentarilor in care fiecarei proprietati i se asociaza un atribut care ia valori intr-un anumit domeniu. Astfel, analistul pentru baze de date: Va analiza proprietatile entitatilor; Le va trece prin filtrul mintii; Le va reprezenta; Va asocia fiecarei proprietati a unei entitati un atribut si ii va da valori intr-un anumit domeniu; Observatie. In majoritatea cazurilor, domeniile sunt submultimi ale multimii numerelor reale, intregi sau siruri de caractere; Spunem ca analistul face trecerea de la lumea reala la lumea imaginara sau lumea reprezentarilor. Exemplul 2 Fie entitatea SALARIATI cu proprietatile din exemplul anterior. Atributele atasate fiecarei proprietati a entitatii vor fi: cod, nume, prenume, sex, limbi straine de circulatie internationala cunoscute, permis conducere, operare calculator, varsta, studii si vor lua valorile: Cod cu valori de la 1 la numarul salariatilor Nume prenume cu valori numele si prenumele salariatilor Sex: masculin, feminin. Limbi straine de circulatie internationala cunoscute bine: engleza, franceza, germana, rusa. Permis de conducere: da, nu. Operare pe calculator: da, nu. Varsta: 18-25 ani, 26-35 ani, 36-45 ani, 46 si peste. Studii: universitate, studii postuniversitare; colegiu, scoala postuniversitara; liceu, cu Bacalaureat; 8-10 clase. Cand totul va fi bine analizat se va trece la reprezentarea lor in date. Informatiile despre fenomenele lumii reale care au devenit atribute in asocierea facuta de analist in lumea reprezentarilor vor fi numite in lumea datelor articole si vor avea de asemenea valori. In lumea datelor, atributelor care sunt explicate amanuntit in lumea reprezentarilor, li se pot atasa prescurtari, codificari, astfel incat sa fie usor introduse de operatori si usor de prelucrat de catre programele specializate. Exemplul 3 Atributul Limbi straine de circulatie internationala cunoscute bine va deveni articolul LS cu valorile: pentru engleza pentru franceza pentru germana pentru rusa Atributul Sex va deveni articolul Sex cu valorile: 1 pentru masculin 2 pentru feminin Atributul Permis de conducere va deveni articolul PC cu valorile: pentru da pentru nu Atributul Operare pe calculator va deveni articolul OC cu valorile: pentru da pentru nu Atributul Varsta va deveni articolul Varsta cu valorile: pentru grupa de varsta 18-25 ani pentru grupa de varsta 26-35 ani pentru grupa de varsta 36-45 ani pentru grupa de varsta 46 si peste Atributul Studii va deveni articolul Studii cu valorile: pentru studii universitare, studii postuniversitare pentru studii colegiu, scoala postuniversitara pentru studii liceu, cu Bacalaureat pentru 8-10 clase Ultima faza a modelarii sistemului va fi cea de introducere efectiva a datelor in baza. Aceasta consta in cazul bazelor de date relationale (BDR) din crearea unuia sau mai multor tabele. Exemplul 4: Studiind entitatea SALARIATI pe un esantion de 8 subiecti vom obtine un tabel de forma:
La baza alcatuirii unei baze de date sta transformarea datelor disparate in informatii, munca realizata de analist in trecerea prin lumea reprezentarilor si lumea datelor. Datele pot fi structurate in ansambluri logice, ierarhizate sau interconectate cu alte categorii de informatii mai mult sau mai putin structurate. Elementele principale ale unei BDOO sunt: clasa, obiectul, atributul, metoda, etc. Elementele principale ale unei BDR sunt: tabelul, campurile si inregistrarile. Tabelul urmator face o paralela oarecum didactica intre ele-mentele unei BDOO si ale unei BDR [22]:
Tabelul este format din coloane si linii. Coloanele se numesc campuri si cuprind valorile atributelor, numele lor fiind date de articole. Camp, coloana si atribut inseamna acelasi lucru. Un tabel poate contine intre zero si n campuri, n fiind dat de programul de prelucrare. Liniile reprezinta datele, se numesc inregistrari si cuprind valori ale articolelor. Ele sunt identificabile prin nume. Campurile contin date: colectii de fapte, cifre, care detin informatie. Datele consuma resurse si au deci asociat un cost. Datele sunt memorate, analizate, comparate si prin procesarea si rafinarea lor sunt transformate in noi informatii. Informatiile rezultate in urma transformarii datelor, ajuta la luarea deciziilor, pot crea valori. Decizia este rezultatul activitatii constiente a omului, ea se bazeaza pe acumularea de cunostinte si crearea de conexiuni in vederea efectuarii de noi actiuni care implica antrenarea unor resurse in scopul realizarii unor obiective [6]. Informatia poate fi definita, identificata, evaluata, structurata si prelucrata pentru a fi stocata sau memorata. Diferenta dintre date si informatii este urmatoarea: Datele sunt fapte culese din lumea reala in urma observatiilor si masuratorilor, iar informatiile sunt rezultatul interpretarii datelor de catre un anumit subiect si confera acestuia capacitatea de a lua decizii [15]. O modalitate de structurare si vizualizare a datelor este abstracti-zarea, care concentreaza proprietatile semnificative si neglijeaza aspectele nerelevante. Exemple de abstractizare: Tipizarea prin care se definesc tipurile pornind de la clase de obiecte asemanatoare. Tipul ajuta la realizarea clasificarii multimilor semnificative de obiecte. Opusa clasificarii este instantierea. Agregarea prin care un obiect este alcatuit din componentele sale. Din nevoia de stocare si regasire rapida a datelor si a informatiilor s-au dezvoltat aplicatii specifice care lucreaza cu baze de date. Dintre sistemele de prelucrare a bazelor de date (pachete software pentru baze de date) cele mai utilizate sunt: Pentru baze de date de dimensiuni mici si medii: FoxPro, Access, Excel, Delphi. Pentru baze de date complexe: Oracle, Informix, SyBase, Microsoft SQL Server, IBM DB2. Observatii: Microsoft Access, este usor de utilizat, este folosit pentru baze de date care nu depasesc 2 gigabytes (2 milioane de bytes) de informatii si care au simultan un numar limitat de utilizatori. Oracle, Informix, SyBase, Microsoft SQL Server, IBM DB2, pot stoca date la nivel de terabytes (miliarde de bytes). Deoarece toate bazele de date functioneaza dupa aceleasi principii, in continuare vor fi prezentate exemple in ACCESS, trecand astfel in revista toate functiile bazelor de date si modul lor de functionare. Definitie: Se numeste baza de date o colectie persistenta, neredundanta, coerenta logic de date corelate. O alta definitie a bazei de date, luata din literatura de specialitate este urmatoarea: Definitie [2]: Se numeste baza de date o colectie partajata de date, intre care exista relatii logice (si o descriere a acestor date), proiectata pentru a satisface necesitatile informationale ale unei organizatii. O baza de date contine toate informatiile despre obiectele ce intervin intr-o multime de aplicatii, relatiile logice intre aceste informatii si tehnicile de prelucrare corespunzatoare. Inainte de a patrunde in domeniul bazelor de date orice utilizator, viitor informatician, a lucrat cu fisiere, care reprezinta tot o colectie de date. In cazul lucrului cu fisiere, fiecare utilizator isi defineste si utilizeaza fisierele de care are nevoie. Fisierul: are un nume, contine date de acelasi tip, este stocat, poate fi modificat la nivel de utilizator, poate contine dublari de date (rezultate in urma modificarilor si a accesului utilizatorilor), pot exista dubluri ale fisierului (rezultate in urma salvarilor multiple); dublurile de fisiere si dublurile datelor supraincarca memoria calculatorului si spatiile de stocare. Din enumerarea de mai sus rezulta o serie de dezavantaje ale lucrului cu fisiere: Redundanta ridicata (din cauza existentei acelorasi date in mai multe fisiere); Acces greoi la date; Dependenta datelor de programele sub care a fost creat fisierul; Inconsistenta datelor (modificarile facute asupra datelor dintr-un fisier nu apar in toate fisierele ce contin dubluri ale datelor respective). In cazul lucrului cu baze de date, datele sunt definite o singura data si sunt accesate de diferiti utilizatori. Un utilizator al bazei de date trebuie sa poata: Adauga fisiere noi, vide; Insera noi date in fisierele existente; Regasi datele din fisiere; Actualiza date; Sterge date; Elimina fisiere din baza de date. Pentru a putea avea acces la toate aceste operatii au fost concepute SGBD-urile (sisteme de gestiune a bazelor de date). In lucrul cu bazele de date intervin o serie de termeni uzuali: Articol: unitate elementara de date ce poseda un nume Tipul unui articol: este dat de tripletul identificator (nume), o descriere a multimii valorilor pe care le poate lua, o descriere a formatului de memorare Set de date: multimea inregistrarilor Identitatea unui obiect: adresa logica invarianta (pointer). Identificarea este facuta automat de sistem (BDOO). Cheie primara: elementul care identifica unic o inregistrare (in cazul BDR, echivalentul identitatii obiectului) Normalizare: procesul de determinare a numarului si a structurii tabelelor intr-o baza de date. Componente, aplicatie, proprietati, tipuri, limbajele bazelor de date Componentele ce intervin in realizarea unei baze de date: Baza de date in care sunt memorate datele; Sistemul care va gestiona si prelucra datele (SGBD); Dictionarul bazei de date (catalog de date sau metadate) in care sunt cuprinse documentatia legata de structura si tipul datelor, diferite statistici, etc. Contine schemele: interna, externa si proce-durile necesare trecerilor aferente, iar informatiile sunt memorate in forma sursa si obiect. Necesarul de aparatura (hard), Personalul uman autorizat (specializat sau nespecializat) ce va utiliza baza de date: beneficiarul, utilizatorii, operatorii, progra-matorii, administratorul, etc. Pentru a crea si prelucra o baza de date trebuie realizat un sistem de programe numit aplicatie care rezolva problemele cerute de beneficiar dupa urmatorii pasi:
Se fac codificarile atributelor si a valorilor lor, Se proiecteaza, se scriu si se testeaza programele, Se alcatuieste documentatia, Se introduc datele in baza prin incarcarea fisierelor,
Se intretine baza de date:
La proiectarea bazelor de date trebuie sa existe o comunicare perfecta intre cel care proiecteaza baza, cei ce o implementeaza si cei ce o utilizeaza. De analiza bazei, respectiv punctele 2 si 3 se ocupa analistul pentru baze de date, acesta planifica si realizeaza designul bazei. Programatorul de aplicatii intelege activitatea firmei sau a aplicatiei pe care urmeaza sa o implementeze; el dezvolta programe in timp (in diferite limbaje de programare: C, COBOL, PASCAL, etc.), gaseste noi informatii, realizeaza noi rapoarte. Deoarece orice firma care se respecta se dezvolta continuu si aplicatia pentru ea este in continua transformare. De toate programele dezvoltate pentru baza de date se ocupa programatorul de aplicatii. Un alt post cheie in realizarea unei baze de date il ocupa administratorul de baze de date. Acesta se ocupa cu modul de intrare a datelor in baza si cu buna functionare a bazei de date. El defineste schema conceptuala, schema interna si schema externa a bazei de date. Supervizeaza performantele bazei si asigura evolutia acesteia, raspunzand de toate modificarile ce se fac asupra bazei, avand grija ca in timp sa reanalizeze baza si sa ceara schimbari ale acesteia atunci cand datele o impun, schimbari care vor fi compatibile cu baza initiala. Administratorul este cel care va da drepturi de acces utilizatorilor si va avea grija ca baza sa indeplineasca toate cerintele beneficiarului si a utilizatorilor. El defineste procedurile de restaurare si procedurile de salvare si este raspunzator cu modul de exploatare al bazei de date. Analistul, programatorul si administratorul sunt utilizatori spe-cialisti. Pe langa ei exista si asa numitii utilizatori nespecialisti. Acestia nu cunosc structura bazei de date. Pentru ei se straduiesc specialistii sa faca operarea cu baza de date cat mai prietenoasa si mai apropiata de vorbirea curenta. Printre proprietatile ce trebuie indeplinite de orice baza de date enumeram: Confidentialitate sa aiba un mecanism de securitate bine pus la punct Flexibilitate sa raspunda oricaror interogari ale beneficiarului si sa poata fi usor modificabila in timp atunci cand apar elemente noi ce trebuie introduse, analizate si prelucrate; Sincronizare sa poata fi exploatata simultan de un numar mare de utilizatori; Integritate sa poata valida si recupera datele in caz de dete-riorare, adica sa pastreze corectitudinea informatiilor continute in baza de date Reducerea redundantelor prin identificarea informatiilor comune si alcatuirea corespunzatoare a aplicatiilor Eliminarea inconsistentelor ce rezulta din reducerea redundantelor; Costuri minime de intretinere si prelucrare. Tipuri de baze de date [12]: Baze de date operationale stocheaza datele privind tranzactiile dintr-un anumit domeniu de activitate; Baze de date multidimensionale baze de date utilizate in procesul de management, provin din surse diferite, sunt nevolatile, sunt periodizate in timp (istorice); Baze de date externe pot fi accesate pe baza unui tarif sau gratis on-line. Dupa modul de accesare pot fi: Baze de date colective pot fi accesate de mai multi utilizatori; Baze de date individuale pot fi accesate numai de gestionarul bazei. Dupa localizare pot fi: Baze de date locale; Baze de date distribuite Dupa tipul datelor stocate in ele: Baze de date multimedia; Baze de date textuale (gestioneaza documente). Bazele de date folosesc mai multe tipuri de limbaje: Limbajele LDD (limbaje pentru definirea datelor). LDD-urile sunt specifice fiecarui SGBD desi functiile principale pe care le indeplinesc sunt aceleasi. SGBD-ul, prin intermediul LDD, defineste datele intr-o forma unificata numita schema sursa si apoi compileaza schema intr-o forma interna numita schema obiect. Un LDD defineste: Tipurile de date; Relatiile dintre date; Atributele asociate relatiilor, structura lor, domeniul lor de definitie (ex: numele, forma de memorare, lungimea atributelor unei entitati); Modul de accesare a datelor; Criteriile de validare automata a datelor. Limbajele LMD (limbaje pentru manipularea datelor), limbaje spe-cializate care actioneaza prin comenzi cu o anumita structura. Cu ajutorul lor utilizatorii autorizati au acces la operatiile de inserare, actualizare, stergere a datelor. Aceste limbaje se mai numesc si limbaje de interogare. Pentru a obtine interogarile se folosesc o serie de operatii si moduri precum: Operatii: aritmetice, logice, de manipulare (adaugare, stergere,..), de editare, etc. Mod de selectie: for, while, Mod de acces: secvential, indexat, Mod de editare. LMD-urile pot fi: Procedurale (opereaza in bazele de date inregistrare-cu-inregistrare permitand localizarea datelor prin cautari succesive); Nonprocedurale sau declarative (Opereaza in bazele de date la nivel de seturi de inregistrari, cauta datele dupa continut fara a specifica procedurile de acces. Ele permit definirea oricarei cereri de interogare a unei BD). Limbajele LCD (limbaje de control al datelor) care sunt raspun-zatoare de: Integritatea datelor, Confidentialitatea datelor; Performantele bazei de date.
|