¿Cuáles son las ventajas del uso de bases de datos NoSQL? He leído mucho acerca de ellos últimamente, pero aún así estoy seguro de por qué me quieren implementar uno, y bajo qué circunstancias me gustaría usar uno.

InformationsquelleAutor smfoote | 2010-09-14

6 Comentarios

  1. 78

    Bases de datos relacionales impone ÁCIDO. Así, van a tener un esquema basado en la transacción de datos orientado a las tiendas. Está comprobado y adecuado para el 99% de las aplicaciones del mundo real. Prácticamente se puede hacer nada con bases de datos relacionales.

    Pero, existen limitaciones en cuanto a velocidad y escala cuando se trata masivo de alta disponibilidad de almacenes de datos. Por ejemplo, Google y Amazon han terabytes de datos almacenados en grandes centros de datos. La consulta y la inserción no es eficiente en estos escenarios debido al bloqueo de esquema//transacción naturaleza de los RDBMs. Esa es la razón por la que han implementado sus propias bases de datos (en realidad, de clave-valor en las tiendas) para el enorme aumento en el rendimiento y la escalabilidad.

    Bases de datos NoSQL han estado alrededor por un largo tiempo – sólo el término es nuevo. Algunos ejemplos son el gráfico, objeto, una columna XML y bases de datos documentales.

    Para tu 2ª pregunta: Está bien usar ambos en el mismo sitio?

    ¿Por qué no? Tanto sirve para diferentes propósitos derecho?

    • No creo que el ÁCIDO es exclusivo para las bases de datos relacionales. Usted puede tener la durabilidad de las garantías, las transacciones, la vista de la coherencia en las bases de datos no relacionales.
    • ¿podría dar un ejemplo de una clave-valor en el tipo de almacén de base de datos? Gracias.
    • algunos ejemplos son redis, leveldb y riak.. hay toneladas de todo, usted puede buscar en google
  2. 71

    NoSQL soluciones son generalmente destinados a resolver un problema que las bases de datos relacionales no están bien adaptados para, demasiado caro para el uso (como Oracle) o requerir la implementación de algo que rompe con la naturaleza relacional de la db de todos modos.

    Ventajas suelen ser específicas para su uso, pero a menos que tenga algún tipo de problema de modelado de sus datos en un RDBMS veo ninguna razón por la que usted elija NoSQL.

    Que yo mismo uso de MongoDB y Riak para problemas específicos donde un RDBMS no es una solución viable, para todas las otras cosas que yo uso MySQL (o SQLite para las pruebas).

    Si necesidad una NoSQL db normalmente saben, las posibles razones son:

    • cliente quiere que el 99,999% de disponibilidad en
      un alto tráfico de sitio.
    • sus datos hace
      no hay sentido en SQL, te encuentras a ti mismo
      hacer múltiples consultas de combinación para
      el acceso a alguna parte de la información.
    • están rompiendo el relacional
      modelo, usted tiene que almacenan los datos Clob
      sin normalizar los datos y generar
      externa de los índices de búsqueda de los datos.

    Si usted no necesita una solución NoSQL tenga en cuenta que estas soluciones no estaban pensados como sustitutos de un RDBMS sino como alternativas donde el ex falla y lo que es más importante, que son relativamente nuevas, como tal, ellos todavía tienen un montón de errores y características que faltan.

    Ah, y respecto a la segunda cuestión que está perfectamente bien para el uso de cualquier tecnología en conjunto con otro, así que para ser completa desde mi experiencia MongoDB y MySQL funcionan bien en conjunto, siempre y cuando no estén en la misma máquina

    • Gracias por la respuesta. Sus ejemplos de cuándo usar NoSQL son vagos en el mejor. Yo estaba esperando por un caso de uso para que yo pueda decidir si alguno de mis datos sería mejor almacenan en una base de datos NoSQL.
    • Trato de no responder a la misma pregunta dos veces, mira mi anterior respuesta a semejante pregunta stackoverflow.com/questions/3621415/…
    • Estoy de acuerdo con Asaf la gran respuesta, realmente sólo hay un par de situaciones en las que usted debe necesitar un NoSQL más de un RDBMS. Veo NoSQL más como una copia de seguridad db o «add-on db» que una de las principales db. No he visto un buen sistema, sin embargo, donde el núcleo db fue una NoSQL.
  3. 37

    Martin Fowler tiene una excelente video que da una buena explicación de las bases de datos NoSQL. El enlace va directamente a sus razones para el uso de ellos, pero todo el vídeo contiene buena información.

    1. Tiene grandes cantidades de datos – especialmente si usted no puede caber todo en un servidor físico como NoSQL fue diseñado a escala bien.

    2. Objeto-relacional desajuste de impedancia – Su dominio de objetos que no encajan bien en un relaitional esquema de base de datos. NoSQL permite conservar sus datos como documentos (o gráficos) que pueden mapa mucho más de cerca a su modelo de datos.

  4. 14

    NoSQL es que el sistema de base de datos, donde los datos se organizan en el documento (MongoDB), par clave-valor (MemCache, Redis), gráfico de la estructura de la forma(Neo4J).

    Tal vez aquí están las posibles preguntas y respuestas para «Cuándo ir para NoSQL»:

    1. Requieren de esquemas flexibles o de acuerdo con el árbol de datos?

      En general, en el desarrollo ágil de empezar el diseño del sistema sin conocer todos los requisitos en la inicial, donde más tarde a lo largo del desarrollo de la base de datos del sistema puede necesitar adaptarse a los frecuentes cambios de diseño, mostrando MVP (Mínimo producto Viable).
      O usted está tratando con un esquema de datos que es de naturaleza dinámica.
      por ejemplo, los registros del Sistema, muy precisa ejemplo es de AWS cloudwatch logs.

    2. Conjunto de datos es de gran/grande?

      Sí base de datos NoSQL son el mejor candidato para aplicaciones donde la base de datos necesita para gestionar millones o incluso miles de millones de registros sin comprometer más de rendimiento.

    3. Trade-off entre el incremento de más de consistencia

      A diferencia de RDMS, base de datos NoSQL pueden perder datos pequeños aquí y allá(Nota: la probabilidad es .x%), pero es fácil de escala en términos de rendimiento.
      Ejemplo: Esto puede ser bueno para el almacenamiento de las personas que están en línea en la aplicación de mensajería instantánea, fichas en la base de datos, el registro de tráfico en el sitio web stats.

    4. La Realización De Geolocalización Operaciones:
      MongoDB hash ricos apoyo para hacer GeoQuerying & Geolocalización de las operaciones.
      Realmente me encantó esta característica de MongoDB.

    En pocas palabras, MongoDB es ideal para aplicaciones donde se puede almacenar dinámico estructurado de datos a gran escala.

    • «Base de datos NoSQL pueden perder datos de aquí y de allá» WTF!? Ahora, ¿quién en su sano juicio quiere correr el riesgo de que? Este debe ser falsa.
    • Sí, puede ser falsa. Por eso dije *tal vez. Entonces, ¿por qué no podemos utilizar NpSQL DB para operaciones de transacción?
  5. 4

    Algunas de las cosas esenciales a la falta de información para responder a la pregunta: ¿Qué casos de uso de la base de datos debe ser capaz de cubrir? Hacer análisis complejos tienen que ser realizadas a partir de los datos existentes (OLAP) o que la aplicación tiene que ser capaz de procesar muchas transacciones (OLTP)? ¿Cuál es la estructura de datos? Que está lejos de ser el final de la pregunta de tiempo.

    En mi opinión, es un error hacer de la tecnología decisiones sobre la base de la negrita palabras de moda, sin saber exactamente lo que está detrás de ellos. NoSQL es a menudo elogiado por su escalabilidad. Pero también tienes que saber que el escalado horizontal (a lo largo de varios nodos) también tiene su precio y no es gratis. Entonces usted tiene que tratar con cuestiones como la la consistencia final y definir cómo resolver conflictos de datos si no pueden resolverse en el nivel de base de datos. Sin embargo, esto se aplica a todas las bases de datos distribuidas sistemas.

    La alegría de los desarrolladores con la palabra «esquema de menos» en NoSQL es que al principio también muy grande. Esta palabra de moda rápidamente desencantado después de un análisis técnico, ya que correctamente no requiere de un esquema a la hora de escribir, pero entra en juego cuando la lectura. Es por eso que correctamente debe ser «esquema de leer». Puede ser tentador para ser capaz de escribir los datos en la propia discreción. Pero ¿cómo lidiar con la situación, si hay datos existentes, pero la nueva versión de la aplicación espera un esquema diferente?

    El documento modelo (como en MongoDB, por ejemplo) es no apto los modelos de datos donde hay muchas relaciones entre los datos. Las combinaciones que se han realizado en el nivel de aplicación, que es un esfuerzo adicional y por qué debo programa de las cosas que la base de datos debe hacer.

    Si usted hace el argumento de que Google y Amazon han desarrollado sus propias bases de datos, pues los RDBMS ya no puede manejar la avalancha de datos, solo se puede decir: Que no son de Google y Amazon. Estas empresas son la punta de lanza, algunos 0,01% de los escenarios donde las bases de datos tradicionales no son adecuados, pero para el resto del mundo son.

    Lo que no es insignificante: SQL ha sido de alrededor de más de 40 años y millones de horas de desarrollo se han ido en los sistemas grandes como Oracle o Microsoft SQL. Esto tiene que ser alcanzado por algunas nuevas bases de datos. A veces también es más fácil encontrar una administración de SQL que alguien de MongoDB. Lo que nos lleva a la pregunta de mantenimiento y gestión. Un tema que no es exactamente sexy, pero que es una parte de la tecnología de la decisión.

    • parece correcto, pero yo no creo que sea justo comparar el tiempo que ha pasado si ese fuera el caso, todo el mundo estaría utilizando el lenguaje ensamblador en todas sus aplicaciones más bien diría que siempre viene abajo a la aplicación y el caso de uso
  6. 3

    Me encontré con esta pregunta, mientras que en busca de convencer a los motivos para apartarse de RDBMS diseño.

    Hay una gran post por Julian Castaño oscuro, que arroja luces sobre las limitaciones de los sistemas distribuidos. El concepto se denomina cerveza CAP Teorema, que en resumen dice:

    Los tres requisitos de los sistemas distribuidos son : Consistencia, Disponibilidad y tolerancia a la Partición de la PAC (en corto). Pero sólo puede tener dos de ellos en un momento.

    Y esto es lo que he resumido para mí:

    Es mejor ir a por NoSQL si la Consistencia es lo que están sacrificando.

Dejar respuesta

Please enter your comment!
Please enter your name here