Lesión 1.3 · Tiempo de lectura: ~10 min
Una base de datos relacional organiza los datos en tablas conectadas por claves. En esta lección aprenderás los bloques de construcción fundamentales: tablas, columnas, filas, claves primarias, claves foráneas, claves únicas y restricciones, y descubrirás cómo el modelo ACID mantiene las transacciones seguras y confiables incluso bajo acceso concurrente o fallos del sistema.
Conceptos de Bases de Datos Relacionales: Tablas, Claves y ACID
En las lecciones anteriores, introdujimos el concepto de bases de datos y analizamos los principales tipos de bases de datos. Ahora profundizaremos en los componentes centrales de las bases de datos relacionales, que son fundamentales para entender cómo se organizan y acceden a los datos utilizando SQL.

¿Qué Son las Tablas, Columnas y Filas?
Las bases de datos relacionales organizan los datos en estructuras llamadas tablas. Piensa en una tabla como una hoja de cálculo:
- Tabla: Una colección de datos relacionados. Por ejemplo, una tabla podría almacenar 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 específica de los datos. Por ejemplo, en una tabla de "Clientes", 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 de los datos. En una tabla de "Clientes", cada fila representaría un único cliente.
Ejemplo:
Visualicemos una tabla simple de "Clientes":
| CustomerID | FirstName | LastName | |
|---|---|---|---|
| 1 | John | Doe | john.doe@example.com |
| 2 | Jane | Smith | jane.smith@example.com |
| 3 | David | Lee | david.lee@example.com |
- La estructura completa es la tabla llamada "Clientes."
- "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 Base de Datos? Primarias, Foráneas y Únicas
Las claves son un concepto crítico en las bases de datos relacionales. Se utilizan para establecer relaciones entre tablas y hacer cumplir la integridad de los datos. Aquí están los principales tipos de claves:
Clave Primaria
- Una Clave Primaria es una columna (o un conjunto de columnas) que identifica de manera única cada fila en una tabla.
- Características de una Clave Primaria:
- Única: No puede haber dos filas con el mismo valor de clave primaria.
- No Nula: Una columna de clave primaria no puede contener valores NULL.
- En nuestra tabla de "Clientes", "CustomerID" es un buen candidato para la 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) en una tabla que hace referencia a la Clave Primaria en otra tabla.
- Las claves foráneas establecen relaciones entre tablas.
- Por ejemplo, si tenemos una tabla de "Pedidos", podría tener una columna "CustomerID" que sea una clave foránea que haga referencia al "CustomerID" en la tabla de "Clientes". Esto vincula cada pedido al cliente que lo realizó.
Clave Única
- Una Clave Única es una columna (o un conjunto de columnas) que asegura que los valores en la(s) columna(s) sean únicos en todas las filas de la tabla.
- Diferencia con la Clave Primaria:
- Una tabla puede tener solo una clave primaria, pero puede tener múltiples claves únicas.
- Las columnas de clave única pueden permitir valores NULL (aunque las implementaciones varían ligeramente).
- En nuestra tabla de "Clientes", "Email" podría ser una clave única, asegurando que cada cliente tenga una dirección de correo electrónico única.
¿Qué Son las Restricciones SQL?
Una restricción es una regla aplicada a una columna o tabla que el motor de base de datos hace cumplir automáticamente. Las claves (primarias, foráneas, únicas) son un tipo de restricción. Hay varias otras restricciones importantes que utilizarás en SQL diariamente:
| Restricción | Propósito |
|---|---|
NOT NULL | La columna debe tener siempre un valor; no se permite NULL. |
UNIQUE | Todos los valores en la columna deben ser distintos entre filas. |
PRIMARY KEY | Combina NOT NULL + UNIQUE; identifica de manera única cada fila. |
FOREIGN KEY | El valor debe coincidir con un valor existente en la columna de otra tabla. |
CHECK | El valor debe satisfacer una condición especificada, por ejemplo, age >= 0. |
Por ejemplo, en una tabla customers:
customer_idpuede actuar como unaPRIMARY KEY, por lo que cada cliente tiene un identificador único.emailpuede ser marcado comoUNIQUE, por lo que dos clientes no pueden compartir la misma dirección de correo electrónico.agepuede usar una reglaCHECKcomoage >= 0, por lo que se rechazan edades negativas.
El motor de base de datos hace cumplir automáticamente estas reglas y rechaza cambios inválidos, lo que ayuda a mantener la consistencia de los datos sin verificaciones adicionales a nivel de aplicación.
¿Qué Es ACID? Seguridad de Transacciones en Bases de Datos Relacionales
Al trabajar con bases de datos relacionales, otro concepto central es el modelo ACID. ACID define las propiedades que hacen que las transacciones de base de datos sean seguras y confiables.
Una transacción es un grupo de operaciones tratadas como una unidad de trabajo. Por ejemplo, transferir dinero entre dos cuentas bancarias generalmente implica al menos dos operaciones:
- Restar dinero de la Cuenta A.
- Agregar dinero a la Cuenta B.
Ambos pasos deben tener éxito juntos, o ninguno debe aplicarse.
ACID significa:
- Atomicidad: Una transacción es "todo o nada". Si un paso falla, toda la transacción se revierte.
- Consistencia: Una transacción debe mover la base de datos de un estado válido a otro, preservando todas las reglas y restricciones definidas.
- Aislamiento: Las transacciones concurrentes no deben interferir entre sí de una manera que cause resultados incorrectos.
- Durabilidad: Una vez que una transacción se ha comprometido, sus cambios son permanentes, incluso si hay una pérdida de energía o un fallo del sistema.
Estas propiedades son esenciales en sistemas del mundo real como la banca, el comercio electrónico y la gestión de inventarios, donde actualizaciones incorrectas o parciales pueden causar problemas graves.
Puntos clave de esta lección:
- Una base de datos relacional almacena datos en tablas compuestas por columnas y filas.
- Una clave primaria identifica de manera única cada fila; debe ser única y no nula.
- Una clave foránea vincula una fila en una tabla a una fila en otra, haciendo cumplir la integridad referencial.
- Una clave única garantiza la unicidad en una columna pero permite múltiples claves únicas por tabla.
- Restricciones (
NOT NULL,CHECK) hacen cumplir reglas de datos a nivel de base de datos automáticamente. - El modelo ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) asegura que las transacciones sean confiables incluso bajo fallos o acceso concurrente.
En la próxima lección, veremos los tipos de datos básicos utilizados en bases de datos relacionales y cómo elegir el tipo adecuado para cada columna.
Preguntas Frecuentes
¿Cuál es la diferencia entre una clave primaria y una clave única?
Una clave primaria identifica de manera única cada fila y no puede ser NULL. Una tabla puede tener solo una clave primaria. Una clave única también hace cumplir la unicidad pero puede permitir valores NULL, y una tabla puede tener múltiples claves únicas. Usa una clave primaria como el identificador principal de la fila; usa claves únicas para hacer cumplir la unicidad en 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) que tenga una restricción única, no solo a la clave primaria. Sin embargo, hacer referencia a la clave primaria es la práctica más común y recomendada.
¿Qué sucede si una transacción ACID falla a mitad de camino?
La Atomicidad asegura que toda la transacción se revierta, dejando la base de datos en el estado en que estaba antes de que comenzara la transacción. No se guardan cambios parciales.
Preguntas de Entrevista
¿Cómo explicarías una clave primaria en una entrevista?
Una clave primaria es una columna o combinación de columnas que identifica de manera única cada fila en una tabla. Debe ser única, no puede contener valores NULL y solo puede haber una por tabla. Se utiliza como ancla para referencias de claves foráneas desde otras tablas.
¿Qué es la integridad referencial y cómo la hacen cumplir las claves foráneas?
La integridad referencial significa que un valor de clave foránea en una tabla debe coincidir siempre con un valor de clave primaria existente en la tabla referenciada, o ser NULL. El motor de base de datos hace esto automáticamente: los intentos de insertar un valor de clave foránea huérfano o eliminar una fila referenciada serán rechazados a menos que se defina una regla de cascada.
¿Qué significa ACID y por qué es importante?
ACID significa Atomicidad, Consistencia, Aislamiento y Durabilidad. Define las garantías que hacen que las transacciones de base de datos sean confiables. Sin ACID, las escrituras concurrentes podrían corromper los datos, fallos parciales podrían dejar la base de datos en un estado inválido y los cambios comprometidos podrían perderse después de un fallo. ACID es la razón por la que las bases de datos relacionales son confiables para sistemas financieros, médicos y otros críticos.