Saltar al contenido
Lectura12 minPreview

Qué es una base de datos: historia, importancia y conceptos clave

Usted ya tiene bases de datos en su computadora sin haber instalado ninguna. Firefox guarda su historial en un archivo llamado places.sqlite, dentro de la carpeta del perfil; Chrome lo guarda en un archivo llamado History, sin extensión. Los dos son bases SQLite, y un analista forense las abre con las consultas de este curso. Antes de escribirlas, conviene saber qué son, de dónde salió SQL y cómo leer las fichas de sintaxis.

Qué es una base de datos

Una base de datos es información organizada que un programa guarda, busca y modifica con reglas. Ese programa es el motor o sistema gestor de bases de datos (DBMS, database management system).

Una hoja de cálculo también tiene filas y columnas. Lo que cambia es el motor: deja escribir a muchos a la vez sin pisarse, rechaza datos que rompen una regla (un correo repetido), responde sobre millones de registros en segundos y decide quién ve o cambia cada cosa.

Con la mayoría de los motores se habla en SQL (Structured Query Language, lenguaje de consulta estructurado), que se pronuncia "ese-cu-ele" o "sícuel". Es declarativo: usted dice qué datos quiere y el motor decide cómo buscarlos.

Breve historia

AñoHito
1970Edgar F. Codd, de IBM, publica el modelo relacional: datos en tablas relacionadas
1974Donald Chamberlin y Raymond Boyce, en IBM, diseñan SEQUEL, luego rebautizado SQL
1979Sale Oracle V2, uno de los primeros motores comerciales basados en SQL
1986ANSI publica el primer estándar de SQL; ISO lo adopta en 1987
1995Primera versión pública de MySQL, luego el motor clásico de la web
1996El proyecto POSTGRES, de la Universidad de California en Berkeley, pasa a llamarse PostgreSQL
2000D. Richard Hipp crea SQLite, una base completa dentro de un solo archivo
2009Se populariza el término NoSQL y aparece MongoDB

El modelo de Codd, con más de cincuenta años, sigue guardando planillas, facturas e inventarios.

Por qué importa en ciberseguridad

Lo que un atacante quiere llevarse casi siempre está en una tabla. En un SOC, los lenguajes de consulta de los SIEM (KQL en Microsoft Sentinel, SPL en Splunk) filtran, agrupan y cruzan igual que SQL. En forense, el historial del navegador y los mensajes de muchas aplicaciones móviles son archivos SQLite. La inyección SQL lleva más de veinte años en las listas de fallas web más graves, y se previene entendiendo cómo la aplicación arma sus consultas. Quien administra servidores responde por cuentas con mínimo privilegio, respaldos restaurables y bases cerradas a internet. Y la Ley 8968 obliga a saber qué datos personales se guardan y quién los ve.

El tropiezo típico: quien copia places.sqlite con Firefox abierto se lleva un archivo sin los últimos cambios, porque estos siguen en places.sqlite-wal, al lado. Se copia con el navegador cerrado, o se copian los dos juntos.

Dónde se usa

LugarEjemplo
Aplicaciones webUsuarios, pedidos y pagos de una tienda en línea
CelularesContactos, mensajes y ajustes de las aplicaciones
NavegadoresHistorial, cookies y descargas
EmpresasPlanillas, inventario de equipos, contabilidad
Herramientas de seguridadAlertas de un SIEM, hallazgos de un escáner, casos de un SOC

Conceptos clave

ConceptoQué significa
Motor o SGBDPrograma que guarda la base y atiende las consultas
TablaConjunto de datos sobre un tipo de cosa, como empleados o equipos
Fila o registroUn elemento concreto dentro de la tabla
Columna o campoUn atributo de cada fila, con un tipo de dato
Llave primariaColumna que identifica cada fila sin repetirse
ConsultaInstrucción SQL que pide o modifica datos
EsquemaLa estructura de la base: tablas, columnas, tipos y relaciones
VistaUna consulta guardada con nombre que se consulta igual que una tabla

Cómo leer una sintaxis

Cada ficha del curso trae la forma general de la instrucción. Se lee así:

  • En SQL, las MAYÚSCULAS son palabras reservadas y se escriben tal cual; las minúsculas, como tabla, las reemplaza usted.
  • En herramientas de terminal como pg_dump es al revés: las MAYÚSCULAS (ARCHIVO, BASE) son lo que usted reemplaza.
  • Lo que va entre corchetes es opcional: [WHERE condición].
  • Los tres puntos indican que se puede repetir: columna, ....
  • La barra vertical separa alternativas: ASC | DESC.
  • Dos guiones -- inician un comentario: el motor ignora el resto de la línea.
SELECT columna, ... FROM tabla [WHERE condición] [ORDER BY columna [ASC | DESC]];

Cómo pedir ayuda

La referencia es la documentación oficial: sqlite.org/lang.html para SQLite y postgresql.org/docs para PostgreSQL. Yo dejo la de SQLite abierta en una pestaña todo el curso: sus diagramas de cada instrucción responden más dudas que un foro. En la consola de PostgreSQL, \h SELECT muestra la sintaxis y \? lista los comandos; en la de SQLite, .help. Las herramientas de terminal responden a --help, por ejemplo pg_dump --help.