软考-软件设计师:数据库技术基础-关系数据库的规范化:候选键、如何确定候选键

候选码/候选键建 (多组)

唯一标识一个记录的字段(可以有多个)
如:学号、身份证号

找出候选键

提示: 不能被其他属性推导的属性,称为 入度为0的属性

  1. 将关系模式的函数依赖关系用 有向图 的方式表示。(建议不做)

  2. 找出 入度为0 的所有属性

    • 如果这些属性,能 推导出其他所有属性,则该属性集为候选键。

    • 如果这些数学,不能推导出其他所有属性,而是 需要加入一些中间结点(既有入度,也有出度的结点),才能推导其他所有属性,此时的属性集合为候选键。

例子

例子1答案

  1. 找出 入度为0 的属性:A,B,C,D
  2. 这4个属性可以推导出所有属性

结论:所以候选键是 A,B,C,D

例子2答案

B

技巧:有选项,直接用各个选项往里面套:

  • A → BC:A可以推导出所有属性
  • B → C,B → A:B 可以推导出所有属性

说明有 两组候选码

例子3

关系模式 CSZ(CITY,ST,ZIP),其属性组上的函数依赖集为:F={(CITY,ST)→ ZIP,ZIP → CITY} 其中CITY表示城市,ST表示街道,ZIP表示邮政编码。

  1. 找出 入度为0 的属性:ST
  2. ST属性不能推导出所有属性
  3. 加入 一些中间节点,得到:
    • CITY,ST:可以推导出 ZIP,即:推导出全部属性
    • ZIP,ST:ZIP可以推导出 CITY,即:推导出全部属性

所以有两组候选码:CITY,ST、ZIP,ST

该关系模式中的 所有属性都是候选码,此时是 全码/ALL-Key

题

若给定的关系模式为R,U={A,B,C},F={AB→C,C→B}则关系R()。

A、有2个候选关键字AC和BC,并且有3个主属性
B、有2个候选关键字AC和AB,并且有3个主属性
C、只有一个候选关键字AC,并且有1个非主属性和2个主属性
D、只有一个候选关键字AB,并且有1个非主属性和2个主属性

答案

  1. 找出 入度为0 的属性:A、B、C
  2. A、B、C 这3个属性,无法 单独 推导出所有属性
  3. 加入中间节点:
    • AB能推导出C,即:推导出所有属性
    • AC能推导出B,即:推导出所有属性

结论:有两组候选关键字 AB、AC,3个主属性

B

题

给定关系模式R(U,F),其中:U为关系模式R中的属性集,F是U上的一组函数依赖。假设U={A1,A2,A3,A4},F={A1 → A2,A1A2 → A3,A1 → A4,A2 → A4},那么关系R的主键应为()。函数依赖集F中的()是冗余的。

A、A1
B、A1A2
C、A1A3
D、A1A2A3

A、A1→A2
B、A1A2→A3
C、A1→A4
D、A2→A4

分析第一问

将各个选项代入题干,看哪个选项符合

  • A:A1是 入度为0 的属性,能推导出 A2,A1A2能推导出A3,A1能推导出A4,即:推导出所有属性,正确

  • B:不用A2

  • C:A3不是 入度为0 的属性,错

  • D:A1A2A3:不用A2A3

分析第二问

将各个选项代入题干,看哪个选项符合

  • A、A1→A2:必不可少

  • B、A1A2→A3:必不可少

  • C、A1→A4:由于 A1 → A2,A2 → A4,根据 传递律,推导出 A1 → A4,所以 C 正确

  • D、A2→A4:注意:有 D ,那么 C 就冗余

答案

B
D

题

给定关系模式 R<U,F>,其中U为属性集,F是U上的一组函数依赖,那么Armstrong公理系统的伪传递律是指()

A、若X→Y,X→Z,则X→YZ为F所蕴涵
B、若X→Y,WY→Z,则XW→Z为F所蕴涵
C、若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵
D、若X→Y为F所蕴涵,且Z≤U,则XZ→YZ为F所蕴涵

答案

  • A:合并
  • B:正确
  • C:传递
  • D:曾广

原文出处:/show_1GW12eMPmlhh.html