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“