C U P R I N S

Prefaţă la ediţia a II-a

11

Capitolul 1.  Despre bazele de date

13

1.1.  Nevoia de baze de date

13

1.2.  Cum ne folosim de bazele de date

14

1.3.  La început a fost fişierul (independent)

16

1.4.  Ce este o bază de date?

18

1.5.  Sisteme de gestiune a bazelor de date

20

1.6.  Module, limbaje şi utilizatori ai SGBD-urilor

23

1.7.  Utilizatorii bazelor de date

26

1.8.  Modele de organizare a datelor în BD

28

1.9.  Noţiuni preliminare în lucrul cu bazele de date

30

Capitolul 2.  Modelul relaţional de organizare a datelor

37

2.1.  Structura

38

2.2.  Restricţii

42

2.3.  Schema şi conţinutul unei baze de date relaţionale

51

24.  SGBDR-uri şi servere de baze de date relaţionale

63

Capitolul 3.  Standarde şi dialecte SQL. Tipuri de date.

Crearea tabelelor şi modificarea conţinutului

73

3.1.  Standardizarea SQL

75

3.2.  Tipuri de date primitive SQL

82

3.3.  Tabele şi restricţii în SQL

87

3.4.  Modificarea conţinutului

114

3.5.  Tranzacţii

133

Capitolul 4.  Limbaje de interogare. Algebra relaţională

139

4.1.  Caracterizare generală a limbajelor de interogare

139

4.2.  Operatorii algebrei relaţionale

141

4.3.  Operatorii ansamblişti

142

4.4.  Operatorii relaţionali

145

4.5.  Notaţii şi interpretări grafice ale interogărilor

168

Capitolul 5.  Sintaxa de bază a comenzii SELECT

175

5.1.  Trei clauze şi un rezultat

175

5.2.  Reuniuni, intersecţii, diferenţe, produse carteziene

183

5.3.  Coloane-expresii

187

5.4.  Ordonări

195

5.5.  Operatorii BETWEEN, OVERLAPS şi IN

198

5.6.  Comparaţii inexacte. LIKE şi SIMILAR

201

5.7.  Joncţiuni interne

207

5.8.  Sinonime locale şi joncţiunea unei tabele cu ea însăşi

215

Capitolul 6.  Funcţii SQL

219

6.1.  Funcţii pentru numere

219

6.2.  Funcţii pentru şiruri de caractere

225

6.3.  Funcţii pentru date calendaristice

231

6.4.  Funcţii pentru intervale

235

6.5.  Conversii între tipuri de date

240

6.6.  Alte funcţii-sistem

249

6.7.  Funcţii-agregat

251

Capitolul 7.  Grupări

269

7.1.  Gruparea după un criteriu

269

7.2.  Gruparea după două sau mai multe criterii

275

7.3.  Gruparea după funcţii şi expresii

288

7.4.  Clauza HAVING

297

7.5.  Diviziunea relaţională

304

Capitolul 8  NULL-ităţi, joncţiuni externe şi structuri alternative

307

8.1.  NULL-i în tabele

307

8.2.  Operatorul IS NULL

313

8.3.  Transformarea NULL-ilor

321

8.4.  Joncţiunea externă

326

8.5.  Structuri de control alternative

337

Capitolul 9.  Subconsultări

357

9.1.  Subconsultări în clauza WHERE. Operatorul IN

357

9.2.  Subconsultări şi comparaţii în clauza WHERE

373

9.3.  Subconsultări în clauza HAVING

380

9.4.  Subconsultări în clauza FROM

394

9.5.  Subconsultări scalare în clauza SELECT

428

9.6.  Expresii-tabelă

433

Capitolul 10.  Subconsultări corelate

443

10.1.  Subconsultări corelate în clauza SELECT

443

10.2.  Subconsultări corelate în clauza WHERE

462

10.3.  Alte tipuri de corelări simple

475

10.4.  Corelarea dublă

479

Capitolul 11.  OLAP în SQL

485

11.1.  Subtotaluri

485

11.2.  Analize multidimensionale. Operatorii CUBE şi GROUPING SETS

500

11.3.  Clasamente - soluţii clasice şi OLAP

515

11.4.  Ferestre pentru funcţiile analitice

532

11.5.  Comparaţii şi ponderi

540

Capitolul 12.  SQL, ierarhii şi recursivitate

547

12.1.  Autojoncţiuni şi subconsultări

547

12.2.  Interogări arborescente în Oracle

557

12.3.  Interogări arborescente în MS SQL Server

567

12.4.  Interogări arborescente în DB2

574

12.5.  Interogări arborescente în PostgreSQL

577

12.6.  Interogări mai puţin arborescente, dar tot recursive

580

Capitolul 13.  Tabele, restricţii şi actualizări prin interogări SQL

591

13.1.  Crearea tabelelor folosind interogări

591

13.2.  Restricţii şi aserţiuni pe bază de interogări

603

Capitolul 14.  Tabele temporare şi virtuale

633

14.1.  Tabele temporare

633

14.2.  Tabele virtuale în interogări

639

14.3.  Probleme ale actualizărilor tabelelor-sursă pe baza modificării tabelelor virtuale

641

14.4.  Restricţii în tabele virtuale

651

Capitolul 15.  Scheme, obiecte şi utilizatori

653

15.1.  Crearea de subscheme şi acordarea de drepturi

653

15.2.  Informaţii despre obiectele din (sub)scheme

664

Capitolul 16.  Funcţii, proceduri şi pachete stocate

689

16.1.  Funcţii stocate

690

16.2.  Cursoare

712

16.3.  Funcţii ce furnizează seturi de înregistrări

721

16.4.  Funcţii folosite ca valori implicite şi restricţii la nivel de atribut/înregistrare

730

16.5.  Proceduri stocate

733

16.6.  Pachete

748

Capitolul 17.  Declanşatoare

753

17.1.  Tipologia declanşatoarelor

753

17.2.  Declanşatoare în PL/pgSQL

755

17.3.  Declanşatoare în PL/SQL

766

17.4.  Declanşatoare în Transact-SQL

778

17.5.  Declanşatoare în SQL PL

787

Capitolul 18.  SQL dinamic

793

18.1.  SQL dinamic în PostgreSQL PL/pgSQL

793

18.2.  SQL dinamic în PL/SQL

802

18.3.  SQL dinamic în Transact-SQL

809

18.4.  SQL dinamic în IBM DB2 SQL PL

816

Capitolul 19.  Obiectual-relaţional în SQL

825

19.1.  Tipuri distincte şi structurate de date

826

19.2.  Colecţii

838

19.3.  Stocarea tipurilor-utilizator în tabele

846

19.4.  Metode asociate tipurilor structurate în Oracle

854

Bibliografie

869