Zusammenfassung - Hu

Transcription

Zusammenfassung - Hu
Prüfungsvorbereitung
DBS I
Grundlagen von Datenbanksystemen
Niels Lohmann
Wintersemester 2004/2005
[email protected]
http://www.informatik.hu-berlin.de/∼nlohmann
Inhaltsverzeichnis
1. Architektur und Eigenschaften
1.1. Eigenschaften . . . . . . .
1.2. Transaktionen . . . . . . .
1.3. Vor- und Nachteile . . . .
1.4. Architektur . . . . . . . .
von Datenbanksystemen
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
2. Das
2.1.
2.2.
2.3.
2.4.
Entity-Relationship-Modell
Entwurfsprozess . . . . . . .
Definitionen . . . . . . . . .
Grafische Darstellung . . .
Vor-/Nachteile . . . . . . .
3. Das
3.1.
3.2.
3.3.
3.4.
3.5.
Relationenmodell
Regeln . . . . . . . . . . . . . . . . . . . . . .
Definitionen . . . . . . . . . . . . . . . . . . .
Schlüssel . . . . . . . . . . . . . . . . . . . . .
Grundsätzliche Eigenschaften von Relationen
Konvertierung von ER-Diagrammen . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
4
5
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
8
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
10
11
11
11
4. Entwurf relationaler Datenbanken
4.1. Funktionale Abhängigkeiten (FDs) . . . .
4.2. Armstrong-Kalkül . . . . . . . . . . . . .
4.3. Algorithmen . . . . . . . . . . . . . . . . .
4.4. Zerlegungen . . . . . . . . . . . . . . . . .
4.5. Normalformen . . . . . . . . . . . . . . . .
4.6. Zusicherungen und Integritätsbedingungen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
12
13
13
14
15
5. Relationale Anfragesprachen
5.1. Relationale Algebra . .
5.2. Relationenkalkül . . . .
5.3. Domänenkalkül DRC . .
5.4. Tupel-Kalkül TRC . . .
5.5. Datalog . . . . . . . . .
5.6. QBE . . . . . . . . . . .
5.7. SQL . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
19
20
21
22
22
22
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Inhaltsverzeichnis
3
6. Anfragebearbeitung in relationalen Datenbanksystemen
6.1. Einführung . . . . . . . . . . . . . . . . . . . . . . .
6.2. Optimierungsregeln . . . . . . . . . . . . . . . . . . .
6.3. Joins . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4. Views . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
24
24
25
26
7. Speicherstrukturen für Datenbanken
7.1. Sequentielle Datei . . . . . . . .
7.2. Index-Sequentielle Datei . . . . .
7.3. B-Baum . . . . . . . . . . . . . .
7.4. B*-Baum . . . . . . . . . . . . .
7.5. Hashing . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
28
28
29
29
29
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8. XML
31
A. Prüfungsfragen
A.1. Entity-Relationship-Modell
A.2. Funktionale Abhängigkeiten
A.3. Normalformen . . . . . . . .
A.4. Relationale Algebra . . . .
A.5. SQL . . . . . . . . . . . . .
A.6. Joins . . . . . . . . . . . . .
A.7. B-Bäume . . . . . . . . . .
A.8. XML . . . . . . . . . . . . .
A.9. Transaktionen . . . . . . . .
32
32
32
32
32
33
33
33
33
34
DBS I – Grundlagen von Datenbanksystemen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25. Februar 2005
1. Architektur und Eigenschaften von
Datenbanksystemen
1.1. Eigenschaften
• Informationen (inhaltliche Form des Wissens) und Daten (Materialisierung der
Information)
• Definition eines Datenbanksystems (DBS)
– Datenbank (DB): zu speichernde Daten und Metadaten
– Datenbankmanagementsystem (DBMS): Softwarekomponente zum Zugriff auf
die Datenbank (effizient, sicher)
– Datenbanksystem: DB+DBMS
• DB-Sprache
– Data Definition Language (DDL): Datendefinition
– Data Manipulation Language (DML): Datenmanipulation und Datenzugriff
– Zugangskontrolle
– Sprachen sind meist deklarativ, d.h. das wie“ tritt in den Hintergrund
”
• Zugangskontrolle
• Datenintegrität: Wahrung der Datenkonsistenz und -korrektheit
• Robustheit: Wahrung eines konsistenten Zustandes trotz Fehler etc.
• Zugriffskoordination bei mehreren Datenbankbenutzern
• Effizienter Datenzugriff und Datenmanipulation
1.2. Transaktionen
• ACID-Prinzip
– Atomicity: Unteilbarkeit ( alles oder nichts“)
”
– Consistency: Konsistenz (Eine Transaktion überführt die Datenbank von einem konsistenten Zustand in einen anderen.)
Kapitel 1. Architektur und Eigenschaften von Datenbanksystemen
5
– Isolation: (bei Mehrbenutzerbetrieb führt die Transaktion ihre Aktionen so
aus, als ob sie alleine auf der DB arbeitet.)
– Durability: Dauerhaftigkeit (Die Wirkung einer abgeschlossenen Transaktion
bleibt dauerhaft — auch trotz eventueller Fehler und Ausfälle des Systems —
in der Datenbank erhalten.)
• Aufbau: BEGIN_TA, COMMIT_TA, ABORT_TA
• Im Fehlerfalle müssen Transaktionen zurückgesetzt werden (wegen Atomicity). Dabei müssen zuletzt gültige Versionen wiederhergestellt werden. Fehlererholungskomponente im DBS notwendig.
• Probleme
– Lost-Update Problem: Während eines Updates wird eine zuvor gelesene Variable von einer anderen Transaktion verändert. Beispiel: Statt zweimal Geld
auf einem Konto zu erhöhen (neuer Werte = alter Wert + 1000) geht zweite
Aktualisierung verloren.
– Inconsistent-Read: Während eines Updates wird eine geänderte Variable von
einer anderen Transaktion gelesen, d.h. es wird Aktion auf alten und neuen
Daten ausgeführt. Beispiel: Während Überweisung von einem Konto auf ein
anderes könnte Geld doppelt“ gezählt werden.
”
• Da Überlappung Probleme bereitet, muss diese kontrolliert werden: Schedule, Serialisierbarkeit, Concurrency Control
1.3. Vor- und Nachteile
+ weite Unterstützung
+ Vereinfachung der Anwendungsprogrammierung
+ Möglichkeiten des Datenschutzes
− erhöhter Betriebsmittelbedarf/Kosten
− eine weitere Programmiersprache“
”
1.4. Architektur
Standard ANSI/X3/SPARC
• externe Schicht: Sicht des Anwendungsprogramms auf nur notwendige/wichtige
Daten; Objekt: View
• konzeptuelle Schicht: Gesamtheit aller gespeicherten Daten, wird definiert durch
das Datenmodell (unabhängig von der internen Repräsentation); Objekt: Relation
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 1. Architektur und Eigenschaften von Datenbanksystemen
6
• interne/physische Schicht: Wo und wie sind die Daten gespeichert? Sequentielle
Dateien/Indexdateien; Objekt: Datei
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
2. Das Entity-Relationship-Modell
2.1. Entwurfsprozess
1. systematische Analyse ; Anforderungen
Was sind die relevanten Objekte, deren Eigenschaften und Zusammenhänge?
2. konzeptueller Datenbankentwurf ; konzeptuelles Schema (meist ERM)
Wichtig zur Kommunikation und zur Überprüfung der 1. Schrittes.
3. Überführung des Schemas in DB-Schema ; konzeptuelles DB-Schema
Abbildung des entworfenen konzeptuellen Schemas in ein konkretes DB-Modell
und ein konkretes DBMS
4. physikalischer DB-Entwurf ; internes Schema
Schlüsseldefinitionen, Operationen/Transaktionen auf den Relationen
2.2. Definitionen
• Entity: Gegenstand, Repräsentant für die Objekte der realen Welt
– Attribute: Eigenschaften der Entitäten
– jede Entität besitzt Werte für seine Eigenschaften
– Attributtypen: atomar/einfach, zusammengesetzt, mehrwertig
– Entitytypen (Entity, Schlüssel, schwach)
• Relationship: Beziehung, semantischer Zusammenhang zwischen Entitäten
– Grad: Anzahl der beteiligten Enititätstypen
– Rolle: z.B. Manager/Chef vs. Arbeiter
– Kardinalitätsverhältnis: mögliche Anzahl der an einer Beziehung beteiligten
Gegenstände (1:1, 1:n, m:n, etc.)
– Beteiligungseinschränkung (total, partiell)
• Generalisierung, Spezialisierung, IS-A Beziehung
– Einschränkung für die Generalisierung: Disjointness/Overlapping-Bedingung
– Einschränkung für die Generalisierung: Completeness/Incompleteness
• Wichtig: Unterscheidung zwischen Entitätstyp/Relationship (Schema) und Entität/Relationship-Instanz (Instanz)
Kapitel
2. Das Entity-Relationship-Modell
[email protected]
8
Das ER-Modell
2.3. Grafische Darstellung
Entity
Attribut
Mehrwertiges Attribut
Schlüsselattribut
Zusammengesetztes Attribut
T oder P
Relationship
T oder P
IS-A Beziehung disjunkt und nichtdisjunkt (Total und Partiell)
Abbildung entnommen aus dem Skript DBMS-Einführung“ von Holger Kreißl
”
(http://www.kreissl.info/diggs/db 01.php.)
2.4. Vor-/Nachteile
Rekursive Beziehung
• Modellierungshilfe:
– Erkennen und Zusammenfassen von Objekten zu Entitäten durch Abstraktion
„Eine Einzelobjekten
Relation entspricht einem
Entity-Set“
Vossen
Seite Die
115 unten
von
zu einer
Entität
(z.B.
Kollegen Fritz Maier und Paul
Eine Relation ist partiell, wenn sie partielle Tupel enthält, d.h. nicht jedes Attribut einen Wert haben
Lehmann
und viele weitere zu der Entität Angestellter“).
muß.
”
•– Erkennen
Datenabhängigkeiten
sind semantischer Natur
und Beziehungen
müssen zusätzlichzwischen
betrachtet werden.
und Zusammenfassen
von
je zwei Objekten
• Entity Integrität ist die Forderung, daß Nullwerte auf Attribute ausgeschlossen werden.
zu
einem
Relationship
(z.B.
der
Angestellte
Paul
Lehmann
leitet
das Projekt
• Intraregionale Abhängigkeiten beziehen sich nur auf eine Attributmenge.
desAttribute
Betriebsklimas
der aus
Angestellte
Fritzzusammengesetzt
Maier leitet das
• Verbesserung
1NF bedeutet, daß alle
elementar sindund
und nicht
Sets oder Mengen
sind,
Projekt
Effizienzsteigerung in der Verwaltung). Dies führt zu dem Relationship Angestellter leitet Projekt“.
”
Transformation
des ERD
ins Relationenmodelld.h. der Häufigkeit des Auftretens (z.B. wird
– Bestimmung
der Kardinalitäten,
Projekt
immer von
genau
Angestellten
geleitet
und eininAngestellter
Das ein
„flache“
Relationenmodell
erlaubt
keineeinem
zusammengesetzten
Attribute
und Relationen
1NF.
darf höchstens drei Projekte leiten.)
•
•
• implementationsunabhängig
DBS ITU-Chemnitz
– Grundlagen von Datenbanksystemen
9 von
30
25. Seite
Februar
2005
Kapitel 2. Das Entity-Relationship-Modell
9
• es fehlen Operationen (dynamische Modellierung)
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
3. Das Relationenmodell
3.1. Regeln
• Jede Relation ist eine zweidimensionale Tabelle und entspricht einem Entity-Typ.
• Jede Zeile dieser Tabelle wird Tupel genannt und beschreibt ein konkretes Entity
des Entity-Typs, den die Tabelle darstellt.
• Jede Spalte der Tabelle entspricht einem Attribut des Entity-Typs. Die konkreten
Entities werden somit durch die entsprechenden Attributwerte beschrieben.
• Der Grad einer Relation ist die Anzahl der Attribute.
• Existiert für ein Attribut eine begrenzte Anzahl von Attributwerten, so wird die
Zusammenfassung aller Attributwerte für dieses Attribut Domäne genannt.
• Die Existenz zweier identischer Zeilen ist ungültig.
• Es ist nicht relevant, in welcher Reihenfolge Zeilen bzw. Spalten der Tabelle angeordnet sind.
• Attribute sind atomar.
3.2. Definitionen
• Wertemengen: Domäne (intensional (Integer, String), extensional (Aufzählung))
D1 , . . . , Dn
• Relation R ⊆ D1 × . . . × Dn
• Attribut: Spalte einer Relation (eindeutig)
• Relationenschema: R(A1 : D1 , . . . , An : Dn ) (endliche Menge von Attribut(namen)
mit Domänen)
• Elemente der Relationen heißen Tupel (Abbildung von {A1 , . . . , An } nach D).
• Die Kardinalität einer Relation ist die Anzahl ihrer Elemente (Tupel).
• Extension: Menge der Instanzen (Tabelle)
• Datenbankschema: Menge von Relationenschemata (Menge von Tabellen)
• Sei R(A1 , . . . , An ) eine Relation und S ⊆ {A1 , . . . , An } eine Attributmenge. µ[S]
bezeichnet die Werte des Tupels µ in den Attributen S.
Kapitel 3. Das Relationenmodell
11
3.3. Schlüssel
• Schlüsselkandidat: Menge von Attributen K ⊆ {A1 , . . . , An }, die eindeutig und
minimal ist
• Primärschlüssel: vom Designer ausgezeichneter Schlüssel aus den Schlüsselkandidaten
• Superschlüssel: alle Mengen K 0 mit K ⊆ K 0 , K Schlüsselkandidat (eindeutig, aber
nicht minimal)
• Fremdschlüssel: Seien R und S Relationenschemata und KS ein Schlüsselkandiat
für S. Wenn KS in den Attributen von R enthalten ist, ist KS ein Fremdschlüssel
von S in R.
• Schlüsseleigenschaften sind Metainformationen, die nicht aus der Instanz hergeleitet werden können!
• Integritätsregeln
1. Eindeutigkeit von Schlüsseln
2. Referentielle Integrität: Sei KS Fremdschlüssel von S in R. Dann gilt für jede
Extension von S: µ1 ∈ R ⇒ ∃µ2 ∈ S mit µ2 [KS ] = µ1 [KS ].
Wikipedia: Die Datenbank stellt sicher, dass der Primärschlüssel existiert
”
und nur gemeinsam mit dem Fremdschlüssel geändert oder gelöscht werden
kann.“
3. Null“-freie Schlüsselwerte
”
3.4. Grundsätzliche Eigenschaften von Relationen
1. Relationen sind Mengen: es sind keine Duplikate erlaubt!
2. Tupel werden durch Attributwerte identifiziert: Das Relationenmodell (RM) ist
werteorientiert!
3. Es gibt keine Ordnung der Tupel innerhalb einer Relation: Reihenfolge ist irrelevant: keine first, next, last Operationen.
4. In der Tupel-als-Abbildung“-Auffassung (jedes Tupel ist Abbildung der Attribute
”
in die Domänen) gibt es keine Ordnung der Attribute.
5. Attributwerte sind atomar.
3.5. Konvertierung von ER-Diagrammen
siehe Praktikumsfolien
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
4. Entwurf relationaler Datenbanken
• Kriterien für ein gutes“ konzeptuelles Schema
”
• Problem: Redundanz – dadurch Inkonsistenzen (Update-, Insert-, Delete-Anomalie)
• Ziel: Entwurf relationaler Datenbankschemata ohne Datenredundanz
4.1. Funktionale Abhängigkeiten (FDs)
• informale Definition: Werte einer Attributmenge bestimmen eindeutig eine andere
Attributmenge (P LZ → Ort)
• Definition: Sei F ein Relationsschema und X, Y ⊆ F . X → Y , falls für je zwei
Tupel t1 , t2 gilt: t1 [X] = t2 [X] ⇒ t1 [Y ] = t2 [Y ].
• X → X heißt triviale FD
• Funktionale Abhängigkeiten sind
– Aussagen über die Semantik der Daten, deshalb Metainformation (Schema)
– abgeleitet aus der Anwendungswelt ; a-priori-Wissen
– nicht beweisbar (!)
– nicht aus einer aktuellen DB-Instanz ableitbar
– Integritätsbedingungen
4.2. Armstrong-Kalkül
1. Reflexivität
X → X, bzw. X → Y , falls Y ⊆ X
2. Augmentation (Erweiterung)
aus X → Y folgt XZ → Y Z für jede Teilmenge Z ⊆ R
3. Transitivität
aus X → Y und Y → Z folgt X → Z
4. Vereinigung (Additivität)
aus X → Y und X → Z folgt X → Y Z
Kapitel 4. Entwurf relationaler Datenbanken
13
5. Pseudo-Transitivität
aus X → Y und W Y → Z folgt XW → Z
6. Zerlegung (Projektivität)
aus X → Y und Z ⊆ Y folgt X → Z
• Das Armstrong-Kalkül ist vollständig und korrekt bzgl. dem Ableitungsoperator |=,
d.h., alles mit den Deduktionsregeln hergeleitete ist korrekt, und alle FDs können
mit den Axiomen hergeleitet werden.
• Alle Deduktionsregeln können aus der Reflexivität, der Augmentation und der
(Pseudo-)Transitivität hergeleitet werden.
4.3. Algorithmen
• Hüllenberechnung
– Die Hülle von F ist die kleinste Menge, die alle FDs enthält, die mit dem
Armstrong-Kalkül abgeleitet werden können.
Definition: F + := {X → Y | F |= X → Y }
– Hüllenberechnung durch Aufzählung ist zu teuer (exponentiell in Attributanzahl)
– CLOSURE(X, F ): Gegeben eine Attributmenge X und eine Menge von FDs
F finden wir X + , die Hülle von X unter F in O(|F |2 · p). (p: Anzahl der
verschiedenen Attribute in F )
• minimale Überdeckung
– Grund: Laufzeit vieler Algorithmen hangt von |F | ab. Überwachung von FDs
kann bei kleinerer Menge effizienter gestaltet werden
– Ein Menge an FDs heißt genau dann minimal, falls jede FD von der Form
X → A ist (A ist Attribut), keine FD in F überflüssig ist und kein Attribut
auf der linken Seite einer FD überflüssig ist.
– Satz: Zu jeder Menge F gibt es eine minimale Überdeckung. Diese muss nicht
eindeutig sein.
4.4. Zerlegungen
• Bei Zerlegungen kann es zu Informationsverlust kommen. Beispiel: Originalrelation
enthält weniger Tupel als Natural Join der Zerlegung.
• Lossless-Join-Zerlegung: Test einer Zerlegung auf Informationsverlust
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 4. Entwurf relationaler Datenbanken
14
• Beispiel Lossless-Join: Gegeben die Relation R(ABCD) mit den funktionalen Abhängigkeiten A → B, B → C und C → D. Für die Zerlegung R1 (AB), R2 (BC) und
R3 (CD) ergibt durch den Algorithmus sich die Tabellen (von links nach rechts):
R1
R2
R3
A
a1
b12
b13
B
a2
a2
b23
C
b31
a3
a3
D
b41
b42
a4
;
R1
R2
R3
A
a1
b12
b13
B
a2
a2
b23
C
a3
a3
a3
D
b41
b42
a4
;
R1
R2
R3
A
a1
b12
b13
B
a2
a2
b23
C
a3
a3
a3
D
a4
b24
a4
Da es eine Zeile der Form (a1 , a2 , a3 , a4 ) gibt, ist die Ausgabe des Algorithmus
true, d.h. es handelt sich um eine Lossless-Join-Zerlegung.
• abhängigkeitserhaltende Zerlegungen: alle Abhängigkeiten der Originalrelation gelten.
• Definition: Sei F eine Menge von FDs. Die Projektion von F auf Z ⊆ U ist definiert
als: πZ (F ) = {X → Y ∈ F + |X ∪ Y ⊆ Z}
• Definition: Sei R = {A1 , . . . , An } ein Relationenschema, ρ = {R1 , . . . , Rk } eine
ZerlegungSund F eine Menge von FDs über R. ρ erhält die Abhängigkeiten von F ,
falls gilt: ki=1 πRi (F ) ist äquivalent zu F .
• Bemerkung: Es gibt Lossless-Join Zerlegungen die nicht abhängigkeitserhaltend
sind und umgekehrt.
4.5. Normalformen
Definitionen:
• Definition: Ein Attribut heißt Primeattribut, wenn es Teil eines Schlüsselkandidaten
ist.
Normalformen:
• Erste Normalform (1NF)
Alle Attribute sind atomar.
• Zweite Normalform (2NF)
Kein Nicht-Primeattribut darf von einer echten Teilmenge eines Schlüsselkandidaten abhängen. Rechte Seite einer Regel ist also Primeattribut oder linke Seite ist
keine echte Teilmenge eines Schlüsselkandidaten.
• Dritte Normalform (3NF)
Alle Attribute sind nur von Superschlüsseln abhängig. Entweder ist linke Seite
einer Regel Superschlüssel oder rechte Seite Primeattribut.
• Boyce-Codd-Normalform (4NF)
Alle Attribute sind direkt(!) von Schlüsseln abhängig. Linke Seite einer Regel ist
Superschlüssel.
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 4. Entwurf relationaler Datenbanken
15
Für jede Regel der Form X → Y (Y ∈
/ X) muss gelten:
Normalform
2NF
3NF
BCNF
linke Seite
keine echte Teilmenge eines SK
Superschlüssel
Superschlüssel
rechte Seite
Primeattribut
Primeattribut
—
Bemerkungen:
• Relationen aus dem RM enthalten per Definition nur atomare Werte, sind deswegen
stets in 1NF.
• Falls alle Schlüssel einelementig sind, ist R in 2NF.
• Falls alle Attribute Schlüsselelemente sind, ist R in 3NF.
• Es gilt: BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF
Umformungen:
• Satz: Jedes 1NF-Schema R kann bzgl. einer Menge F einfacher FDs verlustfrei in
BCNF zerlegt werden (Dekompositionsalgorithmus).
• Nicht jedes Schema R kann abhängigkeitserhaltend in BCNF zerlegt werden.
• Satz: Es existiert ein Algorithmus zur verlustfreien, abhängigkeitserhaltende Zerlegung in 3NF für jedes Relationenschema R (Synthesealgorithmus).
• Falls F eine minimale Überdeckung ist, können Schemata, die aus FDs mit gleicher
linken Seite entstanden sind, ohne Verletzung der 3NF zusammengefasst werden.
Nachteile:
• Zur Anfragezeit viele Joins notwendig.
4.6. Zusicherungen und Integritätsbedingungen
Anwendungsabhängige Integritätsregeln
• dynamisch (keine Gehaltserhöhung liegt über 10 Prozent)
• statisch (Gehalt des Managers ist höher als das seiner Untergebenen)
Assertions (Zusicherung): beschreibt konsistente DB-Zustände
• referenzielle Integrität
• statische/dynamische Integrität
Constraints
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 4. Entwurf relationaler Datenbanken
16
• Primary key constraint: Definition des Primary Key. Beispiel:
ALTER TABLE PFLANZE ADD
PRIMARY KEY(ART_CODE)
• unique-constraint: Sicherung der Einzigartigkeit/Nullwertfreiheit von Attributen.
Beispiel:
ALTER TABLE GEHALT
ADD UNIQUE (Autor) NOT NULL
• referential-constraint: Sicherung der Beziehungen zu anderen Tabellen. Beispiel:
ALTER TABLE GEHALT
ADD FOREIGN KEY (Autor) REFERENCES Diplomarbeit (Autor)
• check-constraint: Prüfung semantischer Integritätsregeln, z.B. Wertebereichsprüfung von Attributen. Beispiel:
ALTER TABLE GEHALT ADD CONSTRAINT min_gehalt
CHECK (GEHALT > 2000)
Trigger
• Datenbankmechanismus zur automatischen Überprüfung von Konsistenzbedingungen (ECA: event–condition–action)
• notwendige Überprüfung bei Veränderungsoperationen
• nicht bei jeder Operation muss jede Zusicherung überprüft werden
• Probleme: Aufwendig zu überprüfen; Rekursion möglich, d.h. Trigger rufen sich
evtl. gegenseitig auf
• Beispiel:
CREATE TRIGGER BUDGET_INSERT AFTER INSERT ON GEHALT
FOR EACH ROW MODE DB2SQL
WHEN ((SELECT SUM(GEHALT) FROM GEHALT) > 50000)
SIGNAL SQLSTATE ’75001’ (’Budget von 50.000 überschritten’)
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
5. Relationale Anfragesprachen
5.1. Relationale Algebra
Grundoperationen der Relationalen Algebra (RA)
• (Mengen-) Vereinigung: R ∪ S
– R und S müssen über den gleichen Domänen definiert sein
– Das Ergebnis hat die gleiche Struktur wie R bzw. S
– Das Ergebnis enthält keine Duplikate (Menge!), muss im DBMS explizit durchgeführt werden
• (Mengen-) Differenz R\S bzw. R − S
– R und S müssen über den gleichen Domänen definiert sein
– Das Ergebnis hat die gleiche Struktur wie R bzw. S
• Kartesisches Produkt R × S
– entspricht Konkatenation
– Bei Attributnamenskonflikten muss Eindeutigkeit wiederhergestellt werden!
– Beispiel: R(A, B) × S(B, C) = R× (A, BR , BS , C)
• Projektion πP roj (R)
– Definition: πP roj (R) = {µ[P roj] | µ ∈ R}
– Das Ergebnis enthält keine Duplikate (Menge!), muss im DBMS explizit durchgeführt werden
– Beispiel: πA (R(A, B)) = Rπ (A)
• Selektion σCond (R)
– Definition: σCond (R) = {µ | Cond[µ] ist wahr}. Dabei ist Cond[µ] eine Formel, bei der alle Attributnamen durch die Tupelwerte von µ ersetzt.
– σCond (R) ⊆ R
• (Mengen-) Durchschnitt R ∩ S
– R und S müssen über den gleichen Domänen definiert sein
– Das Ergebnis hat die gleiche Struktur wie R bzw. S
– kann auf Basisoperator zurückgeführt werden: R ∩ S = R\(R\S)
Weitere Operationen der RA (cont.):
Relationale
Algebra
(cont.)
Natural Join: R
S :
̈
̈
Beispiel:
̈
Weitere Operationen der RA (cont.):
̈
Natural Join: R
̈
S :
R A B
Kapitel
5. Relationale Anfragesprachen
18
̈ Beispiel:
1 a
A B
C
2 d
1 a
3
R A B 3 d
• Join R 1Cond SR S
Weitere
Operationen der RA (cont.):
2̈ d
4
1 a 4 e
̈ Natural
Join: R
S :
A
B
C
3
d
4
2 d
S B– Ckann auf Basisoperator zurückgeführt werden: R 1Cond S = σCond (R × S)
̈ Beispiel:
1 a
3
3 d
R S
a – 3Ergebnis
hat die Struktur
R
2 von
d
4 ×S
4 e
d 4
3 d muss
4 REindeutigkeit
– Bei Attributnameskonflikten
wiederhergestellt werden!
A B
S B C
© Prof. J.C. Freytag, Ph.D.
6.21
1 a
a 3
– Θ-Join: Θ ist der Operator in der Join-Bedingung
A B
C
2 d
d 4
– Equi-Join: Θ ist die Identität, z.B. R 1B=C S
1
a
3
3 d
R S
© Prof. J.C. Freytag, Ph.D.
6.21
2 d
4
4
e
• Natural Join R 1 S
3 d
4
S B C
– Join über gemeinsame Attribute
a 3
d 4
– gemeinsame Spalten müssen gleich sein
Relationale Algebra (cont.)
© Prof. J.C. Freytag, Ph.D.
– kann auf Basisoperator zurückgeführt
werden: Sei Att(R) und Att(S) die Attribute der Relation R bzw. S. Dann gilt:
R 1 S = π{Att(A),Att(B)\Att(A)} (R 1Att(R)∩Att(S) in R und S gleich S)
– Beispiel: R(A, B) 1 S(B, C) = RS(A, B, C)
6.21
Relationale Algebra (cont.)
̈ Weitere Operationen
RA (cont.):
Relationale
Algebrader(cont.)
Semi-Join R 魁 S :
•̈ Semi-Join
̈
Seien R, S Schemata mit R { A1 : D1 ,…, An : Dn }
Weitere Operationen
der RAMöglichkeiten,
(cont.):
–und
ZielS {des
Semi-Join:
den Existenzquantor (∃) zu erfassen:
B : E ,…, B : E }
̈
̈
Semi-Join R 魁 S =
: {µ ∈ R | ∃ν ∈ S : µ[Att(R) ∩ Att(S)] = ν[Att(R) ∩ Att(S)]}
̈ R
S = R { A1, ..., An} (R S )
̈ Seien –
R, entfernt
S Schemata
{ A1 :Tupel,
D1 ,…, Adie
ausmitRR alle
den mit S gemeinsamen Spalten keinen
n : Dauf
n }
des
Ergebnisses:
und ̈SSchema
{ BJoin-Partner“
:
E
,…,
B
:
E
}
1
1
m
m in S haben
” { A1:D1 ,…,An:Dn }
̈ R
S –=Ergebnis
R { A1, ..., An}hat
(R die
S )Struktur von ̈
R Weitere Operationen der RA (cont.):
̈ Eigenschaft:
̈ Schema des Ergebnisses:
̈ Semi-Join
S =: R 1 πAtt(R)∩Att(S) (S)
– kann
werden: R 魁 S
̈ R
S =auf
R Basisoperator
R ( S ) zurückgeführt
1
1
m
m
Relationale Algebra (cont.)
̈
̈
{ A1:D1 ,…,An:Dn } F
•Eigenschaft:
Division
mit F R
=÷
{ A1S ,…, An } ̨""{ B1 ,…, Bm }
̈
Seien R, S Schemata mit R { A1 : D1 ,…, An : Dn }
und S { B1 : E1 ,…, Bm : Em }
R S –=Ziel
R der
R Division:
F ( S)
Möglichkeiten, den ̈Allquantor
zuAn}erfassen:
R S6.22= R(∀)
(R S )
{ A1, ...,
R
÷
S
=
{µ
|
∀ν
∈
S
:
µν
∈
R}
mit F = { A1 ,…, An } ̨""{ B1 ,…, Bm }
̈ Schema des Ergebnisses:
{ A1:Ddie
– Erfordert, dass für jedes Tupel im Ergebnis R÷S
Konkatenation
mit allen
1 ,…,A
n:Dn }
© Prof. J.C. Freytag, Ph.D.
© Prof. J.C. Freytag, Ph.D.
6.22
̈ Eigenschaft:
Tupeln aus S ein Tupel in R zu finden
ist
̈
R
S = R R F ( S)
– kann auf Basisoperator zurückgeführt werden:
R ÷ S = π{Att(R)\Att(S)} (R)\π{Att(R)\Att(S)}
(R)
S)\R)
11
mit F((π={Att(R)\Att(S)}
{ A1 ,…, An } ̨""
{ B×
1 ,…, Bm }
Operator
Vereinigung
Differenz
karthesisches Produkt
Projektion
Selektion
Durchschnitt
Join/Θ-Join/Equi-Join
Natural Join
Semi-Join
Division
DBS I – Grundlagen von Datenbanksystemen
Stelligkeit
Basisoperator
© Prof. J.C. Freytag,
Ph.D.
binär
ja
binär
ja
binär
ja
unär
ja
unär
ja
binär
nein
binär
nein
binär
nein
binär
nein
binär
nein
Schema
R
11
R
R×S
µ[P roj]
R
R
R×S
Att(R) ∪ Att(S)
R
R
25. Februar 2005
6.22
Kapitel 5. Relationale Anfragesprachen
19
Eigenschaften
• Abgeschlossenheit: Operationen bilden Relationen auf Relationen ab
• Zusammensetzung – Bildung von Ausdrücken bzw. Termen
• ∪, \, σ, π, × sind Basisoperationen, mit denen weitere Operationen gebildet werden
können
• Basis: ∪, \, σ, π, × oder ∪, ÷, σ, π, ×
• Komplementoperator R fehlt, da bei unendlichen Domäne Dom(R) das Komplement auch unendlich wäre.
5.2. Relationenkalkül
Alphabet
• Variablen
• Konstanten
• arithmetische Vergleiche =, ≤, <, >, ≥, 6=
• logische Junktoren ∧, ∨, ¬ und Quantoren ∃, ∀
• Klammern
Freie und gebundene Variablen
• freie Variablen (FV): nicht durch Quantoren eingeschränkt“
”
• gebundene Variablen (BV): durch Quantoren eingeschränkt“
”
• Definition: F heißt geschlossen, falls F V (F ) = ∅. Ansonsten heißt F offen.
• Uns interessieren nur offene Formeln, da geschlossene keine Tupel, sondern nur die
booleschen Werte wahr oder falsch zurückgeben können.
Well-Formed Formulas (WFF) (Formeln des RC):
• Jede atomare Formel des RC ist eine WFF.
• Konjunktion, Disjunktion, Negation und Klammerung von WFF ergeben WFF.
• Ist F eine WFF und X ∈ F V (F ), so ist auch ∃X(F ) und ∀X(F ) eine WFF.
Wahrheitswert
• Wahrheitswerte der Formeln entsprechend der Standardsemantik:
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 5. Relationale Anfragesprachen
20
– Variablen durch Werte aus Domäne ersetzen
– Konjunktion, Disjunktion, Negation: Standard
– Allquantor: Konjunktion über Domänenenwerte
– Existenzquantor: Disjunktion über Domänenenwerte
– geschlossene Formeln werden auf {wahr, falsch} abgebildet.
• Wahrheitswert W (F ) einer WFF F kann von der zugrunde liegenden Domäne
abhängen!
5.3. Domänenkalkül DRC
Einführung:
• Anfragen der relationalen Algebra können in WFF übersetzt werden.
• Sei F (X1 , . . . , Xn ) eine WFF. Die durch F definierte Relation rF ist definiert als
rF = {(a1 , . . . , an ) | W (F (a1 , . . . , an )) = wahr}
• Der Ausdruck {(X1 , . . . , Xn ) | F (X1 , . . . , Xn )} ist eine Domänenkalkülanfrage
(oder auch DRC-Query) mit Antwortrelation rF .
• Die Anfragesprache, die aus DRC-Queries besteht heißt Domänenkalkül oder auch
Domain Relational Calculus.
• Problem: Ergebnisse können unendlich oder unsinnig sein.
Definitionen, sichere WFF:
• Definition: Sei F = F1 ∧ . . . ∧ Fn eine konjunktive WFF. X heißt beschränkt, falls
es ein 1 ≤ i ≤ n gibt, so dass eine der folgenden drei Bedingung erfüllt ist:
1. X ∈ F V (Fi ) und Fi ist eine atomare Formel der Form p(t1 , . . . , X, . . . , tn )
(die nicht (!) negiert ist).
2. Es gilt Fi ≡ (X = a) oder Fi ≡ (a = X) mit a als Konstante.
3. Es gilt Fi ≡ (X = Y ) oder Fi ≡ (Y = X) für eine beschränkte Variable
Y ∈ F V (F )
• Definition: Eine WFF F heißt sicher (safe), falls gilt:
1. Es tritt kein Allquantor in F auf.
Anmerkung: ∀ durch ¬∃¬ ersetzen
2. Bei jeder in F auftretenden Disjunktion zweier Teilausdrücke F1 und F2 , muss
gelten: F V (F1 ) = F V (F2 ).
Anmerkung: verhindert erfundene“ Attributwerte (d.h. nicht an Domänen
”
bzw. Relationentupel gebunden), da so F1 und F2 nicht unabhängig voneinander sind
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 5. Relationale Anfragesprachen
21
3. Die freien Variablen jeder maximalen konjunktiven Teilformel F1 ∧ . . . ∧ Fn
von F sind beschränkt.
Anmerkung: verhindert unendliche Antwortrelationen
4. Die Negation darf nur in Konjunktionen gemäß 3. auftreten, in denen mindestens ein Fi nicht negiert ist.
• Definition: Eine maximale konjunktive Teilformel ist die (rein syntaktische!) Kette
von konjugierten Teilformeln. Beispiel: (a ∨ b) ∧ (c ∨ d)
|
{z
}
max. konj. Teilformel
• Definition: Sichere Negation: Eine negierte Teilformel (¬G) mit freien Variablen
darf nur in beschränkten konjunktiven Teilformeln auftreten
• In F1 ∧ . . . ∧ Fn muss mindestens eine nicht-negierte Teilformel Fi auftreten, sonst
nicht sicher!
• Definition: Eine DRC-Query heißt sicher, falls ihre WFF sicher ist. Die Teilmenge
der sicheren DRC-Quieries heißt sicheres Domänenkalkül oder sicheres DRC.
• Satz: Jede sichere DRC-Query kann in einen äquivalenten Ausdruck der relationalen Algebra überführt werden, der die gleiche Antwortmenge berechnet. Dazu
können z.B. nicht beschränkte Formeln durch zusätzliche Formeln beschränkt werden.
5.4. Tupel-Kalkül TRC
• weitere Variante der Relationenkalkuls: Variablen stehen fur Tupel in WFFs
• Definition: Seien µ = (a1 , . . . , an ) und ν = (b1 , . . . , bm ) Tupel. Dann bezeichnet
µ ∗ ν die Konkatenation der Tupel µ und ν: (a1 , . . . , an , b1 , . . . , bm ).
• Definition: Sei p ein n-stelliges Prädikat und µ ein n-stelliges Tupel. Dann ist p(µ)
wahr, falls µ in der Relation p enthalten ist, d.h. W (p(µ)) = wahr gdw. µ ∈ p.
• Die Anfragesprache, die aus TRC-Queries besteht heißt Tupelkalkül oder auch
Tupel Relational Calculus.
• Satz: Jeder Ausdruck der relationalen Algebra mit Ergebnisrelation R lässt sich
durch eine TRC-Query mit gleichem Ergebnis berechnen.
Ergebnis: Die relationale Algebra, das sichere Domänenkalkül und das sichere
Tupelkalkül sind gleichmächtig.
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 5. Relationale Anfragesprachen
22
5.5. Datalog
• logikbasierte Sprache, ähnlich zu PROLOG
• wird für deduktive Datenbanken benutzt
• Semantik: Formeln werden als Regeln“ interpretiert:
”
p <- q,r ≡ (q ∧ r) ⇒ p ≡ ¬(q ∧ r) ∨ p ≡ ¬q ∨ ¬r ∨ p
• der Regelkopf gibt Abfragen einen Namen
• Rekursion ist möglich, z.B. ancestor(X, adam) (mehr als relationale Algebra)!
5.6. QBE
• QBE: Query by Example
• Design-Ziele: Einfache Bedienung für den interaktiven Gebrauch, Intuitive Verständlichkeit auch für den ungeübten Benutzer
• Inthalte der Tabellen:
– Variablen: beginnen mit _.
– Variablen, die nur ein Mal auftreten, können weggelassen werden.
– Freie Variable werden mit P. gekennzeichnet. Dies sind die Ergebnisse (P=print).
– Existenz-Quantoren werden unterdrückt. Es gibt keine Allquantoren.
• Implementation: Graphische Oberfläche. Revolutionär für damaligen Standard!
• Satz: QBE ist relational vollstandig!
5.7. SQL
Einführung
• SQL: Structured Query Language“
”
• Standardisierung durch ANSI/ISO
• basierend auf TRC (gleichmächtig)
korrelierte Subqueries
• Semantik:
1. bestimme ein Tupel t des auseren Query-Blocks
2. substituiere die Werte in der Subquery
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 5. Relationale Anfragesprachen
23
3. evaluiere die Subquery fur diesen Tupel t
• Achtung:
– Ausführung ist aufwendig (teuer)!
– Diese Semantik ist prozedural, verläßt die deklarative Semantik!!
– Interne Bearbeitung kann anders als die Semantik verlaufen!
Aggregation
• Operatoren auf einer Menge von Tupel: AVG, COUNT, SUM, MIN, MAX
• Semantik: SELECT E1 , . . . , En FROM R1 , . . . , Rg WHERE Cond1 GROUP BY
Ri1 .A1 , Ri2 .A2 , . . . , Rim .Am HAVING Cond2 ORDER BY F1 , . . . , Fh
1. Auswahl der Tupel aus R1 , . . . , Rg mit Cond1
2. Gruppierung nach Ri1 .A1 , Ri2 .A2 , . . . , Rim .Am in der GROUP BY-Klausel
3. Selektion auf den Gruppen entsprechend Cond2 in der HAVING Klausel
4. Sortieren nach F1 , . . . , Fh in der ORDER BY-Klausel
• Achtung: Semantik ist prozedural (Sequenz an Schritten). Impliziert nicht unbedingt Ordnung für die Auswertung (d.h. Berechnung des Ergebnisses)
• Anmerkungen: Wichtige Gruppe von Anfragen für den kommerziellen Bereich. Zeitintensive Auswertung bei großen Datenmengen.
Null-Werte
• sind in SQL erlaubt
• dreiwertige Logik: wahr, falsch, ?
?
• (Null = Null) wird zu ? ausgewertet
• erfordert drei-wertige Semantik für die Auswertung
• Tupel qualifizieren sich nur mit Wahrheitswert wahr: Null-Werte joinen nicht“!
”
• Null-Werte werden untereinander und von Nicht-Null-Werten verschieden interpretiert.
• Null-Werte werden vor der Aggregation entfernt.
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
6. Anfragebearbeitung in relationalen
Datenbanksystemen
6.1. Einführung
Problem: deklarative Anfragen müssen in eine ausführbare Form übersetzt“ werden Ziel:
”
Bestmögliche“ Übersetzung (Geschwindigkeit, Ressourcen) ; Optimierungsproblem!
”
Vorgehen:
1. Syntaxüberprüfung und Übersetzung in Interndarstellung ; Operatorbaum
2. Algebraische Optimierung
3. Algorithmenauswahl und Zugriffsoptimierung ; QEP (query execution plan)
zum 1. Schritt:
• interne Darstellungsform: relationaler Algebra
• Überprüfung der syntaktischen Korrektheit
• Überprüfung der semantischen Korrektheit: Existenz Relation/Attribute, korrekte
Typen bei Vergleichen
zum 2. Schritt
• effizienter bedeutet hier kleinere Teilergebnisse
• Definition: Seien E1 und E2 Ausdrücke der relationalen Algebra. E1 und E2 heißen äquivalent, falls E1 und E2 die gleichen Operanden R1 . . . Rn haben und für
beliebige Instanziierungen von R1 . . . Rn die gleiche Antwortrelation berechnen.
6.2. Optimierungsregeln
Mit den folgenden Regeln kann der Operatorbaum hinsichtlich kleinerer Zwischenergebnisse optimiert werden:
1. Joins und kartesische Produkte sind kommutativ.
2. Joins und kartesische Produkte sind assoziativ.
3. Projektionen können kaskadiert werden. Wenn eine Projektion Obermenge der
anderen ist, kann sie weggelassen werden.
Kapitel 6. Anfragebearbeitung in relationalen Datenbanksystemen
25
4. Selektionen können kaskadiert werden. Die Bedingungen können konjugiert werden, sodass eine Selektion entsteht.
5. Projektion und Selektion können vertauscht werden, falls nur über Projektionsattribute selektiert wird.
6. Selektion und Join können vertauscht werden, falls nur über Attributen der linken
Join-Relation selektiert wird.
7. Selektion und Vereinigung bzw. Differenz können vertauscht werden.
8. Selektion und Natural Join können vertauscht werden.
9. Joins und kartesische Produkte können evtl. vertauscht werden.
10. Projektion und Vereinigung können vertauscht werden, falls nur auf die Attribute
der beiden Seiten projiziert wird.
11. Selektionen und kartesische Produkt können evtl. zu einem Join zusammengefasst
werden.
12. Kartesische Produkte mit n Operanden können in n − 1 kartesische Produkte
umgeschrieben werden.
6.3. Joins
Join-Reihenfolge
• Bei n Relationen gibt es theoretisch n! Möglichkeiten für die Joinreihenfolge. Nicht
realistisch, da meist nicht jede Relation mit jeder verknüpft wird.
• Durch Joingraphen entstehen drei verschiedene Muster: Kettenanfrage, Sternanfrage, Ringanfrage und Mischformen.
• Daraus wird Baum erzeugt, indem linke Operanden die äußere Relation und rechter
Operanden die innere Relation beschreiben.
• Bei Einzelprozessoren: Links-linearer Baum; bei Multiprozessoren: Bushy Tree“,
”
der längere Parallelität ermöglicht.
Join-Methoden:
• Nested-Loop Join: Sucht nach gleichen Werten der gemeinsamen Attribute in den
zu verbindenden Relationen. Dabei muss für jedes Tupel der Relation R jedes
Tupel der Relation S verglichen werden. Optimiert wird hier durch blockweißes
Lesen der Daten. Somit entsteht ein quadratischer Aufwand.
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 6. Anfragebearbeitung in relationalen Datenbanksystemen
26
• Sort-Merge-Join: Sortiert erst die Operanden anhand der Verbund-Attribute aufsteigend und mischt anschließend die gleichwertigen Attribute zur Ergebnisrelation.
Aufwand: |S| log |S| + |R| log |R| +|S| + |R|
|
{z
}
Sortieren
• Hash-Join: Berechnung eines Equi-Joins zwischen zwei Tupelmengen durch Abbilden beider Mengen auf eine Hash-Tabelle (mit einer für beide Tupelmengen
identischen Hash-Funktion über dem Join-Attribut), so daß Tupel mit gleichem
Attributwert auf denselben Eintrag (bzw. Bucket) der Hash-Tabelle abgebildet
werden. Mit Hash-Basiertem-Join kann man nur den Equi-Join ausführen (kein
Θ-Join).
Konstenbetrachtung beim Nested-Loop Join:
• Gesucht werden die Seitenzugriffe beim Join R 1 S.
• TR , TS : Anzahl der Tupel in R bzw. in S
• PR , PS : Anzahl der Seiten in R bzw. in S
• βR = PR /TR , βS = PS /TS (Größe der Tupel in R bzw. S relativ zur Seitengröße)
• Anzahl der Tupel, die gelesen werden: TR · TS
• Anzahl der zugegriffenen Seiten:
– R ist äußere Relation: PR + TR · PS = PR + βS · TR · TS ≈ βS · TR · TS
– S ist äußere Relation: PS + TS · PR = PS + βR · TR · TS ≈ βR · TR · TS
• Falls βS < βR , dann R äußere Relation, sonst S äußere Relation.
6.4. Views
• Views sind nichtmaterialisierte Relationen
• Problem: nicht alle Views können aktualisiert werden.
• Hat man zwei Spalten A und B mit Zahlen, so kann man sich eine weitere Spalte
definieren, die A · B enthält. Ändert man einen Wert in dieser Spalte, so kann
daraus nicht der Wert der Spalten A und B bestimmt werden, da im allgemeinen
aus dem Produkt zweier Zahlen diese zwei Zahlen nicht bestimmt werden können.
Dieses View kann also theoretisch nicht aktualisiert werden.
• Faustregeln: Nur Projektion; View muss Schlüssel enthalten; Falls Joins, dann nur
über Schlüssel; kein Distinct, keine Schachtelung, keine Aggregate
• Beispiel:
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 6. Anfragebearbeitung in relationalen Datenbanksystemen
27
CREATE VIEW Test_in_HS1 (Student_Name, Test) AS
SELECT StName, Pr#
FROM Beteiligt, Prüfung
WHERE Beteiligt.Pr# = Prüfung.Pr# and Hörsaal = HS1
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
7. Speicherstrukturen für Datenbanken
Übersicht Speicherstrukturen:
• Sequentielle Datei
• Index-Sequentielle Datei
• B-Baum
• B*-Baum
• Hashing
7.1. Sequentielle Datei
• Sätze werden in der Reihenfolge des Einfügens in der Datei (Seiten) gespeichert
• Problem: Alternieren zwischen Einfügen und Löschen erzeugt Fragmentierung der
Datei
• Suche: keine andere Wahl als sequentielle alle Tupel zu lesen
7.2. Index-Sequentielle Datei
• Datenteil: Sätze in nach Schlüsselwerten k geordnet
• Indexteil mit Index-Seiten und Index-Sätzen
• Indexsatz (ki , bi ) mit ki als Schlüsselwert und bi als Seitenpointer
• Suchen nach Schlüssel k:
1. Suche in der Indexdatei (ki , bi ) mit ki ≤ k < ki+1
2. Suchen in Seite bi der Datendatei
• beim Einfügen muss (falls entsprechende Seite voll) evtl. ein neuer Index bzw. eine
neue Seite erzeugt werden
• analog Änderung und Löschen
Kapitel 7. Speicherstrukturen für Datenbanken
29
7.3. B-Baum
• B-Baum: Balancierter Baum“
”
• Verallgemeinerung der index-sequentiellen Datei: Mehrschichten-Index“
”
• Eigenschaft: Trotz Einfüge-/Löschoperationen bleibt die Höhe des Baumes für alle
Pfade von der Wurzel zu den Blättern gleich
• jeder Knoten hat einen Verweis (Pointer) mehr, als er Werte (Values) hat
• ein Knoten entspricht einer Seite (4 bis 32 KB)
• Beispiel: pro Pointer und Value werden 4 Bytes benötigt. Bei einer Seitengröße von
16 KB ergeben sich ungefähr 211 = 2048 Werte und 2048 Verweise.
7.4. B*-Baum
• Trennung von Datenteil und Indexteil
• Sätze des B* -Baumes sind reine Indexsätze
• Nur die Indextupel in den Blättern beinhalten Verweise (Zeiger) auf die Tupel in
der sequentiellen Datei
• Vorteile:
– Nur Schlüssel in der Indexdatei: mehr Indexsätze pro Seite and damit bessere
Speicherausnutzung; stärkere Verzweigung des Baumes und damit eventuell
geringere Tiefe; Schlüssel werden jedoch redundant gespeichert
– Geringere Komplexität für Veränderungsoperationen
– Blätter garantieren sortierten“ Zugriff
”
7.5. Hashing
• Idee: Verteilung von Schlüssel auf Speicherplätze
• Definition einer Funktion die für jeden Schlüssel die Position des Tupels in der
Hashtabelle berechnet ( Hashfunktion“)
”
• Satz: Ist Werteverteilung des Schlüssels bekannt, lässt sich eine optimale“ Hash”
funktion definieren.
• Problem: Vergrößerung der Hashtabelle ist oft nicht dynamisch möglich und führt
auch zu neuen Position für alle bisherigen Eintrage
• Anwendung bei Datenbanken: Hashdatei besteht aus
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Kapitel 7. Speicherstrukturen für Datenbanken
30
– einer Menge von Buckets (eine oder mehrere Seiten): B0 , B1 , . . . , Bm−1
– einer Hashfunktion h(K) = {0, . . . , m−1} auf der Menge K der Schlüsselwerte
– einer Hashtabelle, das Bucketdirectory, als Array der Größe m mit Pointer
auf Buckets
• Definition: Füllfaktor = (# gespeicherter Tupel) / (# möglicher Tupel)
• Grundsätzliches: Hash-Join last sich einfach parallelisieren. Hashfunktion sollte
dynamisch sein!
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
8. XML
Hier werden nur die klausurrelevanten Dinge beschrieben. Mehr dazu in den Vorlesungsfolien oder überall anders.
• ein vollständiges XML Dokument
<?xml version="1.0"?>
<person>
<name> J.C. Freytag </name>
<tel> +49 30 2093 3009 </ tel>
<email> [email protected] </email>
</person>
</xml>
• das passende Document Type Definition
<!DOCTYPE addressbook [
<!ELEMENT addressbook (project* )>
<!ELEMENT project
(name, greet?, address* , (fax | tel)* , email* )>
<!ELEMENT name (# PCDATA)>
<!ELEMENT greet (# PCDATA)>
<!ELEMENT address (# PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT fax (# PCDATA)>
<!ELEMENT email (# PCDATA)>
]>
A. Prüfungsfragen
A.1. Entity-Relationship-Modell
Vor lesung DBI S I ( WS 2004/ 2005)
Teil 5:ein
Relat
Anf
achen
• Gegeben
paarionale
Instanzen
undr agespr
vorgegebenen
Entitys sollten die Relationships mit
Kardinalitäten und sonstigen Constraints (partiell, total) eingezeichnet werden.
Eine Generalisierung war auch dabei.
• Anschließend aus diesem ER-Modell wieder ein relationales Modell (mit Primärund Fremdschlüsseln) erstellen.
Relationale Algebra (cont.)
A.2.
Funktionale Abhängigkeiten
̈ Weitere Operationen der RA (cont.):
̈
Natural Join: R
S :
• Gegeben
ein paar funktionale Abhängigkeiten sollten Schlüsselkandidaten hergeBeispiel:
leitet werden.
̈
R A B
• Gegeben
ein paar FDs sollten nur unter Anwendung der Armstrong-Regeln Erwei1 a
terung, Reflexivität und Transitivität eine
andere
FD hergeleitet werden.
A B
C
•
2 d
3 d
Gegeben
ein
4 e
1
2
3
den.
S
a
d
d
3
4
4
R Ssollten diese mit dem Basisalgorithmus minimalisiert werpaar FDs
B C
a 3
d 4
A.3. Normalformen
© Prof. J.C. Freytag, Ph.D.
6.21
• Gegeben ein Relationsschema mit FDs: welche Schlüsselkandidaten, welche Normalform und wegen welcher FD nicht eine Normalform höher? (Auch Grund angeben, z.B. linke Seite echte Teilmenge eines Schlüsselkandidaten“ etc.
”
• Gegeben ein Relationsschema mit FDs: welche Normalform, lossless-join Zerlegung
zu 2NF. Dann lossless-join Zerlegung zu 3NF. Warum ist Ergebnis noch nicht
BCNF?
Algebra
A.4. Relationale
Relationale Algebra
(cont.)
Weitere
Operationen
derzuRA
(cont.):
• ̈Viele
Multiple-Choice
Fragen
den
einzelnen Operatoren.
̈ Semi-Join
R 魁 S)
S :1 S) oder gilt (R 1true S) = (R × S)? Auch dabei z.B.: die
Beispiel:
gilt ((R
genau ̈Definition
Division.
Seien R, S der
Schemata
mit R { A1 : D1 ,…, An : Dn }
und S { B1 : E1 ,…, Bm : Em }
• Was versteht man im Hinblick auf die relationale Algebra unter minimalen Men̈ R
S = R { A1, ..., An} (R S )
gen?
̈
Schema des Ergebnisses:
̈
Eigenschaft:
̈
R S =
{ A1:D1 ,…,An:Dn }
R
R
F
mit F = { A1 ,…, An }
© Prof. J.C. Freytag, Ph.D.
( S)
̨""{ B1 ,…, Bm }
6.22
11
Anhang A. Prüfungsfragen
33
• Geben Sie eine Minimale Menge von Operatoren für die relationale Algebra an!
A.5. SQL
• Gegeben eine SQL-Beschreibung (DDL) eines Relationsschematas. Was kann aus
Primary-/Foreignkeybeziehungen geschlossen werden?
• Nach Einfügen von gegebenen Tupeln, wie sieht Reihenfolge der Ausgabe auf
SELECT * FROM tabelle aus?
• Anfrage als Text gegeben: wie sieht SQL-Abfrage dazu aus?
• Multiple-Choice-Frage zu korrellierten Anfragen
• Formulieren einer korrellierten SQL-Anfrage bei gegebenem Text, was die Anfrage
zu leisten hat
A.6. Joins
• Gegeben ein Algorithmus im Pseudocode zum Nested-Loop-Join. Leiten Sie den
entsprechenden Algorithmus für den Nested-Loop-Semijoin“ her!
”
• Herleiten der Join-Bäume bei verschiedenen Join-Reihenfolgen (bushy-tree etc.)
• Was sind die Vorteile des bushy-trees bei Multi-CPU-Systemen?
• Gegeben TS , PS , TR und PR , wie viele Seitenzugriffe sind nötig, wenn R (bzw. S)
die äußere Relation ist? (Herleiten des Ergebnisses)
• Wie kann generell bestimmt werden, welche Relation die äußere und welche die
innere sein sollte.
A.7. B-Bäume
• Geben Sie zwei Eigenschaften des B-Baumes an!
• Verändert sich beim Löschen zunächst Tiefe oder Breite des B-Baumes?
• Gegeben ein B-Baum mit Füllung. Wie sieht B-Baum nach Einfügen aus?
• Gegeben ein B-Baum mit Füllung. Wie sieht B-Baum nach Löschen aus?
A.8. XML
• Gegeben zwei Relationsschema mit Instanzen: wie sieht XML-Version davon aus?
• Wie sieht die entsprechende DTD aus?
• Wie müssen die Schlüsselbeziehungen eingebunden werden?
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005
Anhang A. Prüfungsfragen
34
A.9. Transaktionen
• Was bedeutet ACID?
• Welche ACID-Eigenschaft sichert der Concurrency-Manager, welche der ErrorRecovery-Manager des Transaktionsmanagers zu?
• Was ist ein Schedule?
• Was versteht man unter Serialisierbarkeit?
• Kann ein gegebener Schedule serialisiert werden?
DBS I – Grundlagen von Datenbanksystemen
25. Februar 2005