Was ist NoSql? Was ist der Zweck von NoSql? Wo kann ich auf NoSql genügend Material bekommen?

8

Wie verhält es sich mit Mysql? Ich suche sogar Bücher und Materialien, wenn jemand Titel des Buches oder Links erwähnt ....

Ich plane, NoSql zu lernen ... also bitte schlagen Sie mir einige Tipps vor, welche Dinge müssen wir vorher lernen?

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

Gibt es irgendwelche Tools, um die MySql-Datenbank in die NoSql-Datenbank zu migrieren? Wenn jemand das Verfahren oder das dazugehörige Material kennt, bitte hilf mir .....

Vielen Dank im Voraus ...

    
Bhargav 11.11.2010, 13:01
quelle

4 Antworten

13

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

Diese Engines stellen normalerweise eine Abfragesprache zur Verfügung, die eine Teilmenge von dem bietet, was SQL tun kann, plus einige zusätzliche Funktionen. Welche Teilmenge von SQL verfügbar ist, hängt vollständig von der Engine ab, obwohl es ziemlich häufig ist, dass JOIN , TRANSACTION , LIMIT und nicht indizierte WHERE nicht unterstützt werden.

Als Konsequenz erfordert die Portierung vorhandener Software von einer Standard-SQL-Datenbank-Engine auf eine NoSQL-Engine ein Neuschreiben von allen Abfragen in dieser Software und wird wahrscheinlich auch einige Änderungen in der Anwendungslogik erfordern selbst (ein klassisches Beispiel ist, dass "Seite 11 von 25 anzeigen" in CouchDB nicht effizient ausgeführt werden kann, weil% cos_de% support fehlt).

Wikipedia hat eine schöne Liste von 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 einer bestimmten NoSQL-Engine profitiert und keine Funktionen verwendet, die in dieser Engine nicht verfügbar sind, eine Migration stattfindet kommt in Frage. Es ist ziemlich selten, dass eine gesamte existierende SQL-gesteuerte Anwendung in ihrer Ganzheitlichkeit auf NoSQL verschoben wird.

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

(Schließlich hat MySQL keine Beziehung zu NoSQL. MySQL ist nur ein Name für eine relationale Datenbankimplementierung. Da es SQL implementiert, ist es natürlich keine NoSQL-Datenbank.)

    
Victor Nicollet 11.11.2010, 13:18
quelle
10

NoSQL vs SQL geht es wirklich um 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 in der Regel 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. Jede NoSQL hat ihre eigene API und einige der NoSQL-Anbieter haben eine begrenzte Ad-hoc-Abfragefunktion.
  •   
  • Weniger strukturiertes und starres Datenmodell. NoSQL erzwingt in der Regel mehr Verantwortung auf der Anwendungsebene und dem Entwickler, um das Schema zu definieren - aka "Schema beim Lesen" anstelle von "Schreiben".
  •   

Was NoSQL erreicht:

  
  • Leichteres Shard und Verteilung der Daten über einen Cluster (aufgrund dessen, was Sie oben aufgeben). Dies kann zu einer wesentlich höheren Lese- / Schreibskalierbarkeit führen.
  •   
  • Kann auf billigerer Hardware (und in der Cloud) eingesetzt werden und Sozialität wirtschaftlicher entwickeln.
  •   
  • Benötigen Sie nicht so viel Unterstützung von vorn DBA. Aber wenn Ihr NoSQL groß wird, werden Sie sehr viel Zeit mit Admin-Arbeit verbringen.
  •   
  • NoSQL hat ein lockereres Datenmodell, so dass Sie spärlichere Datensätze und variable Datensätze in Dokumenten oder Name / Wert-Spaltensätzen organisieren können. Datenmodelle sind nicht so fest verdrahtet.
  •   
  • Schema-Migrationen können einfacher sein, belasten jedoch die Anwendungsebene, um sie an Änderungen im Datenmodell anzupassen.
  •   
  • Abhängig von der Art der Anwendung, die Sie erstellen, kann NoSQL den Einstieg ein wenig erleichtern, da Sie weniger Zeit für Ihr Datenmodell planen müssen. Zum Sammeln von Daten mit hoher Geschwindigkeit und variablen Daten kann NoSQL großartig sein. Aber für die Modellierung einer ERP-Anwendung kann es nicht so gut passen.
  •   

Mit NoSQL gibt es hier kein Splitter-Geschoss. Es gibt viele verschiedene NoSQL-Engines, und jeder hat sein eigenes besonderes Spezialgebiet und seine Vor- und Nachteile. Im Allgemeinen sollten Sie NoSQL als ergänzende Datenspeicher-Engine und nicht als vollständigen Ersatz von RDBMS / SQL betrachten, dies hängt jedoch von Ihrer Anwendung und Ihrer funktionalen Umgebung ab.

Relationale Datenbanken entwickeln sich auch mit neuen hybriden NoSQL-ähnlichen MySQL-Engines und Produkten wie NuoDB und VoltDB (was einige NewSQL nennen), die versuchen, RDBMS in die Wolke und der verteilte Architekturbereich.

    
Sam Taha 08.03.2013 15:23
quelle
2

NoSql ist eine Klasse von Datenbankverwaltungssystemen, die sich von traditionellen relationalen Datenbanken (wie MySql) unterscheidet, da Daten nicht mit festen Tabellenschemas gespeichert werden. Hauptsächlich dient es als Datenbanksystem für riesige Web-Anwendungen (Amazon, Google, Facebook, usw.), wo sie herkömmliche relationale Datenbanken übertreffen.

Eine gute Informationsquelle: NOSQL-Datenbanken

    
AlejandroR 09.08.2011 20:48
quelle
0

Grundsätzlich sind NoSQL-Datenbankverwaltungssysteme nützlich, wenn Sie mit einer großen Datenmenge arbeiten, wenn die Art der Daten kein relationales Modell erfordert. 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.

Anwendungsbeispiele könnten sein, Millionen von Schlüssel / Wert-Paaren in einem oder wenigen assoziativen Arrays zu speichern oder Millionen von Datensätzen zu speichern. 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.

    
Goran Krgovic 17.01.2013 15:08
quelle

Tags und Links