Fourth Normal Form (4NF)


  • Fourth Normal Form comes into picture when Multi-valued Dependency occurs in any relationship. 
  • Rules for 4th Normal Form
    • For a table to satisfy the Fourth Normal Form, it should satisfy the following two conditions:
      • It should be in the Boyce-Codd Normal Form.
      • And, the table should not have any Multi-valued Dependency.
  • What is Multi-valued Dependency?
    • A table is said to have a multi-valued dependency if the following conditions are true,
    • For a dependency A → B, if for a single value of A, multiple value of B exists, then the table may have a multi-valued dependency.
    • Also, a table should have at least 3 columns for it to have a multi-valued dependency.
    • And, for a relation R(A, B, C), if there is a multi-valued dependency between, A and B, then B and C should be independent of each other.
    • If all these conditions are true for any relation(table), it is said to have multi-valued dependency.
  • Example
    • Below we have a college enrolment table with columns s_id, course, and hobby.
    • As you can see in the table above, student with s_id 1 has opted for two courses, Science and Maths.
    • It has two hobbies, Cricket and Hockey.
    • You must be thinking about what problem this can lead to, right?
    • Well, the two records for a student with s_id 1, will give rise to two more records, as shown below, because for one student, two hobbies exist, hence along with both the courses, these hobbies should be specified.
    • And, in the table above, there is no relationship between the course and hobby of the column. 
    • They are independent of each other.
    • So there is multi-value dependency, which leads to unnecessary repetition of data and other anomalies as well.
  • How to satisfy 4th Normal Form?
    • To make the above relation satisfy the 4th normal form, we can decompose the table into 2 tables.
    • Now, this relation satisfies the fourth normal form.
    • A table can also have functional dependency along with multi-valued dependency. 
    • In that case, the functionally dependent columns are moved in a separate table and the multi-valued dependent columns are moved to separate tables.
    • If you design your database carefully, you can easily avoid these issues.

Thanks a lot for query or your valuable suggestions related to the topic.

Previous Post Next Post

Contact Form