# data[].attributes.body
NoSQL (Not only SQL) se define como “No solo SQL”.

Hace referencia al conjunto de tecnologías en base de datos, que busca alternativas al sistema de BD Relacional.

En un inicio se planteo el término "No Rel", pero este generaba confusión en la comunidad.

# data[].attributes.body
Lamentablemente la documentación acerca de las Bases de datos NoSQL es muy escasa.

# data[].attributes.body
El paradigma de base de datos NoSQL surge a causa del cambio que se ha dado en el manejo de la información durante las últimas décadas.

Tamaño y cantidad de información. - Con la infraestructura que se contaba no se podían manejas la cantidad de información que se proyectó para dentro de 5 años.

Velocidad. - Se hace necesario un paradigma en bases de datos orientado a la velocidad.

Falta de innovación. - Las bases de datos tradicionales fueron creadas para la necesidad de almacenamiento y manejo de la información, pero se diseñaron pensando en las características de la época.

# data[].attributes.body
Se proponen seis características:

1. Escalabilidad  horizontal
- Facilidad para realizar operaciones sin afectar el         rendimiento
2. Habilidad de distribucion
- La habilidad de  replicar  y distribuir los datos sobre los servidores
3. Uso eficiente de recursos
4. Libertad  de esquema
5. Modelo de concurrencia debil
- No implementa ACID
6. Consultas simples
- Requieren menos operaciones y son mas naturales

# data[].attributes.body
• Teorema CAP (Consistency Availability Partition tolerance): No es posible mantener la consistencia, disponibilidad y tolerancia de reparto de manera perfecta.
• ACID “relajado”: Es necesario para obtener una mayor escalabilidad.
• Datos y modelo de acceso: El anterior modelo de acceso de las bases de datos relacionales presenta algunas dificultades.
• Datos y procesos distribuidos: Permite la aplicación de procesos a los datos sin necesidad de que estos estén centralizados

# data[].attributes.headline
Posibilidades de  combinaciones de elementos

# data[].attributes.subject
Posibilidades de  combinaciones de elementos

# data[].attributes.body
CP: ejecuta operaciones de forma concistente, pero puede perder comunicación entre nodos
AP: aunque se pierda la comunicación entre nodos el sistema siempre responderá a las peticiones, aunque los datos ingresados no serán consistentes
CA:  el sistema siempre responderá a las peticiones y los datos procesados serán consistentes

# data[].attributes.body
En los sistemas NoSQL se opta por una consistencia eventual, que permite a cada sistema hacer cambios a los datos y aprender de otras actualizaciones realizadas por otros sistemas dentro de un corto periodo de tiempo, sin ser totalmente coherente en todo momento.

# data[].attributes.headline
Criterios para estudiar a las bases de datos NoSQL

# data[].attributes.subject
Criterios para estudiar a las bases de datos NoSQL

# data[].attributes.body
• Son sistemas descentralizados.
• Utilizan esquemas flexible.
• Aceptar al modelo propuesto por NoSQL.

# data[].attributes.body
1. Revisar los motores de bases de datos
2. Programación declarativa para plataformas emergentes
3. La integración de datos estructurados y no estructurados
4. Nube de servicios de datos
5. Aplicaciones móviles y mundos virtuales

# data[].attributes.body
Aunque existen muchas tecnologías en bases de datos NoSQL, cuando se habla de categorías se pueden destacar cuatro

1. Almacenamiento clave-valor. - Se asigna una clave única a un valor que es típicamente una cadena arbitraria. La operación de encontrar el valor asociado a una clave se denomina "lookup".

2. Almacenamiento de documentos. - Proporciona la capacidad de manejar millones de lecturas simultáneas, puesto que ya tienen una lectura simple.

3. Almacenamiento de familias de columnas. - Almacena su contenido por columnas, en lugar de por filas. Tienden a ser un híbrido de las clásicas bases de datos relacionales y la tecnología orientada a columna. Almacena sus datos de manera que pueden ser rápidamente agregados, con menos actividad de entrada y salida.

4. Almacenamiento de grafos. - Se pueden escalar de forma más natural a conjuntos de datos de gran tamaño, y son más adecuadas para la gestión ad-hoc y el cambio de datos con esquemas cambiantes. Es recomendable para estructuras dinámicas complejas.

# data[].attributes.body
Si se trata de usar la herramienta correcta para la tarea adecuada, lo más interesante sería que las dos tecnologías trabajaran de la mano; a esto se le conoce como persistencia políglota.

# data[].attributes.body
Retos a enfrentar para fortalecer el movimiento:

• Realizar una estandarización
• Superar el “hype”
• Demostrar que es algo nuevo y bueno

# data[].attributes.body
NoSQL hace referencia al conjunto de tecnologías en bases de datos que buscan alternativas al sistema de bases de datos relacional.
Las tres causas del “bullicio” de NoSQL son: los cambios en el tamaño y la cantidad de los datos, la necesidad de velocidad por parte de los usuarios y la falta de innovación en el área.