NoSql vs Base de datos relacional

Recientemente, NoSQL ha ganado una inmensa popularidad.

¿Cuáles son las ventajas de NoSQL sobre los RDBMS tradicionales?

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 Structured Query Language (SQL).

Esos no se han ido.

Es un error pensar en esto como un argumento de ambos. 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.

Quizás leer esto ayudará.

La historia parece ser así:

  1. Google necesita una capa de almacenamiento para su índice de búsqueda invertida. 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 Google acaba de hacer.

  3. El teorema de Brewers CAP está probado. Todos los sistemas de uso RDBMS son sistemas de CA. La gente comienza a jugar con los sistemas CP y AP también. Las tiendas K / V son muchísimo más simples, por lo que son el principal vehículo para la investigación.

  4. Los sistemas de software como un 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 se puede relacionar 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 – Clave / Valor

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

  1. Admite datos semiestructurados y datos volátiles
  2. No tiene esquema
  3. El rendimiento de lectura / escritura es muy alto
  4. La escalabilidad horizontal se puede lograr fácilmente
  5. Admitirá Bigdata en volúmenes de Terra Bytes y Peta Bytes
  6. Proporciona un buen soporte para herramientas analíticas además de Bigdata
  7. Se puede alojar en máquinas de hardware más baratas
  8. La opción de almacenamiento en memoria caché está disponible para boost el rendimiento de las consultas
  9. Ciclos de vida de desarrollo más rápidos para desarrolladores

EDITAR:

Para responder “por qué RDBMS no puede escalar”, consulte RDBMS Overheads pdf escrito por Stavros Harizopoulos, Daniel J. Abadi, Samuel Madden y Michael Stonebraker.

RDBMS tienen desafíos en el manejo de grandes volúmenes de datos de bytes Terabytes y Peta . Incluso si tiene una matriz redundante de discos independientes / económicos (RAID) y trituración de datos, no se adapta bien para un gran volumen de datos. Usted necesita hardware muy caro.

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

Bloqueo : el locking tradicional en dos fases representa una sobrecarga considerable ya que todos los accesos a las estructuras de la base de datos se rigen por una entidad separada, el Administrador de lockings.

Enclavamiento : en una base de datos de subprocesos múltiples, muchas estructuras de datos deben estar retenidas antes de que se pueda acceder a ellas. Eliminar esta característica e ir a un enfoque de un único subproceso tiene un impacto notable en el rendimiento.

Gestión de búfer : un sistema de base de datos de memoria principal no necesita acceder a las páginas a través de un grupo de búferes, eliminando un nivel de indirección en cada acceso de registro.

Esto no significa que tengamos que usar NoSQL sobre SQL.

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

  1. Transacciones con propiedades ACID – Atomicidad, consistencia, aislamiento y durabilidad
  2. Adherencia al Esquema Fuerte de datos escritos / leídos
  3. Gestión de consultas en tiempo real (en caso de tamaño de datos <1 0 10 Tera bytes)
  4. Ejecución de consultas complejas que involucran cláusulas join & group by

Tenemos que usar RDBMS (SQL) y NoSQL (no solo SQL) según el caso de negocio y los requisitos

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 solo que no hay SQL (o “no solo SQL”), pero eso no significa lo mismo que no 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.

Si necesita procesar una gran cantidad de datos con un alto rendimiento

O

Si el modelo de datos no está predeterminado

entonces

La base de datos NoSQL es una mejor opción.

RDBMS se enfoca más en la relación y NoSQL se enfoca más en el almacenamiento.

Puede considerar el uso de NoSQL cuando su RDBMS scope cuellos de botella. NoSQL hace RDBMS más flexible.

La mayor ventaja de NoSQL sobre 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.

De mongodb.com:

Las bases de datos NoSQL difieren de las tecnologías antiguas y relacionales en cuatro áreas principales:

Modelos de datos : una base de datos NoSQL le permite crear una aplicación sin tener que definir primero el esquema, a diferencia de las bases de datos relacionales, que lo hacen definir su esquema antes de que pueda agregar datos al sistema. Ningún esquema predefinido hace que las bases de datos NoSQL sean mucho más fáciles de actualizar a medida que cambian sus datos y requisitos.

Estructura de datos : las bases de datos relacionales se construyeron en una era donde los datos estaban bastante estructurados y claramente definidos por sus relaciones. Las bases de datos NoSQL están diseñadas para manejar datos no estructurados (por ejemplo, textos, publicaciones en redes sociales, video, correo electrónico) que constituyen gran parte de la información que existe en la actualidad.

Escalado : es mucho más barato escalar una base de datos NoSQL que una base de datos relacional porque puede agregar capacidad escalando a través de servidores básicos baratos. Las bases de datos relacionales, por otro lado, requieren un solo servidor para alojar su base de datos completa. Para escalar, necesita comprar un servidor más grande y más caro.

Modelo de desarrollo : las bases de datos NoSQL son de código abierto, mientras que las bases de datos relacionales suelen ser de código cerrado con tarifas de licencia incorporadas en el uso de su software. Con NoSQL, puede comenzar un proyecto sin grandes inversiones en tarifas de software por adelantado.