Ejercicio 3, Examen 2022

Ejercicio 3, Examen 2022

de Diego Silva Piedra -
Número de respuestas: 3

Hola, estaba mirando la solución de ese ejercicio (Modelo relacional) y me surgió la siguiente duda:
Para Identificar organizadores y servicios, ¿no hace falta el código de participantes? Y en el caso de participantes, ¿por qué no va subrayado el atributo código? En la solución está así:
PERSONAS(CI, nombre, edad)
PARTICIPANTES (CI, tel, código)
PARTICIPANTES.CI FK PERSONAS
ASISTENTES (CI, género, mail)
ASISTENTES.CI FK PERSONAS
ORGANIZADORES(CI)
ORGANIZADORES.CI FK PARTICIPANTES
SERVICIOS(CI,tipo)
SERVICIOS.CI FK PARTICIPANTES

Gracias!

En respuesta a Diego Silva Piedra

Re: Ejercicio 3, Examen 2022

de Santiago Gongora -

Buen día Diego,

como vimos en la clase, para hacer las tablas asociadas a una especialización hay muchas opciones. Una de ella es crear una tabla para la superentidad y una para cada subentidad. Pero de alguna forma hay que "dejar registro" de cuál es la tupla de la tabla de la superentidad que se corresponde con la subentidad: por eso es que en la diapositiva dice "Una tabla por cada sub-entidad con referencia a la super-entidad". O sea, es obligatorio poner - en la tabla de la subentidad -  el atributo determinante de la superentidad correspondiente.




Además, si la subentidad tiene su propio atributo determinante (como es el caso de PARTICIPANTES y ASISTENTES en este ejercicio), ese atributo puede usarse como clave, pero no es obligatorio. En el caso de usarse como clave, de todas maneras hay que incluir la referencia a la superentidad (más abajo va ejemplo).

En la solución, para PERSONAS-PARTICIPANTES-ASISTENTES, se optó por usar siempre el atributo determinante de la superentidad PERSONAS (CI). Y por lo tanto, las subentidades de PARTICIPANTES hicieron referencia a la clave CI, porque es la que su superentidad correspondiente (PARTICIPANTES) tiene de clave.

Sin embargo, sería perfectamente válido si la clave de PARTICIPANTES fuera "código" y la de ASISTENTES fuera "mail". En ese caso, tanto ORGANIZADORES como SERVICIOS deberían poner "codigo" como su clave.

Quedaría:

PERSONAS (CI, nombre, edad)

PARTICIPANTES (codigo, tel, ci)
PARTICIPANTES.ci FK PERSONAS

Comentario: aunque PARTICIPANTES usa su atributo determinante (codigo) como clave, igual incluye la referencia a su superentidad correspondiente, mediante el atributo "ci".

ASISTENTES (mail, genero, ci)
ASISTENTES.ci FK PERSONAS

Comentario: exactamente lo mismo pasa con ASISTENTES, que hace referencia a qué tupla de PERSONAS se corresponde, poniendo el atributo ci.

ORGANIZADORES (codigo)
ORGANIZADORES.codigo FK PARTICIPANTES

SERVICIOS (codigo,tipo)
SERVICIOS.codigo FK PARTICIPANTES

Comentario: Tanto ORGANIZADORES como SERVICIOS ya no incluyen al atributo CI. Ahora su superentidad se identifica con "codigo" y por lo tanto es el atributo que usan para identificarse (porque, además, no tienen otro atributo determinante propio del cual optar por otra clave).

Puede ser re mareador todo lo que escribí porque toqué varias aristas. Cualquier cosa volvé a preguntar y vamos refinando :D

Saludos,
Santi