Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS...

45
Teil XII NoSQL

Transcript of Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS...

Page 1: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

Teil XII

NoSQL

Page 2: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL

NoSQL

1 Motivation für NoSQL

2 Datenmodelle für NoSQL

3 KV-Stores und Wide Column

4 Document Stores

5 Graph Stores

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–1

Page 3: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL

Lernziele für heute . . .

NoSQL.....

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–2

Page 4: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Motivation für NoSQL

Motivation für NoSQL

NoSQL = Not only SQL

im Umfeld vieler aktueller BuzzwordsI NoSQLI BigDataI BASEI ....

oft einfach als Etikett einer Neuentwicklung eines DBMS pauschalvergeben

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–3

Page 5: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Motivation für NoSQL

Was ist NoSQL?

SQL - No!I SQL-Datenbanken sind zu komplex, nicht skalierbar, ...I man braucht was einfacheres!

Not only SQLI SQL-Datenbanken haben zu wenig (oder die falsche) FunktionaliätI Operationen auf Graphen, Data Mining Operatoren, ...

New SQLI SQL-Datenbanken sind (software-technisch) in die Jahre

gekommenI eine neue Generation von DBMS muss her (ohne die etablierten

Vorteile von SQL zu ignorieren)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–4

Page 6: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Motivation für NoSQL

Kritik an RDBMS / SQL

nicht skalierbarI Normalisierung von Relationen, viele Integritätsbedingungen zu

prüfenI kann man in RDBMS auch vermeiden!

starre Tabellen nicht flexibel genugI schwach typisierte Tabellen (Tupel weichen in den tatsächlich

genutzten Attributen ab)F viele Nullwerte wenn alle potentiellen Attribute definiert sindF alternativ Aufspaltung auf viele TabellenF Schema-Evolution mit alter table skaliert bei Big Data nicht

I tatsächlich in vielen Anwendungen ein Problem

Integration von spezifischen Operationen (Graph-Traversal, DataMining Primitive) mit Stored Procedures zwar möglich führt aberoft zu schwer interpretierbarem Code

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–5

Page 7: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Datenmodelle für NoSQL

Datenmodelle für NoSQL

KV-StoresWide Column StoresDokumenten-orientierte DatenhaltungGraph-Speicher....

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–6

Page 8: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Datenmodelle für NoSQL

Anfragesprachen für NoSQL

unterschiedliche Ansätze:I einfache funktionale APII Programmiermodell für parallele FunktionenI angelehnt an SQL-SyntaxI ....

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–7

Page 9: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL KV-Stores und Wide Column

Datenmodell: Key-Value-Stores

Key-Value-Store: binäre Relationen, bestehend ausI einem Zugriffsschlüssel (dem Key) undI den Nutzdaten (dem Value)

NutzdatenI binäre Daten ohne Einschränkung,I Dateien oder Dokumente,→ Document Databases

I oder schwachstrukturierte Tupel→Wide Column Store

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–8

Page 10: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL KV-Stores und Wide Column

Anfragen an KV-Stores

einfache API

store.put(key, value)

value = store.get(key)

store.delete(key)

aufgesetzte höherer Sprache angelehnt an SQLMap-Reduce

I Framework zur Programmierung paralleler Datenaggregation aufKV-Stores

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–9

Page 11: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL KV-Stores und Wide Column

Beispielsysteme für KV-Stores

Apache HadoopRiak

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–10

Page 12: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL KV-Stores und Wide Column

Datenmodell: Wide Column

Basisidee: KV-Store mit schwachstrukturiertem Tupel als ValueValue = Liste von Attributname-Attributwert-Paaren

I schwache Typisierung für Attributwerte (auch Wiederholgruppen)nicht alle Einträge haben die selben Attributnamen

I offene TupelI Hinzufügen eines neuen Attributs unproblematischI Nullwerte aus SQL ersetzt durch fehlende Einträge

Beispiel in DynamoDB

Key Value (Attributliste)

WeinID = 1 Name = Zinfandel Farbe = Rot Jahrgang = 2004WeinID = 2 Name = Pinot Noir Weingut = {Creek,

Helena}WeinID = 3 Name = Chardonnay Jahrgang = 2002 Weingut = Bighorn

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–11

Page 13: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL KV-Stores und Wide Column

Anfragen bei Wide Column

CRUD: Create, Read, Update und Deletein DynamoDB

I PutItem fügt einen neuen Datensatz mit der gegebenenAttribut-Wert-Liste ein bzw. ersetzt einen existierenden Datensatzmit gleichem Schlüssel.

I GetItem-Operation liest alle Felder eines über einenPrimärschlüssel identifizierten Datensatzes.

I Scan erlaubt einen Lauf über alle Datensätze mit Angabe vonFilterkriterien.

Aufruf über HTTP oder aus Programmiersprachen heraus

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–12

Page 14: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL KV-Stores und Wide Column

Beispielanfrage in DynamoDB

POST / HTTP/1.1

x-amz-target: DynamoDB_20111205.GetItem

content-type: application/x-amz-json-1.0

{ "TableName": "Weine",

" Key ":

{ "HashKeyElement": {"N": "1" }

"RangeKeyElement": {"S": "Zinfandel" }

},

"AttributesToGet": ["Farbe", "Jahrgang"],

"ConsistentRead": false

}

Primärschlüssel (HashKeyElement) ist numerisch (N)Feld Name ist Bereichsschlüssel vom Typ String (S)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–13

Page 15: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL KV-Stores und Wide Column

Beispielanfrage in DynamoDB: Ergebnis

HTTP/1.1 200

x-amzn-RequestId: ...

content-type: application/x-amz-json-1.0

content-length: ...

{"Item":

{"Farbe": {"S": "Rot" },

"Jahrgang": {"N": "2004" }

},

"ConsumedCapacityUnits": 0.5

}

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–14

Page 16: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Document Stores

Datenmodell: dokumentenorientierte Speicherung

Basisidee: KV-Store mit (hierarchisch) strukturiertem Dokumentals Valuestrukturiertes Dokument:

I JSON-FormatF geschachtelte Wide Column-Daten

I XML (eher unüblich auf KV-Stores)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–15

Page 17: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Document Stores

Beispiel für Dokument in JSON

{

"id" : "kritiker08154711",

"Name" : "Bond",

"Vorname" : "Jamie",

"Alter" : 42,

"Adresse" :

{

"Strasse" : "Breiter Weg 1",

"PLZ" : 39007,

"Stadt" : "Machdeburch"

},

"Telefon" : [7007, 110]

}

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–16

Page 18: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Document Stores

Anfragen bei dokumentenorientierter Speicherung

CRUD erweitert um dokumentspezifische SucheBeispiele (MongoDB mit BSON statt JSON)

db.kritiker.find({Name: "Bond"})

db.kritiker.find({Alter: 40})

db.kritiker.find({Alter{$lt: 50}})

db.kritiker.find({Name: "Bond", Alter: 42})

db.kritiker.find($or[{Name: "Bond"}, { Alter: 42}}])

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–17

Page 19: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Document Stores

Beispielsysteme für dokumentenorientierteSpeicherung

MongoDBCouchDB

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–18

Page 20: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Graph-Datenmodelle: Grundlagen

spezielle Form der Datenrepräsentation = Graphen, insb.Beziehungen zwischen ObjektenAnwendungsgebiete:

I TransportnetzeI Networking: Email-Verkehr, Mobilfunk-NutzerI Soziale Netzwerke: Eigenschaften, CommunitiesI Web: Verlinkte DokumenteI Chemie: Struktur chemischer KomponentenI Bioinformatik: Proteinstrukturen, metabolische Pathways,

Genexpressionen

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–19

Page 21: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Grundbegriffe

Graph G = (V,E)I V: Menge der Knoten (vertices)I E ⊆ V × V: Menge der Kanten (edges)

v1 v2

v4v3

I Kanten können mit Gewicht versehen werden

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–20

Page 22: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Grundbegriffe: Adjazenzmatrix

Repräsentation von Graphen durch Matrix (Knoten als Zeilen undSpalten)ungerichteter Graph: symmetrische Matrixungewichteter Graph: Zellen nur 0 oder 1

v1 v2

v4v3

3

1

1

2

2

5

05 1v4 2

0v3 20 0

v2 0 10 0

v1 0 003

v4v3v2v1

nach

von

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–21

Page 23: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Grundbegriffe: Knotengrad

Eigenschaft eines Knotens: Anzahl der verbundenen Knotenbei gerichteren Graphen: Unterscheidung in Eingangs- undAusgangsgrad

v1 v2

v4v3

3

1

1

2

2

5

01 1v4 1

0v3 10 0

v2 0 10 0

v1 0 001

v4v3v2v1

nach

von

3

1

1

0

2121

Ausgangsgrad

Eingangsgrad

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–22

Page 24: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Grundbegriffe: Traversierung

Tiefensuche (DFS): zunächst rekursiv alle Kindknoten besuchenbevor alle Geschwisterknoten besucht werden

I Bestimmung der ZusammenhangskomponenteI Wegsuche um Labyrinth

Breitensuche (BFS): zunächst alle Geschwisterknoten besuchenbevor die Kindknoten besucht werden

I Bestimmung des kürzesten Weges

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–23

Page 25: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Subjekt-Prädikat-Objekt-Modell: RDF

Sprache zur Repräsentation von Informationen über(Web)-RessourcenZiel: automatisierte Verarbeitungzentraler Bestandteil von Semantic Web, Linked (Open) DataRepräsentation von Daten, aber auch Wissensrepräsentation(z.B. Ontologie)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–24

Page 26: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Ontologien

Ontologie = formale Spezifikation einer Konzeptualisierung, d.h.einer Repräsentation von Begriffen (Konzepten) und derenBeziehungenAnwendung: Annotation von Daten, semantische Suche

Wein

Dessertwein Schaumwein Spätlese

Getränk

Weinbeschreibung

Farbe

Süße

Geschmack

Körper Abgang

Weingut wird beschriebenhat Hersteller

produziert

inverse zu

ist

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–25

Page 27: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

RDF: Graphen & Tripel

Graph = Menge von Tripeln, die Aussagen über Web-RessourcenrepräsentierenIdentifikation der Web-Ressourcen über Uniform ResourceIdentifier (URI)Tripel:

subjekt prädikat object .

Beispiel

<http://weindb.org/weine/2171> \

<http://weindb.org/ontologie/name> "Pinot Noir".

Pinot Noirhttp://weindb.org/weine/3478 http://weindb.org/ontologie/name

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–26

Page 28: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

RDF: Graphen & Tripel

Subjekt: URI-Referenz, d.h. Ressource, auf die sich die AussagebeziehtPrädikat: Eigenschaft, ebenfalls in Form einer URI-ReferenzObjekt: Wert der Eigenschaft als Literal (Konstante) oder URI-Referenz

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–27

Page 29: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

RDF: Abkürzende Notation

abkürzende Notation für Namensräume über Präfixe:

prefix wo: <http://weindb.org/ontologie/>

prefix weine: <http://weindb.org/weine/>

weine:2171 wo:name "Pinot Noir".

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–28

Page 30: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

RDF: Komplexe Graphenkomplexe Graphen durch:

I mehrere Aussagen zum gleichen SubjektI Objekte nicht nur Literale sondern selbst Objekte (URI)

weine:2171 wo:name "Pinot Noir".

weine:2171 wo:farbe "Rot".

weine:2171 wo:jahrgang "1999".

weine:2171 wo:erzeuger werzeuger:567 .

Rot

Pinot Noir

1999

werzeuger:567

weine:3478wo:farbe

wo:name

wo:jahrgang

wo:erzeuger

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–29

Page 31: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

RDF: Repräsentation, Schema und Vokabulare

Repräsentation von RDF-Daten: N-Tripel (siehe oben), RDF/XMLRDF Schema:

I objektorientierte SpezifikationsspracheI erweitert RDF um Typsystem: Definition von Klassen und

Klassenhierarchien mit Eigenschaften, Ressourcen als Instanzenvon Klassen

I RDF Schema ist selbst RDF-Spezifikation

Wein rdf:type rdfs:Class .Schaumwein rdf:type rdfs:Class .Schaumwein rdfs:subClassOf Wein .Name rdf:type rdf:Property .Jahrgang rdf:type rdf:Property .Jahrgang rdfs:domain Wein .Jahrgang rdfs:range xsd:integer .

I für komplexere Ontologien: OWL (Web Ontology Language)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–30

Page 32: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

RDF: Repräsentation, Schema und Vokabulare

Vokabular: vordefinierte Klassen und EigenschaftenI Bsp: Dublin Core (Metadaten für Dokumente), FOAF (Soziale

Netze), ...I wichtig z.B. für Linked Open Data

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–31

Page 33: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

SPARQL als RDF-Anfragesprache

SPARQL Protocol And RDF Query Language: Anfragesprache fürRDFW3C-Recommendationunterschiedliche Implementierungen möglich:

I Aufsatz für SQL-Backends (z.B. DB2, Oracle)I Triple Stores (RDF-Datenbank)I SPARQL-Endpoints

syntaktisch an SQL angelehnt, aber Unterstützung fürGraph-Anfragen

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–32

Page 34: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

SPARQL-Elemente

Grundelemente: select-where-Block und Tripelmuster

?wein wo:name ?name .

Auswertung: finden aller Belegungen (Bindung) für Variable(?name) bei Übereinstimmung mit nicht-variablen Teilen

<http://weindb.org/weine/2171> wo:name "Pinot Noir".

<http://weindb.org/weine/2168> wo:name "Creek Shiraz".

<http://weindb.org/weine/2169> wo:name "Chardonnay".

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–33

Page 35: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

SPARQL: Basic Graph Pattern

Graphmuster (BGP = Basic Graph Pattern): Kombination vonTripelmustern über gemeinsame Variablen

?wein wo:name ?name .

?wein wo:farbe ?farbe .

?wein wo:erzeuger ?erzeuger .

?erzeuger wo:weingut ?ename .

Einsatz in SPARQL-Anfragen im where-Teil

select ?wein ?name ?farbe ?ename

where { ?wein wo:name ?name .

?wein wo:farbe ?farbe .

?wein wo:erzeuger ?erzeuger .

?erzeuger wo:weingut ?ename . }

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–34

Page 36: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

SPARQL: Weitere Elemente

filter: Filterbedingungen für Bindungenoptional: optionale Muster – erfordern nicht zwingend einMatching

prefix wo: <http://weindb.org/ontologie/>

select ?name

where { ?wein wo:name ?name . }

optional { ?wein wo:jahrgang ?jahrgang } .

filter ( bound(?jahrgang) && ?jahrgang < 2010 )

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–35

Page 37: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Property-Graph-Modell

Knoten und (gerichtete) Kanten mit Eigenschaften (Properties)nicht streng typisiert, d.h. Eigenschaften als Name-Wert-Paare(Key-Value)

Helena

Napa Valley

Pinot Noir

liegt in

produziert

Spätbur-gunder

besteht aus

name: Helena

gebiet: Napa Valleyregion: Kalifornien

farbe: Rotjahrgang: 1999

beerenfarbe: Schwarzherkunft: Frankreich

Unterstützung in diversen Graph-Datenbanksystemen: neo4j,InfiniteGraph, . . .

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–36

Page 38: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Property-Graph-Modell in Neo4j

Elemente: Nodes, Relationships, Properties, LabelsProperties = Key-Value-Paare: Key (=String), Value(=Java-Datentypen + Felder)Nodes mit Labels (≈ Klassenname)Relationships: sind gerichtet, mit Namen

name: Andreas

name: Kathrin

name:Holgi

Student

Student

Student

kennt

kennt

kennt

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–37

Page 39: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Anfragen auf Graphen

keine Standardspracheaber wiederkehrende Grundelemente

I Graph Matching: Knoten, Kanten, Pfade (siehe BGP in SPARQL)I Filter für Knoten- und KanteneigenschaftenI Konstruktion neuer Graphen

hier: Cypher (neo4j)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–38

Page 40: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Anfragen in Cypher

Basis: Muster der Form „Knoten→ Kante→ Knoten . . . “

(von)-[:relationship]->(nach)

Beschränkung über Label und Properties

i(s1:Student { name: Andreas })-[:kennt]->(s2:Student)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–39

Page 41: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Cypher: Klauseln

MATCH: Beispielmuster für MatchingRETURN: Festlegung der Rückgabedaten (Projektion)WHERE: Filterbedingung für „gematchte“ DatenCREATE: Erzeugen von Knoten oder BeziehungenSET: Ändern von Property-Werten. . .

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–40

Page 42: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Cypher: Beispiele

Anlegen von Daten

CREATE (andreas:Student { name: ’Andreas’ }),

(holgi:Student { name: ’Holgi’ }),

(kathrin:Student { name: ’Kathrin’ }),

(andreas)-[:kennt]->(kathrin),

(kathrin)-[:kennt]->(holgi),

(andreas)-[:kennt]->(holgi)

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–41

Page 43: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Cypher: Beispiele

Alle Studenten, die Andreas kennt

MATCH (s1: Student { name: ’Andreas’ })-[:kennt]

->(s2: Student)

RETURN s1, s2

Alle Studenten, die Holgi kennen

MATCH (s1: Student)-[:kennt]->(s2: Student)

WHERE s2.name = ’Holgi’ RETURN s1, s2

Alle Studenten, die Kathrin kennen oder jemanden kennen, dersie kennt

MATCH (s1: Student)-[:kennt*0..2]->(s2: Student)

WHERE s2.name = ’Kathrin’ RETURN s1, s2

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–42

Page 44: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Zusammenfassung

NoSQL als Oberbegriff für diverse Datenbanktechnikengroße Bandbreite: von einfachen KV-Stores bis zuGraphdatenbankenhöhere Skalierbarkeit / Performance gegenüber SQL-DBMS meistdurch Einschränkungen erkauft

I Abschwächung von ACID-EigenschaftenI begrenzte AnfragefunktionalitätI Nicht-Standard bzw. proprietäre Schnittstellen

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–43

Page 45: Teil XII NoSQL - dbse.ovgu.deI/ws2016/vorlesung/... · NoSQL Motivation für NoSQL Kritik an RDBMS / SQL nicht skalierbar I Normalisierung von Relationen, viele Integritätsbedingungen

NoSQL Graph Stores

Weiterführende Literatur

Lena Wiese: Advanced Data Management for SQL, NoSQL,Cloud and Distributed Databases. De Gruyter / Oldenburg, 2015Ian Robinson, Jim Webber, Emil Eifrem: Graph Databases.O’Reilly, 2015

Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 12–44