Ir al contenido principal

Tecnología en datos

Dónde viven los datos

Cuando se escribe una consulta y se ven los resultados en pantalla, es fácil imaginar que la base de datos "está ahí", en algún lugar abstracto. En realidad está en un disco, guardada en archivos, y entender cómo funciona ese paso de la información por el disco explica varias cosas que de otro modo parecen arbitrarias.

El camino de un dato

  1. El disco. Es el soporte físico. Guarda la información en superficies magnéticas o en memoria flash, organizadas en sectores de tamaño fijo.
  2. El sistema de archivos. Es la parte del sistema operativo que organiza el disco en archivos y carpetas. Le pone nombre a las cosas y lleva la cuenta de qué sector pertenece a quién.
  3. Los archivos de la base de datos. Acá está el punto que sorprende: una base de datos no es un archivo. Son varios, y cada uno cumple una función distinta.
  4. El gestor. Es el único que sabe qué hay adentro de cada archivo y cómo interpretarlo.

Por qué conviene saber esto

Tres cosas que parecen misteriosas dejan de serlo cuando se entiende este esquema: por qué un índice hace que una búsqueda pase de segundos a milisegundos, por qué el respaldo no es simplemente "copiar el archivo", y por qué al borrar miles de filas el archivo no se achica. Las tres respuestas están en cómo el gestor lee y escribe el disco.

El bloque: la unidad de almacenamiento

Este es el concepto que más consecuencias prácticas tiene de todo el tema. El disco no puede leer un solo byte: lee y escribe bloques completos, de un tamaño fijo que suele ser de 4 a 16 kilobytes.

Dicho de otro modo: si se necesita un dato de 20 bytes, el disco igual va a traer el bloque entero en el que está. No hay forma de pedir "solo esos 20 bytes".

Primera consecuencia: agrupar lo que se usa junto

Si dos datos se consultan siempre juntos, conviene que estén en el mismo bloque: así se leen de una sola vez. Si están en bloques distintos, hay que ir al disco dos veces. Por eso el gestor se esfuerza en guardar juntas las filas que se relacionan y en ordenar los datos por su clave.

Segunda consecuencia: el tamaño de las filas importa

En un bloque entra una cantidad fija de filas. Si cada fila es muy ancha, entran pocas, y para recorrer la tabla hay que leer muchos más bloques. Esa es la razón por la que elegir bien el tipo de dato no es un detalle: un campo declarado como TEXT cuando alcanzaba con VARCHAR(50) hace la tabla más lenta de leer, aunque la mayoría de los registros tengan poco texto.

Los archivos de una base de datos

Una base de datos está formada por varios archivos, y cada uno tiene una función. Reconocerlos ayuda a entender qué está haciendo el gestor en cada momento, y sobre todo qué hay que respaldar.

Tipo de archivo Qué guarda Qué pasaría si se pierde
Datos El contenido de las tablas: las filas y sus valores. Se pierde la información. Es lo primero que hay que respaldar.
Índices Estructuras ordenadas que permiten encontrar una fila sin recorrer todas las demás. Las consultas se vuelven lentísimas, pero el gestor puede reconstruirlos a partir de los datos.
Registro (log) El historial de los cambios: qué se modificó, en qué orden y dentro de qué transacción. Se pierde la capacidad de deshacer y de recuperarse hasta el último instante antes de una falla.
Diccionario de datos La descripción de la estructura: qué tablas hay, con qué campos, de qué tipo y con qué restricciones. El gestor no sabe qué contienen los archivos de datos. Es información crítica.
Configuración Los parámetros de funcionamiento: memoria, rutas, usuarios. Hay que volver a configurarla a mano. Es molesto, pero recuperable.

Los archivos de índice

Un índice es una estructura aparte que mantiene ordenados los valores de un campo, junto con la ubicación de la fila a la que pertenecen. Es exactamente la misma idea que el índice de un libro: en lugar de hojear las trescientas páginas buscando una palabra, se va al índice, se ve en qué página está y se salta directo.

Cómo funciona un índice: las filas se guardan en un orden y el índice mantiene una lista ordenada por apellido que indica en qué fila está cada valor Las filas, en el orden en que se guardaron fila 1 · Gómez fila 2 · Álvarez fila 3 · Pérez fila 4 · Benítez El índice, ordenado por apellido Álvarez → fila 2 Benítez → fila 4 Gómez → fila 1 Pérez → fila 3 La flecha indica la ubicación: por eso el índice permite saltar directo a la fila
Las filas quedaron guardadas en el orden en que se cargaron, y el índice mantiene los mismos valores ordenados. Con cuatro filas no se nota la diferencia; con cuatro millones, es la diferencia entre instantáneo y eterno.

El costo de un índice

Los índices no son gratis, y por eso no se crea uno en cada campo:

  • Ocupan espacio. A veces bastante: un índice sobre una tabla grande puede llegar a pesar tanto como la tabla.
  • Hay que actualizarlos en cada cambio. Cada INSERT, UPDATE o DELETE obliga a modificar también el índice. Eso hace más lentas las escrituras.
  • Hay que mantenerlos. Con el uso se van degradando, y algunos gestores necesitan una operación de reconstrucción periódica.

Cuándo crear uno

  • En el campo que se usa para buscar con frecuencia: el documento de un cliente, el código de un producto.
  • En el campo que se usa para ordenar los resultados.
  • En las claves foráneas, que se consultan todo el tiempo para unir tablas. Es el índice que más se olvida.

Y no hace falta crear índices "por las dudas". Un índice de más no rompe nada, pero hace más lentas todas las escrituras sin aportar nada a cambio.

Compresión

La compresión consiste en guardar los datos ocupando menos espacio del que ocuparían en su forma original. Se logra detectando repeticiones y reemplazándolas por referencias más cortas.

En una base de datos se usa compresión sin pérdida, y esa condición no es negociable: los datos tienen que poder recuperarse exactamente iguales. La compresión con pérdida —la de las fotos y la música— sirve para archivos que se consumen con los sentidos, no para información.

Dónde se aplica

  • En las tablas. Se pueden comprimir bloques enteros de datos. Es transparente para quien consulta: el gestor descomprime al leer.
  • En los índices. Suelen comprimirse bien, porque tienen muchos valores repetidos.
  • En los respaldos. Es el uso más común y el más simple: el archivo de copia ocupa una fracción del original.

El intercambio: disco contra tiempo

Comprimir siempre cuesta tiempo de procesador: hay que descomprimir para poder leer. Pero a veces el resultado es más rápido, no más lento, porque se leen menos bloques del disco. En cambio, los datos comprimidos no se pueden indexar con la misma facilidad, y buscar dentro de una tabla comprimida es más costoso. Por eso la compresión se reserva para datos históricos que ya no cambian: registros de años anteriores, archivos de movimientos, información de consulta ocasional.

Cifrado

El cifrado transforma los datos en algo ilegible para quien no tiene la clave. Su objetivo no es ahorrar espacio —eso es la compresión— sino proteger la información: si alguien se lleva el disco, los datos no le sirven.

Dos momentos distintos

Cifrado en reposo Cifrado en tránsito
Protege contra El robo del disco o del equipo, y el acceso indebido a los archivos. Que alguien intercepte y lea la comunicación por la red.
Cuándo actúa Mientras los datos están guardados. Mientras los datos viajan entre el cliente y el servidor.
Cómo se nota No se nota: es transparente para quien usa la base. El servidor exige una conexión segura. Es lo que la S de HTTPS indica en una página web.

Niveles de cifrado

Se puede cifrar toda la base, una tabla concreta, o solo algunas columnas. Cifrar la base completa es lo más simple y lo más seguro, pero también lo más costoso: hay que descomprimir cada bloque al leerlo. Cifrar solo las columnas sensibles —el número de documento, el teléfono, un diagnóstico médico— permite mantener el rendimiento del resto.

Y el punto débil del cifrado no es el algoritmo: es la clave. Si se pierde, los datos se pierden con ella, sin excepción. Por eso las claves se respaldan aparte, y nunca en el mismo lugar que los datos que protegen.

Respaldos

Un respaldo —o backup— es una copia de los datos, guardada en otro lugar, que permite reconstruir la base si algo se pierde. No es una precaución opcional: los discos se rompen, los archivos se borran por error, y existen programas maliciosos cuyo único objetivo es destruir información.

Tres formas de respaldar

Tipo Qué copia Ventaja Desventaja
Completo Toda la base, entera. Restaurar es simple y directo. Ocupa mucho y tarda. Si se hace todos los días, se guardan millones de copias de lo mismo.
Incremental Solo lo que cambió desde el último respaldo. Rápido y ocupa poco. Para restaurar hay que aplicar todos los incrementales en orden. Si falta uno, no sirve.
Diferencial Todo lo que cambió desde el último completo. Restaurar necesita solo dos piezas: el completo y el último diferencial. Cada día ocupa más que el anterior.

La regla 3-2-1

Es una forma simple de recordar cómo guardar los respaldos, y evita el error más común: tener todas las copias en el mismo lugar.

  • 3 copias de los datos: el original y dos respaldos.
  • 2 medios distintos: por ejemplo, un disco externo y un servicio en la nube.
  • 1 de esas copias fuera del lugar: si se incendia el edificio, un respaldo guardado en la misma sala no sirve de nada.

Resumen

Concepto La idea que hay que recordar
Dónde vivenEn el disco, en varios archivos que administra el gestor.
El bloqueEl disco lee bloques completos, no bytes sueltos. Por eso importa el tamaño de las filas.
Los cinco archivosDatos, índices, registro, diccionario y configuración.
ÍndiceEstructura ordenada que permite saltar a la fila. Acelera las lecturas y hace más lentas las escrituras.
CompresiónOcupar menos espacio, sin pérdida. Se reserva para datos que ya no cambian.
Cifrado en reposoProtege los datos guardados si se roban el disco.
Cifrado en tránsitoProtege los datos mientras viajan por la red.
ContraseñasNo se cifran: se guardan con un resumen irreversible.
RespaldosCompleto, incremental o diferencial. Regla 3-2-1, y siempre probar la restauración.