Frage

Ich komme aus einem MySQL-Hintergrund, und ich bin in dokumentenorientierte Datenbanken interessiert, speziell CouchDB. Eines der Dinge, die ich in Integrität Daten interessiert bin. Wie dokumentenorientierte Datenbanken damit umgehen? Zum Beispiel in RDBMSes, gibt es Möglichkeiten, Vervielfältigung von Aufzeichnungen zu verhindern oder zu garantieren, dass, wenn Sie ein Bit an Information haben, haben Sie eine andere, oder auch gar keine.

Ich denke, allgemeiner gesagt, meine Frage ist, welche Art von Problemen sind RDBMSes für ausgeschnitten, im Vergleich zu Problemen, die DODBes für verwendet werden? Ich suchte nach einer Erklärung einige der anderen Stackoverflow Fragen auf, aber haben keine gute finden.

Auch mit meinen Datenbanken bei der Arbeit, habe ich eine Menge der Berichterstattung, mit Summieren und Werte von durchschnittlich und historischen Trends. Ist das etwas, geeignet für dokumentenorientierte Datenbanken?

War es hilfreich?

Lösung

Die meisten der Dokument-Datenbanken unterstützen nur sehr begrenzte Integrität oder keine Integritätsprüfungen. Sie berufen sich auf die Anwendung, um sicherzustellen, dass die Daten korrekt sind. Ich kann Ihnen sagen, wie es in CouchDB ist.

Zum zweiten Teil. Ich denke, RDBMS tut sehr gut an der Berichterstattung und Analyse von Daten. Die Tatsache, dass Sie komplexe Abfragen auf den Daten ausführen können mit Verknüpfungen, Aggregationen, Funktionen etc. machen RDBMS ein sehr leistungsstarkes Reporting-Tool. Dokument-Datenbanken tun wirklich gut für die Speicherung der ‚Live‘ Anwendungsdaten. Es ist sehr einfach zu speichern, ein Objekt-Graph in Dokument-Datenbanken abzurufen. Das Schema freies Design macht es einfach, das Modell für neue Anwendungsfunktionen erweitert. Doch nur dies funktioniert, wenn Sie Ihre Anwendung-Daten in schöne Dokumente aufteilen. Andernfalls verlieren Sie viel von der Eleganz.

Wenn Sie meist Berichterstattung tun wollen, würde ich eine RDBMS bevorzugen. Wenn zu speichern viele flache, einfache Aufzeichnungen es sehr einfach, die Berichterstattung über es zu tun. Die Werkzeuge usw. ist perfekt für die Berichterstattung. Allerdings wollen, wenn die Berichterstattung über komplexe strukturierte Daten zu tun, werden Sie wahrscheinlich noch besser mit einer anderen Datenbank desgine als ein RDBMS.

Allerdings bedeutet dies nicht, Sie selbst zu RDBMS beschränken müssen. Sie könnten die beiden Technologien kombinieren. Stellen Sie sich ein Blog-Software. Sie speichern die ‚live‘ Anwendungsdaten wie Blog-Posts und Kommentare in die documentdatabase. Die Daten für die Berichterstattung wie Klick- und Login-Statistik wird in einem RDBMS gespeichert. Siehe auch Rob Conerys Post .

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