The way you determine if a decomposition is dependency preserving is entirely wrong, you need to compute the clousure of F which is F+ and compute F_x's projection's clousure F_x+, also F_y's projection's closure F_y+, and check if (F_x+ U F_y+) = F+
Helpful video, but one thing to remember is that Dependencies can be inferred so first we need to take the closure or there is a better algorithm to do that : To check if a dependency is preserved in a decomposition of R into R1, R2, …, Rn we apply the following test (with attribute closure done with respect to F) result = alpha while (changes to result) do for each Ri in the decomposition t = (result intersection Ri)+ union Ri result = result t If result contains all attributes in Beta, then the functional dependency alpha to beta is preserved. We apply the test on all dependencies in F to check if a decomposition is dependency preserving This procedure takes polynomial time, instead of the exponential time required to compute F+ and (F1 union F2 union … union Fn)+
There is a BIG MISTAKE here regarding the section about dependency preservation. When checking which functional dependencies are preserved for R[i], you shouldn't look at the group of functional dependencies F but at the group of all of the functional dependencies that could be deduced from F, that is F+. "The restriction of F to R[i] is the set F[i] of all functional dependencies in F+ that include only attributes of R[i]" (Silberschatz, Korth, Sudarshan: Database System Concepts, p. 347)
E.g.: if F={A->B, B->C} and we have a decomposition R[1] = (A,C), R[2] = (A, B), then F1 = {A->C} since it could be deduced from F using the transitivity rule. Therefore looking just a F could be misleading.
Sorry but both algorithms aren't correct. In dep. preserving decomposition check you have to take care of the closures of the functional dependencies. In the second, there is an algorithm for lossless join and it is a little different. In both cases I'm pretty sure you can find examples where you get wrong results (not completely sure yet). Correct me if I'm wrong.
F(A->C, B->C, C->D,DE->C,CE->A), Decomposition is AD, AB, BE, CDE. How to know if this Decomposition lossless or not? I use your method, and got confused.Could u please help me to figure it out, thank you.
I don't think that's a proper definition of dependency preserving. You said that if you see that if particular functional dependency does not belong to R1,R2,R3 and R4 then it is not Dependency preserving.But That's wrong we have to check closure for (R1 U R2 U R3 U R4) and if in that functional Dependency of R does not belong then it is not Dependency preserving.
R(A,B,C,D) and have following fds A→B ,B→C, C→D,D→B. and the decomposition of R into (AB),(BC),(BD) is this lossless and dependency preserving. sir answer is not coming can u explain plz
8 years letter i am watching this. thanks for making this , old man.
The way you determine if a decomposition is dependency preserving is entirely wrong, you need to compute the clousure of F which is F+ and compute F_x's projection's clousure F_x+, also F_y's projection's closure F_y+, and check if (F_x+ U F_y+) = F+
+yun sheng You realize there's more than one way of checking for dependency preservation right?
Thank you so so much! That was very helpful! You are awesome, greetings from Norway :)
Helpful video, but one thing to remember is that Dependencies can be inferred so first we need to take the closure or there is a better algorithm to do that :
To check if a dependency is preserved in a decomposition of R into R1, R2, …, Rn we apply the following test (with attribute closure done with respect to F)
result = alpha
while (changes to result) do
for each Ri in the decomposition
t = (result intersection Ri)+ union Ri
result = result t
If result contains all attributes in Beta, then the functional dependency
alpha to beta is preserved.
We apply the test on all dependencies in F to check if a decomposition is dependency preserving
This procedure takes polynomial time, instead of the exponential time required to compute F+ and (F1 union F2 union … union Fn)+
Very Helpful Video! The material is clearer in this video than my lecturer!
Thanks, this is really helpful to understand the Chase test.
Awesome video sir..This helped me a lot in preparation of my University examination and is still helpful for Gate exam also..:)
Thanks brooo.. u are awesome :)
Love u from indonesia
This was amazingly helpful, thank you so much!!
thank you sir , this is the best explanation so far!
Thanks a lot! You are the best teacher
Amazing explanation!❤
Thank you so much, This was extremely helpful.
Thankyouu so much sir
too low volume
Use headphones
There is a BIG MISTAKE here regarding the section about dependency preservation.
When checking which functional dependencies are preserved for R[i], you shouldn't look at the group of functional dependencies F but at the group of all of the functional dependencies that could be deduced from F, that is F+.
"The restriction of F to R[i] is the set F[i] of all functional dependencies in F+ that include only attributes of R[i]" (Silberschatz, Korth, Sudarshan: Database System Concepts, p. 347)
E.g.: if F={A->B, B->C} and we have a decomposition R[1] = (A,C), R[2] = (A, B), then F1 = {A->C} since it could be deduced from F using the transitivity rule. Therefore looking just a F could be misleading.
Sorry but both algorithms aren't correct. In dep. preserving decomposition check you have to take care of the closures of the functional dependencies. In the second, there is an algorithm for lossless join and it is a little different. In both cases I'm pretty sure you can find examples where you get wrong results (not completely sure yet). Correct me if I'm wrong.
Yes you are right he explained wrong.
Thank u thank u..... Soooo much sir..
Where is the videos where the FD are decomposed??? Can't understand without that :-(
Thanks, It is very helpful...
thanks...
F(A->C, B->C, C->D,DE->C,CE->A), Decomposition is AD, AB, BE, CDE. How to know if this Decomposition lossless or not? I use your method, and got confused.Could u please help me to figure it out, thank you.
clearly explained. Thanks
thanks you so much for great video
thank you...that was very helpful
thank you bro❣
smart explanation about lossless property.. but there is an algorithm for lossless join better you explain with it..
Pallavi Gaonkar will u plz help me
@@parameshchakraborty1146Ab tk pallavi ke bacche ho gye honge 😂 daily help deti hogi
Thanks! Its helpful!
Thank you❤️
Thank you, but I compute that:
R3(A,B,D,E): B-->D, AB-->DE, AD-->E, BE-->D
Pls help me to explain. Thank you!
very well, dude
I don't think that's a proper definition of dependency preserving.
You said that if you see that if particular functional dependency does not belong to R1,R2,R3 and R4 then it is not Dependency preserving.But That's wrong we have to check closure for (R1 U R2 U R3 U R4) and if in that functional Dependency of R does not belong then it is not Dependency preserving.
Can you give me the solution if the BCNF decomposition of R(ABCDE) is Lossless or not, dependency preserving or not?
FD: {AB-->C, C--D, D-->E, E-->A}
Dependency preserving algo might be wrong.
Why
can't getting answer for this. R(ABCDEG) and FD sets {AB->C, AC->B, AD->E, B->D, BC->A, E->G} D=( ABC, ACDE, ADG) answer as 'Lossless'
bro,it is lossless decomposition.
r2=ACDE row get filled by alpha..hence lossless
moreover it is not dependency preserving.
I got A,B,C,D,E filled with 'Alpha' but can't getting 'Alpha' in 'G'...help me!
thanks great knowledge
Thanks sir 🙏
R(A,B,C,D) and have following fds A→B ,B→C, C→D,D→B. and the decomposition of R into (AB),(BC),(BD) is this lossless and dependency preserving. sir answer is not coming can u explain plz
Vishakha Gautam answer is lossy decomposition and not dependency preserving too which i have find.
Shelly Sood I think the answer is lossless
This decomposition is FD preserving and lossless. The method in the video is not 100% working.
the answer is lossless because even if in 1 row we are getting all X then we can call it lossless so R1 is all X in this case
Thank you!
Mashallah
This video is 9 year old.... And now I am here 😮
Thank You
It is not always true for depndncy presvng
what this algorithm is called
thank you... helpful :)
thnks
Sir why didn't you compute for----AC->B,AB->C,BC->A.......
I love you.
Is loseless join and loseless decomposition same or its different?
I believe a lossless decomposition is one in which you can perform a lossless join
please improve audio quality
awsm video
Tnk u
YAA=You Are Awesome.... XD
de -G why? assumption?
What is alpha?
please increase the sound level its not audible at alll!!!!!!!!
inaudible
elfa
Inaudible
Awaaz tez krlete thodi si aur🤬
Too slow
Third class sound quality