Andy Oppel-SQL Fara Mistere-Rosetti Educational 2006

Post on 13-Jan-2016

179 views 47 download

description

Andy Oppel-SQL Fara Mistere-Rosetti Educational 2006

Transcript of Andy Oppel-SQL Fara Mistere-Rosetti Educational 2006

CAPITOlUl1

CAPITOlUl2

Mulţumiri

Introducere

CUPRINS

Concepte ale bazelor de date rela~onale Ce este o bază de date? Ce este un sistem de gestionare a bazei de date

XV xvii

1 2

~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

Concepte SQL Ce este SQL? Conectarea la baza de date Un scurt istoric al limbajului SQL Convenţii de sintaxă SQL Categorii de instrucţiuni SQL

Limbajul de definire a datelor (DDl)

37 38 38 42 44 47 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 Clauza GROUP BY

Operatori pentru interogări compuse UN ION UNION ALL INTERSECT EXCEPT

întrebări recapitulative

117 119 120 120 120 121 121 121

CAP ITO lU l 5 Combinarea datelor din mai multe tabele 125 127 129 133 134 138 140 140 141 141 143 144 144

Uniuni ijoin) Uniuni de egalitate (equijoin) Uniuni naturale Uniuni externe (outer joins) Auto-uniuni (self joins) Alte tipuri de uniuni Uniuni încrucişate (cross joins)

Subinterogări

Subinterogări necorelate Subinterogări corelate

Vizualizări în linie întrebări recapitulative

CAPITOlUl G Scrierea interogărilor avansate Funcţii SQL avansate

Funcţii pentru caractere Funcţii matematice

149 150 150 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

CAPITOlUl 7

CAPITOlUl8

CAPITOlUl9

SQL fără mistere

Întretinerea datelor folosind instructiuni DML ' '

Instrucţiunea INSERT Inserarea unui singur rând de date folosind

173 175

clauza VALUES 176 lnserări masive folosind o instrucţiune SElECT internă

Instrucţiunea UPDATE Instrucţiunea DELETE Întrebări recapitulative

Aplicarea controalelor de securitate folosind DCL De ce este necesară securitatea? Arhitecturi de securitate pentru o bază de date

Securitatea bazelor de date Microsoft SQL Server şi Sybase Adaptive Server

Securitatea bazelor de date Oracle

177 178 179 181

185 186 187

188 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

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

' Ce este o tranzacţie cu baza de date? Suportul pentru tranzacţii în sistemele DBMS relaţionale

Suportul pentru tranzacţii în Microsoft SQL Server

Suportul pentru tranzacţii în Sybase Adaptive Server

205 206

206

207

208

CUPRINS

Suportul pentru tranzacţii în Oracle Suportul pentru tranzacţii în MySQL Suportul pentru tranzacţii în DB2 UDB

Blocarea şi interblocarea tranzacţiilor Problema actualizării concurente Mecanismele de blocare lnterblocările

întrebări recapitulative

209 209 210 211 211 212 214 216

CAPITOLUL 10 Integrarea limbajului SQL in aplicaţii Procesarea cursorului

221 222 222 223

Instrucţiunea DECLARE CURSOR Instrucţiunea OPEN CURSOR 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 1 O 293 Capitolul 11 294 Răspunsurile la examenul final 295

Index 301