Nosql
Existen varios problemas con los RDBMS actuales que pueden suponer una seria limitante para la construcción de aplicaciones, si bien la mayoría de las aplicaciones se centran mucho en las características del modelo relacional, para otras aplicaciones (las cuales se alejen un poco del esquema típico) se empiecen a notar distintos problemas inherentes al modelo.Estos problemas son en gran medida el motivo por el que surgió el movimiento NoSQL.
Problema 1: Leer datos es costoso
En el modelo relacional los datos se representan mediante conjuntos (tablas) relacionados entre sí. Realizar una consulta al modelo relacional (como todos sabemos), implica juntar grandes conjuntos de datos con operaciones algebraicas (como el producto cartesiano), y luegofiltrar todo el conjunto resultante lo cual lleva una gran complejidad computacional.
Problema 2: Transaccionalidad innecesaria
El objetivo de las transacciones es asegurar la integridad de los datos, aunque con este esquema se dejen de lado otros aspectos como la performance. A veces estas transacciones no son necesarias completamente. Podemos pensar en modelos de negocio en los que lastransacciones sean necesarias, y otros que no, en ese caso, se podrían dejar de lado los motores relacionales si se encontrara una solución más adecuada, o no?
Problema 3: Escalabilidad
El gran problema de las bases relacionales es la escalabilidad. Estas fueron pensadas para correr en un solo servidor con mucha potencia, como mucho tener replicaciones y balanceo de carga.
Estas bases se basan en laidea de escalabilidad vertical, o sea, cuando el servidor nos queda chico lo hacemos más potente para escalar (mas CPU, RAM, disco…). El costo de este método aumenta exponencialmente y tiene un límite, llegará un punto en que no podamos seguir escalando.
La escalabilidad horizontal por otra parte, se basa en poner más servidores de forma paralela y tener la base distribuida entre todos esosservidores. En un RDBMS partir la base en muchos servidores trae muchos problemas de performance, ya que se rompe la integridad del modelo al estar dividido y hacer una consulta puede involucrar traer datos de todos los servidores con el costo que esto implica.
Problema 4: Representación del modelo en una RDBMS
Si bien es posible representar la mayoría de modelos usando el modelo relacional, no siempreresulta la mejor opción.
Actualmente la mayoría programamos en el paradigma orientado a objetos, lo que ya de entrada involucra el problema de traducir los objetos a un modelo relacional. Existen herramientas ORM (Object Relational Mapping) que ayudan a facilitar esta traducción. Porque es necesario siempre un mapeo entre la aplicación y la base? Por qué no podríamos persistir nuestra aplicaciónen su paradigma nativo?
NOT ONLY SQL
Por supuesto que NoSQL no desplazará a las bases relacionales ni mucho menos, pero por ahí presenta algunas alternativas para aplicaciones específicas donde las relacionales no sean la mejor opción.
NO SQL
con el término NoSQL nos referimos a una multitud de bases de datos que intentan solventar las limitaciones que el modelo relacional se encuentra enentornos de almacenamiento masivo de datos, y concretamente en las que tiene en el momento de escalar, donde es necesario disponer de servidores muy potentes y de balanceo de carga.
Concretamente, las bases de datos NoSQL difieren con las bases de datos tradicionales (sistemas OLTP relacionales) en los siguientes puntos:
No usan SQL como lenguaje principal de consultas: una gran parte de lasbases de datos NoSQL evitan este lenguaje estándar, o simplemente lo utilizan como lenguaje secundario o de apoyo. Por ejemplo, Cassandra utiliza CQL, MongoDB utiliza JSON, yBigTable utiliza GQL, una versión propia de Google basada en SQL. Por su parte, las bases de datos multidimensionales suelen utilizar MDX.
No requieren estructuras fijas como tablas para almacenar los datos: se trata de no...
Regístrate para leer el documento completo.