首页 >

关系模式如R=({A,B,C,D,E},{AB→CE,E→A

步骤1:确定候选键(能推出所有属性的最小属性集)

函数依赖有3条:AB→CE、E→AB、C→D。

  • 从AB出发:AB→CE(推出C、E),结合E→AB(E能推出A、B,但AB已包含A、B),再通过C→D(AB→C → C→D → AB→D)→ AB能推出所有属性(A,B,C,D,E)。
  • 从E出发:E→AB(推出A、B),结合AB→CE(推出C、E),再通过C→D(E→AB→C → C→D → E→D)→ E也能推出所有属性(A,B,C,D,E)。

因此,候选键是AB和E(两者互相可推导,且是最小能覆盖所有属性的集合)。

步骤2:区分主属性与非主属性

  • 主属性:候选键包含的属性(A、B、E)。
  • 非主属性:候选键未包含的属性(C、D)。

步骤3:逐范式验证

(1)1NF(第一范式):属性原子性

关系中所有属性(A,B,C,D,E)均为“不可再分的原子值”,满足1NF。但需看更高范式。

(2)2NF(第二范式):无部分依赖(非主属性必须完全依赖于候选键,不能只依赖候选键的一部分)
  • 对非主属性C:依赖AB→C(AB是候选键,且A或B单独无法推出C,题目无A→C或B→C的依赖)→ 完全依赖于候选键,无部分依赖。
  • 对非主属性D:依赖C→D,但C是由AB→C(候选键AB完全决定C)→ D的依赖链是AB→C→D,2NF不检查“传递依赖”,只检查“部分依赖”。由于D没有依赖于候选键的“部分属性”(如A或B单独决定D),因此也无部分依赖。

→ 满足2NF。

(3)3NF(第三范式):无传递依赖(非主属性不能通过其他非主属性传递依赖于候选键)

传递依赖的定义:若存在X→Y且Y→Z,且Y不推出X、Z不是Y的子集,则Z传递依赖于X。

  • 对非主属性D:AB→C(X=AB,Y=C)且C→D(Y=C,Z=D)。
    • Y=C不推出X=AB(题目无C→AB的依赖);
    • Z=D不是Y=C的子集 → 因此D传递依赖于候选键AB

→ 存在非主属性对候选键的传递依赖,不满足3NF。

(4)4NF(第四范式):无多值依赖(需先满足BCNF,且无非平凡多值依赖)

本题未涉及多值依赖(函数依赖中无“一个属性对应多个值”的情况),但因不满足3NF,无需再验证4NF。

综上,该关系模式最高满足2NF,对应选项 B

表不可再分,属于1NF;
E——AB,又AB——CE,所以E——C;又c——D,所以E——D;
得E决定AB、C、D。一个表只有一个列为主键==》2NF

发表于 2019-03-16 09:50:51 回复(0)
E可以推出全部,所以它是主键,第三范式要求消除传递依赖,这里E->AB,AB->CE,E又可以推出CE
发表于 2019-03-23 21:27:17 回复(7)
第一范式 值不可再分
第二范式 消除了部份依赖
第三范式 消除了传递依赖
BCNF 消除了非候选键的传递依赖
发表于 2020-01-11 18:34:00 回复(1)
经过计算闭包,候选键为E,AB。非主属性C,D。由依赖集得不存在非主属性对候选键的部分依赖,所以至少为2NF;又AB->C,C->D,且C不能决定AB,所以D传递依赖于AB,不满足3NF。最高为2NF。
发表于 2020-03-25 12:51:13 回复(0)
第一范式:对于表中的每一行,必须且仅仅有唯一的行值.在一行中的每一列仅有唯一的值并且具有原子性. 第二范式要求非主键列是主键的子集,非主键列活动必须完全依赖整个主键。主键必须有唯一性的元素,一个主键可以由一个或更多的组成唯一值的列组成。一旦创建,主键无法改变,外键关联一个表的主键。主外键关联意味着一对多的关系. 第三范式要求非主键列互不依赖. 第四范式禁止主键列和非主键列一对多关系不受约束 第五范式将表分割成尽可能小的块,为了排除在表中所有的冗余.
发表于 2019-07-30 00:54:33 回复(0)
这一题目的正确答案应该是这样的:首先AB→CE,又有C→D,故AB→ABCDE,所以AB是候选码,又因为AB→CE,而C→D,所以存在非主属性D对候选码AB的传递依赖,因此不满足3NF,所以是2NF。此题目中E→AB,很明显E是个陷阱,跟判断范式没太大关系。
发表于 2021-07-24 14:07:14 回复(0)
求一下最小函数依赖集为{AB->C, AB->E, E->A, E->B, C->D},实际上AB<->E
算一下闭包,候选码是AB和E。
上面最小函数依赖集中AB->C->D,非主属性D对码AB传递函数依赖,因此不是3NF。C和D都对码AB完全函数依赖,因此符合2NF。
编辑于 2023-01-15 15:24:54 回复(0)
1NF 表中属性不可再分
2NF 取消非主属性对码的部份函数依赖
3NF 取消所有非主属性对码的传递函数依赖
BCNF 取消主属性对于码的部分和传递函数依赖
表中D传递依赖于[A,B]码,故不符合3NF,属于2NF
发表于 2022-03-23 09:55:01 回复(0)
应该是A吧。 键是A,B和C,E,那么明显存在D对主属性C的部分函数依赖。
发表于 2019-03-15 09:34:42 回复(2)

步骤1:确定候选键(能推出所有属性的最小属性集)

函数依赖有3条:AB→CE、E→AB、C→D。

  • 从AB出发:AB→CE(推出C、E),结合E→AB(E能推出A、B,但AB已包含A、B),再通过C→D(AB→C → C→D → AB→D)→ AB能推出所有属性(A,B,C,D,E)。
  • 从E出发:E→AB(推出A、B),结合AB→CE(推出C、E),再通过C→D(E→AB→C → C→D → E→D)→ E也能推出所有属性(A,B,C,D,E)。

因此,候选键是AB和E(两者互相可推导,且是最小能覆盖所有属性的集合)。

步骤2:区分主属性与非主属性

  • 主属性:候选键包含的属性(A、B、E)。
  • 非主属性:候选键未包含的属性(C、D)。

步骤3:逐范式验证

(1)1NF(第一范式):属性原子性

关系中所有属性(A,B,C,D,E)均为“不可再分的原子值”,满足1NF。但需看更高范式。

(2)2NF(第二范式):无部分依赖(非主属性必须完全依赖于候选键,不能只依赖候选键的一部分)
  • 对非主属性C:依赖AB→C(AB是候选键,且A或B单独无法推出C,题目无A→C或B→C的依赖)→ 完全依赖于候选键,无部分依赖。
  • 对非主属性D:依赖C→D,但C是由AB→C(候选键AB完全决定C)→ D的依赖链是AB→C→D,2NF不检查“传递依赖”,只检查“部分依赖”。由于D没有依赖于候选键的“部分属性”(如A或B单独决定D),因此也无部分依赖。

→ 满足2NF。

(3)3NF(第三范式):无传递依赖(非主属性不能通过其他非主属性传递依赖于候选键)

传递依赖的定义:若存在X→Y且Y→Z,且Y不推出X、Z不是Y的子集,则Z传递依赖于X。

  • 对非主属性D:AB→C(X=AB,Y=C)且C→D(Y=C,Z=D)。
    • Y=C不推出X=AB(题目无C→AB的依赖);
    • Z=D不是Y=C的子集 → 因此D传递依赖于候选键AB

→ 存在非主属性对候选键的传递依赖,不满足3NF。

(4)4NF(第四范式):无多值依赖(需先满足BCNF,且无非平凡多值依赖)

本题未涉及多值依赖(函数依赖中无“一个属性对应多个值”的情况),但因不满足3NF,无需再验证4NF。

综上,该关系模式最高满足2NF,对应选项 B

发表于 2025-06-27 19:31:14 回复(0)
e是主键啊
发表于 2024-03-21 04:22:37 回复(0)
所以R=({A,B,C,D,E},是的啥意思。我题目都读不懂
发表于 2024-02-23 19:08:46 回复(0)