Grundkurs Datenbanksysteme - Von den Konzepten bis zur Anwendungsentwicklung

Lothar Piepmeyer

Grundkurs Datenbanksysteme

Von den Konzepten bis zur Anwendungsentwicklung

2011

402 Seiten

Format: PDF, Online Lesen

E-Book: €  23,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446428751

 

Inhaltsverzeichnis

6

Vorwort

14

Teil I: Einleitung

16

1 Was sind eigentlich Datenbanken?

18

1.1 Konsistenz ist Grundvoraussetzung

18

1.2 Keine Datenbank ohne Datenbankmanagementsystem

19

1.3 Dauerhafte Speicherung

20

1.4 Alle auf einen

21

1.5 Auf Nummer sicher

22

1.6 Damit alles stimmt

22

1.7 Tornadosicher

24

1.8 Der Mensch

24

1.9 Warum nicht selber machen?

25

1.10 Das ANSI SPARC-Modell als Lösung

28

1.11 Wie alles anfing

31

1.12 Mit IMS zum Mond

32

1.13 Und heute?

33

1.14 Wie geht es weiter?

34

2 Relationale Datenbanken – eine kurze Übersicht

36

2.1 Relationen gibt es schon lange

36

2.2 Die zwölf Gebote

37

2.3 Funktioniert das überhaupt?

38

2.4 Wo bekommt man ein RDBMS?

39

2.5 Ein RDBMS zum Anfassen

39

2.6 Erste Schritte mit SQL

41

2.7 Der Systemkatalog

43

2.8 Was kann SQL?

45

3 Das relationale Modell

48

3.1 Mengen

48

3.2 Das kartesische Produkt

49

3.3 Relationen

51

3.4 Die Projektion

53

3.5 Superschlüssel

54

3.6 Schlüsselkandidaten

56

3.7 Relationentyp

59

3.8 Fremdschlüssel

60

3.9 Alles nur graue Theorie?

63

4 Die Relationenalgebra

66

4.1 Die Projektion

67

4.2 Abgeschlossenheit

69

4.3 Produkt, Vereinigung und Differenz

70

4.4 Prädikate

73

4.5 Die einfache Selektion

76

4.6 Der Durchschnitt

77

4.7 Die allgemeine Selektion

77

4.8 Der Join

79

4.9 Wo sind die Grenzen?

81

4.10 Was soll das?

82

4.11 Atomare Werte

83

4.12 Wiederholungsgruppen

84

Teil II: Die Datenbank wird erschaffen

86

5 Tabellen und Constraints

88

5.1 Die Wirklichkeit ist nicht vollkommen

88

5.2 Keine Relationentypen in SQL

89

5.3 Domänen – ein selten besuchtes Gebiet

90

5.4 Der Typ ist wichtig

90

5.5 Die reine Lehre

91

5.6 Dubletten verhindern

92

5.7 Primärschlüssel

96

5.8 Fremdschlüssel

96

5.9 Natürliche Schlüssel

99

5.10 Künstliche Schlüssel leicht gemacht

102

5.11 Statische Regeln

103

5.12 Es muss nicht immer statisch sein

105

5.13 Tabellen mit gleichen Namen

106

5.14 null – die unbekannte Dimension

108

5.15 Änderungen von referenzierten Daten

115

5.16 Datentypen

117

6 Von der Idee zum Konzept

124

6.1 Entitäten und ihre Attribute

125

6.2 Entitätstypen

128

6.3 Beziehungen

131

6.4 Wie viel Entität darf's denn sein?

133

6.5 Rekursive Beziehungen

136

6.6 Hält doppelt gemoppelt besser?

138

6.7 Ist doch ganz einfach?

140

7 Von einem Modell zum nächsten

142

7.1 Mehrwertige Datentypen

143

7.2 Zusammengesetzte Attribute

144

7.3 Aus Entitätstypen werden Tabellen

144

7.4 Beziehungen mit mehr als zwei Teilnehmern

145

7.5 Binäre Beziehungen

147

7.5.1 C-CM-Beziehungen

148

7.5.2 1-CM-Beziehungen

148

7.5.3 1-C-Beziehungen

149

7.5.4 C-C-Beziehungen

149

7.5.5 CM-CM-Beziehungen

151

7.5.6 1-1-Beziehungen

152

7.5.7 Weitere Beziehungstypen

154

7.5.8 Beziehungen mit Attributen

154

8 Normalisierung

158

8.1 Anomalien

158

8.2 Die 1. Normalform

162

8.3 Funktionale Abhängigkeiten

163

8.4 Neuer Wein in alten Schläuchen

167

8.5 Die 2. Normalform

168

8.6 Der Weg in die Normalität

170

8.7 Die 3. Normalform

174

Teil III: Ran an die Daten

178

9 Grundlagen von SQL

180

9.1 Merkmale von SQL

180

9.2 Die Bestandteile von SQL

182

9.3 Der Standard

184

10 Einfache select-Anweisungen

186

10.1 Viele Möglichkeiten, um Spalten zu beschreiben

187

10.2 Datensätze mit where auswählen

191

10.3 Einige nützliche Operatoren

193

10.4 Sortieren

196

10.5 Alles in einen Topf

197

11 Funktionen in SQL-Anweisungen

202

11.1 Funktionen zur Textverarbeitung

204

11.2 Funktionen für Zahlen

206

11.3 Funktionen für Datumsangaben

208

11.4 Aggregatfunktionen

209

12 Daten zusammenfassen

214

12.1 Die group by-Komponente

214

12.2 Die having-Komponente

217

13 Datensätze verbinden

222

13.1 Joins mit SQL

224

13.2 Eine andere Syntax

227

13.3 Outer Joins

228

13.4 Muss es immer natürlich sein?

229

13.5 Joins mit mehr als zwei Tabellen

230

14 Geschachtelte Abfragen

234

14.1 Tabellen ohne Join verbinden

234

14.2 Vorsicht bei Mengen

236

14.3 Weitere Operatoren für Mengen

237

14.3.1 all

238

14.3.2 any

240

14.3.3 exists

241

14.4 Geschachtelte Abfragen oder Joins?

241

14.5 Korrelierte geschachtelte Abfragen

243

15 Views – sehen Sie Ihre Daten mal anders

246

15.1 Was sind Views?

248

15.2 Wozu Views?

249

15.3 Änderungen in Views

251

15.4 Codds 6. Regel

253

16 Machen Sie Ihre Datenbanken sicher!

256

16.1 Benutzerverwaltung

257

16.2 Welche Rechte gibt es?

259

16.3 Rechte auf Views

260

16.4 Weitergabe von Rechten

261

16.5 Verkettungen von Rechten

262

Teil IV: Anwendungsentwicklung

264

17 Transaktionen

266

17.1 Was schiefgehen kann, geht schief

266

17.2 Ein Experiment

268

17.3 Anweisungen gruppieren

269

17.4 Das Transaktionsprotokoll

271

17.5 Auch nach außen eine Einheit

272

17.6 ACID – Transaktionen kurz und bündig

274

18 JDBC

276

18.1 Der Cursor – die Verbindung zweier Welten

276

18.2 Wie bringe ich meiner Programmiersprache SQL bei?

279

18.3 Einige Vorarbeiten

280

18.4 Gute Verbindungen sind alles

281

18.5 Aus der Datenbank in das Programm

283

18.6 Ohne Transaktionen würde etwas fehlen

286

18.7 Flottes SQL dank guter Vorbereitung

287

18.8 Kurz vor Schluss

290

19 Hibernate

294

19.1 Was ist O/R-Mapping?

294

19.2 Aufbau einer Entwicklungsumgebung

296

19.3 Die Konfiguration

298

19.4 Ein einfaches Mapping

300

19.5 Daten einfügen und ändern

304

19.6 Daten lesen

306

19.7 Komplexe Attribute

307

19.8 Kein Allheilmittel

309

20 Unter der Haube

312

20.1 Alles kann so einfach sein

312

20.2 Die Festplatte

313

20.3 Caching

316

20.4 Wenn's mal kracht

317

20.5 Das Transaktionsprotokoll

319

20.6 Der Optimierer

321

20.7 Der Index

325

20.8 B+-Bäume

328

20.8.1 Idee

328

20.8.2 Beispiel

330

20.8.3 Regeln

330

20.8.4 Suchen

332

20.8.5 Einfügen

333

20.8.6 Löschen

334

20.8.7 Wie schnell ist das?

335

20.9 Indizierung mit SQL

336

Teil V: Es muss nicht immer relational sein

340

21 Objektdatenbanken

342

21.1 Das Manifest

342

21.2 db4o

344

21.2.1 db4o kann so einfach sein

345

21.2.2 Query By Example

346

21.2.3 Native Abfragen

348

21.3 Warum nicht gleich objektorientiert?

350

22 XML-Datenbanken

352

22.1 Eine ganz einfache Syntax

353

22.2 Selbstdefinierte Regeln

355

22.3 XML und relationale Datenbanken

358

22.3.1 Datenzentriertes XML

358

22.3.2 Dokumentenzentriertes XML

360

22.4 XPath – eine Abfragesprache für XML

362

22.5 XQuery – fast wie zu Hause

366

22.6 Der hybride Ansatz

370

23 NoSQL

374

23.1 Das Kreuz mit dem Schema

374

23.2 Gewaltige Datenmengen

375

23.3 Nicht immer das Gleiche

376

23.4 Schemafreie Datenbanken mit MongoDB

376

23.5 Gruppieren und Aggregieren mit MapReduce

379

23.6 Sharding mit MongoDB

380

23.7 Drum prüfe, wer sich bindet

384

Literaturverzeichnis

386

Stichwortverzeichnis

390

 

© 2009-2024 ciando GmbH