Baze de Date - Introducere - Universitatea din Craiova,

20
Baze de Date 2011-2012 Anca Ion Baze de Date -Introducere- Universitatea din Craiova, Facultatea de Automatica, Calculatoare si Electronica

description

Baze de Date - Introducere - Universitatea din Craiova, Facultatea de Automatica, Calculatoare si Electronica. Introducere. 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. - PowerPoint PPT Presentation

Transcript of Baze de Date - Introducere - Universitatea din Craiova,

Page 1: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

Baze de Date-Introducere-

Universitatea din Craiova,Facultatea de Automatica, Calculatoare si Electronica

Page 2: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

IntroducereDefinitie: 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.Definitie: Colecția de date persistente, conectate logic, exhaustivă se numește bază de date.• 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. • Astfel, sistemele de gestiune a bazelor de date trebuie să asigure siguranța informației stocate împotriva eventualelor căderi de sistem sau accesului neautorizat.

Page 3: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

Aplicații ale SGBD• Bazele de date sunt extrem de utilizate. • 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.

Page 4: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

SGBD vs Sisteme de Fisiere• Sistemul 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.

Page 5: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

Baze date. Concepte• Necesitatea asigurării independenţei aplicaţiilor în raport cu

structura datelor au impus necesitatea de a vizualiza structura datelor la patru niveluri de abstractizare:

• 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.

Page 6: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

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

Page 7: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

Modelul entitate –legatura (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.

Page 8: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

Modelul entitate –legatura (entity – relationship E-R)

ClientCont

depoziteaza

ID

Nume

Strada Telefon

Oras

BalantaNr_Cont

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.

Page 9: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

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.

Page 10: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

Modelul relational

Page 11: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

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 datalor, se va crea schema bazei de date printr-un set de expreresii. 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

Page 12: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

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.

Page 13: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

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

Page 14: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

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.

Page 15: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

Utilizatorii si administratorii bazei de dateRolurile 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

Page 16: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

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.

Page 17: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

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.

Page 18: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

Utilizatori naivi

Administrator baza de date

Utilizatori sofisticati

Programatori aplicatii

Interfete aplicatie

Mijloace de administrare

Medii de interogare

Programe aplicatie

Program aplicatie

cod obiect

compilator cereri DML interpretor DDL

Masina evaluare cereri

Compilator DML

date

indecsi Dictionar de date

Date statistice

Procesor cereri

Manager autorizare

acces

Manager tranzactii

Manager memorie tampon

Manager fisiere

Manager stocare date

Page 19: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion

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 invoca 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.

Page 20: Baze  de Date - Introducere - Universitatea din Craiova,

Baze de Date

2011-2012Anca Ion