Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und...

53
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000. Taschenbuch. XXI, 842 S. Paperback ISBN 978 3 486 27574 2 Format (B x L): 17 x 24 cm Gewicht: 1649 g Weitere Fachgebiete > EDV, Informatik > Datenbanken, Informationssicherheit, Geschäftssoftware schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.

Transcript of Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und...

Page 1: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Datenmodelle, Datenbanksprachen undDatenbankmanagementsysteme

Bearbeitet vonGottfried Vossen

erweitert, überarbeitet 2000. Taschenbuch. XXI, 842 S. PaperbackISBN 978 3 486 27574 2

Format (B x L): 17 x 24 cmGewicht: 1649 g

Weitere Fachgebiete > EDV, Informatik > Datenbanken, Informationssicherheit,Geschäftssoftware

schnell und portofrei erhältlich bei

Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft.Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programmdurch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr

als 8 Millionen Produkte.

Page 2: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.
Page 3: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.
Page 4: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.
Page 5: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Prof. Dr. Gottfried Vossen lehrt seit 1993 Informatik am Institut für Wirtschaftsinformatik derUniversität Münster. Er studierte, promovierte und habilitierte sich an der RWTH Aachen undwar von 1991 bis 1993 Professor für Informatik an der Universität Gießen. Seit 1986 war er wieder-holt als Gastprofessor im In- und Ausland tätig, u.a. an der University of California in San Diego,USA, an der Karlstad Universitet in Schweden, am Hasso-Plattner-Institut für Software-systemtechnik in Potsdam sowie an der University of Waikato in Hamilton, Neuseeland. Er isteuropäischer Herausgeber der bei Elsevier erscheinenden Fachzeitschrift Information Systems,Associate Editor des International Journal on Semantic Web and Information Systems, Editor-in-Chief der Dissertationenreihe „Databases and Information Systems“ (DISDBIS) des Berlineraka-Verlags sowie Mitglied des Herausgebergremiums der Zeitschriften International Journal ofKnowledge and Learning, Datenbank-Spektrum, Enterprise Information Systems und Interna-tional Journal of Technology Enhanced Learning. Seine aktuellen Forschungsinteressen sindkonzeptionelle sowie anwendungsnahe Fragestellungen im Umfeld von Datenbanken, Informa-tionssystemen, Prozess-Modellierung, Web 2.0 und E-Learning.

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.

© 2008 Oldenbourg Wissenschaftsverlag GmbHRosenheimer Straße 145, D-81671 MünchenTelefon: (089) 4 50 51- 0oldenbourg.deDas Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außer-halb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig undstrafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Bearbeitung in elektronischen Systemen.

Lektorat: Dr. Margit RothHerstellung: Anna GrosserCoverentwurf: Kochan & Partner, MünchenFoto: Gabriele Peters, Bochum www.eyeszeit.net

Gedruckt auf säure- und chlorfreiem Papier

ISBN 978-3-486-27574-2

Covergrafik: Laura Vossen

Gesamtherstellung: Kösel, Krugzell

Page 6: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Inhaltsverzeichnis

Auszug ... xiv

... aus dem Vorwort zur ersten Auflage xiv

... aus dem Vorwort zur zweiten Auflage xv

... aus dem Vorwort zur dritten Auflage xvi

Vorwort zur funften Auflage xix

I Einfuhrung 1

1 Motivationen, Historisches, Abgrenzungen 31.1 Daten-intensive Anwendungen und deren Anforderungen . . . . . . . . 31.2 Datenbanken und Informationssysteme . . . . . . . . . . . . . . . . . . 61.3 Entwicklung von Datenbanksystemen und Datenmodellen . . . . . . . 7

1.3.1 Filesysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.3.2 Generische Sicht eines Datenbanksystems . . . . . . . . . . . . 101.3.3 Netzwerk- und hierarchische Datenbanken . . . . . . . . . . . . 121.3.4 Relationale Datenbanken . . . . . . . . . . . . . . . . . . . . . 151.3.5 Objektrelationale Datenbanken . . . . . . . . . . . . . . . . . . 181.3.6 XML-Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.4 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 221.5 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2 Aufbau von Datenbanken und Datenbanksystemen 252.1 Datenunabhangigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2 Die ANSI/SPARC-Schemaebenen . . . . . . . . . . . . . . . . . . . . . 262.3 Sprachebenen und -klassen . . . . . . . . . . . . . . . . . . . . . . . . 292.4 Ein Schichtenmodell fur Datenbanksysteme . . . . . . . . . . . . . . . 322.5 Bibliographische Hinweise, Erganzungen, Querbezuge . . . . . . . . . . 392.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Page 7: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

vi Inhalt

II Klassische Konzepte:ER- und relationales Datenmodell. SQL 43

3 Datenbank-Entwurf mit dem Entity-Relationship-Modell 453.1 Der Datenbank-Lebenszyklus . . . . . . . . . . . . . . . . . . . . . . . 463.2 Aspekte der Qualitatssicherung . . . . . . . . . . . . . . . . . . . . . . 49

3.2.1 Qualitatskriterien fur den Datenbankentwurf . . . . . . . . . . 493.2.2 Die Grundzuge ordnungsmaßiger Modellierung . . . . . . . . . 51

3.3 Phasen des Entwurfsprozesses . . . . . . . . . . . . . . . . . . . . . . . 523.3.1 Anforderungsanalyse und -spezifikation . . . . . . . . . . . . . 543.3.2 Konzeptioneller Entwurf . . . . . . . . . . . . . . . . . . . . . . 553.3.3 Logischer Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . 573.3.4 Physischer Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . 573.3.5 Weitere Entwurfsschritte . . . . . . . . . . . . . . . . . . . . . . 58

3.4 Allgemeine Abstraktionskonzepte . . . . . . . . . . . . . . . . . . . . . 593.5 Das Entity-Relationship-Modell . . . . . . . . . . . . . . . . . . . . . . 60

3.5.1 Entities und Attribute . . . . . . . . . . . . . . . . . . . . . . . 613.5.2 Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.5.3 IS-A-Beziehungen . . . . . . . . . . . . . . . . . . . . . . . . . 753.5.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.6 Konzeptioneller Entwurf mit dem ER-Modell . . . . . . . . . . . . . . 813.7 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 883.8 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

4 Das relationale Datenmodell 954.1 Relationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954.2 Datenabhangigkeiten. Relationenschemata . . . . . . . . . . . . . . . . 984.3 Transformation eines ER-Diagramms in das Relationenmodell . . . . . 1044.4 Datenbank-Definition mit SQL . . . . . . . . . . . . . . . . . . . . . . 109

4.4.1 Datenbankschema-Definition . . . . . . . . . . . . . . . . . . . 1104.4.2 Tabellen-Definition . . . . . . . . . . . . . . . . . . . . . . . . . 1114.4.3 Integritatsbedingungen . . . . . . . . . . . . . . . . . . . . . . . 1124.4.4 Weitere Definitionsaspekte . . . . . . . . . . . . . . . . . . . . 114

4.5 Fallstudie Medienhandel . . . . . . . . . . . . . . . . . . . . . . . . . . 1164.6 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 1244.7 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

5 Grundlagen von SQL 1275.1 SQL von 1980 bis 2003 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275.2 Datenbank-Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285.3 Datenbank-Anfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

5.3.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305.3.2 Zur Syntax von SELECT . . . . . . . . . . . . . . . . . . . . . . 1315.3.3 Exkurs in die Relationenalgebra . . . . . . . . . . . . . . . . . 1345.3.4 Semantik von SELECT am Beispiel von RA-Ausdrucken . . . . . 1355.3.5 Verbund-Operatoren in SQL . . . . . . . . . . . . . . . . . . . 137

5.4 Beispiele fur SQL-Anfragen . . . . . . . . . . . . . . . . . . . . . . . . 1405.4.1 Selektionen und Projektionen . . . . . . . . . . . . . . . . . . . 141

Page 8: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Inhalt vii

5.4.2 Verbundanfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 1425.4.3 Aggregatfunktionen und Unteranfragen . . . . . . . . . . . . . 1445.4.4 Abschließende Bemerkungen . . . . . . . . . . . . . . . . . . . 146

5.5 Rekursive Anfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1485.6 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 1495.7 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495.8 Anhang: Beispieltabellen der Fallstudie Medienhandel . . . . . . . . . 153

6 Integritat in relationalen Datenbanken 1616.1 Arten von Integritatsbedingungen . . . . . . . . . . . . . . . . . . . . . 1616.2 Funktionale Abhangigkeiten . . . . . . . . . . . . . . . . . . . . . . . . 165

6.2.1 Definition. Implikation . . . . . . . . . . . . . . . . . . . . . . . 1666.2.2 Ableitung. Das Membership-Problem . . . . . . . . . . . . . . . 1696.2.3 Anwendungen des Membership-Algorithmus. Schlussel . . . . . 1756.2.4 (Abhangigkeits-) Basen . . . . . . . . . . . . . . . . . . . . . . 1786.2.5 Allgemeine Implikation . . . . . . . . . . . . . . . . . . . . . . 181

6.3 Inklusionsabhangigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . 1836.4 Allgemeine Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856.5 Aktive Integritatskontrolle uber Trigger . . . . . . . . . . . . . . . . . 1886.6 Bibliographische Hinweise, Erganzungen, Querbezuge . . . . . . . . . . 1936.7 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

7 Relationale Sprachen: Relationenalgebra, Kalkule, Datalog 2017.1 Die Relationenalgebra . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

7.1.1 Relationale Operationen und ihre Rechenregeln . . . . . . . . . 2027.1.2 Ausdrucke der Relationenalgebra . . . . . . . . . . . . . . . . . 2087.1.3 Eigenschaften der Relationenalgebra . . . . . . . . . . . . . . . 2107.1.4 Algebraische Optimierung . . . . . . . . . . . . . . . . . . . . . 212

7.2 Relationenkalkule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2147.2.1 Der Relationen-Tupelkalkul . . . . . . . . . . . . . . . . . . . . 2157.2.2 Der Relationen-Domainkalkul . . . . . . . . . . . . . . . . . . . 220

7.3 View-Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2217.4 Grundlagen von Datalog . . . . . . . . . . . . . . . . . . . . . . . . . . 226

7.4.1 Motivationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2267.4.2 Logik als Anfragesprache . . . . . . . . . . . . . . . . . . . . . 2287.4.3 Intensionale und extensionale Datenbanken . . . . . . . . . . . 2297.4.4 Rekursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307.4.5 Integritatsbedingungen . . . . . . . . . . . . . . . . . . . . . . . 2327.4.6 Datalog-Programme und deren Interpretation . . . . . . . . . . 2327.4.7 Ausdruckskraft von Datalog . . . . . . . . . . . . . . . . . . . . 235

7.5 Konzepte der Theorie von Anfragesprachen . . . . . . . . . . . . . . . 2367.5.1 Konjunktive Anfragen . . . . . . . . . . . . . . . . . . . . . . . 2367.5.2 Vollstandigkeit von Anfragesprachen . . . . . . . . . . . . . . . 2377.5.3 Ausdruckskraft und Komplexitat von Anfragesprachen . . . . . 239

7.6 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 2437.7 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

Page 9: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

viii Inhalt

8 Qualitatsorientierter Datenbankentwurf 2518.1 Universalrelationen und Update-Anomalien . . . . . . . . . . . . . . . 2518.2 Zweite, dritte und Boyce-Codd-Normalform . . . . . . . . . . . . . . . 2538.3 Dekomposition und Synthese . . . . . . . . . . . . . . . . . . . . . . . 2598.4 Mehrwertige und Verbund-Abhangigkeiten . . . . . . . . . . . . . . . . 2698.5 Vierte und funfte Normalform . . . . . . . . . . . . . . . . . . . . . . . 2738.6 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 2758.7 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

III Moderne Konzepte:Objekt-Basierung und XML-Dokumente 279

9 Objekt-relationale Datenbanken 2819.1 Evolution von Datenmodellen . . . . . . . . . . . . . . . . . . . . . . . 282

9.1.1 Grenzen relationaler Datenmodelle . . . . . . . . . . . . . . . . 2829.1.2 Hohere Datenmodelle . . . . . . . . . . . . . . . . . . . . . . . 2839.1.3 Daten-, Funktions- und Prozessentwurf . . . . . . . . . . . . . 285

9.2 Objekt-Orientierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2889.2.1 Das Paradigma . . . . . . . . . . . . . . . . . . . . . . . . . . . 2889.2.2 Objekt-Orientierung und Datenbanken . . . . . . . . . . . . . . 2929.2.3 Unterscheidung von Typen und Klassen . . . . . . . . . . . . . 2959.2.4 Objekt-Orientierung im relationalen Datenmodell . . . . . . . . 299

9.3 Datenbankmodellierung mit der UML . . . . . . . . . . . . . . . . . . 3019.3.1 Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3039.3.2 Assoziationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3039.3.3 Aggregationen und Kompositionen . . . . . . . . . . . . . . . . 3059.3.4 Generalisierung und Spezialisierung . . . . . . . . . . . . . . . 3059.3.5 Weitere Modellierungsmoglichkeiten . . . . . . . . . . . . . . . 3069.3.6 Fallstudie Medienhandel . . . . . . . . . . . . . . . . . . . . . . 307

9.4 Objekt-relationale Definitionskonzepte in SQL . . . . . . . . . . . . . . 3109.4.1 Basisdatentypen und Typkonstruktoren . . . . . . . . . . . . . 3109.4.2 Benutzerdefinierte Typen und Typhierarchien . . . . . . . . . . 3129.4.3 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

9.5 Fallstudie Medienhandel . . . . . . . . . . . . . . . . . . . . . . . . . . 3179.6 SQL-Anfragen an objekt-relationale Datenbanken . . . . . . . . . . . . 3219.7 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 3269.8 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3279.9 Anhang: Beispieltabellen der Fallstudie Medienhandel . . . . . . . . . 330

10 Einfuhrung in XML 33710.1 Elemente, Tags und Attribute . . . . . . . . . . . . . . . . . . . . . . . 33810.2 Validierung von XML-Dokumenten: DTDs und XML Schema . . . . . 34510.3 Normalisierungsaspekte . . . . . . . . . . . . . . . . . . . . . . . . . . 34910.4 Verarbeitung von XML-Dokumenten . . . . . . . . . . . . . . . . . . . 351

10.4.1 XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35210.4.2 XSLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355

10.5 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 363

Page 10: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Inhalt ix

10.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36410.7 Anhang: XML-Spezifikationen fur die Fallstudie Medienhandel . . . . 365

10.7.1 Document Type Definition . . . . . . . . . . . . . . . . . . . . 36510.7.2 XML Schema Definition . . . . . . . . . . . . . . . . . . . . . . 367

11 SQL und Programmiersprachen 37511.1 Web-Anbindung von Datenbanken . . . . . . . . . . . . . . . . . . . . 376

11.1.1 Grundlegendes . . . . . . . . . . . . . . . . . . . . . . . . . . . 37611.1.2 Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37811.1.3 MySQL-Anbindung per PHP . . . . . . . . . . . . . . . . . . . 380

11.2 Eingebettetes SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38611.2.1 Arten der Einbettung . . . . . . . . . . . . . . . . . . . . . . . 38611.2.2 JDBC und SQLJ . . . . . . . . . . . . . . . . . . . . . . . . . . 388

11.3 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 39411.4 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394

12 XQuery und SQL/XML 39712.1 XQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397

12.1.1 Ausdrucke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39812.1.2 FLWOR-Ausdrucke . . . . . . . . . . . . . . . . . . . . . . . . 40012.1.3 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40712.1.4 Update-Operationen . . . . . . . . . . . . . . . . . . . . . . . . 408

12.2 SQL/XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40912.2.1 XML-Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . 41112.2.2 Publikations-Funktionen . . . . . . . . . . . . . . . . . . . . . . 41312.2.3 XQuery-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . 416

12.3 SQL/XML-Unterstuzung in IBM DB2 V9 . . . . . . . . . . . . . . . . 41812.3.1 Speicherung von XML-Dateien . . . . . . . . . . . . . . . . . . 42012.3.2 Anfragen mit SQL/XML . . . . . . . . . . . . . . . . . . . . . 42212.3.3 Anfragen mit XQuery . . . . . . . . . . . . . . . . . . . . . . . 42412.3.4 Generierung von XML- oder HTML-Strukturen . . . . . . . . . 424

12.4 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 42512.5 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426

IV Datenintegration und ihre Anwendungen 435

13 Architekturkonzepte fur Datenbanksysteme 43713.1 Das Client/Server-Konzept . . . . . . . . . . . . . . . . . . . . . . . . 438

13.1.1 Anfrageserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44013.1.2 Objekt- und Seitenserver . . . . . . . . . . . . . . . . . . . . . 442

13.2 Verteilte Datenbanksysteme . . . . . . . . . . . . . . . . . . . . . . . . 44413.2.1 Vor- und Nachteile . . . . . . . . . . . . . . . . . . . . . . . . . 44413.2.2 Klassifikationen . . . . . . . . . . . . . . . . . . . . . . . . . . . 44613.2.3 Homogene Verteilung . . . . . . . . . . . . . . . . . . . . . . . 44813.2.4 Heterogene Verteilung und Foderation . . . . . . . . . . . . . . 451

13.3 Parallele Datenbanksysteme . . . . . . . . . . . . . . . . . . . . . . . . 45413.4 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 458

Page 11: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

x Inhalt

13.5 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459

14 Datenintegration 46114.1 Einfuhrung. Architekturkonzepte . . . . . . . . . . . . . . . . . . . . . 46114.2 Ubersetzer, Integratoren und Koordinatoren . . . . . . . . . . . . . . . 46314.3 Integration mittels logischer Sichten . . . . . . . . . . . . . . . . . . . 46714.4 Verteilte Objekte und Web Services . . . . . . . . . . . . . . . . . . . 47314.5 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 47614.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478

15 Data Warehouses (Datenlager) und OLAP 47915.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

15.1.1 Anwendungen und Architektur von Datenlagern . . . . . . . . 48115.1.2 Der ETL-Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . 48415.1.3 Daten-Bereinigung zur Erzielung von Datenqualitat . . . . . . 485

15.2 Mehrdimensionale Datenmodelle . . . . . . . . . . . . . . . . . . . . . 48615.2.1 Fakten, Maße und Dimensionen . . . . . . . . . . . . . . . . . . 48615.2.2 Sternschemata und Varianten . . . . . . . . . . . . . . . . . . . 48815.2.3 Effiziente Speicherung von Faktentabellen mittels Bitmaps . . . 490

15.3 Qualitatsorientierter Schemaentwurf fur Datenlager . . . . . . . . . . . 49315.3.1 Der Entwurfsprozess . . . . . . . . . . . . . . . . . . . . . . . . 49415.3.2 Qualitatskriterien . . . . . . . . . . . . . . . . . . . . . . . . . . 49715.3.3 Summierbarkeit und Normalformen . . . . . . . . . . . . . . . 49715.3.4 Selbstwartbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . 499

15.4 Grundlagen des OLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . 50215.4.1 Datenwurfel und OLAP-Operatoren . . . . . . . . . . . . . . . 50315.4.2 Von Vereinigungs- zu Wurfel-Anfragen . . . . . . . . . . . . . . 50615.4.3 SQL Roll-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51015.4.4 SQL Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51315.4.5 SQL Grouping Sets . . . . . . . . . . . . . . . . . . . . . . . . . 516

15.5 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 51715.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518

16 Grundlagen des Data Mining 52316.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52416.2 Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52716.3 Cluster-Bildung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52916.4 Assoziationsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532

16.4.1 Haufige Mengen und Assoziationsregeln . . . . . . . . . . . . . 53216.4.2 Der Apriori-Algorithmus . . . . . . . . . . . . . . . . . . . . . . 53516.4.3 Verbesserungspotenziale beim Apriori-Algorithmus . . . . . . . 53716.4.4 Alternativen zum Apriori-Algorithmus . . . . . . . . . . . . . . 53916.4.5 Interessantheitsmaße . . . . . . . . . . . . . . . . . . . . . . . . 543

16.5 Sequenzanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54416.6 Web-Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548

16.6.1 Web-Struktur-Mining . . . . . . . . . . . . . . . . . . . . . . . 54816.6.2 Web-Inhalts-Mining . . . . . . . . . . . . . . . . . . . . . . . . 55116.6.3 Web-Log-Mining . . . . . . . . . . . . . . . . . . . . . . . . . . 551

Page 12: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Inhalt xi

16.7 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 55216.8 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554

V Datenbanksystemtechnik 555

17 Interne Datenbank- und Speicherorganisation 55717.1 Plattenspeicher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557

17.1.1 Blocke und Blockzugriffe . . . . . . . . . . . . . . . . . . . . . . 55917.1.2 RAID-Architekturen . . . . . . . . . . . . . . . . . . . . . . . . 560

17.2 Pufferverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56317.3 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564

17.3.1 Sequentielle Files . . . . . . . . . . . . . . . . . . . . . . . . . . 56517.3.2 Effizienter Filezugriff durch Indexierung . . . . . . . . . . . . . 567

17.4 Spezielle Indexstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . 56817.4.1 ISAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56817.4.2 Baumstrukturen fur eindimensionale Punktdaten . . . . . . . . 56917.4.3 Baumstrukturen fur mehrdimensionale Punktdaten . . . . . . . 57517.4.4 Hash-Organisationsformen . . . . . . . . . . . . . . . . . . . . . 581

17.5 Beispiel: Speicherorganisation bei DB2 . . . . . . . . . . . . . . . . . . 58417.6 Speicherung und Indexierung von XML-Dokumenten . . . . . . . . . . 587

17.6.1 Speicherungsoptionen . . . . . . . . . . . . . . . . . . . . . . . 58717.6.2 Indexierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588

17.7 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 59317.8 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595

18 Verarbeitung und Optimierung von Anfragen 59718.1 Anfrageverarbeitung im Uberblick . . . . . . . . . . . . . . . . . . . . 59818.2 Anfrage-Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600

18.2.1 Ziele und Ansatze . . . . . . . . . . . . . . . . . . . . . . . . . 60018.2.2 High-Level-Optimierung . . . . . . . . . . . . . . . . . . . . . . 60118.2.3 Low-Level-Optimierung . . . . . . . . . . . . . . . . . . . . . . 606

18.3 Implementierungstechniken fur den Verbund . . . . . . . . . . . . . . . 60718.3.1 Nested-Loop-Join . . . . . . . . . . . . . . . . . . . . . . . . . . 60818.3.2 Sort-Merge-Join . . . . . . . . . . . . . . . . . . . . . . . . . . 60818.3.3 Hash-Join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609

18.4 Spezielle QEP-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . 61218.5 Anfrage-Prozessoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61518.6 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 61718.7 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618

19 Physischer Datenbankentwurf und Tuning 62119.1 Grundlagen des physischen Datenbankentwurfs . . . . . . . . . . . . . 62119.2 Fragmentierung und Replikation bei Datenverteilung . . . . . . . . . . 62419.3 Datenbank-Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626

19.3.1 Grundlegende Prinzipien . . . . . . . . . . . . . . . . . . . . . . 62719.3.2 Tuning von Indexen . . . . . . . . . . . . . . . . . . . . . . . . 62919.3.3 Tuning in relationalen Systemen . . . . . . . . . . . . . . . . . 629

Page 13: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

xii Inhalt

19.4 Datenbank-Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . 63019.5 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 63319.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634

20 Transaktionen und Serialisierbarkeit 63720.1 Das Transaktionskonzept . . . . . . . . . . . . . . . . . . . . . . . . . 63820.2 Beispiele fur Synchronisationsprobleme . . . . . . . . . . . . . . . . . . 64120.3 Das ACID-Prinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64320.4 Das Read-Write-Modell fur Transaktionen . . . . . . . . . . . . . . . . 64420.5 Serialisierbarkeit von Schedules . . . . . . . . . . . . . . . . . . . . . . 647

20.5.1 Schedules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64720.5.2 View-Serialisierbarkeit . . . . . . . . . . . . . . . . . . . . . . . 65120.5.3 Konflikt-Serialisierbarkeit . . . . . . . . . . . . . . . . . . . . . 65220.5.4 Commit-Serialisierbarkeit . . . . . . . . . . . . . . . . . . . . . 657

20.6 Fehlersicherheit von Schedules . . . . . . . . . . . . . . . . . . . . . . . 65920.6.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65920.6.2 Rucksetzbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 66020.6.3 Vermeidung kaskadierender Aborts . . . . . . . . . . . . . . . . 66120.6.4 Striktheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662

20.7 Korrektheit von Schedules . . . . . . . . . . . . . . . . . . . . . . . . . 66320.8 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 66320.9 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664

21 Concurrency Control 66721.1 Uberlegungen zum Scheduler-Entwurf . . . . . . . . . . . . . . . . . . 66721.2 Sperrende Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670

21.2.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67021.2.2 Das 2-Phasen-Sperrprotokoll . . . . . . . . . . . . . . . . . . . 67221.2.3 Varianten des 2-Phasen-Sperrprotokolls . . . . . . . . . . . . . 67721.2.4 Das MGL-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . 67921.2.5 Das TL-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . 68221.2.6 Tuning in Gegenwart sperrender Scheduler . . . . . . . . . . . 684

21.3 Nicht sperrendes Timestamp-Ordering . . . . . . . . . . . . . . . . . . 68921.4 Concurrency Control auf hoherer Abstraktionsebene . . . . . . . . . . 69021.5 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 69421.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695

22 Grundlagen der Crash Recovery 69722.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69722.2 Organisation eines Data-Managers . . . . . . . . . . . . . . . . . . . . 69922.3 Der Recovery-Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 70122.4 Ein Undo/Redo-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . 70522.5 Alternativen zum Undo/Redo-Protokoll . . . . . . . . . . . . . . . . . 70722.6 Recovery-Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70822.7 Bibliographische Hinweise . . . . . . . . . . . . . . . . . . . . . . . . . 70922.8 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709

Page 14: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Inhalt xiii

23 Verteilte Transaktionsverarbeitung 71123.1 Homogene Verteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711

23.1.1 Verteilte Transaktionen und Schedules . . . . . . . . . . . . . . 71123.1.2 Verteiltes Concurrency Control . . . . . . . . . . . . . . . . . . 71523.1.3 Verteilte Recovery-Protokolle . . . . . . . . . . . . . . . . . . . 72023.1.4 Transaktionen auf replikativen Datenbanken . . . . . . . . . . . 728

23.2 Heterogene Verteilung. System-Foderationen . . . . . . . . . . . . . . 73323.2.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73423.2.2 Ein MDBS-Modell . . . . . . . . . . . . . . . . . . . . . . . . . 73423.2.3 Transaktionen und Schedules in einem MDBS . . . . . . . . . . 73623.2.4 Globale Serialisierbarkeit . . . . . . . . . . . . . . . . . . . . . 73923.2.5 Gewahrleistung globaler Serialisierbarkeit . . . . . . . . . . . . 742

23.3 Bibliographische Hinweise . . . . . . . . . . . . . . . . . . . . . . . . . 74523.4 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746

VI Neuere Entwicklungen 749

24 Ausblicke 75124.1 Temporale Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . 75124.2 Probabilistische Datenbanken . . . . . . . . . . . . . . . . . . . . . . . 75524.3 Raumliche Daten und GIS . . . . . . . . . . . . . . . . . . . . . . . . . 75724.4 Datenstrome (Data Streams) . . . . . . . . . . . . . . . . . . . . . . . 76024.5 Data Provenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76224.6 Column Stores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76424.7 Bibliographische Hinweise und Erganzungen . . . . . . . . . . . . . . . 764

Literaturverzeichnis 767

Index 808

Page 15: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

xiv Vorwort

Auszug ...

... aus dem Vorwort zur 1. Auflage (Februar 1987)

Der vorliegende Text enthalt eine Einfuhrung in das Gebiet der Datenbanksy-steme. Dieses Teilgebiet der Informatik ist heute rund 25 Jahre alt. Es ist einerseitsgekennzeichnet von einer großen Bedeutung im praktischen Einsatz von Rechnern;dies wird belegt durch die Vielzahl von (nahezu ausnahmslos Software-) Systemen,welche inzwischen zur Verwaltung großer Datenmengen kommerziell verfugbar sind,und durch die (noch immer zunehmende) Zahl von Anwendungsgebieten, welche sichseit langerer Zeit auf ein solches System stutzen oder erst jetzt die ”Datenbank-Technologie“ fur sich entdecken. Daneben besteht an diesem Gebiet ein starkes Inter-esse aus der Sicht der theoretischen Informatik.

Das Buch vermittelt primar einen Uberblick uber heute gebrauchliche Da-tenmodelle zusammen mit einer Einfuhrung in ausgewahlte Datenbanksprachen so-wie diese Sprachen benutzende Datenbankmanagement-Systeme (DBMS); daruberhinaus wird versucht, neuere Aspekte wie semantische Datenmodelle oder Nonstan-dard-Anwendungen fur Datenbanksysteme zu berucksichtigen. Dieser Zielsetzung ent-spricht die Unterteilung des Stoffes in acht großere Abschnitte. Ein besonderes Anlie-gen ist dabei eine durchgehend formal prazise, aber dennoch stets intuitiv nachvoll-ziehbare und anwendungsnahe Darstellung des Stoffes. Teil I ist speziell fur Leser ohnespezifische Vorkenntnisse gedacht; er soll die Beschaftigung mit Datenbanksystemenmotivieren und grundlegende Probleme aufzeigen. Ausgehend von einer klaren Tren-nung zwischen zeitvarianten und zeitinvarianten Aspekten einer Datenbank, welchekonsequent durchgezogen wird, werden sodann Datenmodelle fur die konzeptionelleEbene einer Datenbank vorgestellt (Teile II und III), wobei das Entity-Relationship-Modell aus didaktischen Grunden am Anfang steht. Ein weiterer Schwerpunkt desTextes ist die umfassende Darstellung konkreter Datenbanksprachen (Teil VI) und da-bei vorwiegend solcher, die aus heutiger Sicht fur Netzwerk- bzw. relationale Systemereprasentativen Charakter haben. Daruber hinaus werden der Entwurf von Daten-banken (Teil IV), Dienste, welche ein DBMS seinem Benutzer bereitstellt (Teil VII),Anwendungen von Datenbanksystemen traditioneller und neuerer Art (Teil VIII) so-wie — zur Vervollstandigung — Datenstrukturen fur die interne Ebene (Teil V) be-handelt.

Der Text ist entstanden aus einer dreistundigen Vorlesung mit einstundigenUbungen, welche ich im Sommersemester 1986 an der RWTH Aachen gehalten ha-be, sowie aus zwei Datenbank-Praktika, welche ich in den Wintersemestern 1984/85und 1985/86 zusammen mit Kollegen in Aachen durchgefuhrt habe. Außerdem lie-gen ihm meine Erfahrungen aus der Entwicklung des relationalen DatenbanksystemsMEMODAX an der TH Aachen zugrunde. Alle genannten Veranstaltungen richtetensich an Informatik-Studenten nach dem Vordiplom. Dementsprechend werden im Text

Page 16: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Vorwort xv

grundlegende Kenntnisse uber Rechnerorganisation, Programmierung, Datenstruktu-ren, Graphentheorie, Komplexitatstheorie und mathematische Logik vorausgesetzt.

... aus dem Vorwort zur 2. Auflage (Juli 1994)

In den sieben Jahren, welche seit dem Erscheinen der 1. Auflage dieses Buchesvergangen sind, hat sich das Gebiet der Datenbanken nachhaltig verandert und weiter-entwickelt. Viele ”alte“ Pfade der Datenbankforschung wurden verlassen, zahlreicheneue kamen hinzu, am Markt wurde eine vollig neue Generation von Datenbanksyste-men verfugbar. Eine Folge hieraus war insbesondere eine Veranderung von Lehr- undLerninhalten und eine Schwerpunktverlagerung, welchem ein Lehrbuch uber diesesGebiet Rechnung tragen muss . Dabei darf man nun nicht der Versuchung aufsitzen,die jeweils letzten Ergebnisse der Forschung oder die gerade aktuellsten Versionenkommerziell verfugbarer Systeme beschreiben zu wollen, sondern ich glaube, dassabzuwagen ist zwischen ”klassischem“ Stoff, welcher in Datenbankvorlesungen seitvielen Jahren zum Standardkanon gehort und auch weiterhin gehoren wird, und einerangemessenen Mixtur aktueller Themen, welche den Leser die Vielfalt des Gebieteserkennen lassen und ihn zu weitergehender Beschaftigung damit anregen soll. Einesolche Abwagung habe ich in dieser Neuauflage versucht.

Fur den Inhalt und die Stoffauswahl der nach langer ”Brutzeit“ nun vorlie-genden zweiten Auflage waren vor allem zwei Dinge mass geblich: die rasante Wei-terentwicklung des Gebietes Datenbanken wahrend der letzten 10 Jahre und meinepersonlichen Fortschritte in der Durchdringung dieses Gebietes sowie die auch damitzusammenhangende Zunahme meiner Lehrerfahrung. Beides hat dazu gefuhrt, dassdie Struktur des Buches sowie sein Aufbau grundlegend uberarbeitet wurden. EinLeitgedanke war dabei, dass man die sogenannten ”Nonstandard–Anwendungen“ vonDatenbanksystemen, welche vor rund 10 Jahren forschungsmaßig erst in den Anfangensteckten, heute nicht mehr separat von den ”Standard–Anwendungen“ behandelnkann, da diese Unterscheidung heute hochstens noch in Ausnahmefallen sinnvoll ist.Es macht heute nur noch wenig Sinn, z.B. uber das geschachtelte Relationenmodellerst 21 Kapitel nach der Vorstellung des flachen Relationenmodells zu reden, wie ichdas in der ersten Auflage noch getan habe. Außerdem habe ich mich dafur entschieden,konkrete Datenbanksysteme nur noch an bestimmten Stellen zu Illustrationszweckenheranzuziehen, und mich dafur von ausfuhrlichen Schilderungen solcher Systeme inhersteller-gebundenen Kapiteln zu trennen. Es hat sich namlich gezeigt, dass Her-steller ihre Versionen und Releases heute in so kurzer Folge aktualisieren, dass mangerade als Lehrbuchautor keine Chance hat, hier Schritt zu halten; fur die Zweckeeines Lehrbuches ist dies aber auch nicht tragisch.

Das Ergebnis dieser Uberlegungen ist zum einen eine stark uberarbeitete Struk-turierung des hier behandelten Materials, welche mit der der ersten Auflage, bei un-veranderter Zielsetzung, nur noch einen Prafix gemeinsam hat. Zum anderen wur-den auch am Inhalt der Struktur zahlreiche Updates (im Sinne von Datenbanken:Einfugen, Andern, Loschen) vorgenommen. Ganz nebenbei habe ich den Text in LATEXvollstandig neu gesetzt.

Erste Anregungen zur Uberarbeitung der Struktur der 1. Auflage habe ichbereits im Zusammenhang mit der Erstellung der englischen Ubersetzung (damalsvon Sarah Mallen und Jan Van Leeuwen) erhalten. In den jetzt vorliegenden Text

Page 17: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

xvi Vorwort

sind außerdem und vor allem Erfahrungen aus zahlreichen Vorlesungen uber Daten-banken, Transaktionsverarbeitung, Datenbank-Technik sowie uber objektorientierteDatenbanken eingeflossen, welche ich in den letzten Jahren an den Universitaten inDusseldorf, Gießen, Kiel, Koblenz, San Diego (UCSD) und zuletzt Munster gehaltenhabe. Dabei kam das in diesem Buch gesammelte Material in unterschiedlicher Wei-se zum Einsatz in Abhangigkeit von der Horerschaft (Informatik-Studenten vor odernach dem Vordiplom, Mathematik-Studenten mit Nebenfach Informatik, Studentender Wirtschaftsinformatik), vom Umfang (2 oder 4 Stunden, mit oder ohne Ubun-gen) und von der Zielsetzung der jeweiligen Veranstaltung (Pflichtvorlesung mit/ohneScheinerwerb, Wahlvorlesung mit/ohne Prufungsrelevanz); gelegentlich verwende iches auch als Abgrenzung des Umfangs von Prufungen, um dann in der Vorlesung ak-tuellen Bedurfnissen bzw. Interessen nachgehen zu konnen.

Die mit mir zusammenlebende Damenwelt, welche seit dem Erscheinen derersten Auflage zweimal Zuwachs erfahren hat, hat speziell in der letzten Phase derArbeiten an diesem Buch, d.h. im Fruhsommer 1994, großes Verstandnis auch furdieses Buchprojekt aufbringen und nahezu dauernde geistige Abwesenheit meinerseitshinnehmen mussen. Wenngleich dies nachtraglich nicht mehr wettzumachen ist, seidieses Buch meiner Martina, Laura und Kathrin gewidmet.

... aus dem Vorwort zur 3. Auflage (August 1998)

Fur die dritte Auflage wurde eine Reihe von datenbank-typischen Operationenam Text ausgefuhrt:

1. Insert’s: Viele Themen, die inzwischen fur den Datenbankbereich wichtig gewor-den sind, wurden neu aufgenommen. Dazu gehoren unter anderem Integrati-onskonzepte fur Daten und Datenbanksysteme, Data Warehousing, OLAP oderData Mining.

2. Delete’s: Einige andere Themen, die mittlerweile auch in Anwendungen vonabnehmendem Interesse sind, wurden im Wesentlichen eliminiert, darunter Netz-werk- und hierarchische Datenbanken. Auch der Namenindex ist entfallen.

3. Modify’s: Die Struktur des gesamten Buches wurde erneut verandert, wobei ichnicht nur umgruppiert und stellenweise gekurzt habe, sondern auch versuchthabe, Themen, die inhaltlich zusammengehoren (wie z.B. Datenbank-Entwurfund relationale Normalisierung), auch zusammen erscheinen zu lassen. Ich ver-spreche mir davon einerseits eine Erleichterung fur den Lernenden, dem da-durch (hoffentlich) gewisse Zusammenhange leichter zu vermitteln sind. Ande-rerseits erhoffe ich mir davon auch eine Unterstutzung fur den Lehrenden, denneinfuhrende oder vertiefende Vorlesungen lassen sich jetzt leichter als vorher anden einzelnen Teilen orientieren (siehe unten).

Im Unterschied zu den ersten beiden Auflagen habe ich jetzt bibliographische Hinweiseund Ubungen an jedes einzelne Kapitel angebunden (und nicht mehr an ganze Teile),da der Zusammenhang zum Stoff dadurch wohl doch leichter erkennbar wird.

Page 18: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Vorwort xvii

Zwei weitere Hinweise mochte ich an dieser Stelle geben:

(1) Ich habe, von ganz wenigen Ausnahmen abgesehen, darauf verzichtet, an allenmoglichen und unmoglichen Stellen auf die Tatsache hinzuweisen, dass weitere,aktuellere oder genauere Informationen zu einem Thema oder einem Systemauf irgendeiner Web-Seite im Internet liegen. Ich unterstelle, dass dies heuteallgemein bekannt ist, und dass auch bekannt ist, wie man z.B. die Web-Seitenvon Herstellern von Datenbanksoftware findet.

(2) An etlichen Stellen finden sich Querverweise auf Ubungen, und zwar in derForm ”... siehe Aufgabe x.y“, was bedeuten soll: ”... siehe Aufgabe y in demAbschnitt Ubungen von Kapitel x.“

Page 19: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.
Page 20: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Vorwort zur funften Auflage

Die funfte Auflage hat etwas langer auf sich warten lassen, als ursprunglich geplant,aber dafur ist sie ahnlich runderneuert wie seinerzeit die dritte. Kernuberlegung dieserAuflage ist, dass Datenbanksysteme inzwischen nicht mehr nur Standardsoftware aufpraktisch allen verfugbaren Rechnerplattformen sind, sondern dass sie daruber hinauswie Rechnerhardware auch in Anwendungen immer unsichtbarer werden. Wer machtsich schon klar, dass elektronische Bank- oder Borsengeschafte, das Ersteigern vonDingen im Internet oder die Schnappchenjagd nach Billigflugen im Web ohne Daten-banken kaum realisierbar ware? Wir haben es also inzwischen mit einer (Software-)Technik zu tun, die zu einer ”Commodity“ geworden ist und fast immer als ”Dienst“im Hintergrund mitspielt. Daneben gibt es naturlich nach wie vor die ”klassischen“Datenbankanwendungen, etwa im Großrechnerbereich, die von Administratoren be-treut werden und die von Programmierern in Anwendungen wie Lohnbuchaltung oderKontenverwaltung integriert werden. Aber auch hier hat sich in den letzten Jahren einWandel vollzogen: Der Datenbankadministrator ist nicht mehr der hochspezialisierteKenner eines einzelnen Systems, sondern er oder sie muss heute im Allgemeinen mitden Systemen unterschiedlicher Hersteller gleich gut umgehen konnen. Ferner werdenauch klassische Systemlandschaften mit immer neuen Aufgaben konfrontiert; mandenke hier nur an Data Warehouses, die aus heutigen Fuhrungsinformationssystemennicht mehr wegzudenken sind, oder an Service-orientierte Architekturen.

Ein Datenbanklehrbuch muss dieser sich verandernden Welt gerecht werdenund sollte gleichzeitig nicht den Blick fur die Grundlagen des Gebiets verlieren.Aus diesen Uberlegungen und Beobachtungen heraus ist die Neuauflage entstanden.Ein großer Unterschied zur vierten Auflage ist eine vollige Abkehr von rein objekt-orientierten Systemen, die sich auf dem Markt als nicht generell tragfahig erwie-sen haben; die entsprechenden Abschnitte wurden ersatzlos gestrichen. Geblieben istdie Kombination aus relationalen und objekt-orientierten Konzepten, die als objekt-relationale Datenbanken ihre Position gefunden haben und auch in die aktuelle Ver-sion des SQL-Standards eingeflossen sind. Dieser Standard wird hier in seinen 1999erund 2003er Versionen zu Grunde gelegt, allerdings muss sich der Leser vergegenwarti-gen, dass das Wort ”Standard“ mit einer gewissen Vorsicht zu genießen ist: Da dieVerabschiedung neuer SQL-Versionen regelmaßig erheblich langer dauert als zunachstgeplant, warten die Hersteller im Allgemeinen nicht ab und statten ihre Systeme mitSprachen aus, die bestenfalls an den Standardisierungsaktivitaten orientiert sind. Esdarf daher nicht verwundern, dass kaum ein kommerzielles System den Standard exakteinhalt; insofern sind die SQL-Beispiele in diesem Buch mit besonderer Aufmerksam-keit zu studieren und ggfs. genau mit der Sprachversion eines gegebenen Systems zuvergleichen; die dabei vermutlich beobachtbaren Diskrepanzen sind unvermeidbar.

Page 21: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

xx Vorwort zur funften Auflage

Ganz neu ist die Behandlung von XML, das im Datenbankbereich (wie in vie-len anderen Bereichen) in den letzten Jahren immer weiter um sich gegriffen hat.Ich habe versucht, dies angemessen in die Darstellung zu integrieren, und zwar durchdie sukzessive Behandlung von Datenmodellierung und von Anfragesprachen fur undum XML. Dabei ist insbesondere die Integration mit (objekt-) relationalen Systemenvon Bedeutung, welche an mehreren Stellen nachvollzogen wird. Spatestens in diesemZusammenhang kommt hoffentlich auch mein weitgehend durchgehendes Beispiel desMedienhandels zum Tragen, welches von Beginn des Textes an immer wieder zu Illu-strationszwecken herangezogen (und dabei gelegentlich auch abgewandelt) wird.

Ein drittes Merkmal der neuen Auflage ist die starkere Bedeutung, die jetztData Warehouses (Datenlagern) beigemessen wird. Wahrend dieses Thema vor achtJahren von Anwendungen gerade erst entdeckt wurde und daher noch als eine Art

”Ausblick“ behandelt werden konnte, ist es mittlerweile fest in Anwendungen inte-griert und sogar von hoher strategischer wie taktischer Bedeutung. Große Datenmen-gen fallen heute uberall an, nicht nur im elektronischen Handel, und man mochtezunehmend hieraus Kapital schlagen. Data Warehouses sind dazu das Hilfsmittel mitden Primaranwendungen OLAP (Online Analytical Processing) und Data Mining.Diesen Themen wird daher in der Neuauflage angemessen breiter Raum gewidmet.

Nach wie vor erhebt das Buch nicht den Anspruch, dass der gesamte Inhalt ineiner vierstundigen Datenbankvorlesung behandelt werden konnte. Es stellt vielmehrdie Themen zusammen, die man am Ende eines einschlagigen Studiums (insbesondereder Informatik, aber auch verschiedener ”Bindestrich-Informatiken“) kennen oder vonderen Existenz man zumindest gehort haben sollte (gemaß dem Wahlspruch meinesfruheren Betriebssysteme-Lehrers Professor Dieter Haupt: ”Wissen ist wissen, wo essteht“). Von daher erspare ich mir, hier Anleitungen zum Durcharbeiten des Textesoder mogliche Abarbeitungspfade des Stoffes zu geben; ich uberlasse dies den Dozen-ten bzw. den Lesern. Allerdings erhebt der Text nach wie vor den Anspruch, seineLeserschaft an vielen Stellen bis an den aktuellen Stand der Forschung heranzufuhrenund insbesondere durch viele Literaturhinweise einen tieferen Einstieg auch in For-schungsthemen zu erleichtern.

An dieser Auflage habe ich dank moderner Technik an den unterschiedlichstenOrten auf dieser Welt arbeiten konnen, von denen ich hier einige erwahnen will:in meinem hauslichen Gievenbecker Arbeitszimmer, in meinem Munsteraner Buroauf dem Leonardo-Campus, im Center Park Het Heijderbos in den Niederlanden, imGrand Cevahir Hotel in Istanbul, im Hotel de l’Alma in Paris, im Tivoli Hotel inCoimbra, Portugal, in einem Condo am Strand von Del Mar sowie auf dem Campusder University of California, San Diego, in Kalifornien, in den Hotels Elia Latchi undPaphos Amathus auf Zypern, im Informatikzentrum Schloß Dagstuhl, im RenaissanceHotel in Chicago, in den Ocean Pacific Appartments in Hahei, Coromandel Peninsulasowie in der Amity Lodge in Queenstown, Neuseeland, im Carlton Crest Hotel inSydney sowie im The Lakes Resort & Spa in Cairns, Australien, in diversen Lufthansa-Lounges am Frankfurter Flughafen, an Bord von Flugen u.a. nach San Francisco,Seattle und Seoul, im Palace Hotel in San Francisco oder in der Fairmont Jasper ParkLodge in Kanada. Ein großer Teil der Arbeit an dieser Auflage hat im Departmentof Management Systems der Waikato Management School in Hamilton, Neuseelandwahrend meines Sabbaticals im Wintersemester 2006/7 stattgefunden.

Page 22: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Vorwort zur funften Auflage xxi

Naturlich gibt es eine Web-Seite zum Buch, die an der Universitat Munster unter

http://dbms.uni-muenster.de

zu erreichen ist; mich selbst erreichen geneigte Leserinnen und Leser unter

[email protected],

und ich freue mich immer uber Feedback, Anregungen oder Hinweise auf Tippfeh-ler. Auf der Web-Seite steht ein Foliensatz bereit; ggfs. wird hieruber auch Weitereskommuniziert.

Meiner Lektorin, Frau Dr. Margit Roth, mochte ich an dieser Stelle fur ihreGeduld danken, die sie diesem Projekt entgegengebracht hat; immerhin haben wirmehrere Jahre uber diese Neuauflage geredet. Naturgemaß sind an dieser Stelle nochweitere Danksagungen fallig: Stefan Reimers, Stephan Hagemann, Gunnar Thies undJens Lechtenborger haben als meine Korrektoren fungiert; ihnen sind etliche inhalt-liche Hinweise zu danken sowie die Tatsache, dass viele Tippfehler (selbst solche ausalteren Auflagen) eliminiert werden konnten. Dem Lektorat des Verlags, insbesonde-re Frau Roth verdanke ich Nachhilfe in der aktuellen Version der deutschen Recht-schreibung. Andreas Simon hat bei der umfassenden Uberarbeitung der Abbildungengeholfen, Thimo Buchheister, Constantin Erckenbrecht und Stephan Schneider beider Korrektur des Literaturverzeichnisses. Und last, not least: Die Widmung aus derzweiten Auflage, meine Damen, bleibt naturlich weiterhin gultig ...

Munster, im Januar 2008

G.V.

Page 23: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.
Page 24: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Kapitel 10

Einfuhrung in XML

In diesem Kapitel stellen wir einen vollig anderen Zugang zur Modellierung von Da-ten vor, als er jetzt aus dem Relationenmodell und seiner Erweiterung um Objektebekannt ist. Die Idee ist hierbei einerseits, Daten selbstbeschreibend zu machen: Wiewir bereits in Kapitel 1 bemerkt haben, ist eine Datendarstellung der Form

(389476, Johnson, 02-6674563)

offensichtlich weniger aussagekraftig als eine Darstellung der Form

LeserNr = ’389476’, Name = ’Johnson’, Telefon = ’02-6674563’

oder gar eine Darstellung der Form

<LeserNr> 389476 </LeserNr><Name> Johnson </Name><Telefon> 02-6674563 </Telefon>

Diese letzte Darstellung ist bereits eine, die einer solchen in XML nahe kommt (esfehlt hier eine eindeutige Wurzel).

Andererseits tragt XML der Tatsache Rechnung, dass Daten haufig keiner fe-sten Struktur folgen, sondern semistrukturiert sind, was bedeutet, dass Daten, diegleiche oder ahnliche Sachverhalte beschreiben (z.B. Bucher), unterschiedliche Aus-wahlen von Attributen besitzen konnen. Als Beispiel betrachte man Abbildung 9.20, inwelcher die verschiedenen Spezialisierungen von Person bis auf Kunde lediglich durchein zusatzliches Attribut gekennzeichnet sind; man konnte dies in einem Format dar-stellen, falls das zusatzliche Attribut auch fehlen darf. Semistrukturierte Daten sindbesonders in Datenintegrationsszenarien haufig, in welchen Daten aus unterschiedli-chen Quellen zu einem einheitlichen Bestand zusammengefasst bzw. integriert werdensollen.

XML wurde von einer Arbeitsgruppe des World Wide Web Consortium (W3C)entwickelt, wobei das Ziel war, die bereits seit langerem existierende Standard Genera-lized Markup Language (SGML) in das Internet bzw. das Web zu bringen. Die Sprachewurde schnell popular und wird bereits als universelles Datenaustauschformat sowiefur den Im- und Export von Dokumenten zwischen unterschiedlichen Systemen sowievor allem zur Definition neuer Sprachen fur spezielle Anwendungsbereiche (wie Nach-richtenbeschreibung in NewsML, Beschreibung von Web-Inhalten fur Handy-Displaysin WML oder Reprasentation gesprochener Sprache in VoiceML) verwendet.

Page 25: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

338 Teil III: Moderne Konzepte: Objekt-Basierung und XML-Dokumente

Tabelle 10.1: Analogien zwischen relationalen Datenbanken und XML.Relationale DB XMLDaten werden uber Attribute be-schrieben.

Daten werden durch Tags be-schrieben.

Daten werden in einem Schemamodelliert.

Daten werden in einer DTD odereinem Schema modelliert.

Daten werden per SQL ange-fragt.

Daten werden per XPath, XSLToder XQuery angefragt.

Daten werden in indexierten Ta-bellen gespeichert.

Daten werden in BLOBs, Da-teien oder Datenbanken gespei-chert.

Wie bereits in Kapitel 1 erwahnt, hat die Verwendung von XML auch im Zu-sammenhang mit dem elektronischen Handel in den letzten Jahren sehr stark zu-genommen. Daruber hinaus findet sich XML in zahlreichen anderen Anwendungs-feldern, etwa bei Web Services oder im so genannten Semantic Web. Wir wollen indiesem Kapitel eine Einfuhrung in XML geben, wobei es uns zunachst um die wesentli-chen Sprachelemente sowie um Moglichkeiten zu deren abstrakter Beschreibung geht;hierzu ziehen wir einerseits einen Grammatikformalismus (DTDs) und andererseitsein Typdeklarationskonzept (XML Schema) heran. Sodann zeigen wir, dass auch furXML-Dokumente das in diesem Buch bereits mehrfach angesprochene Konzept derNormalisierung (mit dem Zweck der Elimination von Redundanzen) relevant ist, undwir gehen auf erste Moglichkeiten der Verarbeitung von XML-Dokumenten ein.

10.1 Elemente, Tags und Attribute

Die Extensible Markup Language (kurz XML) ist eine Sprache zum ”Markup“, also zurAuszeichnung von Dokumenten, wobei sich — im Unterschied etwa zur im Web weitverbreiteten Hypertext Markup Language (HTML) — syntaktische Information uberden Aufbau und die Struktur eines Dokuments vom Layout, also der Darstellung desDokuments, getrennt wird (vgl. Abschnitt 10.4.2). Tabelle 10.1 zeigt die wichtigstenUnterschiede in den Bezeichnungen bei relationalen Datenbanken sowie bei XML.

Ein XML-Dokument besteht aus Elementen, bei denen es sich um Text handelt,der in zueinander passende, offnende und schließende Tags eingeschlossen ist; danebenenthalt ein XML-Dokument ublicherweise eine Kopfzeile und eventuell Kommentare.Innerhalb eines Elementes kann gewohnlicher Text vorkommen oder es konnen an-dere Elemente sowie eine Mischung aus beidem vorkommen. Insgesamt ist ein XML-Dokument durch die strenge Verschachtelung grundsatzlich baumartig strukturiert(wenngleich durch Verweise bzw. Links hiervon abgewichen werden kann, siehe un-ten).

Wesentlich ist nun, dass ein XML-Dokument wohlgeformt sein sollte, d.h. Ele-mente werden auf der gleichen Schachtelungsstufe geschlossen, auf der sie geoffnetwurden; ferner werden sie in umgekehrter Offnungsreihenfolge wieder geschlossen,und diese Regeln gelten auf allen Schachtelungsebenen. Aus formaler Sicht ist ein

Page 26: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

10 Einfuhrung in XML 339

<bibliographie><buch>

<autor> S. Abiteboul </autor><autor> R. Hull </autor><autor> V. Vianu </autor><titel> Foundations of Databases </titel><verlag> Addison-Wesley

<erscheinungsort> Reading, MA </erscheinungsort></verlag><jahr> 1995 </jahr>

</buch>

<artikel><autor> E.F. Codd </autor><titel> A Relational Model of Data

for Large Shared Data Banks </titel><journal> Communications of the ACM

<jahrgang> 13 </jahrgang><erscheinungsort> New York </erscheinungsort>

</journal><jahr> 1970 </jahr>

</artikel></bibliographie>

Abbildung 10.1: Beispiel eines XML-Dokuments.

XML-Dokument damit ein rangloser, geordneter und (mit Tags) markierter Baumaus Elementen; dies bedeutet, dass jeder Knoten im Baum beliebig viele Nachfolgerhaben kann (also nicht uber den Rang eines Knotens eine Obergrenze fur die Anzahlder Nachfolger festgelegt ist) und dass die Reihenfolge der Knoten im Baum signifi-kant ist. Wenn man also zwei Nachfolger eines Knotens vertauscht, erhalt man formaleinen neuen Baum bzw. ein neues Dokument.

Beispiel 10.1

Als erstes Beispiel betrachten wir das in Abbildung 10.1 gezeigte XML-Dokument

zur Beschreibung von bibliographischer Information. Das Dokument beschreibt zwei

Eintrage einer Bibliographie, ein Buch sowie einen Artikel. Die beiden Eintrage sind

unterschiedlich strukturiert, wobei manche Tags (z.B. <autor>) wiederholt vorkom-

men, andere spezifisch fur die jeweiligen Dokumenttypen sind. Das in Abbildung

10.1 gezeigte Dokument ist offensichtlich wohlstrukturiert und leicht als ein Baum

darstellbar, bei welchem die Wurzel mit <bibliographie> markiert ist, ein erster

Unterbaum die mit <buch> markierte Wurzel, ein zweiter die mit <artikel> mar-

kierte enthalt usw. In einer solchen Baumdarstellung werden die schließenden Tags

ignoriert. 2

Elemente eines XML-Dokuments konnen Attribute besitzen, welche im offnenden Tagdes Elements in beliebiger Reihenfolge erscheinen und stets als ”Name = Wert“-

Page 27: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

340 Teil III: Moderne Konzepte: Objekt-Basierung und XML-Dokumente

Kombinationen auftreten, wobei Werte in einfache oder doppelte Hochkommata ein-geschlossen werden. Damit lassen sich u.a. alternative Modellierungen vornehmen; sokonnte z.B. in Abbildung 10.1 ein Journal-Eintrag auch folgendermaßen lauten:

<journal erscheinungsort="NewYork">Communications of the ACM<jahrgang> 13 </jahrgang>

</journal>

Wir wollen als großeres Beispiel hier wieder unseren Medienhandel betrachten. Dabeinehmen wir gewisse Vereinfachungen vor, um die Darstellung nicht unnotig aufzu-blahen; z.B. wird hier auf die Darstellung von Angeboten und Bestellungen sowie vonKunden verzichtet. Wir weichen von der Darstellung im letzten Kapitel allerdings inunterschiedlicher Weise ab, um einige der Gestaltungsmoglichkeiten im Rahmen vonXML-Dokumenten zu demonstrieren.

Beispiel 10.2

Unser erstes Dokument zum Medienhandel modelliert Personen sowie Medienarti-kel. Personen konnen dabei z.B. Schauspieler oder Buchautoren sein. Medienartikelsind elektronische Artikel (hier leer), Bucher oder Filme.

<?xml version="1.0" encoding="utf-16"?>

<medienhandel xmlns="http://dbms.uni-muenster.de"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://dbms.uni-muenster.de

Medienhandel_Schema.xsd">

<personen>

<schauspieler person-id="p15">

<nachname>Depp</nachname>

<vorname>Johnny</vorname>

<auszeichnung />

<manager>Christie Dembrowski</manager>

</schauspieler>

<schauspieler person-id="p16">

<nachname>Bloom</nachname>

<vorname>Orlando</vorname>

<auszeichnung />

</schauspieler>

<schauspieler person-id="p17">

<nachname>Knightley</nachname>

<vorname>Keira</vorname>

<auszeichnung />

</schauspieler>

<regisseur person-id="p06">

<nachname>Verbinski</nachname>

<vorname>Gore</vorname>

Page 28: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

10 Einfuhrung in XML 341

<auszeichnung />

</regisseur>

<buchautor person-id="p01">

<nachname>Silberschatz</nachname>

<vorname>Abraham</vorname>

<auszeichnung />

</buchautor>

<buchautor person-id="p02">

<nachname>Korth</nachname>

<vorname>Henry F.</vorname>

<auszeichnung />

</buchautor>

</personen>

<medienartikel>

<elektronische_artikel />

<buecher>

<buch kategorie="Sachbuch" sprache="en_US">

<titel>Database System Concepts</titel>

<jahr>1998</jahr>

<isbn>0070310866</isbn>

<auflage>3</auflage>

<verlagsname>McGraw Hill</verlagsname>

<ort>Boston u. a.</ort>

<buchautoren person-ids="p01 p02" />

</buch>

</buecher>

<filme>

<dvd>

<titel>Pirates of the Caribbean</titel>

<jahr>2004</jahr>

<laufzeit>143</laufzeit>

<regisseur person-id="p06" />

<besetzung person-ids="p15 p16 p17"/>

<produzent>Jerry Bruckheimer</produzent>

<annotation></annotation>

<regioncode>1</regioncode>

<sound>

<soundmix>Dolby 5.1</soundmix>

<sprache>en_US</sprache>

</sound>

</dvd>

</filme>

<tontraeger></tontraeger>

</medienartikel>

</medienhandel>

Page 29: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

342 Teil III: Moderne Konzepte: Objekt-Basierung und XML-Dokumente

In dieser Darstellung sind die im letzten Kapitel noch der Klasse Person zugeordne-

ten Attribute Vorname, Nachname und Auszeichnung (vgl. Abbildung 9.20) direkt

den verschiedenen Spezialisierungen (hier Schauspieler, Regisseur, Buchautor) zu-

geordnet; das Element Auszeichnung ist in diesem Beispiel an allen Stellen leer.

Personen ist ferner eine ID als Attribut zugeordnet; hieruber sind z.B. die Autoren

des Buches Database System Concepts referenzierbar. Ein Buch hat zwei Attribute

Kategorie und Sprache. 2

An dem Dokument des letzten Beispiels lassen sich die wesentlichen Konzepte be-reits erlautern: Das Dokument beginnt mit einer Kopfzeile, die einen Hinweis aufdie XML-Version sowie die verwendete Kodierung enthalt. Sodann folgt das Wur-zelelement medienhandel, welches einen eigenen Namensraum (”Namespace“) sowiein diesem Fall bereits ein eigenes Schema referenziert. Die Idee des Namensraumsist, die Element-sowie Tag-Namen, die man in einem Dokument verwendet dagegenabzusichern, dass sie in anderen Dokumenten ebenfalls verwendet werden. Wird einNamespace erzeugt und referenziert, so kann jedes Werkzeug, mit welchem das be-treffende XML-Dokument verarbeitet wird, diesen Namesraum einlesen und sodannverwenden. Es werden auf diese Weise also Verwechslungen mit gleich lautenden Ele-mentnamen anderer Dokumente vermieden.

Das gerade betrachtete Dokument zeigt noch weitere syntaktische Details vonXML: Elemente konnen leer sein und in einem Tag geschrieben werden, das gleich-zeitig offnet und schließt; Beispiele sind auszeichnung oder elektronische artikelin Beispiel 10.2. Ferner zeigt das Beispiel eine erste Form der Verlinkung innerhalbvon XML-Dokumenten, welche durch ID- und IDREF -Attribute (genauer: durch At-tribute vom Typ ID bzw. IDREF) gegeben ist: Elemente konnen als Wert fur einID-Attribut einen benutzerdefinierten Identifikator enthalten, der von anderen Ele-menten als Wert fur ein IDREF-Attribut refenziert werden kann. In Beispiel 10.2 istdas Attribut person-id ein Attribut vom Typ ID, welches bei Buchern oder bei DVDsjeweils von einem Attribut vom Typ IDREF (fur einzelne Referenzen) bzw. IDREFS (furmehrere Referenzen) referenziert wird. Es sei bemerkt, dass es verschiedene weitereTypen von Attributen gibt, von denen uns hier lediglich der Typ CDATA (”beliebigeZeichenreihe“) interessiert.

Abbildung 10.2 zeigt die oberen Ebenen des Baumes, der durch das Dokumentaus Beispiel 10.2 aufgespannt wird.

Wir wollen das Beispiel des Medienhandels noch weiter betrachten und alsnachstes anders modellieren. Dazu erinnern wir daran, dass mit XML, wie wir erwahnthaben, semistrukturierte Daten modelliert werden konnen. Dies nutzen wir jetzt auchzur alternativen Beschreibung von Personen, bei welcher wir samtliche fur Personenmoglichen Attribute dem Element Person unmittelbar zuordnen.

Beispiel 10.3

Unser zweites Dokument zum Medienhandel modelliert lediglich Personen, und zwarauf andere Weise als im letzten Beispiel.

<medienhandel>

<personen>

<person rolle="schauspieler" person-id="p15">

Page 30: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

10 Einfuhrung in XML 343

Medienhandel

Buchautor

Schauspieler

Regisseur

Personen Medienartikel

ElektronischeArtikel

Bücher

Filme

DVD

Medienhandel

Buchautor

Schauspieler

Regisseur

Personen Medienartikel

ElektronischeArtikel

Bücher

Filme

DVD

Abbildung 10.2: Teilweise Baumdarstellung des Medienhandel-Dokuments.

<nachname>Depp</nachname>

<vorname>Johnny</vorname>

<manager>Christie Dembrowski</manager>

</person>

<person rolle="schauspieler" person-id="p16">

<nachname>Bloom</nachname>

<vorname>Orlando</vorname>

</person>

<person rolle="sschauspieler" person-id="p17">

<nachname>Knightley</nachname>

<vorname>Keira</vorname>

</person>

<person rolle="regisseur" person-id="p06">

<nachname>Verbinski</nachname>

<vorname>Gore</vorname>

</person>

<person rolle="buchautor" person-id="p01">

<nachname>Silberschatz</nachname>

<vorname>Abraham</vorname>

</person>

<person rolle="buchautor" person-id="p02">

<nachname>Korth</nachname>

<vorname>Henry F.</vorname>

Page 31: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

344 Teil III: Moderne Konzepte: Objekt-Basierung und XML-Dokumente

personen

person*

person-id

nachname

vorname

agent?

studio?

manager?

impressario?

auszeichnung*

medienhandel

rolle

personen

person*

person-id

nachname

vorname

agent?

studio?

manager?

impressario?

auszeichnung*

medienhandel

rolle

Abbildung 10.3: Baumstruktur der Personeninformation aus Beispiel 10.3.

</person>

</personen>

Damit ergibt sich eine Darstellung, welche auf den ersten Blick kompakter erscheint,

in der allerdings die verschiedenen Spezialisierungen von Personen nicht mehr ex-

plizit zum Ausdruck gebracht werden, sondern nur noch uber das Rollenattribut.

Hier ist je nach Anwendung zu entscheiden, welche Darstellungsform zu bevorzugen

bzw. welche Modellierung angemessen ist. 2

Wir haben oben als erstes Konsistenzkriterium fur XML-Dokumente bereits derenWohlgeformheit erwahnt. Wenn z.B. in einer großeren Anwendung Dokumente vonunterschiedlichen Autoren beigesteuert werden oder die Dokumente bzw. deren Be-standteile zu unterschiedlichen Zeitpunkten entstehen, wird es sinnvoll sein, die ge-wunschte Struktur der Dokumente zeitinvariant festzulegen in ahnlicher Weise, wieman dies mit einer Schemavereinbarung bei einer Datenbank macht. Als Beispiel wirdman fur die Personen in Beispiel 10.3 festlegen wollen, welche Elemente insgesamtvorkommen durfen und welche fur jede einzelne Personenbeschreibung vorkommenmussen.

Abbildung 10.3 zeigt dazu eine baumartige Struktur fur das Dokument ausBeispiel 10.3, welche Auskunft daruber gibt, welche Tags auf welcher Schachtelungs-stufe zugelassen sind (und welche nach unten fortgesetzt werden kann). Ein ”∗“ hintereinem Elementnamen bedeutet dabei, dass dieses Element keinmal, einmal oder be-liebig oft auftreten darf; ein ”?“ bedeutet, dass das betreffende Element keinmal odereinmal vorkommen darf. Entsprechend wurde ein ”+“ deuten, dass das betreffendeElement mindestens einmal vorkommen muss. Eine solche Form der Notation liegteiner der Moglichkeiten zur zeitinvarianten Beschreibung von XML-Dokumenten zu-grunde; diese werden als nachstes beschrieben.

Page 32: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Kapitel 12

XQuery und SQL/XML

In diesem Kapitel setzen wir einerseits unsere Beschreibung von Anfragesprachen furXML-Dokumente fort mit XQuery; andererseits setzen wir auch unsere Betrachtungzu SQL und neueren SQL-Erweiterungen fort und werden beschreiben, in welcherForm SQL/XML heutzutage XML-Daten in einer Datenbank unterstutzt. Bei XQue-ry handelt es sich um einen mittlerweile vom W3C verabschiedeten Standard (siehewww.w3.org/TR/xquery oder www.w3.org/XML/Query), in welchem deklaratives An-fragen im Stil von SQL mit Elementen funktionaler Programmierung kombiniert wird.Das zentrale Konstrukt von XQuery sind die so genannten FLWOR-Ausdrucke, welchedem Konzept von SELECT-FROM-WHERE-Anfragen nachempfunden sind. Im Anschlussdaran beschreiben wir die Erweiterung des SQL-Standards um XML-Funktionalitat,welche als SQL/XML bekannt ist. Schließlich gehen wir exemplarisch auf die Reali-sierung dieser Anfragemoglichkeiten im Datenbanksystem DB2 Version 9 von IBMein.

12.1 XQuery

XQuery basiert auf Einflussen diverser Sprachen, welche im Laufe der Zeit fur Da-tenbanken entwickelt worden sind, darunter SQL, aber auch objekt-orientierte sowiefunktionale Sprachen. Die Arbeit an XQuery einschließlich der Standardisierung hatvon 1999 bis 2007 gedauert; mittlerweile hat die Spezifikation dieser Sprache die fol-genden Bestandteile, in diesem Zusammenhang sei auch an Abbildung 10.14 erinnert:

(1) XQuery 1.0 and XPath 2.0 Data Model (XDM)

(2) XQuery 1.0 and XPath 2.0 Functions and Operators

(3) XML Path Language (XPath) 2.0

(4) XQuery 1.0: An XML Query Language

(5) XQuery 1.0 and XPath 2.0 Formal Semantics

(6) XML Syntax for XQuery 1.0 (XQueryX)

(7) XSLT 2.0 and XQuery 1.0 Serialization

Page 33: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

398 Teil III: Moderne Konzepte: Objekt-Basierung und XML-Dokumente

(8) XSL Transformations (XSLT) Version 2.0

(9) Extensible Stylesheet Language (XSL) Version 1.1

Die meisten dieser Dokumente haben im Januar 2007 den Status einer W3C Re-commendation (”a specification or set of guidelines that, after extensive consensus-building, has received the endorsement of W3C Members and the Director“) erreicht,was bedeutet, dass sie stabil sind und in dieser Form zu Grundlage von Implemen-tierungen gemacht werden konnen. Uns interessiert hier insbesondere das DokumentXQuery 1.0: An XML Query Language, aus welchem wir auch Syntaxfestlegungenhier zeigen werden. XQuery basiert u.a. auf XPath, so dass Pfad-Ausdrucke, wie wirsie in Kapitel 10 behandelt haben, hier uneingeschrankt verwendet werden konnen.Allerdings geht XQuery in seiner Ausdruckskraft weit uber XPath hinaus.

12.1.1 Ausdrucke

Das Grundkonstrukt von XQuery ist der Ausdruck (expression) wie in der Relationen-algebra, d.h. Ausdrucke konnen ineinander geschachtelt werden und Ergebnisse einesAusdrucks sind fur andere geeignet definierte Ausdrucke verwendbar; allerdings hatXQuery im Unterschied zur Relationenalgebra ein komplexes Typsystem. Bei der Spe-zifikation der Sprache ist man – ahnlich wie im Software-Entwurf – zunachst von UseCases ausgegangen, also von hypothetischen Benutzungsfallen, in denen die Sprachezum Einsatz kommen sollte. Diese Falle haben ihren Niederschlag in zahlreichen Kon-strukten bzw. Typen von Ausdrucken gefunden. So unterstutzt XQuery u.a. Anfragenan strukturierte Dokumente und kann aus gegebenen Dokumenten neue ableiten; An-fragen konnen an relationale Daten, XML-Daten, gemischte Daten, administrativeDaten oder Metadaten gestellt werden.

Zur Syntax von XQuery sei allgemein bemerkt, dass das die Sprache Groß- undKleinschreibung unterscheidet; Schlusselworter der Sprache werden klein geschrieben.Ausdrucke durfen den gleichen Namen erhalten wie Schlusselworter mit Ausnahmeverschiedener reservierter Funktionsnamen. Jeder XQuery-Ausdruck hat einen Wertund – wie in einer funktionalen Sprache ublich – keinerlei Seiteneffekte. Ausdruckekonnen allerdings Fehlermeldungen zuruckliefern.

Das Typsystem von XQuery unterscheidet atomare Werte (wie Zeichenreihen,ganze Zahlen usw. oder auch konstruierte Werte wie date(‘‘2007-09 -30’’)) undverschiedene Arten von Knoten, darunter Element- Attribut-, Text- sowie Dokument-Knoten; Letztere bezeichnen ein Dokument, auf welches eine gegebene Anfrage ange-wendet werden soll; und haben die allgemeine Form

doc("<file name>").

De facto handelt es sich bei doc um eine Funktion, welche eine Sequenz erzeugt, imAllgemeinen die (geordnete) Sequenz der Knoten des Input-Dokuments. Ein XQuery-Wert ist eine geordnete Folge von null oder mehr Knoten bzw. atomaren Werten. Diegrundsatzliche Struktur einer Anfrage lautet:

1. Optionale Namensraum-Deklaration(en),

2. optionale Variablen- und Funktions-Deklaration(en),

Page 34: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

12 XQuery und SQL/XML 399

3. eigentlicher Anfrageausdruck, der aus Unterausdrucken zusammengesetzt seinkann.

Ausdrucke konnen Funktionsaufrufe, Pfad-Ausdrucke, arithmetische oder logischeAusdrucke, Vergleichsausdrucke, konditionale oder quantifizierte Ausdrucke, Element-Konstruktoren oder FLWOR-Ausdrucke sein sowie verschiedene andere Formen an-nehmen.

Wir geben als Nachstes einige Auszuge aus der Syntax von XQuery wieder, de-ren vollstandige Version sich im Anhang des im Web unter www.w3.org/TR/xqueryzu findenden Dokuments befindet. Die Regeln der Syntaxspezifikation, welche in derErweiterten Backus-Naur-Form (EBNF) angegeben sind, sind vollstandig numme-riert, so dass Bezuge zwischen den Beschreibungen hier und dort eindeutig herstell-bar sind; die Lucken in den Nummern der nachfolgend gezeigten Regeln sind somitbei Bedarf leicht zu schließen. Aufgrund der Kurze des hier gezeigte Ausschnitts ausder XQuery-Syntax nehmen wir keine Unterscheidung zwischen Nicht-Terminalen derGrammatiken und vom Benutzer wahlbaren Namen vor; dies sollte aus dem jeweiligenZusammenhang heraus klar sein. Terminale der Sprache sind dagegen in Hochkom-mata eingeschlossen.

[1] Module ::= VersionDecl? (LibraryModule | MainModule)

[3] MainModule ::= Prolog QueryBody

[6] Prolog ::= ((DefaultNamespaceDecl | Setter | NamespaceDecl| Import) Separator)*

((VarDecl | FunctionDecl | OptionDecl)Separator)*

[7] Setter ::= BoundarySpaceDecl | DefaultCollationDecl| BaseURIDecl | ConstructionDecl| OrderingModeDecl | EmptyOrderDecl| CopyNamespacesDecl

[8] Import ::= SchemaImport | ModuleImport

[9] Separator ::= ";"

[24] VarDecl ::= "declare" "variable" "$" QName TypeDeclaration?((":=" ExprSingle) | "external")

Eine Anfrage kann aus einem oder mehreren Fragmenten bestehen, die als Modulebezeichnet werden; Module sind dadurch gekennzeichnet, dass sie einzeln statischanalysiert werden konnen. Ein Modul kann ein Bibliotheksmodul oder ein Hauptmodulsein, wobei Letzteres einen Prolog sowie einen Rumpf umfasst. Eine Anfrage hat genauein Hauptmodul, dessen Rumpf ausgewertet wird und das Ergebnis der Anfrage liefert.Ein Prolog ist eine Folge von Deklarationen sowie Importen (z.B. eines Schemas),welche die Auswertungsumgebung fur das betreffende Modul festlegt. Setter sinddabei Deklarationen, die den Wert einer Eigenschaft festlegen, welche die Ausfuhrungder Anfrage beeinflusst, wie z.B. eine Ordnungsreihenfolge. Eine Variablendeklaration

Page 35: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

400 Teil III: Moderne Konzepte: Objekt-Basierung und XML-Dokumente

FOR IN

LET := WHERE

RETURN

ORDER BY

FOR IN

LET := WHERE

RETURN

ORDER BY

Abbildung 12.1: Syntax von FLWOR-Ausdrucken.

legt den statischen Typ einer Variablen sowie eventuell einen Wert fur diese fest; derName QName, so genannter qualified name, darf dabei nicht bereits vergeben sein.

Der Anfragerumpf (QueryBody) eines Hauptmoduls besteht aus einem Aus-druck wie folgt:

[30] QueryBody ::= Expr

[31] Expr ::= ExprSingle ("," ExprSingle)*

[32] ExprSingle ::= FLWORExpr | QuantifiedExpr| TypeswitchExpr | IfExpr | OrExpr

Ein Ausdruck kann demnach eine Folge so genannter Expression Singles sein, welchedurch Kommata getrennt werden und welche ihrerseits eine von mehreren (der obengenannten) Formen haben konnen. Von besonderem Interesse sind dabei die FLWOR-Ausdrucke (sprich: englisch flower).

12.1.2 FLWOR-Ausdrucke

Wir konzentrieren uns hier auf den wichtigsten Ausdrucks-Typ, die FLWOR-Ausdrucke.Deren allgemeine Form, welche auch in Abbildung 12.1 dargestellt ist, lautet wie folgt:

[33] FLWORExpr ::= (ForClause | LetClause)+ WhereClause?OrderByClause? "return" ExprSingle

[34] ForClause ::= "for" "$" VarName TypeDeclaration? PositionalVar?"in" ExprSingle("," "$" VarName TypeDeclaration?PositionalVar? "in" ExprSingle)*

[35] PositionalVar ::= "at" "$" VarName

[36] LetClause ::= "let" "$" VarNameTypeDeclaration? ":=" ExprSingle

("," "$" VarNameTypeDeclaration? ":=" ExprSingle)*

[37] WhereClause ::= "where" ExprSingle

[38] OrderByClause ::= (("order" "by") | ("stable" "order" "by"))

Page 36: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

12 XQuery und SQL/XML 401

OrderSpecList

[39] OrderSpecList ::= OrderSpec ("," OrderSpec)*

[40] OrderSpec ::= ExprSingle OrderModifier

[41] OrderModifier ::= ("ascending" | "descending")? ("empty"("greatest" | "least"))?("collation" URILiteral)?

[42] QuantifiedExpr ::= ("some" | "every") "$" VarNameTypeDeclaration? "in" ExprSingle("," "$" VarName TypeDeclaration?

"in" ExprSingle)*"satisfies" ExprSingle

Ein FLWOR-Ausdruck beginnt also mit einer for- oder einer let-Klausel und enthaltoptional eine where- sowie eine order by-Klausel; er endet mit einer return-Klausel.for bindet dabei eine oder mehrere Variablen an Ausdrucke und erzeugt zur Laufzeiteinen ”Strom“ von Tupeln, in welchem jedes einzelne Tupel jede Variable an einenWert bindet, der im Ergebnis des betreffenden Ausdrucks liegt. let bindet dagegendie angegebenen Variablen an das gesamte Ergebnis des Ausdrucks. for wird alsozur Iteration uber den Input des betreffenden Ausdrucks benutzt, let erzeugt le-diglich einzelne Bindungen. Zur Verdeutlichung betrachten wir die folgenden beidenDeklarationen:

for $b in doc("Medienhandel.xml")//buch

let $b in doc("Medienhandel.xml")//buch

Die erste dieser erzeugt viele Bindungen, von denen jede die Variable $x einzeln anein buch-Element bindet. Die zweite erzeugt dagegen genau eine Bindung, so dass $xeine Liste aller buch-Elemente zugewiesen wird.

Die where-Klausel entspricht in ihrer Funktion derjenigen von SQL und selek-tiert diejenigen Tupel, welche den angegebenen Ausdruck erfullen. Mittels order bykann eine auf- oder absteigende Sortierung des Ergebnisses erzielt werden. returnkonstruiert das Ergebnisdokument. Wir erlautern als Nachstes den Gebrauch vonFLWOR-Ausdrucken an einigen Beispielen.

Beispiel 12.1

Unser erstes Beispiel nimmt wieder Bezug auf die in Abschnitt 10.7.1 angegebeneDTD fur unseren Medienhandel und unterstellt die Verfugbarkeit eines DokumentsMedienhandel.xml, welches in Bezug auf diese DTD gultig ist. Gesucht sind darindie Titel aller technischen Bucher.

In Kapitel 10 hatten wir fur diese Anfrage das folgende XSLT-Programm angegeben(vgl. Beispiel 10.9):

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

Page 37: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

402 Teil III: Moderne Konzepte: Objekt-Basierung und XML-Dokumente

<Technik-Buecher>

<xsl:for-each select="//buch/@kategorie">

<xsl:if test="@kategorie=’Technik’">

<Technik-Buch>

<xsl:value-of select="titel"/>

</Technik-Buch>

</xsl:if>

</xsl:for-each>

</Technik-Buecher>

</xsl:template>

</xsl:stylesheet>

Eine gleichwertige XQuery-Formulierung lautet wie folgt:

<Technik-Buecher>

{ for $b in doc("Medienhandel.xml")

//buch[@kategorie=’Technik’]

return

<Technik-Buch>

{$b/titel}

</Technik-Buch>

}

</Technik-Buecher>;

Es wird von der Wurzel des Eingabedokuments per Pfad-Ausdruck zu Buchtiteln

bzw. -kategorien navigiert; die Titel technischer Bucher werden ausgegeben. 2

In diesem Beispiel wurde lediglich selektiert; im nachsten wird ein Verbund durch-gefuhrt.

Beispiel 12.2

Wir wiederholen Beispiel 10.10 (mit den gleichen Voraussetzungen wie im letztenBeispiel): Gesucht sind die Titel von Buchern und DVDs, die in demselben Jahrerschienen sind. Das in Kapitel 10 bereits angegebene XSLT-Programm lautete:

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<ROOT>

<xsl:for-each select="//buch/jahr">

<xsl:variable name="buch" select="."/>

<xsl:for-each select="//dvd/jahr[jahr=$buch/jahr]">

<xsl:variable name="dvd" select="."/>

<BuchDVDGleichesJahr>

<Jahr><xsl:value-of

select="$buch/jahr"/></Jahr>

<Buch><xsl:value-of

select="$buch/titel"/></Buch>

<DVD><xsl:value-of

select="$dvd/titel"/></DVD>

</BuchDVDGleichesJahr>

</xsl:for-each>

</xsl:for-each>

Page 38: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

12 XQuery und SQL/XML 403

</ROOT>

</xsl:template>

</xsl:stylesheet>

Demgegenuber sieht ein entsprechendes XQuery-Programm wie folgt aus:

<ROOT>

for $b in doc("Medienhandel.xml")//buch,

$v in doc("Medienhandel.xml")//dvd

where $b/jahr = $v/jahr

return

<BuchDVDGleichesJahr>

<jahr> {$b/jahr} </jahr>

<buch> {$b/titel} </buch>

<dvd> {$v/titel} </dvd>

</BuchDVDGleichesJahr>

</ROOT>;

Durch die Moglichkeit, mehrere Variablen in einer for-Klausel zu vereinbaren, ergibt

sich eine klare Vereinfachung in der Formulierung der Anfrage. 2

In den nachsten beiden Beispielen werden vordefinierte Aggregat-Funktionen vonXQuery benutzt:

Beispiel 12.3

Gesucht ist die durchschnittliche Laufzeit von Filmen (wieder bezogen auf die inAbschnitt 10.7.1 angegebene DTD):

let $f in doc("Medienhandel.xml")//filme,

$a := avg($f/video/laufzeit),

$b := avg($f/dvd/laufzeit)

return

<durchschnittslaenge>

<video>

<laenge> {$a} </laenge>

</video>

<dvd>

<laenge> {$b} </laenge>

</dvd>

</durchschnittslaenge>

Die let-Klausel ermittelt zunachst alle Filme und sodann die durchschnittlichen

Laufzeiten aller Videos bzw. aller DVDs. 2

Beispiel 12.4

Zeige die Namen der Regisseure, die mehr als 20 Filme auf DVD gedreht haben.

<fleissigeRegisseure>

{

for $r in distinct(doc("Medienhandel.xml")//person)

let $a := doc("medienhandel.xml")

//filme/dvd[regisseur = $r]

Page 39: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

404 Teil III: Moderne Konzepte: Objekt-Basierung und XML-Dokumente

where count($a) > 20

return <name> $r </name>

}

</fleissigeRegisseure>

Hier wird ein Verbund uber Regisseure (als Personen bzw. als einer DVD zugeord-net) gebildet.

Wir bemerken an dieser Stelle, dass die Ausgabe hier (und auch bereits in einigenBeispielen oben) uber einen Constructor -Ausdruck gebildet wird, welcher lediglichdie Ergebnisse einbettet. Eine andere Form ist der Computed Constructor, der dieErzeugung eines benannten Elements ermoglicht, welches vom Ergebnis eines Aus-drucks abhangt. Damit lasst sich der gerade gezeigte Code auch wie folgt schreiben:

element fleissigeRegisseure

{

for $r in distinct(doc("Medienhandel.xml")//person)

let $a := doc("medienhandel.xml")

//filme/dvd[regisseur = $r]

where count($a) > 20

return

element name

{ $r }

}

Es ist hiermit sogar moglich, den Namen eines konstruierten Elements vom Ergebnis

eines Ausdrucks abhangig zu machen. 2

Das nachste Beispiel zeigt, dass man mit XQuery auch Berechnungen vornehmenkann:

Beispiel 12.5

Fur jede DVD, deren Laufzeit uber 120 Minuten liegt, zeige deren Titel und dieAnzahl der Minuten uber 120.

<resultat>

{ for $f in doc("Medienhandel.xml")//filme/dvd

where $f/laufzeit > 120

return

<langerFilm>

{$f/titel}

<differenz> {$f/laufzeit - 120} </differenz>

</langerFilm>

}

</resultat>

Das Beispiel benutzt in der return-Klausel einen arithmetischen Ausdruck. 2

Beispiel 12.6

Erzeuge eine Liste von Buchern, in deren Verlagsname der Teilstring”Verlag“ vor-

kommt (wie z.B. in”Oldenbourg-Verlag“):

Page 40: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Sachindex

1C-Schedule, siehe One-Copy-Schedule1SR, siehe Ein-Kopien-Serialisierbarkeit2PC, siehe Zwei-Phasen-Commitprotokoll2PL, siehe Zwei-Phasen-Sperrprotokoll3PC, siehe Drei-Phasen-Commitprotokoll

Abgeschlossenheit (einer Attributmenge),196, 256

Abhangigkeitdirekte, 254funktionale, 166Inklusions-, 183linksminimale, 179mehrwertige, 269rechtsminimale, 179transitive, 254triviale, 170Verbund-, 272

AbhangigkeitsmengeAquivalenz, 182Basis einer, 179endlich kontrollierbare, 183Hulle einer, 182minimale, 179redundante, 168, 178, 182Uberdeckung einer, 179

Ableitbarkeitbei funktionalen Abhangigkeiten, 170bei Inklusionsabhangigkeiten, 184bei mehrwertigen Abhangigkeiten, 271RAP-, 173

Ableitungsregel, 169, 271Additivitats-, 172Akkumulations-, 172Erweiterungs-, 170fur FDs, 171fur INDs, 183fur MVDs, 271Korrektheit, 170Projektivitats-, 172RAP-, 173Transitivitats-, 170

Vollstandigkeit, 170abstrakter Datentyp, 289Abstraktionsmechanismen, 59ACA, siehe kaskadierende AbortsAchse (in XPath), 354ACID-Prinzip, 643ACP, siehe Atomares Commit-ProtokollADT, siehe abstrakter DatentypAquivalenz von Anfrageausdrucken, 212After-Image, 702Aggregat-Funktion (in SQL), 132Aggregat-Funktion (in XQuery), 403Aggregation, 59

verallgemeinerte, 92Algebra

logische, 601physische, 601, 615

Algorithmus AQUIVALENZ, 175Algorithmus DEKOMPOSITION, 265Algorithmus FD-MEMBERSHIP, 175Algorithmus HULLE, 174Algorithmus KEY, 176Algorithmus LJP, 262Algorithmus SYNTHESE, 266Anforderungsanalyse, 54, 285Anfrage, 239

konjunktive, 209, 236konjunktive (im RDK), 237konjunktive (in Datalog), 236rekursive, 148

Anfrage-Optimierer, 622Anfrage-Optimierung, 212, 600

algebraische, 214, 597High-Level-, 601implementierungsabhangige, 598Low-Level, 601semantische, 601

Anfragebaum, 213, 602Anfrageserver, 441Anfragesprache, siehe DatenbankspracheAnfrageumkehrung, 763Anfrageverarbeitung, 449, 597

Page 41: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Index 809

parallele, 457verteilte, 449

Anomalie, 252, 500Anderungs-, 253Einfuge-, 252Losch-, 252Update-, 253

ANSI, 27, 39, 127ANSI/X3/SPARC-Architekturmodell, 27Anwendungs-Administrator, 29Anwendungssystem, 6Apriori-Algorithmus, 536Apriori-Prinzip, 535Architektur

2-Tier-, 4403-Tier-, 439

Armstrong-Axiome, 171Armstrong-Relation, 171Assertion (in SQL), 186Assoziation (in UML), 303Assoziationsklasse (in UML), 304Assoziationsregel, 532

verallgemeinerte, 539Atom

des RDK, 220des RTK, 215in Datalog, 233

Atomares Commit-Protokoll, 720Atomaritat, 643Attribut, 59, 62, 291

abnormales, 256einwertiges, 62in XML, 339inverses, 298mehrwertiges, 63Nichtschlussel-, 253normales, 256Prim-, 253Schlussel-, 65, 253zusammengesetztes, 63

Ausdruck (in XQuery), 398Ausdruckskraft

der RA, 211von SQL, 219

Ausfuhrungsmodell (fur Regeln), 193Ausfuhrungsplan, 598Ausreißer (beim Clustering), 530Auswertung eines RA-Ausdrucks, 209

effiziente, 210Auto-Tuning, 57Autonomie, 445, 447, 452, 734

Ausfuhrungs-, 734

Entwurfs-, 734Kommunikations-, 734

Autorisierung, 37Autoritat, 548

B-Baum, 570B*-Baum, 574Bag, siehe MultimengeBasic-TO-Protokoll, 689Basis (einer Abhangigkeitsmenge), 179Basisrelation, 201Baum, 570

balancierter, 571k-d-, 576sortierter Schlussel-, 571

Bayer-Baum, siehe B-BaumBCNF, siehe Boyce-Codd-NormalformBefore-Image, 661, 702Begin Of Transaction, 667Benchmark, 630

bereichs-spezifischer, 630TPC-C-, 632TPC-D-, 632Wisconsin-, 631

berechenbare Anfrage, 238Berechnungskomplexitat, 241

der RA, 211Bereichsanfrage, 759Beschreibungskomplexitat, 241Beziehung, siehe auch Relationship

IS-A-, 76zweistellige, 74

Bigtable, 458Binary Large Object, 111Bit-Map-Index, 490BLOB, siehe Binary Large ObjectBlock, 559, 565Boolesche Funktion, 195Boolescher Ausdruck, 194BOT, siehe Begin Of TransactionBoyce-Codd-Normalform, 254Breitensuche, 607Broker, 475BTO, siehe Basic-TO-ProtokollBucket, 584

C2PL-Protokoll, 677Cache-Koharenz, 455, 459CakePHP, 394CGI, siehe Common Gateway InterfaceCharacter Large Object, 111Check-Klausel (in SQL), 113, 186

Page 42: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

810 Index

Checkpoint, 704class, siehe KlasseCLI, 459Client, 438Client-Server-Architektur, 438CLOB, siehe Character Large Objectclosure, siehe HulleCluster-Bildung, 529Clustering, 58, 624CMCSR, 658, 663CMVSR, 658Codd-aquivalente Sprachen, 221Codd-vollstandige Sprache, 215Column Store, 764Commit-Regel, siehe Redo-RegelCommit-Serialisierbarkeit, 658Commitment-Ordering, 664, 744Common Gateway Interface, 379computable query, siehe berechenbare An-

frageConcurrency Control, 637

in replikativen Datenbanken, 732verteiltes, siehe verteiltes Protokoll

Concurrency Control-ProtokollBTO, 689C2PL, 677DAG-Locking, 684MGL, 679S2PL, 678SS2PL, 679STO, 690TL, 682TO, 6892PL, 672

Confidence (einer Assoziationsregel), 534conjunctive query, 209Constellation Schema, 490Cookie, 552Cover, siehe Abhangigkeitsmenge, Uber-

deckung einerCrash-Recovery, 697Crawler, 549CREATE TABLE-Kommando (in SQL), 113CSR, 654, 663Cube-Operator, 508, 513Cursor, 392, 441Cursor Stability (bei SQL), 688

DAL, siehe Data Administration Langua-ge

Data Abstraction, siehe Daten-AbstraktionData Administration Language, 29

Data Cleansing, 485, 552Data Cube, 503Data Definition Language, siehe Daten-

DefinitionsspracheData Dictionary, 35, 110Data Manipulation Language, siehe Daten-

ManipulationsspracheData Mining, 524Data Provenance, 763Data Stream, siehe DatenstromData Stream Management System, 761Data Warehouse, 480Data-Manager, 38, 558, 669Database Extender, 316Datalog, 232Datalog-Programm, 233Dateisystem, 8Daten

benutzerdefinierter (in SQL), 312mehrdimensionale, 486semistrukturierte, 337

Daten-Abstraktion, 289Daten-Definitionssprache, 29Daten-Manipulationssprache, 29Daten-Operationen, 647

in Konflikt, siehe KonfliktDaten-Reduktion, 548Daten-Replikation, 728Daten-Sampling, 553Datenabhangigkeit, 99, siehe auch Abhangig-

keitinterrelationale, 102

Exklusions-, 104Inklusions-, 102

intrarelationale, 99Schlussel-, 100

Datenbank, 10, 25aktive, 192deduktive, 227extensionale, 229intensionale, 229konsistente, 104kuratierte, 765probabilistische, 755punktweise konsistente, 102raumliche, 757relationale, 101replikative, siehe replikative Daten-

banktemporale, 752verteilte, 444

Datenbank-Administrator, 29, 31

Page 43: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Index 811

Datenbank-AnfrageBaumdarstellung einer, 213generische, 238in SQL, 130Optimierung einer, 212

algebraische, 214polynomielle, 240

Datenbank-Entwurfsprozess , 52Datenbankanwendungs-Lebenszyklus, 48Datenbanken

mobile, 766Datenbankentwurf, 45, 452

verteilter, 448Datenbankformat, 102Datenbankmanagement-System

verteiltes, 444Datenbankmanagementsystem, 10Datenbankobjekt

Granularitat eines, 679Datenbankschema, 27, 110

externes, 28internes, 28konzeptionelles, 28relationales, 104

DatenbankspracheAquivalenz, 215Codd-Vollstandigkeit, 215deskriptive, 214domain-unabhangige, 217prozedurale, 214sichere, 210vollstandige, 239

Datenbanksystem, 10aktives, 192heterogenes verteiltes, 447, 451homogen verteiltes, 447objekt-basiertes, 442objekt-relationales, 20, 300paralleles, 454relationales, 15, 440verteiltes, 444, 446

Datenbaum, 682Datenfusion, 469Datenintegration, 461Datenlager, 480Datenmodell, 13, 26, 40, 49

hierarchisches, 13konzeptionelles, 26Netzwerk-, 13objekt-orientiertes, 293physisches, 27relationales, 95

semantisches, 283Datenmodellierung, 285

statische, 55, 282Datenobjekt

Kopie eines, 700Datenqualitat, 162, 485Datenserver, 444Datenstrom, 760Datenstruktur

eindimensionale, 575mehrdimensionale, 575

Datentypskalarer, 121

Datenunabhangigkeit, 26, 46, 450logische, 26physische, 15, 26, 622

Datenwurfel, 503DB2 CLI, 386DBA, siehe Datenbank-Administratordblp, 363DBMS, siehe DatenbankmanagementsystemDBS, siehe DatenbanksystemDCE, siehe Distributed Computing Envi-

ronmentDDL, siehe Data Definition LanguageDeadlock, 675

globaler, 737verteilter, 717, 718

Deadlock-Victim, 676Debit-Credit-Transaktion, 631Decision Support System, 480Declustering, 624deduktive Datenbank, 227Deferred Updating, 700Dekomposition, 351Denormalisierung, 58, 623, 629Dereferenzierung, 312deskriptive Sprache, 214Dialogsprache, 29DIC, siehe Dynamic Itemset CountingDifferenzenrelation, 188Differenzoperation, 204Dimension, 486Dimension Table, 489Dimensionstabelle, 489Direct Access File, 8Dirty Read-Problem, 641, 659, 688, 721disjunktive Normalform (einer Booleschen

Funktion), 195Disk-Array, 560Distinct-Typ, 312Distributed Computing Environment, 473

Page 44: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

812 Index

Distributed Object Management, 474Divisions-Operation, 249Divisions-Rest-Verfahren, 581DM, siehe Data-ManagerDML, siehe Data Manipulation LanguageDNF, siehe disjunktive NormalformDocument Object Model, 357Document Type Definition, 345Dokumentengraph, 588Domain, siehe WertebereichDomain-Bedingung (in SQL), 113Domain-Unabhangigkeit (einer Anfragespra-

che), 217Dot-Notation, 311DRDA, 459, 473Drei-Ebenen-Modell, 45Drei-Phasen-Commitprotokoll, 726

Entscheidungsphase, 727Entscheidungsvorbereitungsphase, 727Wahlphase, 727

dreiwertige Logik, 148Drill-Down, 487, 506dritte Normalform (3NF), 254DSMS, siehe Data Stream Management

SystemDTD, siehe Document Type DefinitionDTL, siehe Log, verteilterDurchschnittsoperation, 204Dynamic Itemset Counting, 539Dynamisches SQL, 386

ECA-Regel, 192, siehe Event-Condition-Action-Regel, 465

ECO, siehe erweitertes Commitment Or-dering

EDB, siehe Datenbank, extensionaleEdge-Chasing-Algorithmus, 719Ein-Kopien-Serialisierbarkeit, 731Elog, 244End Of Transaction, 667Enthaltensein von Anfragen, 237Entity, 61, 68Entity-Deklaration, 65Entity-Format, 62Entity-Integritat, 99Entity-Relationship-Diagramm, 70Entity-Relationship-Modell, 46, 55, 61, 80,

282Entity-Set, 61, 68Entity-Typ, 65

schwacher, 92Entscheidungsbaum, 528

Entscheidungsunterstutzung, 480Entsperroperation, 672Entwurf

konzeptioneller, 55logischer, 57physischer, 57statischer, 55, 282

EOT, siehe End Of TransactionEpisoden (-Mining), 546Equijoin, 138ER-Modell, siehe Entity-Relationship-ModellEreignis-Bedingung-Aktionen-Regel, 188erste Normalform (1NF), 101Erweiterbarkeit, 445erweitertes Commitment Ordering, 748ETL-Prozess, 480, 484Exklusionsabhangigkeit, 104, 109Exportschema, 453expressive power, 211Extensible Markup Language, 21externe Ebene, 28externes Schema, 45, 46Extremalpunkt (eines Relationenschemas),

178

Fact Table, 489Fakt, logisches, 229Faktentabelle, 489FD, siehe functional dependencyFehlertoleranz, 697Fetch-Operation, 701Feuern, 192

direktes, 193gleichzeitiges, 193verzogertes, 193

File, 564, 565index-sequentieller, 568sequentieller, 565

File-Scan, 617Fileserver, 444Filesystem, 8, 564Filter-Operation, 202Fixpunkt, 240Flush-Operation, 701FLWOR-Ausdruck (in XQuery), 400forcierter Konflikt, 743Fragment, 451Fragmentierung, 449

horizontale, 625hybride, 625verlustfreie, 625vertikale, 625

Page 45: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Index 813

Fragmentierungstransparenz, 451Freigabe-Ordnung, 664, 744Fremdschlussel, 104Frequent-Pattern Growth, 541Frequent-Pattern Tree, 541Frequenz (einer Episode), 547funfte Normalform (5NF), 273functional dependency, siehe Abhangigkeit,

funktionaleFunktion (in XQuery), 407funktionale Abhangigkeit, 166, 349Funktionsarchitektur, 437Funktionsmodell, 49Funktionsmodellierung, 285

Galaxy-Schema, 490Gaming, 766Garbage Collection, 566, 703Garbage-Collection-Regel, 703GAV, siehe Global-As-View-AnsatzGCSR, siehe globale Konflikt-SerialisierbarkeitGeneralisierung, 59generische Anfrage, 239geographisches Informationssystem, 759geordnete Datenbank, 241Geschaftsprozess, 287Geschaftsprozessmodellierung, 287GIS, siehe geographisches Informations-

systemGlobal-As-View-Ansatz, 467globale Konflikt-Serialisierbarkeit, 740globaler Schedule, 737globaler TM, 735Google, 549Granularitat, 164, 679Greedy-Heuristik, 607Grouping Sets, 516grouping-Funktion, 512, 514Growing-Phase (beim 2PL), 675Grundatom, 234Grundfaktum, 234Grundsatze ordnungsmaßiger Modellierung,

51Gruppierung, 510Gruppierungsausdruck, 511

haufige Menge, 536Handshake, 690Hash-Funktion, 581

statische, 584Hash-Join, 609Hash-Verfahren

dynamisches, 584offenes, 582

heterogene Verteilung, 447Hibernate, 394Hierarchisierung, 539homogene Verteilung, 447Horn-Klausel, 228, 233Host-Language, siehe WirtsspracheHot Spot, 692HTML, 338, 360Hub, 548Hulle

einer Abhangigkeitsmenge, 169, 182einer Attributmenge, 173

IBM DB2, 418, 584IDB, siehe Datenbank, intensionaleImpedance Mismatch, 292Implikation

allgemeine, 182bei funktionalen Abhangigkeiten, 168,

182bei mehrwertigen Abhangigkeiten, 271endliche, 183unbeschrankte, 183

In-Place-Updating, 700Inclusion Dependency, siehe Inklusionsab-

hangigkeitInclusion Dependency Normal Form, 277Inconsistent Read, 642IND, siehe Inclusion DependencyIndex, 629

clustered, 629dichter, 567dunner, 567mehrstufiger, 569Primar-, 568Sekundar-, 568

Index-Partitionierung, 624Indexed-Sequential Access Method, 568Information Hiding, 289Information Retrieval, 551Informationssystem, 6

geographisches, 759Informationssystem-Lebenszyklus, 47Ingres, 243Inheritance, siehe VererbungInklusionsabhangigkeit, 102, 113

schlusselbasierte, 103unare, 103zyklische, 187

Instance, 101

Page 46: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

814 Index

Instanz-Attribut, 297Instanz-Variable, 291Integration, 462

In-Advance-, 462materialisierte, 463On-Demand-, 462virtuelle, 462

IntegritatEntity-, 99referentielle, 99

Integritatsbedingung, 37, 112, 162, 232DEFERRED-Modus einer, 187dynamische, 163IMMEDIATE-Modus einer, 187statische, 162

Domain-, 163, 165Not-Null-, 163referentielle, 164Schlussel-, 164

transitionale, 162Uberwachung einer, 188

interne Ebene, 27internes Schema, 45Interoperabilitat, 451, 473, 733Intratransaktions-Parallelismus, 713invertierte Liste, 568IS-A-Beziehung, 76ISAM, siehe Indexed-Sequential Access Me-

thodIsolation, 643Itemset, 533Iterator, 617

in SQLJ, 393

J2EE, 394Java Database Connectivity, 388JavaScript, 378JD, siehe join dependencyJDBC, siehe Java Database Connectivityjoin dependency, siehe Abhangigkeit, Ver-

bund-Join-Implementierung

Hash-, 609Nested-Loop-, 608Sort-Merge-, 608

K-Nachster-Nachbar-Algorithmus, 529kaskadierende Aborts, 661

Vermeidung, 661Katalog, 110Key, siehe SchlusselKlasse, 289, 291

in UML, 303Klassenattribut, 297Klassendiagramm (in UML), 301Klassenname, 296Klassifikation, 59, 527

Distanz-basierte, 528Partitionierungs-basierte, 529

Klausel (in Datalog), 233Knowledge Discovery, 525Kollision (beim Hashen), 582Kommutativitat (von Transaktions-Schritten)

zustandsabhangige, 693zustandsunabhangige, 691

Komponentenschema, 453Konflikt

direkter, 739forcierter, 743indirekter, 739zwischen Operationen, 652, 691zwischen Sperren, 671

Konflikt-Aquivalenz, 653, 713, 732, 740Konflikt-Serialisierbarkeit, 654, 693, 740

globale, 740Konfliktgraph, 654–656, 715, 740, 748Konfliktrelation, 653Konfluenz, 192Konkatenations-Operation, 137Konsistenz (einer Transaktion), 643Konsolidierung (von Daten), 482Kontextknoten (bei XPath), 354konzeptionelle Ebene, 28konzeptioneller Entwurf, 55, 81konzeptionelles Schema, 45Koordinator, 721Kopf einer Regel, 234Korrektheit eines Schemas, 50, 87Korrektheitskriterium (fur Schedules), 647,

740Korrelationsvariable, 323Kostenfunktion, 606

Large Object, 111Late Binding, siehe spates BindenLateral-Tabelle, 323LAV, siehe Local-As-View-AnsatzLDBS, siehe lokales DatenbanksystemLeast Recently Used-Strategie, 563Legacy-System, 461Lesbarkeit eines Schemas, 50, 88Lese-Quorum, 733Lesesperre, 670Level of Isolation, 687

Page 47: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Index 815

Liest-Von-Relation, 651, 660, 730Lift, 544Literal (in Datalog), 233Lixto, 244, 477LOB, siehe Large ObjectLocal-As-View-Ansatz, 467Lock, siehe SperreLog, 35, 38, 702

logischer, 702physikalischer, 702verteilter, 721, 725

Logbuch, 708Logging, 702Logik-Programmierung, 226logischer Entwurf, 57lokaler Schedule, 737lokaler TM, 735lokales Datenbanksystem, 734lossless join, siehe Verbund, verlustloserlossy join, siehe Verbund, verlustbehafte-

terLost Update-Problem, 641LRU, siehe Least Recently Used-Strategie

Maßalgebraisches, 488distributives, 487

MDBS, siehe Multidatenbanksystem, sie-he Multidatenbanksystem

Measure, 486Mediafehler, 698Mediator, 464mehrdimensionale Daten, 486Mehrfachvererbung, 291Membership-Algorithmus (fur FDs), 175Membership-Problem

allgemeines, 182fur funktionale Abhangigkeiten, 169

Mengehaufige, 535

MengenoperationDifferenz, 204Durchschnitt, 204Vereinigung, 204

Message, siehe NachrichtMessage Passing, 291Message-Name, 299Meta-SQL, 364Metadaten, 35, 466Method, siehe MethodeMethode, 289, 299Methoden (in SQL), 325

MGL-Protokoll, siehe Multiple Granula-rity Locking

Middleware, 439, 473Migration, 49Minimalitat eines Schemas, 50Model Management, 766Modifizierbarkeit eines Schemas, 50MOLAP, siehe Multidimensional OLAPMost Recently Used-Strategie, 564Multidatenbanksystem, 452, 734, 737

Modell eines, 735Multidimensional OLAP, 489Multimenge, 131Multiple Granularity Locking, 679Multiple Inheritance, siehe Mehrfachver-

erbungmultivalued dependency, siehe Abhangig-

keit, mehrwertigeMutator-Methode, 315MVD, siehe multivalued dependencyMySQL, 380

Nachster-Nachbar-Anfrage, 759Nachricht, 289naturlicher Verbund, 93, 135, 205natural join, siehe naturlicher Verbund,

siehe naturlicher VerbundNavigation, 14, 322Nested-Loop-Join, 608Netzwerk-Partitionierung, 732Netzwerktransparenz, 450Nichtschlussel-Attribut, 253Normalform, 277

Boyce-Codd-, 254dritte, 254erste, 101funfte, 273fur Relationenschemata, 253Project-Join-, 273vierte, 273zweite, 254

Normalisierung, 57, 251, 259, 488, 629NP-vollstandiges Problem, 243, 258, 266,

276NSA, siehe Nichtschlussel-AttributNullwert, 98, 112, 140, 147

Oberklasse, 297Object, siehe ObjektObject Management Group, 473Object Sharing, 291Objekt, 283, 289, 290, 442

Page 48: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

816 Index

Objekt-Identitat, 289objekt-orientiertes Datenmodell, 293Objekt-Orientierung, 290objekt-relationales Datenbanksystem, 300Objekt-Server-Architektur, 442Objekt-Struktur, 291Objekt-Verhalten, 291Observer-Methode, 315ODBC, 459, 473OLAP, siehe On-Line Analytical Proces-

singOMG, siehe Object Management GroupOn-Line Analytical Processing, 503one fact in one place-Prinzip, 266One-Copy-Schedule, 728Ontologie, 466Open Software Foundation, 473OSF, siehe Open Software FoundationOutlier, 530Overloading, siehe UberladungOverriding, siehe Uberschreiben

Page, siehe SeitePage Fault, 559Page Frame, siehe SeitenrahmenPage Scraping, 477Page-Server-Architektur, 442PageRank, 549Parallelverarbeitung, 454Partial Match-Query, 575Partial Range-Query, 575Partitionierung, 448, 626, 627Path Expression, 352Path-Pushing-Algorithmus, 719Pattern (in XSLT), 356PCA, siehe Prafix-Commit-AbgeschlossenheitPersistenz, 643Persistenzmechanismus, 394Pfad-Ausdruck, 352

regularer, 589Pfadausdruck, 322Phantom-Deadlock, 719PHP, 379PJ/NF, siehe Project-Join-NormalformPL/SQL, 386Polymorphismus, 290Portabilitat, 439Postorder, 590Prafix-Commit-Abgeschlossenheit, 658Pradikat, logisches, 226Precision, 551Preorder, 590

Primarindex, 568Primarschlussel, 65, 113Project-Join-Normalform, 273Projektions-Operation, 134, 202Projektions-Operation (fur Schedules), 657,

737Prolog, 226Prototyping, 58prozedurale Sprache, 214Prozessmodell, 49PSPACE, 241PTIME, 240Puffer-Directory, 701Puffer-Manager, 558, 563, 669, 700

QEP, siehe Query Execution PlanQEP-Erzeugung, 606Quadtree, 577Quantor (in XQuery), 406Query Containment, 237Query Execution Plan, 598query tree, siehe AnfragebaumQuery-Prozessor, 37, 615Quorum-Consensus-Verfahren, 733

RA, siehe Relationenalgebraraumliche Daten, 757RAID, siehe Redundant Array of Inex-

pensive DisksRaster-Modell, 758RC, siehe RucksetzbarkeitRDK, siehe Relationen-DomainkalkulRead Lock, siehe LesesperreRead-Write-Modell, 645Recall, 551Rechnerknoten

Autonomie, 734Record-Identifier, 586, 614Recovery, 637Recovery-Kosten, 676Recovery-Manager, 38, 669, 700, 703Recovery-Manager-Klassifikation, 703Recovery-Protokoll, 698

Entwurf eines, 705verteiltes, 720

Redo-Operation, 698Redo-Regel, 703, 721Redundant Array of Inexpensive Disks, 560referentielle Integritat, 99Referenztypkonstruktor, 312Reflektion, 245Regelsystem

Page 49: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Index 817

korrektes, 170vollstandiges, 170

Rekursion, 230Relation, 95, 97, 293

abgeleitete, 201, 230Basis-, 201bitemporale, 755transitive Hulle einer, 211typisierte, 300Zerlegung einer, 207

Relational OLAP, 489relationale Datenbank, 101relationale Maschine, 242Relationen-Domainkalkul, 215, 220

Atom des, 220Ausdruck des, 220Formel des, 220sicherer, 221

Relationen-Tupelkalkul, 215Atom des, 215Ausdruck des, 216Formel des, 215mit Bereichsdeklarationen, 219sicherer, 218

Relationenalgebra, 135, 208Abgeschlossenheit der, 210Ausdruck der, 208

Aquivalenz von, 212Auswertung eines, 209

Ausdruckskraft der, 211Berechnungskomplexitat der, 211Effizienz der, 210Semantik der, 209Sicherheit der, 218Syntax der, 208

Relationenformat, 97Relationenmodell, 95

flaches, 105, 294geschachteltes, 294

Relationenschema, 101Relationship, 69, 70

Grad eines, 72Komplexitat eines, 72many-many-, 74many-one-, 74one to many-, 74one to one-, 74Stelligkeit eines, 72

Relationship-Deklaration, 69Relationship-Set, 70Relationship-Typ, 70Replikation, 445, 447, 623

partielle, 448, 626vollstandige, 448, 626

Replikationstransparenz, 450replikative Datenbank

Concurrency Control, 732Repository, 35, 466Requirements Analysis, siehe Anforderungs-

analyseRestart-Operation, 700, 709Reverse Engineering, 125, 553RID, siehe Record -IdentifierRigorositat, 665, 743ROLAP, siehe Relational OLAPRoll-Up, 487, 504Roll-Up-Anfrage, 510Row Store, 764RTK, siehe Relationen-TupelkalkulRTKBD, siehe Relationen-Tupelkalkul mit

BereichsdeklarationenRuby on Rails, 394Rucksetzbarkeit (eines Schedules), 660, 729

ACA, 661RC, 660ST, 662

Rucksetzungsmechanismus, siehe Recovery-Protokoll

Rumpf einer Regel, 234RW-Modell, siehe Read-Write-Modell

S2PL-Protokoll, 678Sampling, 540Scan (eines Files), 617Schattenkopien, 700Schedule, 647, 648

freigabe-geordneterweitert, 748

globaler, 737Input-, 668korrekter, 663Korrektheit, 715lokaler, 737Output-, 668Projektion eines, 657replikativer, 729

Konflikt-Graph, 748vollstandiger, 729

serieller, 648verteilter, siehe verteilter Schedulevollstandiger, 647, 648

Schedule-EigenschaftCommit-Abgeschlossenheit, 657Monotonie, 664

Page 50: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

818 Index

Prafix-Abgeschlossenheit, 657Scheduler, 668

aggressiver, 669f-sicherer, 670konservativer, 670nicht-sperrender, 670optimistischer, 742pessimistischer, 742s-sicherer, 670sicherer, 670sperrender, 670

Schema Merging, 56Schema-Modifikation, 50Schema-Modifikation (in SQL), 115Schema-Tableau, 262Schema-Transformation, 51Schemagraph, 588Schichtenmodell eines DBMS, 33Schlussel, 65, 100

eindeutiger, 178einfacher, 275Fremd-, 104Primar-, 65Sekundar-, 65

Schlusselabhangigkeit, 100Schlusselattribut, 65, 253Schlusselkandidat, 65, 113Schneeflockenschema, 490Schnittstelle

DBMS-interne, 34Schreib-Quorum, 733Schreibsperre, 670Scripting

client-seitig, 378Server-seitiges, 378

SET TRANSACTION-Kommando (in SQL), 687Seite, 559Seitenersetzungsstrategie, 559Seitenrahmen, 559Seitenserver-Architektur, 442Sekundarindex, 568Sekundarschlussel, 65Selbstwartbarkeit, 501SELECT-Kommando, 130, 131Selektionsoperation, 134, 202Selektivitat, 612Self-Maintainability, siehe Selbstwartbar-

keitsemantisches Datenmodell, 283

Objekt im, 283Semijoin, 249, 615semistrukturierte Daten, 337

SEQUEL, 127Serialisationsgraphen-Tester, 694Serialisierbarkeit

Commit-, 658CMCSR, 658, 663CMVSR, 658

Commitment Orderingerweitertes, 748

Ein-Kopien-, 731Konflikt-, 654, 714

globale, 740View-, 652

Serialisierbarkeits-Theorem, 655Server, 438Sessionizing, 552SGML, 337Shared-Disk-Architektur, 455Shared-Memory-Architektur, 455Shared-Nothing-Architektur, 456Shrinking-Phase (beim 2PL), 675Shuffle-Produkt, 648Sicherheit (von Formeln), 218Sicht, 46

materialisierte, 244typisierte, 316

Sichtenwartung, 244Signatur (einer Methode), 299SilkRoute, 426Simula, 288Snapshot Isolation, 695Snowflake Schema, 490SOAP, 475Sondieren, 583

lineares, 583quadratisches, 583

Sort-Merge-Join, 608spates Binden, 290Speicher

instabiler, 697stabiler, 698

Sperre, 670exklusive, 673intensionale, 680Kompatibilitat von, 673Konversion einer, 675, 682nicht exklusive, 673

Sperroperation, 672Sperrprotokoll, 672, 737

MGL-, 679Tree-, 682zweiphasiges, 672

Sperrtabelle, 671

Page 51: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Index 819

Spezialisierung, 59, 76partielle, disjunkte, 79partielle, nicht disjunkte, 78totale, disjunkte, 78totale, nicht disjunkte, 79

SphinX-Indexierung, 588SPJ-Ausdruck, 208SQL, 127, 440

Temporales, 755SQL-Methode, 325SQL-Routine, 325SQL-Typkonstruktoren, 311SQL/CLI, 386SQL/PSM, 386SQL/XML, 409SQL1, 127SQL89, 127SQL:1999, 128, 310SQL:2003, 128, 310SQLJ, 392SRDK, siehe Relationen-Domainkalkul, si-

chererSRTK, siehe Relationen-Tupelkalkul, si-

chererSS2PL-Protokoll, 679ST, siehe StriktheitStandard Query Language, siehe SQLStar Schema, 489Statisches SQL, 386Step (in XPath), 353Sternschema, 489STO, siehe striktes TO-ProtokollStorage Group, 585Stored Procedure, 440Stratifikation eines Datalog-Programms, 235Streuen, 583striktes TO-Protokoll, 690Striktheit (eines Schedules), 662Striping, 560, 622, 624Stylesheet, 356Subclass, siehe UnterklasseSubcube, 504Subquery, 146Subschema, 28Subtabelle, 316Subtransaktion, 736Subtypenbeziehung, 297Such-Strategie (fur QEPs), 606

Breiten-, 607Greedy-, 607Tiefen-, 607

Supergruppen, 508

Superkey, 65, 126Support, 533Support (einer Folge), 545Synchronisation (von Transaktionen), 639System/R, 127, 705Systemfehler, 697

Tabelletypisierte, 301, 316

Tabellen-Clustering, 630Tabellen-Definition (in SQL), 111Tableau, 183Tablespace, 584Template-Regel (in XSLT), 356Terminierungs-Operation, 647

abort, 647commit, 647

Theta-Verbund, 135Tiefensuche, 607Timeout, 675, 721Timestamp, 689Timestamp-Ordering-Protokoll, 689TL-Protokoll, siehe Tree LockingTO-Protokoll, siehe Timestamp-Ordering-

ProtokollTPC, siehe Transaction Processing Per-

formanz CouncilTPC-C-Benchmark, 632TPC-D-Benchmark, 632TPS, siehe Transaction Per SecondTPS-Rate, 631Trader, 475Transaction Per Second, 631Transaction Processing Performanz Coun-

cil, 631Transaktion, 38, 533, 638, 644

abgebrochene, 647, 649, 668aktive, 649, 668flache, 664freigabe-verzogert, 744freigegebene, 647, 649, 668geschachtelte, 664, 693globale, 736initialisierende, 650Interpretation einer, 645lokale, 736verteilte, 449, siehe verteilte Trans-

aktionverzogerte, 668

Transaktions-Manager, 38, 667Transaktionsfehler, 697Transaktionskonzept, 642

Page 52: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

820 Index

Transaktionsmanagerglobaler, 735lokaler, 735

Transaktionsserver, 441Transaktionsverarbeitung

Aufteilung, 667dynamische, 647globale, 739

Transaktionszeit, 753transitive Hulle, 149, 211Transparenz, 450, 451Tree-Locking, 682Trigger, 188, 465TSQL2, 755Tuning, 57, 626Tuning-Prinzip, 627Tupel, 97

partielles, 98totales, 97

Typ-Konstruktor, 294

UDDI, 475Uberladung, 290Uberlaufbereich, 582Uberschreiben, 290Ubersetzer (eines View-Updates), 224Ubersetzung (eines View-Updates), 223Umbenennungs-Operation, 204UML, 301Undo-Operation, 698Undo-Regel, 703unentscheidbares Problem, 228Unified Modeling Language, 301Universal Coordinated Time, 754Universalrelation, 251Universalrelationen-Schema-Annahme, 252Universum, 252Unlock-Operation, 671Unrepeatable Read, 688Unterklasse, 289, 297Unternehmens-Administrator, 29Update, 29Update-Anomalie, 253Update-Operation

in SQL, 128View-, 223

Use Case (in UML), 306UTC, siehe Universal Coordinated Time

Variable, 227Verbund

außerer, 139

Equi-, 138innerer, 139naturlicher, 135, 136, 205Semi-, 249Theta-, 138verlustbehafteter, 207, 261verlustloser, 207

Verbund-Operationen in SQLcross join, 138full outer join, 140left outer join, 139natural join, 136outer join, 139right outer join, 140

Vereinigungsoperation, 204Vererbung, 60, 76, 289Vererbungshierarchie, 80Verklemmung, 675verteilte Datenbank, 728verteilte Objektverwaltung, 474verteilte Transaktion, 712verteilter Schedule, 713

Konflikt-Aquivalenz, 713Konflikt-Graph, 715Konflikt-Serialisierbarkeit, 714Korrektheit, 715Prafix, 713serieller, 714vollstandiger, 713

verteiltes DBMSheterogenes, 733

verteiltes DBSSystemfehler, 720

Kommunikations-Fehler, 720Site-Fehler, 720unzustellbare Nachrichten, 720

verteiltes Protokoll, 7152PC, 7222PL, 7163PC, 726SS2PL, 717TO, 716

verteiltes System, 444vierte Normalform (4NF), 273View (im Relationenmodell), 210View (in SQL), 114View Integration, 55View Modeling, 55View-Aquivalenz, 651, 730View-Komplement, 243, 517View-Serialisierbarkeit, 652View-Update, 223

Page 53: Datenmodelle, Datenbanksprachen und … · 2018-03-22 · Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Bearbeitet von Gottfried Vossen erweitert, überarbeitet 2000.

Index 821

Ubersetzer eines, 224Ubersetzung eines, 223

Vollstandigkeitnach Bancilhon und Paredaens, 238nach Chandra und Harel, 238nach Codd, 215

Vollstandigkeit eines Schemas, 49VSR, siehe View-Serialisierbarkeit

W3C, 337W3C Recommendation, 398Wait-For-Graph, siehe Warte-GraphWarehouse-Administrator, 484Warenkorbanalyse, 532Warte-Graph, 676, 718–719Web Service, 475Wertebereich, 62WFG, siehe Warte-GraphWirtssprache, 29Wisconsin-Benchmark, 631Wrapper, 464Write Lock, siehe SchreibsperreWrite-Ahead-Log-Protokoll, siehe Undo-

RegelWrite-All-Ansatz, 732Write-All-Available-Ansatz, 732WSDL, 475Wurzelklasse, 298

XML, 21, 338Attribut, 339Elelement, 338Namespace, 342Tag, 338

XML Schema, 348XML-Dokument, 338

gultiges, 346wohlgeformtes, 338

XML-Normalform, 351XMLAGG, 413XMLATTRIBUTES, 413XMLCONCAT, 413XMLELEMENT, 413XMLEXISTS, 416XMLFOREST, 413XMLTABLE, 416XNF, 351XPath, 352XQuery, 397XQUERY-Funktion, 416XQuery-Syntax, 399XSD, 348

XSL, 356XSL-FO, 356XSLT, 356XSLT-Template, 357

Zeitbenutzer-definierte, 754gultige, 753Transaktions-, 753

Zeitstempel, 689Zerlegung, 207, 262

unabhangige, 262verlustlose, 207, 262

Zugriffsrecht (in SQL), 1152PL, siehe Zwei-Phasen-Sperrprotokoll2PL-Protokoll, 6842PL-Scheduler, siehe Zwei-Phasen Sperr-

protokollZwei-Phasen-Commitprotokoll, 722

Entscheidungsphase, 723Terminierungsprotokoll, 725Unsicherheitsphase, 723Wahlphase, 722

Zwei-Phasen-Sperrprotokoll, 672dynamisches, 678Growing-Phase, 675konservatives, 677Shrinking-Phase, 675strenges, 678

starkes, 679zweite Normalform (2NF), 254