Lossless-join decomposition, Database Management System

Assignment Help:

Lossless-Join Decomposition

 

Let us show an intuitive decomposition of a relation. We require a better basis for deciding decompositions since intuition may not always be right. We show how a careless decomposition may lead to problems containing loss of information.

Consider the following relation

ENROL (stno, cno, date-enrolled, room-no, instructor)

Suppose we decompose the above relation into two relations enrol and enrol2 as follows:

ENROL1 (stno, cno, date-enrolled)

ENROL2 (date-enrolled, room-no, instructor)

There are troubles with this decomposition but we do not wish to focus on this aspect at the moment. Let a case of the relation ENROL be:

St no

cno

Date-enrolled

Room-no

Instructor

1123

MCS-011

20-06-2004

1

Navyug

1123

MCS-012

26-09-2004

2

Anurag Sharma

1259

MCS-011

26-09-2003

1

Preeti Anand

1134

MCS-015

30-10-2005

5

Preeti Anand

2223

MCS-016

05-02-2004

6

Shashi Bhushan

                                                              Figure:  A sample relation for decomposition

Then on decomposition the relations ENROL1 and ENROL2 would be:

St no

Cno

Date-enrolled

1123

MCS-011

20-06-2004

1123

MCS-012

26-09-2004

1259

MCS-011

26-09-2003

1134

MCS-015

30-10-2005

2223

MCS-016

05-02-2004

 

 

ENROL1

ENROL2

Date-enrolled

Room-no

Instructor

20-06-2004

1

Navyug

26-09-2004

2

Anurag Sharma

26-09-2003

1

Preeti Anand

30-10-2005

5

Preeti Anand

05-02-2004

6

Shashi Bhushan

All the information that was in the relation ENROL appears to be still existing in ENROL1 and ENROL2 but this is not so. Assume, we wanted to retrieve the student numbers of all students taking a course from Preeti Anand, we would require to join ENROL1 and ENROL2. For joining the only general attribute is Date-enrolled. Therefore, the resulting relation obtained will not be the similar as that of Figure. (Please do the verify and join the resulting relation).

The join will have a number of spurious tuples that were not in the unique relation. Because of these additional tuples, we have lost the correct information about which students take courses from Preeti Anand. (Yes, we have many tuples but less information because we are not capable to say with certainty who is taking courses from Preeti Anand). Such decompositions are known as lossy decompositions. Lossless or nonloss decomposition is that which surety that the join will result in exactly the similar relation as was decomposed. One might think that there may be other ways of recovering the unique relation from the decomposed relations but, sadly, no other operators can recover the unique relation if the join does not (why?).

We require to analyse why the decomposition is lossy. The general attribute in the above decompositions was Date-enrolled. The general attribute is the glue that provides us the ability to find the relationships among different relations by joining the relations simultaneously. If the general attribute have been the primary key of at least one of the two decomposed relations, the trouble of losing information would not have existed. The trouble arises because various enrolments may take place on the similar date.


Related Discussions:- Lossless-join decomposition

Deadlock and its prevention, Deadlock And Its Prevention: As seen earlier,...

Deadlock And Its Prevention: As seen earlier, though two phase locking protocol handles the trouble of serialisability, but it causes some troubles also. For instance, consider th

What is management system, What is Management System? A management syst...

What is Management System? A management system is a set of rules and process which help us to create organize and manipulate the database. It also helps us to add, change delet

Function module, When a function module is activated syntax checking is per...

When a function module is activated syntax checking is performed automatically. YEs, a function module is activated syntax checking.

Using column aliases-data manipulation language, Using Column aliases E...

Using Column aliases Example: To print column names as NAME and ANNUAL SALARY SELECT ENAME "NAME", SAL*12 "ANNUAL SALARY" FROM EMP;

Difference between sql and sql*plus, Difference between SQL and SQL*Plus ...

Difference between SQL and SQL*Plus SQL SQL*Plus SQL is a language SQL *Plus is an environment It   is   bas

Which steps must designer take to adjust inheritance, In object oriented de...

In object oriented design, which steps must designer take to adjust inheritance? To readjust inheritance following steps should be taken: i)  Rearrange and adjust the classe

Determine the types of methods for retrieving rows in python, Describe the ...

Describe the two types of methods for retrieving rows in Python? Fetchone()- Returns the next row as a sequence Fetch all()- Returns the entire result set like a strin

Modular growth, Modular growth: In distributed environments, it is simple t...

Modular growth: In distributed environments, it is simple to expand. Latest sites can be added to the network without affecting the operations of other sites, as they are somewhat

Write a query that uses the union operator, Write a Query that uses the UNI...

Write a Query that uses the UNION Operator 1. Use the Software Experts database to:   a. Display the first and the last name of all consultants who worked on any projects f

Define canonical cover, Define canonical cover? A canonical cover Fc fo...

Define canonical cover? A canonical cover Fc for F is a set of dependencies like F logically implies all dependencies in FC and Fc logically shows all dependencies in F.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd