Datenbanksysteme für Dummies - Wolfgang Gerken - E-Book

Datenbanksysteme für Dummies E-Book

Wolfgang Gerken

0,0
20,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Datenbanken sind unverzichtbare Basis fast aller Informationssysteme. Dieses in dritter, erweiterter Auflage vorliegende Buch vermittelt Ihnen das notwendige Grundlagenwissen zu Datenbanksystemen. Dabei werden, nach einem allgemeinen Überblick über die verschiedenen Datenbankmodelle, vor allem der Entwurf und die Implementierung relationaler Datenbanken besprochen. Im Mittelpunkt des praktischen Teils steht die Datenbanksprache SQL, die anhand vieler Beispiele detailliert erläutert wird. Auch auf SQL-spezifische Besonderheiten der verbreiteten Datenbankmanagementsysteme MySQL, Oracle und PostgreSQL wird eingegangen. Mit den zahlreich vorhandenen Übungsaufgaben sowie einer Fallstudie zum Download können Sie Ihren Lernfortschritt überprüfen. Musterlösungen dazu sind vorhanden.
Der Inhalt orientiert sich an den Empfehlungen der Gesellschaft für Informatik für das Studienfach Informatik.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 446

Veröffentlichungsjahr: 2022

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Datenbanksysteme für Dummies

Schummelseite

»Hilfe, ich habe morgen eine Prüfung im Fach Datenbanksysteme und habe alles vergessen!« Vielleicht beruhigt und hilft die folgende kurze Zusammenstellung einiger »Basics«. Aber bitte nicht mit zur Klausur nehmen; es sei denn, die Schummelseite ist als Hilfsmittel erlaubt.

ENTITY-RELATIONSHIP-MODELLIERUNG

Mit einem ER-Diagramm lassen sich Entitäts- und Beziehungstypen modellieren.

Ein Kunde kann N, also mehrere Bestellungen haben; eine Bestellung ist einem Kunden zugeordnet. Daneben gibt es noch 1:1- und M:N-Beziehungen. Für die MC-Notation (Multiple Can bzw. Choice), einer Erweiterung der Kardinalitäten auf Minimal- und Maximalwerte, gilt:

1:MC

Ein Kunde kann mehrere, aber auch keine Bestellungen haben »MC«.

Eine Bestellung ist aber immer genau einem Kunden zugeordnet »1«.

C:MC

Es könnte zusätzlich auch Bestellungen ohne einen Kunden geben »C«.

Weitere Notationsformen sind die Min-Max-Notation und die Krähenfuß-Notation.

RELATIONEN

Eine Relation R(A1, A2, …, An) ⊆ D1 x D2 x … x Dn – umgangssprachlich als Tabelle bezeichnet – ist eine Teilmenge eines Kreuzproduktes über sogenannte Domains. Die Domains Di sind dabei die den Attributen Ai zugeordneten, gültigen Wertebereiche, die auf einfachen SQL-Datentypen wie Zahlen, Zeichenketten (Strings) oder Datum basieren.

CREATE TABLE Test1( A1 NUMERIC(4) CHECK (A1 > 0), A2 VARCHAR(20), A3 DATE, A4 INTEGER, …PRIMARY KEY (A1),FOREIGN KEY (A4) REFERENCES Test2(…));

Jede Relation hat mindestens eine minimale Menge von Attributen, deren Werte je Tupel paarweise verschieden sind. Dies ist ein Schlüsselkandidat (candidate key). Einer der Schlüsselkandidaten wird als Primärschlüssel festgelegt (primary key).

Jede Attributmenge, die in einer anderen Relation Primärschlüssel (oder zumindest Schlüsselkandidat) ist, heißt Fremdschlüssel (foreign key). Mithilfe der Fremdschlüssel werden Beziehungen zwischen Relationen definiert.

VOM ER-DIAGRAMM ZUR RELATIONALEN DATENBANK

Entitätstypen werden zu Tabellen. 1:1-Beziehungen werden eventuell zu einer Tabelle zusammengefasst. Ansonsten werden 1:1- und 1:N-Beziehungen durch Fremdschlüssel abgebildet. Ausnahme sind MC:C-, M:C- und C:C-Beziehungen, bei denen ein die Beziehung beschreibendes Attribut vorhanden ist; insbesondere, wenn es als NOT NULL definiert ist. Dies erfordert dann eine Zwischentabelle. M:N-Beziehungen erfordern immer eine Zwischentabelle mit den Primärschlüsseln der beiden Entitätstypen als zusammengesetzten Primärschlüssel, genauso M:N:P-Beziehungen.

3-EBENEN-ARCHITEKTUR

Die 3-Ebenen-Architektur strukturiert ein relationales Datenbanksystem wie folgt:

Die externe Ebene besteht aus den Datensichten für die einzelnen Benutzer, die mithilfe von sogenannten externen Schemata definiert und mit dem SQL-Befehl CREATE VIEW angelegt werden.Die konzeptionelle Ebene ist die Sicht auf die Gesamtheit aller Daten und wird durch das konzeptionelle Schema beschrieben. Ziel ist eine redundanzfreie Strukturierung der Daten (siehe Normalformen). Die Tabellen werden mit dem Befehl CREATE TABLE angelegt.Die interne Ebene beschreibt die physischen Speicherstrukturen, in denen die Daten abgelegt werden, und wird durch das interne Schema beschrieben. Ziel ist ein effizienter Zugriff, indem, zum Beispiel mit CREATE INDEX, Indizes für den wahlfreien Zugriff angelegt werden.

NORMALFORMEN

Eine Relation ist in der ersten Normalform (1. NF), wenn jedes Attribut vom gewählten Primärschlüssel funktional abhängig und insbesondere »atomar« ist. Atomar bedeutet, dass es nicht zusammengesetzt, mengenwertig oder geschachtelt ist und somit direkt auf einen der vom relationalen Datenbank-Managementsystem bereitgestellten SQL-Datentypen abgebildet werden kann.

Eine Relation befindet sich in der zweiten Normalform (2. NF), wenn sie in der 1. NF ist und alle Nicht-Schlüsselattribute voll funktional von jedem Schlüsselkandidaten abhängig sind. Es darf also keine funktionalen Abhängigkeiten eines Attributs von einer Teilmenge eines Schlüsselkandidaten (also insbesondere des Primärschlüssels) geben.

Eine Relation ist in der dritten Normalform (3. NF), wenn sie in der 2. NF ist und es innerhalb der Menge der Nicht-Schlüsselattribute keine transitiven Abhängigkeiten von den Schlüsselkandidaten gibt.

Zwischen den Attributmengen α und γ besteht eine transitive Abhängigkeit, wenn es eine Attributmenge β mit α → β → γ gibt. Dabei darf aber α nicht gleichzeitig auch funktional von β abhängig sein.

Weitere Normalformen sind die Boyce-Codd-Normalform und die 4. und 5. NF.

DATENTYPEN

Und bei den Datentypen brauchen Sie vermutlich vor allem diese:

CHAR(n)

Zeichenkette der Länge n

VARCHAR(n)

Zeichenkette mit der maximalen Länge von n Zeichen

NUMERIC(n)

Ganze Zahl mit maximal n Ziffern

DATE

Datum

Datenbanksysteme für Dummies

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

3. Auflage 2023

© 2023 Wiley-VCH GmbH, Boschstraße 12, 69469 Weinheim, Germany

All rights reserved including the right of reproduction in whole or in part in any form. This book published by arrangement with John Wiley and Sons, Inc.

Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Dieses Buch wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.

Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.

Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.

Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.

Print ISBN: 978-3-527-72037-8ePub ISBN: 978-3-527-84115-8

Coverfoto: Siarhei – stock.adobe.comKorrektur: Shangning Postel-Heutz

Inhaltsverzeichnis

Cover

Titelblatt

Impressum

Einleitung

Über dieses Buch

Konventionen in diesem Buch

Was Sie nicht lesen müssen

Törichte Annahmen über den Leser

Wie dieses Buch aufgebaut ist

Symbole, die in diesem Buch verwendet werden

Wie es weitergeht

Teil I: Einführung in Datenbanksysteme

Kapitel 1: Wofür Datenbanksysteme gut sind

Daten und ihre Speicherung

Ein einführendes Beispiel

Aufgaben

Kapitel 2: Definition und Architektur von Datenbanksystemen

Dateiverarbeitung: ein Überblick

Datenbanksysteme: Architektur und Definition

Eigenschaften von Datenbanksystemen

Datenbank- und Informationssysteme

Aufgaben

Kapitel 3: Überblick über Datenmodelle

Klassifikation von Daten

Datenmodelle

Ein historischer Überblick

Das netzwerkartige Datenmodell

Das relationale Datenmodell

NoSQL-Datenmodelle

Vergleich von NoSQL- und relationalen Systemen

Benutzungsschnittstellen

Übersicht über Datenbanksysteme

Aufgaben

Kapitel 4: Vorgehensweise bei der Datenbankentwicklung

Ein einfacher Software-Entwicklungsprozess

Phasenmodell der Datenbankentwicklung

Die Anforderungsanalyse im Detail

Der Datenbankentwurf im Detail

Ein Beispiel mit Anforderungsanalyse und Entwurf

Aufgaben

Teil II: Von der Aufgabenstellung zur relationalen Datenbank

Kapitel 5: Semantische Modellierung einer Datenbank

Entitätstypen, Attribute und Beziehungen

Die Entity-Relationship-Modellierung

Semantische Modellierung mit UML-Klassendiagrammen

Aufgaben

Kapitel 6: Das relationale Datenbankmodell im Detail

Erläuterungen zum Begriff »Relation«

3-Ebenen Architektur

Merkmale relationaler Datenbanken

Integritätsaspekte relationaler Datenbanken

Relationenalgebra im Überblick

Aufgaben

Kapitel 7: Entwurf und Implementierung des Datenbankschemas

Umsetzung eines Entity-Relationship-Diagramms in ein Datenbankschema

Tabellen und ihre Attribute

Normalisierung

Erzeugen der Tabellen mit SQL

Änderung der Tabellenstruktur

Aufgaben

Teil III: Zugriff auf relationale Datenbanken mit SQL

Kapitel 8: Die DML-Befehle von SQL

SQL und relationale Datenbanksysteme

Der SELECT-Befehl im Überblick

Der INSERT-Befehl

Der UPDATE-Befehl

Der DELETE-Befehl

DML-Befehle und Fremdschlüssel

Aufgaben

Kapitel 9: Der SELECT-Befehl im Detail

Datenbankschema für die Beispiele

Abfrage einer einzelnen Tabelle

Abfragen von Zeiten und Zeiträumen

Abfragen von JSON-Objekten

Abfragen über mehrere Tabellen

Gruppierung mit »GROUP BY«

Unterabfragen

Aufgaben

Teil IV: Die Verwaltung einer relationalen Datenbank

Kapitel 10: Benutzersichten

Was sind Benutzersichten?

Beispiele für Views

Vorteile von Views

Views und die Generalisierung/Spezialisierung

DML-Operationen bei Views

Materialized Views

Aufgaben

Kapitel 11: Datensicherheit und Zugriffsrechte bei Datenbanken

Datensicherheit und Datenschutz

Benutzer und ihre Zugriffsrechte

Aufgaben

Kapitel 12: Datenbankoptimierung

Einflussmöglichkeiten bei SQL-Abfragen

Indizes als Zugriffspfade

Der Ausführungsplan

Partitionierung

Optimierung des Datenbankschemas

Hardware und Systemumgebung

Einige Tipps zur Performance-Steigerung

Aufgaben

Teil V: Objektrelationale Datenbanksysteme

Kapitel 13: Objektorientierung und relationale Datenbanksysteme

Objektorientierte Softwareentwicklung

Übertragung objektorientierter Konstrukte in die relationale Datenbankwelt

Das objektrelationale Datenbankmodell

Aufgaben

Kapitel 14: Arbeiten mit objektrelationalen Tabellen

Einige objektrelationale Strukturen

Tabellen mit UDT als Attribut

Tabellen mit Listen als Attribut

Tabellen mit Tabellen als Attribut

Aufgaben

Teil VI: Grundlagen zur Erstellung von Datenbankanwendungen

Kapitel 15: Trigger und Stored Procedures

Architektur von Datenbank-Anwendungsprogrammen

PL/SQL

Trigger

Stored Procedures

Aufgaben

Kapitel 16: Programmieren von Datenbankanwendungen

JDBC

PDO: PHP und MySQL

RUDI-Operationen für MongoDB mit Python

Generieren von Web-Anwendungen

Aufgaben

Kapitel 17: Anwendungsbereiche relationaler Datenbanken

Informationssysteme in Unternehmen

Relationale Datenbanken als Basis von Data-Warehouse-Systemen

Geo-Datenbanken als Anwendung objektrelationaler Systeme

Aufgaben

Kapitel 18: SQL oder nicht SQL

Zusammenfassung

Merkmale relationaler Datenbanksysteme

Welche Datenbank für welches Problem?

Wenn doch SQL? Eine Fallstudie

Aufgaben

Teil VII: Der Top-10-Teil

Kapitel 19: Die 10 größten Fehler beim Entwurf relationaler Datenbanken

Verletzung der Normalformen

Schlecht gewählte Variablennamen und Datentypen

Keine Check-Klauseln für Attribute

Keine Fremdschlüsseldefinitionen

Redundante Daten

Datenbankdateien und deren Kopien auf demselben Laufwerk

Keine vollständige und korrekte Abbildung des semantischen Modells

Zu wenig Absprache mit dem Anwender

Glossar nicht überprüft bzw. angepasst

Nicht genügend Testdaten

Kapitel 20: Die 10 wichtigsten SQL-Befehle und ihre Varianten

SELECT mit einer Tabelle

SELECT mit mehreren Tabellen (Join)

SELECT mit Gruppierung

SELECT mit Unterabfrage

INSERT

UPDATE

DELETE

CREATE

DROP

COMMIT und ROLLBACK

Kapitel 21: 10 Fragen bei der Entity-Relationship-Modellierung

ER-Modellierung oder UML?

Welche Schreibweise?

Sind die Entitätstypen korrekt gebildet?

Sind alle notwendigen Beziehungen erkannt?

Redundante Beziehungen oder nicht?

Gibt es existenzabhängige Entitätstypen?

1:1-Beziehung: Muss das sein?

Stimmen die Kardinalitäten?

Ist das ER-Diagramm mit dem Anwender abgesprochen?

Ist das Glossar korrekt?

Lösungen zu den Übungen

Übungen zu Kapitel 1

Übungen zu Kapitel 3

Übungen zu Kapitel 4

Übungen zu Kapitel 5

Übungen zu Kapitel 6

Übungen zu Kapitel 7

Übungen zu Kapitel 8

Übungen zu Kapitel 9

Übungen zu Kapitel 10

Übungen zu Kapitel 11

Übungen zu Kapitel 12

Übungen zu Kapitel 13

Übungen zu Kapitel 14

Übungen zu Kapitel 15

Übungen zu Kapitel 16

Übungen zu Kapitel 17

Literaturverzeichnis

Abbildungsverzeichnis

Stichwortverzeichnis

End User License Agreement

Illustrationsverzeichnis

Kapitel 1

Abbildung 1.1: Beispiele für Daten und Informationen

Abbildung 1.2: ER-Diagramm für die Kontakte

Abbildung 1.3: Erzeugen der Tabelle »Kontakte«

Abbildung 1.4: Eingabe von Daten in die Tabelle »Kontakte«

Abbildung 1.5: Definition einer Datenbankabfrage

Kapitel 2

Abbildung 2.1: Komplexität der Dateiverarbeitung

Abbildung 2.2: Prinzipskizze für einen Dateizugriff

Abbildung 2.3: Architektur eines Datenbanksystems

Abbildung 2.4: Prinzipskizze für Datenbankzugriff

Abbildung 2.5: Datenbank- und Informationssysteme

Kapitel 3

Abbildung 3.1: Netzwerk-Datenmodell

Abbildung 3.2: Family group »Kunden«

Abbildung 3.3: Dokumentenorientierte Datenbank

Abbildung 3.4: Ausgabe der Dokumente mit Name Mustermann

Kapitel 4

Abbildung 4.1: Ein einfacher Software-Entwicklungsprozess

Abbildung 4.2: Vom Problem zur Datenbank

Abbildung 4.3: Die einzelnen Phasen beim Datenbankentwurf

Abbildung 4.4: Modellierungsschritte bei der Kontaktdatenbank

Abbildung 4.5: Anmeldung zum Griechisch-Kurs

Abbildung 4.6: VHS-Beispiel, Version 1

Abbildung 4.7: VHS-Beispiel, Version 2

Abbildung 4.8: VHS-Beispiel, Version 3

Kapitel 5

Abbildung 5.1: Entitäten und ihre zugehörigen Typen

Abbildung 5.2: 1:1-Beziehung

Abbildung 5.3: 1:N-Beziehung

Abbildung 5.4: M:N-Beziehung

Abbildung 5.5: Entitätstyp mit Attributen

Abbildung 5.6: 1:1-Beziehung im ER-Modell

Abbildung 5.7: 1:N-Beziehung im ER-Modell

Abbildung 5.8: M:N-Beziehung im ER-Modell

Abbildung 5.9: M:N:P-Beziehung im ER-Modell

Abbildung 5.10: 1:C-Beziehung

Abbildung 5.11: MC:M-Beziehung

Abbildung 5.12: VHS-Beispiel in MC-Notation

Abbildung 5.13: Onlineshop in MC-Notation

Abbildung 5.14: Baukastenstückliste

Abbildung 5.15: Baukastenstückliste in MC-Notation

Abbildung 5.16: Baukastenstückliste mit MC:MC-Beziehung

Abbildung 5.17: Allgemeine M:N-Beziehung

Abbildung 5.18: Zugehörige 1:N- und 1:M-Beziehungen

Abbildung 5.19: 1:C vs. (0,1):(1,1)

Abbildung 5.20: N:MC vs. (0,M):(1:N)

Abbildung 5.21: UML-Klassendiagramm (vereinfachte Darstellung)

Abbildung 5.22: Klassendiagramm mit Assoziation

Abbildung 5.23: Aggregation

Abbildung 5.24: Komposition

Abbildung 5.25: Constraints bei Beziehungen

Abbildung 5.26: ER-Diagramm für Aufträge und Angebote

Kapitel 6

Abbildung 6.1: Konstruktoren einer Relation

Abbildung 6.2: Schichtenmodell einer relationalen Datenbank

Abbildung 6.3: Transaktion

Abbildung 6.4: Striktes Zwei-Phasen-Sperrprotokoll

Abbildung 6.5: Rekonstruktion einer Datenbank

Kapitel 7

Abbildung 7.1: ER-Diagramm mit Attributen

Abbildung 7.2: ER-Diagramm mit 1:N-Beziehung

Abbildung 7.3: ER-Diagramm mit 1:1-Beziehung (MC-Notation)

Abbildung 7.4: ER-Diagramm mit 1:C-Beziehung (MC-Notation)

Abbildung 7.5: M:N-Beziehung

Abbildung 7.6: MC:C-Beziehung

Abbildung 7.7: Hierarchie der Normalformen

Abbildung 7.8: Metadaten im relationalen DBMS

Abbildung 7.9: ER-Diagramm für Übung 7.4

Abbildung 7.10: ER-Diagramm zu Übung 7.6

Abbildung 7.11: ER-Diagramm zu Übung 7.8

Kapitel 8

Abbildung 8.1: Der SELECT-Befehl

Kapitel 9

Abbildung 9.1: Join zwischen der Kunden- und Bestellungstabelle

Kapitel 10

Abbildung 10.1: Datenunabhängigkeit durch Views

Abbildung 10.2: Generalisierung/Spezialisierung

Kapitel 11

Abbildung 11.1: Der Ablauf der Rechtevergabe

Kapitel 12

Abbildung 12.1: SQL-Befehlsabarbeitung (SELECT)

Abbildung 12.2: Zugriff über Primärschlüsselindex

Abbildung 12.3: Index für das Attribut »Name«

Abbildung 12.4: Bitmap-Index für das Attribut Wohnort

Abbildung 12.5: Partitionierung

Abbildung 12.6: Satzweise Speicherung

Abbildung 12.7: Spaltenorientierte Speicherung

Kapitel 13

Abbildung 13.1: UML-Klassendiagramm mit Vererbung

Abbildung 13.2: Verschachtelte Klassen

Abbildung 13.3: Konstruktoren bei objektrelationalen Datenbanksy...

Abbildung 13.4: Assoziation, Aggregation, Komposition

Kapitel 14

Abbildung 14.1: Typen bei objektrelationalen Datenbanksystemen

Abbildung 14.2: VArray

Abbildung 14.3: Nested Table

Kapitel 15

Abbildung 15.1: Aufbau eines Programms

Abbildung 15.2: Programm mit Datenbankzugriff

Abbildung 15.3: DBMS mit Spracherweiterung

Kapitel 16

Abbildung 16.1: Architektur von JDBC

Kapitel 17

Abbildung 17.1: Hierarchie der Informationssysteme

Abbildung 17.2: Star-Schema

Abbildung 17.3: Architektur eines Data Warehouse

Abbildung 17.4: Snowflake-Schema

Abbildung 17.5: Beispiel für Datentyp SDO_Geometry

Kapitel 18

Abbildung 18.1: ER-Diagramm zur Fallstudie

Kapitel 21

Abbildung 21.1: Beispiel für redundante Beziehungen

Lösungen zu den Übungen

Abbildung A.1: Semantisches Schema Mitarbeiter_Räume

Abbildung A.2: ER-Diagramm zu Übung 5.2

Abbildung A.3: Beispiel N:MC als ER-Diagramm

Abbildung A.4: ER-Diagramm zu Übung 7.5

Abbildung A.5: ER-Diagramm zu Übung 7.7

Abbildung A.6: ER-Diagramm zu Übung 7.10

Abbildung A.7: Starschema »Klausurergebnisse«

Orientierungspunkte

Cover

Titelblatt

Impressum

Inhaltsverzeichnis

Einleitung

Fangen Sie an zu lesen

Lösungen zu den Übungen

Literaturverzeichnis

Abbildungsverzeichnis

Stichwortverzeichnis

End User License Agreement

Seitenliste

1

2

3

4

7

8

21

22

23

24

25

26

27

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

241

242

243

244

245

246

247

248

249

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

352

353

355

356

357

358

359

360

361

363

364

365

366

367

369

370

371

372

373

375

376

377

378

379

380

381

382

383

384

385

386

387

388

389

390

391

392

393

394

395

396

397

398

399

400

401

402

403

405

406

407

411

412

413

414

Einleitung

Offensichtlich interessieren Sie sich für Datenbanksysteme, denn sonst hätten Sie dieses Buch nicht in die Hand genommen.

Sie besuchen eine Vorlesung oder einen Fortbildungskurs zu diesem Thema?

Sie wollen – beruflich oder privat – eine Datenbank aufbauen oder (müssen) in einem Datenbankprojekt mitarbeiten, fühlen sich aber noch nicht fit auf diesem Gebiet?

Oder Sie haben oft mit Datenbanken zu tun und wollen etwas mehr darüber wissen?

Dann ist dieses Lehrbuch genau das Richtige für Sie! Der Inhalt basiert auf den Erfahrungen, die ich als Hochschullehrer über viele Jahre bei der Vermittlung des Datenbankstoffes in Form von Vorlesungen und Praktika gesammelt habe.

Grundsätzlich gilt: Datenbankvorlesungen machen Spaß; den Lehrenden (mir jedenfalls) und den meisten Studierenden. Warum? Das Thema »Datenbanksysteme« ist eine gute Mischung aus Theorie und Praxis. Im Rahmen der didaktisch fundierten, kompetenzorientierten Herangehensweise dieses Buches lernen Sie Datenbank-relevante Dinge zu verstehen, zu analysieren und zu bewerten sowie frühzeitig anzuwenden. Sie werden das an Ihren persönlichen Fortschritten und Erfolgen zum Beispiel bei der Modellierung mit Entity-Relationship-Diagrammen, der Normalisierung relationaler Datenbanken, aber vor allem auch beim Erlernen der Datenbank-Abfragesprache SQL noch sehen – vorausgesetzt, Sie lesen weiter!

Über dieses Buch

Das Ziel dieses Lehrbuches über Datenbanksysteme ist es,

Ihnen zum einen genügend Wissen zu vermitteln, damit Sie im Studium, in der Ausbildung oder im Beruf bei diesem Thema kompetent mitreden oder eine Prüfung bestehen können,

und zum anderen Ihr Interesse zu wecken, sich weiterhin praktisch damit zu beschäftigen.

Doch welchen Inhalt soll ein solches Buch haben? Was gehört alles dazu? Was sollte detailliert und was weniger genau behandelt, und auf was kann verzichtet werden? Sie wollen ja schließlich keine 1000 Seiten lesen!

In den Empfehlungen der Gesellschaft für Informatik für Bachelor- und Masterprogramme im Studienfach Informatik an Hochschulen werden unter anderem die Kompetenzanforderungen auf dem Gebiet der Datenbank- und Informationssysteme für Bachelor-Studiengänge definiert (GI 2016). Daran orientiert sich dieses Buch, das sich deshalb besonders gut zur Vorlesungsbegleitung und Klausurvorbereitung für Studierende eignet. Behandelt werden:

verschiedene Datenbankmodelle, insbesondere das relationale.

Grundkonzepte und theoretische Grundlagen relationaler Datenbanksysteme.

Der prinzipielle Aufbau von Datenbank-Managementsystemen.

Datenschutzmechanismen.

Optimierung relationaler Datenbanken.

Die Erstellung konzeptioneller Datenbankentwürfe, deren Überführung in normalisierte relationale Datenbankschemata und die Erzeugung der entsprechenden Tabellen.

Die Durchführung auch komplexerer Anfragen und Änderungsoperationen mit SQL.

Die Eignung eines relationalen Datenbanksystems für ein gegebenes Problem einschätzen.

Die Verbindung objektorientierter Anwendungssysteme mit relationalen Datenbanksystemen.

Die Erstellung von Datenbankanwendungen.

Das hört sich alles ganz kompliziert und schwierig an? Keine Angst, Sie werden schrittweise an diese Themen herangeführt. Möglicherweise beunruhigt Sie aber auch, dass Sie »programmieren« und mit einem Datenbank-Managementsystem arbeiten sollen? Auch hier lässt Sie dieses Buch nicht im Regen stehen.

Und natürlich hat es seit der vorherigen Auflage dieses Buches einige Weiterentwicklungen gegeben, die in diese aktuelle Auflage eingeflossen sind.

An dieser Stelle möchte ich nicht versäumen, mich bei allen zu bedanken, die zum Gelingen dieses Buches beigetragen haben. In erster Linie sind das Katharina Gerken, Dr. Konstantin Gerken, Ulrike Kröplin-Gerken und Dr. Hendrik Meyer, die einzelne Kapitel aus Lesersicht kritisch unter die Lupe genommen und auch den Anstoß zu diesem Buch gegeben haben. Mein besonderer Dank gilt meinem Kollegen Herrn Prof. Dr. Olaf Zukunft für seine fachlichen Hinweise. Nicht zuletzt gilt mein Dank Herrn Marcel Ferner von Wiley-VCH, der mich verlagsseitig betreut hat.

Konventionen in diesem Buch

Das Erlernen der Datenbanksprache SQL ist ein wichtiger Bestandteil dieses Buches. Aber das geht leider nicht ohne einige Konventionen zur Syntax – das heißt der Schreibweise der einzelnen Befehle –, denn Sie müssen oder wollen (was besser ist) natürlich wissen, wie man korrekte Befehle und Abfragen für eine Datenbank formuliert. Da ist dann von Schlüsselworten, Bezeichnern oder Bedingungen die Rede. Aber Sie werden sich schnell an die zuerst ungewohnte neue Sprache gewöhnen, denn bei jedem neuen SQL-Befehl finden Sie folgendes Schema:

Definition der formalen Syntax

Erläuterung

Beispiele

Definitionen und Beispiele heben sich immer durch eine andere Schriftart vom normalen Text ab.

Am Ende eines jeden Kapitels gibt es Wiederholungsfragen, Vertiefungsfragen und Übungen. Wenn Sie das Kapitel aufmerksam studiert haben, sollten Sie die Wiederholungsfragen problemlos beantworten können. Die Vertiefungsfragen stellen einen Blick über den Tellerrand dar und sind für das Verständnis des Textes nicht zwingend notwendig. Die Übungen dienen zur Überprüfung, ob Sie den Stoff eines Kapitels auch verstanden haben und anwenden können. Sie wissen ja: Übung macht den Meister. Zu den Übungen gibt es immer Musterlösungen am Ende des Buches.

Übrigens: Zitate werden im Harvard-Stil angegeben. Das heißt, im Text finden Sie in Klammern den Nachnamen des Autors, das Erscheinungsjahr und, falls erforderlich, die Seitenzahl. Im Literaturverzeichnis steht dann der komplette Nachweis.

Was Sie nicht lesen müssen

Das hängt ganz von Ihren bereits vorhandenen, persönlichen Datenbankkenntnissen und Erwartungen ab.

Wenn Sie keine Datenbankanwendungen programmieren wollen, müssen Sie den

Teil VI

, Grundlagen von Datenbankanwendungen, nicht lesen.

Wenn Sie als Nicht-Informatiker nur beim Modellieren einer Datenbank mitreden und den Informatikern die richtigen Fragen stellen wollen, brauchen Sie die

Teile III

bis

V

nicht unbedingt zu lesen. Zumindest nicht im ersten Durchlauf.

Aber was müssen Sie denn lesen? Von »müssen« kann schon mal nicht die Rede sein. Die Bücher der »… für Dummies«-Reihe zeichnen sich dadurch aus, dass sie modular aufgebaut sind. Sie könnten sich also auch – bei entsprechendem Vorwissen – einzelne Teile gezielt herauspicken, die Sie besonders interessieren. Aber eigentlich bin ich der Meinung, dass es sich lohnt, das gesamte Buch zu lesen. Außerdem lassen sich Querbezüge nicht immer vermeiden. Besonders Eifrige sollten auch die schon erwähnten Vertiefungsfragen am Ende jedes Kapitels nicht vergessen.

Törichte Annahmen über den Leser

Ich gehe davon aus, dass Sie dem Thema Datenbanksysteme ein gewisses Interesse entgegenbringen. Die meisten Leser wissen wahrscheinlich schon etwas darüber oder haben eine intuitive, vage Vorstellung davon. Außerdem können Sie vermutlich schon ganz routiniert mit PCs bzw. Laptops umgehen und zur Not auch Software installieren. Wenn Sie …

sich plötzlich beruflich mit Datenbanksystemen auseinandersetzen müssen,

eine Vorlesung zu diesem Thema besuchen,

sich über den Entwurf, die Implementierung und die Anwendung von Datenbanksystemen informieren wollen,

ohne gleich eine Promotion darüber anzustreben, dann sollten Sie ruhig weiterlesen.

Sie wollen nur das Buch lesen und dann alles verstanden haben und sofort anwenden können? Das ist in der Tat eine törichte Annahme. Das Erlernen der Datenbanksprache SQL setzt praktisches Üben voraus. Am besten, Sie installieren eines der frei verfügbaren Datenbank-Managementsysteme und probieren die im Text vorkommenden Beispiele und Übungen praktisch aus. Nur durch Lesen eines Notenheftes lernen Sie schließlich auch nicht Klavier zu spielen.

Liebe Leser*innen, eine weitere törichte Annahme ist in der Überschrift dieses Abschnitts versteckt. Seien Sie nachsichtig, wenn im weiteren Verlauf nicht immer von Kunden und Kundinnen, Studenten und Studentinnen usw. die Rede ist. Wenn keine geschlechtsneutrale Formulierung möglich ist, wird hier das generische Maskulinum verwendet, das natürlich immer alle Geschlechter umfasst!

Wie dieses Buch aufgebaut ist

Dieses Buch hat sieben Teile. Hier erfahren Sie, worum es bei diesem Lehrbuch geht, welche Inhalte die einzelnen Teile haben und was von Ihnen, liebe Leser, dabei erwartet wird. Falls Sie jetzt noch nicht alle Fachbegriffe verstehen, lernen Sie diese sukzessive in den einzelnen Kapiteln.

Teil I: Einführung in Datenbanksysteme

Der erste Teil soll Sie für das Thema begeistern. Hier erfahren Sie Grundlegendes über Datenbanksysteme. Sie können schon ihre erste Minidatenbank aufbauen und lernen alle dabei notwendigen Schritte im Schnelldurchlauf kennen. Am Ende sollten Sie wissen, was Daten von Informationen unterscheidet, wie Datenbanksysteme aufgebaut sind, und welche Datenbankmodelle es gibt.

Teil II: Von der Aufgabenstellung zur relationalen Datenbank

Die Entwicklung, also die Anforderungsanalyse, Modellierung und Implementierung einer Datenbank, ist ein langwieriger Prozess. Sie lernen ihn hier kennen. Highlights sind dabei die Modellierung einer Datenbank mithilfe der Entity-Relationship-Diagramme, die Normalisierung der sich daraus ergebenden Tabellen der relationalen Datenbank und das Erzeugen dieser Tabellen mit dem CREATE-TABLE-Befehl. Wenn Sie mit Datenbankprojekten zu tun haben, wird das einen Großteil Ihrer Zeit beanspruchen. Sie sollten die einzelnen Entwicklungsschritte gut beherrschen.

Teil III: Zugriff auf relationale Datenbanken mit SQL

Wenn Sie Ihre Datenbank erzeugt haben, wollen Sie natürlich auch darauf zugreifen, also Daten speichern, gelegentlich ändern oder löschen und vor allem abfragen. Das lernen Sie in diesem Teil, dessen magisches Stichwort »SQL« (Structured Query Language) lautet. Hier werden Sie schrittweise an immer komplexere Datenbankabfragen herangeführt. Die Übungen dazu ermöglichen es Ihnen, festzustellen, ob Sie alles verstanden haben und auch selbstständig komplexere Datenbankabfragen formulieren können.

Teil IV: Die Verwaltung einer relationalen Datenbank

Eine erzeugte Datenbank muss gepflegt werden. Sie müssen die Datensicherheit gewährleisten, festlegen, auf welche Teile der gesamten gespeicherten Daten die einzelnen Benutzer zugreifen dürfen, und darüber hinaus für eine ausreichende Performance sorgen. Wenn das ein Thema für Sie ist, sind Sie hier richtig. Falls Sie die Absicht haben, einmal Datenbankadministrator zu werden, machen Sie hier ein dickes Ausrufungszeichen.

Teil V: Objektrelationale Datenbanksysteme

Hier können Sie lernen, wie ein objektorientiert entworfenes fachliches Datenmodell auf eine relationale Datenbank abgebildet werden kann. Insbesondere wird auf die objektrelationalen Erweiterungen des relationalen Datenbankmodells eingegangen. Wenn Sie Software mit objektorientierten Methoden modellieren, dürfte Sie das besonders interessieren.

Teil VI: Grundlagen zur Erstellung von Datenbankanwendungen

Sie wollen Programme schreiben, die auf relationale Datenbanken zugreifen? Dann sollten Sie hier aufpassen. Behandelt werden die Trigger-Programmierung sowie die Programmierschnittstellen JDBC und PDO. Das müssen Sie dann kennen und benutzen können. Wenn Programmieren für Sie nicht in Frage kommt, reicht das Kapitel über Trigger und Stored Procedures.

Und wenn Sie auf eine NoSQL-Datenbank zugreifen wollen? Auch dazu gibt es ein Programmbeispiel mit Python und MongoDB.

Besonders hinweisen möchte ich auf eine umfassende Fallstudie beginnend mit der Modellierung über die Erstellung der Tabellen bis hin zu Abfragen. Die SQL-Befehle dazu können Sie von der Webseite zu diesem Buch herunterladen.

Teil VII: Der Top-10-Teil

Zum Schluss kommt der Top-10-Teil, der Tipps für besondere Lebenslagen enthält; zumindest, was Datenbanksysteme betrifft:

Die 10 größten Fehler beim Entwurf relationaler Datenbanken.

Die 10 wichtigsten SQL-Befehle und ihre Varianten.

10 Fragen bei der Entity-Relationship-Modellierung.

Vielleicht hilft ein Blick hierauf, wenn Sie bei Ihrem Datenbankprojekt gerade mal nicht weiterwissen. Sie können die Top 10 aber auch als abschließende Zusammenfassung sehen: Wenn Sie bei diesen Fragen sagen »ist ja klar«, dann können Sie sich mit gutem Gewissen auf Ihr erstes/nächstes Datenbankprojekt stürzen.

Symbole, die in diesem Buch verwendet werden

Immer, wenn besondere Aufmerksamkeit erforderlich ist, sehen Sie eines der folgenden Symbole:

Kleiner Tipp gefällig? Die Beachtung dieses hilfreichen Hinweises macht Ihnen das Datenbankleben leichter. Vielleicht geht Ihnen dann ein Licht auf.

Hier wird ein Begriff genau erklärt. Das sollten Sie sich merken.

Wenn Sie dieses Symbol sehen, könnte daneben etwas stehen, was wirklich wichtig ist und nicht einfach überlesen werden sollte. Eine gute Stelle, um über das bisher Gelesene einmal nachzudenken.

Achtung, hier steht eine Warnung! Wenn Sie diese nicht beachten, kann etwas gehörig schiefgehen.

Hier meldet sich der Techniker als freundlicher Lesebegleiter zu Wort und gibt beispielsweise einen Hinweis, wenn Sie mal nicht weiterkommen. Gelegentlich finden Sie hier auch einen Tipp für Insider, der über das Grundlagenwissen hinausgeht.

Das dürfte eigentlich klar sein.

Wie es weitergeht

Sie werfen jetzt am besten einmal einen Blick in das Inhaltsverzeichnis und überlegen, an welcher Stelle Sie mit dem Lesen beginnen möchten. Wenn Ihnen die einzelnen Kapitelüberschriften noch nicht viel sagen, fangen Sie einfach ganz klassisch mit dem 1. Kapitel an.

Sie sollten aber nicht vergessen, gelegentlich persönliche Breakpoints zu setzen, um das bisher Gelesene zu reflektieren, praktisch auszuprobieren oder auch etwas ganz Anderes zu machen – selbst wenn Sie das Thema gerade höchst spannend finden.

Viel Spaß beim Lesen und Lernen!

Teil I

Einführung in Datenbanksysteme

IN DIESEM TEIL …

erfahren Sie, was Daten sind, und lernen die besonderen Eigenschaften von Datenbanksystemen kennen (der Begriff Definition klingt so theoretisch) und warum man Daten in Datenbanken speichern sollte und nicht einfach in Dateien.

bauen Sie schon Ihre erste Datenbank auf. Das geht ganz einfach.

lernen Sie etwas über die Architektur von Datenbanksystemen und über die verschiedenen Datenmodelle, die in Datenbanksystemen verwendet werden.

Aber immer der Reihe nach …

Kapitel 2

Definition und Architektur von Datenbanksystemen

IN DIESEM KAPITEL

Dateiverarbeitung: Möglichkeiten und ProblemeDefinition eines DatenbanksystemsArchitektur und Eigenschaften von DatenbanksystemenDatenbank- und Informationssysteme

Dieses Kapitel soll zu einer ersten Definition und Architekturübersicht von Datenbanksystemen führen und darlegen, welche Vorteile ihr Einsatz mit sich bringt. Ferner sollte der Unterschied zwischen Datenbank- und Informationssystemen klargestellt werden.

Dateiverarbeitung: ein Überblick

Jedes Programm verarbeitet Da