Semistrukturierte Daten in relationalen Datenbanken
Click here to load reader
-
Upload
gerrit-beine -
Category
Software
-
view
463 -
download
2
Transcript of Semistrukturierte Daten in relationalen Datenbanken
Semistrukturierte Datenin relationalen Datenbanken
Ein extrem pragmatischer Ansatz
Gerrit Beine
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 2
Inhalt
● Semistrukturierte Daten - bisher● Idee des dynamischen Datenmodells● Erfahrungen● Perspektiven
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 3
Semistrukturierte Daten
● Keine allgemeine Struktur● Tragen selbst Strukturinformationen● Kein allgemeines ERD möglich, weil
– Objekte unterscheiden sich
– Objekte besitzen unbekannte Attribute
– Objekte können komplett abweichen
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 4
Bisherige Ansätze
● Wenn man nur einen Hammer kennt...● Speicherung in RDB statt XML, LDAP● Neue Attribute durch neue Tabellenspalten● Probleme
– Keine sauberen Updates möglich
– Langsam, da viele NULL-Werte
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 5
Bisherige Ansätze
● Lösung 1– Ergänzte Attribute in zusätzlicher Tabelle
– Zwei Tabellen pro Entität
– Extreme Performanceeinbußen (Joins!)
● Lösung 2– Auslieferung vordefinierte „Anwenderspalten“
– begrenzte Anzahl, Datentypen
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 6
Idee des dynamischen Datenmodell
● 2006 während Diplomarbeit entstanden● Aufgabe: Reengineering einer Artikeldatenbank● Extrem viele semistrukturierte Daten● Technologische Basis:
– .NET 2.0
– NHibernate
– MS SQL Server 2005
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 7
Idee des dynamischen Datenmodell
● Daten nicht anhand ihrer Struktur speicher● Metamodell des ERD in SQL ablegen:
– Typen
– Entitäten
– Attribute
– Objekte
– Wertetabellen für primitive Typen
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 8
Übersicht
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 9
Idee des dynamischen Datenmodell
● Vorteile– Extrem schnelle Updates
– Konstante Zahl von Tabellen
● Nachteile– Extrem komplexe Queries
– Unglaublich langsame Joins
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 10
Idee des dynamischen Datenmodell
● Lösungen für die Nachteile– Views für Klassen dynamisch erzeugen
– Mit INSTEAD-OF Triggern wie Tabellen nutzen
– Umschreiben der CUD-Statements
– Neuanlage der Views bei Änderung der Klasse
– Einführung von Vererbung
– Updatesicherheit durch Editierflags
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 11
Erfahrungen
● Erster Performancetest– 1 Million Artikeldaten schreiben: 30 Stunden
– *gnarz*
– Logging von NHibernate abschalten
– 1 Million Artikeldaten schreiben: 3 Minuten
– *strahl*
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 12
Erfahrungen
● Anwendung auf SQL Server 2005– Keine spürbaren Performancenachteile
– Getestet auf Minimal-System (512 MB RAM)
● Einschränkungen– Notwendigkeit von INSTEAD-OF Triggern o.ä.
– Stored Procedures von Triggern erzeugbar
– PostgreSQL, MS SQL Server 2005
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 13
Ausblick
● Vergleich mit LDAP Extensible Object● Objekte mit mehreren Klassen● Portierung auf zusätzliche DBMS● Untersuchungen zur Performance
24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 14
Gleich geht’s weiter