C U P R I N S

 

Introducere

9

1. Concepte şi modele privind bazele de date

13

1.1 de la sisteme orientate pe procese la sisteme orientate pe baze de date

13

1.2. obiectivele bazelor de date

16

1.2.1. Evitarea redundanţei şi inconsistenţei datelor

16

1.2.2. Facilitarea accesului la date

17

1.2.3. Facilitarea elaborării programelor de prelucrare a datelor

18

1.2.4. Asigurarea accesului concurent la date

18

1.2.5. Asigurarea accesului securizat la date

19

1.2.6. Păstrarea integrităţii datelor

20

1.3. ce este o bază de date?

21

1.4. componentele unui sistem orientat pe baze de date

23

1.4.1. Hardware-ul

24

1.4.2. Programe-aplicaţii

24

1.4.3. Datele

24

1.4.4. Metadatele

27

1.4.5. Componenta software

27

1.4.6. Utilizatorii bazei de date

29

1.5. arhitectura bazei de date cu trei nivele

32

1.5.1. Nivelul intern

33

1.5.2. Nivelul logic

35

1.5.3. Nivelul extern

35

1.5.4. Independenţa datelor

37

l .5.5. Funcţionarea arhitecturii cu trei nivele

38

1.6. structura modelului relaţional

39

1.6.1. Atribute şi domenii

40

1.6.2. Tupluri

42

1.6.3. Scheme şi relaţii

43

1.7. constrângeri de integritate

45

1.7.1. Constrângeri de integritate structurale

46

1.7.1.1. Constrângerile de unicitate şi minimalitate a cheii

46

1.7.1.2. Constrângerea entităţii

48

1.7.1.3. Constrângerea referenţială

48

1.7.2. Constrângeri de integritate de comportament

50

1.7.2.1. Constrângeri de comportament al domeniului

51

1.7.2.2. Constrângeri de comportament al tuplului

52

1.7.2.3. Constrângeri de comportament al relaţiei

52

1.7.2.4. Constrângeri de comportament al bazei de date

53

2. Algebra relaţională

55

2.1. operaţiile tradiţionale pe mulţimi

56

2.1.1. Scheme relaţionale compatibile

56

2.1.2. Uniunea

57

2.1.3. Diferenţa

58

2.1.4. lntersecţia

59

2.1.5. Produsul cartezian

61

2.1.6. Operaţia de redenumire

62

2.1.7. Complementul

63

2.2. Operaţiile relaţionale NATIVE

66

2.2.1. Proiecţia

66

2.2.2. Selecţia

68

2.2.3. Joncţiunea naturală

70

2.2.4. Semijoncţiunea

74

2.2.5. Joncţiunea theta

75

2.2.6. Joncţiuni externe

76

2.2.7. Divizarea

78

2.3. INTEROGĂRI ÎN ALGEBRA RELAŢIONALĂ

79

2.3.1. Expresii algebrice

80

2.3.2. Selecţii generalizate

82

2.3.3. Interogări conjunctive

83

2.3.4. Interogări neconjuctive

86

2.3.4.1. Interogări cu diferenţe

86

2.3.4.2. Complementul unei mulţimi

87

2.3.4.3. Cuantificarea universală

87

2.3.5. Un exemplu integrator

89

3. SQL: Interogarea şi actualizarea bazelor de date

91

3.1. prezentare generală

91

3.1.1. Premisele apariţiei limbajului SQL

91

3.1.2. Scurt istoric

92

3.1.3. Categoriile de instrucţiuni SQL

94

3.2. CELE MAI SIMPLE INTEROGĂRI

96

3.2.1. Instrucţiunea SELECT

96

3.2.2. Clauza DISTINCT

98

3.2.3. Clauza ORDERBY

99

3.2.4. Aliasuri de atribut

101

3.3. interogări cu criterii de selecţie

101

3.3.1. Clauza WHERE

102

3.3.2. Operatorii de comparaţie

103

3.3.3. Operatorii logici

103

3.3.3.1. Operatorul AND

104

3.3.3.2. Operatorul OR

104

3.3.3.3. Operatorul NOT

105

3.3.3.4. Ordinea de evaluare a operatorilor logici

105

3.3.4. Operatorul IS NULL

106

3.3.5. Funcţii cu utilizarea valorii NULL

108

3.3.5.1. Funcţia COALESCE

108

3.3.5.2. Funcţia NVL

108

3.3.5.3. Funcţia NULLIF

109

3.3.6. Operatorul IN

109

3.3.7. Operatorul BETWEEN

111

3.3.8. Operatorul LIKE

111

3.3.9. Limitarea numărului de tupluri returnate

114

3.4. interogări cu agregări şi grupări

114

3.4.1. Funcţii de agregare

115

3.4.1.1. Funcţia COUNT

115

3.4.1.2. Funcţia AVG

117

3.4.1.3. Funcţia SUM

117

3.4.1.4. Funcţiile MAX şi MIN

118

3.4.2. Clauza GROUP BY

118

3.4.3. Clauza HAVING

120

3.5. interogări cu joncţiuni

123

3.5.1. Produsul Cartezian

123

3.5.2. Joncţiuni interne

125

3.5.2.1. Joncţiuni interne de egalitate

126

3.5.2.2. Clauza USING

128

3.5.2.3. Joncţiuni naturale

129

3.5.2.4. O problemă a joncţiunii naturale

131

3.5.2.5. Aliasuri de relaţii sau variabile-tuplu

131

3.5.2.6. Joncţiunea unei relaţii cu ea însăşi

133

3.5.2.7. Joncţiuni interne de inegalitate

134

3.5.3. Joncţiuni externe

135

3.5.3.1. Returnarea tuplurilor nejoncţionabile

136

3.5.3.2. Joncţiunea externă de stânga

137

3.5.3.3. Joncţiunea externă de dreapta

138

3.5.3.4. Joncţiunea externă completă

139

3.6. SUBINTEROGĂRI

140

3.6.1. Tipuri de subinterogări

141

3.6.2. Subinterogări cu operatori de comparaţie

142

3.6.3. Subinterogări cu operatorul IN

146

3.6.4. Subinterogări cu operatorul ANY

149

3.6.5. Subinterogări cu operatorul ALL

150

3.6.6. Subinterogări corelate şi necorelate

152

3.6.7. Subinterogări cu operatorul EXISTS

155

3.6.8. Subinterogări în clauza FROM

159

3.6.9. Subinterogări în clauza HAVING şi în alte clauze

160

3.7. interogări cu operatori din teoria mulţimilor

162

3.7.1. Operatorii UNION şi UNION ALL

163

3.7.2. Operatorii INTERSECT şi INTERSECT ALL

164

3.7.3. Operatorii EXCEPT şi EXCEPT ALL

164

3.8. instrucţiuni de actualizare a bazei de date

165

3.8.1. Inserarea tuplurilor

166

3.8.2. Modificarea tuplurilor

168

3.8.3. Suprimarea tuplurilor

169

4. SQL: Limbajul de definire a datelor

171

4.1. definirea datelor în SQL

171

4.1.1. Tipuri de date numerice

171

4.1.2. Tipuri de date secvenţe de caractere

173

4.1.3. Tipuri de date temporale

174

4.2. definirea schemei bazei de date

174

4.2.1. Definirea constrângerilor de integritate

174

4.2.1.1. Constrângerea NOTNULL

176

4.2.1.2. Constrângerea DEFAULT

177

4.2.1.3. Definirea cheilor primare

177

4.2.1.4. Definirea cheilor externe

178

4.2.1.5. Constrângerea UNIQUE

179

4.2.1.6. Constrângerile de comportament CHECK

180

4.2.1.7. Constrângeri de comportament CHECK la nivel de bază de date

181

4.2.2. Definirea atributelor

182

4.2.3. Crearea schemei relaţionale

183

4.2.4. Modificarea şi suprimarea schemei relaţionale

187

4.2.4.1. Adăugarea, modificarea şi suprimarea atributelor

187

4.2.4.2. Adăugarea, modificarea şi suprimarea constrângerilor

190

4.2.4.3. Amânarea verificării constrângerilor

192

4.2.4.4. Suprimarea schemei relaţionale

194

4.3. gestiunea viziunilor

195

4.3.1. Ce este o viziune?

195

4.3.2. Crearea şi suprimarea viziunilor

197

4.3.3. Consultarea şi actualizarea viziunilor

199

4.3.3.1. Consultarea viziunilor

200

4.3.3.2. Viziuni definite pe proiecţii de atribute

200

4.3.3.3. Viziuni definite pe selecţii de tupluri

202

4.3.3.4. Viziuni definite pe o relaţie de interogări cu DISTINCT sau GROUP BY

203

4.3.3.5. Viziuni definite pe mai multe relaţii

205

4.3.4. Clasificarea viziunilor

206

4.3.5. Din nou despre opţiunea WITH CHECK OPTION

209

4.3.6. Viziuni materializabile

211

4.3.7. Utilitatea viziunilor

213

4.4. sinonime

213

4.5. indecşi

215

4.5.1. Crearea şi suprimarea indecşilor

215

4.5.2. Utilitatea indecşilor

217

4.5.3. Tipuri de indecşi

218

5. Protecţia accesului şi administrarea tranzacţiilor. SQL Integrat.

221

5.1. CONTROLUL ACCESULUI LA BAZA DE DATE

222

5.1.1. Drepturi de acces

222

5.1.2. Acordarea şi retragerea drepturilor

223

5.2. administrare a tranzacţiilor

225

5.2.1. Proprietăţile tranzacţiilor

225

5.2.2. Modele de tranzacţii

226

5.2.2.1. Tranzacţii în SQL

226

5.2.2.2. Tranzacţii imbricate

227

5.2.2.3. Puncte de reluare

228

5.2.3. Anomalii de execuţie concurentă a tranzacţiilor

228

5.2.4. Blocarea relaţiilor şi gestiunea tranzacţiilor

230

5.2.5. Serializarea tranzacţiilor

231

5.2.6. Niveluri de izolare a tranzacţiilor

232

5.3. limbajul SQL integrat

234

5.3.1. Structura unui program cu SQL încorporat

235

5.3.1.1. Delimitatoarele

236

5.3.1.2. Aria de comunicaţie a SQL

237

5.3.1.3. Variabilele programului

238

5.3.2. Manipularea datelor fără cursoare

239

5.3.3. Manipularea datelor cu cursoare

241

5.3.4. Un exemplu integrator

244

6. Proprietăţi obiect-relaţionale în standardul SQL3

247

6.1. declanşatoarele şi stANDARDUL SQL3

248

6.1.1. Definirea declanşatoarelor

248

6.1.2. Evenimente

251

6.1.2.1. Momentul de activare

251

6.1.2.2. Granularitatea

251

6.1.2.3. Nume de corelaţie

252

6.1.3. Condiţii

253

6.1.4. Acţiuni

254

6.1.5. Gestionarea constrângerilor de integritate

255

6.1.5.1. Gestionarea constrângerilor de domeniu

256

6.1.5.2. Gestionarea constrângerilor de tuplu

259

6.2. limbajul SQL3 şi modelul obiect-relaţional

261

6.2.1. Tipuri de date compuse

261

6.2.1.1.Tipul de date ARRAY

262

6.2.1.2. Tipul de date ROW

262

6.2.2. Tipuri colecţie

263

6.2.3. Tipuri de date definite de utilizator

264

6.2.3.1. DISTINCT TYPES

264

6.2.3.2. Tipuri de date structurate definite de utilizator

264

6.2.4. Relaţii cu tupluri-obiecte

266

6.2.5. Moştenirea

267

6.2.6. Referire la tip ca la domeniul unui atribut

269

6.2.7. Relaţii imbricate

271

6.3. obiecte MARI

273

Bibliografie

275