Wie entscheiden Sie, welche Art von Datenbank verwendet wird?

31

Ich mag den Namen "NoSQL" wirklich nicht, weil er nicht sehr aussagekräftig ist. Es sagt mir, was die Datenbanken nicht sind, wo ich mehr daran interessiert bin, was die Datenbanken sind . Ich denke wirklich, dass diese Kategorie wirklich mehrere Kategorien von Datenbanken umfasst. Ich versuche nur eine allgemeine Vorstellung davon zu bekommen, für welchen Job die jeweilige Datenbank das beste Tool ist.

Ein paar Annahmen, die ich gerne machen würde (und die Sie bitten würden):

  1. Angenommen, Sie haben die Möglichkeit, eine beliebige Anzahl brillanter Ingenieure einzustellen, die über die gleiche Erfahrung mit jeder jemals existierenden Datenbanktechnologie verfügen.
  2. Angenommen, Sie verfügen über die technische Infrastruktur, um eine bestimmte Datenbank zu unterstützen (einschließlich der verfügbaren Server und Sysadmins, die diese Datenbank unterstützen können).
  3. Angenommen, jede Datenbank bietet den bestmöglichen kostenlosen Support.
  4. Angenommen, Sie haben 100% Buy-in vom Management.
  5. Angenommen, Sie haben unendlich viel Geld, um das Problem anzugehen.

Jetzt ist mir klar, dass die oben genannten Annahmen eine Menge gültiger Überlegungen bei der Auswahl einer Datenbank überflüssig machen. Mein Fokus liegt jedoch darauf, herauszufinden, welche Datenbank für den Job auf rein technischer Ebene am besten geeignet ist. Ausgehend von den obigen Annahmen lautet die Frage: Für welche Jobs ist jede Datenbank (einschließlich SQL und NoSQL) das beste Tool und warum?

Jason Baker
quelle
Könnten Sie sich zwei Beispiele für diese Datenbank aussuchen und welche Kategorie?
JeffO

Antworten:

6

Relationale Datenbanken (SQL) eignen sich hervorragend für Daten, bei denen das zugrunde liegende Modell stabil bleibt. Viele Implementierungen gibt es schon seit einiger Zeit (Oracle, DB2, SqlServer) und sie sind stabil und sicher. Außerdem ist es sehr einfach, erfahrene Administratoren zu finden - und Datenbankadministratoren sind ein Muss! Die Programmierer sollten sich nicht mit Berechtigungen, Setup und Optimierung befassen müssen. Sie sollten in der Lage sein, sich auf die Programmierung zu konzentrieren, und die Administratoren sollten sich darum kümmern, die Datenbank auf dem neuesten Stand zu halten. Relationale Datenbanken sind auch relativ einfach abzufragen, und es gibt viele Tools, die beim Auffinden von Daten helfen.

Michael K
quelle
5

SQL

Relationales Objekt. Stabile Server mit genauer Kontrolle über die Berechtigungen.

NoSQL

Flexible Aufbewahrung. Hohe Skalierbarkeit und Sharding-Fähigkeiten.

Josh K
quelle
1

In diesem Artikel gibt es einige sehr gute Informationen dazu: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j Vergleich :

Während SQL-Datenbanken wahnsinnig nützliche Tools sind, geht ihr Monopol von ~ 15 Jahren zu Ende. Und es war gerade Zeit: Ich kann nicht einmal die Dinge zählen, die in relationale Datenbanken gezwungen wurden, aber ich habe sie nie wirklich angepasst.
Die Unterschiede zwischen NoSQL-Datenbanken sind jedoch so groß wie nie zuvor zwischen einer SQL-Datenbank und einer anderen. Dies bedeutet, dass es eine größere Verantwortung für Softwarearchitekten ist, gleich zu Beginn die für ein Projekt geeignete zu wählen.
In diesem Licht ist hier ein Vergleich von Cassandra, Mongodb, CouchDB, Redis, Riak, Membase, Neo4j und HBase [...]

Jason Baker
quelle
-3

Ich denke, das ist keine gute Frage, zum Beispiel, welche Art von Fahrzeugen ist gut? Bugatti, BWM, Automobil, Minimaschine, Zug, Lokomotive, Flugzeug?
es hängt von Ihrer Situation ab,

Für einen kleinen Job ohne große Datenmengen ist sqlight möglicherweise gut.
Für ein Unternehmen, das Microsoft-Produkte einsetzt, ist MSSQL gut.
Für die Webentwicklung ist MySQL sehr einfach zu bedienen.
für Banken, Oracle oder Couchbase (wenn Trancation Problem behandeln).
Für einen kleinen Job mit vielen Daten ist MongoDB gut.
für eine Firma mit riesigen Daten und nur einer Art Tabelle, Cassandra.
für ein Unternehmen mit riesigen Daten, Couchbase.
für Hadoop-Ökosystem HBase.
für Grafik, Bild, im Speicher, ...

Hossein Vatani
quelle
5
Ich bin neugierig, warum Sie MySQL für einen Microsoft-Shop über SQL Server empfehlen würden?
Becuzz
Ich korrigiere das, ich meinte Mssql.
Hossein Vatani