Web-Applikationen entwickeln mit NoSQL - Clemens Gull - E-Book

Web-Applikationen entwickeln mit NoSQL E-Book

Clemens Gull

0,0
19,99 €

oder
-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Ohne Datenbanken geht nichts mehr im Web! Aber nach einer Phase fast uneingeschränkter Herrschaft der SQL-basierten Datenbanken findet im Moment ein Wandel in der Landschaft der Web-Applikationen statt. Teil dieses Wandels ist die vermehrte Verwendung von NoSQL-Datenbanken. NoSQL-Datenbanken sind nicht relational, können auf verteilten Systemen liegen und verzichten meist auf ACID-Eigenschaften (atomicity, consistency, isolation, durability). Die Vorteile liegen in einer besseren Skalierbarkeit und besserer Performance bei hoher Datenlast bzw. vielen Transaktionen. Für den gelungenen Einstieg wird hier mit CouchDB der angesagteste Vertreter aus der Riege der NoSQLDatenbanken verwendet.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Inhaltsübersicht

Einführung

1  Die Theorie hinter NoSQL

1.1  Die Geschichte

1.2  Arten von NoSQL-Datenbanken

1.3  Grundlagen von CouchDB

2  Installation

2.1  Mac OS X vorbereiten

2.2  Microsoft Windows vorbereiten

2.3  Die Entwicklungsumgebung

3  Erste Übungen mit CouchDB

3.1  Ein einfaches Programm

3.2  Die Arbeit mit der CouchDB

3.3  Futon – das Webinterface von CouchDB

3.4  Eine Abfrage durchführen

3.5  Dokumente der CouchDB

3.6  Arbeiten mit Views

3.7  Dokumente vor dem Speichern überprüfen

3.8  Webseiten anzeigen

4  Die Beispielanwendung MIT – der Métro Information Tracer

4.1  Daten des MIT

4.2  Funktionen des MIT

4.3  Einrichten der Datenbank

4.4  Das Grundgerüst des MIT erzeugen

4.5  Die Dateien für das Benutzerprofil anpassen

4.6  Die Städte des MIT

4.7  Die Linien des MIT

4.8  Die Stationen des MIT

4.9  Das Benutzerinterface erweitern

4.10  U-Bahn-Linien darstellen

4.11  Der Zustand des Métro-Netzes der RATP – Screen Scraping

4.12  Daten von Flickr anzeigen

4.13  Zusätzliche Informationen aus Wikipedia

4.14  Abschluss des Métro Information Tracer

A  Dokumente im JSON-Format

A.1  Städte

A.2  U-Bahn-Linien (ohne Stationen)

A.3  U-Bahn Linien (mit Stationen)

B  Glossar

Stichwortverzeichnis

Einführung

Worum geht es in diesem Buch?

Dieses Buch ist kein klassisches »Lernbuch«, wie wir es dutzendfach kennen. Aber es ist auch keine Referenz oder ein Kompendium für NoSQL-Datenbanken oder eine bestimmte Programmiersprache. Es ist eine praktische Einführung in das Thema NoSQL im World Wide Web.

Das Buch ist in vier Teile gegliedert. Am Anfang steht eine kurze theoretische Einführung in die Unterschiede der SQL- und NoSQL-Datenbanken. Daraus ergibt sich auch, dass wir die Art der Programmierung von Webseiten überdenken müssen, wenn wir NoSQL-Datenbanken verwenden wollen.

Der zweite Teil befasst sich mit der Installation einer NoSQL-Datenbank auf einem lokalen Computer und der Vorbereitung des Geräts auf den dritten und vierten Teil.

Der dritte Teil ermöglicht Ihnen das Kennenlernen dieser neuen Art von Datenbank und auch die Änderungen in der Programmierung von Web-Applikationen in einfachen Beispielen. Hier legen wir keinen großen Wert auf das Aussehen der Ergebnisse und auch nicht auf die Daten. Sondern es ist uns wichtig, die Funktionalität, die hinter den einzelnen Beispielen steht, zu verstehen.

Im vierten Teil werden wir ein praktisches Beispiel entwickeln. Am besten lernt man einfach aus der Praxis. Alle Dinge, die Sie selbst gemacht haben, bleiben gut in Ihrem Gedächtnis haften. Daher werden wir die meisten Informationen, Techniken und Wissensbestandteile im dritten und vierten Teil kennenlernen.

In den letzten Abschnitten finden Sie ein Glossar, das Ihnen verschiedene Fachbegriffe nochmals einfach erklärt. Im Index sind die wichtigsten Begriffe zusammengefasst, damit Sie sie schnell nachschlagen können.

Was wird für dieses Buch benötigt?

Natürlich sollten Sie einen Computer nutzen können, der ein fehlerfrei installiertes Betriebssystem hat. Ob Sie Microsoft Windows, Mac OS X oder eine Unix-Variante einsetzen, ist für die Arbeit mit diesem Buch nicht von Belang. Aber denken Sie bitte daran: Sie installieren Software, die das System erweitert. Daher wäre es gut, dass keine wichtigen Daten auf dem System gespeichert sind, wenn im Fall der Fälle doch etwas gravierend schiefgehen sollte.

Zusätzlich benötigen Sie eine funktionierende Internetverbindung. Sie wird hauptsächlich für die Installation der einzelnen Softwareteile verwendet. Aber sie kommt auch im vierten Teil dieses Buches zum Einsatz, um die Applikation entwickeln und testen zu können.

Weitere Voraussetzungen

Sie sollten bereits ein gewisses Grundwissen in der Programmierung und im Umgang mit Daten haben. Jahrelange Programmiererfahrung ist zwar nicht notwendig, aber ein paar Grundkenntnisse sind von Vorteil, um den vollen Nutzen aus dem Buch ziehen zu können. Ich werde versuchen, den Rest für Sie so einfach wie möglich zu erklären und Sie bei den entscheidenden Schritten der Programmierung zu begleiten.

Für die Erstellung der praktischen Anwendung im hinteren Teil des Buchs ist es vorteilhaft, wenn Sie HTML und CSS beherrschen. Denn diese beiden Sprachen sind für die Erstellung einer Web-Applikation zwingend erforderlich. Auch die JavaScript-Bibliothek jQuery sollte Ihnen nicht fremd sein. Denn wir werden sehen, dass CouchDB sehr eng damit zusammenarbeitet und unsere Applikation ebenfalls Nutzen daraus zieht.

Auch bei den Datenbanken müssen Sie kein SQL-Profi sein. Aber die gängigsten Fachausdrücke sollten Sie beherrschen, obwohl Sie sie auch im Glossar am Ende des Buchs nachschlagen können.

Und Sie sollten keine Scheu vor Neuem haben. Denn NoSQL ist möglicherweise eine der grundlegendsten Änderungen in der Entwicklung von Applikationen für und im World Wide Web.

Die Beispielcodes zum Buch

Besuchen Sie unsere Website unter http://www.buch.cd, und geben Sie dort die letzten Ziffern der ISBN dieses Buchs samt Bindestrich ein. Damit können Sie alle Beispielcodes und sonstigen Ressourcen zu diesem Buch herunterladen. Die verfügbaren Dateien werden nach der erfolgreichen Anmeldung angezeigt.

Sie finden dort die Installationsdateien für CouchDB und CouchApp. Ein Teil kann nur online installiert werden, daher habe ich diese Dateien nicht zur Verfügung gestellt. Sie finden dort auch alle verwendeten Bilder und Icons aus diesem Buch. Zusätzlich ist natürlich der gesamte Quelltext vorhanden. Ich habe ihn gegenüber der im Buch veröffentlichten Fassung ein wenig erweitert und manche Ideen, die im Buch nur kurz vorgestellt werden konnten, verwirklicht. Zusätzlich finden Sie auch alle Daten und Dokumente im JSON-Format, damit Sie nicht alles von Hand eingeben müssen.

Berichtigungen

Obwohl alle Beteiligten mit größter Sorgfalt vorgehen, um die Richtigkeit der Inhalte sicherzustellen, passieren Fehler. Wenn Sie einen Fehler in diesem Buch entdecken, egal ob im Text oder im Quellcode, bin ich für eine kurze oder auch längere Mitteilung sehr dankbar. So können Sie anderen Lesern Ärger ersparen und mithelfen, die folgende Version des Buchs zu verbessern. Wenn Sie einen Druckfehler finden, senden Sie mir bitte eine E-Mail an [email protected]. Ich werde alle Berichtigungen, Änderungen und Verbesserungen auf meinem Blog http://www.guru-20.info veröffentlichen.

Danke!

Herrn Franz Graser, meinem Lektor und Betreuer beim Franzis Verlag: Danke für die kompetente Betreuung bei der Umsetzung der Bücher, die Korrekturen und die Möglichkeit, als Autor zu arbeiten.

Danke auch an das komplette Team im Franzis Verlag. Ohne die vielen im Hintergrund arbeitenden, helfenden Hände wäre dieses Buch nicht erschienen.

Feedback

Ich würde mich über Reaktionen und Anregungen sehr freuen. Sie erreichen mich unter folgender Adresse: [email protected]

Ihr

Clemens Gull

1  Die Theorie hinter NoSQL

In diesem Kapitel lernen Sie die Hintergründe von NoSQL kennen. Falls Sie direkt ins kalte Wasser springen wollen, können Sie dieses Kapitel auch überspringen. Falls Sie sich aber mit Datenbanken und den dahinter stehenden Konzepten noch nicht so gut auskennen sollten, empfehle ich Ihnen, diesen Abschnitt in Ruhe durchzuarbeiten. Denn hier werde ich einige Dinge erklären, die später verwendet werden. Damit Sie aber die einzelnen Fachbegriffe schnell und einfach finden, habe ich die entsprechenden Definitionen am Ende des Buchs in einem Glossar zusammengefasst.

Nach mehr als 15 Jahren einer fast uneingeschränkten Herrschaft der SQL-basierten Datenbanken (SQL steht für Structured Query Language, also zu Deutsch »strukturierte Abfragesprache«) findet nun ein Wechsel in der Landschaft der Web-Applikationen statt. Und genau diese neuen Sichtweisen und Techniken werden Sie hier kennenlernen. Natürlich werden nicht alle SQL-Datenbanken über Nacht verschwinden, aber bei einigen großen Unternehmen vollzieht sich der Wandel dahingehend, dass in den einzelnen Nischen die entsprechenden und idealen Datenbanksysteme (auch parallel zueinander) eingesetzt werden.

1.1  Die Geschichte

Der Begriff NoSQL (eine Abkürzung für not only SQL) wurde zum ersten Mal 1998 verwendet. Carlo Strozzi[1] entwickelte zu dieser Zeit eine leichtgewichtige Open-Source-Datenbank, die bewusst keine Zugriffsmöglichkeit unter dem Standard SQL zur Verfügung stellte. Strozzi unterscheidet aber zwischen seiner NoSQL-Datenbank und der NoSQL-Bewegung. Diese verfolgt ein Konzept, das vom relationalen Datenbankmodell abstammt.

Erst mehr als zehn Jahre später wurde der Begriff NoSQL bekannter. Denn Johan Oskarsson verwendete ihn Anfang 2009 bei einem Treffen zum Thema strukturierte, verteilte Datenspeicher. Er bezeichnete damit Datenbanken, die nicht relational sind, auf verteilten Systemen liegen und meistens auf ACID-Eigenschaften XE„ACID“(Englisch für atomicity, consistency, isolation, durability) verzichten.

Das Konzept NoSQL

Diese Technologie hat prinzipiell ein Ziel: die Nachteile bestehender, eingeführter Datenbanksysteme auszugleichen. Die Technik soll besser skalierbar sein und eine bessere Performance bei hoher Datenlast mit vielen umfangreichen Transaktionen bieten. NoSQL-Datenbanken haben im Gegensatz zu relationalen Datenbanksystemen kein festes Schema zur Speicherung der Daten. Dies ist eine radikale Änderung zu SQL-Datenbanken, die auf eine strenge Struktur (oder ein strenges Schema) der gespeicherten Daten achten.

NoSQL-Datenbanken können folgende Eigenschaften besitzen:

nicht-relational

schemafrei

horizontal skalierbar

BASE

einfache Replikation

BASE – Basically Available, Soft State und Eventual Consistent

Da RDBMS (relationale Datenbankmanagementsysteme, also konventionelle Datenbanken) sehr streng auf die Konsistenz der Daten achten, kann es hier zu Problemen mit der Performance und Verfügbarkeit kommen. Dieses Konzept wird bei NoSQL zugunsten der besseren Skalierbarkeit und auch Verfügbarkeit aufgeweicht.

Man akzeptiert die »lose Konsistenz«. Dabei wird die Datenkonsistenz von nachfolgenden Datenoperationen immer wieder neu hergestellt. Die Datenbank wechselt dadurch immer wieder zwischen einem konsistenten und inkonsistenten Zustand. Im Gegensatz dazu müssen sich SQL-Datenbanken dauerhaft in einem konsistenten Zustand befinden. Werden durch verschiedene Datenbankoperationen Duplikate im Datenbestand angelegt, so wird die Datenbank durch eine zeitversetzte Synchronisierung immer wieder in einen konsistenten Teilzustand versetzt. Wobei der Begriff festlegt, dass alle Clients, die die Daten nutzen, nur in einem bestimmten Zeitfenster einen konsistenten (denselben) Datenbestand sehen.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!