let be a canonical cover for F;i := 0;
for each functional dependency do
if none of the schemas , contains
then begin
i := i + 1;
:=
end
if none of the schemas , contains a candidate key for R
then begin
i := i + 1;
:= any candidate key for R
end
return ( )
is guaranteed by the requirement that a candidate
key for R be in at least one of the schemas.
The set F of functional dependencies is
cname bname banker-name
The for loop in the algorithm gives us the following decomposition:
Banker-schema = (cname, bname, banker-name)
Since Banker-schema contains a candidate key for
Banker-info-schema, the process is finished.
Banker-info-schema = (bname, cname, banker-name, office#)
banker-name bname office#
Banker-office-schema = (banker-name, bname, office#)