Cita: Buenas a todos, siempre he visto que al realizar modelos de base de datos con la Herramienta CASE Power Designer, ésta crea un una tabla hija (producto de una relacion muchos a muchos), en la cual se tienen las Primary Keys de cada una de las tablas, y esos dos campos en la nueva tabla, quedan ambos definidos como llaves primarias, porque suele suceder esto?
En el modelo relacional, toda tabla debe poseer una clave primaria (la expresión "llave" es una traducción demasiado literal para mi gusto, y no expresa bien la idea), es decir, un campo o conjunto de campos que identifique unívocamente un sólo registro en la tabla.
Pero en el diseño de las bases de datos se dan dos tipos basicos de relaciones: las dadas por aquellas cuya identidad y existencia dependen de otra, y las que solamente vinculan dos tablas, sin que su identidad sea determinada por esa clave foránea.
En esencia, se rtata de aquellas tablas que heredan una clave, pero como la relación es 1:N requieren de otro campo más como discriminante de su identidad. Así, la clave primaria de esas tablas se crean como claves compuestas por más de un campo.
Las relaciones N:N son un caso especial de estas claves compuestas. SOn tablas que no existen en el diagrama Entidad-Relación, sino que aparecen en él como relaciones N:N. Esa relación determina la existencia de una tabla física donde la clave primaria está constituida por la PK de cada una de las tablas vinculadas, pudiendo agregarse un discriminante si y sólo si el caso lo requiere.
Lo que no existe es una tabla con más de una PK. Eso es un error de interpretación. Una tabla sólo puede tener una PK por definición del paradigma y porque los DBMS usan la PK para mantener el ordenamiento físico de la tabla... y una tabla no puede ordenarse
físicamente de dos formas distintas ¿no crees?