NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten

Preview:

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

NoSQL

Neue Ansätze zur Verwaltung unstrukturierter Daten

Tilmann Söffing

Das Relationale Datenbankmodell

Tabellenorientiert

PersonenID Name Alter

1 Meier 34

2 Peterson 52

3 Heinz 81

4 Kunz 63

Attribut

Datensatz

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

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

RDBM - Probleme

● Flexibilität

● Komplexität

● Lokalität

● Konnektivität

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

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

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

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

Der Begriff: NoSQL

NoSQL steht nicht für

„No to SQL“ oder „Never use SQL“

Der Begriff: NoSQL

NoSQL steht für

Not Only SQL

Ziele der NoSQL-Bewegung

Verwaltung von

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

Ziele der NoSQL-Bewegung

Operationen auf Daten- Replikation- Versionierung- Partitionierung

NoSQL - Vertreter

Document

Graph DB

Key-Value

BigTable

Für jede Anwendung das richtige Werkzeug

"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

"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

"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.

"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.

"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.

D AT E N B A N K

1. Datenbank anlegen

2. Name der Datenbank

vergeben

3. In der Datenbank

Dokumente erstellen

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

~~~~~ ~~~~~~

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

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

~~~~~ ~~~~~~

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

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

~~~~~ ~~~~~~

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

Datenbank

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

"betrag":"1200 EUR"

"kontonr":"2221115132"

"blz":"830200100"

{

}

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

2. Datenbank „testdb“ erstellen

3. Dokument anlegen:

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

A B F R A G E N

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

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

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

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

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

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

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

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

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

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

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

Quelle: Bruce Allmächtig

Anwendungsfall:Virtuelle Pinnwand

Schema

Text text text text text …

http://url

Skizze…

??

Laptop Server

Replikation

Martin Junghannssones GmbH R&DEugen-Richter-Straße 4499085 Erfurt martin@sones.de12.04.2023

sones GraphDB

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

Graph = (Knoten, Kanten)

ID : 1 ID : 2

Knoten

Kante

Graphdatenbanken

Photo: Jeffrey Beall, flickr

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

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

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

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

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

Einfache Verwaltung strukturierter,

semi-strukturierter, unstrukturierter

Daten

Photo: litlnemo, flickr

Konstante Performanz auch bei steigender Datenmenge durch indexfreie Adjazenz

Photo: Google Search

Einfache Verwaltung (rekursiv)vernetzter

Daten

Photo: Robbert van der Steeg, flickr

Entdecken und Empfehlen potentiell interessanter

Zusammenhänge

Photo: Jeffrey Beall, flickr

Datensicherheit durchVerschlüsselung,Replikation undVersionierung

Photo: squacco, flickr

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, …

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

Let‘s go to work @

http://localhost:8080/webshell

Photo: outnow.ch

CREATE VERTEX UserProfile

ATTRIBUTES

(

String Nachname,

Integer Alter,

Set<UserProfile> Freunde

)

INSERT INTO UserProfile

VALUES

(

Nachname = „Mueller“,

Alter = 23

)

INSERT INTO UserProfile

VALUES

(

Nachname = „Schmidt“,

Vorname = „Peter“,

Alter = 42,

Freunde = SETOF(Nachname=„Mueller“)

)

FROM UserProfile SELECT *

ALTER VERTEX UserProfile

ADD ATTRIBUTES ( String Wohnort )

ALTER VERTEX UserProfile

MANDATORY ( Wohnort )

FROM UserProfile SELECT *

INSERT INTO UserProfile

VALUES

(

Nachname = „Schulze“,

Alter = 37

)

Martin Junghannssones GmbH R&Dmartin@sones.deLeipzig

martin@sones.de

Vielen Dank

Olivo SkawronekIBYKUS AGOliver.Skawronek@ibykus.deErfurt

Tilmann SoeffingSenova GmbHT.Soeffing@senova.deWeimar

Recommended