Ist SQL das ‚‘ Assembler ‚‘ der NoSQL-Datenbank Welt?
Frage
Ich habe kürzlich http: // www .fossil-scm.org / index.html / doc / tip / www / theory1.wiki von D. Richard Hipp, der Entwickler verantwortlich für SQLite.
es geht mir zu denken, ist Fossil die einzige NoSQL-Datenbank, die SQL verwendet?
Do andere verwendet SQL als 'High Level Scripting Language'?
Lösung
Aus dem Artikel, es ist wie Fossil klingt, ist keine Datenbank mehr als git eine Datenbank ist. Ja, es ist eine Sache, die Daten enthält, und ja, es durch eine Datenbank gesichert ist, aber es scheint ziemlich weit von einer Datenbank selbst. So ist der erste Teil Ihrer Frage beruht grundsätzlich auf einer fehlerhaften Annahme. Es gibt eine Datenbank Freundlich , die verwendet MySQL zu speichern Schema lose Modelle genannt, aber es scheint wie eine peinliche bandaid Art von Lösung am besten.
Ich bin sicher mit all den NoSQL Optionen da draußen nicht vertraut, aber meines Wissens keiner der gut obwohl-Einsen verwenden SQL für alles. MongoDB und CouchDB, die zwei Ich bin am meisten vertraut mit, beide verwenden Javascript als Teil ihrer Abfrageschnittstelle, wenn auch auf sehr unterschiedliche Weise. MongoDB hat Anfragen mehr wie das, was man aus einer relationalen Datenbank erwarten würde: Sie eine beliebige Abfrage für alle Dokumente schreiben können, die einen bestimmten Satz von Attributen übereinstimmen. Doch im Gegensatz zu einer relationalen Datenbank, gibt es nicht so etwas wie eine Verknüpfung (Sie werden immer nur eine Liste von verschiedenen Dokumenten zurück, nicht zusammengesetzte Dokumente) und Sie können beliebigen JavaScript-Code schreiben Dokumente auszuwählen. CouchDB, auf der anderen Seite, erlaubt keine willkürlichen Abfragen. Stattdessen erstellen Sie Ansichten (die Geschäfte wesentlich einfache Schlüssel-Wert) sind mit Karte / Funktionen in Javascript geschrieben reduzieren und dann die Ansichten von einem Startschlüssel und Ende-Taste abgefragt werden.
In beiden Fällen sind die Art von Informationen an den Server übertragen werden, um die Abfrage durchzuführen, ist nicht gut geeignet für die Art von Problem, dass SQL gut zu lösen ist. Die Trade-off zu SQL ist so hohe Ebene (die Logik des Autors des Papiers zu verwenden) ist, dass es für eine sehr enge Reihe von Problemen nur geeignet ist.