¿Qué es NoSQL?
La base de datos NoSQL 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 propósito principal de usar una base de datos NoSQL es para almacenes de 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 usuario todos los días.,
La base de datos NoSQL significa «no solo SQL» o » no SQL. Aunque un mejor término 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 base de datos que pueden almacenar datos estructurados, semiestructurados, no estructurados y polimórficos., Vamos a entender sobre NoSQL con un diagrama en este tutorial de base de datos NoSQL:
en este tutorial de NoSQL para principiantes, aprenderá conceptos básicos de NoSQL como:
- ¿Por qué NoSQL?
- Breve Historia de las bases de datos NoSQL
- Características de NoSQL
- Tipos de bases de datos NoSQL
- Herramientas de Mecanismo de consulta para NoSQL
- ¿Cuál es el Teorema CAP?
- consistencia Eventual
- Ventajas de NoSQL
¿por qué NoSQL?,
el concepto de bases de datos NoSQL se hizo popular entre gigantes de Internet como Google, Facebook, Amazon, etc. que se ocupan de 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 «escalar» 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 la carga aumenta. Este método se conoce como » scaling out.,»
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.,ST con JSON
distribuido
- 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 se puede sacrificar para la escalabilidad y el rendimiento
- En su mayoría no hay replicación síncrona entre nodos distribuidos, peer-to-peer, HDFS replication
- solo proporciona consistencia eventual
- arquitectura no compartida., Esto permite una menor coordinación y una mayor distribución.
NoSQL es que no se Comparte Nada.
los tipos de bases de datos NoSQL
Las 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 únicas. Ninguna de las bases de datos especificadas anteriormente es mejor para resolver todos los problemas. Los usuarios deben seleccionar la base de datos en función de sus necesidades de productos.,
Tipos de Bases de datos NoSQL:
- Par Clave-valor en Base
- orientado a Columnas Gráfico
- Gráficos basados
- Documento orientado
Valor de la Clave Par Basada
Los datos se almacenan en pares clave/valor. Está diseñado de tal manera para manejar una gran cantidad de datos y carga pesada.
Las bases de datos de almacenamiento de pares clave-valor almacenan los datos como una tabla hash donde cada clave es única, y el valor puede ser un JSON, BLOB (objetos binarios grandes), cadena, etc.,
por ejemplo, un par clave-valor puede contener una clave como» Website «asociada a un valor como»Guru99».
es uno de los más básicos de base de datos NoSQL ejemplo. Este tipo de base de datos NoSQL se utiliza como una colección, diccionarios, matrices asociativas, etc. Los almacenes de valor 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 key-value store. Todos están basados en el papel Dynamo de Amazon.,
las bases de datos orientadas a columnas funcionan en columnas y se basan en BigTable paper de Google. Cada columna se trata por separado. Los valores de las bases de datos de una sola columna se almacenan de forma contigua.
base de datos NoSQL basada en columnas
Ofrecen un alto rendimiento en consultas de agregación como SUM, COUNT, AVG, MIN, etc. como los datos están fácilmente disponibles en una columna.,
Las bases de datos NoSQL basadas en columnas se utilizan ampliamente para administrar almacenes de datos, inteligencia de negocios, 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 de valores clave, pero la parte de valor se almacena como un documento. El documento se almacena en formatos JSON o XML. El valor es entendido por la base de datos y puede ser consultado.
Relacional Vs., Documento
en este diagrama de la izquierda se puede ver que tenemos filas y columnas, y en la derecha, tenemos una base de datos de documentos que tiene una estructura similar a JSON. Ahora para la base de datos relacional, tienes que saber qué columnas tienes y así sucesivamente. Sin embargo, para una base de datos de documentos, tiene un almacén de datos como el objeto JSON. No es necesario definir cuál lo hace flexible.
el tipo de documento se utiliza principalmente para sistemas CMS, plataformas de blogs, análisis en tiempo real & aplicaciones de comercio electrónico., No debe usarse para transacciones complejas que requieren múltiples operaciones o consultas contra estructuras agregadas variables.
Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, son populares sistemas DBMS originados por documentos.
basado en gráficos
una base de datos de tipo gráfico almacena entidades, así como las relaciones entre esas entidades. La entidad se almacena como un nodo con la relación como aristas. 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 conectadas libremente, una base de datos de Gráficos Es de naturaleza multi-relacional. La relación transversal es rápida, ya que ya están capturadas en la base de datos, y no hay necesidad de calcularlas.
base de datos de grafos utilizada principalmente para redes sociales, logística, datos espaciales.
Neo4J, Infinite Graph, OrientDB, FlockDB son algunas bases de datos populares basadas en gráficos.,
herramientas de 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 basado en su clave/ID con GET resource
Document store Database ofrece consultas más difíciles ya que entienden el valor en un par clave-valor. Por ejemplo, CouchDB permite definir vistas con MapReduce
¿qué es el Teorema CAP?
El teorema de CAP también se llama teorema de brewer., Establece 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 deberían poder ver los mismos datos.
disponibilidad:
La base de datos siempre debe estar disponible y responder. No debe 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 particionar en varios grupos que pueden no comunicarse entre sí. Aquí, si parte de la base de datos no está disponible, Otras partes siempre no se ven afectadas.
consistencia Eventual
el término «consistencia 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 se actualizarán a su debido tiempo. Estas copias pueden ser recíprocas, pero a su debido tiempo, se vuelven consistentes. De ahí, la consistencia eventual del nombre.,I> básicamente, disponible significa que DB está disponible todo el tiempo según el teorema de la tapa
ventajas de NoSQL
- Se puede utilizar como fuente de datos primaria o analítica
- Capacidad de big data
- sin un único punto de falla
- fácil replicación
- sin necesidad de una capa de almacenamiento en caché separada
- 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 que es fácil de usar y flexible
- Las bases de datos NoSQL no necesitan un servidor dedicado de alto rendimiento
- Soporte para lenguajes y plataformas de desarrolladores clave
- Fácil de implementar que el uso de RDBMS
- Puede servir como la fuente de datos principal para aplicaciones en línea.,ariety, volumen y complejidad
- sobresale en las operaciones de bases de datos distribuidas y centros de datos múltiples
- elimina la necesidad de una capa de almacenamiento en caché específica para almacenar datos
- Ofrece un diseño de esquema flexible que se puede alterar fácilmente sin tiempo de inactividad o interrupción del servicio
desventajas de NoSQL
- Sin reglas de estandarización
- capacidades de consulta limitadas
- LAS BASES DE DATOS y herramientas RDBMS>
- no ofrece ninguna capacidad de base de datos tradicional, como la consistencia cuando se realizan varias transacciones simultáneamente.,
- Cuando el volumen de datos aumenta, es difícil mantener valores únicos a medida que las claves se vuelven difíciles
- no funciona tan bien con datos relacionales
- La Curva de aprendizaje es rígida para los nuevos desarrolladores
- opciones de código abierto, por lo que no son tan populares para las empresas.
Summary
- 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 tratan con grandes volúmenes de datos
- En el año 1998 – Carlo Strozzi utiliza 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 es libre de esquemas o tiene esquemas relajados
- cuatro tipos de base de datos NoSQL son 1).Par clave-valor basado 2).Gráfico orientado a columnas 3). Gráficos basados 4).,Orientado a documentos
- NOSQL puede manejar datos estructurados, semiestructurados y no estructurados con igual efecto
- El teorema CAP consiste en tres palabras consistencia, disponibilidad y tolerancia de partición
- BASE significa básicamente disponible, Estado suave, consistencia Eventual
- El término «consistencia eventual» significa tener copias de datos en múltiples máquinas para obtener alta disponibilidad y escalabilidad
- NoSQL ofrece capacidades de consulta limitadas