【发布时间】:2012-11-26 14:14:12
【问题描述】:
我正在尝试研究这个模型并解决以下问题:
PATIENT_VISIT 的候选键是什么?
如果有多个候选键,请从候选键中选择一个主键。
根据选择的主键,PATIENT_VISIT 中存在哪些范式违规?
开发一种解决方案,消除范式违规。
您的解决方案是无损连接分解吗?您的解决方案是否保留了依赖性?如果不是,如何保存依赖关系 达到了吗?这是 BCNF 中的修订解决方案吗?
-
提供一个满足以下所有三个条件的解决方案:(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 | +---------+------------+------------+
此外,假设存在以下语义规则。
- 每位患者可能是几家医院的患者。
- 对于每家医院,一名患者可能只有一名医生。
- 每家医院都有多名医生。
- 每位医生只使用一家医院。
- 每位医生在一家医院治疗数名患者。
【问题讨论】:
-
候选键=在整个表中唯一可靠地标识单行的任何单列或列组;主键 = 根据您的喜好选择的候选键之一