Comprender las claves extranjeras
* Propósito: Las claves extranjeras hacen cumplir las relaciones entre tablas en una base de datos relacional. Aseguran la integridad de los datos al prevenir las entradas de datos no válidos.
* Cómo funciona: Una columna de clave extranjera en una tabla hace referencia a la columna clave principal de otra tabla. Esto crea un enlace, asegurando que los valores en la columna de clave extranjera existan como valores de clave primarios válidos en la tabla referenciada.
Pasos para aplicar una clave extranjera
1. Defina las tablas:
* Tabla principal: La tabla que contiene la clave primaria (la tabla que se hace referencia).
* Tabla infantil: La tabla que contiene la clave extranjera (la tabla que hace referencia a la tabla principal).
2. Especifique las columnas:
* Clave primaria: La columna en la tabla principal que actúa como la clave principal.
* Clave extranjera: La columna en la tabla del niño que hace referencia a la clave principal.
3. Crea la restricción: La sintaxis varía ligeramente según el sistema de su base de datos (MySQL, PostgreSQL, SQL Server, etc.). Aquí hay un enfoque general:
`` `SQL
Alter tabla childtableName
Agregar Nombre de restricción de restricción
Clave extranjera (extranjera KeyColumn)
Referencias ParenttableName (PrimaryKeyColumn);
`` `` ``
* Nombre de restricción: Un identificador único para la restricción.
* ChildtableName: El nombre de la tabla que contiene la clave extranjera.
* ExtrayKeyColumn: El nombre de la columna en la tabla infantil que actúa como la clave extranjera.
* ParenttableName: El nombre de la tabla que contiene la clave primaria.
* PrimaryKeyColumn: El nombre de la columna en la tabla principal que actúa como la clave principal.
Ejemplos
Escenario: Creación de una base de datos para una biblioteca. Tenemos una mesa para "libros" y una mesa para "prestatarios".
Tablas:
* Libros:
* `book_id` (clave principal)
* `Título`
* `Autor`
* prestatarios:
* `prestatario_id` (clave principal)
* `Nombre`
* `Dirección`
* `book_id` (clave extranjera, hace referencia al` book_id` en la tabla de libros)
Código SQL:
`` `SQL
- Crea la mesa de libros
Crear libros de mesa (
book_id int primaria,
Título Varchar (255),
Autor Varchar (255)
);
- Crea la tabla de los prestatarios con la restricción de clave extranjera
Crear prestatarios de tabla (
prestatario_id int primario,
Nombre Varchar (255),
dirección varchar (255),
book_id int,
Libros de referencias de la clave extranjera (Liber_id) (Liber_id)
);
`` `` ``
Consideraciones clave
* Integridad de datos: Las claves extranjeras ayudan a garantizar que los datos en las tablas relacionadas sigan siendo consistentes. Por ejemplo, no puede insertar un registro de prestatario con un `book_id` que no existe en la tabla 'libros'.
* Opciones en cascada: Puede definir cómo deben comportarse las restricciones de clave externa cuando los datos se modifican o eliminan en la tabla principal.
* Cascade Eliminar: Elimina las filas en la mesa del niño cuando se elimina una fila coincidente en la tabla principal.
* Actualización en cascada: Actualizaciones de filas relacionadas en la tabla secundaria cuando se actualiza la fila correspondiente en la tabla principal.
* Rendimiento: Las claves extranjeras pueden afectar el rendimiento, especialmente con grandes tablas. Considere usar índices para mejorar la velocidad de consulta.
* Sintaxis específica del sistema de bases de datos: Asegúrese de consultar la documentación de su Sistema de Gestión de Base de Datos (DBMS) específico para una sintaxis precisa.
Avíseme si desea ver ejemplos en un sistema de base de datos particular. ¡Me complace proporcionar instrucciones más específicas!