# data[].attributes.body
Primera parte:
Las BD relacionales se basan en almacenar y acceder a datos que estan relacionados a otros. Las BD SQL muestran su data en tablas de una manera directa e intuitiva. Dentro de esas tablas, cada fila representará un registro que tendrá un identificador único (conocido como clave). Las columnas incluirán atributos de esas claves, normalmente con valores únicos (lo que nos permite crear esas relaciones entre los datos de toda la base de datos). Dando así su nombre a este tipo de BD.

Las BD NoSQL a diferencia de las anteriores, no utiliza estructuras tan simples (tablas), ni sus datos se almacenan en forma de registros o campos. Eso no significa que no usen lenguaje SQL.
Su propio nombre no significa NO usar SQL, sino que significa no usar siempre SQL. Confían en él, pero solo como un medio de apoyo, no como su principal herramienta de consulta.

Segunda parte:
Hay 4 tipos principales de BD NoSQL:

- Bases de datos de documentos: almacena datos en documentos JSON, BSON o XML que pueden ser anidados.
- Almacenes de clave-valor: Cada elemento de datos en la base de datos se almacena como un par de valores clave que consta de un nombre de atributo (o "clave") y un valor.
- Bases de datos orientadas a columnas: Mientras que una base de datos relacional almacena datos en filas y los lee fila por fila, un almacén de columnas se organiza como un conjunto de columnas. Las bases de datos en columnas pueden agregar rápidamente el valor de una columna determinada (sumando las ventas totales del año, por ejemplo)
- Bases de datos de grafos: Una base de datos de gráficos se centra en la relación entre los elementos de datos. Cada elemento se almacena como un nodo (como una persona en un gráfico de redes sociales). Las conexiones entre elementos se denominan vínculos o relaciones. En una base de datos de grafos, las conexiones son elementos de primera clase de la base de datos, almacenados directamente. En las bases de datos relacionales, los enlaces están implícitos y utilizan datos para expresar las relaciones.

# data[].attributes.headline
Bases de Datos NoSQL y Diferencias con las SQL o relacionales - Yader Hernández

# data[].attributes.subject
Bases de Datos NoSQL y Diferencias con las SQL o relacionales - Yader Hernández

# data[].attributes.body
Tipos de Bases de Datos NoSQL:

1. Key-Value Stores
2. Document Stores
3. Column-Oriented
4. Graph Network
5. Hierarchical
6. Object-Oriented
7. Triple Stores

Diferencias:

All NoSQL uses a data model that has a different structure than the traditional row-and-column table model used with relational database management systems (RDBMSs). But NoSQL databases are all quite different from each other as well.

# data[].attributes.body
Dependiendo de la naturaleza de éste, se debe elegir: entre una relacional o no relaciona.

Las bases de datos relacionales se basan en la organización de la información en partes pequeñas que se integran mediante identificadores; a diferencia de las bases de datos no relacionales que, como su nombre lo indica, no tienen un identificador que sirva para relacionar dos o más conjuntos de datos. Además son más robustas, es decir, tienen mayor capacidad de almacenamiento, y son menos vulnerables ante fallas, estas son sus principales características.

Las bases de datos no relacionales (NoSQL) son las que, a diferencia de las relacionales, no tienen un identificador que sirva de relación entre un conjunto de datos y otros. Como veremos, la información se organiza normalmente mediante documentos y es muy útil cuando no tenemos un esquema exacto de lo que se va a almacenar.

# data[].attributes.body
SQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones; usado por muchos sitios web grandes y populares, como Wikipedia, Google (no para búsquedas), Facebook, Twitter, Flickr, y YouTube.
La diferencia conceptual entre SQL y NoSQL, es que resuelven escenarios completamente diferentes y excluyentes el uno del otro; ya que para lo que resulta ideal SQL, no lo es NoSQL y al revés .

Diferencias:
✅ SQL permite combinar de forma eficiente diferentes tablas para extraer información relacionada, mientras que NoSQL no lo permite o muy limitadamente.
✅ NoSQL permite distribuir grandes cantidades de información; mientras que SQL facilita distribuir bases de datos relacionales.
✅ SQL permite gestionar los datos junto con las relaciones existentes entre ellos; en NoSQL no existe este tipo de utilidades .
✅ NoSQL permite un escalado horizontal sin problemas – por su capacidad de distribución-; mientras que escalar SQL resulta más complicado.

¿Usas SQL o NoSQL?

¿CUÁNDO USAR SQL?
No existe una respuesta concreta, porque se presume que cualquier cosa que se deba guardar, debe ser en una base de datos relacional . Sin embargo los programadores podrían sugerir que en gaming o desarrollos de animación, no sería necesario.
En la mayoría de las opiniones, una base de datos relacional puede ser usada los siguientes ámbitos:
✅ Educación: para estructurar información, y aportar conocimiento lógico al estudiante.
✅ Desarrollos web: para mantener jerarquía de datos, siempre y cuando la capacidad de concurrencia, almacenamiento y mantenimiento no sean de considerable dificultad y la información sea consistente .
✅ Negocios: inteligencia y análisis de negocios, son temas que requieren el uso de SQL para facilitar el consumo de la información y la identificación de patrones en los datos.
✅ Empresarial: porque tanto el software a la medida y el software empresarial, poseen la característica de mantener información con estructura consistente .

¿CUÁNDO USAR NOSQL?
Básicamente se utilizan en:
✅ Redes sociales: casi obligatorio .
✅ Desarrollo Web: debido a la poca uniformidad de la información que se encuentra en Internet; aun cuando también puede emplearse SQL.
✅ Desarrollo Móvil: debido a la tendencia – en crecimiento- de Bring Your Own Device.
✅ BigData: debido a la administración de grandísimas cantidades de información y su evidente heterogeneida.

Lo más importante que debes saber es que las NoSQL no son un sustituto de las SQL, sino que son una alternativa que ofrece otras posibilidades, lo que las convierte en más interesantes para determinados casos como por ejemplo proyectos que requieren una alta escalabilidad en el los recursos son escasos y la integridad de los datos no es lo más importante, como sí ocurre en cambio en aplicaciones especializadas por ejemplo en transacciones bancarias.

Las BBDD NoSQL más reconocidas en la actualidad:

MongoDB. MongoDB

Apache Cassandra.

CouchDB.

Redis. Otro importante motor de base de datos de tipo calve-valor es Redis.

Neo4j. Logo de Neo4J.

Bases de datos documentales.

Bases de datos en orientadas a grafos.

Bases de datos clave/valor.

# data[].attributes.body
BASE DE DATOS RELACIONALES Y NO RELACIONALES.
Las bases de datos relacionales se basan en la organización de la información en partes pequeñas que se integran mediante identificadores; a diferencia de las bases de datos no relacionales que, como su nombre lo indica, no tienen un identificador que sirva para relacionar dos o más conjuntos de datos.

SQL Y NO SQL
SQL:
Una base de datos SQL es una base de datos relacional, escrita en el lenguaje de consulta estructurado SQL (Structured Query Language). Una base de datos relacional es aquella que dispone de una relación predefinida entre sus elementos, donde cada registro pueda ser identificado de forma inequívoca.
NO SQL:
Una base de datos NoSQL o Not Only SQL es una base de datos no relacional que no cuenta con un identificador que relacione un conjunto de datos con otro. En las bases de datos No SQL la información es organizada generalmente como documentos y no requieren que los datos están estructurados para poder manipularlos.

# data[].attributes.body
Primera parte:
Investigar sobre las diferentes entre las bases de datos relaciones y las no relacionales.

Segunda parte:
Investigar sobre los diferentes tipos de bases de datos NoSQL existente, cuales son sus características y ámbitos de aplicacion.