Datenbanken Unit 12: NoSQL-Datenbanken und...

47
Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung Datenbanken Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald Ortner

Transcript of Datenbanken Unit 12: NoSQL-Datenbanken und...

Page 1: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

DatenbankenUnit 12: NoSQL-Datenbanken und XML

Ronald Ortner

18. VI. 2018

Ronald Ortner

Page 2: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Outline

1 Organisatorisches

2 NoSQL: Diverse Ansätze

3 NoSQL: Objekt-relationale DatenbankenObject-Relational Impedance MismatchObjekt-relationale Erweiterungen

4 XML

5 Normalisierung

Ronald Ortner

Page 3: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Outline

1 Organisatorisches

2 NoSQL: Diverse Ansätze

3 NoSQL: Objekt-relationale DatenbankenObject-Relational Impedance MismatchObjekt-relationale Erweiterungen

4 XML

5 Normalisierung

Ronald Ortner

Page 4: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Organisatorisches

Nächste Woche Fragestunde in der VO

UE entfällt nächste Woche

Ronald Ortner

Page 5: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Outline

1 Organisatorisches

2 NoSQL: Diverse Ansätze

3 NoSQL: Objekt-relationale DatenbankenObject-Relational Impedance MismatchObjekt-relationale Erweiterungen

4 XML

5 Normalisierung

Ronald Ortner

Page 6: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

NoSQL

NoSQL:Sammelbegriff für alternative Datenbanklösungen, die das traditionellerelationale Schema nicht implementieren.

NoSQL fasst völlig unterschiedliche Ansätze für Lösungunterschiedlicher Probleme zusammen:

Verteilte DatenbankenGraph DatenbankenKey-Value und Document Stores(Wide) Column StoresObjekt- und objektrelationale Datenbanken

Ronald Ortner

Page 7: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Verteilte Datenbanken

Große Datenmengen können oft nicht mehr auf einem Rechnergespeichert werden.

verteilte Datenbanken

Umsetzung wirft mehrere technische Probleme auf:Wie soll aufgeteilt werden? (Fragmentierung und Allokation)Wie werden Anfragen bearbeitet?Wie können Transaktionen konsistent durchgeführt werden?

Ronald Ortner

Page 8: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Key-Value und Document Stores

Key-Value Store:funktioniert wie Map in Java, wobei Value sehr große Datei seinkannDie Values haben i.a. keinen einheitlichen Daten- bzw. Dateityp.Zugriff erfolgt immer über Key.

Document Stores:verallgemeinern Key-Value StoreSuchmöglichkeit auch über Values

Ronald Ortner

Page 9: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Graph Datenbanken

Graph Datenbanken erlauben die Speicherung vernetzter Daten(Graphen).

Speicherung von Datenobjekten als GraphSowohl Knoten als auch Kanten besitzen Attribute.Graphenspezifische Abfragen schneller als in relationem System.Beispiele:

Welche Schauspieler haben mit Christopher Walken in einem Filmgespielt?Wie komme ich am schnellsten mit öffentlichen Verkehrsmitteln vonMariazell nach Kirchberg in Tirol?Welche Artikel haben Kunden gekauft, die diesen Artikel gekaufthaben?

Ronald Ortner

Page 10: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Row Store vs. Column Store

Typischerweise werden Tabellen zeilenweise gespeichert.

Bei vielen Spalten, kann es aus Performancegründen u.U. auchbesser sein, spaltenweise zu speichern:

Die meisten Abfragen betreffen nur wenige Spalten.Spaltenwerte sind ähnlicher und können leichter komprimiertwerden. Verwendung von Wörterbuch-Tabelle

(s. Bsp. auf Folien von A. Kemper)

Ronald Ortner

Page 11: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Row Store vs. Column Store

Typischerweise werden Tabellen zeilenweise gespeichert.Bei vielen Spalten, kann es aus Performancegründen u.U. auchbesser sein, spaltenweise zu speichern:

Die meisten Abfragen betreffen nur wenige Spalten.Spaltenwerte sind ähnlicher und können leichter komprimiertwerden. Verwendung von Wörterbuch-Tabelle

(s. Bsp. auf Folien von A. Kemper)

Ronald Ortner

Page 12: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Row Store vs. Column Store

Typischerweise werden Tabellen zeilenweise gespeichert.Bei vielen Spalten, kann es aus Performancegründen u.U. auchbesser sein, spaltenweise zu speichern:

Die meisten Abfragen betreffen nur wenige Spalten.

Spaltenwerte sind ähnlicher und können leichter komprimiertwerden. Verwendung von Wörterbuch-Tabelle

(s. Bsp. auf Folien von A. Kemper)

Ronald Ortner

Page 13: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Row Store vs. Column Store

Typischerweise werden Tabellen zeilenweise gespeichert.Bei vielen Spalten, kann es aus Performancegründen u.U. auchbesser sein, spaltenweise zu speichern:

Die meisten Abfragen betreffen nur wenige Spalten.Spaltenwerte sind ähnlicher und können leichter komprimiertwerden.

Verwendung von Wörterbuch-Tabelle

(s. Bsp. auf Folien von A. Kemper)

Ronald Ortner

Page 14: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Row Store vs. Column Store

Typischerweise werden Tabellen zeilenweise gespeichert.Bei vielen Spalten, kann es aus Performancegründen u.U. auchbesser sein, spaltenweise zu speichern:

Die meisten Abfragen betreffen nur wenige Spalten.Spaltenwerte sind ähnlicher und können leichter komprimiertwerden. Verwendung von Wörterbuch-Tabelle

(s. Bsp. auf Folien von A. Kemper)

Ronald Ortner

Page 15: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Outline

1 Organisatorisches

2 NoSQL: Diverse Ansätze

3 NoSQL: Objekt-relationale DatenbankenObject-Relational Impedance MismatchObjekt-relationale Erweiterungen

4 XML

5 Normalisierung

Ronald Ortner

Page 16: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Object-Relational Impedance Mismatch

Beispiel: Bücherdatenbank

Ronald Ortner

Page 17: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Object-Relational Impedance Mismatch

Beispiel: Bücherdatenbank

Wir führen IDs für Autoren, Bücher und Keywords ein.

Dann:eine Tabelle für jeden Entitätstyp (mit den IDs alsPrimärschlüssel):Autoren: {[a_id, Name]}Bücher: {[b_id, Titel, Verlag]}Keywords: {[k_id, Keyword]}eine Tabelle für jede Relation:schreibt: {[a_id, b_id]}hat_Keyword: {[b_id, k_id, Gewicht]}

→ brauchen fünf (!) Tabellen für einen Entitätstyp

Ronald Ortner

Page 18: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Object-Relational Impedance Mismatch

Beispiel: Bücherdatenbank

Wir führen IDs für Autoren, Bücher und Keywords ein.

Dann:eine Tabelle für jeden Entitätstyp (mit den IDs alsPrimärschlüssel):Autoren: {[a_id, Name]}Bücher: {[b_id, Titel, Verlag]}Keywords: {[k_id, Keyword]}eine Tabelle für jede Relation:schreibt: {[a_id, b_id]}hat_Keyword: {[b_id, k_id, Gewicht]}

→ brauchen fünf (!) Tabellen für einen Entitätstyp

Ronald Ortner

Page 19: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Object-Relational Impedance Mismatch

Beispiel: Bücherdatenbank

Wir führen IDs für Autoren, Bücher und Keywords ein.

Dann:eine Tabelle für jeden Entitätstyp (mit den IDs alsPrimärschlüssel):Autoren: {[a_id, Name]}Bücher: {[b_id, Titel, Verlag]}Keywords: {[k_id, Keyword]}eine Tabelle für jede Relation:schreibt: {[a_id, b_id]}hat_Keyword: {[b_id, k_id, Gewicht]}

→ brauchen fünf (!) Tabellen für einen Entitätstyp

Ronald Ortner

Page 20: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Object-Relational Impedance Mismatch

Object-Relational Impedance Mismatch

→ brauchen fünf (!) Tabellen für einen Entitätstyp

“Object-Relational Impedance Mismatch”:

Objekte lassen sich im allgemeinen nicht gut in relationenDatenbanken abbilden.

Verschiedene Lösungsansätze:ObjektdatenbankenJava Persistence Library:speichert Objekte automatisch in passender relationalerDatenbank

Ronald Ortner

Page 21: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Object-Relational Impedance Mismatch

Object-Relational Impedance Mismatch

→ brauchen fünf (!) Tabellen für einen Entitätstyp

“Object-Relational Impedance Mismatch”:

Objekte lassen sich im allgemeinen nicht gut in relationenDatenbanken abbilden.

Verschiedene Lösungsansätze:ObjektdatenbankenJava Persistence Library:speichert Objekte automatisch in passender relationalerDatenbank

Ronald Ortner

Page 22: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Objekt-relationale Erweiterungen

Objekt-relationale Datenbanken

→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:

Erweiterungen:

Large Objects (z.B. Datentyp blob in MySQL)

Mengenwertige AttributeGeschachtelte Relationen: Relationen als AttributeTypendeklaration: Definition eigener Datentypen(ähnlich wie Klassendefinition in objektorientierter Sprache)Referenzen auf andere Tupel oder ObjekteVererbung

SQL:1999 Standardisierung des objekt-relationalen Datenmodells(bisher in kommerziellen Systemen nur teilweise und mituneinheitlicher Syntax umgesetzt)

Ronald Ortner

Page 23: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Objekt-relationale Erweiterungen

Objekt-relationale Datenbanken

→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:

Erweiterungen:

Large Objects (z.B. Datentyp blob in MySQL)

Mengenwertige Attribute

Geschachtelte Relationen: Relationen als AttributeTypendeklaration: Definition eigener Datentypen(ähnlich wie Klassendefinition in objektorientierter Sprache)Referenzen auf andere Tupel oder ObjekteVererbung

SQL:1999 Standardisierung des objekt-relationalen Datenmodells(bisher in kommerziellen Systemen nur teilweise und mituneinheitlicher Syntax umgesetzt)

Ronald Ortner

Page 24: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Objekt-relationale Erweiterungen

Objekt-relationale Datenbanken

→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:

Erweiterungen:

Large Objects (z.B. Datentyp blob in MySQL)

Mengenwertige AttributeGeschachtelte Relationen: Relationen als Attribute

Typendeklaration: Definition eigener Datentypen(ähnlich wie Klassendefinition in objektorientierter Sprache)Referenzen auf andere Tupel oder ObjekteVererbung

SQL:1999 Standardisierung des objekt-relationalen Datenmodells(bisher in kommerziellen Systemen nur teilweise und mituneinheitlicher Syntax umgesetzt)

Ronald Ortner

Page 25: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Objekt-relationale Erweiterungen

Objekt-relationale Datenbanken

→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:

Erweiterungen:

Large Objects (z.B. Datentyp blob in MySQL)

Mengenwertige AttributeGeschachtelte Relationen: Relationen als AttributeTypendeklaration: Definition eigener Datentypen(ähnlich wie Klassendefinition in objektorientierter Sprache)

Referenzen auf andere Tupel oder ObjekteVererbung

SQL:1999 Standardisierung des objekt-relationalen Datenmodells(bisher in kommerziellen Systemen nur teilweise und mituneinheitlicher Syntax umgesetzt)

Ronald Ortner

Page 26: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Objekt-relationale Erweiterungen

Objekt-relationale Datenbanken

→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:

Erweiterungen:

Large Objects (z.B. Datentyp blob in MySQL)

Mengenwertige AttributeGeschachtelte Relationen: Relationen als AttributeTypendeklaration: Definition eigener Datentypen(ähnlich wie Klassendefinition in objektorientierter Sprache)Referenzen auf andere Tupel oder Objekte

Vererbung

SQL:1999 Standardisierung des objekt-relationalen Datenmodells(bisher in kommerziellen Systemen nur teilweise und mituneinheitlicher Syntax umgesetzt)

Ronald Ortner

Page 27: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Objekt-relationale Erweiterungen

Objekt-relationale Datenbanken

→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:

Erweiterungen:

Large Objects (z.B. Datentyp blob in MySQL)

Mengenwertige AttributeGeschachtelte Relationen: Relationen als AttributeTypendeklaration: Definition eigener Datentypen(ähnlich wie Klassendefinition in objektorientierter Sprache)Referenzen auf andere Tupel oder ObjekteVererbung

SQL:1999 Standardisierung des objekt-relationalen Datenmodells(bisher in kommerziellen Systemen nur teilweise und mituneinheitlicher Syntax umgesetzt)

Ronald Ortner

Page 28: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Objekt-relationale Erweiterungen

Objekt-relationale Datenbanken

→ erweitern relationale Datenbanktheorie mit objektorientierten Ideen:

Erweiterungen:

Large Objects (z.B. Datentyp blob in MySQL)

Mengenwertige AttributeGeschachtelte Relationen: Relationen als AttributeTypendeklaration: Definition eigener Datentypen(ähnlich wie Klassendefinition in objektorientierter Sprache)Referenzen auf andere Tupel oder ObjekteVererbung

SQL:1999 Standardisierung des objekt-relationalen Datenmodells(bisher in kommerziellen Systemen nur teilweise und mituneinheitlicher Syntax umgesetzt)

Ronald Ortner

Page 29: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Outline

1 Organisatorisches

2 NoSQL: Diverse Ansätze

3 NoSQL: Objekt-relationale DatenbankenObject-Relational Impedance MismatchObjekt-relationale Erweiterungen

4 XML

5 Normalisierung

Ronald Ortner

Page 30: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Relationales Datenmodell

Das relationale Datenmodell ist rigide:Tabellenstruktur ist vorgegeben.fixe Anzahl von SpaltenSpalten haben vorgegebenen Typ.ein Datensatz pro Zeile

Ronald Ortner

Page 31: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

XML: Flexible Datenstruktur

XML (eXtensible Markup Language) ist im Unterschied dazu soflexibel wie möglich:

XML-File legt nicht nur die Daten sondern auch die Struktur fest.

Beispiel:<info>Der

<tier typ="vogel">Darwinfink</tier>ist ein sehr zutraulicher Vogel, der auf den<ort typ="insel">Galapagos-Inseln</ort>lebt.

</info>

Ronald Ortner

Page 32: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

XML: Flexible Datenstruktur

XML (eXtensible Markup Language) ist im Unterschied dazu soflexibel wie möglich:

XML-File legt nicht nur die Daten sondern auch die Struktur fest.Trennung von Struktur und Präsentationerweiterbar und anpassbarEs gibt auch Abfragesprachen für XML.Ein XML-File ist ein Text-Dokument.

Ronald Ortner

Page 33: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

XML: Anwendungen

Verwendung:Hochstrukturierte Daten (Tabellen)Semistrukturierte DatenDatenaustauschWeb-Dokumente (html)Grafiken (svg)Formeln

Ronald Ortner

Page 34: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

XML: Flexible Datenstruktur

Weiteres Beispiel:<?xml version="1.0" encoding="iso-8859-1"?><planetensystem>

<stern typ="G2"><name>Sonne</name><durchmesser>1390000</durchmesser>

</stern><planet>

<name>Venus</name><durchmesser>12102</durchmesser><entfernung>

<min>107.1</min><max>109.0</max>

</entfernung>· · ·

Ronald Ortner

Page 35: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

XML: Flexible Datenstruktur

Weiteres Beispiel:<?xml version=’1.0’ encoding=’UTF-8’?><PEOPLE>

<PERSON personid=p1retired="yes"><NAME>Mark Wilson</NAME><ADDRESS>

<STREET>Somewhere Circle</STREET><NR>911</NR><CITY>Canberra</CITY><COUNTRY>Australia</COUNTRY>

</ADDRESS><EMAIL>[email protected]</EMAIL>

</PERSON><PERSON personid=p2»

· · ·Ronald Ortner

Page 36: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

XML: Flexible Datenstruktur

Weiteres Beispiel (svg-Grafikfile):<?xml version=’1.0’ encoding=’UTF-8’ ?><svg xmlns="http://www.w3.org/2000/svg"version="1.1">

<rect x="10"y="10"width="200"height="225"stroke="blackfill=transparentßtroke-width="1px"/>

<circle cx="110cy="110r="75"stroke="blackfill="yellow"/>

<circle cx="75cy="80r="10"stroke="blackfill="black"/>

<circle cx="145cy="80r="10"stroke="blackfill="black"/>

<path d=M74,130 A35,35 0 0,0 149,130"stroke="blackßtroke-width="6pxfill=transparent"/>

<text x="60"y="210font-family="sans-serif">Hello SVG!</text>

</svg>

Ronald Ortner

Page 37: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

XML: Flexible Datenstruktur

Weiteres Beispiel (svg-Grafikfile):<?xml version=’1.0’ encoding=’UTF-8’ ?><svg xmlns="http://www.w3.org/2000/svg"version="1.1">

<rect x="10"y="10"width="200"height="225"stroke="blackfill=transparentßtroke-width="1px"/>

<circle cx="110cy="110r="75"stroke="blackfill="yellow"/>

<circle cx="75cy="80r="10"stroke="blackfill="black"/>

<circle cx="145cy="80r="10"stroke="blackfill="black"/>

<path d=M74,130 A35,35 0 0,0 149,130"stroke="blackßtroke-width="6pxfill=transparent"/>

<text x="60"y="210font-family="sans-serif">Hello SVG!</text>

</svg>

Ronald Ortner

Page 38: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

VO + UE: Datenbeschreibungssprachen

Einführung in XML u.a.:→ Lehrveranstaltung “Datenbeschreibungssprachen” (Antenreiter)

Wenn Sie nicht hingehen:

XML ist ein Standard. XML-Schnittstelle vs. proprietäre Schnittstelle

Ronald Ortner

Page 39: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Outline

1 Organisatorisches

2 NoSQL: Diverse Ansätze

3 NoSQL: Objekt-relationale DatenbankenObject-Relational Impedance MismatchObjekt-relationale Erweiterungen

4 XML

5 Normalisierung

Ronald Ortner

Page 40: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Normalisierung: Weiteres Beispiel

Entwerfen Sie eine Datenbank einer Ticketagentur fürPop-/Rock-Konzerte. Für jedes Konzert sollen die spielenden Bands,das Datum und die Beginnzeit, das Land, die Stadt sowie derVeranstaltungsort gespeichert werden. Weiters soll der Ticketpreishinterlegt werden, wobei Sie davon ausgehen können, dass dieser fürjedes Konzert einheitlich ist. Für jeden Kunden sollen Name undAdresse gespeichert werden sowie wieviele Tickets für welchesKonzert bestellt wurden.

Ronald Ortner

Page 41: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Normalisierung: Tickets für Konzerte

Manchmal bekommt man kein gutes Schema, wenn man dieNormalformen der Reihe nach durchgeht.

Beispiel:

Ticket_no∗ Concert_no Band∗

......

...

Es gibt folgende FDs und MVDs:Ticket_no→ Concert_no

Ticket_no→→ Band

Concert_no→→ Band

Der Dekompositionsalgorithmus für 4NF auf die letzte MVD angewandtgibt ein gutes Datenbankschema.

Ronald Ortner

Page 42: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Normalisierung: Tickets für Konzerte

Manchmal bekommt man kein gutes Schema, wenn man dieNormalformen der Reihe nach durchgeht.

Beispiel:

Ticket_no∗ Concert_no Band∗

......

...

Es gibt folgende FDs und MVDs:Ticket_no→ Concert_no

Ticket_no→→ Band

Concert_no→→ Band

Der Dekompositionsalgorithmus für 4NF auf die letzte MVD angewandtgibt ein gutes Datenbankschema.

Ronald Ortner

Page 43: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Verallgemeinerter Dekompositionsalgorithmus für 4NF

Gegeben: Relation R, Menge F von MVDsWir wollen: Zerlegung R1, . . . ,Rn in 4NF

Verallgemeinerter Dekompositionsalgorithmus:Initialisiere Z := {R};while (es gibt Ri in Z , das nicht in 4NF) do

1 Finde MVD α→→ β in Ri mit α ∩ β = ∅ und α 6→ Ri .2 Zerlege Ri in Ri1 := α ∪ β und Ri2 := Ri − β.3 Ersetze Ri in Z durch Ri1 und Ri2, d.h.

Z := (Z − {Ri}) ∪ {Ri1,Ri2}.

(Nachdem jede Relation in 4NF auch in BCNF ist, gibt es Fälle, woeine 4NF Zerlegung nicht abhängigkeitserhaltend ist.)

Ronald Ortner

Page 44: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Normalisierung: Tickets für Konzerte

Beispiel:

Ticket_no∗ Concert_no Band∗

......

...

Es gibt folgende FDs und MVDs:Ticket_no→ Concert_no

Ticket_no→→ Band

Concert_no→→ Band

Achtung: Wählt man eine andere FD/MVD für Zerlegung erhält manein schlechteres Datenbankschema. (Zur Erinnerung: 4NF ist nichtimmer abhängigkeitserhaltend, sodass es einen Unterschied machenkann, welche FD für Zerlegung gewählt wird!)

Ronald Ortner

Page 45: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Normalisierung: Wartungszeiten für Anlagen

Im Beispiel 8.4 ist dasselbe passiert:

Item_id∗ Time_stamp∗ Wartungszeit

......

...

Es gelten folgende FDs:Anlage→ Wartungszeit

Item_id, Time_stamp→ Anlage

Item_id, Time_stamp→ Wartungszeit

Besser ist es offensichtlich, die Wartungszeiten mit den Anlagen zuspeichern:

Anlage∗ Wartungszeit

......

Ronald Ortner

Page 46: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Normalisierung: Wartungszeiten für Anlagen

Im Beispiel 8.4 ist dasselbe passiert:

Item_id∗ Time_stamp∗ Wartungszeit

......

...

Es gelten folgende FDs:Anlage→ Wartungszeit

Item_id, Time_stamp→ Anlage

Item_id, Time_stamp→ Wartungszeit

Besser ist es offensichtlich, die Wartungszeiten mit den Anlagen zuspeichern:

Anlage∗ Wartungszeit

......

Ronald Ortner

Page 47: Datenbanken Unit 12: NoSQL-Datenbanken und XMLinstitute.unileoben.ac.at/infotech/lehre/db/SS2018/Unit12.pdf · Unit 12: NoSQL-Datenbanken und XML Ronald Ortner 18. VI. 2018 Ronald

Organisatorisches NoSQL: Diverse Ansätze NoSQL: Objekt-relationale Datenbanken XML Normalisierung

Normalisierung: Fazit

Manchmal ist es eine gute Idee, aus FDs α→ β gleich eine Tabelle mitSpalten α und β zu extrahieren und β aus der ursprünglichen Tabellezu entfernen (vgl. Dekompositionsalgorithmus), auch wenn dies nichtder nächste Schritt in der Normalisierungsreihenfolge ist.

Ronald Ortner