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:
Resumen del artículo
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.
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.
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 |