01 Curs Introductiv
01 Curs Introductiv
01 Curs Introductiv
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.
13
Tema pentru colocviul final de
laborator
Iar n faza a doua interfaa cu utilizatorul
afieaz rezultatul:
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
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)?
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
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
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
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
52
Nivele de abstractizare
Utilizator 1
BD Logic
(schema BD)
Utilizator 2
BD Fizic
Utilizator n
53
Nivele de abstractizare
54
Schema conceptual
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
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
69
Arhitectura aplicaiei BD
Workstation Server
Logica de prezentare
70
Arhitectura aplicaiei BD
Client Server
Logica de prezentare
cerere
SGBD
cerere
Logica Aplicaiei
Logica de prezentare
rspuns procesat
SGBD
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
Limbaje de programare
Java, .NET
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
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
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
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
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
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
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
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