Las bases de datos se usan para almacenar información.

Luego esa información (datos) la podemos relacionar entre sí. Podemos definir una estructura. Y realizar operaciones, análisis, transmisiones, etc.

Se dividen en 2 tipos de bases de datos principalmente:

SQL (Structured Query Language):

- Estructura: Tablas fijas no flexibles. Si surge la necesidad de pequeños cambios hay que cambiar mucho. Y si hay uno de esos cambios, al faltar datos hay poner a null si esta vacío  el campo lo que luego al realizar consultas es peligroso.

- Relaciones: Relacionales. Agrupas los datos en tablas y luego creas relaciones entre ellas. Así ahorras y no repite datos, simplemente es como si señalaras donde buscar la información.

- Escalabilidad: Se vuelve más lento cuantas más columnas tiene. Acaba consumiendo gran cantidad de recursos. Escalabilidad vertical (hacia arriba): Necesitas añadir más recursos a 1 servidor.

Ej: MySQL, PostgreSQL.

Bases de datos – SQL vs NoSQL 0

NoSQL (Not only Structured Query Language):

- Estructura: Flexible en formato JSON.

- Relaciones: No relacionales. Usa objetos para representar los datos. Puede dar lugar a repetición. Puedes dividir en trozos y hacer referencias pero no son tan eficientes.

- Escalabilidad: Distribuido. Escalabilidad horizontal: Se basa en añadir más servidores para que trabajen como 1 solo. Permite añadir ilimitados servidores.

Ej: MongoDB, Redis.

Bases de datos – SQL vs NoSQL 2

Resumen:

  • SQL: Puedes guardar datos estructurados como inventarios con muchas relaciones.
  • NoSQL: Para pocas relaciones como una página web que use un Array de objetos. Pocos o 1 solo usuario con muchos posts.
SQL NoSQL
Más estable y con más documentación por antigüedad (desde 1995) Es más nuevo y recibe más cambios
Estructura en tablas Estructura en documentos
Esquema fijo. Por el tipo de datos y las columnas a usar Estructura flexible a cambios
Bueno en las relaciones No bueno con muchas o complejas relaciones
Escalable vertical Escalable horizontal