9

假设我们的环境中有三个实体,教师学生课程

  • 每位教师都有(教授)1门或更多门课程,每门课程由0位或更多位教师提供
  • 每个学生都修过 1 门或更多门课程,每门课程由 0 位或更多学生选修
  • 每个教师有 0 个或多个学生,每个学生有 1 个或多个教师

在这种关系中,每个关系都可以从其他两个关系中推断出来,例如知道T1老师正在教哪些学生,通过Teacher和Course之间的关系,看看T1老师正在教什么课程,然后去通过Course 和 Student之间的关系来查看哪些学生上过这些课程。这些学生是 T1 老师正在教的学生。

所以我们不需要Student 和 Teacher之间的明确关系,因为“概念上”这种关系是存在的。

最后的问题是:

概念设计中是否有必要展示所有三种关系?

作为额外的信息,在逻辑设计(设计数据库表和关系)中,关系应该保持为推断关系还是应该明确定义?

4

1 回答 1

7

这是一个例子,

概念(使用 NORMA)

在此处输入图像描述

老师讲课

  • 有可能某位教师教授不止一门课程,而对于某些课程,不止一位教师教授该课程。
  • 在每个教师教授课程中,每个教师、课程组合最多出现一次。

学生参加课程

  • 一些学生可能会学习不止一门课程,而对于某些课程,可能会有多个学生学习该课程。
  • 在每个学生参加课程的人群中,每个学生,课程组合最多出现一次。

教师辅导学生课程

  • 对于每个学生和课程,最多有一位教师指导该学生在该课程上的学习。

约束

  • 对于每个教师和课程,当且仅当该教师教授该课程时,该教师在该课程上辅导某个学生。

  • 对于每个学生和课程,当且仅当该学生参加该课程时,一些教师会在该课程上指导该学生。


逻辑的

在此处输入图像描述

于 2012-10-26T15:16:52.960 回答