Datenbanken (eBook)
292 Seiten
Spektrum Akademischer Verlag
978-3-8274-1488-5 (ISBN)
In überschaubaren Kapiteln lernen Sie alle wichtigen Konzepte zu den klassischen Datenbankthemen Anfragesprachen, Integrität, Datenbankentwurf, Speichertechniken, Anfragebearbeitung, Transaktionen und Sicherheit kennen. Die Datenbanksprache SQL wird insbesondere ausführlich behandelt. Neben den im Standard SQL-92 definierten Konzepten werden auch wesentliche, in den Standards SQL:1999 und SQL:2003 dokumentierte Weiterentwicklungen dargestellt. Zahlreiche Beispiele machen Sie mit den neu gelernten Begriffen und Sachverhalten vertraut.
Das Speichern, Erzeugen und Verarbeiten von XML-Dokumenten wird zunehmend relevant für Datenbanken. Deshalb ist ein Schwerpunkt des Buchs die Speicherung von XML-Dokumenten in relationalen Datenbanken, das Publizieren von XML-Dokumenten aus relationalen Datenbanken gemäß dem SQL/XML-Standard sowie XPath und XQuery, die vom W3C standardisierten Anfragesprachen für XML. Eine Vielzahl von Übungen (mit Lösungen auf einer begleitenden Webseite) erleichtert Ihnen die Wiederholung und Vertiefung des Lernstoffs.
Der Autor
Prof. Dr. Georg Lausen lehrt und forscht an der Albert-Ludwigs-Universität Freiburg. Er ist Leiter der Arbeitsgruppe Datenbanken und Informationssysteme. Seine aktuellen Forschungsthemen betreffen die Bereiche Informationsintegration, elektronische Kataloge, Metasuchmaschinen, Recommender-Systeme und die Theorie semistrukturierter Daten.
Vorwort 6
Inhaltsverzeichnis 8
1 Einführung 12
1.1 Grundbegriffe 12
1.2 Datenmodelle 20
1.3 Das relationale Datenmodell 23
2 Grundlagen von Anfragesprachen 28
2.1 Relationenalgebra 28
2.2 Relationenkalkül 36
2.3 Zusammenfassung 41
3 Der SQL-Standard 44
3.1 Überblick 44
3.2 Einfache Anfragen 47
3.3 Basis-Datentypen 52
3.4 Nullwerte 54
3.5 Aggregierungsfunktionen 54
3.6 Gruppierungen 55
3.7 Mengenoperatoren 58
3.8 Geschachtelte Anfragen 59
3.9 Struktur der Syntax 63
3.10 Konstruierte Datentypen 67
3.11 OLAP: ROLLUP und CUBE 69
3.12 WITH-Klausel und Rekursion 71
3.13 Anfragen über Bäumen 78
3.14 Einfügen, Löschen und Ändern 81
3.15 Sichten 85
3.16 SQL und Programmiersprachen 89
3.17 Integrität und Trigger 94
3.18 Zugriffskontrolle 106
3.19 Arbeiten mit Schema-Definitionen 110
3.20 Zusammenfassung 112
4 Konzeptueller Datenbankentwurf 116
4.1 Datenbankentwurf 116
4.2 Entitiy-Relationship-Modell 117
4.3 Unified Modeling Language 130
4.4 Zusammenfassung 133
5 Datenaustausch mit XML 136
5.1 Extensible Markup Language (XML) 136
5.2 Definition von Dokumenttypen (DTD) 141
5.3 XPath 145
5.4 XML-Schema 153
5.5 XML Query 159
5.6 Zusammenfassung 170
6 SQL und XML 174
6.1 SQL/XML 174
6.2 Speichern von XML 181
6.3 XPath und SQL 184
6.4 Zusammenfassung 189
7 Formaler Datenbankentwurf 192
7.1 Motivation 192
7.2 Funktionale Abhängigkeiten 194
7.3 Verlustfreie und abhängigkeitsbewahrende Zerlegungen 201
7.4 Normalformen 204
7.5 Algorithmen zur Normalisierung 206
7.6 Weitere Abhängigkeiten und Normalformen 209
7.7 Zusammenfassung 211
8 Physischer Datenbankentwurf 214
8.1 Grundlagen 214
8.2 Dateiorganisationsformen und Indexstrukturen 217
8.3 Baum-Indexstrukturen 221
8.4 Hash-Indexstrukturen 224
8.5 Zusammenfassung 225
9 Auswertung von Anfrageoperatoren 228
9.1 Selektion 228
9.2 Projektion 230
9.3 Verbund 230
9.4 Mengenoperatoren und Aggregierung 233
9.5 Optimierung 234
9.6 XPath-Anfragen 238
9.7 Zusammenfassung 245
10 Transaktionsverwaltung 248
10.1 Grundlagen 248
10.2 Mehrbenutzerkontrolle 250
10.3 Fehlerbehandlung 265
10.4 Transaktionsmodelle 269
10.5 Verteilte Transaktionen 271
10.6 Zusammenfassung 279
Literaturverzeichnis 282
Index 286
9 Auswertung von Anfrageoperatoren (S.217)
Wir haben in den voran gehenden Kapiteln gesehen, wie wir eine Datenbank strukturieren und wie wir Anfragen an sie formulieren können. Wir kennen die grundlegenden Speichertechniken und Indexstrukturen einer physischen Datenbank. In diesem Kapitel wollen wir zunächst diskutieren, wie geeignete Basisoperatoren einer Anfragesprache auf den Gegebenheiten einer physischen Datenbank effizient ausgewertet werden können.
Basisoperatoren sind primär die Operatoren der Relationenalgebra; die für SQL typischen Aggregierungsoperatoren werden wir streifen. Darüber hinaus wollen wir die grundlegenden Prinzipien eines Anfrageoptimierers kennen lernen. Damit schließt sich die letzte Lücke zwischen der Formulierung einer Anfrage und ihrer Auswertung.
Wir behandeln auch die Problematik einer effizienten Auswertung eines XPath- Ausdrucks über einem in einer relationalen Datenbank gespeicherten XMLBaum. Wir präsentieren eine für alle Achsen eines XPath-Ausdrucks anwendbare Auswertungstechnik und stellen eine Optimierung für die descendant- Achse vor.
9.1 Selektion
Beginnen wir mit einer Selektion der Form ó[A op val]R, wobei R ein Relationsschema, A ein Attribut von R und op ein arithmetischer Vergleichsoperator. Angenommen, für R existiert keine Indexstruktur zu A und die Relationen zu R seien nicht nach A sortiert gespeichert. In diesem Fall kann nur mittels vollständigem Durchsuchen der Relation die Selektion ausgewertet werden.
Liegt eine Sortierung zu A vor, dann können wir das Tupel mit Suchschlüsselwert val durch binäres Suchen lokalisieren und, sofern op nicht der Gleichheitsoperator, die restlichen die Suchbedingung erfüllenden Tupel ausgehend hiervon bestimmen. Analog, liegt eine Baum-Indexstruktur über A vor, können wir das Tupel mit Suchschlüsselwert val, bzw. seine Adresse, lokalisieren und die restlichen die Suchbedingung erfüllenden Tupel, bzw. ihre Adressen, ausgehend von diesem erreichen. Eine Hash-Indexstruktur kann hier nur helfen, wenn op der Gleichheitsoperator ist.
Angenommen, die Selektionsbedingung besteht aus einer Konjunktion atomarer Selektionsbedingungen. Sei beispielsweise (LGrad < 10 ∧ BGrad < 50) eine Bedingung über der Relation Stadt. Existiert zu keinem der beiden Attribute eine Indexstruktur, dann bleibt nur ein vollständiges Durchsuchen der Relation. Für jedes gefundene Tupel kann dann die Bedingung überprüft werden.
Existiert mindestens eine Indexstruktur zu den Attributen der Selektionsbedingung, dann können wir in Abhängigkeit dieser Bedingung auf die Tupel zugreifen und für jedes gelesene Tupel die restlichen Bedingungen überprüfen. Existieren getrennte Indexstrukturen zu beiden Attributen, dann kann alternativ zunächst der Durchschnitt der entsprechenden Adresslisten gebildet werden und danach zu den die gesamte Bedingung erfüllenden Tupeln zugegriffen werden. Steht ein geeigneter mehrdimensionaler Index über beiden Attributen zur Verfügung, dann kann mittels diesem direkt zu den die Eigenschaften erfüllenden Tupel zugegriffen werden.
Haben wir in der Selektionsbedingung Disjunktionen, dann überführen wir die Selektionsbedingung zunächst in konjunktive Normalform, d.h., eine Konjunktion von Disjunktionen. Sei beispielsweise (Einwohner > 1000 ∨ (LGrad < 10 ∧ BGrad < 50)) die ursprüngliche Bedingung, dann erhalten wir die konjunktive Normalform ((Einwohner > 1000 ∨ LGrad < 10) ∧(Einwohner > 1000 ∨ BGrad < 50)).
Für eine möglichst effizienten Auswertung werden wir zunächst versuchen, konjunktiv verknüpfte Selektionsbedingungen zur Einschränkung der zu betrachtenden Tupel auszuwerten. In unserem Beispiel werden wir zunächst eine der beiden Disjunktion auswerten und dann die andere auf der resultierenden Menge von Tupeln betrachten.
| Erscheint lt. Verlag | 1.1.2005 |
|---|---|
| Sprache | deutsch |
| Themenwelt | Mathematik / Informatik ► Informatik ► Datenbanken |
| ISBN-10 | 3-8274-1488-1 / 3827414881 |
| ISBN-13 | 978-3-8274-1488-5 / 9783827414885 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
Größe: 1,5 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich