Student Management System -
Normalization up to BCNF
1. Initial Relation
STUDENT_MANAGEMENT(StudentID, StudentName, DeptID, DeptName, CourseID,
CourseName, InstructorID, InstructorName, Marks, Grade)
2. Functional Dependencies
StudentID → StudentName, DeptID
DeptID → DeptName
CourseID → CourseName, InstructorID
InstructorID → InstructorName
(StudentID, CourseID) → Marks, Grade
3. Normalization Steps
First Normal Form (1NF)
All attributes are atomic. No repeating groups.
Second Normal Form (2NF)
Removed partial dependencies:
STUDENT(StudentID, StudentName, DeptID)
COURSE(CourseID, CourseName, InstructorID)
ENROLLMENT(StudentID, CourseID, Marks, Grade)
Third Normal Form (3NF)
Removed transitive dependencies:
DEPARTMENT(DeptID, DeptName)
INSTRUCTOR(InstructorID, InstructorName)
BCNF (Boyce-Codd Normal Form)
All determinants are super keys. Hence all tables are in BCNF.
4. Final Schema
STUDENT(StudentID [PK], StudentName, DeptID [FK])
DEPARTMENT(DeptID [PK], DeptName)
COURSE(CourseID [PK], CourseName, InstructorID [FK])
INSTRUCTOR(InstructorID [PK], InstructorName)
ENROLLMENT(StudentID [PK, FK], CourseID [PK, FK], Marks, Grade)