Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... ·...

20
Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00 – 10:00 a.m. Room HS 021, B4 1

Transcript of Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... ·...

Page 1: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Web Technologien – NoSQL Datenbanken

Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00 – 10:00 a.m. Room HS 021, B4 1

Page 2: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 2

Wozu dient eine Datenbank? •  Daten permanent sichern è Könnte auch das Dateisystem übernehmen ?!

Wrap-Up

Quelle: http://de.wikipedia.org/wiki/Dateisystem

Page 3: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 3

Wozu dient eine Datenbank? •  Daten permanent sichern •  Daten anderen bereitstellen •  Daten auffinden •  Daten (automatisch) manipulieren

è Database Management System (DBMS)

Wrap-Up

Datenbanksystem

Anwendung

DBMS Datenbank-Dateien

Page 4: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 4

Wozu dient eine Datenbank? •  Daten permanent sichern •  Daten anderen bereitstellen •  Daten auffinden •  Daten (automatisch) manipulieren

Relationales Datenbankmodell è RDBMS •  Edgar F. Codd 1970 •  Etablierter Standard •  Basiert auf untereinander verknüpften Tabellen •  SQL: Sprache zur Definition, Abfrage und

Manipulation von relationalen Datenbanken

Wrap-Up

Programm PK Programm ID

Startzeit

Kanal ID Dauer

FK

Kanal PK Kanal ID

Sprache Land

Page 5: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 5

Wozu dient eine Datenbank? •  Daten permanent sichern •  Daten anderen bereitstellen •  Daten auffinden •  Daten (automatisch) manipulieren

Semantik relationaler Datenbanken

Hierzu muss die Datenbank die Daten „verstehen“: è Was ist die Semantik?

Wie komplex ist die Semantik?

Feld (engl. Array) Baum (mit Relationen) Beliebiger Graph

Relationale DB Wird dies wirklich benötigt?

Page 6: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 6

Wozu dient eine Datenbank? •  Daten permanent sichern •  Daten anderen bereitstellen •  Daten auffinden •  Daten (automatisch) manipulieren

Semantik relationaler Datenbanken

Hierzu muss die Datenbank die Daten „verstehen“: è Was ist die Semantik?

Presentation Business-Logic Data User

Wo wird die Semantik interpretiert?

?

Relationale DB Wird dies wirklich benötigt?

Page 7: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 7

Relationale Datenbanken: sehr formell (normalisiert), sehr mächtig, komplex è Bei einem einfachen Datenmodell unnötig NoSQL = not only SQL Alternative Ansätze zur Datenhaltung neben relationalen Datenbanken

NoSQL

Key Value Stores

NoSQL

Document Stores

Column Stores

Graph Databases

Object Databases

Page 8: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 8

Relationale Datenbanken: sehr formell (normalisiert), sehr mächtig, komplex è Bei einem einfachen Datenmodell unnötig NoSQL = not only SQL Alternative Ansätze zur Datenhaltung neben relationalen Datenbanken

Neben einem alternativen Datenmodell bieten NoSQL Datenbanken oft: •  Daten-Partitionierung und Daten-Replizierung über mehrere Instanzen •  Speicherung sehr großer Datenmengen auf „Commodity Hardware“ •  Möglichkeit Konsistenz-Bedingung zu vernachlässigen

à Vorlesung Big Data

NoSQL

Page 9: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 9

•  Synonym: Tuple Store •  Verwendet Schlüssel (Keys) zur Indizierung von Daten (Values) •  Struktur der Daten ist nicht vorgegeben (schemalos) •  Datentyp ist (zumeist) nicht vorgegeben •  Queries sind auf Schlüssel beschränkt •  f(key) = value •  Vorteile der geringen Komplexität

•  Skalierbarkeit •  Distribution/Synchronisation •  Fehlertoleranz

Key Value Stores

134

9

16518

Schlüssel (Keys) Daten (Values)

45 min

„ZDF“

19:30

„Terra X“

12

Feld

Page 10: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 10

•  Membase (Couchbase) http://www.couchbase.org/ •  Memcached (verteilter Cache-Server zum

beschleunigen von DB-Anfragen) •  Memcached Nutzer: Wikipedia, YouTube,

Facebook, Twitter, Flickr, etc. •  Membase = Memcached + Persistenz,

Daten-Replizierung, Daten-Partitionierung

•  Azure Table Storage (Microsoft) http://msdn.microsoft.com/en-us/library/dd179423.aspx

•  Redis (Vmware) http://redis.io/

•  Berkeley DB (Oracle) http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html

Key Value Stores

Membase

<?php $mc = new Memcached; $mc->addServer("localhost", 11211); $mc->set("a", 1); var_dump($mc->get("a")); ?>

Page 11: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 11

•  Ähnlich zu Key Value Stores – Daten sind jedoch Dokumente, die nach einem bestimmten Datenformat (XML, JSON, etc.) strukturiert sind

•  Neben „Schlüssel-Anfragen“ kann auch nach Inhalten (z.B. XML-Attribut) oder Meta-Daten (z.B. Tags, Sammlungen, etc.) gesucht werden

•  Anfragesprachen sind abhängig vom Datenformat: •  XML: XPath, XQuery (à Vorlesung XML/XQuery/XPath und XSLT) •  JSON: JSONiq (http://jsoniq.org/), Jaql (http://code.google.com/p/jaql/),

UnQL (http://www.unqlspec.org/)

Document Stores

134

9

16518

Schlüssel Dokumente

empfehlungen.xml

zdf.xml

programm.xml

terraX.xml

12

Feld bzw. Baum Dokumente

Page 12: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 12

•  BaseX (XML) http://basex.org/ •  Anfragen via XQuery/Xpath •  Kollektionen von Dokumenten •  Einfache Administration über GUI

•  CouchDB (Apache, JSON) http://couchdb.apache.org/

•  MongoDB (JSON) http://www.mongodb.org/

•  Lotus Notes(IBM, Domino XML) http://www-01.ibm.com/software/de/lotus/wdocs/notes-domino8/notes.html

Document Stores

BaseX

for $city in doc('factbook')//city/name/text() where starts-with($city, 'Q') order by $city return data($city)

Page 13: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 13

•  Ähnlich zu Key Value Stores – jedoch mit mehrdimensionalen Schlüsseln

Column Stores

Baum

P

T

T

Schlüssel Daten

45 min

„ZDF“

19:30

„Terra X“

C

1

2 ,

,

Column Family

Row 1

Row 2

Column 1

Column 2

Column 3

Timestamp

Value

Timestamp

Value

Timestamp

Value

Column 1

Column 2

Timestamp

Value

Timestamp

Value

Page 14: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 14

•  Ähnlich zu Key Value Stores – jedoch mit mehrdimensionalen Schlüsseln •  Performance-Vorteil gegenüber relationalen Datenbanken bei Operationen

über viele Einträge mit Schlüsseln geringer Dimensionalität (wenige Spalten) •  Kompression bei vielen Einträgen (à Vorlesung Big Data)

Column Stores

1, Smith, Joe, 40000 2, Jones, Mary, 50000 3, Johnson, Cathy, 44000

Zeilenorientiert (relationale Datenbank):

1, 2, 3 Smith, Jones, Johnson Joe, Mary, Cathy

Spaltenorientiert (Column Store):

40000, 50000, 44000

Operation: Berechne das durchschnittliche Gehalt

(vgl. http://en.wikipedia.org/wiki/Column-oriented_DBMS)

Page 15: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 15

•  Cassandra (Apache) http://cassandra.apache.org/ •  Spalten müssen nicht

zwangsweise belegt werden •  Cassandra Nutzer: Twitter,

Cisco, Digg, etc.

•  Hadoop/HBase (Apache) http://hadoop.apache.org/

•  Hypertable http://hypertable.org/

•  BigTable (Google) Chang et al. (2006): Bigtable: a distributed storage system for structured data.

Column Stores

Cassandra (N = name, V = value, T = timestamp)

{ "user1":{ // <- row 1 "Users":{ // <- column family 1 "name":{"N":"name", "V":"…", "T":"…"}, // <- a column "email":{"N":"email", "V":"…", "T":"…"} }, "Stats":{ // <- column family 2 "visits":{"N":"visits", "V":"…", "T":"…"} } }, "user2":{ // <- row 2 "Users":{ // <- column family 1 "email":{"N":"email", "V":"…", "T":"…"} } } }

Page 16: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 16

•  Daten = Knoten, Beziehungen der Daten zueinander = Kanten •  Daten können über ihre (relative) Position im Graphen identifiziert werden

(traversieren) – es wird kein (globaler) Schlüssel benötigt •  Daten können sehr flexibel strukturiert werden •  Im Gegensatz zu relationalen Datenbanken sind keine Joins notwendig •  Zumeist sind relationale Datenbanken bei großen Datenmengen effizienter

Graph Databases

45 min

„ZDF“

19:30

dauert „Terra X“

beginnt um

läuft auf

Beliebiger Graph

Page 17: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 17

•  Neo4J http://neo4j.org/

•  sones GraphDB http://www.sones.de/

•  Trinity (Microsoft) http://research.microsoft.com/en-us/projects/trinity/

•  AllegroGraph http://www.franz.com/agraph/

Graph Databases

Neo4J (vgl. http://docs.neo4j.org/chunked/snapshot/tutorials-java-embedded-traversal.html)

Traverser traverser = getNodeByName( "Admins" ).traverse( Traverser.Order.BREADTH_FIRST, StopEvaluator.END_OF_GRAPH, ReturnableEvaluator.ALL_BUT_START_NODE, RoleRels.PART_OF, Direction.INCOMING, RoleRels.MEMBER_OF, Direction.INCOMING);

Page 18: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 18

Employee

•  Direkter Bezug zw. Datenhaltung und objektorientierter Programmiersprache •  Lösung des „Impedance Mismatch“: Geringer Aufwand bei der Überführung

der Daten von Programm-Repräsentation in Datenbank-Repräsentation und vice versa

•  Speicherung eines „Web-Of-Objects“ und deren zugehörigen Attribute •  db4o (Versant)

http://db4o.com/

•  Objectivity http://www.objectivity.com/

Object Databases

Smith name

40000 salary

employeeOf

Employee Jones name

50000 salary

employeeOf

Company XYZ Inc. name Beliebiger Graph

Page 19: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 19

Bücher: •  J. Chris Anderson, Jan Lehnardt, Noah Slater

CouchDB: The Definitive Guide http://shop.oreilly.com/product/9780596155902.do

•  Lars George HBase: The Definitive Guide http://shop.oreilly.com/product/0636920014348.do

•  Eben Hewitt Cassandra: The Definitive Guide http://shop.oreilly.com/product/0636920010852.do

Web: •  http://nosql-database.org/

Literatur

Page 20: Web Technologien – NoSQL Datenbankeniss.uni-saarland.de/workspace/documents/wt_7_nosql... · 2011-11-29 · Web Technologien – NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang

Univ.-Prof. Dr.-Ing. Wolfgang Maass

29.11.11 Slide 20

Univ.-Prof. Dr.-Ing. Wolfgang Maass

Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Saarland University, Germany