letbe 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
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-name
Banker-office-schema = (banker-name, bname, office#)