Diferencia entre revisiones de «Clave foránea»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Camilo (discusión · contribs.)
m Revertidos los cambios de 200.75.14.3 a la última edición de AVBOT
Línea 14: Línea 14:


ALTER TABLE <table identifier>
ALTER TABLE <table identifier>
ADD [ CONSTRAINT <constraint identifier>
ADD [ CONSTRAINT <constraint identifier> ]
FOREIGN KEY ( <column expression> {, <column expression>}... )
FOREIGN KEY ( <column expression> {, <column expression>}... )
REFERENCES <table identifier> [ ( <column expression> {, <column expression>}... ) ]
REFERENCES <table identifier> [ ( <column expression> {, <column expression>}... ) ]
Línea 21: Línea 21:


[[Categoría:Bases de datos]]
[[Categoría:Bases de datos]]

Kamus

Revisión del 22:09 25 may 2009

En el contexto de bases de datos relacionales, una clave foranea (o Foreign Key FK) es una limitación referencial entre dos tablas.La clave foranea identifica una columna o grupo de columnas en una tabla(referendo) que se refiere a una columna o grupo de columnas en otra tabla(referenciada).Las columnas en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla referenciada.

Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla referenciada.Así, una fila en la tabla referendo no puede contener valores que no existen en la tabla referenciada.De esta forma, las referencias pueden ser creadas para vincular o relacionar información. Esto es una parte esencial de la normalización de base de datos.Múltiples filas en la tabla referendo pueden hacer referencia, vincularse o relacionarse a la misma fila en la tabla referenciada.Mayormente esto se ve reflejado en una relacion uno (tabla maestra o referenciada) a muchos (tabla hija o referendo).


La tabla referendo y la tabla referenciada pueden ser la misma, esto es, la clave foranea remite o hace referencia a la misma tabla. Esta clave externa es conocida en SQL:2003 como auto-referencia o clave foranea recursiva. Una tabla puede tener múltiples claves foraneas y cada una puede tener diferentes tablas referenciadas. Cada clave foranea es forzada independientemente por el sistema de base de datos. Por tanto, las relaciones en cascada entre tablas pueden realizarse usando claves foraneas. Configuraciones impropias de las claves foraneas o primarias o no forzar esas relaciones son frecuentemente la fuente de muchos problemas para la base de datos o para el modelamiento de los mismos.


Definiendo claves foraneas

Las claves foraneas son definidas bajo el estandard SQL a través de la restricción FOREIGN KEY. La sintaxis para agregar tal restricción a una tabla existente es definida en SQL:2003 según se muestra debajo. Si se omite la lista de columnas en la clausula REFERENCES implica que la clave foranea tendrá que referenciar o relacionarse con la clave primaria de la tabla referenciada.


ALTER TABLE

ADD [ CONSTRAINT <constraint identifier> ] FOREIGN KEY ( <column expression> {, <column expression>}... ) REFERENCES
[ ( <column expression> {, <column expression>}... ) ] [ ON UPDATE<referential action> ] [ ON DELETE<referential action> ]