Archivo
Un archivo es el conjunto de datos que el sistema guarda en un mismo soporte, bajo un nombre. En el lenguaje de las bases de datos, el término se usa en dos sentidos distintos, y conviene no confundirlos.
El archivo como conjunto de registros
Es el sentido más antiguo, anterior a las bases de datos. Un archivo es una colección de registros del mismo tipo: todos los clientes en un archivo, todos los productos en otro. Cada registro ocupa el mismo espacio y tiene los mismos campos, así que el programa sabe en qué posición del archivo está el registro número 50.
Ese esquema es el que hoy se reemplaza por tablas, pero el vocabulario quedó: cuando se habla de "un archivo de clientes", muchas veces se está hablando de la tabla de clientes.
El archivo como objeto del disco
Es el sentido actual: el archivo físico que el gestor guarda en el disco. Una base de datos no es un archivo, sino varios, cada uno con su función: los datos, los índices, el registro de cambios y el diccionario de datos.
Un archivo plano con extensión .csv —texto separado por comas— es el ejemplo más simple de archivo de datos, y se usa todo el tiempo para importar y exportar información entre bases de datos distintas. Es el formato que casi todas las herramientas entienden.
Registro
Un registro es una fila de una tabla: el conjunto de datos que describen a un elemento. Si la tabla es de libros, un registro es un libro; si es de alumnos, un registro es un alumno.
Cada registro está formado por los mismos campos, en el mismo orden, y todos los registros de una tabla comparten esa estructura. Lo que los diferencia es el valor que tiene cada campo en cada uno.
| ID | TÍTULO | AUTOR | AÑO |
|---|---|---|---|
| 101 | Cien años de soledad | Gabriel García Márquez | 1967 |
| 102 | Rayuela | Julio Cortázar | 1963 |
Cada fila es un registro, y las dos filas tienen los mismos cuatro campos. En las bases de datos no relacionales el concepto se mantiene, aunque cambie el nombre: ahí un registro es un documento, y no tiene por qué tener los mismos campos que sus vecinos.
Campo
Un campo —o columna, o atributo— es cada uno de los datos que describen a un registro. Es la unidad más pequeña de información, y el punto donde se guarda un valor concreto.
Lo que define a un campo es su tipo de dato: si guarda números, texto, fechas o valores lógicos. Ese tipo no es una formalidad: el gestor lo usa para rechazar lo que no corresponde.
| Campo | Tipo | Qué admite |
|---|---|---|
id | Entero | Números enteros, positivos, únicos |
titulo | Texto (50) | Hasta 50 caracteres de texto |
anio | Entero | El año de publicación |
disponible | Booleano | Solo dos valores: sí o no |
Por eso declarar bien un campo es una decisión de diseño y no un detalle: si el campo anio se declarara como texto, nada impediría guardar "mil novecientos" y después no se podría ordenar por año ni calcular promedios.
Tabla
Una tabla es el conjunto de registros del mismo tipo: la estructura que agrupa todas las filas con los mismos campos. Es el objeto central del modelo relacional, y cada tabla recibe un nombre único dentro de la base de datos.
La regla que ordena todo el diseño es esta: una tabla, un solo tema. Una tabla de clientes guarda clientes y nada más; una de productos, productos. Lo que relaciona a las tablas entre sí no es tener datos repetidos, sino el uso de claves.
Esa regla es la que se sigue cuando se normaliza, y romperla es lo que produce los problemas de redundancia.
Clave primaria
La clave primaria es el campo —o el conjunto de campos— que identifica de manera única cada registro de una tabla. Es lo que permite decir "este cliente" sin ambigüedad.
Sus dos condiciones
- No se repite. No puede haber dos registros con el mismo valor de clave primaria: si se repitiera, serían dos cosas distintas con el mismo nombre y el sistema no podría distinguirlas.
- No puede estar vacía. Si pudiera quedar sin valor, habría registros imposibles de identificar.
Además, la clave primaria crea un índice automáticamente. Tiene sentido: es el campo por el que se busca todo el tiempo.
Puede ser un número que el sistema genera solo —lo habitual— o un dato que ya existe en la realidad, como el número de documento o el legajo. En general conviene el número generado, porque los datos reales cambian: los documentos se corrigen, los legajos se reasignan, y una clave primaria que cambia es un problema serio.
Clave foránea
La clave foránea es un campo de una tabla que hace referencia a la clave primaria de otra tabla. Es el mecanismo que convierte dos tablas independientes en un sistema relacionado.
| Tabla: LIBROS | Tabla: PRESTAMOS | ||
|---|---|---|---|
| ID (primaria) | TÍTULO | ID (primaria) | LIBRO_ID (foránea) |
| 101 | Rayuela | 1 | 101 |
| 102 | Martín Fierro | 2 | 101 |
En PRESTAMOS, el campo LIBRO_ID no guarda el título del libro: guarda un número que apunta a la tabla de libros. Así, el título del libro está escrito una sola vez, y los dos préstamos se refieren al mismo libro sin repetir su nombre.
La clave foránea puede repetirse —de hecho, en el ejemplo se repite: el mismo libro se prestó dos veces— y eso es exactamente lo que permiten las relaciones: muchos registros de una tabla apuntando a uno de otra. Esa relación se llama uno a muchos, y es la más común.
Índice
Un índice es una estructura aparte que mantiene ordenados los valores de un campo, junto con la ubicación del registro al que pertenecen. Su función es la misma que la del índice de un libro: en lugar de hojear todas las páginas, se consulta la lista ordenada y se va directo a la página.
Sin índice, para encontrar un cliente por su apellido hay que recorrer la tabla entera, fila por fila. Con índice, el gestor consulta la estructura ordenada y llega en un salto. Con mil registros la diferencia es imperceptible; con un millón, es la diferencia entre instantáneo y varios segundos.
Integridad de los datos
La integridad es la garantía de que los datos guardados son correctos y coherentes. Es el conjunto de reglas que el gestor hace cumplir, y se clasifica según qué tipo de regla protege.
| Tipo | Qué garantiza | Ejemplo |
|---|---|---|
| De entidad | Cada registro se puede identificar sin ambigüedad. | La clave primaria no se repite y no queda vacía. |
| Referencial | Toda referencia apunta a algo que existe. | No se puede cargar un préstamo de un libro que no está en la tabla de libros. |
| De dominio | Los valores que se cargan pertenecen al conjunto de valores permitidos. | El campo anio acepta números de cuatro cifras, no texto. |
| De usuario | Se cumplen las reglas propias del sistema, que no son generales. | Un préstamo no puede tener fecha de devolución anterior a la de retiro. |
La integridad es una responsabilidad compartida entre el gestor y quien diseñó la base. El gestor hace cumplir las reglas que se declararon; declararlas —o no— es una decisión del diseño. Una base sin restricciones acepta cualquier dato, incluso los imposibles, y después no hay forma de saber cuáles estaban mal.
Resumen
| Término | Qué es |
|---|---|
| Archivo | Conjunto de datos guardados bajo un nombre. Una base de datos son varios archivos. |
| Registro | Una fila: los datos de un elemento. |
| Campo | Una columna: cada dato que describe al registro. |
| Tabla | El conjunto de registros del mismo tipo. |
| Clave primaria | Identifica cada registro. No se repite y no puede estar vacía. |
| Clave foránea | Referencia a la clave primaria de otra tabla. |
| Índice | Estructura ordenada que permite encontrar un registro sin recorrer la tabla. |
| Integridad | Las reglas que garantizan que los datos sean correctos y coherentes. |
