首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >帮助查找数据库候选密钥,主密钥

帮助查找数据库候选密钥,主密钥
EN

Stack Overflow用户
提问于 2012-11-26 02:28:54
回答 1查看 418关注 0票数 2

我正在努力研究这一模式,并找出有关它的下列问题:

  1. PATIENT_VISIT的候选密钥是什么?
  2. 如果有多个候选密钥,则从候选密钥中选择一个主键。
  3. 根据所选择的主键,PATIENT_VISIT中存在哪些正常形式的违规?
  4. 制定一个解决方案,消除正常形式的违规行为。 您的解决方案是无损连接分解吗?
  5. 你的解决方案依赖-保持吗?如果没有,如何才能实现依赖关系的保留?这是BCNF的修正解决方案吗?
  6. 提供满足以下所有三个条件的解决方案:(1)在BCNF中,(2)是保持依赖的,以及(3)是无损连接分解。 +-+马克·卢克·W·洛维卢·赫尔曼·R·杜克+

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

  • 每个病人可能是几家医院的病人。
  • 每一家医院,病人可能只有一名医生。
  • 每家医院都有几个医生。
  • 每个医生只使用一家医院。
  • 每个医生在一家医院治疗几个病人。
EN

回答 1

Stack Overflow用户

发布于 2012-11-26 06:13:10

  1. {病人,医生}是候选密钥。唯一的其他可能的键是{ superkey,医院,医生},但这并不是最小的,因为FD医生⟶医院;它是一个超级密钥,但不是候选密钥。
  2. 没有意义;只有一个候选密钥。
  3. 由于传递依赖(FD)医生⟶医院,该模式不在BCNF中。(表的每个属性在功能上取决于键、整个键,只有键。)
  4. PD {病人,医生},DH {医生,医院}。这是一个无损的分解。
  5. 这个解决方案是保持依赖性。
  6. 见4。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13557874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档