MULTIVALUED AND JOIN DEPENDENCY IN DBMS
MULTIVALUED DEPENDENCY
A multivalued dependency exists when there are at least three attributes (like X,Y and Z) in a relation and for a value of X there is a well defined set of values of Y and a well defined set of values of Z. However, the set of values of Y is independent of set Z and vice versa.
Multivalued dependency would occur whenever two separate attributes in a given table happen to be independent of each other. And yet, both of these depend on another third attribute.
Course |
Book |
Lecturer |
A |
Java |
Abc |
B |
C++ |
Xyz |
C |
DBMS |
Pqr |
Because the lecturers attached to the course and the books attached to the course are independent of each other, this database design has a multivalued dependency;
There are two multivalued dependencies in this relation:
{course} ↠ {book} and equivalently {course} ↠ {lecturer}
JOIN DEPENDENCY
Join Dependency (JD) can be illustrated as when the relation R is equal to the join of the sub-relations R1, R2,…, and Rn are present in the database. Whenever we can recreate a table by simply joining various tables where each of these tables consists of a subset of the table’s attribute, then this table is known as a Join Dependency.
Name |
Skills |
Job |
A |
Marketing |
GK001 |
B |
PR |
GK002 |
P |
Graphic Designing |
GK003 |
We can decompose the table given above into these three tables given below.
<Student_Skills>
Name |
Skills |
Tag |
Marketing |
Barry |
PR |
Paulo |
Graphic Designing |
<Student_Job>
Name |
Job |
Tag |
GK001 |
Barry |
GK002 |
Paulo |
GK002 |
<Job_Skills>
Skills |
Job |
Marketing |
GK001 |
PR |
GK002 |
Graphic Designing |
GK003 |
Our Join Dependency would be:
{(Name, Skills ), ( Name, Job), (Skills, Job)}
The relations given above have join dependency. It means that the join relation of the three relations given above is equal to the very original relation <Student>.