SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Semistrukturierte Daten
in 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

Weitere ähnliche Inhalte

Ähnlich wie Semistrukturierte Daten in relationalen Datenbanken

Data Mining und OLAP
Data Mining und OLAPData Mining und OLAP
Data Mining und OLAPmurat9393
 
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaOracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaPeter Ramm
 
Puppet: Designing modules & repositories
Puppet: Designing modules & repositoriesPuppet: Designing modules & repositories
Puppet: Designing modules & repositoriesinovex GmbH
 
Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?FromDual GmbH
 
SimpleDB - Chancen einer Cloud Datenbank
SimpleDB - Chancen einer Cloud DatenbankSimpleDB - Chancen einer Cloud Datenbank
SimpleDB - Chancen einer Cloud DatenbankONE Schweiz
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSpeedPartner GmbH
 
Datenbanksysteme/Datenbankmanagementsysteme
Datenbanksysteme/DatenbankmanagementsystemeDatenbanksysteme/Datenbankmanagementsysteme
Datenbanksysteme/DatenbankmanagementsystemeTatjana8
 
Cloud Computing für die Verarbeitung von Metadaten
Cloud Computing für die Verarbeitung von MetadatenCloud Computing für die Verarbeitung von Metadaten
Cloud Computing für die Verarbeitung von MetadatenMagnus Pfeffer
 

Ähnlich wie Semistrukturierte Daten in relationalen Datenbanken (9)

Data Mining und OLAP
Data Mining und OLAPData Mining und OLAP
Data Mining und OLAP
 
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaOracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
 
Puppet: Designing modules & repositories
Puppet: Designing modules & repositoriesPuppet: Designing modules & repositories
Puppet: Designing modules & repositories
 
Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?
 
SimpleDB - Chancen einer Cloud Datenbank
SimpleDB - Chancen einer Cloud DatenbankSimpleDB - Chancen einer Cloud Datenbank
SimpleDB - Chancen einer Cloud Datenbank
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
Datenbanksysteme/Datenbankmanagementsysteme
Datenbanksysteme/DatenbankmanagementsystemeDatenbanksysteme/Datenbankmanagementsysteme
Datenbanksysteme/Datenbankmanagementsysteme
 
Lambdaarchitektur für BigData
Lambdaarchitektur für BigDataLambdaarchitektur für BigData
Lambdaarchitektur für BigData
 
Cloud Computing für die Verarbeitung von Metadaten
Cloud Computing für die Verarbeitung von MetadatenCloud Computing für die Verarbeitung von Metadaten
Cloud Computing für die Verarbeitung von Metadaten
 

Mehr von Gerrit Beine

Auf Lesereise mit Frit und Fred
Auf Lesereise mit Frit und FredAuf Lesereise mit Frit und Fred
Auf Lesereise mit Frit und FredGerrit Beine
 
Mastering Cargo Cult
Mastering Cargo CultMastering Cargo Cult
Mastering Cargo CultGerrit Beine
 
Conway’s Law & Soziologie in der Software-Architektur
Conway’s Law & Soziologie in der Software-ArchitekturConway’s Law & Soziologie in der Software-Architektur
Conway’s Law & Soziologie in der Software-ArchitekturGerrit Beine
 
Beyond User Stories - Backlogs priorisieren, wenn es anspruchsvoll wird
Beyond User Stories - Backlogs priorisieren, wenn es anspruchsvoll wirdBeyond User Stories - Backlogs priorisieren, wenn es anspruchsvoll wird
Beyond User Stories - Backlogs priorisieren, wenn es anspruchsvoll wirdGerrit Beine
 
Mastering Cargo Cult - Dunning, Kruger & die Agile Bias Curve
Mastering Cargo Cult - Dunning, Kruger & die Agile Bias CurveMastering Cargo Cult - Dunning, Kruger & die Agile Bias Curve
Mastering Cargo Cult - Dunning, Kruger & die Agile Bias CurveGerrit Beine
 
Gut genug - Rahmenbedingungen für agile Architekturen
Gut genug - Rahmenbedingungen für agile ArchitekturenGut genug - Rahmenbedingungen für agile Architekturen
Gut genug - Rahmenbedingungen für agile ArchitekturenGerrit Beine
 
Beyond Agile – Ungewissheit mit der Real Option Theory meistern
Beyond Agile – Ungewissheit mit der Real Option Theory meisternBeyond Agile – Ungewissheit mit der Real Option Theory meistern
Beyond Agile – Ungewissheit mit der Real Option Theory meisternGerrit Beine
 
Backlog Priorisierung 2020: Wertmodelle & Simulationen von Intangibles zur Pr...
Backlog Priorisierung 2020: Wertmodelle & Simulationen von Intangibles zur Pr...Backlog Priorisierung 2020: Wertmodelle & Simulationen von Intangibles zur Pr...
Backlog Priorisierung 2020: Wertmodelle & Simulationen von Intangibles zur Pr...Gerrit Beine
 
Backlog Priorisierung mit Cost of Delay & Monte Carlo Simulationen
Backlog Priorisierung mit Cost of Delay & Monte Carlo SimulationenBacklog Priorisierung mit Cost of Delay & Monte Carlo Simulationen
Backlog Priorisierung mit Cost of Delay & Monte Carlo SimulationenGerrit Beine
 
Der hyperbolische Thread-Koeffizient
Der hyperbolische Thread-KoeffizientDer hyperbolische Thread-Koeffizient
Der hyperbolische Thread-KoeffizientGerrit Beine
 
Vom Projektleiter zum Product Owner
Vom Projektleiter zum Product OwnerVom Projektleiter zum Product Owner
Vom Projektleiter zum Product OwnerGerrit Beine
 
Die Testedimaryp - Über die Antimonie des agilen Testens in der Praxis
Die Testedimaryp - Über die Antimonie des agilen Testens in der PraxisDie Testedimaryp - Über die Antimonie des agilen Testens in der Praxis
Die Testedimaryp - Über die Antimonie des agilen Testens in der PraxisGerrit Beine
 
Vom Projektleiter zum Product Owner
Vom Projektleiter zum Product OwnerVom Projektleiter zum Product Owner
Vom Projektleiter zum Product OwnerGerrit Beine
 
Technische Schulden - mit Notizen
Technische Schulden - mit NotizenTechnische Schulden - mit Notizen
Technische Schulden - mit NotizenGerrit Beine
 
Technische Schulden
Technische SchuldenTechnische Schulden
Technische SchuldenGerrit Beine
 
Die Product Owner Toolbox
Die Product Owner ToolboxDie Product Owner Toolbox
Die Product Owner ToolboxGerrit Beine
 
Agile Coach zu werden ist nicht schwer... - mit Notizen
Agile Coach zu werden ist nicht schwer... - mit NotizenAgile Coach zu werden ist nicht schwer... - mit Notizen
Agile Coach zu werden ist nicht schwer... - mit NotizenGerrit Beine
 
Agile Coach zu werden ist nicht schwer...
Agile Coach zu werden ist nicht schwer...Agile Coach zu werden ist nicht schwer...
Agile Coach zu werden ist nicht schwer...Gerrit Beine
 

Mehr von Gerrit Beine (20)

Auf Lesereise mit Frit und Fred
Auf Lesereise mit Frit und FredAuf Lesereise mit Frit und Fred
Auf Lesereise mit Frit und Fred
 
Mastering Cargo Cult
Mastering Cargo CultMastering Cargo Cult
Mastering Cargo Cult
 
Conway’s Law & Soziologie in der Software-Architektur
Conway’s Law & Soziologie in der Software-ArchitekturConway’s Law & Soziologie in der Software-Architektur
Conway’s Law & Soziologie in der Software-Architektur
 
Beyond User Stories - Backlogs priorisieren, wenn es anspruchsvoll wird
Beyond User Stories - Backlogs priorisieren, wenn es anspruchsvoll wirdBeyond User Stories - Backlogs priorisieren, wenn es anspruchsvoll wird
Beyond User Stories - Backlogs priorisieren, wenn es anspruchsvoll wird
 
Mastering Cargo Cult - Dunning, Kruger & die Agile Bias Curve
Mastering Cargo Cult - Dunning, Kruger & die Agile Bias CurveMastering Cargo Cult - Dunning, Kruger & die Agile Bias Curve
Mastering Cargo Cult - Dunning, Kruger & die Agile Bias Curve
 
Gut genug - Rahmenbedingungen für agile Architekturen
Gut genug - Rahmenbedingungen für agile ArchitekturenGut genug - Rahmenbedingungen für agile Architekturen
Gut genug - Rahmenbedingungen für agile Architekturen
 
Beyond Agile – Ungewissheit mit der Real Option Theory meistern
Beyond Agile – Ungewissheit mit der Real Option Theory meisternBeyond Agile – Ungewissheit mit der Real Option Theory meistern
Beyond Agile – Ungewissheit mit der Real Option Theory meistern
 
Backlog Priorisierung 2020: Wertmodelle & Simulationen von Intangibles zur Pr...
Backlog Priorisierung 2020: Wertmodelle & Simulationen von Intangibles zur Pr...Backlog Priorisierung 2020: Wertmodelle & Simulationen von Intangibles zur Pr...
Backlog Priorisierung 2020: Wertmodelle & Simulationen von Intangibles zur Pr...
 
Backlog Priorisierung mit Cost of Delay & Monte Carlo Simulationen
Backlog Priorisierung mit Cost of Delay & Monte Carlo SimulationenBacklog Priorisierung mit Cost of Delay & Monte Carlo Simulationen
Backlog Priorisierung mit Cost of Delay & Monte Carlo Simulationen
 
Der hyperbolische Thread-Koeffizient
Der hyperbolische Thread-KoeffizientDer hyperbolische Thread-Koeffizient
Der hyperbolische Thread-Koeffizient
 
Broken by Design
Broken by DesignBroken by Design
Broken by Design
 
Vom Projektleiter zum Product Owner
Vom Projektleiter zum Product OwnerVom Projektleiter zum Product Owner
Vom Projektleiter zum Product Owner
 
Die Testedimaryp - Über die Antimonie des agilen Testens in der Praxis
Die Testedimaryp - Über die Antimonie des agilen Testens in der PraxisDie Testedimaryp - Über die Antimonie des agilen Testens in der Praxis
Die Testedimaryp - Über die Antimonie des agilen Testens in der Praxis
 
Vom Projektleiter zum Product Owner
Vom Projektleiter zum Product OwnerVom Projektleiter zum Product Owner
Vom Projektleiter zum Product Owner
 
Antifragilität
AntifragilitätAntifragilität
Antifragilität
 
Technische Schulden - mit Notizen
Technische Schulden - mit NotizenTechnische Schulden - mit Notizen
Technische Schulden - mit Notizen
 
Technische Schulden
Technische SchuldenTechnische Schulden
Technische Schulden
 
Die Product Owner Toolbox
Die Product Owner ToolboxDie Product Owner Toolbox
Die Product Owner Toolbox
 
Agile Coach zu werden ist nicht schwer... - mit Notizen
Agile Coach zu werden ist nicht schwer... - mit NotizenAgile Coach zu werden ist nicht schwer... - mit Notizen
Agile Coach zu werden ist nicht schwer... - mit Notizen
 
Agile Coach zu werden ist nicht schwer...
Agile Coach zu werden ist nicht schwer...Agile Coach zu werden ist nicht schwer...
Agile Coach zu werden ist nicht schwer...
 

Semistrukturierte Daten in relationalen Datenbanken

  • 1. Semistrukturierte Daten in relationalen Datenbanken Ein extrem pragmatischer Ansatz Gerrit Beine
  • 2. 24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 2 Inhalt ● Semistrukturierte Daten - bisher ● Idee des dynamischen Datenmodells ● Erfahrungen ● Perspektiven
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 8 Übersicht
  • 9. 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
  • 10. 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
  • 11. 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*
  • 12. 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
  • 13. 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
  • 14. 24.03.2009 Semistrukturierte Daten in relationalen Datenbanken 14 Gleich geht’s weiter