微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我是否已以正确的方式将此数据库标准化为3NF级别? UNF 1NF 2NF 3NF

如何解决我是否已以正确的方式将此数据库标准化为3NF级别? UNF 1NF 2NF 3NF

我最近在大学里做了一次有关规范化数据库的讲座,但是由于我们在线,所以我真的不能问很多问题,所以我在这里

有人可以告诉我我是否在正确地进行转换,否则我会在哪里误入歧途?

任务:

The Task

我的解决方案:

UNF

# Patient Nos
  Patient Name
  Ward Nos
  Ward Name
  bed Name
# Drug Number
  (Drug Name)
  (Description)
  (Dosage)
  (Method)
  (Units Given)
  (Start Date)
  (Finish Date)

1NF

# Patient Nos
  Patient Name
  Ward Nos
  Ward Name
  bed Name

# Patient Nos
# Drug Number
  Drug Name
  Description
  Dosage
  Method
  Units Given
  Start Date
  Finish Date

2NF

# Patient Nos
  Patient Name
  Ward Nos
  Ward Name
  bed Name

# Patient Nos
# Drug Number
  Drug Name
  Description
  
# Patient Nos  
  Dosage
  Method
  Units Given
  Start Date
  Finish Date

3NF

# Patient Nos
  Patient Name
  Ward Nos
  Ward Name
  bed Name

# Patient Nos
# Drug Number
  Drug Name
  Description
  
# Patient Nos
# Drug Number
  Dosage
  Method
  Units Given

# Patient Nos
  Start Date
  Finish Date

解决方法

让我们从患者开始。关于病人的唯一信息就是他的电话号码和姓名。

Patient
_______
Patient Nos
Patient Name

接下来,我们有一个病房。根据该报告,一个病房可以有多个患者,而一个病房则可以容纳多个患者。我们使用外键为一对多关系建模。

Patient
_______
Patient Nos
Patient Name
Ward Nos (FK)

Ward
----
Ward Nos
Ward Name

最后,我们有了床。病房有多张床,而病人有一张床。由于我们只知道一张床是床号,因此我们会将其添加到患者表中,作为没有任何信息要定义的表的另一个外键。

Patient
_______
Patient Nos
Patient Name
Ward Nos (FK)
Bed Nos (FK)

我们对毒品有什么了解?

Drug
----
Drug Nos
Drug Name
Drug Description

我们还知道什么?剂量是药物与患者之间的关系。因此,让我们尝试一下。我假设开始和结束日期与药物有关,因为它与药物在同一行。

Dosage
------
Dosage Nos
Dosage Type
Dosage Method
Dosage Units Given
Dosage Start Date
Dosage End Date
Drug Nos (FK)
Patient Nos (FK)

现在,我们已将剂量与药物和患者相关。但是,我们尚未将患者与剂量捆绑在一起。一个患者可以有多个剂量,并且一个剂量可以属于一个以上的患者。当我们存在多对多关系时,我们使用联结表将它们联系在一起。

PatientDosage
-------------
PatientDosage Nos
PatientDosage Units Given
PatientDosage Start Date
PatientDosage End Date
Patient Nos (FK)
Dosage Nos (FK)

我们将给定的单位,开始日期和结束日期移至PatientDosage连接表,因为这些字段与患者和剂量有关。因此最终的剂量表将如下所示。

Dosage
------
Dosage Nos
Dosage Type
Dosage Method
Drug Nos (FK)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。