Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis Vorwort ..................................................... 13 Kapitel 1 Einleitung. . . . . . . . . . . . . . . . . . . . . ...
Author: Sarah Fuchs
2 downloads 0 Views 123KB Size
Inhaltsverzeichnis Vorwort

.....................................................

13

Kapitel 1 Einleitung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

Kapitel 2 SQL – der Standard relationaler Datenbanken . . . 2.1 Die Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Die Bestandteile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Die Verarbeitung einer SQL-Anweisung . . . . . . . . 2.4 Die Struktur von SQL-Anweisungen . . . . . . . . . . . 2.5 Relationale Datenbanken . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Primärschlüssel . . . . . . . . . . . . . . . . . . . . . . . 2.5.3 Beziehungen . . . . . . . . . . . . . . . . . . . . . . . . .

19 19 20 22 25 29 29 32 33

Kapitel 3 Die Beispieldatenbanken . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Die Kursdatenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Schnelleinstieg und Neustart . . . . . . . . . . . . . . . . . . 3.2.1 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Firebird . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 MS Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.5 openBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Gründe für die Nutzung . . . . . . . . . . . . . . . 3.3.2 Den Server installieren und konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Die Kommandozeile. . . . . . . . . . . . . . . . . . . 3.3.4 Die grafische Oberfläche MySQL Tools . 3.3.5 Eine Beispieldatenbank aufbauen . . . . . . 3.4 MS Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Gründe für die Nutzung . . . . . . . . . . . . . . . 3.4.2 Eine Beispieldatenbank aufbauen . . . . . . 3.5 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Gründe für die Nutzung . . . . . . . . . . . . . . . 3.5.2 Oracle installieren . . . . . . . . . . . . . . . . . . . . 3.5.3 Die Testdatenbanken importieren . . . . . . 3.6 Firebird . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 OpenOffice.orgBase . . . . . . . . . . . . . . . . . . . . . . . . . . .

35 35 37 38 38 39 40 40 41 41 41 51 54 58 65 65 66 69 69 69 72 74 82 7

Inhaltsverzeichnis

Kapitel 4 Mit SQL Daten abfragen (SELECT) . . . . . . . . . . . . . . . 4.1 4.2 4.3 4.4 4.5

4.6 4.7

SELECT – die Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . Einfache Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . Daten sortieren mit der ORDER BY-Klausel . . . . Die Daten mit der WHERE-Klausel auswählen . . Tabellen miteinander verbinden (JOIN) . . . . . . . . 4.5.1 Der Klassiker (INNER JOIN) . . . . . . . . . . . 4.5.2 JOIN über mehrere Tabellen . . . . . . . . . . . 4.5.3 Varianten des INNER JOIN . . . . . . . . . . . . 4.5.4 Non-Equi-JOIN . . . . . . . . . . . . . . . . . . . . . . . 4.5.5 OUTER JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.6 CROSS JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.7 JOIN über mehrere Felder . . . . . . . . . . . . . Die GROUP BY-Klausel. . . . . . . . . . . . . . . . . . . . . . . . Die HAVING-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . .

89 89 91 100 104 113 113 119 123 125 126 130 133 134 144

Kapitel 5 Datentypen, Ausdrücke und Funktionen . . . . . . . . . 149 5.1

5.2 5.3 5.4 5.5 5.6

5.7

Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Alphanumerische Angaben (Text) . . . . . 5.1.2 Ganze Zahlen . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3 Gleitkommazahlen . . . . . . . . . . . . . . . . . . . . 5.1.4 Datum/Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . 5.1.5 BITs, BLOBs und andere Datentypen . . . NULL-Werte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Literale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datensatzorientierte Funktionen (Skalarfunktionen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.1 Funktionen in MS Access . . . . . . . . . . . . . 5.6.2 Numerische Funktionen . . . . . . . . . . . . . . . 5.6.3 Alphanumerische Funktionen . . . . . . . . . 5.6.4 Datumsorientierte Funktionen . . . . . . . . . 5.6.5 Datentypumwandlungsfunktionen (Casting) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.6 Logische und sonstige Funktionen. . . . . Gruppenorientierte Funktionen (Aggregatfunktionen) . . . . . . . . . . . . . . . . . . . . . . . . .

Kapitel 6 Datenbankinhalte ändern (INSERT, UPDATE, DELETE) 6.1

8

149 153 156 158 160 162 163 164 167 168 171 172 174 180 183 187 190 193

.....................

199

Neue Datensätze einfügen (INSERT) . . . . . . . . . . . 6.1.1 INSERT mit Werten und Funktionen . . . 6.1.2 INSERT mit Unterabfragen . . . . . . . . . . . . 6.1.3 INSERT mit SET . . . . . . . . . . . . . . . . . . . . . .

199 199 202 205

Inhaltsverzeichnis

6.1.4

6.2

6.3

Besonderheiten des INSERT mit MS Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.5 INSERT-Übungen . . . . . . . . . . . . . . . . . . . . . Vorhandene Datensätze ändern (UPDATE) . . . . . 6.2.1 UPDATE-Anweisungen . . . . . . . . . . . . . . . 6.2.2 Besonderheiten von UPDATE bei MS Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.3 Zusammenfassung . . . . . . . . . . . . . . . . . . . . 6.2.4 Update-Übungen . . . . . . . . . . . . . . . . . . . . . Datensätze löschen (DELETE) . . . . . . . . . . . . . . . . . . 6.3.1 DELETE-Grundlagen . . . . . . . . . . . . . . . . . . 6.3.2 Alle Datensätze löschen (TRUNCATE) . . 6.3.3 Besonderheiten des DELETE bei MS Acess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.4 Übungen zur DELETE-Anweisung . . . . .

Kapitel 7 Datenbanken modellieren 7.1

7.2

7.3 7.4 7.5

213 214 215 215 215 216 217 218

........................

219

Das 3-Ebenen-Modell . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Anforderungen an das Datenbankmodell . . . . . . . . . . . . . . . . . . . . . 7.1.2 Die drei Ebenen des Datenbankmodells 7.1.3 Der Weg zum Datenbankmodell . . . . . . . Das Entity-Relationship-Modell (ERM) . . . . . . . . . 7.2.1 Entitäten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.2 Attribute (Eigenschaften) . . . . . . . . . . . . . . 7.2.3 Domänen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.4 Beziehungen . . . . . . . . . . . . . . . . . . . . . . . . . Beispiel BüroFix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Umsetzung in das relationale Modell . . . . . . . . . . Sinn und Unsinn der Normalisierung . . . . . . . . . . 7.5.1 Redundanz und Anomalien . . . . . . . . . . . 7.5.2 Normalisierungsziele . . . . . . . . . . . . . . . . . . 7.5.3 Funktionale Abhängigkeit . . . . . . . . . . . . . 7.5.4 Normalformen . . . . . . . . . . . . . . . . . . . . . . . . 7.5.5 Grenzen der Normalisierung . . . . . . . . . .

219

Kapitel 8 Datenbanken erstellen (SQL-DDL) 8.1

205 209 210 211

219 220 222 224 226 226 227 228 232 237 240 240 242 243 245 246

...............

249

Das Datenbankschema erstellen (CREATE SCHEMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.2 MS Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.3 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.4 Firebird . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.5 openBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.6 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

249 250 253 254 255 256 257

9

Inhaltsverzeichnis

8.2

8.3

8.4 8.5 8.6

8.7

Tabellen erstellen (CREATE TABLE) . . . . . . . . . . . . 8.2.1 Standardangaben für Felder . . . . . . . . . . . 8.2.2 Fremdschlüsselbeziehungen . . . . . . . . . . . Integritätsbedingung . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1 Primärschlüssel (PRIMARY KEY) . . . . . . 8.3.2 Fremdschlüssel erstellen (FOREIGN KEY) . . . . . . . . . . . . . . . . . . . . . . . 8.3.3 Allgemeine Integritätsbedingung (CHECK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.4 UNIQUE-Bedingung . . . . . . . . . . . . . . . . . . 8.3.5 Übungen zu Integritätsbedingungen . . . 8.3.6 MS Access . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Tabellen ändern (ALTER TABLE) . . . . . . . . . . . Tabellen löschen (DROP TABLE) . . . . . . . . . . . . . . . Benutzer und Programmsichten (CREATE VIEW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6.1 Spaltenselektion . . . . . . . . . . . . . . . . . . . . . . 8.6.2 Zeilenselektion . . . . . . . . . . . . . . . . . . . . . . . 8.6.3 Tabellen kombinieren . . . . . . . . . . . . . . . . . 8.6.4 Der VIEW in MySQL . . . . . . . . . . . . . . . . . . 8.6.5 Der VIEW in MS Access . . . . . . . . . . . . . . 8.6.6 Einen VIEW ändern (ALTER VIEW, DROP VIEW) . . . . . . . . . . 8.6.7 Änderbarkeit eines VIEW . . . . . . . . . . . . . 8.6.8 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Domänen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.7.1 Domänen erstellen . . . . . . . . . . . . . . . . . . . . 8.7.2 Domänen ändern (ALTER DOMAIN) . . . 8.7.3 Domänen löschen (DROP DOMAIN) . . . 8.7.4 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Kapitel 9 Unterabfragen (Sub-SELECT) 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8

10

257 257 263 266 266 268 275 277 278 279 281 284 285 287 288 289 291 293 294 294 296 297 297 299 299 300

....................

301

Nutzung von Unterabfragen . . . . . . . . . . . . . . . . . . . Unterabfragen mit Vergleichsoperatoren . . . . . . . Unterabfragen mit ALL und ANY . . . . . . . . . . . . . . Unterabfragen mit IN und EXISTS . . . . . . . . . . . . . Synchronisierte und korrelierte Unterabfragen . Regeln für Unterabfragen in der WHERE-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erweiterungen der Unterabfragen . . . . . . . . . . . . . . Unterabfragen mit MS Access . . . . . . . . . . . . . . . . .

301 305 307 309 312 313 313 315

Inhaltsverzeichnis

Kapitel 10 Unterabfragen in der DDL und DML . . . . . . . . . . . . . . 317 10.1 10.2 10.3 10.4

CREATE mit Unterabfragen . . . . . . . . . . . . . . . . . . . . UPDATE mit Unterabfragen . . . . . . . . . . . . . . . . . . . INSERT mit Unterabfragen . . . . . . . . . . . . . . . . . . . . DELETE mit Unterabfragen . . . . . . . . . . . . . . . . . . . .

317 320 321 323

Kapitel 11 Mengenoperationen (UNION, INTERSECT, EXCEPT/MINUS). . . . . . . . . . . 327 11.1 11.2 11.3 11.4 11.5 11.6 11.7

Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Vereinigungsmenge (UNION) . . . . . . . . . . . . . . Die Schnittmenge (INTERSECT) . . . . . . . . . . . . . . . . Die Differenzmenge (MINUS/EXCEPT) . . . . . . . . . Besonderheiten der Datenbanksysteme . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Kapitel 12 Benutzer, Rechte und Zugriffsschutz 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8

12.9

327 328 333 334 335 337 337

............

339

Schutz der Informationen . . . . . . . . . . . . . . . . . . . . . Benutzer und Benutzergruppen . . . . . . . . . . . . . . . . Benutzer entfernen (DROP USER) . . . . . . . . . . . . . . Rollen einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rollen löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rechte einrichten (GRANT) . . . . . . . . . . . . . . . . . . . . Rechte entziehen (REVOKE) . . . . . . . . . . . . . . . . . . . Benutzerkonzepte verschiedener Datenbanken . 12.8.1 Benutzerkonzept in MySQL . . . . . . . . . . . 12.8.2 Benutzerkonzept in Oracle . . . . . . . . . . . . 12.8.3 Benutzerkonzept in Firebird . . . . . . . . . . . 12.8.4 Benutzerkonzept in MS Access . . . . . . . . 12.8.5 Benutzerkonzept in openBase . . . . . . . . . VIEW als Zugriffsschutz . . . . . . . . . . . . . . . . . . . . . . .

339 340 342 342 342 343 344 345 345 347 350 352 353 354

Kapitel 13 Transaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 13.1 13.2 13.3 13.4 13.5

Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AUTOCOMMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eigenschaften einer Transaktion . . . . . . . . . . . . . . . Sperren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transaktionen und Benutzervariablen. . . . . . . . . .

357 359 360 361 367

Kapitel 14 Mit SQL Datenbanken betreiben und optimieren 369 14.1

14.2

Optimierter Zugriff – der INDEX . . . . . . . . . . . . . . . 14.1.1 Nutzen von Indizes . . . . . . . . . . . . . . . . . . . 14.1.2 Einen Index anlegen (CREATE INDEX) . Einen Index löschen . . . . . . . . . . . . . . . . . . . . . . . . . .

369 369 370 375

11

Inhaltsverzeichnis

14.3 14.4 14.5 14.6 14.7 A

Weitere Überlegungen zum Einsatz von Indizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weitere Anweisungen zur physischen Datenspeicherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prozeduren und Trigger . . . . . . . . . . . . . . . . . . . . . . . Application Program Interface. . . . . . . . . . . . . . . . . Abschluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

379 380 381 383

Anhang: Benutzung der Datenbanksysteme. . . . . 385 A.1 A.2 A.3 A.4

A.5

MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Firebird . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MS Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 SQL-Anweisungen eingeben . . . . . . . . . . A.4.2 Die Daten aus Excel importieren . . . . . . openBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.5.1 SQL-Anweisungen eingeben . . . . . . . . . . A.5.2 Andere SQL-Anweisungen eingeben . . .

385 389 394 396 396 401 407 407 411

B

Anhang: Boolesche Algebra. . . . . . . . . . . . . . . . . . . . . . 413

C

Anhang: Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 C.1 C.2

Datenbank Kurse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Datenbank Artikel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419

Stichwortverzeichnis

12

375

.........................................

423

Suggest Documents