Baze de Date - Universitatea din Craiova

Download Report

Transcript Baze de Date - Universitatea din Craiova

Baze de Date
2011-2012
Anca Ion
Baze de Date
-IntroducereUniversitatea din Craiova,
Facultatea de Automatica, Calculatoare si Electronica
Introducere
Baze de Date
2011-2012
Anca Ion
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.
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.
Aplicații ale SGBD
Baze de Date
2011-2012
Anca Ion
• 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.
SGBD vs Sisteme de Fisiere
Baze de Date
2011-2012
Anca Ion
• 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.
Baze date. Concepte
Baze de Date
2011-2012
Anca Ion
• 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.
Modele de date
Baze de Date
2011-2012
Anca Ion
• 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 –legatura (entity – relationship
Baze de Date
E-R) 2011-2012
Anca Ion
• 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.
Baze de Date
2011-2012
Anca Ion
Modelul entitate –legatura (entity – relationship E-R)
Strada
Telefon
ID
Nume
Balanta
Nr_Cont
Oras
Client
depoziteaza
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.
Modelul relational
Baze de Date
2011-2012
Anca Ion
• 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
Baze de Date
2011-2012
Anca Ion
Limbajele bazelor de date
Baze de Date
2011-2012
Anca Ion
• 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
Accesarea bazei de date din programele de aplicatii
Baze de Date
2011-2012
Anca Ion
• 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.
Baze de Date
2011-2012
Anca 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
Baze de Date
2011-2012
Anca 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.
Baze de Date
2011-2012
Anca Ion
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
Baze de Date
2011-2012
Anca Ion
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
Baze de Date
2011-2012
Anca Ion
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
naivi
Programatori
aplicatii
Utilizatori
sofisticati
Administrator
baza de date
Interfete
aplicatie
Programe
aplicatie
Medii de
interogare
Mijloace de
administrare
cereri DML
interpretor
DDL
compilator
Program
aplicatie
cod obiect
Manager
memorie
tampon
Compilator
DML
Masina
evaluare cereri
Manager
fisiere
Procesor
cereri
Manager
autorizare
acces
Manager
tranzactii
Manager
stocare date
indecsi
date
Dictionar
de date
Date
statistice
Baze de Date
2011-2012
Anca Ion
Arhitectura aplicatiilor cu baze de date
Baze de Date
2011-2012
Anca Ion
• 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.
Baze de Date
2011-2012
Anca Ion