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

LLaves compuestas y foraneas

Estas en el tema de LLaves compuestas y foraneas en el foro de Bases de Datos General en Foros del Web. Hola a todos, estoy trabajando en SQL server 2003, y tengo una duda sobre el cómo se comportan las llaves compuestas. Ej: Digamos q tenemos ...
  #1 (permalink)  
Antiguo 27/01/2012, 07:57
 
Fecha de Ingreso: febrero-2011
Mensajes: 13
Antigüedad: 13 años, 2 meses
Puntos: 0
LLaves compuestas y foraneas

Hola a todos, estoy trabajando en SQL server 2003, y tengo una duda sobre el cómo se comportan las llaves compuestas.

Ej: Digamos q tenemos tabla_1 con llave primaria Entia_ID, y esta se relaciona a una tabla_2 con llaves primarias como persona_ID y etnia_ID.

Según lo planteado, Tabla_2 quedaría como: persona_ID PK
Etnia_ID PK
Etnia_ID FK

Segun tengo entendido, esto creará conflicto no es así???

Gracias
  #2 (permalink)  
Antiguo 27/01/2012, 08:16
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, 4 meses
Puntos: 2658
Respuesta: LLaves compuestas y foraneas

No estás entendiendo el tema. No pasa solamente por la relación sino por la cardinalidad y la dependencia.
SI la Tabla_1 se relaciona 1:1 con la Tabla_2, y al mismo tiempo la relación es una dependencia, la Tabla_2 no posee clave propia, sino que usa la de la tabla_1 como tal, por lo que seríaPK y FK al mismo tiempo. Eso es una relación identificatoria.
Si la Tabla2 es dependiente, pero la FK es parte de su clave, eso es una relación 1:N, donde hay tantas combinaciones de la misma PK con diferentes FK como defina el sistema que se modela. Eso es una relación identificatoria.
Si la Tabla2 no es dependiente, y la FK no es parte de su clave, eso es una relación 1:N, donde hay tantas repeticiones de la misma FK como defina el sistema que se modela. En ese caso incluso puede haber registros de Tabla_2 que no se relacionen con Tabla_1. Eso es una relación no identificatoria.
Si la relación es tal que cada cada registro de Tabla_1 puede relacionarse con diferentes registros de la tabla_2, y a su vez cada uno de la Tabla_2 puede relacionarse con diferentes de la Tabla_1, eso es una relación N:N y requieren la existencia de una tabla adicional donde cada par de PK aparezcan una única vez, y al mismo tiempo la combinación sea PK de esa tabla.

Todos estos conceptos son universales y no dependen del DBMS que uses (es decir, son tan válidos para SQL Server como para Oracle, Postgre, MySQL como para DB2)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: llaves, sql, tabla, foreignkey
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




La zona horaria es GMT -6. Ahora son las 12:17.