Here is one messy student table. Normalise it to third normal form in front of me, then tell me when you would undo it.
Normalise by naming each functional dependency and splitting on it: atomic values for 1NF, no column depending on part of a composite key for 2NF, no non-key column depending on another for 3NF. Undo it only for a measured read path, and say who keeps the copies in step.
Answer
Short answer
Third normal form means every non-key column depends on the key, the whole key, and nothing but the key. You get there by writing down the functional dependencies first, then splitting the table once for each dependency that breaks a rule. Undo normalisation only when a measured read path pays for the joins and you can name who keeps the duplicated copies consistent.
Was this answer helpful?
Likely follow-ups
- Your Enrolment table has a two-column primary key. Why not add an auto-increment id and call that the key instead?
- Department heads change every year and old transcripts must show the head at the time. Does that change your 3NF schema?
- Write the SQL join that rebuilds the original flat table from your four tables, and say which rows could go missing.
- Is the final Student table in BCNF, and how would you check?
Related questions
- Take this table to third normal form, then tell me when you would deliberately denormalise — and what does ACID guarantee?mediumAlso on normalisation and denormalisation5 min
- Explain ACID using a bank transfer of 100 from one account to another, and tell me what isolation protects you from.easyAlso on dbms4 min
- In an online assessment, "what does this code print?" questions keep catching you out. How do you answer them quickly without guessing?easySame kind of round: concept4 min
- Product companies hiring final-year students: what difficulty of coding round should you expect, and how do you calibrate your practice?mediumSame kind of round: concept5 min