Bases de Datos
Una base de datos es una colección organizada de información estructurada o datos que generalmente se almacena electrónicamente. Una base de datos suele estar controlada por un Sistema de Gestión de Bases de Datos (DBMS). Conjuntamente, los datos y el DBMS, junto con las aplicaciones asociadas a ellos, se denominan sistema de base de datos.
¿Qué es un DBMS?
Una base de datos generalmente requiere un programa de software integral conocido como Sistema de Gestión de Bases de Datos (DBMS). Un DBMS actúa como una interfaz entre la base de datos y sus usuarios finales o programas, permitiendo a los usuarios recuperar, actualizar y gestionar cómo se organiza y optimiza la información. Un DBMS también facilita la supervisión y el control de bases de datos, permitiendo diversas operaciones administrativas como la monitorización del rendimiento, el ajuste y la copia de seguridad y recuperación.
Componentes
Aquí hay algunos componentes comunes presentes en diferentes bases de datos:
Esquema
El rol de un esquema es definir la estructura de los datos y especificar qué tipos de datos pueden ir en cada lugar. Los esquemas pueden ser estrictamente aplicados en toda la base de datos, aplicados de manera flexible en parte de la base de datos, o no existir en absoluto.
Tabla
Cada tabla contiene varias columnas como en una hoja de cálculo. Una tabla puede tener tan pocas como dos columnas o más de cien, dependiendo del tipo de información que se almacene en ella.
Columna
Una columna contiene un conjunto de valores de datos de un tipo particular, un valor para cada fila de la base de datos. Una columna puede contener valores de texto, números, enumeraciones, marcas de tiempo, etc.
Fila
Los datos en una tabla se registran en filas. Puede haber miles o millones de filas en una tabla con cualquier tipo de información.
Tipos

Tipos de bases de datos
- Bases de datos SQL
- NOSQLDatabases
- Documento
- Clave-valor
- Grafos
- Series temporales
- Columna amplia
- Multi-modelo
Temas sobre bases de datos
- Normalización
- ACIDvsBASE
- Teorema CAP
- DatabaseTransactions|Transacciones en bases de datos
- Datalake|Lago de datos
- Sharding|Fragmentación
SQL vs NoSQL
En el mundo de las bases de datos, hay dos tipos principales de soluciones: bases de datos SQL (relacionales) y NoSQL (no relacionales).
Almacenamiento
SQL almacena datos en tablas, donde cada fila representa una entidad y cada columna un punto de datos sobre esa entidad.
Las bases de datos NoSQL tienen diferentes modelos de almacenamiento de datos, como clave-valor, grafos, documentos, etc.
Esquema
En SQL, cada registro se ajusta a un esquema fijo, lo que significa que las columnas deben decidirse antes de ingresar los datos, y cada fila debe tener datos para cada columna. Aunque el esquema se puede modificar, esto implica cambios en la base de datos mediante migraciones.
En NoSQL, los esquemas son dinámicos. Se pueden agregar campos sobre la marcha, y cada registro (o equivalente) no necesita contener datos para cada campo.
Consultas
Las bases de datos SQL usan SQL (lenguaje de consulta estructurado) para definir y manipular los datos, lo que es muy poderoso.
En una base de datos NoSQL, las consultas se enfocan en una colección de documentos. Diferentes bases de datos tienen sintaxis distintas para las consultas.
Escalabilidad
En situaciones comunes, las bases de datos SQL son escalables verticalmente, lo que puede ser muy costoso. Es posible escalar una base de datos relacional en varios servidores, pero es un proceso desafiante y que requiere mucho tiempo.
Por otro lado, las bases de datos NoSQL son escalables horizontalmente, lo que significa que se pueden agregar más servidores fácilmente a la infraestructura para manejar un tráfico grande. Cualquier hardware económico o instancia en la nube puede alojar bases de datos NoSQL, lo que las hace más rentables que la escalabilidad vertical. Muchas tecnologías NoSQL también distribuyen automáticamente los datos en los servidores.
Fiabilidad
La gran mayoría de las bases de datos relacionales cumplen con ACID. Por lo tanto, cuando se trata de fiabilidad de datos y garantía de realizar transacciones de manera segura, las bases de datos SQL siguen siendo la mejor opción.
La mayoría de las soluciones NoSQL sacrifican el cumplimiento de ACID en favor del rendimiento y la escalabilidad.
Razones
Siempre debemos elegir la tecnología que mejor se ajuste a los requisitos. Veamos algunas razones para elegir una base de datos SQL o NoSQL:
Para SQL
- Datos estructurados con un esquema estricto
- Datos relacionales
- Necesidad de uniones complejas
- Transacciones
- Búsquedas rápidas por índice
Para NoSQL
- Esquema dinámico o flexible
- Datos no relacionales
- No se necesitan uniones complejas
- Cargas de trabajo intensivas en datos
-
Altísimo rendimiento para operaciones de entrada/salida (IOPS)