Documente Academic
Documente Profesional
Documente Cultură
1. NOȚIUNI INTRODUCTIVE.
CONCEPTE TEORETICE
Structură curs
Bibliografie
1. Introducere
2. Sisteme de baze de date
3. Componentele sistemelor BD
4. Modelul relațional
5. Modelarea datelor
5.1. Modelul entitate – legatura
5.2. Modelarea fizică
6. Funcțiile unui SGBD
7. Aplicație propusă
2
Structură curs
Ore
Prelegeri Lucrări de laborator
P LL
Tema 1. Baze de date şi sisteme de gestiune a LL1. Instalarea şi configurarea SGBD-ului 2 4
bazelor de date MySQL SERVER. Crearea şi întreţinerea
bazei de date
Tema 2. Structura relaţională a datelor 2
Tema 3. Constrângeri de integritate LL2. Gestionarea tabelelor şi relaţiilor 4 4
dintre acestea.
Tema 4. Algebra relaţională 2
Tema 5. Limbajul MySQL LL3. Interogări simple şi compuse asupra 6 4
bazei de date
Tema 6. Actualizarea bazei de date 2
Tema 7. Cereri mulţi-relaţie 2
Tema 8. Funcţii definite de utilizator LL4. Funcţii şi proceduri 4 4
Tema 9. Proceduri stocate 4
Tema 10. Definirea accesului la baza date LL5. Viziuni 2 4
Tema 11. Viziuni 4
Tema 12. Declanşatoare LL6. Declanşatoare 4 4
Tema 13. Crearea şi restaurarea backup-ului LL7. Mentenanţa, backup-ul şi recuperarea 3 6
bazelor de date
Tema 14. Rapoarte 4
Total 45 30
3
Bibliografie
4
Obiective:
5
1. Introducere: Condiții preliminare pentru apariția bazelor de date
Segmentul de date
Descrierea datelor
date
date
BD
а) b) c)
6
1. Introducere: Condiții preliminare pentru apariția bazelor de date
7
1. Introducere: Date istorice
– 1960: primele aplicatii de baze de date comerciale (companii private): model de tip retea (CODASYL) si de tip ierarhic (IMS); acces prin
intermediul pointerilor low-level; detalii de stocare depind de tipul de date ce trebuie stocate; succes comerical: SABRE – IBM si American Airlines;
– 1970-1972: E.F. Codd propune modelul relational de organizare a datelor; deconecteaza schema (tipul de organizare logica a datelor) de tipul
de stocare fizica;
– 1970-1980: apare Ingres, din care se vor dezvolta apoi Ingres Corp., Sybase, MS SQL Server; apare System R (IBM), din care se vor dezvolta
Oracle, IBM DB2;
– 1976: P. Chen propune modelul entitate-relatie; aceasta abordare va permite concentrarea pe proiectarea functionala si nu pe organizarea
tabelelor;
– 1980-1990: revolutia PC face posibila dezvoltarea PARADOX, DBASE III, IV, FoxPro; DB2 devine un important al IBM; SQL devine standardul
general acceptat pentru SGBDR.
– 1990 (inceputul decadei): Apar si se dezvolta aplicatii dedicate dezvoltarii de aplicatii de baze de date: VB, PowerBuilder (Sybase), Oracle
Developer; modelele client-server se impun treptat pe piata;
– 1990 (mijlocul decadei): Dezvoltarea Internetului; regandirea in perspectiva a modelelor de aplicatii de baze de date;
– 1990 (sfarsitul decadei): Investitiile masive in Internet stimuleaza aparitia si dezvoltarea de produse ce faciliteaza interconectarea si
manipularea datelor pentru aplicatii online (ASP, FrontPage, Java Servlets, JDBC, Java Beans, ColdFusion, Dream Weaver, Oracle Developer
2000)
– 2000: Trei mari companii domina: Oracle, IBM (cumpara Informix) si Microsoft;
– 2009: Open source MySQL/Apache server inlocuieste sisteme scumpe/istorice/comerciale (dar …Oracle cumpara Sun);
– prezent: noSQL (BigTable, MapReduce, MongoDB), XML;
Tendinte
– Baze de date de dimensiuni uriase (TB) impun regandirea metodelor de acces si analiza a datelor;
– Au aparut succesori ai SQL (noSQL, incluzand XML): tabele nenormalizate, scalare horizontala, stocare cheie-valoare;
– Probleme etice/de securitate/utilizare devin, periodic, de mare importanta. 8
1. Introducere: Metode de realizare a aplicațiilor care folosesc BD
Pentru realizarea unei aplicaţii care foloseşte baze de date se poate proceda în două
moduri:
a) Se creează baza de date cu ajutorul unei aplicaţii de tip server de baze de date şi se
scriu apoi aplicaţiile care accesează baza de date într-un limbaj care posedă funcţiile
necesare accesării server-ului (frecvent se folosesc limbajele C++, Java, C# sau Visual
Basic)
b) Se foloseste o aplicaţie de tip sistem de gestiune de baze de date (S.G.B.D. sau
D.B.M.S. - DataBase Management System).
Un astfel de sistem oferă un ansamblu de instrumente software cu ajutorul cărora se
crează atât baza de date cât şi aplicaţiile prin care aceasta este exploatată.
Pentru utilizatorii sistemului de operare Windows cele mai cunoscute sisteme de acest
fel sunt Access şi Visual FoxPro, ORACLE Database, MySQL.
9
2. Sisteme de baze de date
1. Date
2. Utilizatori
3. Hardware
4. Software
10
2. Sisteme de baze de date (continuare)
Date Informații
“Fapte, elemente ce servesc ca punct de “Comunicare, veste, ştire” “Fiecare dintre
plecare în cercetarea unei probleme sau elementele noi în raport cu cunoştinţele
pentru a trage o concluzie sau hotărâre”. prealabile”.
(Dicţionar general al limbii române – Vasile Breban Ed. Enciclopedica,1991)
Șofer
Cultivatoare de flori
12
2. Sisteme de baze de date (continuare)
Diferite persoane sau grupuri de persoane care folosesc informaţiile sunt definite ca
utilizatori.
13
2. Sisteme de baze de date (continuare)
Hardware
De obicei noţiunea de hardware constă din device-uri fizice, cum ar
fi harddisk-uri, imprimante, interfeţe de intrare/ieşire şi procesorul
de date cu memoria sa asociată.
Software
Interfaţa dintre datele fizice şi utilizatorul se numeşte Sistemul de
Gestiune a Bazelor de Date (SGBD).
SGBD-ul este un sistem software, dar poate conţine şi hardware
specializat pentru a gestiona mai eficient datele.
Aceste componente hardware pot fi harddisk-uri speciale care
permit un acces mai rapid la date, sau multiprocesoare care permit
procesarea paralelă de date.
14
2. Sisteme de baze de date (continuare)
15
2. Sisteme de baze de date (continuare)
16
3. Componentele sistemelor BD
1. SGBD - 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 sa ramana 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.
17
3. Componentele sistemelor BD (continuare)
18
3. Componentele sistemelor BD (continuare)
SQL DDL
• DDL – instrucțiuni de definire a obiectelor BD, se va
crea schema bazei de date printr-un set de expreresii.
Data Definition De exemplu, crearea tabelului cont in limbajul SQL:
Language
create table cont
(NRCont char(10),
DML Balanta integer)
Data Manipulation
Language • DML- manipularea cu datele BD:
• gasirea informatiei cautate in baza de date
DCL • inserarea informatiei noi in baza de date
• stergerea anumitor informatii din baza de date
Data Control
Language
• modificarea informatiei stocate in baza de date
• DCL – instrucțiuni de control al datelor
19
3. Componentele sistemelor BD (continuare)
Arhitectura unui sistem de baze de date presupune următoarele Utilizatori
naivi
Programatori
aplicatii
Utilizatori
sofisticati
Administrator
baza de date
componente
• baza de date propriu-zisă în care se memorează datele;
Interfete Programe Medii de Mijloace de
aplicatie aplicatie interogare administrare
Manager
• personalul implicat (utilizatori finali, administratorul datelor, stocare date
administratorul bazei de date, proiectanţi, programatori de aplicaţii).
indecsi Dictionar
de date
date Date
statistice
20
4. Modelul relațional
Modelul retea în care datele erau organizate sub forma unui graf orientat. Nodurile şi
arcele au aceeasui semnificaţie ca mai sus.
21
4. Modelul relațional (continuare)
Modelul relațional
• Modelul relational este cel mai cunoscut model de date si cea mai mare majoritate a
SGBD curente se bazeaza pe modelul relational.
22
4. Modelul relațional (continuare)
O entitate este un obiect distinct inclus în BD asociat unei persoane, firme, unui loc,
document sau concept etc.
Fiecărei categorii de obiecte descrise în BD i se asociază un tip de entitate cu un nume
sugestiv (de exemplu: studenți, angajați, cursuri, departamente etc.)
Fiecare entitate este descrisă printr-un set de atribute. De exemplu, entitatea STUDENT
poate avea mai multe atribute: nume, prenume, cod numeric personal (CNP), număr
matricol, specializare şi altele.
Un atribut este o proprietate care descrie un anumit aspect al unui tip de entitate.
Cheia este un atribut sau un grup de atribute care identifică în mod unic o entitate - se
numeşte cheie primară (PK – Primary Key).
23
4. Modelul relațional (continuare)
Modelul relațional
25
4. Modelul relațional (continuare)
26
4. Modelul relațional (continuare)
27
4. Modelul relațional (continuare)
Domeniu
28
4. Modelul relațional (continuare)
Constrângeri de integritate:
29
4. Modelul relațional (continuare)
30
4. Modelul relațional (continuare)
O cheie candidat a unei relaţii R este o mulţime minimă de atribute de care toate celelalte
atribute ale lui R sunt dependente funcţional.
Cheia primară a unei relaţii R este una din cheile candidat care a fost desemnată în acest scop.
O cheie străină a unei relaţii R este o mulţime de atribute din schema relaţională care formează
o cheie primară pentru o altă relaţie.
31
5. Modelarea datelor
32
5. Modelarea datelor (continuare)
Modelul conceptual:
- Modelează nevoile informaţionale ale afacerii
- Se numeşte “Entity Relationship Model”
- Este prezentat printr-o diagramă numită “Entity
Relationship Diagram”
33
5. Modelarea datelor (continuare)
34
5. Modelarea datelor (continuare)
35
5.1. Modelul entitate – legatura
• 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.
• 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.
36
5.1. Modelul entitate – legatura (continuare)
37
5.1. Modelul entitate – legatura (continuare)
38
5.2. Modelarea fizică
Exemplu:
Studenti(nrMatr, nume, prenume, cnp, specializare)
39
6. Funcțiile unui SGBD
1. Descrierea datelor
2. Utilizarea datelor
3. Integritatea datelor
4. Confidentialitatea datelor
5. Accesul concurent la date
6. Siguranta în funcţionare
40
6. Funcțiile unui SGBD (Descrierea datelor)
• Un SGBD trebuie sa includă posibilitatea descrierii stucturii obiectelor care formează
baza de date. În cazul bazelor de date relaţionale aceasta consta, în principal, în
posibilitatea creerii şi modificării structurii tabelelor şi constrangerilor de integritate
asociate acestora.
• Limbajul prin care se realizează aceste operaţii, se numeste Limbaj de Descriere a
Datelor (LDD) şi în cazul primelor sisteme de gestiune el era implementat sub forma
unor module separate. În sistemele relaţionale bazate pe SQL aceste operaţii au fost
incluse în limbaj sub forma comenzilor de tip CREATE (pentru creare) sau ALTER
(modificare).
• O caracteristica importanta a sistemelor relaţionale este aceea ca descrierea structurii
bazei de date este stocata în acelasi mod ca şi baza de date în sine.
• Exista, pentru aceastam o serie de tabele gestionate direct de sistemul de gestiune
numite cataloage care contin descrierea obiectelor care formează baza de date.
• Aceste tabele sunt accesate de sistem pentru a regasi informaţiile necesare executiei
cererilor dar pot fi accesate şi de utilizatori pentru a obtine informaţii privind structura
bazei de date.
• Astfel toate informaţiile de sistem necesare unui SGBD relaţional sunt stocate în
acelasi mod, inclusiv descrierea utilizatorilor şi a drepturilor de acces ale acestora.
• Aceasta abordare a fost necesara pentru a nu avea mecanisme diferite de acces la
datele de sistem şi la datele stocate în baza de date.
41
6. Funcțiile unui SGBD (Utilizarea datelor)
Aceasta funcţie include operaţiile de lucru cu datele înregistrate intr-o bază de date.
Exista patru categorii de operaţii principale:
• Inserarea de noi date. Aceasta se concretizează prin adaugarea de noi linii în tabelele care
formează baza de date.
• Stergerea de linii din tabele.
• Actualizarea datelor, insemnând modificarea continutului unor linii existente în tabele.
• Regasirea datelor dupa anumite criterii de cautare
Pentru implementarea acestei funcţii fiecare SGBD are un Limbaj de manipulare a datelor
(LMD) care poate fi un modul separat sau inclus în limbajul sistemului cum este în cazul
SQL.
Operaţia de regăsire este esentiala, ea fiind necesara şi în cazul celorlalte operaţii:
1. În cazul inserarii, dacă aceeaşi informaţie nu poate fi prezenta de mai multe ori în baza de date, este necesara o
cautare prealabila pentru a verifica acest lucru.
2. În cazul stergerii şi actualizarii este necesara localizarea datelor care vor fi eliminate sau modificate.
3. În cazul executarii unei cereri.
42
6. Funcțiile unui SGBD (Integritatea datelor)
Majoritatea sistemelor de gestiune permit definirea unor reguli pe care datele stocate trebuie sa le
verifice, numite c o n s t r a n g e r i d e i n t e g r i t a t e .
În cazul în care o operaţie are ca rezultat încălcarea acestor restricţii, aceasta este automat anulată şi
nu are efect asupra bazei de date.
În felul acesta este asigurata o mai mare siguranta în ceea ce priveste corectitudinea datelor.
S a consideram o bază de date continând informaţii despre
facultaţi,
studentii inscrisi şi
notele obtinute de acestia.
Introducerea accidentala de valori incorecte în baza de date. Exemplu: restricţie privind intervalul de
valori admisibil pentru note: 0 - 10.
Lasarea necompletata a unor informaţii necesare. Exemplu: numele studentului.
Alocarea accidentala a aceluiasi numar matricol pentru mai multi studenti (constrangere de
unicitate a valorilor).
Introducerea accidentala a unui student cu un cod incorect al facultaţii la care acesta este inscris
(constragnere referentiala)
Definirea de constrangeri de integritate nu previne insa total erorile accidentale de operare: de
exemplu introducerea din greseala a unei note de 4 în loc de 5 nu va fi semnalata, ambele valori fiind
în intervalul admisibil.
43
6. Funcțiile unui SGBD (Confidențialitatea datelor)
Accesul la date este permis doar utilizatorilor înregistraţi şi doar în masura drepturilor
de acces alocate.
Un utilizator este identificat printr-un nume-utilizator şi o parola.
Fiecarui utilizator i se permite accesul doar la o portiune a bazei de date şi doar
pentru a efectua anumite tipuri de operaţii.
Toate aceste informaţii relative la ce, cum şi de unde poate accesa datele un utilizator
reprezinta drepturile de acces asociate acestuia.
Drepturile de acces sunt stocate în cataloagele sistemului.
Prin mecanismul de drepturi de acces este asigurata funcţia de confidentialitate
a datelor.
Este prevenita posibilitatea de acces la date a persoanelor care nu au acest drept.
Exemplu: în cazul sistemului informatic al unei organizaţii, acces selectiv la salariile
angajaţilor, detalii ale proceselor tehnologice, datele contabile etc.
44
6. Funcțiile unui SGBD (Accesul concurent la date)
45
6. Funcțiile unui SGBD (Siguranța în funcționare)
Desi nu este legata direct de cele prezentate pana acum, siguranta în funcţionare este
o caracteristica esentiala pentru un SGBD.
Contine acele elemente care exclud sau minimizează posibilitatea de pierdere a datelor
datorata incidentelor software sau hardware.
Salvarea datelor. Implementarea operaţiilor de salvare este mult mai sofisticata
Este dificila efectuarea unei de còpii de siguranta consistente ale bazei de date în conditiile în
care aplicaţia rulează non-stop şi operarea nu poate fi oprita pentru efectuarea salvarii.
Restaurarea dupa incident. La distrugerea bazei de date este necesara efectuarea operaţiei de
restaurare din copie.
Multe tipuri de SGBD au posibilitatea de a înregistra toate schimbarile aparute în baza de
date sub forma unor fişiere jurnal.
În acest fel operaţia de restaurare dupa incident se face restaurând ultima copie de
siguranta şi reefectuând toare prelucrarile consistente înregistrate în jurnal dupa momentul
în care a fost efectuata copia.
46
7. Aplicație propuspă
47
Recapitulare
48