Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Que son foreign key ?

Estas en el tema de Que son foreign key ? en el foro de Mysql en Foros del Web. hola como están, porfa necesito su ayuda para entender un concepto que no entiendo, en palabras de humanos simples que son los "foreign key" saludos...
  #1 (permalink)  
Antiguo 20/06/2009, 16:54
 
Fecha de Ingreso: agosto-2008
Mensajes: 587
Antigüedad: 15 años, 8 meses
Puntos: 6
Que son foreign key ?

hola como están, porfa necesito su ayuda para entender un concepto que no entiendo, en palabras de humanos simples que son los "foreign key"

saludos
  #2 (permalink)  
Antiguo 20/06/2009, 17:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Que son foreign key ?

Para entender la idea debemos plantear algunas ideas simples en forma secuencial:
- Una tabla es una forma de almacenar datos relacionados lógicamente, como son los de una persona, un vehículo, una venta, etc., en forma de registros o líneas de la tabla.
- Una tabla, por su estructura, no nos permite establecer cuál es el registro donde está el dato, ni tampoco si un dato se ingresó más de una vez con el mismo contenido, con lo que en ese caso habría un problema de consistencia entre lo que hay y lo que se espera que haya.
- Tampoco nos permite encontrar dentro de un conjunto un único registro que tenga la información que buscamos en un momento dado.
- Ambos problemas se solucionan por medio de las claves primarias, las que son identificadores unívocos (una PK identifica a un y nada más que un registro) de un registro en una tabla.
- Cuando extiendes tu visión en el modelo de los datos usados en una base, puedes percibir que ciertas tablas contienen información que se refiere a algún registro de otra tabla. Tal es el caso, por ejemplo, de las partes de un vehículo (un diferentes vehículos pueden contar con el mismo componente de motor), o los libros de un mismo autor.
- En ese contexto, para no tener que cargar en dos tablas diferentes los mismos datos de lo que las relaciona, lo que se ideó fue mantener las diferentes tablas, pero relacionarlas de modo que una búsqueda se vuelva mucho más simple. Allí es donde nace la FOREIGN KEY o clave foránea.
- FOREIGN KEY es, entonces, un campo agregado en una tabla A que debe contener el valor de la clave primaria de otra tabla B, la cual corresponde al registro de la B con el que un registro de la tabla A se relaciona. Un ejemplo sería: Un vehículo X usa motor de tamaño Y, entonces en el registro del vehículo, donde va el nombre del modelo de motor, va en realidad la clave en la tabla MOTOR donde está la descripción del motor que usa.
Una FK debe cumplir las mismas condiciones básicas de cualquier clave: No puede ser NULL, pero además requiere que esa clave debe existir en la tabla referida, es decir, no puede apuntar a NULL.

¿Se entiende un poco más?

Perdón por tanta explicación, pero quería asegurarme de que sea claro y preciso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:44.