Entendemos como conceptos fundamentales en bases de datos relacionales, como MySQL, las claves principales(primarias) y foráneas, ya que se utilizan para establecer relaciones entre tablas y garantizar la integridad de los datos.
Una clave primaria es una columna o conjunto de columnas en una tabla que identifica de forma única cada fila.Debe ser única y no nula en toda la tabla, se puede crear una sola clave primaria por tabla, se suele utilizar un campo autoincremental como clave primaria para facilitar la identificación de las filas.
CREATE TABLE clientes ( id_cliente INT PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR(255) NOT NULL, apellido VARCHAR(255) NOT NULL, correo_electronico VARCHAR(255) NOT NULL UNIQUE);
Como podemos ver, la columna id_cliente es la clave primaria de la tabla clientes. Es un campo entero (INT) que se incrementa automáticamente (AUTO_INCREMENT) para garantizar que cada cliente tenga un identificador único.
Una clave foránea es una columna en una tabla que hace referenecia a la clave primaria de otra tabla, establece una relación entre las dos tablas. Debe ser compatible con los tipos de datos de la columna clave primaria a la que hace referencia. Se pueden crear varias claves foráneas por tabla.
CREATE TABLE pedidos ( id_pedido INT PRIMARY KEY AUTO_INCREMENT, id_cliente INT NOT NULL, fecha_pedido DATE NOT NULL, importe_total DECIMAL(10,2) NOT NULL, FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente));
En este ejemplo, la columna id_cliente de la tabla pedidos es una clave foránea que hace referencia a la clave primaria id_cliente de la tabla clientes. Esto significa que cada pedido debe estar asociado con un cliente existente en la tabla clientes.
Integridad de los datos: Garantizan que los datos en las tablas sean consistentes y precisos.Evitan errores: Impiden la inserción de datos no válidos.Facilitan la recuperación de datos: Permiten unir tablas de forma eficiente.Mejoran el rendimiento de las consultas: Ayudan a optimizar el acceso a los datos.