Sunteți pe pagina 1din 311

CUPRINS

Mulţumiri XV
Introducere xvii
CAPITOlUl1 Concepte ale bazelor de date rela~onale 1
Ce este o bază de date? 2
Ce este un sistem de gestionare a bazei de date
~BM~? 2
Ce este o bază de date relaţională? 3
Componente ale bazelor de date relaţionale 3
Cum sunt proiectate bazele de date relaţionale 9
Necesitatea normalizării 10
Aplicarea procesului de normalizare 11
Prezentare generală a bazei de date pentru un
magazin de produse video 21
Descărcarea codului SQL pentru baza de date
folosită ca exemplu 29
întrebări recapitulative 31
CAPITOlUl2 Concepte SQL 37
Ce este SQL? 38
Conectarea la baza de date 38
Un scurt istoric al limbajului SQL 42
Convenţii de sintaxă SQL 44
Categorii de instrucţiuni SQL 47
Limbajul de definire a datelor (DDl) 47
SQL fără mistere
~·,_.---
Limbajul de interogare a datelor (DQL) 47
Limbajul de manipulare a datelor (DML) 47
Limbajul pentru controlul datelor (DCL) 48
Comenzile pentru controlul tranzacţiilor 48
întrebări recapitulative 48

CAPITOLUL 3 Definirea obiectelor bazei de date folosind


limbajul SQL 53
Convenţii de sintaxă folosite în acest capitol 54
Tipuri de date 54
Tipuri de date predefinite din standardul
SQL:2003 55
Extensii ale producătorilor pentru tipuri de date
şi diferenţe faţă de standard 60
Valori NULL şi logica bazată pe trei valori 69
Instrucţiuni DDL ( Data Definition Language) 70
Instrucţiunea CREATE DATABASE 70
Instrucţiunea CREATE TABLE 70
Instrucţiunea CREATE INDEX 76
Instrucţiunea CREATE VIEW n
Instrucţiunea ALTER TABLE 78
Instrucţiunea DROP 80
întrebări recapitulative 81

CAPITOLUL 4 Ob~nerea datelor folosind limbajul de interogare


a datelor (DQL) 87
Instrucţiunea SELECT de bază
Pseudonime pentru numele coloanelor 90
Sortarea rezultatelor 90
Utilizarea clauzei WHERE pentru filtrarea rezultatelor 94
Operatori de comparare 94
Operatori conjunctivi 97
Operatori logici 100
Operatori aritmetici 108
Funcţii SQL elementare 110
Funcţii pentru caractere 110
Funcţii matematice 115
Funcţii de conversie 116
CUPRINS

Funcţii de agregare şi gruparea rândurilor 117


Clauza GROUP BY 119
Operatori pentru interogări compuse 120
UN ION 120
UNION ALL 120
INTERSECT 121
EXCEPT 121
întrebări recapitulative 121

CAP ITO lU l 5 Combinarea datelor din mai multe tabele 125


Uniuni ijoin) 127
Uniuni de egalitate (equijoin) 129
Uniuni naturale 133
Uniuni externe (outer joins) 134
Auto-uniuni (self joins) 138
Alte tipuri de uniuni 140
Uniuni încrucişate (cross joins) 140
Subinterogări 141
Subinterogări necorelate 141
Subinterogări corelate 143
Vizualizări în linie 144
întrebări recapitulative 144

CAPITOlUl G Scrierea interogărilor avansate 149


Funcţii SQL avansate 150
Funcţii pentru caractere 150
Funcţii matematice 154
Funcţii pentru dată şi oră 156
Folosirea avantajelor oferite de vizualizări 161
Folosirea instrucţiunilor SQL pentru generarea altor
instrucţiuni SQL 165
Generarea instrucţiunilor SQL în Oracle 165
Generarea instrucţiunilor SQl în Microsoft SQL
Server
Expresia CASE 166
Expresia CASE simplă 166
Expresia CASE cu căutare 168
întrebări recapitulative 169
SQL fără mistere

CAPITOlUl 7 Întretinerea datelor folosind instructiuni DML 173


' '
Instrucţiunea INSERT 175
Inserarea unui singur rând de date folosind
clauza VALUES 176
lnserări masive folosind o instrucţiune SElECT
internă 177
Instrucţiunea UPDATE 178
Instrucţiunea DELETE 179
Întrebări recapitulative 181

CAPITOlUl8 Aplicarea controalelor de securitate folosind DCL 185


De ce este necesară securitatea? 186
Arhitecturi de securitate pentru o bază de date 187
Securitatea bazelor de date Microsoft SQL
Server şi Sybase Adaptive Server 188
Securitatea bazelor de date Oracle 190
Implementarea securităţii accesului la baza de date 192
Privilegiile bazei de date 192
Instrucţiuni SQL folosite pentru administrarea
securităţii 194
Conturile deţinătorilor de scheme 196
Simplificarea administrării folosind roluri 197
Administrarea rolurilor în Microsoft SQL Server
şi Sybase Adaptive Server 198
Administrarea rolurilor în Oracle 199
Utilizarea vizualizărilor pentru implementarea
securităţii la nivel de coloană şi la nivel de rând 200
întrebări recapitulative 201

CAPITOlUl9 Men~nerea integrită~i bazei de date cu ajutorul


tranzactiilor 205
'
Ce este o tranzacţie cu baza de date? 206
Suportul pentru tranzacţii în sistemele DBMS
relaţionale 206
Suportul pentru tranzacţii în Microsoft
SQL Server 207
Suportul pentru tranzacţii în Sybase
Adaptive Server 208
CUPRINS

Suportul pentru tranzacţii în Oracle 209


Suportul pentru tranzacţii în MySQL 209
Suportul pentru tranzacţii în DB2 UDB 210
Blocarea şi interblocarea tranzacţiilor 211
Problema actualizării concurente 211
Mecanismele de blocare 212
lnterblocările 214
întrebări recapitulative 216

CAPITOLUL 10 Integrarea limbajului SQL in aplicaţii 221


Procesarea cursorului 222
Instrucţiunea DECLARE CURSOR 222
Instrucţiunea OPEN CURSOR 223
Instrucţiunea FETCH 224
Instrucţiunile UPDATE şi DELETE 225
Instrucţiunea CLOSE 225
înglobarea limbajului SQL în programele de aplicaţii 226
Conexiunile ODBC 226
Conectarea bazelor de date la aplicaţiile Java 227
.NET Framework 228
Limbajul SQL complet computaţional 229
Transact-SQL (Microsoft SQL Server şi
Sybase Adaptive Server) 230
Oracle PL!SQL 232
întrebări recapitulative 233

CAP ITO LU L 11 Elemente de ajustare ~i performanţă ale


limbajului SQL 239
Consideraţii generale de ajustare a sistemelor
RDBMS 240
Minimizarea numărului de scrieri şi citiri pe
disc 240
Ajustarea sistemului de calcul şi a mediului
de lucru 241
Proiectarea eficientă a tabelelor 241
Optimizarea interogărilor SQL 242
Aspecte generale privitoare la sistemele
RDBMS 243
Aspecte privind MySQL 248
SQL fără mistere

Aspecte privind sistemul Oracle 248


Aspecte privind Microsoft SQL Server 252
Aspecte privind sistemul 082 UDB 253
Optimizarea instrucţiunilor DML 254
întrebări recapitulative 256

Examen final 261

Răspunsurile la chestionare ~i la examenul final 281


Capitolul 1 282
Capitolul 2 282
Capitolul 3 283
Capitolul 4 284
Capitolul 5 286
Capitolul 6 288
Capitolul 7 291
Capitolul 8 292
Capitolul 9 293
Capitolul 1O 293
Capitolul 11 294
Răspunsurile la examenul final 295

Index 301

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