Sunteți pe pagina 1din 160

Baze de Date

Curs introductiv

Gabriel Dragomir
1
Obiective
La final vor fi dobndite urmtoarele
deprinderi:
1. S implementeze modele de date necesare
proiectrii conceptuale a unei baze de date
2. S implementeze o baz de date pentru un
SGBD relaional conform unui set de cerine
textuale sau specificaii tehnice, s
implementeze scripturi pentru exploatarea bazei
de date, pe baza unui set de cerine generale, s
conceap i s optimizeze interogri pentru o
baz de date folosind sintaxa limbajelor
relaionale (SQL i dialecte de ex. Transact-SQL
sau PL-SQL)
2
Obiective (continuare)
3. S adopte cea mai bun soluie pentru normalizarea
schemei unei baze de date n vederea realizrii unei
proiectri optimale a unei baze de date pentru
anumite clase de probleme.
4. S utilizeze un mediu de lucru integrat evoluat pentru
implementarea i programarea aplicaiilor cu baze de
date la nivel BD (SQL Developer - Oracle, SQL Server
Management Studio, MySQL Workbench)
5. S utilizeze un limbaj specific pentru realizarea unei
aplicaii cu baze de date (aplicaie PHP conectat via
http la o baz de date)

3
Coninut
Introducere n Baze de Date. Sisteme
de Gestiune Baze de Date. Arhitectura
Sistemelor de Gestiune Baze de Date.
Structured query language - SQL.
Constrngeri; Vederi.
Aplicaii cu Baze de Date.
Modelul Relaional. Algebra Relaional.
4
Coninut
Calcul Relaional.
Elemente de proiectare Baze de Date. Forme
Normale.
Modelul Entity Relation.
Administrare Baze de Date. Indeci.
Securitate. Tranzacii.
XML.
NoSQL.
5
Bibliografie
G.C. Dragomir-Loga, Utilizarea Bazelor de Date
Relaionale, Editura UTPRESS, 2011
Al. Lelutiu, Perenitatea conceptelor de baze de date
R. Ramakrishnan, J. Gerhrke, Database Management
Systems, McGraw Hill, 2002
J. Ullman, H.G. Molina, J. Widom, Database Systems,
Prentice Hall, 2008
C. J. Date, An Introduction to Database Systems, 8th
edition, Pearson Education, 2004
R. Dollinger, Baze de Date si Gestiunea Tranzactiilor, Ed.
Albastra, 1998
D. Burdescu, A.I Ionescu, L. Stanescu, Baze de Date,
Editura Universitaria Craiova, 2004
6
Bibliografie
R. Dollinger, Utilizarea sistemului SQL Server
(SQL 7.0, SQL 2000) Ed. Albastra 2001
Ryan K. Stephens, Ronald Plew, Bryan Morgan,
Jeff Perkins - QUE - Teach Yourself SQL in 21
Days
Philip Greenspun - SQL for Web Nerds
http://www.sqlzoo.net
R. Riordan, Designing Effective User Interface
for Database Systems, Addison Wesley, 2005
L. Welling and L. Thomson, PHP and MySQL
Web Development, Pearson Education, 2005
7
Bibliografie
La biblioteca UTCN, ediii mai vechi (n
parantez, cota), n special pentru
Algebra Relaional i Calcul Relaional:
Date C. J., An Introduction to database
systems (461.35511)
Dollinger Robert, Baze de Date (477.431)

8
Structura cursului
14 sptmni
2 ore curs, 2 ore laborator + 4 ore pregtire
individual
Examinare pe parcurs
Laborator: EPL ~ 60% NL (nota laborator)
Examen final
NF (nota final) = 60%*NE + 40%*NL
La NE se ine cont de Prezena la Curs (0<=PC<=1,
NE = 0,9*EF + PC [+ TS])
TS reprezint evaluarea Oracle iLearning (bonus maxim 1p

9
Tema pentru colocviul parial
de laborator (EPL)
Se va crea schema unei baze de date
folosind SGBD Oracle (obligatoriu), se
va popula BD cu date relevante pentru
interogrile i actualizrile de pe
subiect.
Livrabile:
Script SQL care pe lng rezolvarea cerinelor
conine i popularea cu date.
10
Tema pentru colocviul parial de
laborator (EPL)
Modul de notare:
Creare tabele (fiecare subiect conine n jur de 4 tabele) 1,5 p;
Definire constrngeri de tip cheie primar, cheie strin 1p;
Modificarea structurii unei tabele 0,5p;
2 Constrngeri la nivel atribut, tupl 1p;
2 Interogri simple (1 tabel) 1p;
2 Interogri de tip JOIN (2 sau mai multe tabele, obligatoriu cu
JOIN) 1p;
2 Interogri complexe (implic obligatoriu anumii operatori cu
subquery) 1p;
2 Interogri cu funcii de agregare (MIN, MAX, COUNT, AVG
eventual combinat cu alte clauze) 1p;
3 Operaii de actualizare (INSERT, UPDATE, DELETE) 2p;
3 Triggere (din care unul de tip INSTEAD OF) 3p.

TOTAL 13p (60% NL)


11
Tema pentru colocviul final de
laborator
Se va implementa o aplicaie web
corespunztoare subiectului Colocviu parial
laborator BD primit la prima lucrare de
laborator.
Cerine:
BD implementat cu SGBD ORACLE, MySql sau MSSQL
La nivel aplicaie (UI) implementare cu PHP (opional cu
Javascript, CSS)
Se vor implementa numai interogrile (subpunctele 3-6) de
pe biletul Colocviu parial laborator BD. Pentru o notare ct
mai bun se vor respecta cerinele de detaliu pentru
interfaa utilizator.
Trebuie s se foloseasc una sau mai multe funcii definite
de utilizator n schema BD (proceduri stocate). Deci cel puin
ntr-o interogare codul PHP trebuie s apeleze o procedur
stocat (sau funcie utilizator UDF din BD). 12
Tema pentru colocviul final de
laborator
Interfaa utilizator:
Exemplu: Presupunnd c pe biletul Partial
de laborator BD interogarea este:
SELECT last_name, first_name, salary FROM
employees WHERE department_id = 101
Interfaa cu utilizatorul n prima faz citete
department_id, ca n figura de mai jos:

13
Tema pentru colocviul final de
laborator
Iar n faza a doua interfaa cu utilizatorul
afieaz rezultatul:

Se va ine cont la not de existena unui meniu


n aplicaie (nu se acceseaz interogrile una
cte una ca pagini web separate, ci se
integreaz cele ase interogri ntr-o aplicaie
cu mai multe pagini web).
14
Tema pentru colocviul final de
laborator
Livrabile:
Opional: Scripturi SQL pentru creare tabele i
populare cu date (dac implementarea BD s-a
fcut cu MySql sau MSSQL);
Script SQL pentru funcii UDF / proceduri stocate;
Scripturi PHP (+HTML, Javascript, CSS, etc).

Modul de notare (Total 10p - 40% NL):


1p din oficiu, 2p utilizare funcie UDF/procedur
stocat, 4p funcionare corect interogri (d.p.d.v.
PHP), 3p aspect interfa.
15
Nota pentru activitatea de
laborator se obine prin
susinerea practic, n faa
calculatorului, a celor dou
componente (parial i final)
la momentele de timp
planificate ce vor fi anunate
16
Examen final teorie (EF, 90%NE)
10 ntrebri teoretice (rspuns dat de student) 10p;
2 sau 3 ntrebri de tip problem din dependene funcionale i
normalizare 2p;
3 interogri pe o schem de BD cu 3 4 tabele (total 16p)
Fiecare interogare trebuie rezolvat cu:
SQL - 1p per interogare
Algebra relaional 1p per interogare
Calcul Relaional al Tuplelor 1p per interogare
Calcul Relaional al Domeniilor 1p per interogare
Se mai acord 1p per interogare pentru desenarea Arborelui
operator;
Problem care specific n limbaj natural cerinele pentru o baz
de date (total 7p)
Diagrama ER 5p;
Document XML care reflect diagrama ER 1p;
Interogare XQUERY 1p.

Total 35p (EF, 90%NE) 17


Cerine obligatorii
Examen parial laborator minim 6,5p
(din 13p)
Examen final laborator minim 5p (din
10p)
Examen final teorie minim 17,5p (din
35p)

18
Lucrri de laborator
Se lucreaz pe platforma iLearning
Oracle, cu acces independent pentru:
Materiale de studiu
Conin Quiz-uri ce conteaz pentru TS la
nota examen teorie
Lucrri practice SQL (APEX 5)
Lucrri practice PL-SQL (APEX 5)
19
Lucrri de laborator
Acces platforma Oracle iLearning pentru materiale
studiu:
http://ilearning.oracle.com/ilearn/en/learner/jsp/login.jsp?site=OracleAcad

NN este un numr ce va fi comunicat ulterior


Parola va fi comunicat ulterior

20
Lucrri de laborator
Acces platforma Oracle
iLearning pentru APEX:
https://iacademy3.oracle.com
xxx este un numr ce va fi
comunicat ulterior
Y este SQL sau PLSQL
nn este un numr ce va fi
comunicat ulterior
Parola va fi comunicat
ulterior 21
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos:

22
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos:

23
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos:

24
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos:

25
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos:

26
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos:

27
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos:

28
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos:

29
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos:

30
Lucrri de laborator
Pentru a aduga tabelele necesare desfurrii activitilor
practice, se vor urma paii de mai jos (ultimul pas):

31
Lucrri de laborator
Model ER. Prezentarea dicionarului
datelor. Definirea schemei BD (LDD SQL).
LMD SQL clauzele SELECT, FROM,
WHERE, ORDER BY.
Folosire funcii SQL Single Row.
Operatori JOIN. Funcii de agregare.
Clauzele GROUP BY, HAVING.
Interogri imbricate. Clauzele UNION,
INTERSECT, EXCEPT.
32
Lucrri de laborator
LMD SQL pentru actualizarea BD.
Constrngeri. Vederi. Triggere.
Colocviu parial de laborator.
Proceduri stocate. Cursoare.
Prezentare mediu XAMPP, PHP Editor.
Aplicaii cu BD (1). Realizare conexiune
PHP-BD Oracle. Interogarea i afiarea
rezultatelor.
33
Lucrri de laborator
Aplicaii cu BD (2). Structurare aplicaie:
logica de prezentare, logica aplicaiei,
acces la BD, tratare erori.
Aplicaii cu BD (3). Actualizare date,
folosire paginare n afiarea rezultatelor,
apel proceduri stocate.
Colocviu final de laborator

34
SQL?
Explicai diferenele ntre:
SELECT b
FROM R a b
5 20
WHERE a<10 OR a>=10; 10 30
i 20 40

SELECT b
R
FROM R;
35
SQL?
Respectiv, diferenele ntre:
SELECT a
FROM R, S
WHERE R.b = S.b;
i
SELECT a
FROM R
WHERE b IN (SELECT b FROM S);
36
Ce este n esen o baz de date (BD)?

n marea majoritate a cazurilor o BD conine:


nregistrri despre angajai,
nregistrri bancare,
etc.
n zilele noastre, domeniul BD acoper largi
surse de date, cu multe concepte noi.
Cutare Web.
Data mining.
Baze de Date tiinifice i medicale.
Integrarea informaiei.
37
Cantitatea total a datelor de pe
Terra (raport IDC)
2010: stiv de DVD-uri de la Pmnt la
Lun i napoi (aproximativ 384.400 km
* 2) adic 1,2 milioane petabytes, sau
1,2 zettabytes (1,2*1021 B)
2020: stiv de DVD-uri jumtatea
distanei ntre Pmnt i Marte
(aproximativ 30 de milioane km),
cretere de 40 de ori
38
Evoluia dimensiunii sistemelor de
baze de date

39
Un lucru esenial
Se poate observa c bazele de date
stau n spatele aproape oricrui lucru de
pe Web.
Cutri Google.
Interogri pe Amazon, eBay, etc.

40
Definiie
O baz de date este o colecie n
general mare de date nrudite,
stocate ntr-un sistem de calcul astfel
nct un program-calculator sau o
persoan ce folosete un limbaj de
interogare s o poat consulta pentru
a rspunde la ntrebri.

41
Programare n context BD

Este centrat n jurul unor limbaje de


programare limitate.
i gsesc sens doar n aria unde se pot
utiliza limbaje non-Turing-complete.

Conduce la o programare foarte succinct.

42
Probleme ce apar
1. controlul concurenei
Multe activiti (tranzacii) cu baza de
date se desfoar la acelai moment de
timp i acioneaz asupra acelorai buci
de informaie.

2. optimizarea interogrilor
Volum mare de date.

43
Sistem de Gestiune Baze de Date
(SGBD)
Un pachet de programe care permit
crearea, utilizarea i eliminarea
obiectelor ce compun baza de date.
Scopul principal:
Reducerea dependenei aplicaiilor n raport
cu structura datelor.
Categorisit dup modelul de date: de
ex. System R - SGBD relaional
44
Ce este un Model de Date?
1. O reprezentare matematic a datelor.
Exemple:
modelul relaional = tabele;
modelul semistructurat = arbori/grafuri.
2. Operaii cu datele.
3. Constrngeri.
45
Rolul i importana BD
Nu exist aplicaie real fr BD
Pe piaa software exist un numr mare
de SGBD-uri, pentru toate tipurile de
sisteme de calcul, sisteme de operare i
tehnologii de acces la date
SGBD-urile apar n top 3 a celor mai
vndute produse
46
Scenariu de utilizare BD

47
Funciile SGBD

Gestiunea dicionarului de date


Programele aplicative acceseaz datele prin
intermediul SGBD, care caut n dicionarul
de date structura datelor i a legturilor
necesare rezolvrii problemei utilizatorului
Gestiunea fiierelor de date
Colecia de date (BD) se materializeaz
printr-un fiier sau colecie de fiiere de
date, fiiere index, etc.
48
Funciile SGBD

Transformarea datelor
Datele introduse de utilizator nu au
ntotdeauna structura identic cu cea
definit n baza de date
Gestiunea aplicaiilor
Limbaj de descriere a datelor
Limbaj de manipulare a datelor
Limbaj pentru afiarea datelor (pe ecran
sau la imprimant)
49
Funciile SGBD

Importul i exportul datelor


Conversia datelor pentru prelucrarea cu alt
SGBD sau cu aplicaii tere (de ex. Excel)
Controlul securitii datelor
Utilizatorii ce au acces la date
La ce date are acces fiecare utilizator
Ce operaii se pot efectua de fiecare
utilizator cu datele la care are acces

50
Funciile SGBD
Asigurarea integritii datelor
Restricii de integritate, de ex. SGBD-ul
poate asigura c vrsta unei persoane la
introducerea n BD este cuprins ntre 18 i
40 ani
Controlul accesului concurent la date
Fiecare utilizator are impresia c lucreaz
de unul singur (serializarea operaiilor)
Gestiunea copiilor de siguran i a
recuperrii datelor n caz de dezastre
51
SGBD comerciale

Oracle (Oracle 12c)

IBM (DB2 10)

Microsoft (SQL Server 2016)

52
Nivele de abstractizare

Utilizator 1

BD Logic
(schema BD)

Utilizator 2
BD Fizic

Utilizator n

Nivel extern Nivel conceptual Nivel intern

53
Nivele de abstractizare

54
Schema conceptual

sau schem logic, descrie datele


stocate n BD n termeni ai modelului de
date al SGBD
Pentru un SGBD relaional, schema
conceptual descrie toate tabelele
(relaiile) stocate n BD
Limbajul folosit se numete Limbaj de
Descriere a Datelor (LDD)

55
Problem
Determinai schema conceptual pentru o
universitate cu mai multe faculti unde
studiaz studeni
Rspuns:
Tabele ce corespund la entiti: faculti, studeni
Tabele ce corespund la relaii de legtur ntre
entiti: studeni_particip_la_cursuri
Coloane ce corespund la atributele entitilor (ce
coloane are fiecare tabel): Studeni(cnp: string,
nume: string, data_naterii: date, sex_f: bool,
media_sesiune: real)
56
Schema fizic
Specific detalii suplimentare legate de
stocarea datelor
Menioneaz modul n care tabelele (la
modelul relaional) descrise prin schema
conceptual sunt stocate pe dispozitive suport
secundar, discuri sau benzi magnetice
Descrie tipul fiierelor pentru stocare pe
suport secundar (de ex. la MySQL: MyISAM
sau InnoDB) i crearea unor structuri
auxiliare de date numite indeci n scopul
regsirii mai rapide a datelor

57
Schema extern
Permite accesul la date s fie croit
dup nevoia grupurilor de utilizatori (de
exemplu un angajat are acces la datele
de salarizare proprii, iar un manager are
acces la datele de salarizare ale tuturor
angajailor din subordine)
O BD are exact 1 schem conceptual
i 1 schem fizic
O BD poate avea mai multe scheme
externe
58
Independena datelor
Aplicaiile sunt izolate fa de modificrile la
nivel conceptual sau la nivel fizic prin cele trei
nivele de abstractizare
Independena logic a datelor
Vederile (view n modelul relaional, tabel
virtual, schema extern) asigur posibilitatea
modificrii structurii datelor (schema conceptual),
acest lucru fiind ascuns aplicaiilor
Independena fizic a datelor
Schema conceptual asigur posibilitatea
modificrii aranjrii datelor pe suport secundar sau
a indecilor, acest lucru fiind de asemenea ascuns
aplicaiilor
59
Arhitectura
Unui SGBD

60
Cum funcioneaz?
SGBD-ul accept comenzi SQL generate
de o varietate de interfee utilizator

SGBD-ul produce planuri de evaluare a


interogrilor, pe care le execut asupra
datelor din BD, i returneaz rspunsuri

61
Cum funcioneaz?
Un utilizator emite o interogare, aceasta este
analizat i este prezentat unui optimizator,
care folosete informaia despre felul n care
sunt stocate datele pentru a produce un plan
de execuie eficient
Un plan de execuie este o reprezentare sub
form de arbore operator (cu adnotaii ce
conin informaii detaliate suplimentare legate
de metodele de acces, .a.)

62
Cum funcioneaz?
Codul ce implementeaz operatorii arborelui
operator st deasupra stratului File and
Access Methods
ntr-un SGBD file este o colecie de pagini
sau o colecie de nregistrri
De obicei stratul File and Access Methods
suport heap file de pagini neordonate, sau
indeci
Stratul File and Access Methods urmrete
cum sunt aranjate paginile n fiier i
organizeaz datele n interiorul unei pagini
63
Cum funcioneaz?
Stratul buffer manager este
responsabil cu aducerea paginilor de pe
disc n memoria intern
Stratul disk space manager este cel
mai de jos strat al unui SGBD i se
ocup de administrarea spaiului pe
suport extern, unde sunt stocate datele
Straturile superioare aloc, dealoc, citesc
i scriu pagini
64
Cum funcioneaz?
Straturile Transaction Manager , Lock
Manager i Recovery Manager
asigur accesul concurent i
recuperarea datelor n caz de incidente
prin implementarea unor protocoale de
blocare (lock), prin planificarea cu
atenie a cererilor utilizatorilor i prin
pstrarea ntr-un jurnal a tuturor
modificrilor asupra BD
65
Cine utilizeaz BD?
1. Implementatori BD
Scriu software SGBD (soft de baz)
2. Programatori de Aplicaii BD
Dezvolt pachete de programe ce faciliteaz accesul la
date al utilizatorilor finali
Folosesc host languages sau data languages i unelte
software
La modul ideal aplicaiile BD lucreaz prin schema extern,
dar este posibil s acceseze datele i la nivelele de mai jos
cnd este posibil s fie compromis independena datelor
3. Utilizatori finali
nregistreaz i interogheaz BD, de obicei prin intermediul
aplicaiilor
n marea majoritate a cazurilor nu sunt specialiti n domeniul
calculatoarelor (de exemplu un agent comercial)
4. Administratorul BD
Al patrulea i cel mai important utilizator
66
Administratorul BD
BD de tip corporate sau enterprise-wide
este activul cel mai important al companiei
Principalele sarcini:
S proiecteze schema conceptual i schema
fizic
S implementeze politici de securitate i
autorizare
S asigure disponibilitatea datelor i s
recupereze datele n cazul apariiei de incidente
S efectueze database tuning (reglarea
parametrilor pentru performan)
67
Aplicaii BD
Interfa ntre limbaj, tehnologie i BD
SQL Structured Query Language

Arhitectur
Mainframe
Client Server
N Tier
Web application
Mobile application
68
Arhitectura aplicaiei BD

Calculator

Logica de prezentare

Visual Basic
Visual FoxPro Logica Aplicaiei

SGBD
Microsoft Access

Model de aplicaie mono-strat

69
Arhitectura aplicaiei BD

Workstation Server

Logica de prezentare

Logica Aplicaiei Baze de Date

SGBD citire / scriere date

Model de aplicaie cu Server de fiiere

70
Arhitectura aplicaiei BD
Client Server

Software Client/Server Software Client/Server

Sistem de Operare Reea


Reea
Sistem de Operare Reea
"Cables" Sistem de Operare
"Routers"
Sistem de Operare "Bridges" SGBD
"Gateways"

Funcii Client: Funcii Server:


Interfa grafic Server: de fiiere, de tiprire la
Procesare distribuit a aplicaiei imprimant i de baze de date
Aplicaie local Procesare distribuit a aplicaiei
E-mail E-mail
Emulare terminal Comunicaii
Administrare reea
Administrare resurse
Administrare configuraie

Componentele unui sistem Client-Server


71
Arhitectura aplicaiei BD
Client Server

Logica de prezentare
cerere

rspuns Logica Aplicaiei

SGBD

Procesare asistat de Server


Client Server

cerere
Logica Aplicaiei
Logica de prezentare
rspuns procesat
SGBD

Procesare asistat de Client


Client Server

cerere SQL procesat


Logica Aplicaiei Logica Aplicaiei

rspuns procesat
Logica de prezentare SGBD

72
Procesare cooperativ
Arhitectura aplicaiei BD
thin clients
La client exist GUI
Serverul se preocup de logica aplicaiei i
de acesul la BD
thick clients
Client mai puternic cu o parte din logica de
aplicaie i GUI
Serverul are o parte din logica aplicaiei i
accesul la BD
73
Arhitectura aplicaiei BD

Server de aplicaii
Client (Web) Server de date

Logica de prezentare Logica Aplicaiei SGBD

Internet Explorer, ASP.Net, Oracle,


Mozilla Firefox, ColdFusion, DB2,
Google Chrome JSP, Microsoft SQL Server
PHP MySQL

Model de aplicaie trei-straturi


74
Tehnologii pentru aplicaia BD

Limbaje de programare

Java, .NET

Visual Basic, Delphi

75
Pagini Web dinamice
Documentele clasice hypertext sunt documente
statice.
Scriptarea pe partea de client a aprut pentru
modificarea comportamentului unei pagini web, ca
rspuns la diferite evenimente cum sunt aciunea
tastaturii sau a mouse-ului.
Scriptarea pe partea de server permite schimbarea
sursei paginii furnizate ntre pagini. Rspunsurile
serverului pot fi determinate de condiii cum ar fi
datele dintr-un formular HTML, parametrii din URL,
tipul browserului, trecerea timpului, starea BD.
76
Scriptarea pe partea de client
Aspectul dinamic apare la prezentare, pe
calculatorul client
Serverul web regsete pagina i o trimite as
is
Browserul web proceseaz codul inclus n
pagin (JavaScript) i afieaz pagina
Este dependent de browser
Ajax (asynchronous JavaScript and XML)
Google Maps este un exemplu de aplicaie web
cu Ajax
77
Scriptarea pe partea de server
Browserul trimite o cerere HTTP.
Serverul regsete scriptul sau programul
solicitat
Serverul execut scriptul sau programul care
genereaz o pagin HTML
Parametrii de intrare ai programului se obin din
query string sau de la un formular web
Serverul trimite rezultatul HTML browserului
client
78
Aplicaie web BD, Middleware
Active Server Pages (ASP)
Este o soluie oferit de Microsoft ce permite
folosirea diferitor limbaje (VBscript sau Jscript) n
interiorul unei pagini HTML
Tehnologia este pentru sistemul de operare
Windows, cu suport pentru alte platforme, dar
limitat
ASP.NET
Este o component a platformei Microsoft .NET
pentru dezvoltarea de aplicaii web, un amestec
ntre ASP clasic i tehnologia .NET
Programatorii pot crea dynamic web sites,
aplicaii web i servicii web XML
79
Aplicaie web BD, Middleware
ColdFusion (ColdFusion Markup Language )
Este un sistem comercial de scriptare (deinut din
2005 de Adobe) cross platform i tag-based
Java Server Pages (JSP)
Permite incorporarea de cod Java n pagini HTML
PHP
Principala caracteristic open source a impus
aceast soluie bazat pe includerea codului PHP
n pagini HTML ca una foarte popular

80
Oracle 12c

https://docs.oracle.com/database/121/nav/portal_11.htm

81
Unelte de administrare
Oracle Universal Installer
Oracle Universal Installer (OUI) este un utilitar
folosit pentru instalare software Oracle i opiuni.
Poate lansa automat Oracle Database
Configuration Assistant ce instaleaz o baz de
date.
Tutorial:https://apex.oracle.com/pls/apex/f?p=44785:24:0::NO:24:P24_C
ONTENT_ID,P24_PREV_PAGE:6281,1

Oracle Database Configuration Assistant


DBCA este un utilitar ce creeaz o baz de date
din template-uri furnizate de Oracle, sau de la
zero.
Se poate copia cu DBCA o baz de date
preconfigurat. 82
Unelte de administrare

Database Upgrade Assistant


DBUA este o unealt ce ghideaz administratorul
pentru operaia de upgrade a unei baze de date
existente la o versiune nou Oracle Database.

Net Configuration Assistant


Este un utilitar ce permite configurare de listener
i metode naming, ce sunt componente critice ale
Oracle Database network.

83
Unelte de administrare
Oracle Enterprise Manager Database
Express
EM Express este cel mai important produs pentru
administrarea bazei de date.
Are o interfa Web-based.
Dup instalarea Oracle Database software, crearea
sau upgrade-ul unei baze de date, sau
configurarea network, administratorul poate folosi
EM Express pentru a administra baza de date.
EM Express ofer i o interfa pentru
performance advisors.

84
Arhitectura Oracle Enterprise
Manager Database Express

http://localhost:5500/em 85
86
Meniuri Oracle Enterprise
Manager Database Express

87
Componente Oracle Enterprise
Manager Cloud Control

88
Oracle Enterprise Manager
Cloud Control

http://docs.oracle.com/cd/E24628_01/index.htm
89
Unelte de administrare
SQL Developer
Este o unealt GUI pentru accesul la o baz de date
Oracle.
SQL Developer permite editare/rulare/depanare de
scripturi SQL i PL/SQL.
SQL Developer permite browse la obiecte baz de
date: tabele, vederi, trigere, proceduri stocate, etc.
Permite crearea i rularea de rapoarte, predefinite i
definite de utilizator.
http://docs.oracle.com/database/121/RPTUG/toc.htm

90
Arhitectura Server Oracle

91
Arhitectura Server Oracle
Componente importante
Structuri de memorie
Procese
Structuri de stocare
Instan
Structuri de memorie
Procese background
Baza de date
Structuri logice
Structuri fizice

92
Arhitectura Server Oracle
Cum funcioneaz?
Se pornete o instan de baze de date - start:
Este alocat o zon de memorie partajat, SGA (System
Global Area)
Sunt pornite procese background
Se asociaz instana cu o baz de date mount
Se deschide baza de date pentru accesul
utilizatorilor

93
Arhitectura Server Oracle
Cum funcioneaz? (continuare)
Un utilizator pornete SQL *Plus, furnizeaz nume
i parol
Dac numele i parola sunt valide, se stabilete o
sesiune pentru acel utilizator
Conexiunea este calea de comunicare ntre
procesul utilizator i o instan baz de date
Sesiunea dureaz pn ce utilizatorul se
deconecteaz (n sqlplus cu exit) sau iese din
aplicaie
Pot exista mai multe sesiuni concurente pentru
acelai nume de utilizator
94
Structuri de memorie

95
Structuri de memorie
SGA
Este o zon de memorie partajat ce conine date
i informaii de control pentru 1 instan baz de
date
Este partajat de mai multe procese server i
procese background
Conine printre altele blocuri de date inute n
cache i zone SQL partajate
PGA
Este o zon de memorie nepartajat ce conine
date i informaii de control pentru 1 singur proces
(server sau background)
96
System Global Area
Shared pool
ine n cache diferite structuri ce pot fi partajate
ntre utilizatori (biblioteci, dicionar de date,
rezultat interogri, .a.)
Database buffer cache
ine n cache blocuri de date citite de pe disc (din
BD fizic)
Redo log buffer
ine n cache informaii folosite pentru
recuperarea instanei pn cnd aceste informaii
pot fi scrise n fiierele jurnal, pe disc (d procesul
log writer)
97
System Global Area
Large pool
Este o zon opional folosit pentru alocri
masive de memorie la procese mari cum sunt
backup i recovery respectiv procese server I/O
Java pool
Este o zon folosit pentru cod i date Java
specific de sesiune n Java Virtual Machine (JVM)
Streams pool
Este o zon folosit de Oracle Streams pentru
capture i apply
Fixed-SGA informaii de stare BD i instan,
informaii comunicate ntre procese
98
Program Global Area
Se aloc atunci cnd se pornete un proces
server
Stiv
User Global Area
Este indicat s se permit sistemului s
gestioneze automat felul n care se aloc
memorie
Cu parametrii de iniializare
MEMORY_TARGET i MEMORY_MAX_TARGET
se poate controla cel mai simplu cantitatea de
memorie minim/maxim
99
Shared pool

100
Shared pool
Shared SQL Area
Dac o instruciune SQL se repet, este reutilizat
planul de execuie (generat la prima folosire de
optimizator)
Dac mai muli utilizatori folosesc aceeai
aplicaie, este frecvent ca o instruciune SQL s se
repete
Acelai scenariu se ntmpl i pentru blocuri PL-
SQL anonime, proceduri stocate, package-uri i
trigere (numite program unit)
n zona de memorie privat fiecrui proces server
(ce corespunde unui utilizator) se in valorile de
date specifice acelui utilizator
101
Database buffer cache

102
Database buffer cache
La prima solicitare de ctre un proces server
(utilizator) a unei buci de informaie, se
caut n database buffer cache
Dac exist n cache (hit) se citete direct din
memorie
Dac nu exist n cache (miss) se copiaz
blocul de pe disc ntr-un buffer din cache
Bufferele din cache sunt gestionate de un
algoritm complex ce combin Least Recently
Used (LRU) lists i touch count
103
Redo Log Buffer
Este un buffer circular n SGA ce pstreaz
informaii despre modificrile asupra BD prin
operaii LDD, operaii LMD i operaii interne.
Se folosete pentru recuperarea BD n caz de
incidente.
Cum funcioneaz?
Procesul server modific blocurile de date din
buffer cache
Sunt generate intrri n redo log buffer
Procesul background log writer scrie redo log
buffer n fiierul redo log activ (sau grupul de
fiiere) pe disc 104
Large pool

I/O Free Parallel


buffer memory Query
Response Request Advanced
queue queue Queuing

105
Large pool
Este o zon opional de memorie, pe care
administratorul BD o poate configura pentru:
Memorie de sesiune pentru serverul partajat i
interfaa Oracle XA (tranzacii ce interacioneaz
cu mai multe servere)
Procese server I/O
Operaii backup/restore
Operaii de interogare paralele
Advance Queuing memory table storage
Se recomand folosirea large pool n loc de
shared pool pentru volum mare de operaii 106
User Global Area

107
User Global Area
Este o subdiviziune a memoriei PGA (pe lng
stack space)
Fiecare proces server (sesiune utilizator) are
o astfel de zon de memorie
UGA are n componen:
Cursor area conine informaii runtime despre
cursoare
User session storage data area conine informaii
de control despre sesiune
SQL working areas conine informaii pentru
procesarea instruciunilor SQL
108
User Global Area

SQL working areas conine la rndul su:


O zon de sortare pentru ORDER BY i GROUP BY
O zon hash - pentru operaii join
O zon bitmap - pentru indeci n datawarehouse
O zon bitmap merge folosit la plan de execuie cu
bitmap index
n mediu server partajat, cnd mai muli
utilizatori partajeaz acelai proces server,
UGA poate fi mutat n SGA (shared pool sau
large pool) i atunci PGA conine doar stiva
(stack space)
109
In-Memory column store

Permite efectuarea de interogri analitice ad-hoc


direct pe date tranzacionale n timp real
Administratorul bazei de date decide ce segmente s
fie inute in-memory pe baza tipului interogrilor

110
In-Memory column store
Row format exclusiv
Segmente accesate n mod frecvent de interogri
OLTP, ce opereaz pe puine linii i returneaz
multe coloane, ar trebui puse n buffer cache
Dual format simultan
Segmente accesate de interogri analitice
(caracteristic DSS), ce operaz pe multe linii i
returneaz puine coloane, sunt candidate pntru
column store
Un segment definit in-memory, dar asupra cruia
se efectueaz i interogri tip OLTP, se pstreaz
i n buffer cache, interogrile fetch-by-rowid se
adreseaz la buffer cache pentru date
111
Full database In-Memory caching

112
Full database In-Memory caching
Algoritmul table scan ncarc o tabel n
buffer cache doar dac dimensiunea tabelei
este mai mic dect un mic procent din
dimensiunea buffer cache, pentru tabele mari
se folosete metoda direct path read, ce
ncarc blocurile direct n PGA, evitnd SGA
pentru a nu umple buffer cache.
Opiunea din titlu se folosete cnd suma
dimensiunii fiierelor de date + tablespace-ul
SYSTEM + fiiere LOB cache SYSAUX TEMP
este mai mic dect dimensiunea buffer cache
113
Structura proceselor

114
Structura proceselor
User process
Este aplicaia client care ncearc s se conecteze
la baza de date Oracle
Poate fi pe aceeai main cu baza de date sau
poate fi pe o main la distan, cnd se
conecteaz prin reea
Prima dat user process comunic cu procesul
Listener care creeaz procesul server ntr-un
mediu dedicat
n continuare user process comunic direct cu
procesul server

115
Structura proceselor
Server process
Analizeaz i execut instruciuni SQL
Citete blocuri de date din BD fizic (fiierele de pe disc) n
memorie (n bufere partajate din SGA) dac blocurile nu sunt
deja n memorie
Returneaz rezultatele instruciunilor SQL aplicaiei care a emis
cererea
Background processes
Database Writer Process (DBWn), Log Writer Process (LGWR),
Checkpoint Process (CKPT), System Monitor Process (SMON),
Process Monitor Process (PMON), Recoverer Process (RECO),
Listener Registration Process (LREG), Manageability Monitor
Process (MMON), Manageability Monitor Lite Process (MMNL),
Job Queue Processes, Archiver Processes (ARCn), Queue
Monitor Processes (QMNn)
116
Database Writer Process

Pot exista mai multe procese (maxim 100, DB_WRITER_PROCESSES).


Cnd se modific un buffer din cache, se marcheaz
dirty, se pune n vrful cozii checkpoint (n ordinea
system change number, ce corespunde cu ordinea redo
log), iar cnd numrul buferelor disponibile din cache
scade sub un prag prestabilit, scrie asincron pe disc
buferele cele mai rar folosite (LRU) 117
Database Writer Process
SGA are o structur de memorie ce pstreaz
redo byte address (RBA), poziia n stream-ul
redo de unde ar trebui s nceap operaia
recovery n caz de incident (cdere de sistem)
Procesul CKPT scrie la fiecare trei secunde n
fiierul de control aceast structur de
memorie
Procesul DBWn dup ce scrie buferele dirty
din lista LRU avanseaz pointerul redo a.. la
recovery s se evite operaii I/O inutile (se
numete checkpoint incremental)
118
Log Writer Process

Buferul redo log este scris pe disc cnd:


Un proces utilizator emite commit
A aprut online redo log switch (de exemplu cnd
fiierul curent redo log se umple)
Cnd buferul redo log se umple la 1/3 sau 1MB
nainte ca un proces DBWn s scrie datele pe disc
La 3 secunde de la scrierea precedent
119
Log Writer Process
Mecanismul fast commit:
Cnd un utilizator emite commit LGWR pune o
nregistrare commit n redo log buffer i o scrie
imediat pe disc mpreun cu intrrile redo ale
tranzaciei
Modificrile corespunztoare ale blocurilor de date
pe disc sunt ntrziate pn la un moment cnd
este eficient s fie scrise
Scrierea nregistrrii commit este singurul
eveniment ce spune c tranzacia s-a ncheiat cu
succes dei buferele cu date nc nu au fost scrise
pe disc
120
Checkpoint Process

Un checkpoint este o structur de date ce definete


un system change number n thread-ul redo
Checkpoint-urile sunt scrise n fiierul de control i n
fiecare header al fiierelor de date
Scrierea SCNs n headerele fiierelor de date asigur
c modificrile efectuate blocurilor nainte de acel
SCN sunt salvate pe disc (de DBWn) 121
System Monitor Process

122
System Monitor Process
Efectueaz recovery la startup instan, dac
este necesar
Cur segmentele temporare ce nu se mai
folosesc
Dac anumite tranzacii ce au fost ncheiate
cu succes nu au fost prelucrate la recovery
din motiv de eroare file-read sau eroare
offline, SMON le recupereaz cnd
tablespace-ul sau fiierul de date este on-line
din nou
123
Process Monitor process

124
Process Monitor process
Efectueaz recovery cnd un proces utilizator
eueaz
Cur buffer cache i elibereaz resursele
acaparate de procesul utilizator care a euat
reseteaz starea tabelei de tranzacii active,
elibereaz lock-urile,
terge ID-ul procesului din lista de procese active
PMON testeaz periodic starea proceselor
dispecer i server i le restarteaz dac sunt
oprite (dar nu i dac au fost oprite
intenionat de Oracle Database)
125
Recoverer Process

126
Recoverer Process
Este un proces background
Este folosit n mediu distribuit pentru a
recupera tranzacii distribuite
Procesul RECO se conecteaz automat la
servere baze de date implicate ntr-o
tranzacie distribuit in-doubt, rezolv
tranzaciile, dup care elimin rndurile de
date corespunztoare din tabela pending
transaction

127
Listener Registration Process

128
Listener Registration Process

LREG nregistreaz informaii despre instana


BD i procesul dispecer cu Oracle Net Listener
Numele serviciilor BD
Numele instanei BD asociate cu serviciile
mpreun cu ncrcarea curent i maxim
Handlere de servicii (dispeceri i servere
dedicate), incluznd: tip, adrese per protocol,
ncrcarea curent i maxim

129
Listener Registration Process
La startup instan LREG ncearc s se
conecteze la listener
Dac listener funcioneaz, atunci i transmite
informaii
Altfel, rencearc periodic s se conecteze la el
(poate dura 60 sec. dup pornire listener ca s se
nregistreze instana BD la el)
ALTER SYSTEM REGISTER
Este comanda ce nregistreaz imediat servicii la
un listener

130
Archiver Process

131
Archiver Process
Copiaz fiierele redo log pe un anumit mediu de
stocare dup apariia unui switch log
Poate colecta date pentru redo tranzacie i s le
transmit la destinaii de sine stttoare
Procesele ARCn sunt disponibile numai dac BD este
n mod ARCHIVELOG, dei s-a setat enable arhivarea
automat
Se poate mri numrul de procese de arhivare
(implicit 4)
De exemplu la operaii de ncrcare date bulk
Pot exista destinaii multiple pentru arhivare
Se recomand 1 proces/1 destinaie 132
Arhitectura de stocare Oracle

133
Arhitectura de stocare Oracle
Fiiere de control
1 fiier de control/1 BD
Date despre structura fizic a BD
Se recomand pstrarea de copii ale fiierului de control,
pentru a evita pierderea de informaii
Conine i metadate pentru backup
O BD nu poate fi deschis fr fiierul de control
Fiiere de date
Conin date, metadate i dicionarul datelor
Fiiere online redo log
Se folosesc pentru recovery BD n caz de crash instan BD
134
Arhitectura de stocare Oracle
Fiiere adiionale
Fiier cu parametrii
La startup instan BD pentru configurare
Fiier cu parole
Utilizatorii cu roluri SYSDBA, SYSOPER, SYSBACKUP,
SYSDG, SYSKM, SYSASM se pot conecta de la distan
pentru a efectua task-uri administrative
Fiiere backup
Imaginea BD folosit la recuperare (starea la un moment
dat)

135
Arhitectura de stocare Oracle
Fiiere adiionale (continuare)
Fiiere redo log arhivate
Istoricul modificrilor asupra datelor (mpreun cu fiiere
backup se folosesc la o recuperare complet a BD)
Fiiere trace
Procesul server i procesele background pot scrie ntr-un
fiier trace asociat, la apariia unei erori, informaii destinate
administratorului BD sau Oracle Support Services
Fiier alert log
Este un jurnal cronologic cu mesajele i erorile
Se recomand citirea periodic a acestui fiier

136
Structuri BD Logice i Fizice

137
Structuri BD Logice i Fizice
Fiecare BD fizic este mprit n tablespace-
uri
Fiecare tablespace este stocat n unul sau mai
multe fiiere pe disc
Fiecare tablespace este constituit din
segmente
Datele sunt inute n blocuri (numrul de octei
per bloc se specific la creare tablespace,
implicit 8KB) care formeaz extent (zon
contigu, obinut ntr-o singur alocare), ntr-
un segment sunt mai multe extent-uri 138
Structuri BD Logice i Fizice
Segmente un set de extent-uri alocat pentru o
structur logic de date:
Data o tabel organizat non-clustered, non-indexed cu
excepia external table, tabel temporar global i tabel
partiionat are un segment de tip Data
Index fiecare index are segmentul su
Undo fiecare instan de BD are un tablespace UNDO, un
segment undo este folosit pentru read-consistent database
information, pentru recovery i pentru anularea efectelor
tranzaciilor nefinalizate cu succes
Temporary pentru zone temporare, la execuia comenzilor
SQL (ORDER BY, GROUP BY), la ncheierea execuiei comenzii
pentru care a fost alocat, spaiul este eliberat

139
Tablespace-uri i fiiere de Date

140
Tablespace-urile SYSTEM i SYSAUX

Sunt create la crearea BD


Sunt online cnd BD este open
SYSTEM conine dicionarul datelor
SYSAUX conine alte componente ale
BD
NU TREBUIE FOLOSITE PENTRU DATE
ALE APLICAIILOR!

141
Arhitectura Multitenant

142
Automatic Storage Management
Ofer integrarea pe
vertical a sistemului de
fiiere i gestionarului de
volume pentru fiierele
BD
ASM poate distribui
datele performan i
toleran la defecte
Uureaz munca
administratorului BD

143
Secvena de pornire server BD
sqlplus / as sysdba
1. SQL>startup
Pornete instana, asociaz fiierele BD,
monteaz i deschide BD
2. SQL>startup nomount
Pornete instana, BD nu este montat
3. SQL>alter database mount;
Monteaz BD din starea NOMOUNT
4. SQL>alter database open;
Deschide BD din starea MOUNT
144
Moduri shutdown

A = Abort (cere recovery la pornire)


I = Immediate (tranzaciile curente se pierd)
T = Transactional (ateapt s se termine tranzaciile curente)
N = Normal (ateapt sesiunile curente s se ncheie)
145
Dicionarul datelor

Utilizatorul SYS 146


Vederi disponibile n dicionar

Prefix User Access Contents Notes


DBA_ Database administrators All objects Some DBA_ views have
additional columns containing
information useful to the
administrator.
ALL_ All users Objects to Includes objects owned by user.
which user has These views obey the current set
privileges of enabled roles.
USER_ All users Objects owned Views with the
by user prefixUSER_ usually exclude the
column OWNER. This column is
implied in theUSER_ views to be
the user issuing the query.

>1000 vederi 147


Exemple
SELECT table_name, tablespace_name FROM
user_tables;
SELECT sequence_name, min_value,
max_value, increment_by FROM
all_sequences WHERE sequence_owner IN
(MDSYS, XDB);
SELECT user_name, account_status FROM
dba_users WHERE account_status = OPEN;
DESCRIBE dba_indexes;
148
Oracle Net Services

149
Oracle Net Listener

150
Conectarea la un server Oracle

151
Name resolution

152
Sesiuni utilizator

153
Metode Naming
Easy connect:
se folosete un ir de conectare TCP/IP: connect
nume/parola@host:port_listener/net_service_name
Local naming:
trebuie s existe un fiier de configurare local, pe
maina client (tnsnames.ora): connect hr/hr@orcl
Directory naming:
se folosete un directory server de tip LDAP
(Lightweight Directory Access Protocol)
External naming:
se folosete un ir de conectare non-Oracle, dar
suportat de Oracle
154
Utilizatori BD
Cont utilizator
Nume unic pn la 30B, ncepe cu liter, fr
caractere speciale
Metod de identificare cu parol, global sau
extern (biometric, cu certificat sau cu token)
Tablespace implicit trebuie s se acorde separat
privilegii asupra obiectelor stocate n tablespace i
quota asupra tablespace
Tablespace teporar aici se vor efectua sortrile,
nu necesit quota
Profil utilizator restricii asupra resurselor
155
Utilizatori BD
Cont utilizator (continuare)
Grup iniial de consumatori (de resurse, Resource
Manager controleaz)
Stare cont
Open
Locked
Expired
Schem
Colecie de obiecte BD n proprietatea unui utilizator
(tabele, vederi, secvene, proceduri stocate, indeci)
Are acelai nume cu numele de utilizator
156
Utilizatori predefinii, cu rol de
administrare
SYS (as sysdba sau as sysasm)
Este proprietar al dicionarului datelor i Automatic
Workload Repository (AWR)
Este folosit pentru startup/shutdown instan BD
SYSTEM
Este proprietar la tabele i vederi pentru
administrare, suplimentare

157
Utilizatori predefinii, cu rol de
administrare
SYSBACKUP
Faciliteaz operaii de backup/recovery cu Oracle
Recovery Manager (RMAN)
SYSDG
Faciliteaz operaii Oracle Data Guard
SYSKM
Faciliteaz operaii wallet Transparent Data
Encryption

158
Recomandri

Least privilege
Utilizatorii cu rol de administrator s nu
foloseasc SYS sau SYSTEM n operaii de
rutin
Se acord privilegii potrivite altor nume de
utilizatori cu scop de administrare

159
Activitatea practic
Oracle Academy - Advanced Computer Science
Oracle iLearning http://ilearning.oracle.com /ilearn /en /learner /jsp
/login.jsp?site=OracleAcad
username: ro_utcn_cs_s01
password: Observator1
Oracle APEX https://iacademy.oracle.com
SQL:
Workspace: RO_A691
Username: RO_A691_SQL01_S01
Password: Oracle_2014
PL/SQL:
Workspace: RO_A692nn
Username: RO_A692_Snn_PLSQL
Password: Oracle_2014
Instalare pe calculator personal
Oracle 12c (Windows 64) sau Oracle 11g (Windows 32)
SQL Developer
160

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