2010-11-12 14 views
128

Recientemente NoSQL ha ganado una gran popularidad.NoSql vs Base de datos relacional

¿Cuáles son las ventajas de NoSQL más tradicional RDBMS?

+2

Posible duplicado de [¿Qué es NoSQL, cómo funciona y qué beneficios proporciona?] (Http://stackoverflow.com/questions/1145726/what-is-nosql-how-does-it-work -and-what-benefits-does-it-provide) –

Respuesta

108

No todos los datos son relacionales. Para esas situaciones, NoSQL puede ser útil.

Dicho esto, NoSQL significa "No solo SQL". No tiene la intención de afectar a SQL o suplantarlo.

SQL tiene varias ventajas muy grandes:

  1. fuerte base matemática.
  2. Sintaxis declarativa.
  3. Un lenguaje bien conocido en lenguaje de consulta estructurado (SQL).

Esos no se han ido.

Es un error pensar en esto como un argumento de cualquier tipo. NoSQL es una alternativa que la gente necesita considerar cuando cabe, eso es todo.

Los documentos se pueden almacenar en bases de datos no relacionales, como CouchDB.

Tal vez leyendo this ayudará.

+8

¿Podría dar algunos ejemplos de datos no relacionales? – user496949

+0

Seguro - documentos. – duffymo

+7

¿Los documentos y las imágenes se pueden almacenar dentro de RDBMS también como SQL Server y Oracle? Entonces, ¿por qué NoSQL? – user496949

85

La historia parece tener este aspecto:

  1. Google necesita una capa de almacenamiento para sus invertidas índice de búsqueda. Consideran que un RDBMS tradicional no va a cortarlo. Así que implementan un almacén de datos NoSQL, BigTable en la parte superior de su sistema de archivos GFS. La parte principal es que miles de máquinas de hardware baratas ofrecen la velocidad y la redundancia.

  2. Todos los demás se dan cuenta de lo que acaba de hacer Google.

  3. Cerveceros CAP theorem está comprobado. Todos los sistemas de uso RDBMS son sistemas de CA. La gente comienza a jugar con los sistemas CP y AP también. K/V stores son mucho más simples, por lo que son el principal vehículo para la investigación.

  4. Los sistemas de software como servicio en general no proporcionan una tienda similar a SQL. Por lo tanto, las personas se interesan más en las tiendas de tipo NoSQL.

Creo que gran parte del despegue puede estar relacionado con esta historia. Escala Google tomó algunas ideas nuevas en Google y todos los demás lo siguen porque esta es la única solución que conocen para el problema de escalado en este momento. Por lo tanto, está dispuesto a volver a trabajar todo lo relacionado con la idea de la base de datos distribuida de Google porque es la única forma de escalar más allá de un determinado tamaño.

C - Consistencia
A - Disponibilidad
P - tolerancia de partición
K/V - Key/Valor

+8

¿Qué es CAP, CP, AP, K/V? – knownasilya

+3

Busca el Teorema de CAP en Wikipedia. CA y CP provienen de allí. K/V es la abreviatura de Key/Value, un mapeo finito (distribuido) de llaves en valores. –

+0

¡Gracias por la respuesta rápida! – knownasilya

12

NOSQL no tiene ventajas especiales sobre el modelo de base de datos relacional. NOSQL se ocupa de ciertas limitaciones de los actuales DBMS SQL, pero no implica ninguna capacidad fundamentalmente nueva con respecto a los modelos de datos anteriores.

NOSQL significa que sólo hay SQL (o "no sólo SQL"), pero eso no quiere decir lo mismo que hay relacional. Una base de datos relacional en principio sería una muy buena solución de NOSQL, es solo que ninguno de los conjuntos de productos NOSQL utiliza el modelo relacional.

+4

Parece que en la reciente Conferencia O'Reilly Strata, Mark Madsen ha acuñado una nueva interpretación de "NoSQL" en su [historia de las bases de datos en no-tation] (http://www.nosql-vs-sql.com/ # no-tation) para reemplazar "No solo SQL". Ahora es: "No, SQL" ;-) –

3

Si necesita procesar gran cantidad de datos con un alto rendimiento

O

Si el modelo de datos no está predeterminado

continuación

base de datos NoSQL es una mejor opción.

32

NoSQL es mejor que RDBMS debido a las siguientes razones/properities de NoSQL

  1. Es compatible con los datos semi-estructurados y datos volátiles
  2. Es no tiene un esquema
  3. lectura/escritura de rendimiento es muy alto
  4. Escalabilidad horizontal se puede lograr fácilmente
  5. Compatible con Bigdata en volúmenes de Terra Bytes & Peta Bytes
  6. proporciona un buen soporte para herramientas analíticas en la parte superior de bigdata
  7. pueden alojarse en las máquinas de hardware más barato
  8. en memoria opción de caché está disponible para aumentar el rendimiento de las consultas
  9. más rápidos ciclos de vida de desarrollo de desarrolladores

EDIT:

Para responder a "¿por qué no pueden escalar RDBMS", por favor tome un vistazo a RDBMS Overheads PDF Escrito por Stavros Harizopoulos, Daniel J. Abadi, Samuel Madden y Michael Stonebraker

RDBMS de tener retos en el manejo de grandes volúmenes de datos de terabytes & Peta bytes. Incluso si tiene una matriz redundante de discos independientes/de bajo costo (RAID) & triturado de datos, no se adapta bien para un gran volumen de datos. Usted necesita hardware muy caro.

registro: Montaje de entradas de registro y rastrear todos los cambios en las estructuras de base de datos reduce el rendimiento.El registro puede no ser necesario si la recuperabilidad no es un requisito o si la recuperación se proporciona a través de otros medios (por ejemplo, otros sitios en la red).

bloqueo: tradicional bloqueo de dos fases plantea una sobrecarga considerable ya que todos los accesos a las estructuras de base se rigen por una entidad separada, el administrador de bloqueos.

enclavamiento: En una base de datos multi-hilo, las estructuras de muchos datos tienen que ser bloqueada antes de que puedan acceder a ellos. Eliminar esta característica e ir a un enfoque de un único subproceso tiene un impacto notable en el rendimiento.

gestión de memoria intermedia: Un sistema de base de datos de la memoria principal no necesita tener acceso a las páginas a través de una agrupación de almacenamiento intermedio, la eliminación de un nivel de indirección en cada acceso al registro.

Esto no significa que tengamos que usar NoSQL sobre SQL.

Aún así, RDBMS es mejor que NoSQL por las siguientes razones/propiedades de RDBMS

  1. Transacciones con ACID propiedades - atomicidad, coherencia, aislamiento & Durabilidad
  2. adhesión a Esquema Strong de los datos escritos/leídos
  3. Gestión de consultas en tiempo real (en caso de tamaño de los datos < 1 0 10 Tera bytes)
  4. Ejecución de consultas complejas que implican unirse & grupo de cláusulas

Tenemos que usar RDBMS (SQL) y NoSQL (No sólo SQL) dependiendo del modelo de negocio & requisitos

2

RDBMS enfoque más en relación y NoSQL se centran más en el almacenamiento.

Usted puede considerar el uso de NoSQL cuando su RDBMS alcanza los cuellos de botella. NoSQL hace RDBMS más flexible.

2

La mayor ventaja de NoSQL en RDBMS es la escalabilidad. Las bases de datos NoSQL pueden escalar fácilmente a muchos nodos, pero para RDBMS es muy difícil. La escalabilidad no solo le brinda más espacio de almacenamiento, sino también un rendimiento mucho mayor, ya que muchos hosts trabajan al mismo tiempo.

Cuestiones relacionadas