¿Qué es una base de datos en términos sencillos?
5 min de lecturaLa analogía de la hoja de cálculo
La forma más directa de entender una base de datos es pensar en una hoja de cálculo de Google Sheets o Excel, pero con más estructura y mucha más capacidad. Una base de datos almacena información en tablas. Cada tabla tiene columnas (que definen qué tipo de dato se guarda) y filas (que contienen los registros individuales).
La diferencia principal con una hoja de cálculo es que una base de datos impone reglas: cada columna tiene un tipo de dato fijo, las relaciones entre tablas están definidas formalmente, y se pueden ejecutar operaciones complejas sobre millones de filas en segundos. Una hoja de cálculo con 100.000 filas se vuelve lenta e inestable; una base de datos puede manejar miles de millones de filas sin problema.
Por ejemplo, una tabla de «eventos» en GA4 exportada a BigQuery podría verse así:
-- Estructura simplificada de la tabla de eventos GA4
-- Cada fila es un evento (page_view, session_start, click, etc.)
event_date | event_name | user_pseudo_id | page_location
--------------+---------------+----------------+----------------------------
20260415 | page_view | abc123 | /guia-seo
20260415 | session_start | abc123 | /guia-seo
20260415 | scroll | abc123 | /guia-seo
20260415 | page_view | def456 | /herramientas
Cada fila es un evento. Cada columna almacena un atributo de ese evento: la fecha, el tipo de evento, el identificador del usuario y la página donde ocurrió.
Tablas, filas y columnas
Estos tres conceptos forman la base de todo lo que se hace con SQL:
- Tabla: una colección de datos sobre un tema específico. En el contexto de SEO, las tablas más comunes son la tabla de eventos de GA4 y la tabla de impresiones de Search Console. Cada tabla tiene un nombre único dentro de su dataset.
- Columna: define un tipo de dato. Cada columna tiene un nombre (
event_name,clicks,impressions) y un tipo (texto, número, fecha, etc.). Las columnas son fijas: no cambian de un registro a otro. - Fila: un registro individual. En la tabla de eventos de GA4, cada fila es un evento (un page_view, un click, un scroll). En la tabla de GSC, cada fila es una combinación de keyword + URL + fecha + dispositivo + país.
Esta estructura es lo que hace posible escribir consultas SQL. Cuando se escribe SELECT event_name FROM eventos, se está pidiendo una columna específica de una tabla concreta. La base de datos sabe exactamente dónde buscar porque todo está organizado.
Tipos de datos: no todo es texto
Cada columna tiene un tipo de dato definido, y esto importa para las consultas. Los tipos más comunes en el contexto de SEO y analytics son:
- STRING (texto): cadenas de caracteres. URLs, nombres de eventos, queries de búsqueda. Ejemplo:
'organic','/guia-seo'. Se comparan con operadores como=oLIKE. - INTEGER (entero): números sin decimales. Clics, impresiones, conteos. Ejemplo:
1247. Se pueden sumar, promediar y contar. - FLOAT/NUMERIC (decimal): números con decimales. Posición media, porcentajes, valores monetarios. Ejemplo:
3.72. - DATE/TIMESTAMP (fecha): fechas y marcas de tiempo. Ejemplo:
2026-04-15. Permiten filtrar por rangos temporales y agrupar por día, semana o mes. - BOOLEAN (verdadero/falso): valores binarios. Ejemplo:
TRUE,FALSE. Útiles para filtros simples. - RECORD/STRUCT (registro anidado): un tipo especial de BigQuery que contiene sub-campos. Por ejemplo,
traffic_sourceen GA4 es un RECORD que contienemedium,sourceycampaign.
Saber el tipo de dato de cada columna importa porque determina qué operaciones se pueden hacer. No tiene sentido calcular el promedio de una columna de texto, ni buscar un patrón con LIKE en una columna numérica. BigQuery devuelve un error si se intenta.
Datasets y proyectos: la jerarquía de BigQuery
En BigQuery, los datos se organizan en una jerarquía de tres niveles:
- Proyecto: el contenedor principal, asociado a una cuenta de Google Cloud. Ejemplo:
mi-proyecto-seo. - Dataset: una colección de tablas dentro del proyecto. Cuando se conecta GA4 a BigQuery, se crea un dataset con un nombre como
analytics_123456789. Cuando se conecta GSC, se crea otro dataset llamadosearchconsole. - Tabla: donde viven los datos. Las tablas de GA4 se particionan por día:
events_20260415,events_20260416, etc. Cada tabla contiene los eventos de un solo día.
La referencia completa a una tabla en BigQuery se escribe como proyecto.dataset.tabla. Eso es lo que aparece en la cláusula FROM de las consultas:
SELECT *
FROM `mi-proyecto.analytics_123456789.events_20260415`
LIMIT 10
Los backticks (comillas invertidas) son necesarios cuando el nombre contiene guiones o empieza con un número.
Relaciones entre tablas
Una base de datos relacional permite conectar tablas entre sí mediante campos comunes. En SEO, el ejemplo más claro es cruzar datos de Search Console con datos de GA4. Ambas fuentes tienen información sobre URLs, pero cada una aporta métricas distintas:
- GSC aporta: keywords, impresiones, clics, posición media.
- GA4 aporta: sesiones, engagement, conversiones, comportamiento en el sitio.
El campo común es la URL. Con SQL, es posible hacer un JOIN entre ambas tablas usando la URL como clave de unión. El resultado es una vista combinada que ninguna herramienta individual puede ofrecer. Las queries de cruce GA4 + GSC del catálogo de Queryteca muestran exactamente cómo funciona esta operación en la práctica.
De la teoría a la práctica
Entender tablas, filas, columnas y tipos de datos es suficiente para empezar a leer y escribir consultas SQL. No hace falta dominar teoría de bases de datos ni normalización avanzada. Con estos conceptos claros, el siguiente paso lógico es conocer BigQuery, la herramienta donde se ejecutan la mayoría de las consultas SQL para SEO.
Queries para practicar
Sesiones orgánicas por día en los últimos 30 días
Permite visualizar el volumen diario de sesiones de tráfico orgánico para detectar tendencias, picos y caídas en los últimos 30 días.
Limpiar y normalizar una lista de URLs con SQL
Normaliza una lista de URLs eliminando parámetros de tracking, fragmentos, barras finales duplicadas y forzando minúsculas. Es el paso previo imprescindible antes de cualquier análisis de URLs.
Top 50 landing pages orgánicas por sesiones
Identifica las 50 páginas de entrada con mayor volumen de sesiones orgánicas. Útil para priorizar esfuerzos de optimización en las URLs que más tráfico captan.
¿Listo para practicar? Explora el catálogo de queries
Ver catálogo