# Base de datos

> Un depósito ordenado de datos que los programas consultan y actualizan sin riesgo.

- Nivel: Básico
- Temas: Software, Datos
- URL: https://tidbit.legios.com.ar/es/database/
- En inglés: [Database](https://tidbit.legios.com.ar/database/)

Una **base de datos** es un programa cuyo único trabajo es guardar datos y responder preguntas sobre ellos rápido y de forma segura: cada usuario de una app, cada pedido, cada mensaje. A diferencia de una planilla, está hecha para que la usen muchos programas a la vez, para tener millones de filas, y para no perder ni guardar a medias un cambio, aunque se corte la luz en el medio de una escritura.

El tipo más común es la **relacional**: los datos viven en tablas con filas y columnas (una tabla `clientes`, una tabla `pedidos`), las tablas se apuntan entre sí por ids, y las preguntas se hacen en SQL. PostgreSQL, MySQL y SQLite son relacionales y de código abierto; Amazon RDS las corre por vos en la nube. Las bases **NoSQL** dejan las tablas estrictas por documentos flexibles (MongoDB), pares clave-valor (Redis, Amazon DynamoDB) o grafos, cambiando algunas garantías por velocidad o escala.

Casi toda app que usás es una capa finita sobre una base de datos. Abrís Instagram y una consulta trae tu feed; le pagás a alguien y una **transacción** mueve plata entre dos cuentas como un único paso de todo o nada. Backups, índices (para encontrar una fila sin recorrer toda la tabla) y permisos son el trabajo diario de mantener una sana.

## Una analogía

Una biblioteca con catálogo. Los libros (datos) están en estantes numerados (tablas), el catálogo (índice) te dice dónde buscar sin recorrer todos los pasillos, y el bibliotecario (el motor de la base) se asegura de que dos personas no reescriban la misma ficha a la vez.

## Para quedarse

- Las bases relacionales guardan tablas y hablan SQL; las NoSQL guardan documentos, pares clave-valor o grafos.
- Una transacción es un grupo de cambios que ocurren todos o ninguno.
- Un índice hace rápidas las búsquedas a cambio de algo de espacio y escrituras un poco más lentas.
- La base de datos suele ser la parte más difícil de escalar de un sistema y la más importante de respaldar.

## Para seguir leyendo

- [¿Qué es una base de datos? (AWS)](https://aws.amazon.com/es/what-is/database/)
- [Base de datos (Wikipedia)](https://es.wikipedia.org/wiki/Base_de_datos)

## Términos relacionados

- [Planilla vs base de datos](https://tidbit.legios.com.ar/es/spreadsheet-vs-database/): Por qué una empresa que vive en Excel termina necesitando una base de datos de verdad.
- [SQL](https://tidbit.legios.com.ar/es/sql/): El lenguaje para hacerle preguntas a una base de datos.
- [Código abierto](https://tidbit.legios.com.ar/es/open-source/): Software cuyo código cualquiera puede leer, usar, cambiar y compartir.
- [Amazon RDS](https://tidbit.legios.com.ar/es/amazon-rds/): Una base de datos relacional lista para usar, que AWS mantiene parchada y respaldada.
- [Computación en la nube](https://tidbit.legios.com.ar/es/cloud-computing/): Alquilar computadoras por internet en vez de comprar las tuyas.
- [NoSQL](https://tidbit.legios.com.ar/es/nosql/): Bases de datos que guardan la información en formas distintas a tablas de columnas fijas.
- [Amazon DynamoDB](https://tidbit.legios.com.ar/es/amazon-dynamodb/): Una base de datos clave-valor que responde en milisegundos por más que crezca la tabla.
- [Copia de seguridad](https://tidbit.legios.com.ar/es/backup/): Una copia aparte de tus datos, para recuperarlos cuando se pierde el original.
