Baze de Date - Introducere - Universitatea din Craiova,
description
Transcript of 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
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.
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.
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.
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.
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
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.
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.
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.
Baze de Date
2011-2012Anca Ion
Modelul relational
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
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.
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
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.
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
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.
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.
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
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.
Baze de Date
2011-2012Anca Ion