- 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.
Tags:
DBMS