Frage

Ich suche nach alternativen Datenspeichermethoden zu SQL ( das heißt, ich mache nicht SQL, auch für Abfragen ) und stieß auf awenige basierend auf JSON.Mit Freunden, die Datenbankarbeit machen, sagten sie, ich sollte diese nicht berücksichtigen, würde aber nicht erarbeiten. Was sind die potenziellen (und praktischen) differcts , um JSON als Datenspeicherdateiformat zu verwenden?


Ich dachte, JSON wäre aus diesen Gründen besser als SQL:

    .
  1. json ist streng definiert und hat keine Aromen (Oracle, Microsoft, MySQL usw.)
  2. Da Google begann, Chrome zu machen, haben JS-Dolmetscher das Lesen, Analysieren und Ausgeben von JS (und somit JSON) A SEHR schneller und einfacher Prozess.
  3. Datenbank Ausgabe könnte reine JSON sein, um den Bedarf an einem mittleren Dolmetscher für Browsern usw. zu löschen.
  4. unter anderem ...

War es hilfreich?

Lösung

Ich denke, Sie möchten vielleicht No-SQL-Datenbanken ansehen: https://en.wikipedia.org/wiki/nosql

Wenn Sie möchten, dass Sie JSON-ähnliche Daten verwenden, ist eine ich persönlich benutzt, ist mongodb.

Ich habe es nicht als Haupt- / Einzelquelle meiner App-Daten verwendet, sondern nur für sekundäre Zwecke. Aber ich denke, Sie können es auch versuchen, ihn als Hauptdatenspeicher zu verwenden (ich denke viele Leute, die es tun).

was ich ausprobiert habe und war ziemlich zufriedenstellend, war mongodb mit c # und benutzte Mongovue als GUI-Anwendung, um Abfragen und Interaktion mit dem DB auszuführen. Ich war mit MongoVue nicht sehr zufrieden, aber es scheint, dass es zu dieser Zeit die beste Option war.

SQL DBS sind jedoch sehr gut, um Beziehungen in Ihren Daten zu definieren. Z.B. Verweisen Sie einen Eintrag auf Tabelle A von einem Eintrag auf Tabelle B und dieser Art von Sachen. Mit diesen Beziehungen können Sie Tische mitmachen und viele interessante Dinge tun. Ich denke, es ist gut, dass Sie auch Erfahrungen auf diesem Feld erhalten.

mongodb baut nicht auf, um Beziehungen zu definieren (soweit ich verstehe). Es hat das Konzept von "Dokumenten", in denen Sie Informationen in einem JSON-Format speichern (mit verschachtelten Schlüssel / Werten). Sie können Dokumente abfragen. In-Mongodb "> Wie leite ich die SQL-Anmelde-Äquivalent in Mongodb? Sicherstellung der Datenkonsistenz (auf wirklich zuverlässiger Weise), wenn Beziehungen in MONGODB verwendet werden, scheint mir ziemlich unmöglich zu sein. Aber auch wenn ich falsch liege, und es ist möglich, es ist 10 mal schwieriger, es zu erreichen, als mit SQL-DBS.

Sie können jedoch die Liste in Wikipedia ansehen, und es könnte eine bessere Alternative als MONGODB für Sie geben.

Sie können jedoch auch reines JSON mit keinem DB-System verwenden.

also in Zusammenhang mit JSON-ähnlicher Lagerung (zumindest) diese Probleme:

    .
  • nicht gut bei der Definition und Verwendung von Beziehungen
  • Wenn Sie Beziehungen verwenden, ist die Datenintegrität (oder wahrscheinlicher, Referenzintegrität) schwer.
  • Wenn Sie kein gutes DB-System verwenden, aber Sie können JSON einfach in eine Datei ablegen, wenn diese Datei zu groß wird, haben Sie Leistungsprobleme. Stellen Sie sich vor, Sie senden ein 1 GB-JSON-Coded-Array von Objekten, um die gewünschten Objekte zu erhalten. Sie müssen das gesamte Array auf dem Speicher laden, durch das Ganze ausgeführt werden (da Sie keine Indizes haben) und dann (wenn Sie nicht mehr Speicher und Ihre Verbindung ausgeführt haben, und wenn Sie mit einem Netzwerk nicht abgelaufen sind) Sie wird ein Ergebnis erhalten. Die meisten NO-SQL-DBS wie MONGODB und die meisten SQL-DBs haben keine solchen Probleme (zumindest in angemessenen Datenmengen). Sie sind fein abgestimmt, sie unterstützen Indexierung, Referenzen, Berechtigungen, Rollen und Sie können den Ausführender Code auch auf der DB-Ebene (wie Auslöser und gespeicherte Prozeduren) definieren. Sicherlich sind sie komplexer, aber die Komplexität kann den meisten Zeiten erforderlich sein, um das Endergebnis zu erreichen.

Andere Tipps

JSON- oder JavaScript-Objektnotation ist ein offenes Standardformat, das humanlesem Text verwendet, um Datenobjekte zu übertragen, die aus Attribut-Wert-Paaren bestehen.Es wird hauptsächlich zur Übertragung von Daten zwischen einem Server- und einer Webanwendung als Alternative zu XML verwendet.

Sie schauen sich mehr auf den Vergleich zwischen Datenbank vs Flat-Dateispeicher wirklich.

Auch bei Verwendung einer relationalen DB ist die Datenintegrität (oder die referentielle Integrität) immer noch schwer, da Zeilen normalerweise zeitgestempelt sind.Ganz oft sind fremde Schlüssel aufgrund davon nicht durchgesetzt.Wenn ein Zeilenaktualisierung auftritt, haben Sie 2 Optionen.Erstens, "vergessen" die vorherige Version.Zweitens, aktualisieren Sie die ursprüngliche Zeile und kopieren Sie die vorherige Version in einen zeitgestempelten "nicht relationalen" History-Tisch, in dem ausländische Schlüssel unbrauchbar sind.Die meisten Geschäftsdaten erfordert Updates.Funktionen zur Aufrechterhaltung der referenziellen Integrität in relationalen Datenbanken sind für diese Art von Geschäftsdaten nutzlos (was die meisten Unternehmensdaten darstellt). Was benötigt wird, ist eine zeitliche Datenbank oder eine Abstraktionsschicht, die einen Benutzer mit der entsprechenden Version einer Zeile basierend auf einem Zeitkontext darstellt.Ideal in 2 Dimensionen d. H. Transaktionszeit und Geschäftszeit (alias gültige Zeit).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top