Inhalt des Buches

Das Buch behandelt folgende Themen:

      1. Allgemeines
        1.1 Aufgaben einer Datenbank
          1.1.1 ACID
          1.1.2 Vertikale und horizontale Skalierung
          1.1.3 Das CAP-Theorem
          1.1.4 BASE
        1.2 Einführung in NoSQL
        1.2.1 Unterschiedliche Arbeitsweise zu SQL
        1.2.2 Arten von NoSQL-Datenbanken
        1.3 CouchDB
        1.3.1 Geschichte
        1.3.2 Kommunikation mit der CouchDB
        1.3.4 der B+ Baum
      2. Voraussetzungen
        2.1 Installation der CouchDB
          2.1.1 CouchDB als Service
          2.1.2 Windows
          2.1.3 Linux
        2.2 PHP
        2.3 cURL
      3. Der leichte Einstieg
        3.1 Das CouchDB-Dokument: Freiheit statt Spalten
        3.2 JSON
        3.3 Aufbau eines CouchDB-Datendokuments
      4. Kennenlernen der CouchDB mit Futon
        4.1 Anlegen/Löschen von Datenbanken
        4.2 Anlegen von Dokumenten
        4.3 Ändern von Dokumenten
        4.4 Löschen von Dokumenten
        4.5 Kopieren von Dokumenten
        4.6 Status
        4.7 Testsuite
        4.8 Configuration
        4.9 Create Server Admin
      5. Die CouchDB mit der Kommandozeile steuern
        5.1 Erklärung HTTP/REST
        5.2 Der Einsatz von cURL
          5.2.1 Datenbanken anlegen und löschen
          5.2.2 Dokumente anlegen und lesen
          5.2.3 Dokumente verändern, kopieren und löschen
          5.2.4 CouchDB steuern
      6. Erste Schritte in PHP
        6.1 Kommunikation mit der CouchDB über libcurl
        6.2 Kommunikation mit der CouchDB über fsockopen()
      7. Die Nutzung von externen PHP.Libraries
        7.1 PHPillow
        7.2 Sag for CouchDB
      8. Unsere eigene Library: AlicePHP, a Library for CouchDB Environments
        8.1 AlicePHP: AliceCouchDB als zentrale Klasse
          8.1.1 AlicePHP: Mit AliceResponse die Antworten der CouchDB verpacken
          8.1.2 Das erste Beispielprogramm
        8.2 AlicePHP: AliceDatabase, die Datenbankklasse
          8.2.1 Anlegen und Löschen einer Datenbank
          8.2.2 Anlegen und Löschen von Dokumenten
      9. Abfragen der CouchDB
        9.1 Map/Reduce in der Theorie
        9.2 Keys: die Schlüssel zum Erfolgn
          9.2.1 Sortierung der Listen
          9.2.2 Nur bestimmte Einträge einer Liste anzeigen
          9.2.3 Gruppierungen von Keys
        9.3 JavaScript in CouchDB
          9.3.1 Die Map-Funktion
          9.3.2 Die Reduce-Funktion
          9.3.3 Eingebaute Reduce-Funktionen
      10. Views: Die Heimat von Map/Reduce
        10.1 Das Designdokument
        10.2 AlicePHP: Die Klasse AliceDeisgnDocument
        10.3 AlicePHP: Die Klasse AliceDeisgnFunction
        10.4 AlicePHP: Die Klasse AliceView
          10.4.1 Beispiel: Verteilung von Zufallszahlen
        10.5 Eine View steuern
          10.5.1 Beispiel: Geburtstage analysieren mit group_level
          10.5.2 Verlinkte Datendokumente anzeigen
        10.6 Parameterliste für Views
      11. Transformationsfunktionen
        11.1 Show: Ein Doklument, verschiedene Ansichten
          11.1.1 Das Request Objekt
          11.1.2 Ein Beispiel für Shows: Papageien
        11.2 List: Ergebnisse nett verpackt
        11.3 AlicePHP: Die Klasse AliceShow
        11.4 AlicePHP: Die Klasse AliceList
      12. Sicherheit beim Speichern
        12.1 validate_doc_update: Die automatische Validierung von Dokumenten beim Speichern
        12.2 AlicePHP: Die Klasse AliceValidateDocUpdate
          12.2.1 Beispiel: Nur Zahlen > 4 speichern
        12.3 update als Zwisschenschritt zum Speichern
        12.4 AlicePHP: Die Klasse AliceUpdate
      13. Versionskonflikte beim Speichern erkennen
      14. Replikation
        14.1 Arten der Replikation
        14.2 Der Replikationsvorgang
        14.3 der _changes-Feed
          14.3.1 Polling
          14.3.2 Long Polling
          14.3.3 Continuous Feed
        14.4 Eine Replikation starten
          14.4.1 Per POST-Befehl _replicate
          14.4.2 Durch Eintrag in die _replicator-Datenbank
        14.5 Continuopus Replication
        14.6 Named Document Replication: Einzelne Dokumente replizieren
        14.7 Eine Replikation stoppen
        14.8 Filtered Replication: Die Guten ins Töpfchen…
          14.8.1 Löschweitergabe in Filtered Replications
          14.8.2 Probleme bei Löschweitergaben
        14.9 Konflikte bei Replikationen
          14.9.1 Das Feld _conflicts
          14.9.2 Konflikte auflösen
        14.10 Replikationen mit PHP
      15. Speichern von Anhängen
        15.1 Inline Attachment
        15.2 Standalone Attachment
        15.3 Attachments ausschnittsweise laden (Range Queries)
        15.4 Ändern eines Attachments
        15.5 Löschen eines Attachments
        15.6 Beispiele mit AlicePHP
      16. Was noch fehlt, kurz umrissen
        16.1 Couchapps
        16.2 Kanapes IDE: Ein Tool für -NET/Mono
        16.3 CouchDB Cluster mit BigCouch
      17. Praxisteil
        17.1 Fehlersuche in der CouchDB
          17.1.1 Ausgaben mit “log()”
          17.1.2 Arbeiten mit der JavaScipt-Konsole des Browsers
        17.2 AlicePHP: Erweiterungen
          17.2.1 AliceDocumentExtensions
          17.2.2 Erweiterung der Funktion “AliceDesignDocument->getFromCouch()”
        17.3 Verteilter Onlineshop der Dinge
          17.3.1 Artikelformat
          17.3.2 Ein einfaches Eingabeformular für die Artikel
          17.3.3 Einen Artikel bearbeiten und löschen
          17.3.4 Filter für die Replikation
          17.3.5 Suche über Suchbaum (Kategorie, Unterkategorie)
          17.3.6 Anzeige der Artikelliste
          17.3.7 Anzeige eines Artikels mit der show-Funktion
          17.3.8 Suchformular für Artikelnummern
          17.3.9 Suche nach Stichworten
          17.3.10 Die Installationsskripte