题目
【单选题】已知R(X,Y,Z) F=(Y → Z, XZ →Y),R达到第几范式?A. 1NFB. 2NFC. 3NFD. BCNF
【单选题】已知R(X,Y,Z) F={Y → Z, XZ →Y},R达到第几范式?
A. 1NF
B. 2NF
C. 3NF
D. BCNF
题目解答
答案
C. 3NF
解析
步骤 1:确定候选键
根据给定的函数依赖集 F = {Y → Z, XZ → Y},我们首先需要确定关系模式 R(X,Y,Z) 的候选键。候选键是能够唯一确定关系中每一行的最小属性集。通过分析函数依赖,我们可以发现 XZ 是候选键,因为 XZ 可以确定 Y,而 Y 可以确定 Z,所以 XZ 可以确定整个关系 R(X,Y,Z)。
步骤 2:检查 1NF
关系模式 R(X,Y,Z) 已经满足 1NF,因为每个属性的值都是原子的,即不可再分。
步骤 3:检查 2NF
关系模式 R(X,Y,Z) 满足 2NF,因为每个非主属性(Y 和 Z)都完全函数依赖于候选键 XZ。没有部分函数依赖,因为没有非主属性只依赖于候选键的一部分。
步骤 4:检查 3NF
关系模式 R(X,Y,Z) 满足 3NF,因为没有非主属性对候选键的传递依赖。Y → Z 是直接依赖,而不是传递依赖。XZ → Y 也是直接依赖,而不是传递依赖。
步骤 5:检查 BCNF
关系模式 R(X,Y,Z) 不满足 BCNF,因为存在一个非平凡的函数依赖 Y → Z,其中 Y 不是候选键的一部分。在 BCNF 中,每个非平凡的函数依赖的左部都必须包含候选键。
根据给定的函数依赖集 F = {Y → Z, XZ → Y},我们首先需要确定关系模式 R(X,Y,Z) 的候选键。候选键是能够唯一确定关系中每一行的最小属性集。通过分析函数依赖,我们可以发现 XZ 是候选键,因为 XZ 可以确定 Y,而 Y 可以确定 Z,所以 XZ 可以确定整个关系 R(X,Y,Z)。
步骤 2:检查 1NF
关系模式 R(X,Y,Z) 已经满足 1NF,因为每个属性的值都是原子的,即不可再分。
步骤 3:检查 2NF
关系模式 R(X,Y,Z) 满足 2NF,因为每个非主属性(Y 和 Z)都完全函数依赖于候选键 XZ。没有部分函数依赖,因为没有非主属性只依赖于候选键的一部分。
步骤 4:检查 3NF
关系模式 R(X,Y,Z) 满足 3NF,因为没有非主属性对候选键的传递依赖。Y → Z 是直接依赖,而不是传递依赖。XZ → Y 也是直接依赖,而不是传递依赖。
步骤 5:检查 BCNF
关系模式 R(X,Y,Z) 不满足 BCNF,因为存在一个非平凡的函数依赖 Y → Z,其中 Y 不是候选键的一部分。在 BCNF 中,每个非平凡的函数依赖的左部都必须包含候选键。