Sunteți pe pagina 1din 20

Baze de Date

-Introducere-

Universitatea din Craiova,


Facultatea de Automatica, Calculatoare si Electronica
Introducere
Definitie: Colecția de date persistente, conectate logic, exhaustivă se
numește bază de date.
Definitie: Un sistem de gestiune a bazelor de date (SGBD) este o colecție
de date interconectate și o mulțime de programe cu ajutorul cărora se
accesează datele.
Scopul primar al unui SGBD este de a stoca și extrage eficient informații
din baza de data.
• Sistemele de baze de date sunt proiectate pentru a administra cantități
mari de date.
• Administrarea datelor presupune atât definirea structurilor pentru
stocarea informației cât și mecanisme pentru manipularea(prelucrarea)
informației.
•Sistemele de gestiune a bazelor de date trebuie să asigure siguranța
informației stocate împotriva eventualelor căderi de sistem sau accesului
neautorizat.
Aplicații ale SGBD
• Bazele de date sunt extrem de utilizate in aplicatii software.
• Câteva din aplicațiile cele mai reprezentative sunt:
• Bancare: gestiunea informațiilor legate de clienți, conturi, tranzacții
bancare.
• Transport aerian: gestiunea informațiilor legate de rezervări si
planificări.
• Universități: gestiunea informațiilor legate de studenți, cursuri, note,
examene, profesoi.
• Tranzacții și carduri pentru credite: gestiunea cumparaturilor pe
cardurile de credit, generarea situatiilor lunare.
• Telecomunicații: gestiunea inregistrarilor apelurilor, facturarea lunara,
etc.
• Finanțe: gestiunea informatiilor despre vanzari, stocuri, etc.
• Vânzări: gestiunea clientilor, produselor, informatii legate de vanzari.
• Resurse umane: gestiunea informatiilor despre angajati, salarii, taxe,
beneficii, etc.
•Dupa cum se poate observa, bazele de date sunt o parte esentiala a
majoritatii aplicatilor din prezent.
SGBD vs Sisteme de Fisiere
• Sistemul de fisiere stocheaza inregistari in diferite fisiere si este nevoie de
programe care sa extraga/citeasca/adauge informatiile din/in fisiere.
• Inainte de aparitia SGBD-urilor, organizatiile isi stocau informatiile in astfel
de sisteme de fisiere.
• Pastrarea informatiilor in sistemul de fisiere are numeroase dezavantaje:
• redundanta si inconsistenta datelor – deoarece fisierele si programele
sunt folosite si modificate pe perioade indelungate de timp, aceeasi
informatie poate fi duplicata sau inconsistenta in mai multe locuri.
• dificultatea in accesarea datelor.
• izolarea datelor- deoarece datele sunt stocate in diverse fisiere si acestea
pot avea diferite formate, scrierea unor programe care sa extraga datele
este dificila.
• probleme de integritate- valorile datelor stocate in baza de date trebuie
sa satisfaca anumite tipuri de contrangeri de consistenta.
• problema de atomicitate-unele operatii trebuie executate impreuna (ori
toate, ori nici una). Este dificila asigurarea atomicitatii intr-un sistem de
fisiere conventional.
• anomaliile accesului concurent.
• probleme de securitate.
Baze date. Concepte
• Exista patru niveluri de abstractizare a datelor care asigură
independenţa aplicaţiilor în raport cu structura datelor.
• Nivelul extern (al utilizatorului) – este cel mai de sus nivel al abstractizarii si
simplifica interactiunea utilizatorului cu SGBD, deoarece utilizatorii pot avea
nevoie doar de anumite informatii din baza de date. Sistemul poate furniza mai
multe vederi ale aceeasi baze de date.
• Nivelul conceptual - este nivelul de abstractizare care descrie ce date sunt stocate
in baza de date si ce legaturi exista intre aceste date. Nivelul conceptual descrie
intreaga baza de date in termenii unui numar mic de structuri de date simple.
Implementarea acestor structuri simple de la nivelul conceptual poate implica
structuri de date complexe la nivel fizic. Acest nivel este corespunzator unei
viziuni globale asupra bazei de date independentă de implementare, din punctul
de vedere al proiectantului.
• Nivelul logic/implementabil – este corespunzator unor viziuni particulare
asupra datelor, din punctul de vedere al proiectantului de aplicaţii şi al
utilizatorului;
• Nivelul fizic – este cel mai de jos nivel al abstractizarii si descrie cum sunt datele
stocate pe disc. La acest nivel, structurile de date de nivel jos sunt descrie in
detaliu.
Modele de date
• Modelul de date reprezinta o colectie de instrumente conceptuale
pentru descrierea datelor, a legaturilor dintre date, a semanticii
datelor si a constrangerilor de consistenta.
• Din categoria modelelor conceptuale fac parte:
• Modele ER (Entity-Relationship Model)
• Modele OOM (Object-Oriented Model)
• Modele ORM (Object-Role Model)
• Modele UML (Universal Modeling Language)
• Din categoria modelelor implementabile fac parte:
• Model ierarhic;
• Model reţea;
• Model relaţional;
• Model obiectual;
• Model obiect-relaţional
Modelul Entitate-Asociere (entity-relationship E-R)
• Modelul E-R se bazeaza pe modelarea lumii reale folosind colectii de
obiecte, numite entitati si pe legaturile (relationships) dintre entitati.
O entitate este un lucru sau obiect din lumea reala care se distinge de
alte obiecte. De exemplu orice persoana este o entitate sau conturile
unei banci sunt toate entitati.

• Entitatile sunt descrise in baza de date de o multime de atribute. De


exemplu, Nr_Cont si Balanta pot descrie un Cont dintr-o banca si sunt
atribute pentru entitatea Cont. Similar, entitatea Client este descrisa de
atributele ID, Nume, Strada, Oras, Telefon.

• O legatura este o asociere intre mai multe entitati. De exemplu,


depoziteaza este o legatura intre client si cont –urile pe care le are
intr-o banca, ca in figura de mai jos.
Modelul Entitate-Asociere (entity – relationship E-R)

Strada Telefon Nr_Cont Balanta


ID

Nume Oras

Cont
Client depoziteaza

Schema conceptuala a bazei de date poate fi descrisa grafic de


diagrama E-R, care are urmatoarele componente:
• Dreptunghiuri reprezinta entitati.
• Elipsa reprezinta atribute.
• Romburi reprezinta legaturile/asocierile intre entitati tip.
• Liniile leaga entitatile tip cu legaturile tip.
Modelul relational
• Modelul relational foloseste colectii de tabele pentru a reprezenta
datele si legaturile dintre ele. Fiecare tabel are mai multe coloane si
fiecare coloana are nume unic.

• Modelul relational este cel mai cunoscut model de date si cea mai
mare majoritate a SGBD curente se bazeaza pe modelul relational.

• Modelul relational este mai aproape de implementare, de nivelul de


jos al abstractizarii decat modelul E-R. Proiectarea bazei de date se
realizeaza, de obicei, folosind modelul E-R si apoi acesta este
translatat in model relational.

• In modelul relational simplu din figura urmatoare, s-au reprezentat 3


tabele: prima tabela contine informatii despre clienti, cea de-a doua
despre conturi din banca si cea de-a treia indica ce conturi au clientii
bancii.
Modelul relational
Limbajele bazelor de date
• Un SGBD ofera un limbaj de definire a datelor (DDL) pentru a specifica
schema bazei de date si un limbaj de manipulare a datelor (DML) pentru a realiza
interogari si modificari ale bazei de date.

• In practica, aceste limbaje nu sunt separate, ele sunt parti ale unui singur limbaj
al bazei de date, cum ar fi de exemplu SQL.

• DDL - cu ajutorul acestui limbaj de definire a datelor, se va crea schema bazei de


date printr-un set de expresii. De exemplu, crearea tabelei cont in limbajul SQL:

create table cont


(NRCont char(10),
Balanta integer)

• DML- manipularea datelor presupune:

• gasirea informatiei cautate in baza de date


• inserarea informatiei noi in baza de date
• stergerea anumitor informatii din baza de date
• modificarea informatiei stocate in baza de date
Accesarea bazei de date din programele de aplicatii
• Aplicatiile care interactioneaza cu baze de date sunt scrise de obicei
in limbaje gazda cum ar fi C, C++ sau Java. Pentru a accesa baza de
date, comenzile DML trebuie executate din limbajul gazda.

• Exista 2 moduri de a realiza acest lucru:


• Prin intermediul unei interfete program (un set de proceduri)
care pot sa trimita comenzi DDL si DML la baza de date si pot sa
primeasca rezultatele cautarii din baza de date. Standardul Open
Database Connectivity (ODBC) definit de Microsoft pentru
limbajul C este folosit ca si interfata intre aplicatii si baze de date.
Standardul pentru Java se numeste Java Database Connectivity
(JDBC).

• Prin extinderea limbajului gazda care sa cuprinda si apeluri


DML.
Utilizatorii si administratorii bazei de date
• Persoanele care lucreaza cu baza de date pot fi categorizate in:

• Utilizatorii bazei de date

• Administratorii bazei de date


Utilizatorii si administratorii bazei de date
• Exista mai multe tipuri de utilizatori ai sistemului de gestiune a bazelor de
date, diferentiati de modul in care interactioneaza cu sistemul.
• Diferite tipuri de interfete au fost proiectate pentru diferite tipuri de
utilizatori.

• Utilizatorii naivi sunt utilizatoii care interactioneaza cu baza de date


prin intermediul aplicatiilor scrise deja. De exemplu, clientul unei banci
doreste sa trasfere o suma de bani dintr-un cont in altul. Atunci va
trebui sa apeleze o aplicatie de transfer care ii va solicita utilizatorului
suma de bani si contul din care face transferul si cel in care face
transferul.

• Programatorii de aplicatii sunt programatori profesionisti care scriu


aplicatii. Acestia folosesc diverse instrumente si limbaje de programare
pentru construirea de aplicatii pentru baza de date.

• Utilizatorii sofisticati interactioneaza cu sistemul fara sa scrie


programe. Acestia lucreaza direct cu baza de date folosind limbajul de
definiere si manipulare a bazei de date.
Utilizatorii si administratorii bazei de date
Rolurile administratorului bazei de date sunt:

• Definirea schemei bazei de date.


• Definirea structurilor de stocare si a metodelor de acces.
• Acordarea de privilegii pentru accesarea datelor.
• Efectuarea de proceduri cum ar fi:
-periodic se realizeaza back-up bazei de date
-asigurarea spatiului pe disc necesar
-monitorizarea activitatilor asupra bazei de date
Structura unui SGBD
1. Storage manager – Manager stocare date - este un modul care ofera o
interfata intre datele de nivel jos stocate in baza de date si programele
aplicative si interogarile trimise sistemului. Acesta cuprinde:
• Managerul de autorizare si stocare: testeaza satisfacerea regulilor de integritate si
verifica autorizarea utilizatorilor pentru a accesa datele.
• Managerul de tranzactii: asigura ca baza de date ramane in stare consistenta in
urma caderilor sau erorilor de sistem si executarea tranzactiilor concurente fara
conflict.
• Managerul de fisiere: administreaza alocarea spatiului pe disc si structurile de
date folosite pentru a reprezenta informatia stocata pe disc.
• Managerul memoriei tampon: este responsabil pentru citirea datelor de pe disc in
memoria principala si decide ce date sunt pastrate in memoria principala. Acest
manager reprezinta partea critica a sistemului de baze de date si implementeaza
cateva structuri de date ca si parte a implementarii fizice a sistemului:
• Fisierele de date: stocheaza chiar baza de date.
• Dictionarul de date: stocheaza metadate despre structurile de date ale bazei de
date.
• Indecsii ofera acces rapid la datele accesate.
Structura unui SGBD
2. Procesorul de interogari (cereri) - include urmatoarele componente:
• Interpretorul DDL interpreteaza comenzile DDL si inregistreaza
definitiile in dictionarul de date.
• Compilatorul DML translateaza comenzile DML din limbajul de
interogare intr-un plan de evaluare care contine instructiuni de
nivel inferior. O interogare poate fi translatata in mai multe
planuri alternative de evaluare, toate oferind acelasi rezultat.
Compilatorul DML efectueaza de asemenea optimizarea
interogarilor care presupune alegerea planului de evaluare cu
costul cel mai mic dintre alternativele existente.
• Motorul de evaluare a interogarii executa instructiunile de nivel
inferior generate de compilatorul DML.
Utilizatori Programatori Utilizatori Administrator
naivi aplicatii sofisticati baza de date

Interfete Programe Medii de Mijloace de


aplicatie aplicatie interogare administrare

interpretor
compilator cereri DML
DDL

Program Compilator
aplicatie DML
cod obiect
Masina Procesor
evaluare cereri cereri

Manager Manager Manager


Manager
memorie autorizare tranzactii
fisiere
tampon acces

Manager
stocare date

indecsi Dictionar
de date

date Date
statistice
Arhitectura aplicatiilor cu baze de date
• De obicei, aplicatiile cu baze de date pot avea o arhitectura:

• pe 2 nivele (two-tier) - aplicatia este partitionata intr-o componenta


care se gaseste pe masina client, si care foloseste functionalitatile
sistemului de baze de date care se gaseste pe masina server.
Interfetele aplicatiilor , cum ar fi ODBC si JDBC, sunt folosite pentru
interactiunile client/server.
• pe 3 nivele (three-tier) – aplicatia de pe masina client nu contine
apeluri directe la baza de date, ele interactioneaza print intermediul
unui server de aplicatii. Serverul de aplicatii comunica cu sistemul
de baze de date.

S-ar putea să vă placă și