
NoSQL
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Reviews / Votes
Zur 1. Auflage:"NoSQL-Datenbanken boomen, soviel ist klar. Was sie auszeichnet wie sie sich unterscheiden und was sie nicht können, das haben Edlich, Friedland, Hampe und Brauer beantwortet.[.]Den Autoren gelingt es, Basiswissen und den Überblick über die Systeme nachvollziehbar und bei aller Theorie dennoch spannend zu vermitteln." Frank Müller, iX, Mai 2011More details
Other editions
Additional editions

Persons
Content
2 - Geleitwort [Seite 14]
3 - Vorwort [Seite 16]
3.1 - Vorwort zur 2.Auflage [Seite 18]
4 - Einführung [Seite 20]
4.1 - 1.1 Historie [Seite 20]
4.2 - 1.2 Definition und Diskussion [Seite 21]
4.3 - 1.3 Kategorisierung von NoSQL-Systemen [Seite 24]
4.3.1 - 1.3.1 Key/Value-Systeme [Seite 26]
4.3.2 - 1.3.2 Column-Family-Systeme [Seite 26]
4.3.3 - 1.3.3 Document Stores [Seite 27]
4.3.4 - 1.3.4 Graphdatenbanken [Seite 27]
4.4 - 1.4 Fazit [Seite 28]
5 - NoSQL - Theoretische Grundlagen [Seite 30]
5.1 - 2.1 Map/Reduce [Seite 31]
5.1.1 - 2.1.1 Funktionale Ursprünge [Seite 31]
5.1.2 - 2.1.2 Phasen und Datenfluss [Seite 36]
5.1.3 - 2.1.3 Komponenten und Architektur [Seite 38]
5.1.4 - 2.1.4 Anwendungsbereiche und Implementierungen [Seite 41]
5.1.5 - 2.1.5 Praktisches Beispiel [Seite 43]
5.1.6 - 2.1.6 Zusammenfassung [Seite 47]
5.2 - 2.2 CAP und Eventually Consistent [Seite 49]
5.2.1 - 2.2.1 Konsistenzmodell relationaler Datenbanken [Seite 49]
5.2.2 - 2.2.2 CAP- Theorem [Seite 50]
5.2.3 - 2.2.3 Alternatives Konsistenzmodell: BASE [Seite 52]
5.3 - 2.3 Consistent-Hashing [Seite 55]
5.4 - 2.4 Multiversion Concurrency Control [Seite 59]
5.5 - 2.5 Vector Clocks [Seite 62]
5.6 - 2.6 Paxos [Seite 66]
5.7 - 2.7 REST [Seite 70]
5.7.1 - 2.7.1 Web-scale? [Seite 70]
5.7.2 - 2.7.2 Bausteine [Seite 71]
5.7.3 - 2.7.3 Entwurf von REST- Applikationen [Seite 75]
5.7.4 - 2.7.4 Skalierung von REST-Systemen [Seite 78]
5.7.5 - 2.7.5 Fazit [Seite 80]
6 - Wide Column Stores [Seite 82]
6.1 - 3.1 HBase [Seite 83]
6.1.1 - 3.1.1 Überblick [Seite 83]
6.1.2 - 3.1.2 Allgemeines [Seite 84]
6.1.3 - 3.1.3 Datenmodell [Seite 84]
6.1.4 - 3.1.4 Installation [Seite 86]
6.1.5 - 3.1.5 CRUD-Operationen [Seite 88]
6.1.6 - 3.1.6 Fortgeschrittene Abfragen mit Map/Reduce [Seite 93]
6.1.7 - 3.1.7 Skalierung und Konfiguration [Seite 96]
6.1.8 - 3.1.8 Replikation [Seite 98]
6.1.9 - 3.1.9 Bewertung [Seite 99]
6.2 - 3.2 Cassandra [Seite 101]
6.2.1 - 3.2.1 Allgemeines [Seite 101]
6.2.2 - 3.2.2 Installation [Seite 102]
6.2.3 - 3.2.3 Datenmodell [Seite 103]
6.2.4 - 3.2.4 CRUD-Operationen [Seite 107]
6.2.5 - 3.2.5 Abfragen in Cassandra [Seite 110]
6.2.6 - 3.2.6 Replikation und Skalierung [Seite 112]
6.2.7 - 3.2.7 Bewertung [Seite 113]
6.3 - 3.3 Amazon SimpleDB [Seite 115]
6.3.1 - 3.3.1 Allgemeines [Seite 116]
6.3.2 - 3.3.2 Datenmodell [Seite 116]
6.3.3 - 3.3.3 Datensicherheit und Datenschutz [Seite 117]
6.3.4 - 3.3.4 Installation [Seite 118]
6.3.5 - 3.3.5 CRUD-Operationen [Seite 119]
6.3.6 - 3.3.6 Zugriff mit dem AWS Toolkit für Eclipse [Seite 130]
6.3.7 - 3.3.7 Replikation und Skalierung [Seite 133]
6.3.8 - 3.3.8 Bewertung [Seite 133]
7 - Document Stores [Seite 136]
7.1 - 4.1 CouchDB [Seite 137]
7.1.1 - 4.1.1 Überblick [Seite 137]
7.1.2 - 4.1.2 Beschreibung [Seite 137]
7.1.3 - 4.1.3 Datenmodell [Seite 138]
7.1.4 - 4.1.4 View-Modell [Seite 139]
7.1.5 - 4.1.5 Zugriffskontrolle [Seite 139]
7.1.6 - 4.1.6 Installation [Seite 140]
7.1.7 - 4.1.7 CRUD-Operationen [Seite 142]
7.1.8 - 4.1.8 Erstellen von Views [Seite 146]
7.1.9 - 4.1.9 Replikation [Seite 147]
7.1.10 - 4.1.10 Skalierung [Seite 148]
7.1.11 - 4.1.11 CouchApps [Seite 148]
7.1.12 - 4.1.12 Bewertung [Seite 149]
7.2 - 4.2 MongoDB [Seite 150]
7.2.1 - 4.2.1 Überblick [Seite 150]
7.2.2 - 4.2.2 Datenmodell [Seite 152]
7.2.3 - 4.2.3 Installation [Seite 153]
7.2.4 - 4.2.4 CRUD-Operationen [Seite 154]
7.2.5 - 4.2.5 Fortgeschrittene Abfragen und Map/Reduce [Seite 159]
7.2.6 - 4.2.6 Skalierung [Seite 162]
7.2.7 - 4.2.7 Replikation [Seite 164]
7.2.8 - 4.2.8 Bewertung [Seite 167]
8 - Key/Value-Datenbanken [Seite 170]
8.1 - 5.1 Redis [Seite 171]
8.1.1 - 5.1.1 Überblick [Seite 171]
8.1.2 - 5.1.2 Allgemeines [Seite 171]
8.1.3 - 5.1.3 Installation [Seite 172]
8.1.4 - 5.1.4 CRUD-Operationen [Seite 173]
8.1.5 - 5.1.5 Redis Hashes [Seite 179]
8.1.6 - 5.1.6 Redis Messaging [Seite 180]
8.1.7 - 5.1.7 Zugriff aus anderen Programmiersprachen [Seite 181]
8.1.8 - 5.1.8 Replikation und Konfiguration [Seite 183]
8.1.9 - 5.1.9 Skalierung [Seite 185]
8.1.10 - 5.1.10 Bewertung [Seite 185]
8.2 - 5.2 Chordless [Seite 187]
8.2.1 - 5.2.1 Überblick [Seite 187]
8.2.2 - 5.2.2 Allgemeines [Seite 188]
8.2.3 - 5.2.3 Installation [Seite 189]
8.2.4 - 5.2.4 CRUD-Operationen [Seite 190]
8.2.5 - 5.2.5 Fortgeschrittene Abfragen [Seite 192]
8.2.6 - 5.2.6 Skalierung, Replikation und Konfiguration [Seite 195]
8.2.7 - 5.2.7 Bewertung [Seite 196]
8.3 - 5.3 Riak [Seite 198]
8.3.1 - 5.3.1 Überblick [Seite 198]
8.3.2 - 5.3.2 Allgemeines [Seite 198]
8.3.3 - 5.3.3 Installation [Seite 201]
8.3.4 - 5.3.4 CRUD-Operationen [Seite 201]
8.3.5 - 5.3.5 Zugriff aus anderen Programmiersprachen [Seite 203]
8.3.6 - 5.3.6 Abfragen und Links in Riak [Seite 206]
8.3.7 - 5.3.7 Riak Search [Seite 208]
8.3.8 - 5.3.8 Skalierung, Replikation und Konfiguration [Seite 209]
8.3.9 - 5.3.9 Bewertung [Seite 210]
8.4 - 5.4 Membase [Seite 212]
8.4.1 - 5.4.1 Überblick [Seite 212]
8.4.2 - 5.4.2 Allgemeines [Seite 212]
8.4.3 - 5.4.3 Installation [Seite 213]
8.4.4 - 5.4.4 Architektur und Konzepte [Seite 215]
8.4.5 - 5.4.5 Das Memcached-Protokoll [Seite 218]
8.4.6 - 5.4.6 Zugriff aus anderen Programmiersprachen [Seite 218]
8.4.7 - 5.4.7 Skalierung und Replikation [Seite 220]
8.4.8 - 5.4.8 Der Moxi [Seite 221]
8.4.9 - 5.4.9 Die TAP-Schnittstelle [Seite 222]
8.4.10 - 5.4.10 Bewertung [Seite 223]
9 - Graphdatenbanken [Seite 226]
9.1 - 6.1 Mathematische und technische Grundlagen [Seite 228]
9.1.1 - 6.1.1 Das allgemeine Graphenmodell [Seite 228]
9.1.2 - 6.1.2 Das Property-Graph-Modell [Seite 229]
9.1.3 - 6.1.3 Relationen höherer Ordnung [Seite 232]
9.1.4 - 6.1.4 Repräsentation von Graphen [Seite 236]
9.1.5 - 6.1.5 Traversierung von Graphen [Seite 238]
9.1.6 - 6.1.6 Indizierung von Graphdaten [Seite 240]
9.1.7 - 6.1.7 Skalierung mittels Replikation und Partitionierung [Seite 241]
9.1.8 - 6.1.8 Graph Query Languages [Seite 244]
9.1.9 - 6.1.9 Vergleich mit anderen Datenmodellen [Seite 244]
9.1.10 - 6.1.10 Zusammenfassung [Seite 247]
9.2 - 6.2 Der Tinkerpop Graph Processing Stack [Seite 249]
9.2.1 - 6.2.1 Blueprints [Seite 250]
9.2.2 - 6.2.2 Blueprints.NET [Seite 253]
9.2.3 - 6.2.3 Frames [Seite 255]
9.2.4 - 6.2.4 Pipes und Pipes.NET [Seite 256]
9.2.5 - 6.2.5 Gremlin [Seite 259]
9.2.6 - 6.2.6 Pacer [Seite 263]
9.2.7 - 6.2.7 Rexster [Seite 263]
9.3 - 6.3 AllegroGraph [Seite 267]
9.3.1 - 6.3.1 Datenmodell [Seite 268]
9.3.2 - 6.3.2 Installation [Seite 269]
9.3.3 - 6.3.3 CRUD-Operationen mit Java [Seite 270]
9.3.4 - 6.3.4 RDF-Reasoning und Konsistenzkriterien [Seite 276]
9.3.5 - 6.3.5 Bewertung [Seite 278]
9.4 - 6.4 DEX [Seite 279]
9.4.1 - 6.4.1 Beschreibung [Seite 280]
9.4.2 - 6.4.2 Datenmodell [Seite 281]
9.4.3 - 6.4.3 Installation [Seite 281]
9.4.4 - 6.4.4 CRUD-Operationen [Seite 281]
9.4.5 - 6.4.5 Graphoperationen [Seite 283]
9.4.6 - 6.4.6 DEX-Skripting [Seite 284]
9.4.7 - 6.4.7 DEX-Shell [Seite 286]
9.4.8 - 6.4.8 Bewertung [Seite 287]
9.5 - 6.5 HyperGraphDB [Seite 288]
9.5.1 - 6.5.1 Datenmodell [Seite 288]
9.5.2 - 6.5.2 Installation [Seite 289]
9.5.3 - 6.5.3 CRUD-Operationen [Seite 290]
9.5.4 - 6.5.4 Graphoperationen [Seite 293]
9.5.5 - 6.5.5 Peer- To-Peer-Framework [Seite 293]
9.5.6 - 6.5.6 Bewertung [Seite 293]
9.6 - 6.6 InfiniteGraph [Seite 295]
9.6.1 - 6.6.1 Beschreibung [Seite 295]
9.6.2 - 6.6.2 Datenmodell [Seite 296]
9.6.3 - 6.6.3 Installation [Seite 297]
9.6.4 - 6.6.4 CRUD-Operationen [Seite 297]
9.6.5 - 6.6.5 Graphoperationen [Seite 301]
9.6.6 - 6.6.6 Bewertung [Seite 302]
9.7 - 6.7 InfoGrid [Seite 303]
9.7.1 - 6.7.1 Beschreibung [Seite 304]
9.7.2 - 6.7.2 Datenmodell [Seite 304]
9.7.3 - 6.7.3 Installation [Seite 305]
9.7.4 - 6.7.4 CRUD-Operationen [Seite 305]
9.7.5 - 6.7.5 Models [Seite 308]
9.7.6 - 6.7.6 Bewertung [Seite 309]
9.8 - 6.8 Neo4j [Seite 309]
9.8.1 - 6.8.1 Installation [Seite 310]
9.8.2 - 6.8.2 CRUD-Operationen mit der Java- API [Seite 311]
9.8.3 - 6.8.3 CRUD-Operationen mit JRuby [Seite 315]
9.8.4 - 6.8.4 HTTP/REST-Schnittstelle [Seite 316]
9.8.5 - 6.8.5 Cypher [Seite 319]
9.8.6 - 6.8.6 Replikation und Skalierung [Seite 320]
9.8.7 - 6.8.7 Bewertung [Seite 320]
9.9 - 6.9 sones GraphDB [Seite 321]
9.9.1 - 6.9.1 Datenmodell [Seite 322]
9.9.2 - 6.9.2 Installation [Seite 323]
9.9.3 - 6.9.3 CRUD-Operationen [Seite 323]
9.9.4 - 6.9.4 Bewertung [Seite 327]
9.10 - 6.10 Weitere graphorientierte Ansätze [Seite 328]
9.10.1 - 6.10.1 Twitters FlockDB [Seite 328]
9.10.2 - 6.10.2 Google Pregel [Seite 330]
9.10.3 - 6.10.3 Apache Hama [Seite 334]
9.10.4 - 6.10.4 Microsoft Trinity [Seite 336]
9.10.5 - 6.10.5 Die VertexDB-Familie [Seite 340]
9.10.6 - 6.10.6 Filament [Seite 343]
10 - OrientDB [Seite 348]
10.1 - 7.1 Überblick [Seite 348]
10.2 - 7.2 Allgemeines [Seite 349]
10.3 - 7.3 Datenmodell [Seite 349]
10.4 - 7.4 Struktur der Datenablage [Seite 351]
10.5 - 7.5 Datenbanksicherheit [Seite 351]
10.6 - 7.6 Installation [Seite 352]
10.7 - 7.7 CRUD-Operationen DocumentDB [Seite 355]
10.8 - 7.8 CRUD-Operationen ObjectDB [Seite 359]
10.9 - 7.9 CRUD-Operationen GraphDB [Seite 362]
10.10 - 7.10 Datenbankschemata [Seite 366]
10.11 - 7.11 Transaktionen [Seite 366]
10.12 - 7.12 HTTP-REST-Schnittstelle [Seite 367]
10.13 - 7.13 Replizierung [Seite 370]
10.14 - 7.14 Hosting über NuvolaBase [Seite 372]
10.15 - 7.15 Bewertung [Seite 372]
11 - Weitere NoSQL-Datenbanken [Seite 374]
11.1 - 8.1 Wide Column Stores [Seite 375]
11.1.1 - 8.1.1 Hypertable [Seite 375]
11.1.2 - 8.1.2 Cloudera [Seite 376]
11.2 - 8.2 Document Stores [Seite 377]
11.3 - 8.3 Key/Value/Tupel-Stores [Seite 378]
11.3.1 - 8.3.1 Amazon Dynamo [Seite 378]
11.3.2 - 8.3.2 Dynomite und KAI [Seite 379]
11.3.3 - 8.3.3 Voldemort [Seite 379]
11.3.4 - 8.3.4 Scalaris [Seite 382]
11.3.5 - 8.3.5 Die Tokyo-Produktfamilie [Seite 383]
11.3.6 - 8.3.6 Weitere Key/Value-Systeme [Seite 385]
11.4 - 8.4 Google App Engine Storage [Seite 386]
11.5 - 8.5 Weitere 'Soft'-NoSQL-Lösungen [Seite 387]
12 - Orientierung im Datenbankraum [Seite 390]
12.1 - 9.1 Grundlegende Gedanken [Seite 391]
12.2 - 9.2 Datenanalyse [Seite 392]
12.3 - 9.3 Transaktionsmodell [Seite 394]
12.4 - 9.4 Performancesapekte [Seite 395]
12.5 - 9.5 Abfrageanforderungen [Seite 396]
12.6 - 9.6 Architektur [Seite 397]
12.7 - 9.7 Weitere nicht-funktionale Anforderungen [Seite 398]
12.8 - 9.8 Anwendungsfälle für NoSQL-Datenbanken [Seite 400]
12.9 - 9.9 Fazit [Seite 401]
13 - Register [Seite 404]
In den vorigen Kapiteln wurde gut ein Dutzend der wichtigsten NoSQL-Datenbanken ausführlich erwähnt. Daher werden wir Ihnen in diesem Kapitel einen kurzen Überblick über die wichtigsten weiteren NoSQL-Datenbanken geben, die nachweisbar Einzug in die Industrie gefunden haben. Wie groß der Raum der NoSQL-Systeme derzeit tatsächlich ist, ist nicht zu bestimmen. Auf den wichtigsten Referenzseiten zu NoSQL wird alle paar Tage ein neues Datenbanksystem eingetragen. Weit über 100 NoSQL-Systeme sind dort bereits verzeichnet. Sicherlich sind viele von diesen Datenbanken noch jung und auch viele von kleinen Gruppen oder Einzelpersonen erstellt.
Dennoch dürften derzeit mindestens 30 bis 40 dieser Datenbanken bereits in nichttrivialen Anwendungen in der Industrie eingesetzt sein und eine Community mitbringen. Ziel dieses Kapitels ist, diese Anwendungen vorzustellen und auf Stärken und Schwächen hinzuweisen, damit Sie diese Systeme vielleicht auch in den Lösungsraum mit einbeziehen können. Wir beginnen mit dem Bereich der Wide Column Stores, in dem es derzeit noch sehr wenige Systeme gibt.
Hier fällt auch die Abgrenzung zu vielen Key/Value-Datenbanken (siehe Kapitel 3 und 5) – aufgrund der mächtigen Erweiterungen ebendieser – schwer. Aber mit Hypertable und Cloudera gibt es zwei Vertreter, die als Hadoop-Derivate in der Liga der Petabyte-Scale-Datenbanken spielen. Im folgenden Teil werden die NoSQL-Datenbanken vorgestellt, die in der ausführlichen Analyse vorher keinen Platz mehr gefunden haben, aber dennoch relevant für eine Evaluation wären. Darunter sind Systeme wie Amazon Dynamo, die die NoSQL-Welt nachhaltig geprägt haben, aber nicht Open Source sind. Oder das NoSQL-System Voldemort, welches im Vergleich zu vielen anderen Key/Value-Systemen bereits sehr oft eingesetzt wird.
8.1 Wide Column Stores
8.1.1 Hypertable
Hypertable wurde von Doug Judd gegründet und ahmt die Idee von Googles BigTable mit dem Map/Reduce-Framework beziehungsweise von Apache Hadoop nach. Da Hypertable Open Source ist, gibt es zwei Websites:
- http://www.hypertable.org
- http://www.hypertable.com
Die erste Website hostet das Open Source-Projekt selbst. Die zweite bietet kommerziellen Support auf Hypertable-Basis. Hypertable kann auf Hadoop aufsetzen und die Daten auch in das HDFS-Dateisystem speichern. Hypertable ist stark an das Googles BigTable-Modell angelehnt. Google selbst bietet damit Services wie YouTube, Blogger, Google Earth, Google Maps, Orkut und natürlich die Suchmaschine selbst an.
Dies ist also das Anwendungsfeld, das Hypertable anspricht. Hypertable wird auch von baidu.com und rediff.com eingesetzt. Ersteres ist das chinesische Äquivalent zur Suchmaschine Google und Letzteres eines der größten indischen Web-Portale. Anders als Apache Hadoop ist Hypertable in C++ geschrieben und daher um einiges schneller. Das primäre Ziel von Hypertable ist es, sehr große Datenvolumen zu verarbeiten und diese Online-Anwendungen zur Verfügung zu stellen. Die Datensätze werden in tabellenähnlicher Form zur Verfügung gestellt und über einen Primärschüssel indiziert. Gleichzeitig werden die Daten auch in dieser Primärschlüsselabfolge gespeichert, sodass Bereichsabfragen sehr effizient durchgeführt werden können.
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.