62
NoSQL Neue Ansätze zur Verwaltung unstrukturierter Daten Tilmann Söffing

NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Embed Size (px)

DESCRIPTION

Folien zum Workshop "NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten" im Rahmen des Kongresses "Neue Verwaltung" am 10./11.05.2011 in Leipzig (http://www.neue-verwaltung.de)

Citation preview

Page 1: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

NoSQL

Neue Ansätze zur Verwaltung unstrukturierter Daten

Tilmann Söffing

Page 2: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Das Relationale Datenbankmodell

Tabellenorientiert

PersonenID Name Alter

1 Meier 34

2 Peterson 52

3 Heinz 81

4 Kunz 63

Attribut

Datensatz

Page 3: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Das Relationale Datenbankmodell

Einfache Beziehungen mittels Referenzierung

PersonenID Name Firma

1 Meier 34

2 Peterson 35

3 Heinz 34

4 Kunz NULL

FirmenID Name

34 Druck & Co

35 CleanAll

Page 4: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Das Relationale Datenbankmodell

Mehrfachbeziehungen über zusätzliche Tabellen

PersonenID Name

1 Meier

2 Peterson

3 Heinz

4 Kunz

HausID

Adresse

13 Rosenweg 4

37 Jo.-Seb.-B.-Straße 7

Person Haus seit

1 13 2001

2 13 2001

1 37 2008

3 37 2004

Page 5: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

RDBM - Probleme

● Flexibilität

● Komplexität

● Lokalität

● Konnektivität

Page 6: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

RDBM - Probleme

● Flexibilität

● Komplexität

● Lokalität

● Konnektivität

ID Name Vorname Vorname 2 Vorname 3 …

1 Merkel Angela

Dorothea

NULL …

2 Fischer Joseph

Martin NULL …

3 Guttenberg

Karl Theodor Maria …

Anzahl der Vornamen

Page 7: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

RDBM - Probleme

● Flexibilität

● Komplexität

● Lokalität

● Konnektivität

ID Verwaltung

1 MeinersID Objek

tVerwaltung

ID Straße Haus

4 ID Name Vorname

1 Meier Hans

2 Kunz DieterID Firma Mitarbeiter

1 Cooky

24

2 Heinz 2391

Firma Person

15 2

13 37

ID Stadt PLZ

1 Leipzig 04103

2 Jena 07743

Page 8: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

RDBM - Probleme

● Flexibilität

● Komplexität

● Lokalität

● Konnektivität

ID Name

1 Franz

2 Sebastian

3 Klara

4 Stefan

5 Tim

6 Anna

7 Florian

8 Bella

9 Simon

10 Paul

PersonA

PersonB

1 4

7 2

10 3

1 7

2 8

1 2

Page 9: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

RDBM - Probleme

● Flexibilität

● Komplexität

● Lokalität

● Konnektivität

ID Name

1 Simon

Person

Haus

1 13

ID Haus

13 Jenaer Strasse 3

Haus

Verwaltung

13 23

Verwaltung

Angebot

23 2

ID Angebot

1 Reinigung

2 Urlaubsservice

ID Verwaltung

23 Clean&Shiny

Page 10: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Der Begriff: NoSQL

NoSQL steht nicht für

„No to SQL“ oder „Never use SQL“

Page 11: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Der Begriff: NoSQL

NoSQL steht für

Not Only SQL

Page 12: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Ziele der NoSQL-Bewegung

Verwaltung von

- Unstrukturierten Daten- Stark vernetzten Daten- Schnellen Strukturänderungen- Großen Datenmengen

Page 13: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Ziele der NoSQL-Bewegung

Operationen auf Daten- Replikation- Versionierung- Partitionierung

Page 14: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

NoSQL - Vertreter

Document

Graph DB

Key-Value

BigTable

Für jede Anwendung das richtige Werkzeug

Page 15: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten
Page 16: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

"empfänger":"Eddi Müller"

"betrag":"1200 EUR"

"kontonr":"2221115132"

"blz":"830200100"

{

}

D O K U M E N T

1. Dokument: Schlüssel-

Wert-Paare

2. Schemafrei: Schlüssel sind

frei wählbar

3. Paare können jederzeit

hinzugefügt, geändert

und gelöscht werden

Page 17: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

"empfänger":"Eddi Müller"

"betrag":"1200 EUR"

"kontonr":"2221115132"

"blz":"830200100"

{

}

D O K U M E N T

1. Dokument: Schlüssel-

Wert-Paare

2. Schemafrei: Schlüssel

sind frei wählbar

3. Paare können jederzeit

hinzugefügt, geändert

und gelöscht werden

Page 18: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

"empfänger":"Eddi Müller"

"betrag":"1200 EUR"

"kontonr":"2221115132"

"blz":"830200100"

" betreff ":"Rechnung ABC"

{

}

D O K U M E N T

1. Dokument: Schlüssel-

Wert-Paare

2. Schemafrei: Schlüssel sind

frei wählbar

3. Paare können jederzeit

hinzugefügt, geändert

und gelöscht werden.

Page 19: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

"empfänger":"Eddi Müller"

"betrag":"1200 EUR"

"kontonr":"2221115132"

"blz":"830200100"

" betreff ":"Rechnung CBA"

{

}

D O K U M E N T

1. Dokument: Schlüssel-

Wert-Paare

2. Schemafrei: Schlüssel sind

frei wählbar

3. Paare können jederzeit

hinzugefügt, geändert

und gelöscht werden.

Page 20: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

"empfänger":"Eddi Müller"

"betrag":"1200 EUR"

"kontonr":"2221115132"

"blz":"830200100"

" betreff ":"Rechnung CBA"

{

}

D O K U M E N T

1. Dokument: Schlüssel-

Wert-Paare

2. Schemafrei: Schlüssel sind

frei wählbar

3. Paare können jederzeit

hinzugefügt, geändert

und gelöscht werden.

Page 21: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

D AT E N B A N K

1. Datenbank anlegen

2. Name der Datenbank

vergeben

3. In der Datenbank

Dokumente erstellen

~~~~~~~ ~~~~~~~

~~~~~ ~~~~~~

~~~~~~~ ~~~~~~

~~~~~~~ ~~~~~~~

~~~~~ ~~~~~~

~~~~~~~ ~~~~~~

~~~~~~~ ~~~~~~~

~~~~~ ~~~~~~

~~~~~~~ ~~~~~~

Datenbank

Page 22: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

"empfänger":"Eddi Müller"

"betrag":"1200 EUR"

"kontonr":"2221115132"

"blz":"830200100"

{

}

1. http://localhost:5984/_utils/

2. Datenbank „testdb“ erstellen

3. Dokument anlegen:

Page 23: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

D AT E N M O D E L L

~~~~~~~ ~~~~~~~

~~~~~ ~~~~~~

~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~

~~~~~ ~~~~~~

~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~

~~~~~ ~~~~~~

~~~~~~~ ~~~~~~

DokumentenorientiertRelational

~~~~~~~ ~~~~~~~

~~~~~ ~~~~~~

~~~~~~~ ~~~~~~

~~~~~~~ ~~~~~~~

~~~~~ ~~~~~~

~~~~~~~ ~~~~~~

~~~~~~~ ~~~~~~~

~~~~~ ~~~~~~

~~~~~~~ ~~~~~~

~ ~

~ ~

~ ~

~ ~

~ ~

Graph-Modell

wenig bis gar nicht vernetzt

z. B. Visitenkarten

teilweise vernetzt

z. B. Bestellungen

hoch vernetzt

z. B. Verwandschaft

Page 24: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

A B F R A G E N

Page 25: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

A B F R A G E N

1. Kein SQL

2. Abfragetechnik

MapReduce

3. View: map- und reduce-

Funktion

4. Umdenken nötig, dafür

skalierbar

SQL

Page 26: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

A B F R A G E N

1. Kein SQL

2. Abfragetechnik

MapReduce

3. View: map- und reduce-

Funktion

4. Umdenken nötig, dafür

skalierbar

1

2

3

map Ergebnisreduce

Page 27: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

A B F R A G E N

1. Kein SQL

2. Abfragetechnik

MapReduce

3. View: map- und reduce-

Funktion

4. Umdenken nötig, dafür

skalierbar

map reduce

View

Page 28: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

A B F R A G E N

1. Kein SQL

2. Abfragetechnik

MapReduce

3. View: map- und reduce-

Funktion

4. Umdenken nötig, dafür

skalierbar

t

n

Page 29: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

R E P L I C AT I O N

1. Ziel: Zwei Datenbanken

haben die gleichen

Dokumente

2. Repliziere von A nach B

3. Ändere X in A zu X.2

4. Ändere X in B zu X.3

5. Repliziere von A nach B

6. Lösche Konflikt X.3

Page 30: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

R E P L I C AT I O N

1. Ziel: Zwei Datenbanken

haben die gleichen

Dokumente

2. Repliziere von A nach B

3. Ändere X in A zu X.2

4. Ändere X in B zu X.3

5. Repliziere von A nach B

6. Lösche Konflikt X.3

A B

X.1

Page 31: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

R E P L I C AT I O N

1. Ziel: Zwei Datenbanken

haben die gleichen

Dokumente

2. Repliziere von A nach B

3. Ändere X in A zu X.2

4. Ändere X in B zu X.3

5. Repliziere von A nach B

6. Lösche Konflikt X.3

A B

X.1 X.1

Replikation

Page 32: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

R E P L I C AT I O N

1. Ziel: Zwei Datenbanken

haben die gleichen

Dokumente

2. Repliziere von A nach B

3. Ändere X in A zu X.2

4. Ändere X in B zu X.3

5. Repliziere von A nach B

6. Lösche Konflikt X.3

A B

X.2 X.1

Page 33: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

R E P L I C AT I O N

1. Ziel: Zwei Datenbanken

haben die gleichen

Dokumente

2. Repliziere von A nach B

3. Ändere X in A zu X.2

4. Ändere X in B zu X.3

5. Repliziere von A nach B

6. Lösche Konflikt X.3

A B

X.2 X.3

Page 34: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

R E P L I C AT I O N

1. Ziel: Zwei Datenbanken

haben die gleichen

Dokumente

2. Repliziere von A nach B

3. Ändere X in A zu X.2

4. Ändere X in B zu X.3

5. Repliziere von A nach B

6. Lösche Konflikt X.3

A B

X.2 X.2

Replikation

X.3

Page 35: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

R E P L I C AT I O N

1. Ziel: Zwei Datenbanken

haben die gleichen

Dokumente

2. Repliziere von A nach B

3. Ändere X in A zu X.2

4. Ändere X in B zu X.3

5. Repliziere von A nach B

6. Lösche Konflikt X.3

A B

X.2 X.2

Page 36: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Quelle: Bruce Allmächtig

Anwendungsfall:Virtuelle Pinnwand

Page 37: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten
Page 38: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Schema

Text text text text text …

http://url

Skizze…

??

Page 39: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Laptop Server

Replikation

Page 40: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Martin Junghannssones GmbH R&DEugen-Richter-Straße 4499085 Erfurt [email protected]

sones GraphDB

Page 41: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Netzwerke

● Welt besteht aus Objekten, die miteinander in Verbindung stehen

● Politik, Wirtschaft, Wissenschaft● Körper, Interaktionen● Hardware, Software● Familie, Freunde, Kollegen

● Komplexe Zusammenhänge, ständiger Wandel● Umfangreiche Datenmengen

Photo: Jeffrey Beall, flickr

Page 42: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Graph = (Knoten, Kanten)

ID : 1 ID : 2

Knoten

Kante

Graphdatenbanken

Photo: Jeffrey Beall, flickr

Page 43: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Property Graph

Benutzerdefinierte Eigenschaften

Freund_vonID : 1Name : Alice

Alter : 21

ID : 2Name : Bob

Alter : 23seit : 2009/09/21

Knoten

Kante

Kanten-Properties

Knoten-

Properties

Photo: Jeffrey Beall, flickr

Page 44: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Property Graph

Benutzerdefinierte Eigenschaften

Freund_vonID : 1Name : Alice

Alter : 21

ID : 2Name : Bob

Alter : 23seit : 2009/09/21

Knoten

Kante

Kanten-Properties

Knoten-

Properties

ID Name Alter

1 Alice 21

2 Bob 23

Person_A

Person_B

seit

1 2 2009/09/21

Photo: Jeffrey Beall, flickr

Page 45: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Property Graph

Beziehungen durch Kantentypen

Freund_vonID : 1Name : Alice

Alter : 21

ID : 2Name : Bob

Alter : 23seit : 2009/09/21

ID : 3Name : EveAlter : 42

verwandt_mit

Grad: Mutter / Tochter

Photo: Jeffrey Beall, flickr

Page 46: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

12.04.2023

Property Graph

Entitäten durch Knotentypen

Freund_vonID : 1Name : Alice

Alter : 21

ID : 2Name : Bob

Alter : 23seit : 2009/09/21

ID : 3Name : EveAlter : 42

Grad: Mutter / TochterID : 4

Name : JenaLand : D

EW : 100K

wohnt

_in

Person Person

Person

Ort

verwandt_mit

Photo: Jeffrey Beall, flickr

Page 47: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

ID : 0Typ : PersonName: Alice

Age : 23

ID : 1Typ : PersonName : Bob

Age : 42

kommuniziert mitEncrypted : true

Method : RSA

ID : 3Typ : PersonName : Carol

Age : 18

kommuniziert mit

Encrypted : true

Method : AESverwandt m

it

Grad : Sist

er

ID : 23Typ : Uni

Name : TU Ilmenau

ID : 12Typ : Uni

Name : BA Gera

studiert anseit : 2001

studiert an seit

: 200

5seit : 2004

Stud

iert

an

Property Graph

Photo: Chuck “Caveman” Coker, flickr

Page 48: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Einfache Verwaltung strukturierter,

semi-strukturierter, unstrukturierter

Daten

Photo: litlnemo, flickr

Page 49: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Konstante Performanz auch bei steigender Datenmenge durch indexfreie Adjazenz

Photo: Google Search

Page 50: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Einfache Verwaltung (rekursiv)vernetzter

Daten

Photo: Robbert van der Steeg, flickr

Page 51: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Entdecken und Empfehlen potentiell interessanter

Zusammenhänge

Photo: Jeffrey Beall, flickr

Page 52: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Datensicherheit durchVerschlüsselung,Replikation undVersionierung

Photo: squacco, flickr

Page 53: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Anwendungen eGovernment

● Social Network – zentrale Kommunikationsplattform in der Verwaltung

● Universal Data Access – Daten zentral verwalten, Daten aus diversen Quellen verknüpfen

● Recommendation – Bewertung von Personen, Projekten, Bauflächen, Wohnräumen, …

Page 54: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Anwendungen eGovernment

● Automatische Kategorisierung – um die Übereinstimmung von z.B. Jobanzeigen und Bewerbern zu erhöhen und eine branchenübergreifende Empfehlung zu ermöglichen

● Verkehrsplanung (GIS) – Planung von Straßen anhand der Auslastung bestehender Verkehrsnetze

● ...

Photo: Google Maps Leipzig

Page 55: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Let‘s go to work @

http://localhost:8080/webshell

Photo: outnow.ch

Page 56: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

CREATE VERTEX UserProfile

ATTRIBUTES

(

String Nachname,

Integer Alter,

Set<UserProfile> Freunde

)

Page 57: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

INSERT INTO UserProfile

VALUES

(

Nachname = „Mueller“,

Alter = 23

)

Page 58: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

INSERT INTO UserProfile

VALUES

(

Nachname = „Schmidt“,

Vorname = „Peter“,

Alter = 42,

Freunde = SETOF(Nachname=„Mueller“)

)

Page 59: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

FROM UserProfile SELECT *

Page 60: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

ALTER VERTEX UserProfile

ADD ATTRIBUTES ( String Wohnort )

ALTER VERTEX UserProfile

MANDATORY ( Wohnort )

FROM UserProfile SELECT *

Page 61: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

INSERT INTO UserProfile

VALUES

(

Nachname = „Schulze“,

Alter = 37

)

Page 62: NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Martin Junghannssones GmbH R&[email protected]

[email protected]

Vielen Dank

Olivo SkawronekIBYKUS [email protected]

Tilmann SoeffingSenova [email protected]