Recientemente NoSQL ha ganado una inmensa popularidad.
¿Cuáles son las ventajas de NoSQL sobre RDBMS tradicional ?
database
database-design
nosql
relational-database
rdbms
user496949
fuente
fuente
Respuestas:
No todos los datos son relacionales. Para esas situaciones, NoSQL puede ser útil.
Dicho esto, NoSQL significa "No solo SQL". No está destinado a eliminar SQL o suplantarlo.
SQL tiene varias ventajas muy grandes:
Esos no se han ido.
Es un error pensar en esto como un argumento o uno u otro. NoSQL es una alternativa que las personas deben considerar cuando encaja, eso es todo.
Los documentos pueden almacenarse en bases de datos no relacionales, como CouchDB.
Quizás leer esto ayude.
fuente
SELECT blob FROM images WHERE blob CONTAINS('red car')
. Entonces, si bien puede almacenar los datos sin procesar en la base de datos, no puede buscarlos sin adjuntar metadatos. Los módulos de búsqueda de texto completo en los sistemas RDBMS cierran parte de la brecha semi-estructural.La historia parece ser así:
Google necesita una capa de almacenamiento para su índice de búsqueda invertido. Calculan que un RDBMS tradicional no lo va a cortar. Entonces 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 de productos básicos baratos proporcionan la velocidad y la redundancia.
Todos los demás se dan cuenta de lo que Google acaba de hacer.
El teorema de Brewers CAP está probado. Todos los sistemas de uso RDBMS son sistemas CA. La gente también comienza a jugar con los sistemas CP y AP. Las tiendas K / V son mucho más simples, por lo que son el vehículo principal para la investigación.
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. Scaling Google tomó algunas ideas nuevas en Google y todos los demás siguen su ejemplo porque esta es la única solución que conocen para el problema de escalado en este momento. Por lo tanto, está dispuesto a modificar todo lo relacionado con la idea de base de datos distribuida de Google porque es la única forma de escalar más allá de un cierto tamaño.
C - Consistencia
A - Disponibilidad
P - Tolerancia de partición
K / V - Clave / Valor
fuente
NoSQL es mejor que RDBMS debido a las siguientes razones / propiedades de NoSQL
EDITAR:
Para responder "por qué RDBMS no puede escalar", eche un vistazo al PDF de gastos generales de RDBMS escrito por Stavros Harizopoulos, Daniel J. Abadi, Samuel Madden y Michael Stonebraker
Los RDBMS tienen desafíos para manejar 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 escala bien para un gran volumen de datos. Requiere hardware muy costoso.
Registro : reunir registros de registro y rastrear todos los cambios en las estructuras de la base de datos reduce el rendimiento. El registro puede no ser necesario si la capacidad de recuperación no es un requisito o si la capacidad de recuperación se proporciona a través de otros medios (por ejemplo, otros sitios en la red).
Bloqueo : el bloqueo tradicional de dos fases plantea 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 bloqueo.
Bloqueo : en una base de datos de subprocesos múltiples, muchas estructuras de datos deben bloquearse antes de poder acceder a ellas. Eliminar esta función e ir a un enfoque de subproceso único 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 a registros.
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
Tenemos que usar RDBMS (SQL) y NoSQL (no solo SQL) dependiendo del caso de negocio y los requisitos
fuente
NOSQL no tiene ventajas especiales sobre el modelo de base de datos relacional. NOSQL aborda ciertas limitaciones de los DBMS SQL actuales, pero no implica ninguna capacidad fundamentalmente nueva sobre los modelos de datos anteriores.
NOSQL significa solo no 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 NOSQL, es solo que ninguno de los productos actuales de NOSQL usa el modelo relacional.
fuente
RDBMS se enfoca más en la relación y NoSQL se enfoca más en el almacenamiento.
Puede considerar usar NoSQL cuando su RDBMS alcance cuellos de botella. NoSQL hace que RDBMS sea más flexible.
fuente
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 funcionan al mismo tiempo.
fuente
Si necesita procesar una gran cantidad de datos con alto rendimiento
O
Si el modelo de datos no está predeterminado
luego
La base de datos NoSQL es una mejor opción.
fuente
Simplemente agregue a toda la información dada arriba
Ventajas de NoSql:
1) NoSQL es bueno si desea estar listo para la producción rápidamente debido a su soporte para arquitectura sin esquema y orientada a objetos.
2) NoSql db's son eventualmente consistentes, lo que en un lenguaje simple significa que no proporcionarán ningún bloqueo en los datos (documentos) como en el caso de RDBMS y lo que significa que la última instantánea de datos siempre está disponible y, por lo tanto, aumenta la latencia de su aplicación .
3) Utiliza la estrategia MVCC (control de concurrencia de vista múltiple) para mantener y crear instantáneas de datos (documentos).
4) Si desea tener datos indexados, puede crear una vista que indexará automáticamente los datos según la definición de vista que proporcione.
Desventajas de NoSql:
1) Definitivamente no es adecuado para aplicaciones transaccionales grandes y pesadas, ya que eventualmente es consistente y no admite propiedades ACID.
2) También crea múltiples instantáneas (revisiones) de sus datos (documentos) ya que utiliza la metodología MVCC para el control de concurrencia, como resultado de que el espacio se consume más rápido que antes, lo que hace que la compactación y la reindexación sean más frecuentes y disminuirá la velocidad de su respuesta de la aplicación a medida que crecen los datos y la transacción en su aplicación. Para contrarrestar eso, puede escalar horizontalmente los nodos pero, de nuevo, será un costo mayor en comparación con la base de datos SQL.
fuente
De mongodb.com :
fuente