Open In App

Join Dependencies in DBMS

Last Updated : 18 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

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. Join Dependency arises when the attributes in one relation are dependent on attributes in another relation, which means certain rows will exist in the table if there is the same row in another table. Multiple tables are joined to create a single table where one of the attributes is common in the sub-tables. We can also relate the join dependency to the 5th Normal Form. A join dependency is said to be not that important if any relational schemas in the join dependency are equivalent to the original relation R.

Join dependency on a database is denoted by:

R1 ⨝ R2 ⨝ R3 ⨝ ….. ⨝ Rn ;

where R1 , R2, , Rn are the relations and ⨝ represents the natural join operator.

Types of Join Dependency

There are two types of Join Dependencies:

  • Lossless Join Dependency: It means that whenever the join occurs between the tables, then no information should be lost, the new table must have all the content in the original table.
  • Lossy Join Dependency: In this type of join dependency, data loss may occur at some point in time which includes the absence of a tuple from the original table or duplicate tuples within the database.

Example of Join Dependency

Suppose you have a table having stats of the company, this can be decomposed into sub-tables to check for the join dependency among them. Below is the depiction of a table Company_Stats having attributes Company, Product, Agent. Then we created sub-tables R1 with attributes Company & Product and R2 with attributes Product & Agent. When we join them we should get the exact same attributes as the original table.

Table: Company_Stats

Company

Product

Agent

C1

TV

Aman

C1

AC

Aman

C2

Refrigerator

Mohan

C2

TV

Mohit

Table: R1

Company

Product

C1

TV

C1

AC

C2

Refrigerator

C2

TV

Table: R2

Product

Agent

TV

Aman

AC

Aman

Refrigerator

Mohan

TV

Mohit

On performing join operation between R1 & R2:

R1 ⨝ R2

Company

Product

Agent

C1

TV

Aman

C1

TV

Mohan

C1

AC

Aman

C2

Refrigerator

Mohan

C2

TV

Aman

C2

TV

Mohit

Here, we can see that we got two additional tuples after performing join i.e. (C1, TV, Mohan) & (C2, TV, Aman) these tuples are known as Spurious Tuple, which is not the property of Join Dependency. Therefore, we will create another relation R3 and perform its natural join with (R1 ⨝ R2). So, here it is:

Table: R3

Company

Agent

C1

Aman

C2

Mohan

C2

Mohit

Now on doing natural join of (R1 ⨝ R2 ) ⨝ R3, we get

Company

Product

Agent

C1

TV

Aman

C1

AC

Aman

C2

Refrigerator

Mohan

C2

TV

Mohit

Now, we got our original relation, that we had earlier decomposed, in this way you can decompose the original relation and check for the join dependency among them.

Importance of Join Dependencies

Join dependency can be very important for several reasons as it helps in maintaining data integrity, possess normalization, helps in query optimization within a database. Let us see each point in a detail:

  • Data Integrity: Join Dependency helps maintain data integrity in a database. Database designers can make sure that the queries are consistent after checking for the dependencies. Like in lossless join dependency no information is lost, which means data is accurate. This will remove the data that is not accurate. Similarly, a join dependency is a constraint that maintains data integrity.
  • Query Optimization: Query optimization leads to improving the performance of the database system. The database designers can choose the best join order to execute the queries which in turn reduces the computational costs, memory utilization and i/o operations to get the queries executed quickly.

Conclusion

Join dependencies are fundamental concept in database management system that control how tables are joined in query processing. To understand these dependencies it is very essential to ensure data integrity, optimize query performance, and design efficient database schemas. By identifying and by addressing these dependencies, database designers can create systems that can efficiently manage and update data.

Frequently Asked Questions on Join Dependency – FAQs

How join dependency is different from functional dependency?

Join dependencies tell the relationship between multiple tables in a database, where functional dependency tell relationship within a single table only.

What are Join Dependencies in DBMS?

These are the constraints that tells the relationships among multiple tables in a database. There must be some common attribute or tuple in both the related tables.

Give an example of join dependency.

An example of join dependency is, Suppose we have a table Employee_Details which contains attributes like E_Name, Company, Product. Now we have another table E1 with attributes E_Name, Company; table E2 with attributes E_Name, Product; table E3 with attributes Company, Product; now when we join all these sub tables E1⨝E2⨝E3 this will be equal to Employee_Details table.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads