|
SGBD - Sisteme de gestiune a bazelor de date
1. Introducere. Modelul relational
2. SGBD - Definitii
1. Introducere. Modelul relational
In general, cand se proiecteaza un sistem informatic, din punct de vedere fizic exista trei pasi care trebuie parcursi:
proiectarea fisierelor fizice si a bazelor de date: descrierea modului in care vor fi stocate si accesate in / din memoriile secundare si cum se va asigura controlul lor pentru a se oferi o securitate maxima;
proiectarea structurii sistemului si a programelor: sunt descrise programele si modulele acestora urmarindu-se ca ele sa fie in concordanta cu diagramele fluxurilor de date si cu celelalte piese ale documentatiei realizate in etapele anterioare;
proiectarea strategiilor de prelucrare distribuita: modalitatile in care utilizatorul poate sa dispuna de date si facilitati de prelucrare distribuite in retea.
Cand se proiecteaza arhitecturile bazelor de date, trebuie sa fie luate in considerare mai multe aspecte, dar determinanta este marimea sistemului.
Exista patru tipuri de arhitecturi:
- ierarhica,
- retea,
- relationala,
- orientata-obiect.
Modelul ierarhic este de fapt o structura arborescenta cu nivele suprapuse (numite uneori strabunic, bunic, tata, fiu).
Pentru a lega nivelul nivelul inferior la cel superior se folosesc noduri; fisierele extreme fiind fisiere frunza.
Modelul retea este folosit in situatii complexe, dar este nevoie de specialisti de inalta clasa care sa lucreze cu astfel de modele.
Ele pot arata astfel:
Modelul relational al bazelor de date
Este cel mai des utilizat.
Se bazeaza pe realizarea de legaturi intre relatii create cu ajutorul cheilor lor, angrenate cu rolul de cheie primara si respectiv cheie externa.
Modelul relational depinde exclusiv de legaturile dintre obiecte (tabele).
La acest model s-a ajuns din considerentul ca, desi pentru utilizator importanta primordiala o are entitatea, din punct de vedere al modelului relational entitatea exista prin combinatii ale valorilor caracteristicilor sale.
In acest sens trebuie stiute domeniile fiecarei caracteristici, adica multimea valorilor pe care o caracteristica le poate lua si din combinatia acestor domenii va rezulta o realizare a entitatii.
Matematicianul C. F. Codd a expus, in anul 1969 teoria matematica a modelului relational de organizare a bazelor de date si acesta a fost adoptat de catre toti specialistii.
Pe obisnuitul tabel cu date referitoare la o entitate s-au putut aplica toate conceptele unei metode logice si riguroase de modelare a datelor, inclusiv algebra relationala.
Astfel, relatiei (tabelului) i se poate asocia un grad << n >> (numarul de coloane ale tabelului) si o cardinalitate << m >> (numarul de realizari, randuri sau articole), iar un articol se identifica in cadrul modelului relational cu ceea ce se numeste un tuplu.
Modelul relational foloseste urmatoarele concepte fizice:
- relatie: tabel bidimensional format din randuri (linii) numite tupluri si coloane
numite domenii.
Relatiile abordate sunt finite chiar daca domeniile pe care sunt construite pot
fi infinite (de exemplu domeniul numerelor intregi);
- tuplu: un rand dintr-o tabela;
- caracteristica: numele / antetul unei coloane dintr-o tabela (relatie);
- cheie primara: cheia care permite identificarea in mod unic u unui tuplu (inregistrare);
- cheie secundara: cheia care permite identificarea tuturor tuplurilor care au aceeasi
proprietate;
- cheie externa: cheie identica cu chia primara a relatiei asociate; prin construirea
cheilor externe se realizeaza un acces rapid la informatiile continute in baza
de date datorita legaturilor pe care le realizeaza;
- domeniu: multimea de valori ale unei caracteristici (o coloana dintr-o tabela);
- grad: numarul de coloane din cadrul unei tabele; se noteazaG(R) = n, unde R
este numele tabelei;
- cardinalitate: numarul de randuri din cadrul unei tabele; se noteaza C(R) = m, unde
R este numele tabelei;
- dimensiunea relatiei: produsul cardinalitate si gradul relatiei.
Un model relational cuprinde trei elemente:
- structura datelor,
- reguli de integritate, care guverneaza utilizarea cheilor in model;
- operatori.
Structura datelor
Structura datelor in modelul conceptual se defineste prin schema relatiei sau prin diagrame entitate-relatie combinate cu lista caracteristicilor din compunerea unui tabel.
Sintaxa generala a unei scheme de relatie este:
<nume relatie> (<car1>, <car2>, . ,<carm>),
unde campul subliniat (unul din aceste <car>) reprezinta cheia de acces.
Regulile de integritate
Acestea guverneaza utilizarea cheilor in model si sunt cunoscute de la modul practic cum au fost definite (in mediul de programare Access - care va fi prezentat ulterior) relatiile dintre tabelele bazei de date si mai exact, din modul cum au fost folosite optiunile ferestrei Edit Relationship.
Operatori
Privitor la operatori, trebuie precizat ca pentru manipularea relatiilor, modelul relational ofera doua categorii de limbaje:
- Limbaje algebrice: bazate pe operatori specializati ce combina relatiile intre ele sau le filtreaza.
La baza acestor limbaje sta algebra relationala.
Aceste limbaje cuprind doua tipuri de operatori relationali:
- operatori de baza si
- operatori auxiliari.
Operatorii relationali de baza se impart in:
- operatori de asamblare: reuniunea,intersectia, diferenta, produsul cartezian;
- operatori unari (de restrictie): selectia si proiectia.
Operatorii auxiliari (de extensie) pot fi dedusi din setul de operatori de baza si cuprind:
compunerea, semicompunerea, diviziunea.
- Limbaje logice (predicative) care permit specificarea relatiei utilizand formule de logica matematica, ceea ce numim calcul relational (orientat pe tupluri sau domenii).
Calculul relational este limbajul pe care s-a construit majoritatea limbajelor de interogare a bazelor de date.
Dintre aceste limbaje, cel mai folosit este SQL - Structured Query Language.
Limbajul SQL sau SEQUEL (Structured English QUEry Language) se bazeaza pe limbajul SQUARE (Specifying Queries As Relational Expressions) si a fost construit la IBM (San Jose Research Laboratory din California).
Diverse versiuni sau comenzi ale acestui limbaj au fost incluse in:
- sistemele Xbase: o multime de SGBD-uri cu multe parti comune, care cuprinde
Dbase, Clipper, FoxBase, FoxPro,.etc;
- Oracle: realizat de firma Oracle Corporation;
- System R: construit in 1974 la San Jose Research Laboratory si imbunatatit in
permanenta prin noi facilitati.
SQL este atat un limbaj interactiv, cat si un limbaj integrat intr-un limbaj de programare (numit gazda).
Cu ajutorul lui SQL-interactiv se creeaza si se testeaza comenzi inainte de a le introduce in program.
Prin SQL-interactiv se pot detecta si corecta erori de sintaxa, se poate evalua daca o cerere este eficace si corecta, se pot determina tipurile de date pe care sa le suporte programul, se pot anticipa erori de executie care pot sa apara in anumite situatii.
Este un limbaj standard de descriere a datelor si acces la informatiile din baza de date.
Au fost dezvoltate foarte multe versiuni ale acestui limbaj (aproximativ 100).
Au fost concepute si dezvoltate diferite versiuni ale standardului SQL de catre ANSI, IBM, Microsoft, Borland, SAG, X/Open,.etc.
Lipsa unui standard unic SQL are drept consecinte cresterea costurilor programelor de gestiune a bazelor de date si ingreuneaza intretinerea arhitecturilor client / server.
Un grup de specialisti in baze de date s-au reunit sub numele SAG - SQL Access Group cu scopul de a construi un limbaj SQL comun si de a realiza pentru fiecare variaanta SQL (dialect) un program de conversie din dialect in SQL si invers.
Rezultatul a fost ca in 1992 Microsoft a lansat ODBC - Open Database Connectivity, care este o multime de primitive bazata pe activitatea lui SAG, iar in 1994 Borland a lansatIDAPI - Integrated Database Application Programming Interface, care este o biblioteca de functii SQL ce se pot integra intr-un program gazda
Microsoft a propus o biblioteca API - Application Programming Interface normalizata, numita ODBC, care transforma cererile SQL in comenzi specifice unui sistem de gestiune.
Programele comunica cu SGBD prin intermediul acestei biblioteci.
Metoda nu are precompilator si este usor de utilizat.
Un limbaj de manipulare a datelor se compune dintr-o multime de comenzi care permit interogarea unei baze de date si dintr-o multime de comenzi care permit modificarea acesteia.
Modificarea bazei de date implica:
- inserare,
- suprimare si
- reactualizare.
In general, un limbaj de manipulare a datelor este incorporabil intr-un limbaj de programare clasic, numit limbaj gazda.
Aproape orice SGBD dispune de un limbaj de programare extern, conversational si propune o integrare a acestui limbaj intr-un limbaj gazda.
Unul din cele mai mari merite ale modelului relational este ca prin intermediul multiplelor sale limbaje de interogare (neprocedurale) permite utilizatorului, chiar si informatician, sa indice rezultatul care il intereseaza, fara a preciza modul in care este obtinut acest rezultat.
O relatie poate fi definita ca o multime sau ca un predicat.
Conform dualitatii definitiei unei relatii, limbajele de manipulare a datelor pot fi grupate in limbaje algebrice, bazate pe teoria multimilor si limbaje predicative (relationale) bazate pe caculul predicatelor.
Limbajele relationale cuprind doua subclase de limbaje, dupa cum calculul relational se aplica tuplurilor (limbaje orientate pe tupluri) sau domeniilor (limbaje orientate pe domenii).
O variabila este asociata fie unor tupluri, si este utilizata in scrierea unei formule predicative pe tupluri, fie unor domenii, si este utilizata in scrierea unor predicative pe domenii.
Limbajele orientate pe domenii pot fi:
Limbajele non-grafice sunt limbaje orientate pe domenii in care o cerere este reprezentata sub o forma liniara construita cu operatori si nume de atribute sau relatii.
-Limbajele grafice, unde cererea este construita spatial, pot fi deferentiate prin
prin utilizarea explicita sau implicita a variabilelor domeniu.
2. SGBD - Definitii
Un model reprezinta o abstractizare a unui sistem sau proces din lumea reala.
Modelul consta dintr-o structura matematica formala care reprezinta sistemul, un set de notatii si o terminologie necesara exprimarii ideilor referitoare la sistem.
Modelarea reprezinta activitatea de creare a unui model.
Un model poate fi folosit pentru studierea unui sistem existent (analiza) sau pentru realizarea unuia nou (sinteza).
Modelarea bazata pe analiza consta in studierea sistemului modelat, in vederea identificarii trasaturilor sale reprezentative,
Aceste trasaturi sunt incluse in model, iar restul amanuntelor nesemnificative este eliminat.
Prin entitate se intelege orice realitate, orice existenta inconjuratoare.
Prima etapa a modelarii consta din identificarea entitatilor de interes si a proprietatilor esentiale care le caracterizeaza, prin observarea si studierea sistemului vizat.
Pentru fiecare proprietate a entitatii izolate se asociaza un atribut care este elementul de descriere a entitatii.
Atributele iau valori intr-un anumit domeniu, care particularizeaza entitatile.
De exemplu, pentru entitatea "student"se pot considera:
Cod student CS 678
Nume Alexa
Prenume Ion
Sex 1---------- valoare articol (poate fi 1 sau 0)
Numar grupa 345
Bursier t --------- valoarea poate fi true sau false (t sau f)
-----------
inregistrare
O astfel de coloana (numita inregistrare) se refera la o entitate particulara (student) si o linie corespunzatoare mai multor studenti contine valori efective ale articolelor relative la un atribut particular.
Un atribut sau o multime de atribute a caror valoare identifica fiecare inregistrare a unei entitati reprezinta o cheie pentru entitatea respectiva.
O cheie primara permite sa se identifice in mod unic o inregistrare (de exemplu, nu exista doi studenti care sa aiba acelasi cod student), iar o cheie secundara permite identificarea tuturor inregistrarilor care au o anumita proprietate.
Pe plan international exista mai multe grupuri specializate in standardizarea conceptelor care apar in dezvoltarea bazelor de date.
In 1971, CODASYL a publicat un raport care contine recomandari in privinta cerintelor de organizare, functionare si terminologie ale sistemelor de memorare si prelucrare a datelor.
Vom defini cateva concepte fundamentale referitoare la structura datelor conform standardului CODASYL.
- Date: aspecte elementare ale unor activitati sau evenimente nesupuse unor prelucrari,
neevaluate din punct de vedere al utilitatii.
- Informatie: ansambluri de date corelate si elaborate intr-un scop bine determinat, pentru
satisfacerea cerintelor celui care le utilizeaza.
- Articol: unitate elementara de date, care poate purta un nume si deci poate fi identificata.
- Tipul unui articol: ansamblu format din identificatorul folosit, descrierea valorilor
acceptabile si descrierea formatului de memorare.
- Grup de date: ansamblu de articole care poate fi identificat ca un tot unitar.
- Tipul unui grup de date: ansamblu format din lista identificatorilor folositi si
descrierea articolelor si a grupurilor de date.
- Inregistrare: colectie de articole si / sau grupuri de date identificabila printr-un nume.
- Zona: subdiviziune a memoriei externe, identificabila printr-un nume care poate stoca
Inregistrari.
- Baza de date: totalitatea exemparelor inregistrarilor, seturilor, zonelor organizate sub o
anumita schema; trebuie remarcat natura relativ statica a schemei bazei de
date si caracterul preponderent dinamic al datelor administrate.
- Dictionarul datelor: multimea descrierii obiectelor unei baze de date.
Acest dictionar este structurat si administrat ca o baza de date (metabaza).
- Administratorul bazei de date: o persoana sau un grup de persoane responsabile de
analiza, proiectarea, implementarea, exploatarea si intretinerea unei
baze de date.
Administratorul poate sa nu cunoasca continutul concret al inregistrarilor.
- SGBD - Sistem de gestiune a bazelor de date: ansamblu de programe destinate
crearii, intretinerii si exploatarii unei baze de date.
Aceasta multime de programe asigura interfata intre o baza de date si
utilizatorii acesteia.
Un SGBD foloseste in principiu trei limbaje:
- un limbaj de descriere a datelor fizice,
- un limbaj de descriere a datelor logice,
- un limbaj de prelucrare a datelor.
Aceste limbaje pot fi de sine statatoare sau grefate pe un limbaj de programare general.
Arhitectura bazelor de date evidentiaza componentele acestora:
- baza de date propriu-zisa in care se memoreaza datele;
- sistemul de gestiune al bazei de date, care realizeaza gestiunea si prelucrarea complexa
adatelor;
- un dictionar al bazei de date (metabaza de date), ce contine informatii despre date,
structura acestora, statistici, documentatie;
- mijloacele hard utilizate (comune sau specializate);
- reglementari administrative destinate bunei functionari a intregului sistem;
- personalul implicat: utilizatori finali, administrator, programatori, operatori.
In cadrul unei baze de date putem vorbi de patru nivele de abstractizare si de perceptie a datelor:
nivel fizic (intern) descris de schema fizica a datelor (bit, octet, adresa), care reprezinta viziunea programatorilor de sistem asupra datelor;
nivel conceptual descris de schema conceptuala a datelor (articol, inregistrare, zona, etc), care reprezinta viziunea programatorilor de sistem asupra datelor;
nivel logic descris de una din schemele logice posibile ale datelor, care reprezinta viziunea programatorilor de aplicatie asupra datelor;
nivel virtual (extern), care reprezinta viziunea utilizatorului final asupra datelor.
Datele exista doar la nivel fizic, iar celelalte trei nivele reprezinta virtualizari ale acestora.
Intr-o baza de date sunt necesare trei nivele de independenta a datelor:
- independenta fizica asigura posibilitatea modificarii schemei fizice a datelor fara ca aceasta sa oblige la modificarea schemei conceptuale, schemei logice si a programelor de aplicatie;
- independenta logica asigura posibilitatea modificarii schemei conceptuale a datelor fara ca aceasta sa oblige la modificarea schemei logice si a programelor de aplicatie;
- independenta fata de strategiile de acces permite programului sa precizeze data pe care doreste sa o acceseze, dar nu modul cum acceseaza acesta data.
SGBD va stabili drumul optim de acces la date.
Realizarea unei aplicatii
O aplicatie este un sistem de programe proiectat pentru a efectua un ansamblu determinat de actiuni in vederea rezolvarii unor probleme concrete.
Orice aplicatie cuprinde datele de prelucrat si seturile de actiuni care definesc prelucrarile de efectuat asupra acestor date.
Odata aplicatia terminata, ea va putea sa fie executata in doua moduri:
- interpretativ - cand un program numit "interpreter" ia fiecare enunt al aplicatiei, il traduce in cod intern si daca nu gaseste erori, il executa si apoi trece la urmatorul enunt;
- compilativ - cand intreaga aplicatie este tradusa de programul compilator intr-un cod intermediar, memorat pe disc, numit cod obiect.
Acest cod intermediar este supus unei prelucrari suplimentare de catre editorul de legaturi pentru a obtine forma finala, executabila a aplicatiei.
Aplicatia se executa sub controlul sistemului de operare.
Realizarea unei baze de date presupune:
analiza sistemului pentru care se construieste baza de date,
proiectarea structurii bazei,
incarcarea datelor in baza,
exploatarea si intretinerea bazei.
Realizarea efectiva a unei aplicatii presupune:
stabilirea temei,
analiza si proiectarea aplicatiei,
codificarea acesteia,
testarea modulelor,
implementarea si apoi intretinerea aplicatiei
Continutul acestor etape, respectiv activitatile implicate si modul lor de desfasurare depind de tipul bazei de date, precum si de domeniul pentru care se proiecteaza baza.
Utilizatorii unei baze de date
Baza de date reprezinta un sistem de definire, organizare si prelucrare a informatiei, compus din:
- o colectie de date cu eventuale legaturi intre ele;
- o descriere a datelor si a relatiilor dintre ele;
- un sistem de programe pentru gestionarea datelor.
Utilizatorii unei baze de date pot fi:
- utilizatori nespecialisti (conversationali) care au la dispozitie o forma de comunicare cu baza de date apropriata de vorbirea curenta; ei nu cunosc structura bazei si nici modul efectiv de lucru cu baza de date;
- utilizatori specialisti care cunosc structura bazei, au cunostinte de programare, cunosc problemele sistemului de operare si toate acestea le permit sa foloseasca rational baza de date, obtinand avantaje maxime;
- administratorul bazei de date este un utilizator special care defineste obiectivele exploatarii bazei, imparte drepturile de acces ale utilizatorilor, elaboreaza conceptia de proiectie a bazei de date, raspunde de toate activitatile si operatiile referitoare la baza de date, ajuta la definirea cerintelor utilizatorilor, etc.
Chestionar
1. Care sunt pasii care trebuie parcursi cand se proiecteaza un sistem informatic?
2. Care sunt tipurile arhitecturilor bazelor de date?
3. Pe ce se bazeaza modelul relational?
4. Care sunt conceptele fizice ale modelului relational?
5. Care sunt elementelemodelului relational?
6. Cum se defineste structura datelor?
7. Care sunt categoriile de limbaje ale modelului relational?
8. Din ce se compune un limbaj de manipulare al datelor?
9. Ce reprezinta un model?
10. Cum definim: entitatea, atributul, cheia?
11. Prezentati elementele standard CODASYL privind bazele de date.
12. Care sunt elementele bazelor de date?