NoSQL Einführung: CouchDB, MongoDB und Regis
()
About this ebook
Read more from Oliver Kurowski
CouchDB mit PHP Rating: 0 out of 5 stars0 ratings
Related to NoSQL Einführung
Titles in the series (16)
Big Data - Apache Hadoop Rating: 0 out of 5 stars0 ratingsCloud Computing Grundlagen: Technisch / rechtlich / wirtschaftlich und architekturell Rating: 0 out of 5 stars0 ratingsDatenbanken: Grundlagen und Entwurf Rating: 0 out of 5 stars0 ratingsHTML 5 meets GWT Rating: 0 out of 5 stars0 ratingsCloud Computing Anbietervergleich: Amazon / Microsoft / Google & Co Rating: 0 out of 5 stars0 ratingsJava 7: Project Coin, Generics und NIO2 Rating: 0 out of 5 stars0 ratingsCSS: Grundlagen und Best Practices Rating: 0 out of 5 stars0 ratingsEnterprise Java Web Services Rating: 0 out of 5 stars0 ratingsiOS Essentials: Frameworks, Tools und Twitter API Rating: 0 out of 5 stars0 ratingsMagento Entwicklung: Themes, Widgets und Eigene Entitäten Rating: 0 out of 5 stars0 ratingsOnlinerecht: Grundlegende juristische Spielregeln im eCommerce Rating: 0 out of 5 stars0 ratingsNoSQL Einführung: CouchDB, MongoDB und Regis Rating: 0 out of 5 stars0 ratingsPHP for Office: Automatisierte Dokumentenerstellung mit PHPExcel, PHPWord und PHPPowerPoint Rating: 1 out of 5 stars1/5Usability von UML Editoren: Ein Vergleich Rating: 0 out of 5 stars0 ratingsJava ME: Pragmatische Plattform für Mobile und Embedded Rating: 0 out of 5 stars0 ratingsProgressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Rating: 0 out of 5 stars0 ratings
Related ebooks
NoSQL-Überblick - Elasticsearch und Redis Rating: 0 out of 5 stars0 ratingsNoSQL-Überblick: Couchbase, Riak, MongoDB Rating: 0 out of 5 stars0 ratingsNoSQL-Überblick - Neo4j, Apache Cassandra und HBase: Neo4j, Apache Cassandra und HBase Rating: 0 out of 5 stars0 ratingsMQL: Eine hierarchische Abfragesprache mit TypeScript erstellen Rating: 0 out of 5 stars0 ratingsMongoDB: Der praktische Einstieg Rating: 0 out of 5 stars0 ratingsRelationale Datenmodellierung: Eine Modellierungshilfe für DB-Designer Rating: 0 out of 5 stars0 ratingsSQL-Abfragen optimieren: Was Entwickler über Performance wissen müssen Rating: 0 out of 5 stars0 ratingsOpenLaszlo: schnell + kompakt Rating: 0 out of 5 stars0 ratingsStructr: Quelloffenes Daten-CMS auf Neo4j-Basis Rating: 0 out of 5 stars0 ratingsWeb-Applikationen entwickeln mit NoSQL: Das Buch für Datenbank-Einsteiger und Profis! Rating: 0 out of 5 stars0 ratingsBigData mit JavaScript visualisieren: D3.js für die Darstellung großer Datenmengen einsetzen Rating: 0 out of 5 stars0 ratingsEine Reise durch die Welt von NoSQL Rating: 0 out of 5 stars0 ratingsDatenbanken: Grundlagen und Entwurf Rating: 0 out of 5 stars0 ratingsSQL Server 2014: Ein Blick in die Datenzukunft Rating: 0 out of 5 stars0 ratingsBig Data: Datenverarbeitung basierend auf MOM und SQL Rating: 0 out of 5 stars0 ratingsREST: Grundlagen und Gestaltung von REST-Diensten Rating: 0 out of 5 stars0 ratingsServerless Computing in der AWS Cloud Rating: 0 out of 5 stars0 ratingsMicrosoft Azure: Cloud Entwicklung für lokale Applikationen Rating: 0 out of 5 stars0 ratingsModerne Webanwendungen mit AngularJS Rating: 0 out of 5 stars0 ratingsKochen mit Patrick: Kochen und Programmieren - Hand in Hand Rating: 0 out of 5 stars0 ratingsDie Welt der VBA-Objekte: Was integrierte Anwendungen leisten können Rating: 0 out of 5 stars0 ratingsDSL mit Xtext/Xtend. 4GL-Entwicklung produktiver gestalten Rating: 0 out of 5 stars0 ratingsCSS3: Die Referenz für Webentwickler Rating: 0 out of 5 stars0 ratingsElasticsearch: Clientnutzung, Datenvisualisierung und Apache Lucene Rating: 0 out of 5 stars0 ratingsRelationale Datenbanken: Grundlagen, Modellierung, Speicherung, Alternativen Rating: 0 out of 5 stars0 ratingsEnterprise Java Web Services Rating: 0 out of 5 stars0 ratingsNeo4j 2.0: Eine Graphdatenbank für alle Rating: 0 out of 5 stars0 ratingsVerteilte Systeme mit Kubernetes entwerfen: Patterns und Prinzipien für skalierbare und zuverlässige Services Rating: 0 out of 5 stars0 ratingsDSL mit Xtext/Xtend. Luecken(x)text Rating: 0 out of 5 stars0 ratingsSQL Server: Performanceprobleme analysieren und beheben Rating: 0 out of 5 stars0 ratings
Computers For You
Games | Game Design | Game Studies: Eine Einführung (Deutschsprachige Ausgabe) Rating: 0 out of 5 stars0 ratingsDas große Buch für Minecraft-Spieler: Der Einstieg in Bergbau, Landwirtschaft und Zucht, Häuserbau und Energiegewinnung Rating: 0 out of 5 stars0 ratingsMachine Learning – kurz & gut: Eine Einführung mit Python, Pandas und Scikit-Learn Rating: 5 out of 5 stars5/5Einführung ins Darknet: Darknet ABC Rating: 0 out of 5 stars0 ratingsSo findest du den Einstieg in WordPress: Die technischen Grundlagen zu Installation, Konfiguration, Optimierung, Sicherheit, SEO Rating: 0 out of 5 stars0 ratingsBig Data: Die neue Intelligenz des Menschen (GEO eBook) Rating: 0 out of 5 stars0 ratings60+ Webtools - Für den Unterricht und mehr: Unterricht Digital gestalten und spielerisch Online Unterrichten Rating: 0 out of 5 stars0 ratingsNew Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Rating: 0 out of 5 stars0 ratingsErste Schritte mit dem Raspberry Pi: Installation, Konfiguration, Tuning und Praxis für alle aktuellen Raspberry-Pi-Modelle Rating: 0 out of 5 stars0 ratingsMein erstes Tonstudio - Band II: Praxisbuch mit zahlreichen Tipps für die ersten Gehversuche beim Aufnehmen und Mischen Rating: 0 out of 5 stars0 ratingsLaws of UX: 10 praktische Grundprinzipien für intuitives, menschenzentriertes UX-Design Rating: 0 out of 5 stars0 ratingsDas Minecraft-Server-Buch Rating: 0 out of 5 stars0 ratingsEinstieg in ChatGPT: Künstliche Intelligenz verstehen und nutzen: Ein praktischer Ratgeber für Einsteiger Rating: 0 out of 5 stars0 ratingsWordPress - Elementor Rating: 0 out of 5 stars0 ratingsTastenkombinationen für den Mac: Alle wichtigen Funktionen Rating: 0 out of 5 stars0 ratingsRaspberry Pi Kinderleicht: Pi 4 mit 8 GB Rating: 0 out of 5 stars0 ratingsBusiness-Intelligence-Lösungen für Unternehmen Rating: 0 out of 5 stars0 ratingsPocket Book - Das inoffizielle Handbuch. Anleitung, Tipps, Tricks Rating: 0 out of 5 stars0 ratingsBig Data - Apache Hadoop Rating: 0 out of 5 stars0 ratingsKybernetik, Kommunikation und Konflikt: Gregory Bateson und (s)eine kybernetische Konflikttheorie Rating: 0 out of 5 stars0 ratingsShopware 6 Handbuch Rating: 0 out of 5 stars0 ratings...Als die Noten laufen lernten...Band 2: Kabarett-Operette-Revue-Film-Exil. Unterhaltungsmusik bis 1945 Rating: 0 out of 5 stars0 ratingsREST: Grundlagen und Gestaltung von REST-Diensten Rating: 0 out of 5 stars0 ratingsNeuronale Netze selbst programmieren: Ein verständlicher Einstieg mit Python Rating: 0 out of 5 stars0 ratingsNimm den Chor doch selber auf: Crashkurs für das Aufnehmen und Mischen von Chören Rating: 0 out of 5 stars0 ratingsAufstieg der Roboter: Wie unsere Arbeitswelt gerade auf den Kopf gestellt wird - und wie wir darauf reagieren müssen Rating: 0 out of 5 stars0 ratings
Reviews for NoSQL Einführung
0 ratings0 reviews
Book preview
NoSQL Einführung - Oliver Kurowski
Oliver Kurowski
NoSQL Einführung
CouchDB, MongoDB und Redis
ISBN: 978-3-86802-410-4
© 2012 entwickler.press
Ein Imprint der Software & Support Media GmbH
1 NoSQL – Eine Bereicherung für SQL
Als im Jahr 2009 Johan Oskarsson, zur damaligen Zeit ein Entwickler von last.fm, eine Tagung über Techniken für verteilte nicht-relationale Datenbanken veranstaltet [1], ahnte er noch nicht, dass aus dem Begriff „NoSQL eine ganze Bewegung wird, die schließlich auch den Programmiermainstream erreichen würde. Auf dieser Tagung ging es um die Grenzen von relationalen Datenbanken bezüglich der Skalierung für Tausende von Abfragen, wie sie im Web nicht unüblich sind. Stand NoSQL am Anfang noch für eine klare Abgrenzung von SQL als Abfragesprache, so ist Johan Oskarsson heute mit diesem Begriff nicht mehr so glücklich und sieht in dem „No SQL
eher ein „Not Only SQL".
Man mag es sehen, wie man will, aber vielleicht ist gerade diese radikale Wortwahl wie NoSQL ein Grund für den momentanen Hype um diese Art von Datenhaltung und -Abfrage, die im Einzelnen nichts Neues darstellt. Erinnern wir uns doch mal an die Kombination aus XML, JavaScript und asynchronen Server-Requests. Wurde das letztendlich nicht auch durch den Begriff AJAX zu einer greifbaren Technik? So ähnlich kann man auch die momentane NoSQL-Bewegung sehen. Die Techniken selbst sind nicht neu, es handelt sich dabei um eine Kombination aus alten Verfahren wie die Speicherung mit selbstdefinierten Schlüsseln und alternative Abfragetechniken, aber erst durch ein Wort ist diese Technik in das Bewusstsein gelangt. Falls Sie von NoSQL bislang noch nicht mehr als Überschriften in News gelesen haben, versuche ich hier eine Definition. Sollten Sie mit NoSQL vertraut sein, so entschuldigen Sie die Wiederholung bzw. die Ähnlichkeit zu anderen Definitionen. NoSQL beschreibt eine Datenbankstruktur ohne festes Datenschema mit alternativen Abfragemechanismen im Gegensatz zu herkömmlichen relationalen Datenbanksystemen, die über SQL abgefragt werden. Am ehesten verwandt sind die NoSQL-Datenbanken noch mit objektorientierten Datenbanken bzw. den XML-Datenbanken. Nötig geworden sind Alternativen zu den bisherigen tabellenorientierten Datenbanken durch die Anforderungen im Internet. Datendurchsatzstarke Dienste wie Onlineshops, Blogs, News und Foren und natürlich in erster Linie Suchmaschinen und soziale Netzwerke sind gierig nach riesigen Datenmengen und flexiblen Strukturen, die einem steten Wandel unterliegen. Firmensoftware, deren erste Gebote die Sicherheit und Integrität der Daten und die Abläufe im Betrieb darstellen, sind sicherlich nicht die Kernzielgruppe für die NoSQL-Bewegung.
Freiheit für das Schema
Aber worin liegt nun genau der Unterschied bzw. der Vorteil von schemafreien Datenbanken? Betrachten wir zuerst einmal, wie in herkömmlichen Datenbanksystemen die Entwicklung vonstattengeht: Die Anforderungen an die Software werden gesammelt und ganz klassisch als Pflichtenheft festgehalten. Danach werden die Datenstrukturen entwickelt und für eine relationale Datenbank aufbereitet und normiert. Nachdem die Datenbanktabellen festgelegt sind, geht die Spezifikation an die Anwendungsentwickler. Diese Entwickler setzten sich nun einerseits mit den Abfragen der Datenbank mittels SQL, andererseits mit der Entwicklung des Programms auseinander. Am Ende entsteht ein Programm mit fest definiertem Umfang und Datenstrukturen. Was aber passiert, wenn ein kleiner aber wesentlicher Bestandteil der Anforderungen geändert oder ergänzt wird? Was muss alles angepasst werden, wenn ein Nachrichtensystem nicht nur eine einzelne Nachricht übersenden soll, sondern nun auch noch unbestimmte Anhänge (Bilder, Listen, Verbindungen zu anderen Nachrichten) bereit stellen können muss? Die Datenbankdesigner passen die Tabellen an, geben die neuen Strukturen und Spezifikationen an die Anwendungsprogrammierer, und alles geht von vorne los. Ein konkretes Beispiel: Eine Handelsplattform ermöglicht den Nachrichtenaustausch zwischen den Lieferanten und Kunden. Sämtliche Änderungen am Produktsortiment sollen damit kommuniziert werden. Die dafür benötigte Tabelle NACHRICHTEN könnte also so aussehen:
Id | Sender_id | Empfaenger_id | Nachrichtentext | Datum |
Status
Nun wollen wir aber nicht nur in Textform mitteilen, dass sich das Sortiment erweitert hat, sondern die entsprechenden Artikelinformationen gleich mitliefern. Dafür benötigen wir nun eine weitere Tabelle:
NACHRICHTENARTIKEL
Nachrichten_id | Artikelnummer
Ach ja, es gibt natürlich auch Fälle, in denen wir sagen, dass ein Artikel durch einen anderen ersetzt wird. Da können wir mit einer einfachen Liste zwischen alt und neu nicht unterscheiden. Also erweitern wir die Liste durch eine zweite Artikelnummer und einem Status, der uns die Verbindung zwischen den beiden Artikeln erklärt:
NACHRICHTENARTIKEL
Nachrichten_id | Artikelnummer_1 | Artikelnummer_2 |
Beziehungsstatus
Die Kosten der Flexibilität sind natürlich leere Einträge von Artikelnummer_2 und Beziehungsstatus.