📜  功能依赖的等效性

📅  最后修改于: 2020-12-13 05:27:27             🧑  作者: Mango

功能依赖

定义:如果可以使用第二个FD集确定一组功能依赖关系的右侧,则可以使用两个或两个以上的功能依赖集来等效,而使用第二个FD集可以类似地确定第二个FD集的右侧第一个FD集。

Q 1:给定一个关系模式R(X,Y,Z,W,V),其中一组功能依赖项P和Q使得:

P = {X→Y,XY→Z,W→XZ,W→V}和Q = {X→YZ,W→XV},使用FD集P和Q下列哪个选项正确?

  • P是Q的子集
  • Q是P的子集
  • P = Q
  • P≠Q

→使用FD集的等价定义,让我们使用FD集Q确定P的FD集的右侧。

给定P = {X→Y,XY→Z,W→XZ,W→V}并且Q = {X→YZ,W→XV}

让我们使用FD Q查找P的每个FD左侧的闭合。

  • X + = XYZ(使用X→YZ)
  • XY + = XYZ(使用X→YZ)
  • W + = WXVYZ(使用W→XV和X→YZ)
  • W + = WXVYZ(使用W→XV和X→YZ)

现在,将使用FD Q计算的每个X,XY,W和W的闭包与FD P的右侧进行比较。每个X,XY,W和W的闭包都具有每个属性的右侧P的FD。因此,我们可以说P是Q ———- 1的子集

→使用FD集的等价定义,让我们使用FD集P确定Q的FD集的右侧。

给定P = {X→Y,XY→Z,W→XZ,W→V}并且Q = {X→YZ,W→XV}

让我们使用FD P查找Q的每个FD左侧的闭合。

  • X + = XYZ(使用X→Y和XY→Z)
  • W + = WXZVY(使用W→XZ,W→V和X→Y)

现在将使用FD P计算的每个X,W的闭包与FD Q的右侧进行比较。每个X和W的闭包都具有Q的每个FD右侧的所有属性。因此,我们可以说Q是P ———– 2的子集

从1和2我们可以说P = Q,因此选项C是正确的。

问题2:在给定关系模式R(A,B,C,D)的功能依赖关系P和Q集合下,使得:

P = {A→B,B→C,C→D}和Q = {A→BC,C→D}使用FD集P和Q下列哪个选项正确?

  • a)P是Q的子集
  • b)Q是P的子集
  • c)P = Q
  • d)P≠Q

→使用FD集的等价定义,让我们使用FD集Q确定P的FD集的右侧。

给定P = {A→B,B→C,C→D}并且Q = {A→BC,C→D}

让我们使用FD Q查找P的每个FD左侧的闭合。

  • A + = ABCD(使用A→BC,C→D)
  • B + = B(Q的FD的左边没有B)
  • C + = CD(使用C→D)

现在将使用FD Q计算的每个A,B和C的闭包与FD P的右侧进行比较。闭包B是B,而在FD集P中,B→C(B决定C),因为B的闭包使用FD Q没有C。因此,我们可以说P不是Q ———- 1的子集

→使用FD集的等价定义,让我们使用FD集P确定Q的FD集的右侧。

给定P = {A→B,B→C,C→D}并且Q = {A→BC,C→D}

让我们使用FD P查找Q的每个FD左侧的闭合。

  • A + = ABCD(使用A→B,B→C,C→D)
  • C + = CD(使用C→D)

现在,将使用FD P计算的每个A和C的闭包与FD Q的右侧进行比较。每个A和C的闭包都具有Q的每个FD右侧的所有属性。因此,我们可以说Q是P ———– 2的子集

从1和2我们可以说只有Q是P的子集,因为违反了1的条件,因此选项B是正确的。

问题3:在给定关系模式R(X,Y,Z)的功能依赖关系P和Q集合下:

P = {X→Y,Y→Z,Z→X}和Q = {X→YZ,Y→X,Z→X},使用FD集P和Q以下哪个选项正确?

  • P是Q的子集
  • Q是P的子集
  • P = Q
  • P≠Q

→使用FD集的等价定义,让我们使用FD集Q确定P的FD集的右侧。

给定P = {X→Y,Y→Z,Z→X}并且Q = {X→YZ,Y→X,Z→X}

让我们使用FD Q查找P的每个FD左侧的闭合。

  • X + = XYZ(使用X→YZ)
  • Y + = YZX(使用X→YZ,Y→X)
  • Z + = ZXY(使用X→YZ,Y→X,Z→X)

现在将使用FD Q计算的每个X,Y,Z的闭包与FD P的右侧进行比较。每个X,Y,Z的闭包具有位于P的每个FD右侧的所有属性。因此,我们可以说P是Q ———- 1的子集

→使用FD集的等价定义,让我们使用FD集P确定Q的FD集的右侧。

给定P = {X→Y,Y→Z,Z→X}并且Q = {X→YZ,Y→X,Z→X}

让我们使用FD P查找Q的每个FD左侧的闭合。

  • X + = XYZ(使用X→Y,Y→Z,Z→X)
  • Y + = YZX(使用Y→Z,Z→X)
  • Z + = ZXY(使用X→Y,Y→Z,Z→X)

现在将使用FD P计算的每个X,Y和Z的闭包与FD Q的右侧进行比较。每个X,Y和Z的闭包都具有Q的每个FD右侧的所有属性。因此,我们可以说Q是P ———– 2的子集

从1和2我们可以说P = Q,因此选项C是正确的。

结论:从针对FD的等价问题解决的以上三个问题中,我们注意到以下步骤:

步骤1:假设给出了两个FD集P和Q,分别将每个集合P和Q的FD写入。

步骤2:首先获取FD集P,然后使用FD集Q在P中找到FD左侧每个属性的闭合。

步骤3:现在将P的每个属性的闭合与P的FD的右侧进行比较。

步骤4:如果每个属性的闭包等于P的FD的右边,我们说P是Q的子集

步骤5:接下来取FD集Q,然后使用FD集P查找Q中FD左侧每个属性的闭合。

步骤6:现在将Q的每个属性的闭合与Q的FD的右侧进行比较。

步骤7:如果每个属性的闭包等于Q的FD的右边,我们说Q是P的子集

步骤8:如果P是Q的子集,Q是P的子集,我们可以说P =Q。