Attempt to decompose up to second normal form (2NF) in a scenario about students and courses

database-designnormalization

1NF:

(student_id, name, start, program, course_code, course_name, faculty, credits, time, grade)

Minimal functional dependencies (identified):

{student_id} → { name, start, program }
{course_code} → { course_name, faculty, credits, time }
{student_id, course_code} → { grade }

2NF:

student (student_id, name, start, program)
course (course_code, course_name, faculty, credits, time)
student_course(student_id, course_code, grade)

Is this 2NF decomposition really correct, or am I completely out of scope?

Best Answer

There is no non-prime attribute in any of the relations that is functionally dependent on a proper subset of any candidate key. That is obvious from the functional dependencies - only the third table has to be checked, and your third functional dependency covers that.

Consequently your result is in 2NF.