2

我正在尝试研究这个模型并找出以下关于它的问题:

  1. PATIENT_VISIT 的候选键是什么?

  2. 如果有多个候选键,则从候选键中选择一个主键。

  3. 根据选择的主键,PATIENT_VISIT 中存在哪些正常格式违规?

  4. 开发一个解决方案,消除范式违规。
    您的解决方案是无损连接分解吗?

  5. 您的解决方案是否保留了依赖性?如果没有,如何实现依赖保存?这是 BCNF 中的修订解决方案吗?

  6. 提供满足以下所有三个条件的解决方案:(1)在 BCNF 中,(2)保持依赖关系,(3)是无损连接分解

    +---------+------------+------------+
    | Patient |  Hospital  |   Doctor   |
    +---------+------------+------------+
    | Smith   | Methodist  | D. Cooley  |
    | Lee     | St. Luke's | Z. Zhang   |
    | Marks   | Methodist  | D. Cooley  |
    | Marks   | St. Luke's | W. Lowe    |
    | Lou     | Hermann R. | Duke       |
    +---------+------------+------------+
    

此外,假设存在以下语义规则。

  • 每个患者可能是几家医院的患者。
  • 对于每家医院,一名患者可能只有一名医生。
  • 每家医院都有数名医生。
  • 每位医生只使用一家医院。
  • 每位医生在一家医院治疗数名患者。
4

1 回答 1

1
  1. {Patient, Doctor} 是候选键。唯一可能的其他键是 {Patient, Hospital, Doctor},但这并不是最小的,因为 FD Doctor ⟶ Hospital;它是超级键,但不是候选键。

  2. 没有实际意义;只有一个候选键。

  3. 由于传递依赖(FD)医生⟶医院,该模式不在 BCNF 中。(表的每个属性在功能上由键、整个键和键确定。)

  4. PD {患者,医生},DH {医生,医院}。这是无损分解。

  5. 这个解决方案是依赖保留。

  6. 见 4。

于 2012-11-26T06:13:10.203 回答