NoSQL - Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken

Stefan Edlich, Achim Friedland, Jens Hampe et al.

NoSQL

Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken

2011

412 Seiten

Format: PDF, Online Lesen

E-Book: €  23,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446428553

 

Inhalt

6

Geleitwort

14

Vorwort

16

Vorwort zur 2.Auflage

18

Einführung

20

1.1 Historie

20

1.2 Definition und Diskussion

21

1.3 Kategorisierung von NoSQL-Systemen

24

1.3.1 Key/Value-Systeme

26

1.3.2 Column-Family-Systeme

26

1.3.3 Document Stores

27

1.3.4 Graphdatenbanken

27

1.4 Fazit

28

NoSQL – Theoretische Grundlagen

30

2.1 Map/Reduce

31

2.1.1 Funktionale Ursprünge

31

2.1.2 Phasen und Datenfluss

36

2.1.3 Komponenten und Architektur

38

2.1.4 Anwendungsbereiche und Implementierungen

41

2.1.5 Praktisches Beispiel

43

2.1.6 Zusammenfassung

47

2.2 CAP und Eventually Consistent

49

2.2.1 Konsistenzmodell relationaler Datenbanken

49

2.2.2 CAP- Theorem

50

2.2.3 Alternatives Konsistenzmodell: BASE

52

2.3 Consistent-Hashing

55

2.4 Multiversion Concurrency Control

59

2.5 Vector Clocks

62

2.6 Paxos

66

2.7 REST

70

2.7.1 Web-scale?

70

2.7.2 Bausteine

71

2.7.3 Entwurf von REST- Applikationen

75

2.7.4 Skalierung von REST-Systemen

78

2.7.5 Fazit

80

Wide Column Stores

82

3.1 HBase

83

3.1.1 Überblick

83

3.1.2 Allgemeines

84

3.1.3 Datenmodell

84

3.1.4 Installation

86

3.1.5 CRUD-Operationen

88

3.1.6 Fortgeschrittene Abfragen mit Map/Reduce

93

3.1.7 Skalierung und Konfiguration

96

3.1.8 Replikation

98

3.1.9 Bewertung

99

3.2 Cassandra

101

3.2.1 Allgemeines

101

3.2.2 Installation

102

3.2.3 Datenmodell

103

3.2.4 CRUD-Operationen

107

3.2.5 Abfragen in Cassandra

110

3.2.6 Replikation und Skalierung

112

3.2.7 Bewertung

113

3.3 Amazon SimpleDB

115

3.3.1 Allgemeines

116

3.3.2 Datenmodell

116

3.3.3 Datensicherheit und Datenschutz

117

3.3.4 Installation

118

3.3.5 CRUD-Operationen

119

3.3.6 Zugriff mit dem AWS Toolkit für Eclipse

130

3.3.7 Replikation und Skalierung

133

3.3.8 Bewertung

133

Document Stores

136

4.1 CouchDB

137

4.1.1 Überblick

137

4.1.2 Beschreibung

137

4.1.3 Datenmodell

138

4.1.4 View-Modell

139

4.1.5 Zugriffskontrolle

139

4.1.6 Installation

140

4.1.7 CRUD-Operationen

142

4.1.8 Erstellen von Views

146

4.1.9 Replikation

147

4.1.10 Skalierung

148

4.1.11 CouchApps

148

4.1.12 Bewertung

149

4.2 MongoDB

150

4.2.1 Überblick

150

4.2.2 Datenmodell

152

4.2.3 Installation

153

4.2.4 CRUD-Operationen

154

4.2.5 Fortgeschrittene Abfragen und Map/Reduce

159

4.2.6 Skalierung

162

4.2.7 Replikation

164

4.2.8 Bewertung

167

Key/Value-Datenbanken

170

5.1 Redis

171

5.1.1 Überblick

171

5.1.2 Allgemeines

171

5.1.3 Installation

172

5.1.4 CRUD-Operationen

173

5.1.5 Redis Hashes

179

5.1.6 Redis Messaging

180

5.1.7 Zugriff aus anderen Programmiersprachen

181

5.1.8 Replikation und Konfiguration

183

5.1.9 Skalierung

185

5.1.10 Bewertung

185

5.2 Chordless

187

5.2.1 Überblick

187

5.2.2 Allgemeines

188

5.2.3 Installation

189

5.2.4 CRUD-Operationen

190

5.2.5 Fortgeschrittene Abfragen

192

5.2.6 Skalierung, Replikation und Konfiguration

195

5.2.7 Bewertung

196

5.3 Riak

198

5.3.1 Überblick

198

5.3.2 Allgemeines

198

5.3.3 Installation

201

5.3.4 CRUD-Operationen

201

5.3.5 Zugriff aus anderen Programmiersprachen

203

5.3.6 Abfragen und Links in Riak

206

5.3.7 Riak Search

208

5.3.8 Skalierung, Replikation und Konfiguration

209

5.3.9 Bewertung

210

5.4 Membase

212

5.4.1 Überblick

212

5.4.2 Allgemeines

212

5.4.3 Installation

213

5.4.4 Architektur und Konzepte

215

5.4.5 Das Memcached-Protokoll

218

5.4.6 Zugriff aus anderen Programmiersprachen

218

5.4.7 Skalierung und Replikation

220

5.4.8 Der Moxi

221

5.4.9 Die TAP-Schnittstelle

222

5.4.10 Bewertung

223

Graphdatenbanken

226

6.1 Mathematische und technische Grundlagen

228

6.1.1 Das allgemeine Graphenmodell

228

6.1.2 Das Property-Graph-Modell

229

6.1.3 Relationen höherer Ordnung

232

6.1.4 Repräsentation von Graphen

236

6.1.5 Traversierung von Graphen

238

6.1.6 Indizierung von Graphdaten

240

6.1.7 Skalierung mittels Replikation und Partitionierung

241

6.1.8 Graph Query Languages

244

6.1.9 Vergleich mit anderen Datenmodellen

244

6.1.10 Zusammenfassung

247

6.2 Der Tinkerpop Graph Processing Stack

249

6.2.1 Blueprints

250

6.2.2 Blueprints.NET

253

6.2.3 Frames

255

6.2.4 Pipes und Pipes.NET

256

6.2.5 Gremlin

259

6.2.6 Pacer

263

6.2.7 Rexster

263

6.3 AllegroGraph

267

6.3.1 Datenmodell

268

6.3.2 Installation

269

6.3.3 CRUD-Operationen mit Java

270

6.3.4 RDF-Reasoning und Konsistenzkriterien

276

6.3.5 Bewertung

278

6.4 DEX

279

6.4.1 Beschreibung

280

6.4.2 Datenmodell

281

6.4.3 Installation

281

6.4.4 CRUD-Operationen

281

6.4.5 Graphoperationen

283

6.4.6 DEX-Skripting

284

6.4.7 DEX-Shell

286

6.4.8 Bewertung

287

6.5 HyperGraphDB

288

6.5.1 Datenmodell

288

6.5.2 Installation

289

6.5.3 CRUD-Operationen

290

6.5.4 Graphoperationen

293

6.5.5 Peer- To-Peer-Framework

293

6.5.6 Bewertung

293

6.6 InfiniteGraph

295

6.6.1 Beschreibung

295

6.6.2 Datenmodell

296

6.6.3 Installation

297

6.6.4 CRUD-Operationen

297

6.6.5 Graphoperationen

301

6.6.6 Bewertung

302

6.7 InfoGrid

303

6.7.1 Beschreibung

304

6.7.2 Datenmodell

304

6.7.3 Installation

305

6.7.4 CRUD-Operationen

305

6.7.5 Models

308

6.7.6 Bewertung

309

6.8 Neo4j

309

6.8.1 Installation

310

6.8.2 CRUD-Operationen mit der Java- API

311

6.8.3 CRUD-Operationen mit JRuby

315

6.8.4 HTTP/REST-Schnittstelle

316

6.8.5 Cypher

319

6.8.6 Replikation und Skalierung

320

6.8.7 Bewertung

320

6.9 sones GraphDB

321

6.9.1 Datenmodell

322

6.9.2 Installation

323

6.9.3 CRUD-Operationen

323

6.9.4 Bewertung

327

6.10 Weitere graphorientierte Ansätze

328

6.10.1 Twitters FlockDB

328

6.10.2 Google Pregel

330

6.10.3 Apache Hama

334

6.10.4 Microsoft Trinity

336

6.10.5 Die VertexDB-Familie

340

6.10.6 Filament

343

OrientDB

348

7.1 Überblick

348

7.2 Allgemeines

349

7.3 Datenmodell

349

7.4 Struktur der Datenablage

351

7.5 Datenbanksicherheit

351

7.6 Installation

352

7.7 CRUD-Operationen DocumentDB

355

7.8 CRUD-Operationen ObjectDB

359

7.9 CRUD-Operationen GraphDB

362

7.10 Datenbankschemata

366

7.11 Transaktionen

366

7.12 HTTP-REST-Schnittstelle

367

7.13 Replizierung

370

7.14 Hosting über NuvolaBase

372

7.15 Bewertung

372

Weitere NoSQL-Datenbanken

374

8.1 Wide Column Stores

375

8.1.1 Hypertable

375

8.1.2 Cloudera

376

8.2 Document Stores

377

8.3 Key/Value/Tupel-Stores

378

8.3.1 Amazon Dynamo

378

8.3.2 Dynomite und KAI

379

8.3.3 Voldemort

379

8.3.4 Scalaris

382

8.3.5 Die Tokyo-Produktfamilie

383

8.3.6 Weitere Key/Value-Systeme

385

8.4 Google App Engine Storage

386

8.5 Weitere ‚Soft’-NoSQL-Lösungen

387

Orientierung im Datenbankraum

390

9.1 Grundlegende Gedanken

391

9.2 Datenanalyse

392

9.3 Transaktionsmodell

394

9.4 Performancesapekte

395

9.5 Abfrageanforderungen

396

9.6 Architektur

397

9.7 Weitere nicht-funktionale Anforderungen

398

9.8 Anwendungsfälle für NoSQL-Datenbanken

400

9.9 Fazit

401

Register

404

 

© 2009-2024 ciando GmbH