2010-11-11 13 views
8

¿Cómo se relaciona con Mysql? Estoy buscando incluso libros y material si alguien menciona los títulos del libro o enlaces ....¿Qué es NoSql? ¿Cuál es el Propósito de NoSql? ¿Dónde puedo obtener material suficiente sobre NoSql?

Estoy planeando aprender NoSql ... así que por favor sugiera algunos consejos de que son las cosas que necesitamos antes de ¿aprender?

¿Alguna vez puede explicar claramente la diferencia entre usar MySql y NoSql?

¿Hay alguna herramienta para migrar la base de datos MySql a la base de datos NoSql? Si alguien conoce el procedimiento o material relacionado por favor me ayude .....

Gracias por adelantado ...

+6

Si no sabe de qué se trata, ¿por qué quiere migrar? – skaffman

+1

es como tener el beneficio de una base de datos sin tener que usar SQL, ADO o cualquiera de esas cosas - http://thedailywtf.com/Articles/The_Storray_Engine.aspx – Tarski

Respuesta

13

NoSQL es una categoría de motores de bases de datos que no son compatibles con el SQL (Structured Query Language) en Para lograr características de rendimiento o confiabilidad que son incompatibles con la flexibilidad de SQL.

Estos motores suelen proporcionar un lenguaje de consulta que proporciona un subconjunto de lo que SQL puede hacer, además de algunas características adicionales. El subconjunto de SQL disponible depende completamente del motor, aunque es bastante común que JOIN, TRANSACTION, LIMIT y WHERE no indexados no sean compatibles.

Como consecuencia, hacer un software existente de un motor de base de datos SQL estándar para un motor de NoSQL requerirá una reescritura de todo las consultas en que el software, y probablemente también requieren algunos cambios en la lógica de la aplicación en sí (un clásico por ejemplo, "mostrar página 11 de 25" es imposible de realizar de manera eficiente en CouchDB, debido a la falta de compatibilidad con LIMIT x OFFSET y).

Wikipedia tiene un bonito list of NoSQL engines.

El consenso general sobre NoSQL parece ser que si alguna parte específica de su software se beneficiaría del rendimiento mejorado, la confiabilidad o la escalabilidad permitidas por un motor NoSQL específico, y no utiliza ninguna característica no disponible en ese motor, entonces una la migración puede ser considerada. Es bastante raro que una aplicación existente impulsada por SQL se mueva en su integralidad a NoSQL.

Algunos motores NoSQL tienen funciones automáticas de importación desde SQL, pero el uso de NoSQL impone algunas restricciones de arquitectura que dependen de lo que esté haciendo con los datos, por lo que un procedimiento importado desde SQL a mano será el única solución independientemente de los importadores existentes.

(Por último, MySQL no tiene relación con NoSQL. MySQL es sólo un nombre de una aplicación de base de datos relacional. Ya que implementa SQL, que por supuesto no es una base de datos NoSQL.)

+0

Gracias por su valioso tiempo, brindando una idea acerca de NoSql. Si es posible, ¿me puede guiar algunos libros/videos o artículos/material para obtener más información y mejorar mis habilidades? – Bhargav

2

NoSQL es una clase de base de datos sistema de gestión diferente de las bases de datos relacionales tradicionales (como MySql) en que los datos no se almacenan usando esquemas de tablas fijas. Principalmente su propósito es servir como sistema de base de datos para grandes aplicaciones a escala web (Amazon, Google, Facebook, etc.) donde superan las bases de datos relacionales tradicionales.

Una buena fuente de información: NOSQL Databases

0

Básicamente, los sistemas de gestión de bases de datos NoSQL son útiles cuando se trabaja con una gran cantidad de datos cuando la naturaleza de los datos no requiere un modelo relacional. Los datos pueden ser estructurados, pero NoSQL se usa cuando lo que realmente importa es la capacidad de almacenar y recuperar grandes cantidades de datos, no las relaciones entre los elementos.

Los ejemplos de uso pueden ser almacenar millones de pares clave-valor en una o algunas matrices asociativas o almacenar millones de registros de datos. Esta organización es particularmente útil para análisis estadísticos o en tiempo real de listas de elementos en crecimiento, como publicaciones de Twitter o registros de servidores de Internet de un gran grupo de usuarios.

10

NoSQL vs SQL es realmente acerca de las concesiones.
NoSQL tiene ventajas sobre las bases de datos SQL tradicionales porque renuncian a ciertas características RDBMS para obtener otras características de rendimiento, escalabilidad y facilidad de uso del desarrollador.

Lo NoSQL se da por vencido (varía según el producto NoSQL):

  • relaciones entre las entidades (como tablas). Por lo tanto, generalmente no puede "unir" tablas o modelos en una consulta.
  • Transacciones ACID limitadas. El nivel de consistencia de lectura y capacidades de escritura/compromiso atómico en una o más tablas/entidades varía según el motor NoSQL.
  • No hay un lenguaje de dominio estándar como SQL para expresar consultas ad-hoc. Cada NoSQL tiene su propia API y algunos de los proveedores de NoSQL tienen capacidad de consulta ad-hoc limitada.
  • Modelo de datos menos estructurado y rígido. NoSQL normalmente obliga/otorga más responsabilidad en la capa de aplicación y al desarrollador para definir el esquema, también conocido como "esquema en lectura" en lugar de en escritura.

¿Qué ganancias NoSQL:

  • Más fácil de fragmentar y distribuir los datos a través de un cluster (debido a lo que le está dando más arriba). Esto puede dar una escalabilidad de lectura/escritura mucho mayor.
  • Puede implementarse en hardware básico más barato (y en la nube) y aumentar la sociabilidad de forma más económica.
  • No necesita tanto soporte tipo DBA por adelantado. Pero si su NoSQL se agranda, pasará mucho tiempo haciendo trabajo de administración independientemente.
  • NoSQL tiene un modelo de datos más flexible para que pueda tener conjuntos de datos más espaciados y conjuntos de datos variables organizados en documentos o conjuntos de columnas de nombre/valor. Los modelos de datos no están tan cableados.
  • Las migraciones de esquemas pueden ser más sencillas pero imponen una carga en la capa de aplicación para ajustarse a los cambios en el modelo de datos.
  • Dependiendo del tipo de aplicación que esté creando, NoSQL puede facilitar un poco la tarea de empezar, ya que necesita menos tiempo para planificar su modelo de datos. Entonces, para recolectar datos variables y de alta velocidad, NoSQL puede ser excelente. Pero para modelar una aplicación ERP, puede no ser una gran opción.

No hay una varita astilla aquí con NoSQL Hay muchos motores NoSQL diferentes y cada uno tiene su propia especialidad y pros y contras en particular. En general, debería pensar en NoSQL como un motor de almacenamiento de datos complementario y no como un reemplazo completo de RDBMS/SQL, pero esto dependerá de su aplicación y del entorno funcional.

Bases de datos relacionales también están evolucionando con nuevos motores híbridos como NoSQL MySQL saliendo y productos como NuoDB y VoltDB (lo que algunos llaman NewSQL) tratando de tender un puente sobre RDBMS en la nube y el dominio distribuido arquitectura.