Cover | 1 |
Einführung | 6 |
Inhaltsverzeichnis | 10 |
1 Die Theorie hinter NoSQL | 16 |
1.1 Die Geschichte | 16 |
1.1.1 Das Konzept NoSQL | 18 |
1.2 Arten von NoSQL-Datenbanken | 18 |
1.2.1 Dokumentenorientiert | 18 |
1.2.2 Key-Value-orientiert | 18 |
1.2.3 Spaltenorientiert | 20 |
1.2.4 Graphenorientiert | 20 |
1.2.5 Übersicht von NoSQL-Datenbanken | 20 |
1.3 Grundlagen von CouchDB | 22 |
2 Installation | 28 |
2.1 Mac OS X vorbereiten | 28 |
2.1.1 Die Entwicklungsumgebung Xcode installieren | 28 |
2.1.2 MacPorts installieren | 30 |
2.1.3 Das Terminalfenster | 30 |
2.1.4 MacPorts überprüfen | 30 |
2.1.5 CouchDB installieren | 32 |
2.1.6 CouchDB automatisch starten | 34 |
2.1.7 CouchApp installieren | 34 |
2.1.8 Überprüfen der Installation von CouchApp | 38 |
2.2 Microsoft Windows vorbereiten | 38 |
2.2.1 CouchDB installieren | 38 |
2.2.2 Überprüfen der Installation von CouchDB | 42 |
2.2.3 CouchApp installieren | 44 |
2.2.4 Überprüfen der Installation von CouchApp | 48 |
2.3 Die Entwicklungsumgebung | 50 |
3 Erste Übungen mitCouchDB | 52 |
3.1 Ein einfaches Programm | 52 |
3.1.1 Vorbereitung für die erste Applikation | 52 |
3.1.2 Das Grundgerüst von Hello World! | 54 |
3.1.3 Die Anzeigefunktion für Hello World! | 56 |
3.1.4 Die CouchApp veröffentlichen | 56 |
3.2 Die Arbeit mit der CouchDB | 58 |
3.2.1 Prüfen, ob der CouchDB-Server läuft | 58 |
3.2.2 Datenbanken der CouchDB anzeigen | 58 |
3.2.3 Eine neue Datenbank anlegen | 58 |
3.2.4 Löschen einer Datenbank | 60 |
3.3 Futon – das Webinterface von CouchDB | 62 |
3.3.1 Test der CouchDB mit Futon | 62 |
3.3.2 Eine neue Datenbank mit Futon anlegen | 62 |
3.3.3 Ein neues Dokument in der Datenbank speichern | 64 |
3.3.4 Ein Attribut hinzufügen | 64 |
3.4 Eine Abfrage durchführen | 66 |
3.4.1 Eine Preisdatenbank anlegen | 66 |
3.4.2 Einen einfachen View erzeugen | 68 |
3.4.3 Versionierung in der CouchDB | 72 |
3.5 Dokumente der CouchDB | 72 |
3.5.1 Datendokumente | 72 |
3.5.2 Virtuelle Dokumente | 74 |
3.5.3 Design-Dokumente | 74 |
3.6 Arbeiten mit Views | 74 |
3.6.1 Anlage der Dokumente | 74 |
3.6.2 Einen View erzeugen | 78 |
3.6.3 Die View-Ergebnismenge | 80 |
3.6.4 Bestimmte Daten in einer View anzeigen | 82 |
3.6.5 Ein Dokument anzeigen | 82 |
3.6.6 Einen Bereich von Dokumenten ermitteln | 84 |
3.6.7 Die Ausgabe sortieren | 84 |
3.7 Dokumente vor dem Speichern überprüfen | 86 |
3.7.1 Den Dokumenttyp überprüfen | 86 |
3.7.2 Das Dokument löschen | 88 |
3.7.3 Pflichtfelder für ein Dokument festlegen | 88 |
3.7.4 Den Autor des Dokuments prüfen | 92 |
3.8 Webseiten anzeigen | 92 |
3.8.1 Die Show-Funktionen | 92 |
3.8.2 Statisches HTML und die CouchDB | 94 |
3.8.3 AJAX mit der CouchDB | 96 |
3.8.4 Formatierung in der Ausgabe | 98 |
4 Die BeispielanwendungMIT – der MétroInformation Tracer | 100 |
4.1 Daten des MIT | 100 |
4.1.1 Notwendige Dokumente | 100 |
4.1.2 Informationen zu den Städten | 102 |
4.1.3 Informationen zu den Linien | 102 |
4.1.4 Informationen zu den Stationen | 102 |
4.2 Funktionen des MIT | 102 |
4.2.1 Dateneingabe im MIT | 102 |
4.2.2 Darstellung der Städte im MIT | 102 |
4.2.3 Darstellung der U-Bahn-Linien | 102 |
4.2.4 Darstellung der Stationen | 102 |
4.3 Einrichten der Datenbank | 104 |
4.4 Das Grundgerüst des MIT erzeugen | 104 |
4.4.1 Frameworks der CouchApp | 106 |
4.4.2 Anpassen der Vendor-Daten | 106 |
4.4.3 Anpassen der Anwendungsinformation | 106 |
4.4.4 Ein Administrator für die CouchDB | 108 |
4.4.5 Die Konfigurationsdatei von CouchApp | 108 |
4.4.6 Die Startseite anpassen | 108 |
4.4.7 Das Benutzerinterface aufbauen | 114 |
4.5 Die Dateien für das Benutzerprofil anpassen | 120 |
4.5.1 Das Layout erweitern | 120 |
4.5.2 Den Link für die Anmeldung verändern | 122 |
4.5.3 Das Anmelde-Widget anpassen | 122 |
4.5.4 Das Registrierungs-Widget anpassen | 122 |
4.5.5 Die Links für angemeldete Benutzer anpassen | 124 |
4.5.6 Das Widget für nicht angemeldete Benutzer anpassen | 124 |
4.5.7 Das Widget für angemeldete Benutzer anpassen | 126 |
4.5.8 Das Formular für das Profil ändern | 126 |
4.6 Die Städte des MIT | 128 |
4.6.1 Daten mit Evently anzeigen | 128 |
4.6.2 Die View für die Städteauswahl | 130 |
4.6.3 Das Init-Ereignis für die Städte | 130 |
4.6.4 Eine Datei mit Hilfsroutinen erstellen | 132 |
4.6.5 Das Benutzerinterface optisch anpassen | 134 |
4.6.6 Das Menü für die Städteauswahl erstellen | 136 |
4.6.7 Die Möglichkeiten von Mustache | 138 |
4.6.8 Das Widget für die Auswahl der Daten in der Seitenleiste | 138 |
4.6.9 Eine neue Stadt anlegen | 140 |
4.6.10 Eine Prüfroutine für das Speichern der Dokumente | 144 |
4.6.11 Die Daten einer Stadt bearbeiten | 146 |
4.6.12 Eine Stadt löschen | 152 |
4.7 Die Linien des MIT | 154 |
4.7.1 Die Basis für das Verwalten der Linien | 154 |
4.7.2 Das Menü für die Auswahl einer U-Bahn-Linie | 156 |
4.7.3 Das Statistik-Modul | 160 |
4.7.4 Eine neue U-Bahn-Linie anlegen | 164 |
4.7.5 Eine U-Bahn-Linie bearbeiten | 168 |
4.7.6 Eine U-Bahn-Linie löschen | 178 |
4.8 Die Stationen des MIT | 180 |
4.8.1 Das Menü für die Auswahl der Stationen | 182 |
4.8.2 Anpassungen am MIT für die Stationen | 184 |
4.8.3 Das Statistik-Modul erweitern | 188 |
4.8.4 Den Selektor für die Auswahl der Stadt anpassen | 192 |
4.8.5 Den Selektor für die Auswahl der Linie anpassen | 192 |
4.8.6 Google Maps aktivieren | 194 |
4.8.7 Eine neue U-Bahn-Station anlegen | 198 |
4.8.8 Eine U-Bahn-Station bearbeiten | 210 |
4.8.9 Eine U-Bahn-Station löschen | 222 |
4.9 Das Benutzerinterface erweitern | 224 |
4.9.1 Das Benutzerinterface anpassen | 224 |
4.9.2 Das Interface für die Darstellung der Informationen | 236 |
4.9.3 Die Google Maps zurücksetzen | 240 |
4.10 U-Bahn-Linien darstellen | 240 |
4.10.1 Anpassungen an den vorhandenen Funktionen | 242 |
4.10.2 Eine komplette U-Bahn-Linie erstellen | 244 |
4.10.3 Den kompletten Netzplan erstellen | 252 |
4.11 Der Zustand des Métro-Netzes der RATP – ScreenScraping | 256 |
4.11.1 Einschränkungen beim Screen Scraping | 256 |
4.11.2 Die CouchApp um ein Plug-in erweitern | 258 |
4.11.3 Die Selektoren für das Screen Scraping anpassen | 258 |
4.11.4 Die Webseiten der WAP-Applikation analysieren | 258 |
4.11.5 Texte bereinigen | 262 |
4.11.6 Daten mit der Scraping-Funktion extrahieren | 264 |
4.11.7 Die Daten der Scraping-Funktion speichern | 268 |
4.11.8 Die History der Scraping-Daten anzeigen | 274 |
4.12 Daten von Flickr anzeigen | 278 |
4.12.1 Eine Funktion für den Suchtext | 278 |
4.12.2 Die API von Flickr | 280 |
4.12.3 Fotos von der Anzeige ausschließen | 280 |
4.12.4 Fotos von Flickr holen und anzeigen | 284 |
4.12.5 Die Benutzerdaten von Flickr holen | 288 |
4.13 Zusätzliche Informationen aus Wikipedia | 294 |
4.14 Abschluss des Métro Information Tracer | 296 |
A Dokumente im JSONFormat | 298 |
A.1 Städte | 298 |
A.1.1 München | 298 |
A.1.2 Paris | 298 |
A.1.3 Wien | 300 |
A.2 U-Bahn-Linien (ohne Stationen) | 300 |
A.2.1 München – U1 | 300 |
A.2.2 München – U2 | 300 |
A.2.3 Paris – M1 | 300 |
A.2.4 Paris – M2 | 300 |
A.2.5 Wien – U1 | 302 |
A.2.6 Wien – U2 | 302 |
A.3 U-Bahn Linien (mit Stationen) | 302 |
A.3.1 München – U1 | 302 |
A.3.2 München – U2 | 306 |
A.3.3 Paris – M1 | 312 |
A.3.4 Paris – M2 | 318 |
A.3.5 Wien – U1 | 326 |
A.3.6 Wien – U2 | 330 |
B Glossar | 334 |
Stichwortverzeichnis | 344 |