2010-11-11 11 views
8

Wie es sich auf Mysql bezieht? Ich suche sogar Bücher und Materialien, wenn jemand bitte Titel des Buches oder Links erwähnt ....Was ist NoSql? Was ist der Zweck von NoSql? Wo kann ich auf NoSql genügend Material bekommen?

Ich plane, NoSql zu lernen ... also bitte schlagen Sie mir einige Tipps vor, was die Dinge sind, die wir vorher brauchen lernen?

Kann jeder einmal klar Unterschied zwischen der Verwendung von MySql und NoSql erklären?

Gibt es irgendwelche Tools, um MySql-Datenbank zu NoSql-Datenbank zu migrieren? Wenn einer das Verfahren oder ähnliches Material weiß mir bitte helfen .....

Vielen Dank im Voraus ...

+6

Wenn Sie nicht wissen, was es ist, warum möchten Sie darauf migrieren? – skaffman

+1

ist es, als hätte man den Vorteil einer Datenbank, ohne jemals SQL, ADO oder irgendeinen dieser Sachen benutzen zu müssen - http://thedailywtf.com/Articles/The_Storray_Engine.aspx – Tarski

Antwort

13

NoSQL eine Kategorie von Datenbank-Engines, die in nicht den SQL (Structured Query Language) unterstützen um Leistungs- oder Zuverlässigkeitsfunktionen zu erreichen, die nicht mit der Flexibilität von SQL kompatibel sind.

Diese Engines bieten in der Regel eine Abfragesprache, die eine Teilmenge von SQL bereitstellt, sowie einige zusätzliche Funktionen. Welche Teilmenge von SQL verfügbar ist, hängt vollständig von der Engine ab, obwohl es ziemlich üblich ist, dass JOIN, TRANSACTION, LIMIT und nicht indizierte WHERE nicht unterstützt werden.

Als Konsequenz zu einem NoSQL-Motor aus einem Standard-SQL-Datenbank-Engine bestehenden Software-Portierung wird ein Umschreiben von all die Abfragen in dieser Software benötigen, und wird wahrscheinlich auch einige Änderungen in der Anwendungslogik selbst (ein klassische erfordern Beispiel, dass "Display Seite 11 von 25" in CouchDB aufgrund der fehlenden LIMIT x OFFSET y Unterstützung nicht effizient ausgeführt werden kann.

Wikipedia hat eine nette list of NoSQL engines. Der allgemeine Konsens zu NoSQL scheint zu sein, dass, wenn ein bestimmter Teil Ihrer Software von der verbesserten Leistung, Zuverlässigkeit oder Skalierbarkeit profitiert, die von einer bestimmten NoSQL-Engine erlaubt wird, und keine Funktionen verwendet werden, die in dieser Engine nicht verfügbar sind, dann a Migration könnte in Betracht gezogen werden. Es ist ziemlich selten, dass eine gesamte vorhandene SQL-basierte Anwendung in ihrer Ganzheitlichkeit auf NoSQL verschoben wird.

Einige NoSQL-Engines verfügen über automatische SQL-Importfunktionen, aber die Verwendung von NoSQL führt zu einigen Einschränkungen in der Architektur, die davon abhängen, was Sie mit den Daten tun. Daher wird normalerweise eine handschriftliche Import-from-SQL-Prozedur verwendet einzige Lösung unabhängig von bestehenden Importeuren.

(Schließlich trägt MySQL keine Beziehung zu NoSQL. MySQL nur ein Name einer relationalen Datenbank-Implementierung ist. Da es SQL implementiert, ist es natürlich kein NoSQL-Datenbank.)

+0

Danke für deine wertvolle Zeit, die eine Idee über NoSql bietet. Wenn möglich, kannst du mir Bücher/Videos oder Artikel/Materialien geben, um mehr Informationen zu bekommen und meine Fähigkeiten zu verbessern? – Bhargav

2

NoSQL eine Klasse von Datenbank Managementsystem unterscheidet sich von traditionellen relationalen Datenbanken (z. B. MySql) dadurch, dass Daten nicht mit festen Tabellenschemas gespeichert werden. Hauptsächlich dient es als Datenbanksystem für riesige Web-Anwendungen (Amazon, Google, Facebook, usw.), wo sie traditionelle relationale Datenbanken übertreffen.

Eine gute Quelle für Informationen: NOSQL Databases

0

Grundsätzlich sind NoSQL-Datenbank-Management-Systeme nützlich, wenn sie mit einer großen Menge von Daten zu arbeiten, wenn die Natur der Daten nicht ein relationales Modell erfordern. Die Daten können strukturiert sein, aber NoSQL wird verwendet, wenn es darauf ankommt, große Datenmengen zu speichern und abzurufen, nicht die Beziehungen zwischen den Elementen.

Verwendungsbeispiele könnten Millionen von Schlüssel-Wert-Paare in einem oder wenigen assoziative Arrays oder zum Speichern von Millionen von Datensätzen zu speichern sein. Diese Organisation ist besonders nützlich für statistische oder Echtzeit-Analysen von wachsenden Elementlisten, wie Twitter-Posts oder Internet-Server-Logs von einer großen Gruppe von Benutzern.

10

NoSQL vs SQL ist wirklich über Kompromisse.
NoSQL hat Vorteile gegenüber herkömmlichen SQL-Datenbanken, da sie bestimmte RDBMS-Funktionen aufgeben, um andere Leistungs-, Skalierbarkeits- und Entwicklerfunktionen zu erhalten.

Was NoSQL aufgibt (variiert je nach NoSQL Produkt):

  • Beziehungen zwischen Entitäten (wie Tabellen). Daher können Sie normalerweise keine Tabellen oder Modelle in einer Abfrage zusammenfügen.
  • Begrenzte ACID-Transaktionen. Die Ebene der Lesekonsistenz und der atomaren Schreib-/Festschreibungsfunktionen für eine oder mehrere Tabellen/Entitäten variiert je nach NoSQL-Engine.
  • Keine Standard-Domänensprache wie SQL zum Ausdrücken von Ad-hoc-Abfragen. Jeder NoSQL hat seine eigene API und einige der NoSQL-Anbieter haben eine begrenzte Ad-hoc-Abfrage-Fähigkeit.
  • Weniger strukturiertes und starres Datenmodell. NoSQL erzwingt normalerweise mehr Verantwortlichkeit auf der Anwendungsebene und dem Entwickler, um das Schema zu definieren - aka "Schema beim Lesen" anstatt beim Schreiben.

Was NoSQL gewinnt:

  • einfacher, die Daten über einen Cluster Scherbe und zu verteilen (aufgrund dessen, was Sie Aufgeben oben). Dies kann eine viel höhere Lese/Schreib-Skalierbarkeit ergeben.
  • Kann auf billigere Standard-Hardware (und in der Cloud) einsetzen und Kontaktfreudigkeit wachsen wirtschaftlich.
  • Benötigen Sie nicht so viel Unterstützung von vorne DBA. Aber wenn Ihr NoSQL groß wird, werden Sie viel Zeit mit Admin-Arbeit verbringen.
  • NoSQL hat ein losere Datenmodell, so dass Sie in den Dokumenten oder Name/Wert-Spaltensätzen organisierten spärliche Datensätze und variable Datensätze haben können. Datenmodelle sind nicht so hart verdrahtet.
  • Schema Migrationen kann einfacher sein, sondern bringt Belastung Anwendungsschicht auf Änderungen in Datenmodell anzupassen.
  • Je nachdem, welche Art von Anwendung, die Sie bauen kann NoSQL ein wenig einfacher, da Sie eine weniger Zeitplanung für Ihr Datenmodell müssen machen die ersten Schritte. Zum Sammeln von Daten mit hoher Geschwindigkeit und variablen Daten kann NoSQL großartig sein. Aber für die Modellierung einer ERP-Anwendung mag es nicht so gut passen.

Es gibt keine Splitter Kugel hier mit NoSQL Es gibt viele verschiedene NoSQL Motoren und haben jeweils ihre eigene besondere Spezialität und Vor- und Nachteile. Im Allgemeinen sollten Sie NoSQL als ergänzende Datenspeicher-Engine und nicht als vollständigen Ersatz für RDBMS/SQL betrachten, dies hängt jedoch von Ihrer Anwendung und der funktionalen Umgebung ab.

Relationale Datenbanken entwickeln sich auch mit neuen Hybrid-NoSQL wie MySQL-Motoren kommen aus und Produkte wie NuoDB und VoltDB (was einige NewSQL nennen) versucht RDBMS in die Cloud zu überbrücken und die verteilte Architektur Reich.