某个属性可以既是主码又是外码吗?

百度了一下,以前有2个人问过这个问题,回答都是可以的。但根据外码的定义,“属性或属性组X不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模式的码,则称X是R... 百度了一下,以前有2个人问过这个问题,回答都是可以的。
但根据外码的定义,“属性或属性组X不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模式的码,则称X是R的外部码,也称外码。”
我认为某个属性不能既是主码又是外码。你们怎么看?
展开
 我来答
无知少年祥天xt
2020-05-03 · TA获得超过125个赞
知道答主
回答量:17
采纳率:0%
帮助的人:4980
展开全部
首先明确几个定义:码,主码,外码。
码:唯一标识实体的属性集。
主码:多个候选码中选择其中一个为主码。
外码:属性或属性组X不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模式的码,则称X是R的外部码,也称外码。
看外码定义,有两个要求,一是不能是本关系的码,还必须是另一个关系的码。
回到开头的码的定义,就知道了,外码不能是码,否则两个关系模式就成一个关系模式了,没有分开的必要了。这就是问题答案了。
但是,外码可以为主属性!即,可为主码的部分属性集。这点要注意!当然此时的外码不能为空。
到这里还不懂的话,多读几遍码、主码、主属性、非主属性、外码等概念。
我用手机打的,排版不是很好,也就不举例了。虽然这么多年过去了,但也希望能帮到你和其他人。
个人理解,仅供参考。
己水丹Aa
2021-12-15
知道答主
回答量:1
采纳率:0%
帮助的人:404
展开全部

sno是学生表中的主码,cno是课程表中的主码,sc表中sno是参照了student表中的sno所以是外码,同理sc表中的cno参照了course表中cno也是外码,但是sc表中的主码是(sno,cno)的组合,所以一个属性可以既是主码也是外码。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牢扬q
2022-11-04
知道答主
回答量:29
采纳率:0%
帮助的人:1.8万
展开全部

课本上的定义没有错

其实,这个问题下面的己水丹答主以及说的很好了。

假设有3个关系模式。加粗斜体字是它们的码(编辑不出下划线)

学生(学号,姓名)

课程(课程号,课程名)

选修(学号,课程名

对于“选修”这个关系模式来说,“学号”这个属性不是它的主码(它的主码是学号,课程名),但“学号”属性却是“学生”这个关系模式的主码。所以说”学号“属性是“选修”这个关系模式的外码。

同理,“课程名”属性不是“选修”的主码,但却是“课程”的主码,所以它是“选修”的外码。

总结一下,选修关系的外码是:“学号”“课程名”。它的主码是“学号,课程名”。注意:主码是两个属性合在一起,整体作主码。而外码是2个属性分开的。

所以,课本上的定义其实没有错,而且必须那么定义(一个关系模式的主码不能同时也是外码)。因为如果关系模式R的主码也是外码的话,外码是另一个关系的主码,这就说明存在一个关系它的主码和R的一模一样。这种情况2个关系是可以合并的。所以课本才要特别说明主码不能做外码。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhanghui_hn
2012-08-04
知道答主
回答量:8
采纳率:0%
帮助的人:5.5万
展开全部
你可以自己用SQL语句去试一下,实践与理论相结合才是正道。
追问
我知道数据库中可以存在2个表,主码一样的2个表。但根据外码的定义,一个表中的某个属性既然是本表的主码了,就不能同时又叫做外码了。可以有,但称呼上不能叫做外码了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lemonlms987
2012-08-04 · TA获得超过277个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:77.8万
展开全部
是主键与外键吧,为什么不可以?自己试一下不就知道了吗?
追问
有2个关系:
R1(a,b,c,d)a是R1主码
R2(a,e,f,g)a是R2主码,你能说a也是R2的外码(参照R1)吗?
追答

朋友,我不知道你是外行还是内行,按我们的说法,叫主键外键,不是主码外码!

如果按你说的这个都不能实现,这叫什么关系数据库?如下图,nf,qs在每一个表中都是主键,肯定可作为其它表的外键,只要不形成一个环状。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式