bd1

6
1. INTRODUCERE - SISTEME DE BAZE DE DATE Sistemele de baze de date sunt o componentă esenţială a vieţii de zi cu zi în societatea modernă. În cursul unei zile, majoritatea persoanelor desfăşoară activităţi care implică interacţiunea cu o bază de date: depunerea sau extragerea unor sume de bani din bancă, rezervarea biletelor de tren sau avion, căutarea unei referinţe într-o bibliotecă computerizată, cumpărarea unor produse etc. Bazele de date pot avea dimensiuni (număr de înregistrări) extrem de variate, de la câteva zeci de înregistrări (de exemplu, baza de date pentru o agendă cu numere de telefon) sau pot ajunge la zeci de milioane de înregistrări (de exemplu, baza de date de plată pentru plata taxelor şi a impozitelor). Utilizatorii unei baze de date au posibilitatea să efectueze mai multe categorii de operaţii asupra datelor memorate: • Introducerea de noi date (insert); Ştergerea unora din datele existente (delete); • Actualizarea datelor memorate (update); • Interogarea bazei de date (query) pentru a regăsi anumite informaţii, selectate după un criteriu ales. În sensul cel mai larg, o bază de date (database) este o colecţie de date corelate din punct de vedere logic, care reflectă un anumit aspect al lumii reale şi este destinată unui anumit grup de utilizatori. În acest sens, bazele de date pot fi create şi menţinute manual (de exemplu, fişele de evidenţă a cărţilor dintr-o bibliotecă, aşa cum erau folosite cu ani în urmă) sau computerizat, aşa cum este majoritatea bazelor de date folosite în momentul de faţă. O definiţie într-un sens mai restrâns a unei baze de date este următoarea: O bază de date (database) este o colecţie de date creată şi menţinută computerizat, care permite operaţii de introducere, ştergere, actualizare şi interogare a datelor. Simple colecţii de fişe (documente pe hârtie) sau fişiere de date, care conţin înregistrări de date, dar nu permit operaţii de interogare, nu sunt considerate baze de date. De exempu, datele memorate în fişiere pe disc de un instrument de calcul tabelar (ca Microsoft Excel) sau documentele memorate de un editor de text (ca Microsoft Word) nu sunt considerate baze de date. 1.1. COMPONENTELE UNUI SISTEM DE BAZE DE DATE Un sistem de baze de date (Database System) este un sistem computerizat de menţinere a evidenţei unei anumite activităţi, folosind baze de date. Componentele unui sistem de baze de date sunt: hardware, software, utilizatori, date persistente. Hardware. Sistemele de baze de date sunt instalate, de regulă, pe calculatoare de uz general, de la calculatoare PC standard, până la staţii multiprocesor puternice. Bineînţeles, performanţele generale de operare ale calculatorului (numărul şi viteza procesoarelor, dimensiunea şi viteza de operare a memoriei principale etc.) influenţează în mod corespunzător performanţele sistemului de baze de date. Dar, ceea ce interesează în mod deosebit în utilizarea unui calculator pentru un sistem de baze de date, este volumul (capacitatea) memoriei secundare, utilizată pentru memorarea colecţiei de date persistente ale bazei de date. Dat fiind că într-un sistem de baze de date este necesar accesul rapid la oricare din înregistrările de date, pentru memorarea acestora se folosesc discurile magnetice (hard- discuri). Benzile magnetice (care oferă acces secvenţial la înregistrările de date) sunt utilizate numai pentru duplicarea (back-up) şi salvarea/restaurarea datelor. Software. Între baza de date (colecţia de date memorate fizic în fişiere pe hard-discuri) şi utilizatorii sistemului există un nivel software, numit Sistem de Gestiune a Bazei de Date (SGBD) - (Database Management System -DBMS) - (fig. 1).

Upload: ioana-neculai

Post on 18-Dec-2015

8 views

Category:

Documents


4 download

DESCRIPTION

/

TRANSCRIPT

  • 1. INTRODUCERE - SISTEME DE BAZE DE DATE Sistemele de baze de date sunt o component esenial a vieii de zi cu zi n societatea

    modern. n cursul unei zile, majoritatea persoanelor desfoar activiti care implic interaciunea cu o baz de date: depunerea sau extragerea unor sume de bani din banc, rezervarea biletelor de tren sau avion, cutarea unei referine ntr-o bibliotec computerizat, cumprarea unor produse etc.

    Bazele de date pot avea dimensiuni (numr de nregistrri) extrem de variate, de la cteva zeci de nregistrri (de exemplu, baza de date pentru o agend cu numere de telefon) sau pot ajunge la zeci de milioane de nregistrri (de exemplu, baza de date de plat pentru plata taxelor i a impozitelor).

    Utilizatorii unei baze de date au posibilitatea s efectueze mai multe categorii de operaii asupra datelor memorate:

    Introducerea de noi date (insert); tergerea unora din datele existente (delete); Actualizarea datelor memorate (update); Interogarea bazei de date (query) pentru a regsi anumite informaii, selectate dup

    un criteriu ales. n sensul cel mai larg, o baz de date (database) este o colecie de date corelate din

    punct de vedere logic, care reflect un anumit aspect al lumii reale i este destinat unui anumit grup de utilizatori. n acest sens, bazele de date pot fi create i meninute manual (de exemplu, fiele de eviden a crilor dintr-o bibliotec, aa cum erau folosite cu ani n urm) sau computerizat, aa cum este majoritatea bazelor de date folosite n momentul de fa. O definiie ntr-un sens mai restrns a unei baze de date este urmtoarea:

    O baz de date (database) este o colecie de date creat i meninut computerizat, care permite operaii de introducere, tergere, actualizare i interogare a datelor.

    Simple colecii de fie (documente pe hrtie) sau fiiere de date, care conin nregistrri de date, dar nu permit operaii de interogare, nu sunt considerate baze de date. De exempu, datele memorate n fiiere pe disc de un instrument de calcul tabelar (ca Microsoft Excel) sau documentele memorate de un editor de text (ca Microsoft Word) nu sunt considerate baze de date.

    1.1. COMPONENTELE UNUI SISTEM DE BAZE DE DATE

    Un sistem de baze de date (Database System) este un sistem computerizat de meninere a evidenei unei anumite activiti, folosind baze de date. Componentele unui sistem de baze de date sunt: hardware, software, utilizatori, date persistente.

    Hardware. Sistemele de baze de date sunt instalate, de regul, pe calculatoare de uz general, de la calculatoare PC standard, pn la staii multiprocesor puternice. Bineneles, performanele generale de operare ale calculatorului (numrul i viteza procesoarelor, dimensiunea i viteza de operare a memoriei principale etc.) influeneaz n mod corespunztor performanele sistemului de baze de date. Dar, ceea ce intereseaz n mod deosebit n utilizarea unui calculator pentru un sistem de baze de date, este volumul (capacitatea) memoriei secundare, utilizat pentru memorarea coleciei de date persistente ale bazei de date.

    Dat fiind c ntr-un sistem de baze de date este necesar accesul rapid la oricare din nregistrrile de date, pentru memorarea acestora se folosesc discurile magnetice (hard-discuri). Benzile magnetice (care ofer acces secvenial la nregistrrile de date) sunt utilizate numai pentru duplicarea (back-up) i salvarea/restaurarea datelor. Software. ntre baza de date (colecia de date memorate fizic n fiiere pe hard-discuri) i utilizatorii sistemului exist un nivel software, numit Sistem de Gestiune a Bazei de Date (SGBD) - (Database Management System -DBMS) - (fig. 1).

  • Fig.1. Componente ale unui sistem de baze de date.

    Sistemul de gestiune a bazei de date - SGBD - (Database Management System - DBMS) recepioneaz cererile utilizatorilor de acces la baza de date (pentru operaii de introducere, tergere, modificare sau interogare), le interpreteaz, execut operaiile corespunztoare i returneaz rezultatul ctre utilizatori.

    Sistemul SGBD ofer utilizatorilor o viziune (vedere - view) a bazei de date la un nivel nalt i i elibereaz de necesitatea de a cunoate organizarea particular a sistemului (driverele de disc, structura nregistrrilor de date, etc.).

    Mai mult, sistemul de gestiune asigur protecia datelor fa de accese neautorizate sau defecte de funcionare, asigurnd integritatea bazei de date.

    Pe lng SGBD, care este cea mai important component software a unui sistem de baze de date, mai exist i alte componente: sistemul de operare, care asigur controlul execuiei programelor, biblioteci i instrumente software (toolset-uri) pentru proiectarea, dezvoltarea sau exploatarea sistemelor de baze de date i a aplicaiilor de baze de date.

    O aplicaie de baze de date (Database Application) este un program care ofer o anumit utilizare a unei baze de date.

    De exemplu, programul care permite meninerea i urmrirea activitii angajailor unei ntreprinderi (ncadrare, calificare, salarizare, etc.) folosind informaiile despre angajai memorate ntr-o baz de date reprezint o aplicaie de baze de date.

    Utilizatorii unui sistem de baze de date se pot mpri n cteva categorii: programatorii de aplicaii, utilizatorii finali i administratorul bazei de date.

    Programatorii de aplicaii sunt cei care scriu (dezvolt) aplicaiile de baze de date, folosind limbaje de programare de nivel nalt (Cobol, PL/1, Fortran, C, C++, Java, Basic) i biblioteci care permit ncorporarea operaiilor de acces la baza de date. Aplicaiile rezultate pot fi aplicaii cu execuie independent (batch-processing) sau pot fi aplicaii interactive (on-line) folosite de utilizatorii finali ai sistemului pentru a accesa (ntr-un mod mai eficient i mai sigur) baza de date.

    Utilizatorii finali sunt acei utilizatori care acceseaz baza de date prin intermediul unui program de aplicaie care le confer drepturi limitate de acces la date pentru anumite operaii de prelucrare. Utilizatorii finali sunt persoane cu pregtire tehnic minimal, care efectueaz un volum mare de operaii asupra bazei de date, dar nu trebuie s cunoasc mai mult dect posibilitile oferite de programul pe care l utilizeaz. De exemplu, utilizatorii finali ai unui sistem de rezervare a bietelor de avion sunt agenii de vnzri, care folosesc programul adecvat (scris de programatorii de aplicaii), fr a fi necesar s cunoasc ntreaga structur a bazei de date.

    Administratorul bazei de date (Database Administrator) este o persoan (sau un grup de persoane) cu nalt calificare tehnic care are ca sarcin meninerea funcionalitii bazei de date prin stabilirea drepturilor de acces ale diferitelor categorii de utilizatori, prin efectuarea operaiilor periodice de salvare a datelor (backup), prin monitorizarea performanelor sistemului i refacerea datelor atunci cnd este necesar.

    Datele memorate ntr-o baz de date sunt date persistente, adic date care rmn memorate pe suport magnetic, independent de execuia programelor de aplicaii. Datele

  • persistente ale unei baze de date se introduc, se terg sau se actualizeaz folosind date de intrare (provenite de la tastatur, din citirea unor fiiere de date sau din recepionarea unor mesaje). Datele de intrare sunt, n general, date nepersistente; ele sunt generate de utilizatori i sunt memorate (devenind date persistente) numai dup ce au fost validate (acceptate) de ctre SGBD. Datele de ieire ale unui sistem de baze de date sunt, de asemenea, date nepersistente; ele provin din operaii de interogare a bazei de date i sunt puse la dispoziia utilizatorului (sub form de afiri, rapoarte tiprite, etc).

    Aceste tipuri de utilizatori asigur exploatarea unei baze de date dup ce aceasta a fost proiectat i realizat. Activitatea de proiectare a unei baze de date implic i alte categorii de personal cu nalt calificare tehnic (proiectani, programatori) sau administrativ (administrator de date). Proiectanii bazelor de date au responsabilitatea de a analiza realitatea reprezentat (modelat) de baza de date respectiv, de a identifica datele ce necesit s fie memorate, pentru a asigura meninerea evidenei activitii dorite. Aspecte privind proiectarea bazelor de date vor fi studiate n capitolele urmtoare.

    Orice SGBD suport dou categorii de limbaje conceptuale: limbaje de descriere a datelor i limbaje de manipulare a datelor.

    Limbajele de descriere a datelor - LDD - (Data Description Languages - DDL) permit definirea conceptual a datelor, fr referire la modul de memorare fizic a acestora.

    Limbajele de manipulare a datelor - LMD - (Data Manipulation Languages - DML) permit specificarea operaiilor de introducere, actualizare, tergere i interogare a datelor.

    1.2 ARHITECTURA INTERN A SISTEMELOR DE BAZE DE DATE Arhitectura intern a unui sistem de baze de date propus prin standardul

    ANSI/X3/SPARC (1975) conine trei niveluri funcionale: nivelul extern, nivelul conceptual i nivelul intern (fig. 2). Nivelul extern este o colecie de scheme externe, care sunt vederi ale diferitelor grupuri de utilizatori, existnd cte o vedere individual a datelor pentru fiecare grup; nivelul conceptual conine schema conceptual (logic) a bazei de date, iar nivelul intern conine schema intern (fizic) a bazei de date.

    O schem extern (vedere utilizator) (external schema, users view) conine o subschem conceptual a bazei de date, mai precis descrierea datelor care sunt folosite de acel grup de utilizatori.

    Schema conceptual a bazei de date (conceptual schema) corespunde unei reprezentri unice (pentru toi utilizatorii) i abstracte a datelor, descriind ce date sunt stocate n baza de date i care sunt asocierile dintre acestea.

    Schema intern (fizic) a bazei de date (internal schema) specific modul de reprezentare a datelor pe suportul fizic. Un sistem de baze de date suport o schem intern, o schem conceptual i mai multe scheme externe; toate aceste scheme sunt descrieri diferite ale aceleiai colecii de date, care exist doar n nivelul intern.

  • Fig. 2. Arhitectura intern a unui sistem de baze de date.

    Toate aceste reprezentri ale datelor sunt gestionate de ctre SGBD care asigur, de asemenea, i cele dou corespondene (mappings): ntre schemele externe i schema conceptual i ntre schema conceptual i schema intern.

    Unele sisteme SGBD nu separ complet cele trei niveluri funcionale ale bazelor de date, existnd posibilitatea de a specifica detalii ale schemei interne sau ale schemelor externe n cadrul schemei conceptuale.

    1.3 AVANTAJELE OFERITE DE SISTEMELE DE BAZE DE DATE Fa de vechile metode de nregistrare a datelor privind diferite activiti pe fie

    (documente scrise) sau chiar n fiiere pe disc, sistemele de baze de date ofer avantaje considerabile, ceea ce explic extinsa utilizare a acestora. Cteva dintre avantajele oferite sunt prezentate n continuare.

    Compactitate ridicat: volumul ocupat de sistemele de baze de date este mult mai redus dect volumul ocupat de documente scrise sau de fiiere necorelate. Vitez mare de regsire i actualizare a informaiilor. Redundan sczut a datelor memorate, care se obine prin partajarea datelor ntre mai muli utilizatori i aplicaii. n stocarea pe fie sau n fiiere a datelor, fiecare aplicaie coninea propriile seturi de date. n sistemele de baze de date, mai multe aplicaii pot folosi date comune, memorate o singur dat. De exemplu, o aplicaie de personal i o aplicaie de rezultate la examene dintr-o universitate care exploateaz o singur baz de date, pot folosi aceleai informaii referitoare la structurarea facultilor i a seciilor. Posibilitatea de introducere a standardelor privind modul de stocare a datelor, ceea ce permite interschimbul informaiilor ntre diferite organizaii. Meninerea integritii datelor prin politica de securitate (drepturi de acces difereniate n funcie de rolul utilizatorilor), prin gestionarea tranzaciilor i prin refacerea datelor n caz de funcionare defectuoas a diferitelor componente hardware sau software. Independena datelor fa de suportul hardware utilizat. Sistemele de gestiune a bazelor de date ofer o vedere (view) extern a datelor, care nu se modific atunci cnd se schimb suportul de memorare fizic, ceea ce asigur imunitatea structurii bazei de date i a aplicaiilor la modificri ale sistemului hardware utilizat.

  • 1.4 CLASIFICAREA SISTEMELOR DE BAZE DE DATE Se pot lua n consideraie mai multe criterii de clasificare ale sistemelor de baze de

    date. Clasificare dup modelul de date. Majoritatea sistemelor de baze de date actuale sunt

    realizate n modelul de date relaional sau n modelul de date obiect. Dezvoltarea continu a acestor modele a condus ctre o nou categorie de baze de date, numite obiect-relaionale, care combin caracteristicile modelului relaional cu cele ale modelului obiect. De asemenea, mai sunt nc n funciune baze de date n modele mai vechi (modelul ierarhic sau modelul reea). Modelele de date utilizate de sistemele SGBD vor fi prezentate n seciunea urmtoare.

    Clasificare dup numrul de utilizatori. Majoritatea sistemelor de baze de date sunt sisteme multiutilizator, adic permit accesul concurent (n acelai timp) a mai multor utilizatori la aceeai baz de date. Un numr redus de sisteme de baze de date sunt de tip monoutilizator, adic suport accesul doar al unui singur utilizator (la un moment dat).

    Clasificare dup numrul de staii pe care este stocat baza de date. Exist dou categorii de sisteme de baze de date: centralizate i distribuite.

    Un sistem de baze de date centralizat (Centralized Database System) este un sistem de baze de date n care datele i sistemul de gestiune sunt stocate pe o singur staie (calculator).

    Un sistem centralizat poate suporta unul sau mai muli utilizatori, dar, n orice situaie, datele i sistemul de gestiune rezid n ntregime pe o singur staie.

    Un sistem de baze de date distribuit (Distributed Database System) poate avea att datele, ct i sistemul de gestiune, distribuite n mai multe staii interconectate printr-o reea de comunicaie.

    Sistemele de baze de date pot fi reprezentate din punct de vedere al funcionrii lor printr-o arhitectur de tip client-server.

    ntr-un sistem centralizat (fig.3) exist un singur server, care este chiar sistemul SGBD, care rspunde cererilor unui singur client (n sistemele mono-utilizator, fig.3, a) sau mai multor clieni (n sistemele multi-utilizator, fig.3, b), care acceseaz baza de date respectiv. Clienii sunt programe de aplicaii oferite de furnizorul sistemului de gestiune sau dezvoltate de programatori. Aplicaiile client pot fi executate pe staii diferite, conectate printr-o reea de comunicaie cu staia pe care ruleaz serverul. Aceast arhitectur permite o prelucrare distribuit a datelor i, mai mult, o configurare a sistemului adaptat cerinelor de calcul particulare. Astfel, serverul bazei de date poate fi un sistem puternic, echipat corespunztor (cu volum mare de memorie secundar), n timp ce fiecare client este o staie personal, cu putere de calcul adecvat aplicaiei executate.

    Fig. 1.3. Sisteme de baze de date centralizate: a- monoutilizator; b- multiutilizator.

  • Sistemele de baze de date distribuite pot fi reprezentate ntr-un mod asemntor din perspectiva structurrii client-server (fig. 4). O baz de date distribuit este o colecie de date care aparin din punct de vedere logic aceluiai sistem, dar care pot s fie, din punct de vedere fizic, memorate n mai multe staii de calcul (locaii - sites) conectate printr-o reea de comunicaie. Sistemul software care gestioneaz o astfel de baz de date se numete Sistem de Gestiune a Bazei de Date Distribuite - SGBDD - (Distributed Database Management System - DDBMS). Aplicaiile client ruleaz pe alte staii din reea i solicit servicii de la sistemul de gestiune distribuit.

    Fig. 4. Sistem de baze de date distribuit. Exist numeroase avantaje ale sistemelor de baze de date distribuite (creterea

    capacitii de stocare i prelucrare a datelor, creterea disponibilitii i a partajrii datelor, etc.), dar i o cretere considerabil a complexitii acestora.

    Cea mai important cerin pe care trebuie s o ndeplineasc sistemele de gestiune a bazelor de date distribuite este de a asigura administrarea transparent a datelor. Transparena se refer la capacitatea unui sistem distribuit de a ascunde detaliile de implementare, astfel nct utilizatorii s poat accesa datele pe baza unui model de nivel nalt, fr a fi necesar cunoaterea exact a modului de amplasare, replicare sau comunicare a datelor. Sistemele de gestiune a bazelor de date distribuite comerciale nu ofer n momentul de fa un nivel suficient de transparen a localizrii datelor, dar dezvoltarea continu a acestora va putea s asigure n viitor aceast cerin.