每个关系都必须有外码吗

如题所述

**不是每个关系都必须有外码**。
外码是指一个关系模式中的属性或属性组,其值依赖于另一个关系的主码。在关系模型中,每个关系都需要有一个主码,即能够唯一标识关系中的一个元组的属性或属性组。这个主码可以是关系模式中的任何一个属性或属性组。
如果一个关系中的所有属性值都来自本身,那么就不需要外码。例如,在一个学生关系模式中,每个学生都有唯一的学号、姓名和性别,这些属性值都来自学生本身,因此不需要外码。
但是,如果一个关系中的某些属性值依赖于另一个关系的主码,那么就需要外码。例如,在一个课程关系模式中,每门课程都有一个唯一的课号,但是有些课程需要先学习其他课程作为先修课程,这些先修课程的课号就依赖于该课程的关系模式中的主码(课号),因此需要使用外码来标识这些先修课程的课号。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-10-01
关系模式:实体自己的每个属性值都来自本身,就不用外码,比如 关系模式 学生(学号,姓名,性别),模式中实体学生的每个列的值都不依赖于其他表,就不需要用外码(键)。

而关系模式 课程(课号,课名,先修课号) 课程实体里的先修课也是课程,所以这列的取值就要来自该表的主键课号,所以课号就做了主码,先修课就是外码。 还有关系模式 选课(学号,课号,成绩) 你自己分析下这个模式…
相似回答