luni, 14 noiembrie 2011

Baze de date - Concepte de baza


Conceptele de Data si Fisier


Chiar de la primele aplicatii informatice realizate cu ajutorul calculatorului s-a pus problema utilizarii unor tehnici eficiente de organizare, stocare si regasire a datelor. O informatie codificata si stocata pe un suport de memorare reprezinta ceea ce numim „data”. Din punctul de vedere al prelucrarii de calculator, in cadrul aplicatiilor, datele se definesc cu ajutorul unui nume (identificator), a atributelor pe care le are si de o valoare. Rezolvarea problemelor concrete cu ajutorul calculatorului presupune definirea unui algoritm adecvat pentru rezolvarea fiecarei probleme. Un algoritm este definit ca fiind o succesiune finita, corect definita si fara ambiguitati de operatii elementare care se aplica asupra unei multimi de date de intrare pentru a se obtine un rezultat. Algoritmul trebuie sa conduca la acelasi rezultat de fiecare data cand se aplica asupra aceleasi multimi de date de intrare
Organizarea datelor reprezinta procesul de identificare, definire, evaluare, structurare si memorare a informatiilor, in cadrul unui sistem informational. Prin organizarea datelor se realizeaza gruparea datelor in colectii de date omogene, se stabilesc care sunt relatiilor dintre date, dintre elementele colectiilor si dintre colectii, precum si modul de stocare a datelor pe suportul fizic de memorare.
Datele pot fi clasificate in functie de modul de alocare al memoriei, astfel existand date de tip static si date de tip dinamic. La datele de tip static, memoria este alocata la inceputul executiei programului, ramanand ocupata de respectivele date pe intreaga durata a executiei, pe cand la datele de tip dinamic memoria este alocata in momentul executiei programului, existand instructiuni care permit alocarea memoriei atunci cand datele sunt necesare si alte instructiuni care permit eliberarea respectivei zone de memorie in momentul in care datele nu mai sunt necesare.
Datele trebuie privite sub doua aspecte: fizic si logic. Din punct de vedere fizic, in cazul stocarii si prelucrarii cu ajutorul calculatorului datele sunt siruri de biti. Din punct de vedere logic, datele au o anumita semnificatie si sunt de mai mult tipuri, functie de semnificatia lor.
Datele pot fi simple (elementare), respectiv compuse (structurate).
Datele simple (elementare) sunt date independente unele de altele din punctul de vedere fizic, adica al reprezentarii pe suportul de memorare, chiar daca din punct de vedere logic exista interdependente. Tipul de data precizeaza care sunt valorile datei. Daca pe parcursul procesului de prelucrare data pastreaza aceeasi valoare este numita data constanta. Pentru datele constante se utilizeaza ca identificator valoarea acestora. Daca valorile datei sunt modificate in timpul procesului de prelucrare datele se numesc date variabile sau variabile. In mod uzual pentru date elementare se folosesc ca tipuri de data:
- tipul numeric – include numerele intregi, reale si complexe avand diferite reprezentari (virgula fixa, virgula mobila, precizie simpla, precizie dubla, etc.). Asupra lor se pot realiza operatii de adunare, scadere, inmultire, impartire etc.;
- tipul logic (boolean) – utilizat pentru reprezentarea valorilor logice “Adevarat”, respective “Fals” cu ajutorul unor valori numerice, asupra acestora putandu-se efectua operatii logice precum negatia, conjunctia, disjunctia;
- tipul caracter (text, string) – permite reprezentarea unor succesiuni de caractere folosind multimi de simboluri alfanumerice, reprezentarea pe suporturile de memorare utilizand codul ASCII. Asupra acestora se pot defini operatii de cautare, concatenare, ordonare;
- tipul data calendaristica, timp (Date, Time, DateTime) – reprezentarea interna a acestora facandu-se de regula cu ajutorul unor valori numerice.
Datele compuse numite si structuri de date sunt colectii (multimi) de date elementare intre care exista relatii structurale, omogene din punct de vedere al descrierii si al prelucrarii. Componentele unei structuri formeaza un intreg astfel incat prelucrarea se poate face atat la nivelul structurii de date cat si la nivelul fiecarei componente, care poarta numele de camp.
Majoritatea limbajelor de programare opereaza cu doua categorii de structuri: structuri interne si structuri externe.
Structurile de date interne se refera la modul de amplasare in memoria interna a datelor elementare apartinand unei colectii. In aceasta categorie sunt incluse structurile de tip tablou (masiv), inregistrare (articol), multime, lista si arbore.
Structurile externe se refera la modul de memorare a datelor pe suporturi de memorare externa. Din aceasta categorie fac parte fisierele si bazele de date.
Datele, vazute initial ca siruri de caractere, care reproduceau caracteristicile unor obiecte, fenomene, fapte, evenimente, respectiv concepte din lumea reala, datorita factorului de repetare au fost organizate in structuri care poarta numele de fisier. Fisierul este o structura care grupeaza date dintr-un anumit domeniu care au anumite caracteristici comune. Fisierele pot fi cu organizare definita, respectiv nedefinita. Exista doi parametrii ce masoara performantele accesului la date: cantitatea de date transferata si timpul de raspuns. Accesul la date poate fi secvential sau direct. Accesul direct este permis doar de suporturile de memorare adresabile, adica acele suporturi de memorare care permit accesul direct pe baza unei adrese la o anumita zona de pe suportul de memorare, numita locatie sau bloc. Fisierul ocupa un anumit spatiu pe suportul de memorare extern, spatiul alocat putand fi continuu sau nu.
Din punctual de vedere al sistemului de operare fisierul are un nume si eventual o extensie de fisier, are asociata o multime de atribute care depind de sistemul de operare (Read Only, Hidden, System, Archive, etc); informatii privind momentul crearii, al ultimei modificari, al ultimei accesari, privind dimensiunea ca numar de octeti etc.

De ce baze de date?


Totalitatea informatiilor care definesc si mentin in functiune un sistem real formeaza sistemul informational al sistemului real, iar in cadrul sistemului informational putem delimita sistemul informatic, care reprezinta acea parte a sistemului informational in care informatia este stocata si procesata cu ajutorul tehnicii de calcul. Sistemele informatice pot fi realizate fie cu ajutorul unor aplicatii care utilizeaza fisiere independente sau integrate, fie cu ajutorul unor aplicatii care acceseaza o structura complexa numita baza de date. Baza de date are mijloace proprii pentru crearea si evolutia in timp a structurii. Organizarea datelor in fisiere apartinand fiecarei aplicatii reprezinta o metoda rigida care are mai multe dezavantaje pentru utilizatori. Cel mai mare dezavantaj este acela ca modificarile in structura unui fisier obliga la modificarea tuturor programelor care utilizeaza fisierul a carui structura a fost modificata. Din punctul de vedere al utilizatorului sistemele bazate pe fisiere reprezinta un progres extraordinar fata de sistemele manuale, totusi acestea fiind dependente de programele de aplicatie, orice interogare necesita scrierea unui program si integrarea acestuia in sistemul implementat, obtinerea de noi informatii spontan fiind practic imposibila.
Realizarea sistemelor informatice cu ajutorul aplicatiilor independente presupune ca fiecare astfel de aplicatie sa defineasca si sa intretina propriile structuri de date organizate de regula in fisiere. In acest caz are loc separarea si izolarea datelor, precum si legarea acestora de fiecare aplicatie. Datorita modului de abordare descentralizat are loc o crestere a redundantei datelor, adica datele vor fi multiplicate necontrolat. Redundanta reprezinta o proprietate a unei colectii de date care se refera la faptul ca unele componente ale colectiei de date sunt memorate de mai multe ori pe suportul de memorare. Multiplicarea datelor implica costuri suplimentare si in plus, creste riscul alterarii integritatii datelor, adica aparitia de neconcordante.
Sistemului informatic are doua componente principale si anume datele si programele, acestea fiind intr-o stransa interdependenta.
In codul program al fiecarei aplicatii creat intr-un limbaj de programare clasic se definesc structurile de date, atat cele interne ale aplicatiei respective cat si structura logica a fisierelor utilizate de aplicatia respectiva, impreuna cu modul de acces la datele stocate in aceste fisiere. In cazul in care structura logica a unei inregistrari este modificata prin adaugarea unui camp, sau schimbarea dimensiunii unui camp, toate programele care opereaza cu fisierul a carui structura a fost modificata trebuie actualizate. De asemenea orice modificare a semnificatiei, respectiv a modului de reprezentarea a informatiei respective in sistemul real impune modificarea tuturor aplicatiilor care folosesc informatia respectiva, ceea ce reprezinta in cazul sistemelor informatice complexe un efort de programare considerabil, precum si costuri ridicate. Aceasta caracteristica a sistemelor bazate pe fisiere este cunoscuta sub denumirea de dependenta program-date. Deoarece structura fisierului este incorporata in programele de aplicatie, ea este dependenta de limbajul in care sunt scrise programele in este realizata aplicatia respectiva.
Atunci cand datele sunt izolate in fisiere apartinand unor aplicatii independente, accesarea datelor de care este nevoie la un moment dat se realizeaza cu mare greutate deoarece programatorul trebuie sa sincronizeze prelucrarea simultana a tuturor fisierelor aplicatiilor, dificultatea crescand odata cu numarul de fisiere. Structura fisierelor este incorporata in programele de aplicatie, fiind dependenta de limbajul de programare folosit pentru fiecare aplicatie. Mai mult chiar, fiecare interogare a fondului de date stocate in fisierele independente se realizeaza doar prin intermediul programelor de aplicatie, interogarea  fiind dependenta de programatorul care a realizat aplicatia si chiar mai mult de limbajul de programare folosit. In sistemele complexe, odata cu cresterea necesarului de informatie exista riscul ca satisfacerea necesarului de informatie prin noi programe sa nu poata fi realizata intr-un timp optim. Reducerea timpului alocat analizei precum si proiectarii de noi aplicatii are ca rezultat obtinerea de programe inadecvate sau ineficiente pentru indeplinirea cerintelor utilizatorilor, de regula cu o documentatie limitata si greu de intretinut. In astfel de conditii securitatea datelor devine limitata, iar integritatea datelor est practic imposibil de asigurat.
Limitele sistemelor bazate pe fisiere independente se datoreaza urmatorilor doi factori:
- definitia datelor este incorporata in programele de aplicatie,
- controlul accesului si cel al manipularii datelor se realizeaza exclusiv prin intermediul programelor de aplicatie.
Pentru a fi eficient un sistem informatic este necesara o noua abordare care sa scoata in afara programelor de aplicatie definirea, controlul si manipularea datelor. Aceasta se poate realiza cu ajutorul bazei de date si a sistemului de gestiune a bazelor de date.



Conceptul de baza de date


Pentru conceptul de baza de date exista un numar foarte mare de definitii, adesea contradictorii, cu atat mai mult cu cat conceptul a fost in continua evolutie.

Baza de date:
-          reprezinta 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;
-          este o colectie de date operationale folosite de catre aplicatiile sistem ale unei organizatii;
-          este un ansamblu structurat de date coerent, fara redundanta inutila, astfel incat aceasta pot fi prelucrate eficient de mai multi utilizatori intr-un mod concurent;
-          reprezinta un ansamblu de date inregistrate pe suporturi accesibile calculatorului pentru a satisface simultan mai multi utilizatori de o maniera selectiva si intr-un timp oportun;
-          se defineste ca un ansamblu de date elementare sau structurate, accesibile unei comunitati de utilizatori.

Niciun comentariu:

Trimiteți un comentariu