Tutorial de NoSQL: qué es, tipos de bases de datos NoSQL y ejemplos
¿Qué es NoSQL?
NoSQL La base de datos es un sistema de gestión de datos no relacional que no requiere un esquema fijo. Evita uniones y es fácil de escalar. El objetivo principal de utilizar una base de datos NoSQL es almacenar datos distribuidos con enormes necesidades de almacenamiento de datos. NoSQL se utiliza para Big data y aplicaciones web en tiempo real. Por ejemplo, empresas como Twitter, Facebook y Google recopilan terabytes de datos de usuarios todos los días.
Base de datos NoSQL significa "No sólo SQL" o "No SQL". Aunque un término mejor sería "NoREL", NoSQL se hizo popular. Carl Strozz introdujo el concepto NoSQL en 1998.
El RDBMS tradicional utiliza la sintaxis SQL para almacenar y recuperar datos para obtener más información. En cambio, un sistema de base de datos NoSQL abarca una amplia gama de tecnologías de bases de datos que pueden almacenar datos estructurados, semiestructurados, no estructurados y polimórficos. Entendamos acerca de NoSQL con un diagrama en este tutorial de base de datos NoSQL:
¿Por qué NoSQL?
El concepto de bases de datos NoSQL se hizo popular entre gigantes de Internet como Google, Facebook, Amazon, etc. que manejan grandes volúmenes de datos. El tiempo de respuesta del sistema se vuelve lento cuando utiliza RDBMS para volúmenes masivos de datos.
Para resolver este problema, podríamos "ampliar" nuestros sistemas actualizando nuestro hardware existente. Este proceso es costoso.
La alternativa para este problema es distribuir la carga de la base de datos en varios hosts cada vez que aumenta la carga. Este método se conoce como "ampliación horizontal".
La base de datos NoSQL no es relacional, por lo que se escala mejor que las bases de datos relacionales, ya que están diseñadas teniendo en cuenta las aplicaciones web.
Breve historia de las bases de datos NoSQL
- 1998- Carlo Strozzi utiliza el término NoSQL para su base de datos relacional ligera y de código abierto.
- 2000- Base de datos de gráficos NeoSe lanza 4j
- 2004- Se lanza Google BigTable
- 2005- CouchDB es lanzado
- 2007- El trabajo de investigación sobre Amazon Se lanza el Dinamo
- 2008- Facebook abre fuentes del Cassandra Antecedentes
- 2009- Se reintrodujo el término NoSQL
Características de NoSQL
No relacional
- Las bases de datos NoSQL nunca siguen el modelo relacional
- Nunca proporcione tablas con registros planos de columnas fijas
- Trabajar con agregados autónomos o BLOB
- No requiere mapeo relacional de objetos ni normalización de datos.
- Sin funciones complejas como lenguajes de consulta, planificadores de consultas, uniones de integridad referencial, ACID
Sin esquemas
- Las bases de datos NoSQL no tienen esquemas o tienen esquemas relajados
- No requiere ningún tipo de definición del esquema de los datos.
- Ofrece estructuras heterogéneas de datos en el mismo dominio.
API simple
- Ofrece interfaces fáciles de usar para almacenar y consultar los datos proporcionados.
- Las API permiten métodos de selección y manipulación de datos de bajo nivel
- Protocolos basados en texto utilizados principalmente con HTTP REST con JSON
- Se utiliza principalmente un lenguaje de consulta NoSQL basado en estándares
- Bases de datos habilitadas para la web que se ejecutan como servicios conectados a Internet
Repartido
- Se pueden ejecutar múltiples bases de datos NoSQL de forma distribuida
- Ofrece capacidades de escalado automático y conmutación por error
- A menudo, el concepto ACID puede sacrificarse en favor de la escalabilidad y el rendimiento.
- En su mayoría, no hay replicación sincrónica entre nodos distribuidos Replicación multimaestro asincrónica, de igual a igual, replicación HDFS
- Sólo proporcionando coherencia eventual
- Nada compartido Architectura. Esto permite una menor coordinación y una mayor distribución.
Tipos de bases de datos NoSQL
Bases de datos NoSQL se clasifican principalmente en cuatro tipos: par clave-valor, orientado a columnas, basado en gráficos y orientado a documentos. Cada categoría tiene sus atributos y limitaciones únicos. Ninguna de las bases de datos especificadas anteriormente es mejor para resolver todos los problemas. Los usuarios deben seleccionar la base de datos según las necesidades de su producto.
Tipos de bases de datos NoSQL:
- Basado en pares clave-valor
- Gráfico orientado a columnas
- Basado en gráficos
- Orientado a documentos
Basado en pares clave-valor
Los datos se almacenan en pares clave/valor. Está diseñado de tal manera que pueda manejar una gran cantidad de datos y cargas pesadas.
Las bases de datos de almacenamiento de pares clave-valor almacenan datos como una tabla hash donde cada clave es única y el valor puede ser un JSON, BLOB (objetos binarios grandes), una cadena, etc.
Por ejemplo, un par clave-valor puede contener una clave como "Sitio web" asociada con un valor como "Guru99".
Es uno de los ejemplos de bases de datos NoSQL más básicos. Este tipo de base de datos NoSQL se utiliza como colección, diccionarios, matrices asociativas, etc. Los almacenes de valores clave ayudan al desarrollador a almacenar datos sin esquema. Funcionan mejor para el contenido del carrito de compras.
Redis, Dynamo, Riak son algunos ejemplos NoSQL de bases de datos de almacén de valores clave. Todos ellos se basan en AmazonEl papel Dynamo.
Basado en columnas
Las bases de datos orientadas a columnas funcionan con columnas y se basan en el documento BigTable de Google. Cada columna se trata por separado. Los valores de bases de datos de una sola columna se almacenan de forma contigua.
Ofrecen un alto rendimiento en consultas de agregación como SUM, COUNT, AVG, MIN, etc., ya que los datos están disponibles en una columna.
Las bases de datos NoSQL basadas en columnas se utilizan ampliamente para gestionar almacenes de datos, inteligencia empresarial , CRM, catálogos de tarjetas de biblioteca,
HBase, Cassandra, HBase, Hypertable son ejemplos de consultas NoSQL de bases de datos basadas en columnas.
Orientado a documentos
La base de datos NoSQL orientada a documentos almacena y recupera datos como un par clave-valor, pero la parte del valor se almacena como un documento. El documento se almacena en formatos JSON o XML. La base de datos comprende el valor y se puede consultar.
En este diagrama a su izquierda puede ver que tenemos filas y columnas, y a la derecha, tenemos una base de datos de documentos que tiene una estructura similar a JSON. Ahora, para la base de datos relacional, debes saber qué columnas tienes, etc. Sin embargo, para una base de datos de documentos, tiene un almacén de datos como un objeto JSON. No es necesario definir cuáles lo hacen flexible.
Este tipo de documento se utiliza principalmente en sistemas CMS, plataformas de blogs, análisis en tiempo real y aplicaciones de comercio electrónico. No se debe utilizar para transacciones complejas que requieren múltiples operaciones o consultas sobre distintas estructuras agregadas.
Amazon base de datos simple, CouchDB, MongoDB, Riak, Notas de loto, MongoDB, son documentos populares originados sistemas DBMS.
Basado en gráficos
Una base de datos de tipo gráfico almacena entidades y las relaciones entre esas entidades. La entidad se almacena como un nodo con la relación como bordes. Una arista da una relación entre nodos. Cada nodo y borde tiene un identificador único.
En comparación con una base de datos relacional donde las tablas están poco conectadas, una base de datos Graph es de naturaleza multirelacional. El recorrido de las relaciones es rápido ya que ya están capturados en la base de datos y no es necesario calcularlos.
Base de datos de base de gráficos utilizada principalmente para redes sociales, logística y datos espaciales.
Neo4J, gráfico infinito, OrientDB, FlockDB son algunas bases de datos populares basadas en gráficos.
Herramientas del mecanismo de consulta para NoSQL
El mecanismo de recuperación de datos más común es la recuperación basada en REST de un valor en función de su clave/ID con el recurso GET.
La base de datos del almacén de documentos ofrece consultas más difíciles, ya que comprenden el valor de un par clave-valor. Por ejemplo, CouchDB permite definir vistas con MapReduce
¿Qué es el teorema CAP?
El teorema CAP también se llama teorema de Brewer. Afirma que es imposible que un almacén de datos distribuido ofrezca más de dos de tres garantías
- Consistencia
- Disponibilidad
- Tolerancia de partición
Consistencia:
Los datos deben permanecer consistentes incluso después de la ejecución de una operación. Esto significa que una vez que se escriben los datos, cualquier solicitud de lectura futura debe contener esos datos. Por ejemplo, después de actualizar el estado del pedido, todos los clientes deben poder ver los mismos datos.
Disponibilidad:
La base de datos siempre debe estar disponible y responsiva. No debería tener ningún tiempo de inactividad.
Tolerancia de partición:
Tolerancia de partición significa que el sistema debe continuar funcionando incluso si la comunicación entre los servidores no es estable. Por ejemplo, los servidores se pueden dividir en varios grupos que pueden no comunicarse entre sí. Aquí, si parte de la base de datos no está disponible, otras partes nunca se ven afectadas.
Coherencia eventual
El término "coherencia eventual" significa tener copias de datos en varias máquinas para obtener alta disponibilidad y escalabilidad. Por lo tanto, los cambios realizados en cualquier elemento de datos en una máquina deben propagarse a otras réplicas.
La replicación de datos puede no ser instantánea, ya que algunas copias se actualizarán inmediatamente, mientras que otras lo harán a su debido tiempo. Estas copias pueden ser mutuas, pero con el tiempo se vuelven consistentes. De ahí el nombre de consistencia eventual.
BASE: Basicamente Adisponible Sestado a menudo, Econsistencia ventual
- Básicamente, disponible significa que DB está disponible todo el tiempo según el teorema CAP
- Estado suave significa incluso sin entrada; el estado del sistema puede cambiar
- La consistencia eventual significa que el sistema se volverá consistente con el tiempo.
Ventajas de NoSQL
- Se puede utilizar como fuente de datos primaria o analítica
- Capacidad de grandes datos
- Sin punto único de falla
- Fácil replicación
- No es necesaria una capa de almacenamiento en caché independiente
- Proporciona un rendimiento rápido y escalabilidad horizontal.
- Puede manejar datos estructurados, semiestructurados y no estructurados con el mismo efecto.
- Programación orientada a objetos, fácil de usar y flexible.
- Las bases de datos NoSQL no necesitan un servidor dedicado de alto rendimiento
- Admite plataformas e idiomas clave para desarrolladores
- Simple de implementar que usar RDBMS
- Puede servir como fuente de datos principal para aplicaciones en línea.
- Maneja grandes volúmenes de datos, lo que permite gestionar la velocidad, la variedad, el volumen y la complejidad de los datos.
- Se destaca en operaciones de bases de datos distribuidas y de múltiples centros de datos.
- Elimina la necesidad de una capa de caché específica para almacenar datos
- Ofrece un diseño de esquema flexible que se puede modificar fácilmente sin tiempo de inactividad ni interrupción del servicio.
Desventajas de NoSQL
- Sin reglas de estandarización
- Capacidades de consulta limitadas
- RDBMS Las bases de datos y las herramientas son comparativamente maduras.
- No ofrece ninguna capacidad de base de datos tradicional, como consistencia cuando se realizan múltiples transacciones simultáneamente.
- Cuando el volumen de datos aumenta, es difícil mantener valores únicos ya que las claves se vuelven difíciles
- No funciona tan bien con datos relacionales
- La curva de aprendizaje es dura para los nuevos desarrolladores
- Las opciones de código abierto no son tan populares para las empresas.
Resum
- NoSQL es un DMS no relacional, que no requiere un esquema fijo, evita uniones y es fácil de escalar.
- El concepto de bases de datos NoSQL se hizo popular entre gigantes de Internet como Google, Facebook, Amazon, etc. que manejan grandes volúmenes de datos.
- En el año 1998, Carlo Strozzi utilizó el término NoSQL para su base de datos relacional ligera y de código abierto.
- Las bases de datos NoSQL nunca siguen el modelo relacional, o no tienen esquemas o tienen esquemas relajados.
- Cuatro tipos de bases de datos NoSQL son 1). Basado en pares clave-valor 2). Gráfico orientado a columnas 3). Gráficos basados 4). Orientado a documentos
- NOSQL puede manejar datos estructurados, semiestructurados y no estructurados con el mismo efecto
- El teorema CAP consta de tres palabras: coherencia, disponibilidad y tolerancia de partición.
- BASE significa Basicamente Adisponible Sestado a menudo, Econsistencia ventual
- El término "coherencia eventual" significa tener copias de datos en varias máquinas para obtener alta disponibilidad y escalabilidad.
- NOSQL ofrecer capacidades de consulta limitadas