¿Cómo diseñar una tabla con clave primaria y atributo multivalor?

Estoy interesado en el diseño de bases de datos y ahora leyendo la literatura correspondiente. A través del libro, me he enfrentado a un extraño ejemplo que me hace sentir incierto. Hay una relacion

En esta tabla tenemos una clave primaria compuesta (StudentID, Actividad). Pero ActivityFee depende parcialmente de la clave de la tabla (Activity -> ActivityFee), por lo que el autor sugiere dividir esta relación en otras dos relaciones:

Ahora, si echamos un vistazo a STUDENT_ACTIVITY, Activity se convierte en una clave externa y la relación aún tiene una clave primaria compuesta.

Tenemos la tabla en la que las columnas completas definen una clave primaria compuesta, ¿está bien?

Si no es así, ¿qué debemos hacer en este caso? (probablemente definir una clave sustituta?)

¿Cuál es una buena manera de lidiar con el atributo multivalor (Actividad en nuestro caso) para eliminar posibles anomalías de datos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta