bcnf是什么?
发布网友
发布时间:2024-01-19 13:54
我来回答
共1个回答
热心网友
时间:2024-04-18 07:28
若关系模式r中的属性全是主属性,则r的最高范式必定是3nf.
这样如r(x,y,z),
f={y-->z,
xz-->y}.
xy和xz都可以做为候选码,即r中的属性全为主属性,且不存在非主属性对码的传递函数依赖,因此r属于3nf.
bcnf的定义是:关系模式r
属于1nf.若y函数依赖于x且y不包含于x时x必含有码,则r
属于bcnf.即若每一个决定因素都包含码,则r属于bcnf.
如上面y和xz都是决定因素且每个决定因素中都包含了码(是否有错?),即满足了bcnf的定义,怎么就不属于bcnf呢?
bcnf中有一条性质,是"所有的主属性对每一个不包含它的码,是完全函数依赖".这样当选择xy做为主码时,z就对xy部分函数依赖了(因为z函数依赖于y),因此r不属于bcnf.