Kapitel 7 - Entwurfstheorie

Werbung
Kapitel 7
Dr. Brigitte Mathiak
Relationale Entwurfstheorie
Teil 1: Normalisierung
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
2
Lernziele

• Charakterisierung "guter" relationaler Schemata:
- jede Relation entspricht genau einer Objektmenge - eventuell
unter Einbezug von N:1- oder 1:1-Relationships - oder genau
einer Relationship-Menge zwischen Objekten
- Redundanz ist eliminiert, alle Informationen sind repräsentierbar,
und es treten keinerlei "Änderungsanomalien" auf
a) Änderungen können bei Beachtung der Primärschlüssel- und
Fremdschlüsselbedingung keine Inkonsistenzen hervorrufen
b) alle Informationen lassen sich unter Wahrung der Primärschlüsselund Fremdschlüsselbedingung (ohne "Kunstgriffe") einfügen
c) Informationen können einzeln wieder gelöscht werden, ohne die
Primärschlüssel oder Fremdschlüsselbedingung zu verletzen
• Ausnahmen wenn „schlechte“ Schemata sinnvoll sind
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
3
Erste Beispiel: „Schlechtes“ Datenbankschema
ProfVorl
PersNr
2125
2126
Name
Sokrates
Russel
2127
…
Kopernikus
…
Titel
Ethik, Mäeutik, Logik
Erkenntnistheorie,
Wissenschaftstheorie, Bioethik
n.a.
…
Warum ist das eine schlechte Idee?
Jeder für sich mit Zettel und Stift; 5 min
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
4
Zu wenig Struktur
Pro Zelle darf immer nur ein Fakt stehen, sonst können diese
nicht einzeln abgefragt werden.
… sonst können sie nicht einzeln referenziert werden.
… sonst können keine Zusatzinformationen zu den Fakten
gespeichert werden.
… sonst werden Einfüge- und Löschoperationen einzelner Fakten
zu komplexen Stringoperationen.
(Siehe auch die Probleme, die bei Aufgabenblatt 1 entstanden
sind)
Wenn in jeder Zelle nur ein Fakt steht, heißt das
1. Normalform
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
5
Wie komme ich in die Erste Normalform?
Beispiel (falsch):
Eltern
Vater
Mutter
Kinder
Johann
Martha
{Else, Lucie}
Johann
Maria
{Theo, Josef}
Heinz
Martha
{Cleo}
In 1 NF
Datenbanken, WS 12/13
Eltern
Vater
Mutter
Kind
Johann
Martha
Else
Johann
Martha
Lucie
Johann
Maria
Theo
Johann
Maria
Josef
Heinz
Martha
Cleo
Kapitel 7: Relationale Entwurfstheorie
6
Aber …
… manchmal kann es sinnvoll sein, die Daten doch einfach so zu
speichern. Zum Beispiel:
• Die einzelnen Fakten stehen getrennt gar nicht zur Verfügung
• müssten erst aufwändig getrennt werden
• werden getrennt nicht benötigt (Achtung!!! Könnte sich ändern)
Weiterhin:
Im letzten Kapitel haben wir gesehen, dass es einen Mismatch
zwischen relationalem Datenmodell und objektorientierten
Datenmodell besteht.
Es gibt Datenbanken (objektrelationale), die es erlauben direkt
Objekte und Listen zu speichern und dann auch darauf
zuzugreifen.
Nachteil: Unterobjekte können nicht mehr direkt zugegriffen
werden, es muss über die Oberobjekte navigiert werden.
Das Schema wird komplexer, Anfragen werden schwieriger...
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
7
Exkurs: NF2-Relationen
Non-First Normal-Form-Relationen
Geschachtelte Relationen (Oracle: Nested Tables)
Eltern
Vater
Johann
Johann
Heinz
Datenbanken, WS 12/13
Mutter
Kinder
KName
KAlter
Martha
Else
5
Maria
Lucie
Theo
3
3
Martha
Josef
Cleo
1
9
Kapitel 7: Relationale Entwurfstheorie
8
Beispiel 2: "Schlechte" Relationenschemata
ProfVorl
PersNr
2125
2125
2125
...
2132
2137
Name
Sokrates
Sokrates
Sokrates
...
Popper
Kant
Datenbanken, WS 12/13
Rang Raum VorlNr
C4
226
5041
C4
226
5049
C4
226
4052
...
...
...
C3
52
5259
C4
7
4630
Kapitel 7: Relationale Entwurfstheorie
Titel
Ethik
Mäeutik
Logik
...
Der Wiener Kreis
Die 3 Kritiken
SWS
4
2
4
...
2
4
9
Beispiel 2: "Schlechte" Relationenschemata
ProfVorl
PersNr
2125
2125
2125
...
2132
2137
Name
Sokrates
Sokrates
Sokrates
...
Schlick
Kant
Rang Raum VorlNr
C4
226
5041
C4
226
5049
C4
226
4052
...
...
...
C3
52
5259
C4
7
4630
Titel
Ethik
Mäeutik
Logik
...
Der Wiener Kreis
Die 3 Kritiken
SWS
4
2
4
...
2
4
Update-Anomalien
Sokrates zieht um, von Raum 226 in R. 338. Was passiert?
Einfüge-Anomalien
Neue/r Prof ohne Vorlesungen?
Löschanomalien
Letzte Vorlesung einer/s Profs wird gelöscht? Was passiert?
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
10
Beispiel 2: „Bessere" Relationenschemata
Vorlesungen
Professoren
VorlNr
Titel
5001
Grundzüge
4
2137
5041
Ethik
4
2125
5043
Erkenntnistheorie
3
2126
52
5049
Mäeutik
2
2125
309
4052
Logik
4
2125
PersNr
Name
Rang
Raum
2125
Sokrates
C4
226
2126
Russel
C4
232
2127
Kopernikus
C3
310
2133
Popper
C3
2134
Augustinus
C3
SWS gelesen
Von
Sokrates zieht um, von Raum 226 in R. 338. Was passiert?
Neue/r Prof ohne Vorlesungen?
Letzte Vorlesung einer/s Profs wird gelöscht? Was passiert?
Mit den aufgeteilten Relationen treten die Anomalien nicht mehr auf.
Woher kann man wissen wann man aufteilen muss und wie und wann nicht?
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
11
Funktionale Abhängigkeiten
Ein Attribut a hängt von einem anderen Attribut b ab, wenn bei
Kenntnis von b, a klar bestimmt ist.
Beispiele: Die Personalnummer bestimmt den Vornamen, da man,
wenn man die Personalnummer kennt, den Vornamen
eindeutig heraussuchen kann.
Die Postleitzahl bestimmt die Stadt.
Das Autokennzeichen bestimmt die Autofarbe.
Allgemein hängen alle Attribute eines Objekts von der Identität
des Objekts ab. In einer Tabelle, alle Spalten vom Schlüssel.
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
12
Erste, zweite und dritte Normalform
The key, the whole key and nothing but the key.
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
13
1. Normalform
• Neben der eben gelernten Definition gibt es noch eine andere
Jede Relation braucht einen
Primärschlüssel
• Eine einfache Lösung für dieses Problem ist es in jeder Tabelle
einen Schlüssel künstlich zu erzeugen
• Das greift aber zu kurz
• Wichtig ist, dass es semantisch Sinn macht, die Attribute unter
einem Primärschlüssel zu führen, weil Sie zu einer Sinneinheit
gehören
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
14
2. Normalform
Jedes Attribut hängt vom
ganzen Primärschlüssel ab.
Gegenbeispiel:
PersNr, Name, Gehalt, Dienstwagennr, Kennzeichen, Kilometer
PersNr und Dienstwagennr sind zwar ein legitimer
Primärschlüssel, aber stehen für zwei verschiedene Entitäten
Formal kann man das Problem wieder dadurch lösen, dass man
künstliche einspaltige Primärschlüssel erzeugt
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
15
3. Normalform
Attribute müssen direkt vom
Primärschlüssel abhängen
Gegenbeispiel:
PersNr, Name, Gehalt, Dienstwagennr, Kennzeichen, Kilometer
Es entsteht dasselbe Problem wie bei der zweiten Normalform, nur subtiler.
Das Problem entsteht, wenn 1:n-Beziehungen innerhalb einer Tabelle gelöst
werden, aber auch bei festen 1:1-Beziehungen kann es problematisch
werden.
Fragen Sie sich für jedes Attribut:
• Gibt es für einen gegebenen Schlüssel nur eine sinnvolle Möglichkeit für den
Wert des Attributs? (funktionale Abhängigkeit)
• Beschreibt das Attribut dasselbe Objekt wie der Schlüssel?
• Möchten Sie vielleicht in anderem Kontext dieses Attribut referenzieren ohne
den Schlüssel?
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
16
Erste, zweite und dritte Normalform
The key, the whole key and nothing but the key.
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
17
Beispiel
Kind
Sofie
Sofie
Niklas
Niklas
...
…
Vater
Alfons
Alfons
Alfons
Alfons
...
…
Stammbaum
Mutter
Sabine
Sabine
Sabine
Sabine
...
…
Opa
Lothar
Hubert
Lothar
Hubert
Lothar
…
Oma
Linde
Lisa
Linde
Lisa
Martha
…
Was ist das Problem?
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
18
Beispiel
Kind
Sofie
Sofie
Niklas
Niklas
...
…
Vater
Alfons
Alfons
Alfons
Alfons
...
…
Stammbaum
Mutter
Sabine
Sabine
Sabine
Sabine
...
…
Opa
Lothar
Hubert
Lothar
Hubert
Lothar
…
Oma
Linde
Lisa
Linde
Lisa
Martha
…
Problem 1: Keine Spalte ist eindeutig und damit als einfacher
Primärschlüssel geeignet
Problem 2: {Kind, Opa} wäre ein eindeutiger Primärschlüssel,
aber Kind allein bestimmt bereits Vater und Mutter
Problem 3: Ein künstlicher Primärschlüssel hätte dasselbe
Problem
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
19
Beispiel
Kind
Sofie
Sofie
Niklas
Niklas
...
…
Vater
Alfons
Alfons
Alfons
Alfons
...
…
Stammbaum
Mutter
Sabine
Sabine
Sabine
Sabine
...
…
Opa
Lothar
Hubert
Lothar
Hubert
Lothar
…
Oma
Linde
Lisa
Linde
Lisa
Martha
…
Wie kann man die Relation verändern, dass die
Probleme nicht mehr auftreten?
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
20
Zerlegung (Dekomposition) von Relationen
Korrektheitskriterien für die Zerlegung von Relationenschemata:
1. Verlustlosigkeit
-
Die in der ursprünglichen Relationenausprägung Q des Schemas R
enthaltenen Informationen müssen aus den Ausprägungen
Q1, ..., Qn der neuen Relationenschemata R1, .., Rn
rekonstruierbar sein.
2. Abhängigkeitserhaltung
-
Die für R geltenden Anhängigkeiten
müssen auf die Schemata R1, ..., Rn übertragbar sein.
Satz: Jede Relation kann durch verlustlose und
abhängigkeitserhaltende Zerlegung in 3 NF gebracht werden.
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
21
Verlustlose Zerlegung – Die Informationen bleiben erhalten
Vater
Johann
Johann
Heinz
Eltern
Mutter
Martha
Maria
Martha
SELECT Vater, Kind FROM Eltern
Vater
Johann
Johann
Heinz
SELECT Mutter, Kind FROM Eltern
Mutter
Martha
Maria
Martha
Kind
Else
Theo
Cleo
Vater
Johann
Johann
Heinz
Datenbanken, WS 12/13
Kind
Else
Theo
Cleo
Natural Join
Mutter
Martha
Maria
Martha
Kapitel 7: Relationale Entwurfstheorie
Kind
Else
Theo
Cleo
Kind
Else
Theo
Cleo
22
Abhängigkeiten bleiben erhalten
Jedes Kind hat genau eine Mutter und genau einen Vater
Eltern können jedoch auch mehrere verschiedene Kinder haben
Ein Vater kann mit mehreren verschiedenen Müttern Kinder
haben. Und umgekehrt. Es bestimmt keine Bindung im Sinne
der Relation
Kind
*
*
1
1
Mutter
Vater
*
Kind
Kind
1
1
Mutter
Vater
Datenbanken, WS 12/13
*
Kapitel 7: Relationale Entwurfstheorie
23
Biertrinker-Beispiel
Biertrinker
Lokal
Gast
Bier
Einstein
Gniffke
Pils
Einstein
Anders
Hefeweizen
Mephisto
Gniffke
Hefeweizen
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
24
Biertrinker-Beispiel: Informationsverlust
Lokal
Einstein
Einstein
Mephisto
Biertrinker
Gast
Gniffke
Anders
Gniffke
SELECT Lokal, Gast FROM Biertrinker
Bier
Pils
Hefeweizen
Hefeweizen
SELECT Gast, Bier FROM Biertrinker
Lokal
Gast
Gast
Bier
Einstein
Gniffke
Gniffke
Pils
Einstein
Anders
Anders
Hefeweizen
Mephisto
Gniffke
Gniffke
Hefeweizen
Lokal
Einstein
Einstein
Einstein
Mephisto
Mephisto
Datenbanken, WS 12/13
Natural Join
Gast
Bier
Gniffke
Pils
Gniffke
Hefeweizen
Anders
Hefeweizen
Gniffke
Pils
Gniffke
Hefeweizen
Kapitel 7: Relationale Entwurfstheorie
25
Erläuterung des Biertrinker-Beispiels
Es gibt keine festen Abhängigkeiten zwischen den Attributen.
Jeder kann in jedem beliebigen Lokal das Bier bestellen, das er will.
Damit kann diese Relation nicht zerlegt werden ohne
Informationsverlust.
Es können aber auch keine Abhängigkeiten verletzt werden.
Wie bringt man die Biertrinker in 3. Normalform?
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
26
Verlustige Zerlegung – Die Informationen sind weg!
Vater
Johann
Johann
Heinz
Eltern
Mutter
Martha
Maria
Martha
SELECT Vater, Kind FROM Eltern
Vater
Johann
Johann
Heinz
Kind
Else
Theo
Cleo
SELECT Mutter FROM Eltern
Mutter
Martha
Maria
Martha
Kind
Else
Theo
Cleo
Natural Join
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
27
Abhängigkeiten bleiben nicht erhalten
In der neuen Mutterrelation fehlt die Verbindung zum Kind!
*
1
Vater
*
Kind
Kind
*
1
Mutter
Kind
1
1
Mutter
Vater
Datenbanken, WS 12/13
*
Kapitel 7: Relationale Entwurfstheorie
28
Aber…
… manchmal möchte man doch, dass die Fakten in einer Relation
zusammen stehen.
Warum???
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
29

Data Warehouse (ganz kurz)
Das Data Warehouse dient dem Reporting von
wirtschaftsrelevanten Daten an z.B. das Management.
Ziel: Zu bestimmten Zeitpunkten alle relevanten Daten aus der
Datenbank zu ziehen und dann für statistische Untersuchungen
zur Verfügung zu stellen
Diese Daten werden typischerweise in
nur ganz wenige Relationen
geschrieben (Stichwort Sternschema),
• da sie sich nicht ändern werden
• da man sich so Joins bei den Abfragen
spart
• da man so automatisch statische
Analysen laufen lassen kann
Aus Wikipedia (Stern_Schema)
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
30

Triplifizierung (vereinfacht)
TripleStore
Subjekt
Prädikat
Objekt
Professor
hatPrädikat
hatRaum
Sokrates
istInstanzVon
Professor
Sokrates
hatRaum
226
hatRaum
hatObjektTyp
integer
Sokrates
hältVorlesung
Ethik
Ethik
hatSWS
4
hört
hatSubjektTyp
Mensch
Professor
istEin
Mensch
Student
istEin
Mensch
hört
hatObjektTyp
Vorlesung
Carnap
hört
Ethik
Carnap
istInstanzVon
Student
…
…
…
Vor- und Nachteile?
Es ist alles in einer Tabelle
Es ist alles maximal normalisiert
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
31

Triplifizierung (vereinfacht)
TripleStore
Subjekt
Prädikat
Objekt
Professor
hatPrädikat
hatRaum
Sokrates
istInstanzVon
Professor
Sokrates
hatRaum
226
hatRaum
hatObjektTyp
integer
Sokrates
hältVorlesung
Ethik
Ethik
hatSWS
4
hört
hatSubjektTyp
Mensch
Professor
istEin
Mensch
Student
istEin
Mensch
hört
hatObjektTyp
Carnap
hört
Carnap
istInstanzVon
…
…
TripleStore
Vorlesung
Subjekt
Prädikat
Ethik
Professor
istInstanz
Student
Sokrates
istInstanzVon
…
Sokrates
istInstanz
Objekt
nein
Professor
???
Woher weiß ich, ob die Daten überhaupt stimmen?
Woher weiß ich, was Daten sind und was zur Struktur gehört?
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
32
Triplifizierung (und verwandte Methoden z.B. DOM)

• Wird eingesetzt, wenn die Datenstruktur nicht bekannt ist oder
sich noch ändern kann
• Eindeutiger Vorteil ist die Vernetzbarkeit. Jemand anders kann
seinen eigenen TripleStore einfach ankoppeln und schon hat
man doppelt so viele Daten
• Ein Nachteil ist die Überprüfung von Konsistenz
• Was ist in dem Zusammenhang überhaupt eine Inkonsistenz?
• A istInstanzVon B und B istInstanzVon A (schwierig)
• A istKindVon B und B istKindVon C und C istKindVon A
(schwierig zu berechnen)
• Das Problem ist verwandt mit Logik
• Weiterer Nachteil ist die Navigierbarkeit:
• Beispiel: Gib alle Personen aus (erfordert transitive Hülle)
• Es ist deutlich einfacher, wenn man die Prädikate und Typen
von vornherein festlegt, leider auch weniger flexibel
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
33
Zwischenfazit
Vorteile der Normalisierung
• Es können keine Anomalien auftreten
Nachteil der Normalisierung
• Unter Umständen werden Anfragen langsamer, da mehr Joins
notwendig sind
• Es gibt verschiedene Standardmodelle, die nicht normalisiert
oder sogar übernormalisiert sind
• Vor- und Nachteile sind im Einzelfall abzuwägen
• Im Normalfall (z.B. in der Prüfung) gilt: 3 NF ist am Besten
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
34

Teil 2: Entwurfsmuster
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
35

Lernziel
Komplexe Datentypen wie Listen, Bäume und Graphen in SQL
effizient darstellen
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
36

Motivation
Bei der Umsetzung von UML haben wir bisher nur Assoziation,
Generalisierung und Attribute betrachtet, doch was ist mit
komplexen Datentypen wie:
Listen, Stacks, Heaps, Bäumen, Graphen, Maps, …?
Diese werden nativ nicht von relationalen Datenbanken
unterstützt (mit Ausnahmen, wie etwa XML), können aber
dargestellt werden.
Allerdings haben diese Darstellungen verschiedene Vor- und
Nachteile.
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
37

Listen
TODOs
ID
Titel
next
Darstellung als verkettete Liste:
1
aufräumen
2
Hauptproblem ist die Ineffizienz
2
Zur Uni gehen
3
3
Party
null
der transitiven Hülle
Beispiel: Wie viele TODOs kommen noch nach ‚aufräumen‘`?
Gib mir alle Titel in der Listenreihenfolge aus.
Weiteres Problem ist die Datenintegrität. (next sollte unique sein)
TODOs
Darstellung wie Array:
ID
Titel
Index
Hauptproblem ist die Verwaltung
1
aufräumen
1
von Inserts und Deletes
2
Zur Uni gehen
2
3
Party
3
Beispiel: Lösche ‚aufräumen‘.
Füge ‚Hausaufgaben‘ zwischen ‚Uni‘ und ‚Party‘ ein.
Vorteil: Anfragen gehen meist schnell und unproblematisch.
Im Idealfall kann die Reihenfolge aus den Werten mit ORDER BY
berechnet werden (z.B. aus ID oder einem Timestamp)
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
38
Bäume

simplifiedDOM
ID
type
1
element
DOM:
2
element
Problem ist wieder die
3
element
schlechte Performanz
4
text
von Abfragen wie:
Welchen Text enthält Element x?
Auf welcher Hierarchieebene ist Element x?
Was sind die Vorgänger?
content
parent
next
html
null
null
head
1
3
body
1
null
Test!
3
null
Leider sind diese Art Abfragen äußerst typisch für Operationen mit
XML-Dokumenten.
Dasselbe Problem tritt auf für andere Baumstrukturen, z.B.
Bauteile eines Autos
Auto -> Motor -> Einspritzpumpe -> Kurbelwelle
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
39
Bäume (Forts.) – Pre-post-table

Statt parent und next wird die Pre- und Postorder gespeichert.
Aus Implementing Filesystems by Tree-aware DBMSs.
Alexander Holupirek, and Marc H. Scholl. In Proc. VLDB 2008 PhD Workshop. pp. 1623-1630, 2008.
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
40

Bäume (Forts.) – Pre-post-table
Elternknoten
Nachfolger
Vorgänger
Kindknoten
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
41
Bäume (Forts.) – Pre-post-table

Wenn man noch die Höhe (level) im Baum dazu nimmt, kann man
fast alle sinnvollen Anfragen nativ in effizientem SQL stellen.
Beispiel: Welcher Text steht unter Element x?
SELECT n.content FROM nodes n, nodes x
WHERE x.ID = ‘x‘ AND x.post < n.post AND x.pre> n.pre
AND n.type = text ORDER BY n.post;
Welcher ist der Vaterknoten?
SELECT p.ID FROM nodes p, nodes x
WHERE x.ID = ‘x‘ AND x.post > p.post AND x.pre < p.pre
AND x.level = p.level + 1;
Wie viele Knoten kommen noch nach x?
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
42
Careting (ORDPATH)

Im das Einfügeproblem in den Griff zu bekommen, kann man
Carets benutzen.
Regel 1: Ein Kindknoten verlängert den Code des Elternknoten
Beispiel: 1.5.3.9. ist der Elternknoten von 1.5.3.9.1
Regel 2: Geschwister sind in der korrekten Reihenfolge abgelegt
Beispiel: 1.5.3.9.1 kommt vor 1.5.3.9.3
Regel 3: Gerade Indexzahlen werden für Generationen ignoriert
Beispiel: 1.5.3.9. ist der direkte Elternknoten von 1.5.3.9.2.4.3
Geschwister können so immer dazwischen kopiert werden
Regel 4: Root heißt 1 und alle Knoten enden auf Ungerade
Leider kann man das nicht mehr nativ in SQL abfragen.
Siehe auch [ORDPATHs: insert-friendly XML node labels. A. O'Neil, et al. Proc. ACM
SIGMOD Management of data, pp. 903-908, 2004] wird eingesetzt von SQL Server
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
43

Fazit – Teil 2
Es gibt mehrere Möglichkeiten komplexe Datenstrukturen in
Datenbanken abzubilden.
Wir haben hier Listen und Bäume betrachtet (andere
Datenstrukturen funktionieren ähnlich)
Man hat (vereinfacht gesagt) die Auswahl zwischen schnellen
Anfragen mit Indexzahlen und schnellen Änderungsoperationen
mit Zeigern.
Es kommt also auf die Anwendung an.
Datenbanken, WS 12/13
Kapitel 7: Relationale Entwurfstheorie
44
Herunterladen