Conceptos de bases de datos relacionales: tablas, claves y ACID
Lección 1.3 · Tiempo de lectura: ~10 min · Tareas de práctica ↓
Una base de datos relacional organiza los datos en tablas conectadas mediante claves. En esta lección conocerás sus elementos básicos (tablas, columnas, filas, claves primarias, claves foráneas, claves únicas y restricciones) y verás cómo el modelo ACID mantiene las transacciones seguras y fiables incluso con acceso concurrente o ante un fallo del sistema.
En las lecciones anteriores presentamos el concepto de base de datos y vimos los principales tipos de bases de datos. Ahora profundizaremos en los componentes centrales de las bases de datos relacionales, fundamentales para entender cómo se organizan los datos y cómo se accede a ellos con SQL.

¿Qué son las tablas, las columnas y las filas?
Las bases de datos relacionales organizan los datos en estructuras llamadas tablas. Piensa en una tabla como en una hoja de cálculo:
- Tabla: una colección de datos relacionados. Por ejemplo, una tabla puede guardar información sobre clientes, productos o pedidos.
- Columna: un conjunto vertical de datos dentro de una tabla. Cada columna representa un atributo o característica concreta de los datos. Por ejemplo, en una tabla "Customers" las columnas podrían ser "CustomerID", "FirstName", "LastName" y "Email".
- Fila: un conjunto horizontal de datos dentro de una tabla. Cada fila representa una única instancia o registro. En una tabla "Customers", cada fila representa a un cliente.
Ejemplo:
Veamos una tabla "Customers" sencilla:
| CustomerID | FirstName | LastName | |
|---|---|---|---|
| 1 | John | Doe | john.doe@example.com |
| 2 | Jane | Smith | jane.smith@example.com |
| 3 | David | Lee | david.lee@example.com |
- Toda la estructura es la tabla llamada "Customers".
- "CustomerID", "FirstName", "LastName" y "Email" son las columnas.
- Cada línea (por ejemplo, "1 | John | Doe | john.doe@example.com") es una fila.
¿Qué son las claves de una base de datos? Primarias, foráneas y únicas
Las claves son un concepto fundamental en las bases de datos relacionales. Sirven para establecer relaciones entre tablas y garantizar la integridad de los datos. Estos son los principales tipos de claves:
Clave primaria
- Una clave primaria es una columna (o un conjunto de columnas) que identifica de forma única cada fila de una tabla.
- Características de una clave primaria:
- Única: dos filas no pueden tener el mismo valor de clave primaria.
- No nula: una columna de clave primaria no puede contener valores NULL.
- En nuestra tabla "Customers", "CustomerID" es una buena candidata a clave primaria, porque cada cliente tiene un ID único y no puede estar vacío.
Clave foránea
- Una clave foránea es una columna (o un conjunto de columnas) de una tabla que hace referencia a la clave primaria de otra tabla.
- Las claves foráneas establecen relaciones entre tablas.
- Por ejemplo, una tabla "Orders" puede tener una columna "CustomerID" que sea una clave foránea que haga referencia a "CustomerID" de la tabla "Customers". Así cada pedido queda vinculado al cliente que lo hizo.
Clave única
- Una clave única es una columna (o un conjunto de columnas) que garantiza que sus valores no se repiten en ninguna fila de la tabla.
- Diferencia con la clave primaria:
- Una tabla solo puede tener una clave primaria, pero puede tener varias claves únicas.
- Las columnas de una clave única sí pueden admitir valores NULL (aunque las implementaciones varían ligeramente).
- En nuestra tabla "Customers", "Email" podría ser una clave única, para que cada cliente tenga una dirección de correo distinta.
¿Qué son las restricciones SQL?
Una restricción es una regla aplicada a una columna o a una tabla que el motor de la base de datos hace cumplir automáticamente. Las claves (primaria, foránea, única) son un tipo de restricción. Hay otras restricciones importantes que usarás a diario en SQL:
| Restricción | Finalidad |
|---|---|
NOT NULL | La columna siempre debe tener un valor; no se permite NULL. |
UNIQUE | Todos los valores de la columna deben ser distintos entre las filas. |
PRIMARY KEY | Combina NOT NULL y UNIQUE; identifica de forma única cada fila. |
FOREIGN KEY | El valor debe coincidir con un valor existente en una columna de otra tabla. |
CHECK | El valor debe cumplir una condición indicada, por ejemplo age >= 0. |
Por ejemplo, en una tabla customers:
customer_idpuede ser laPRIMARY KEY, para que cada cliente tenga un identificador único.emailpuede marcarse comoUNIQUE, para que dos clientes no compartan la misma dirección de correo.agepuede usar una reglaCHECKcomoage >= 0, para rechazar edades negativas.
La base de datos hace cumplir estas reglas automáticamente y rechaza los cambios no válidos, lo que ayuda a mantener los datos consistentes sin comprobaciones adicionales en la aplicación.
¿Qué es ACID? La seguridad de las transacciones en las bases de datos relacionales
Otro concepto central al trabajar con bases de datos relacionales es el modelo ACID. ACID define las propiedades que hacen que las transacciones sean seguras y fiables.
Una transacción es un grupo de operaciones que se trata como una sola unidad de trabajo. Por ejemplo, una transferencia de dinero entre dos cuentas bancarias suele incluir al menos dos operaciones:
- Restar el dinero de la cuenta A.
- Sumar el dinero a la cuenta B.
Los dos pasos deben completarse juntos, o no debe aplicarse ninguno.
ACID significa:
- Atomicidad: una transacción es "todo o nada". Si un paso falla, se deshace la transacción completa.
- Consistencia: una transacción debe llevar la base de datos de un estado válido a otro, respetando todas las reglas y restricciones definidas.
- Aislamiento: las transacciones simultáneas no deben interferir entre sí de un modo que produzca resultados incorrectos.
- Durabilidad: una vez confirmada una transacción, sus cambios son permanentes, aunque haya un corte de luz o un fallo del sistema.
Estas propiedades son esenciales en sistemas reales como la banca, el comercio electrónico y la gestión de inventario, donde una actualización incorrecta o parcial puede causar problemas graves.
Puntos clave de esta lección:
- Una base de datos relacional guarda los datos en tablas formadas por columnas y filas.
- Una clave primaria identifica de forma única cada fila; debe ser única y no nula.
- Una clave foránea vincula una fila de una tabla con una fila de otra y garantiza la integridad referencial.
- Una clave única garantiza que los valores de una columna no se repiten, y una tabla puede tener varias.
- Las restricciones (
NOT NULL,CHECK) aplican reglas sobre los datos automáticamente en la propia base de datos. - El modelo ACID (atomicidad, consistencia, aislamiento, durabilidad) garantiza que las transacciones sean fiables incluso ante fallos o con acceso concurrente.
Preguntas frecuentes
¿Qué diferencia hay entre una clave primaria y una clave única?
Una clave primaria identifica de forma única cada fila y no puede ser NULL. Una tabla solo puede tener una clave primaria. Una clave única también garantiza que los valores no se repiten, pero puede admitir NULL, y una tabla puede tener varias. Usa la clave primaria como identificador principal de la fila y las claves únicas para garantizar la unicidad de otras columnas, como email.
¿Puede una clave foránea hacer referencia a una clave única en lugar de a una clave primaria?
Sí. Una clave foránea puede hacer referencia a cualquier columna (o conjunto de columnas) con una restricción de unicidad, no solo a la clave primaria. Aun así, hacer referencia a la clave primaria es la práctica más habitual y recomendada.
¿Qué ocurre si una transacción ACID falla a mitad?
La atomicidad garantiza que se deshaga toda la transacción, de modo que la base de datos queda en el mismo estado que antes de empezar. No se guarda ningún cambio parcial.
Preguntas de entrevista
¿Cómo explicarías qué es una clave primaria en una entrevista?
Una clave primaria es una columna o combinación de columnas que identifica de forma única cada fila de una tabla. Debe ser única, no puede contener valores NULL y solo puede haber una por tabla. Es el punto de anclaje de las referencias de clave foránea desde otras tablas.
¿Qué es la integridad referencial y cómo la garantizan las claves foráneas?
La integridad referencial significa que un valor de clave foránea en una tabla siempre debe coincidir con un valor de clave primaria existente en la tabla referenciada, o ser NULL. El motor de la base de datos lo hace cumplir automáticamente: se rechaza insertar un valor de clave foránea huérfano o borrar una fila referenciada, salvo que se haya definido una regla en cascada.
¿Qué significa ACID y por qué es importante?
ACID significa atomicidad, consistencia, aislamiento y durabilidad. Define las garantías que hacen fiables las transacciones de una base de datos. Sin ACID, las escrituras concurrentes podrían corromper los datos, los fallos parciales podrían dejar la base de datos en un estado no válido y los cambios confirmados podrían perderse tras una caída. Por ACID se confía en las bases de datos relacionales para sistemas financieros, médicos y otros sistemas críticos.