Dynamisches und Anpassbares Schema?
Von: Danny Gerst (dannygerst@gmx.de) [Profil]
Datum: 26.04.2009 09:35
Message-ID: <75ih61F18rtk8U1@mid.uni-berlin.de>
Newsgroup: de.comp.datenbanken.misc
Datum: 26.04.2009 09:35
Message-ID: <75ih61F18rtk8U1@mid.uni-berlin.de>
Newsgroup: de.comp.datenbanken.misc
Hi, für eine Berichtsanforderung, die Daten aus den verschiedensten Quellen darstellen soll, bin ich auf der Suche nach einer geeigneten flexiblen Lösung. Das Problem kommt in der Art auch bei DWH (Data Warehouse) auf, doch wäre dieses zum jetzigen Zeitpunkt nicht praktikabel. Falls euch der Begriff Basisdatenbank in diesem Zusammenhang etwas sagt, ist das genau das Ziel was es zu erreichen gilt. Die Basisdatenbank hält die Daten nach dem ET aus dem ETL Prozess(Extract Transform Load) und dient als Ausgangsbasis für ein DWH. Ich habe eine Entität bspw. Kunde. Jede Quelle stellt den Kunden unterschiedlich da und auch die Berichtsanforderung ist von Fachbereich zu Fachbereich verschieden. Welche Lösung ist nun besser: Eine Enität Kunde in der Basisdatenbank, die nach dem ETL alle relevanten Daten aus den Quellen für die Berichte vorhält? Diese Lösung hat den Nachteil, dass Schemaänderungen in den Quellsystemen unter Umständen eine Änderung dieses Schemas erfordert. Im schlimmsten Fall die Löschung einiger Attribute. Damit müssen auch alle Berichte, die auf diese Tabelle aufbauen angepasst werden. Oder eine Tabellenstruktur, die es ermöglicht die Entität Kunde dynamisch zu beschreiben. Ich denke dabei an die Verwaltung der Attribute, Typen und Längen wie auch Fremdschlüsselbeziehungen in Tabellen. Das Schema kann so dynamisch angepasst werden ohne das ältere Daten verloren gingen. Dabei muss genausten die Versionisierung des Abgespeicherten Schemas im Auge behalten werden. Zur Verdeutlichung ein Beispiel: Tabelle "Entität" E_id Bezeichung Tabelle "Feld" F_id Bezeichung Type Tabelle "Entität_zu_Feld" E_id F_id Version Wert View "Kunde" select f.bezeichung, ef.wert from Entität e join Enität_zu_Feld ef on ef.e_id = e.e_id join Feld f on ef.f_id = f.f_id where e.bezeichung like 'Kunde' and ef.Version = 3; Leider finde ich hierzu keine Literatur oder ein Keyword mit dem ich in Google suchen könnte. Dies mag vllt damit zusammenhängen, dass dieser Ansatz nicht praktikabel ist. Oder bei größeren Datenvolumina die Performance drastisch verschlechtert. Hat einer von euch eine Idee? Vielen Dank im voraus, Danny[ Auf dieses Posting antworten ]
Antworten
- Joe N. (07.05.2009 23:23)
- de.rec.tanz (10.05.2009 20:47)
