Seminarvortrag ” Schemaanpassungen“

Werbung
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Seminarvortrag Schemaanpassungen“
”
Sebastian Rönnau
Universität der Bundeswehr München
4. März 2004
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Gliederung
Notwendigkeit der Schema-Evolution
Einleitung
Notwendigkeit der Schema-Evolution
Theoretische Überlegungen
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Praktische Anwendung
Ein temporales Data-Warehouse
Schema-Evolution in SQL
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Gliederung
Notwendigkeit der Schema-Evolution
Warum ist eine Änderung des Datenbankschemas
notwendig?
I
I
Datenbanken sind üblicherweise über einen längeren Zeitraum
im Einsatz, im Bankensektor ist eine Lebensdauer von 30
Jahren nicht unüblich.
Auch wenn neue Datenbanksysteme eingeführt werden, ist der
Zugriff auf die alten Datenbestände oft unerlässlich. Gründe
hierfür können sein:
I
I
I
Steuerfragen / Produkthaftung
Datamining
Kundendatenbanken
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Gliederung
Notwendigkeit der Schema-Evolution
Ein weitsichtiges Datenbankdesign zahlt sich aus
Änderungen des Datenbankdesigns sind teuer“, sie erfordern neben
”
einer Änderung in der Datenbank meist auch ein Anpassen der
Benutzeranwendungen.
Nicht alle Eventualitäten sind vorhersehbar! Bsp.: Einführung von
email-Adressen als Bestandteil der personengebundenen
Informationen Mitte der 90er Jahre.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Typen-Evolution
Schon kleinste Änderungen von Typen können gravierende Folgen
haben.
Beispiel: Umstellung der Postleitzahlen von vier auf fünf Stellen
1993. Obwohl die Typen an sich zueinander weitgehend kompatibel
sind, ergeben sich in der Anwendung Probleme:
Die Umrechnung erfordert eine zusätzliche Information, die
Adresse.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Konvertierungsmöglichkeiten bei Typen
I
Eager conversion“: Alle Auftreten des Typs in der Datenbank
”
werden unmittelbar konvertiert.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Konvertierungsmöglichkeiten bei Typen
I
Eager conversion“: Alle Auftreten des Typs in der Datenbank
”
werden unmittelbar konvertiert.
I
Lazy conversion“: Erst, wenn auf eine Instanz des Typs
”
zugegriffen wird, wird sie konvertiert. Sinnvoll bei sehr großen
Datenbeständen.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Konvertierungsmöglichkeiten bei Typen
I
Eager conversion“: Alle Auftreten des Typs in der Datenbank
”
werden unmittelbar konvertiert.
I
Lazy conversion“: Erst, wenn auf eine Instanz des Typs
”
zugegriffen wird, wird sie konvertiert. Sinnvoll bei sehr großen
Datenbeständen.
I
Type versioning“: Es wird nur eine neue Version des Typs
”
angelegt. Bisherige Auftreten des Typs werden nicht geändert;
eine Konvertierungsfunktion stellt die Korrekte Darstellung
des Typs in der aktuellen Version sicher.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Modifizieren von Relationen
Es existieren drei Möglichkeiten, wie Relationen geändert werden
können:
I
Eine neue Tabelle / ein neues Objekt wird angelegt.
I
Eine Tabelle bzw. ein Objekt wird gelöscht.
I
Eine Relation zwischen zwei Tabellen / Objekten wird
geändert.
Dabei muss immer beachtet werden, dass existierende Schlüssel
korrekt geändert werden um Inkonsistenzen zu vermeiden.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Eine Relationenänderung am Beispiel einer Bank
Branch A
Branch B
Branch C
Helen (Account 101)
Edward (Account 301)
Mike (Account 102)
Michael (Account 302)
...
...
...
John (Account 209)
Michael (Account 210)
...
Abbildung: Die Bankfiliale B wird geschlossen, ihre Kunden müssen auf die
beiden anderen Filialen verteilt werden.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Lösungsmöglichkeit für das Zugreifen auf ältere
Schemaversionen:
I
Bevor eine Schema-Änderung durchgeführt wird, wird ein
Datenbank-Snapshot durchgeführt.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Lösungsmöglichkeit für das Zugreifen auf ältere
Schemaversionen:
I
Bevor eine Schema-Änderung durchgeführt wird, wird ein
Datenbank-Snapshot durchgeführt.
I
Dadurch auch die Möglichkeit von Was-wäre-wenn-Szenarios“.
”
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Lösungsmöglichkeit für das Zugreifen auf ältere
Schemaversionen:
I
Bevor eine Schema-Änderung durchgeführt wird, wird ein
Datenbank-Snapshot durchgeführt.
I
Dadurch auch die Möglichkeit von Was-wäre-wenn-Szenarios“.
”
Mehrere Versionen eines Schemas können parallel genutzt
werden, z.B. für Übergangszeiten.
I
I
Erfordert eine Middleware.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
User
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Middleware
SELECT / INSERT
Snapshot A−3
(outdated)
Snapshot A−4
(outdated)
SELECT
Snapshot A−2
Time
Snapshot A−1
Abbildung: Zugriff auf ein Snapshot-System über eine Middleware.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Probleme des Snapshot-Modells
I
Schreiboperationen sind nur auf der / die aktuelle Version(en)
möglich.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Probleme des Snapshot-Modells
I
Schreiboperationen sind nur auf der / die aktuelle Version(en)
möglich.
I
Das Schreiben in parallele Versionen ist aufwändig zu
koordinieren.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Probleme des Snapshot-Modells
I
Schreiboperationen sind nur auf der / die aktuelle Version(en)
möglich.
I
Das Schreiben in parallele Versionen ist aufwändig zu
koordinieren.
I
Das Suchen in älteren Snapshots kann sehr zeitintensiv sein.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Probleme des Snapshot-Modells
I
Schreiboperationen sind nur auf der / die aktuelle Version(en)
möglich.
I
Das Schreiben in parallele Versionen ist aufwändig zu
koordinieren.
I
Das Suchen in älteren Snapshots kann sehr zeitintensiv sein.
I
Snapshots enthalten viele redundante Informationen.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Probleme des Snapshot-Modells
I
Schreiboperationen sind nur auf der / die aktuelle Version(en)
möglich.
I
Das Schreiben in parallele Versionen ist aufwändig zu
koordinieren.
I
Das Suchen in älteren Snapshots kann sehr zeitintensiv sein.
I
Snapshots enthalten viele redundante Informationen.
Abhilfe:
I
I
I
Snapshots in größeren Abständen anlegen (jährlich).
Nur Teile, die sich geändert haben, speichern.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
2. Lösungsmöglichkeit
I
Erweitern einer Datenbank um eine temporale Komponente:
Daten erhalten eine zusätzliche temporale Dimension: Jedes
Schema-Element E wird über zwei Zeitstempel für Anfang
Ts (E ) und Ende Te (E ) zeitlich eingeordnet, mit
Te (E ) > Ts (E ).
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
2. Lösungsmöglichkeit
I
Erweitern einer Datenbank um eine temporale Komponente:
Daten erhalten eine zusätzliche temporale Dimension: Jedes
Schema-Element E wird über zwei Zeitstempel für Anfang
Ts (E ) und Ende Te (E ) zeitlich eingeordnet, mit
Te (E ) > Ts (E ).
I
Dies ermöglicht das Erstellen von sog. Strukturversionen (SV).
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
2. Lösungsmöglichkeit
I
Erweitern einer Datenbank um eine temporale Komponente:
Daten erhalten eine zusätzliche temporale Dimension: Jedes
Schema-Element E wird über zwei Zeitstempel für Anfang
Ts (E ) und Ende Te (E ) zeitlich eingeordnet, mit
Te (E ) > Ts (E ).
I
Dies ermöglicht das Erstellen von sog. Strukturversionen (SV).
I
Jede Änderung des Schemas erzeugt eine neue
Strukturversion.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Evolution von Typen und Relationen
Schema-Versionierung durch Snapshots
Temporale Datenbank-Erweiterung
Darstellung unterschiedlicher Strukturversionen
I
Zu zwei (nebeneinanderliegenden) Strukturversionen SVn und
SVn+1 exisiteren zwei sog. MapF -Funktionen, die die
Unterschiede zwischen den Versionen darstellen.
I
Durch das Verwenden von zwei Funktionen lässt sich beliebig
zwischen den SV navigieren.
I
Mit Hilfe der MapF -Funktionen lassen sich auch
Gewichtungen zwischen den SV angeben.
I
Beispiel: Bevoelkerung (TschechischeRepublik) =
0, 6 ∗ Bevoelkerung (Tschechoslovakei)
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Ein temporales Data-Warehouse
Schema-Evolution in SQL
Temporal Data Warehouse
Fact Data
Structural Mappings
Data (MapF)
SV1
SV2
SV3
SV4
Admin Tool
Structure Data
Time
User
Transformer
Data Mart
Abbildung: Ein temporales Data-Warehouse.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Ein temporales Data-Warehouse
Schema-Evolution in SQL
SQL bietet Sprachkonstrukte zum Modifizieren des
Datenbankschemas.
I
Diese Kontrukte sind erst ab SQL-99 hinreichend mächtig, um
auch komplexe Änderungen zu modellieren.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Ein temporales Data-Warehouse
Schema-Evolution in SQL
SQL bietet Sprachkonstrukte zum Modifizieren des
Datenbankschemas.
I
Diese Kontrukte sind erst ab SQL-99 hinreichend mächtig, um
auch komplexe Änderungen zu modellieren.
I
Keine Datenbank implementiert diesen Standard, jeder
Anbieter verwendet einen eigenen Dialekt.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Ein temporales Data-Warehouse
Schema-Evolution in SQL
SQL bietet Sprachkonstrukte zum Modifizieren des
Datenbankschemas.
I
Diese Kontrukte sind erst ab SQL-99 hinreichend mächtig, um
auch komplexe Änderungen zu modellieren.
I
Keine Datenbank implementiert diesen Standard, jeder
Anbieter verwendet einen eigenen Dialekt.
I
Anwendungssoftware / Middleware muss dadurch auf eine
bestimmte Datenbank zugeschnitten werden oder die
Modifikationen umständlich über einfache“ SQL-Befehle
”
simulieren, was äußerst ineffizient ist.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Ein temporales Data-Warehouse
Schema-Evolution in SQL
Oracle:
ALTER TABLE <table−name> MODIFY <column−name>
[<data−type>] [<default−clause>] [NOT NULL]
DB2:
ALTER TABLE <table−name> ALTER COLUMN <column−name>
{SET DATA TYPE <data−type>
| ADD SCOPE <typed−table−name>}
Sybase: ALTER TABLE <table−name> REPLACE <column−name>
<default−clause>
Abbildung: SQL-Dialekte von bedeutenden DBMS, die sich sowohl in Syntax als auch Semantik gravierend unterscheiden.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Zusammenfassung (1)
I
Datenbanken haben eine hohe Lebensdauer; über einen
längeren Zeitraum müssen auch alte Daten verfügbar sein.
I
Eine Änderung des Datenbankschemas ist im Laufe der Zeit
oft unvermeidbar.
I
Schema-Modifikationen haben oft unerwünschte Seiteneffekte
und sind teuer“.
”
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Zusammenfassung (2)
I
Durch Snapshots lassen sich verschiedene Versionen eines
Schemas verwalten.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Zusammenfassung (2)
I
Durch Snapshots lassen sich verschiedene Versionen eines
Schemas verwalten.
I
Eine Middleware muss Anfragen an den gewünschten
Snapshot weiterleiten.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Zusammenfassung (2)
I
Durch Snapshots lassen sich verschiedene Versionen eines
Schemas verwalten.
I
Eine Middleware muss Anfragen an den gewünschten
Snapshot weiterleiten.
I
Das Erweitern des Datenbankschemas durch eine temporale
Dimension ermöglicht das Erstellen von Strukturversionen.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Zusammenfassung (2)
I
Durch Snapshots lassen sich verschiedene Versionen eines
Schemas verwalten.
I
Eine Middleware muss Anfragen an den gewünschten
Snapshot weiterleiten.
I
Das Erweitern des Datenbankschemas durch eine temporale
Dimension ermöglicht das Erstellen von Strukturversionen.
I
Durch MapF -Funktionen können Unterschiede zwischen den
SV dargestellt werden.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Zusammenfassung (3)
I
Das temporale Modell ist bereits als Data Warehouse
implementiert.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Zusammenfassung (3)
I
Das temporale Modell ist bereits als Data Warehouse
implementiert.
I
Viele unterschiedliche SQL-Dialekte verhindern eine
einheitliche Definition von Befehlen zur Schema-Modifikation.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Ausblick (1)
Die Datenbankhersteller zeigen derzeit wenig Interesse, ihre
Schnittstellen zu standardisieren.
Sie arbeiten mit Anbietern von Middleware zusammen, um
Schemaupdates selber durchführen zu können (die dem Kunden
teuer verkauft werden, siehe Jahr-2000-Problem oder
Euro-Umstellung).
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Ausblick (2)
Eine einheitliche Schnittstelle könnte die Kunden von dieser
Marktmacht unabhängiger machen. Allerdings bedeuten
Umstellungen in der Datenbank immer auch Änderungen in der
Middleware, so dass die Middware-Anbieter weiterhin einbezogen
werden müssten.
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Einleitung
Theoretische Überlegungen
Praktische Anwendung
Zusammenfassung und Ausblick
Zusammenfassung
Ausblick
Fragen?
Sebastian Rönnau
Seminarvortrag Schemaanpassungen“
Herunterladen