NoSQL-Anwendungsfälle [geschlossen]

8

Ich entwickle eine Anwendung für das studentische Forschungssymposium meiner Universität zum Thema polyglotte Persistenz. Ich habe das Buch von Martin Fowlers gelesen und online nach den verschiedenen Arten von NoSQL-Datenbanken gesucht. Ich bin gespannt, welche Anwendungsfälle für die verschiedenen NoSQL-Datenbanken gelten.

Derzeit habe ich das, worauf Fowler hingewiesen hat (andere Untersuchungen wurden hauptsächlich in Bezug auf APIs durchgeführt).

Schlüsselwert:

  • Sitzungsdaten
  • Benutzerprofil
  • Einkaufswagen
  • Grundsätzlich alles, was einen einzigen eindeutigen Schlüssel hat, der einfach generiert und repliziert werden kann

Dokumentieren:

  • Ereignisprotokollierung
  • CMS / Bloggen
  • E-Commerce (nach Abschluss der Transaktion)
  • Netz Analyse

Spaltenfamilie:

  • Ereignisprotokollierung
  • CMS / Bloggen
  • Zähler
  • auslaufende Nutzung

Graph:

  • verbundene Daten
  • standortbezogene Dienste
  • Empfehlungsmaschine

Welche anderen Anwendungsfälle gibt es? Genauer gesagt, welche Anwendungsfälle sind für jeden Typ von NoSQL-Datenbank besser als ein relationales Modell?

harageth
quelle
Dies ist eine Frage vom Typ Umfrage, die nicht gut zu unserem Q & A-Format passt.

Antworten:

2

Ich denke, Sie haben fast alles abgedeckt. Ich kann Ihnen noch etwas über die Graphendatenbank anbieten. Ich habe gesehen, dass Menschen oder Forscher die Graphendatenbank für die semantische Analyse oder die Speicherung der Ontologie für die Verarbeitung natürlicher Sprache verwenden.

Und da ich viel Graph db verwendet habe, denke ich, dass das, was Graph db bietet, viel mehr ist, als das relationale Modell bieten kann. Zum Beispiel, wenn ich eine Webanwendung habe und alle meine Freunde von Facebook und Twitter aus nach Standort oder Interessen verbinden möchte. Ich kann es in einer Abfrage tun. Sie können dies jedoch auch in SQL tun, wenn Sie es wirklich wollen, aber das SQL kann ein A4 lang oder länger sein, wenn Sie es richtig machen wollen.

Spielzeug
quelle
0

Warum nicht axiomatischer vorgehen? Zum Beispiel, warum ist „CMS / Blogging“ besser zu dokumentieren Datenbanken geeignet (oder was auch immer)? Welche gemeinsamen Eigenschaften dieser Anwendungen lassen Sie glauben, dass sie für die eine oder andere Technologie besser geeignet sind?

Berücksichtigen Sie die Stärken jeder DBMS-Technologie und in der Tat die Theorie , auf der jede basiert. Welches Datenmodell implementieren sie? (Hat jeder in der Tat haben ein Datenmodell?) Was sind die Eigenschaften jedes Datenmodell und wie die Eigenschaften der Applikationskarte auf diejenigen des Datenmodells? Wenn Sie eine solche Karte entwickeln, können Sie jede Anwendung charakterisieren , auch eine, von der Sie noch nie gehört haben oder die noch nicht erfunden wurde.

Codd definierte ein Datenmodell mit drei ineinandergreifenden Merkmalen: Struktur, Operationen und Einschränkungen. Das relationale Modell hat alle drei in Pik. Wenn Sie sich die Alternativen genau ansehen, werden Sie feststellen, dass mindestens eine und normalerweise zwei davon fehlen. Jede Technologie, die nicht auf dem relationalen Modell basiert, ist ipso facto weniger funktionsfähig. Aus diesem Grund kann man mit Sicherheit sagen, dass jede Anwendung das relationale Modell unterstützen kann (wenn nicht durch vorhandene relationale Produkte). Das relationale Modell ist noch weiter entwickelt, leistungsfähiger und dennoch einfacher als jedes andere bisher entwickelte. Es wird schwer zu verbessern sein, da es auf Prädikatenlogik und Mengenlehre beruht.

Vielleicht können Sie Anwendungen identifizieren, für die beispielsweise genau definierte Vorgänge keine Rolle spielen. Sie möchten jedoch sicher sein, dass Sie zuerst verstehen, warum sie im Allgemeinen wichtig sind, bevor Sie mit Sicherheit sagen können, warum sie für eine bestimmte Anwendung nicht erforderlich (oder sogar nur nützlich) sind.

Früher oder später wird Ihnen jemand sagen, dass "relational nicht skaliert" und dass Technologie X schnell ist. Denken Sie dabei daran, dass sie implizit Funktionen aufgegeben haben, die der Technologie X im Vergleich zum relationalen Modell fehlen. Diese Funktionen könnten durchaus von Bedeutung sein. Außerdem ist ein Datenmodell nicht schnell oder langsam, sondern nur eine Implementierung. Immer wenn es mehr Programmierer als Maschinen gibt, ist es billiger, schnellere Hardware zu kaufen, als mehr Programmierer einzustellen.

James K. Lowden
quelle
Ich bin es ein wenig leid zu hören, dass relationale Datenbanken auf Mengenlehre basieren, als ob dies automatisch ihren Status verbessern würde. Tatsächlich ist die endliche Mengenlehre trivial und die ersten Feinheiten der Mengenlehre beginnen mit unendlichen Mengen, die in Datenbanken natürlich überhaupt nicht verwendet werden.
Andrea
1
Die Mengenlehre verbessert den Status relationaler Datenbanken nicht. Es bietet eine Grundlage für das relationale Modell. Andere Theorien, die nicht angewendet werden, gelten nicht, da muss ich Ihnen zustimmen!
James K. Lowden