Was ist ein Beispiel für eine nicht relationale Datenbank? Wo / wie werden sie benutzt?
Habe ich die Arbeit mit relationalen Datenbanken für irgendwann, aber erst vor kurzem fiel mir ein, dass es auch andere Arten von Datenbanken, die nichtrelational.
Was sind einige Beispiele für nicht-relationale Datenbanken, und wo/wie werden Sie verwendet in der realen Welt? Warum würden Sie wählen, um eine nicht-relationale Datenbank relationale Datenbanken?
Bearbeiten: Zwei ähnliche Fragen wurden schon in den Antworten:
- Datenbank-system, das ist nicht relational.
- Gute Gründe, NICHT auf die Verwendung einer relationalen Datenbank?
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Michael Burr
Einer zwar obskuren, aber interessante alternative zu den Typen von Datenbanken, die hier erwähnt ist, ist die assoziative Datenbankwie Sätze, die aus LazySoft Technologie. Es gibt eine Kostenlose persönliche version können Sie herunterladen und versuchen Sie es auf Ihrem eigenen. Die Enterprise Edition ist ebenfalls kostenlos, erfordert aber eine Anfrage an das Unternehmen.
Im wesentlichen, eine assoziative Datenbank ermöglicht das speichern von Informationen in der gleichen Weise, wie unser Gehirn zu tun: so wie die Dinge und Assoziationen zwischen diesen Dingen. Der name "Sätzen" kommt aus der Art, wie diese Informationen dargestellt werden können, in einem Subjekt-verb-Objekt syntax:
Einen Satz kann das Subjekt oder Objekt eines anderen Satzes:
So, alles kann verkuerzt werden, um Personen und Verbände.
Es ist, natürlich, viel mehr Sätze als das, was ausgedrückt werden kann hier. Ich empfehle, dass Sie einige Zeit dauern, um mehr darüber zu Lesen in einem Whitepaper von LazySoft.
"Das Assoziative Modell von Daten" ist ein Buch im PDF-format von Simon Williams, einer der Schöpfer von Sätzen.
InformationsquelleAutor der Antwort Jeff Jones
Einen nicht-relationalen Dokument-orientierte Datenbank, die wir gesucht haben, ist Apache CouchDB.
Unser Interesse Bestand in der Bereitstellung einer verteilten access-Benutzer-Voreinstellungen zu speichern, wäre immun gegen Formänderungen, auf die könnten wir serialisieren Vorliebe Objekte aus Java und dem Zugang zu diesen genauso leicht mit Javascript von einer XULRunner-basierte client-Anwendung.
InformationsquelleAutor der Antwort TomC
Jeder Datenbank, die behauptet, ein "Berkley" style Database" oder "Schlüssel/Wert" die Datenbank ist nicht relational.
Diese Datenbanken sind in der Regel auf der Grundlage komplexe Hash-algorithmen und bieten eine sehr schnelle lookup O(1) basierend auf einer Taste, aber lassen Sie jede form von relationalen Güte, um end-Benutzer.
Beispielsweise in einer relationalen Datenbank, Sie würde sich normalisieren, Ihre Struktur und verbinden die vielen Tabellen zusammen, um eine einzige Ergebnismenge.
In einem Schlüssel - /Wert-Datenbank, Sie würde denormalize so viel wie möglich, und verwenden Sie dann einen eindeutigen Schlüssel-lookup-Daten.
Wenn Sie brauchen, um pull-Daten aus zwei Quellen, Sie hätte beitreten das resultierende set zusammen mit der hand.
InformationsquelleAutor der Antwort FlySwat
Google App Engine Datastore :
InformationsquelleAutor der Antwort Guido García
Alle Datenbanken wurden ursprünglich nicht-relationale, es wurde erst mit dem Aufkommen von DB2 und Oracle in die Mitte der 1980er Jahre wurde Sie zur gemeinsamen. Vor, dass die meisten Datenbanken, in denen entweder flach Dateien oder hierarchische.
Flachbild-Dateien sind von Natur aus langweilig, aber hierarchischen Datenbank sind viel weniger, vor allem als DB2 wurde tatsächlich umgesetzt, an der Spitze einer hierarchischen Umsetzung (nämlich VSAM) in der ersten Instanz. VSAM ist glaube ich immer noch um auf mainframe-Systeme und ist von einer erheblichen Bedeutung.
DB/1 (so obskur, jetzt kann ich noch nicht einmal einen wikipedia-link) wurde von IBM Vorgänger prime-time-Datenbank auf DB2 (daher der name). Diese war hierarchisch - im Grunde hatte Sie eine Datei, die aus einer beliebigen Anzahl oder 'root' - Datensätze, in der Regel direkt zugänglich mit einem Schlüssel. Jeder root-Datensatz konnte dann eine beliebige Anzahl von untergeordneten Datensätze aus, von denen jeder könnte wiederum haben es die eigenen Kinder. Der Netto-Effekt ist eine index-Datei oder root-Datensätze, die mit jeder Wurzel, die Spitze einer möglichen Baum-wie Struktur. Zugriff auf die untergeordneten Sätze könnte schwierig sein - es gab Einschränkungen der direkten Zugriff, so dass in der Regel Sie am Ende der Traversierung der Baumstruktur auf der Suche für die Aufzeichnung, die Sie benötigt. Eine "Datenbank" haben könnte, eine beliebige Anzahl dieser Dateien in es, in der Regel durch Tasten.
Dieser hatte große Nachteile - nicht zuletzt, tatsächlich etwas zu tun, verlangt ein volles Programm geschrieben - im Grunde das äquivalent von einem Tage Arbeit für das, was wir jetzt machen können in SQL in ein paar Minuten. Aber es hat wirklich Partitur auf die Ausführungsgeschwindigkeit, die in diesen Tagen eine mainframe-hatte in etwa die Rechenleistung von deinem iPhone (wenn auch optimiert für Daten-I/O) und schlechte DB2-Abfragen töten könnten eine multi-Millionen-dollar-installation tot. Dies war nie ein Problem mit der DB/1 und in einer Welt, wo die Programmierer waren weniger teuer als die CPU-Zeit machte es Sinn.
InformationsquelleAutor der Antwort Cruachan
Den PI historischen Datenbank von OSIsoft ist nicht relational. Es ist nur noch als Archiv mit Zeitstempel versehene Daten. Es verwendet eine Menge von der Industrie, vor allem als back-end-Datenbank für alle, die 'dashboards'.
Gibt es keine Notwendigkeit zu relationalen es, da gibt es keine Verknüpfungen.
InformationsquelleAutor der Antwort Lance Roberts
Beiden anderen Arten von Datenbanken, die nicht kommen noch:
Content Repositories sind Datenbanken konzipiert für die Inhalte (z.B. Dateien, Dokumente, Bilder, etc). Sie haben in der Regel additioan Konstrukten wie einer hierarchischen Weise auf den Inhalt durchsuchen, die Suche, die transformation zwischen verschiedenen Formaten, Versionsverwaltung und viele andere Dinge. Beispiele - Alfresco, Documentum, JackRabbit, Tag, OpenText, viele andere ECM-Anbieter.
Verzeichnisse, d.h. Active Directory-oder LDAP-Verzeichnissen. Dies sind Datenbanken, die speziell für niedrige-schreiben /hohe lese-Szenarien und sehr verteilt in hohen geographischen Entfernungen /verbindungen mit hoher Latenz. Während Sie hauptsächlich für die Authentifizierung /Autorisierung, die Sie nicht haben werden, wenn Sie Ihre use-case entspricht den Anforderungen.
InformationsquelleAutor der Antwort Jean Barmash
Dimensionalen Datenbanken sind große Beispiele von nicht-relationalen Datenbanken. Sie sind sehr Häufig für die 'Dashboards'/'Business Intelligence' für die KPIs und andere Arten von gesammelten oder statistischen Daten. Sie sind in der Regel bevölkert von relationalen Datenbanken und bietet eine bessere Leistung in bestimmten Situationen.
http://en.wikipedia.org/wiki/Dimensional_database
InformationsquelleAutor der Antwort Mario
Sich bewusst sein, dass das Konzept der relationalen Datenbanken ist sehr umstritten. Puristen wie C. J. Date würde behaupten, dass viele Datenbanken im Allgemeinen Gebrauch (wie Oracle und SQL-Server) nicht erfüllen, ausreichend mit dem relationalen Modell zu sein, die als 'relationale'.
InformationsquelleAutor der Antwort johnstok
Nicht-Relationale Datenbanken einfach nicht erfüllen Codd Anforderungen.
Intersystems Caché Nähte insgesamt re-write und re-design der alten Pick Betriebssystem Datenbank. Aus dem bisschen, das ich gelesen habe von Caché es scheint sich um ein schön gemacht redesign.
Ist es erlaubt .net-Programme zum Zugriff auf die Datenbank wie SQL. Caché laufen die Pick-OS-Programme ohne änderungen. Durch den Import Ihrer Dateien auswählen, die in Caché können Sie noch Ihre alte green-screen-Anwendungen, sondern auch schreiben, neue Programme mit .net so kann die Migration zu Windows-Anwendungen, ohne Verzicht auf die Jahre von data design haben Sie bereits investiert haben.
Ist hier etwas hintergrund auf dem Pick-DB-Modell . Ein Pick-Datenbank verwendet völlig variabler Länge Datensätze und Felder. Alle Tabellen eingegeben werden, die von einer einzigen, eindeutigen Schlüssel und zugänglich sind, ohne die Lektüre eines index. Pick entworfen, die das system verwenden eines Hash-Algorithmus, der liest das Element von der Festplatte auf in der Regel am 1. physikalischen Lesen (vorausgesetzt die Wartung des Systems korrekt ausgeführt wurde). Felder in der Pick sind Nicht Typisiert. Alle Daten werden als string und Gießen ist der Programmierer. Null-Werte sind, werden als leere Zeichenkette, also eine null nicht nehmen Speicherplatz wie in SQL. Es gibt keine Notwendigkeit für Foreign Keys. In der "Relationalen Welt" die DBA hat zu erstellen und die Auftragskopf-Tabelle, und eine, Um Einzelposten-Tabelle. In der "Pick-Modells' es gibt eine einzige Tabelle. Ein Beispiel wäre, "Bestell-Datum" ist ein Feld, das speichern einer Anzahl von Tagen seit 'Dez 13, 1967' (die Daten Holen OS eingeschaltet wurde zum ersten mal). Pick-Programmierer haben keine Y2k-Probleme. Eine 2. Spalte wäre die Kundennummer. Der große Unterschied ist, wenn Sie die Artikelnummer-Spalte, es wäre "Multi-Valued" (die Codd Non-Conformance). In anderen Worten, die Datenbank verarbeiten kann, 1-32000 Produkt#s in dieser Spalte. Andere Spalten wie Bestellmenge, wäre ein controlling - /abhängiger Beziehung mit der Produkt-Nummer und wäre auch mehrwertige. Wenn Sie die Menge Geliefert, die Wählen gehen würde, um eine Dritte dimension und haben Sub-Multi-Valued-Feld. Sie hätte eine Sendungsnummer Spalte, und es wäre mehrwertige durch Linie-Element-und Sub-Multi-Bewertet mit Dem Versand Menge für die Linie, die Sendungsnummer. Es gibt Keine Inner Joins benötigt. Alle Daten für die Bestellung werden in Einer Tabelle und in einem einzigen Datensatz. Keine verwaiste Zeilen je!
Zweitens die Daten, die definition ist ein bisschen anders. Unsere Wörterbücher enthalten können, die Definitionen für Daten, die nicht in dieser Tabelle oder manipuliert wird. Ein paar Beispiele sind, Kunde-Name. Es würde definiert werden als " die Kundennummer Spalte und kehren Sie das Feld Name aus der Tabelle Kunden. Ein weiteres Beispiel ist die Line-Item-Erweiterung definiert, wie eine Berechnung von Menge*Preis/Preis je.
Ich glaube, ich habe irgendwo gelesen, Caché behauptet, über 100.000 Installationen.
InformationsquelleAutor der Antwort CurtTampa
Ich würde denken, eine flach-Datei-Datenbank in Excel nicht-relationale und von ganz wenigen Menschen.
Ist es eigentlich nur eine Datenbank-Tabelle, die kann nicht verbunden werden mit anderen Tabellen.
InformationsquelleAutor der Antwort BoltBait
Objektorientierte Datenbanken sind eine interessante Art von nicht-relationalen Datenbank.
Handel manchmal verwendet, OO-Datenbanken, da jedes Angebot/Vertrag Aussehen kann, in der Art, wie andere in dieser Kategorie, aber haben einzigartige Eigenschaften, wie gut. SEHR schwierig, Sie zu vertreten relational.
InformationsquelleAutor der Antwort
eXist-db ist eine xml-Datenbank, die gewesen herum für eine lange Zeit. Es ist besonders nützlich für xquery über Tonnen von xml-Dokumenten.
InformationsquelleAutor der Antwort JarrettV
Jede Datei oder Gruppe von Dateien, die Daten enthält, aber nicht express Beziehungen innerhalb dieser Daten ist eine nicht-relationale Datenbank.
InformationsquelleAutor der Antwort EBGreen
RRDtool ist entworfen, um zu speichern und aggregieren von log-Daten. Konfigurieren Sie das Abtastintervall und die feed-Daten in es, dann gibt es Zeit-basierte Ergebnisse. Es ist optimiert für fixed-size storage, und beginnt zu aggregieren bisherige Ergebnisse nach einer Zeit. Angenommen, Sie haben ein round-robin-Datenbank mit einem 5-minütigen Zeitintervall. Auch wenn Sie diese senden die Temperatur-Daten einmal pro Sekunde, ist es immer noch nur speichert die Ergebnisse in 5-Minuten-Schritten. Nach einer Woche sind es durchschnittlich diese Ergebnisse in Stündliche Werte. Nach einem Monat, stündlich Ergebnisse sind gemittelt in die täglichen zahlen, und so weiter.
RRDtool wird allgemein als die back-End Werkzeuge, wie Cricket und MRTG zu verfolgen, Netzwerk-und Umwelt-Daten für Monate und Jahre am Stück.
InformationsquelleAutor der Antwort Kirk Strauser
Für eine Graphen-basierte dbms Sie haben neo4j
Für eine hierarichal dbms Sie haben alle standard-Dateisystem oder mit "schema" unterstützen keine LDAP-Implementierung.
InformationsquelleAutor der Antwort John Nilsson
Gibt es viele Antworten, aber Sie alle am Ende wird in eine von zwei Hauptkategorien:
Navigations. Enthält Struktur/Hierarchie-Datenbanken und Graph-Datenbanken.
Datenbanken, die Pause der ersten Normalform (mehrere Werte). Beinhaltet Pick-Datenbanken und Lotus Notes und seine Nachkommen wie CouchDB.
EDIT: Und natürlich key/value-stores wie BDB sind nicht relational, sondern, dass Sie einfach geht, ohne zu sagen, nicht wahr? Ich meine, Sie sind nur key/value-stores.
InformationsquelleAutor der Antwort David Mathers
dBase. Obwohl es vermarktet wurde, als solche nicht die Anforderungen erfüllen.
InformationsquelleAutor der Antwort NotMe
Als OO-Datenbank Intersystems Caché in den Sinn kommt. Einige medizinische und library-Systeme basieren auf dieser.
InformationsquelleAutor der Antwort Tomalak
In meiner Firma, http://www.smartsgroup.com wir haben eine proprietäre Datenbank-engine nennen wir eine "transaction-log-Datenbank". Es ist gebaut auf flachen Dateien, jede Datei, die eine Sequenz von "Ereignissen" oder "Nachrichten", die in einem binären format, sowie verschiedene Indizes, die auf diese Daten und algorithmen für die Reproduktion des Status einer Börse Orderbuch. Es ist hoch optimiert für die sequenzielle updates und sequentiellen Zugriff.
In wissenschaftlichen Anwendungen ist es auch üblich, verwenden proprietäre Datenbank-engines eher als RDBMS. Ich arbeitete auch für ein Unternehmen, das die weltweit größte Datenbank der EEG-Gehirn-Aufnahmen: http://www.brainresource.com . Dort verwenden wir eine flache Datei-Datenbank, und es funktionierte gut für uns.
SmartsGroup verwendet auch eine zeitliche Datenbank, die wie eine nicht-relationale Datenbank-Tabelle, außer, dass wir speichern einer Historie aller änderungen alle Felder aus, damit wir das reproduzieren können, den Zustand einer bestimmten Zeile an einem bestimmten Datum.
InformationsquelleAutor der Antwort Tim Cooper
Die Wiki-Seite für Dimensionale Datenbanken im Zusammenhang mit oben scheint verschwunden zu sein.
Einige OLAP Systeme müssen gesichert werden, durch die Multidimensionale Datenbanken (MOLAP) - diese sind Häufig in der Finanzanalyse. Sie erlauben eine interaktive clients, die es ermöglichen, eine zum navigieren durch die Daten auf verschiedenen Ebenen der aggregation.
InformationsquelleAutor der Antwort Tom
An meiner Uni gibt es eine Gruppe, die Forschungen deduktive Datenbanken.
InformationsquelleAutor der Antwort mdm