编 辑:彭文华
来 源:大数据架构师(ID:bigdata_arch)
嗯,上周末我去考了个CDGA,其中有道题出重复了(15和55题),题目大概是这样的,你也来选一下看看结果:就是这样一道看上去很简单的题,结果引起一场超级大讨论。就这个问题都能吵半天,我也是彻底无语了...答案一
答案二
答案三
主键不可为空或Null值,不可修改,允许联合主键。但是可以重复使用。这个。。。感觉很牵强啊。主键是唯一ID,肯定不能重复。但是“重复使用”的概念和重复是两码事啊。
到底选什么?
我们回到题目上来。我们知道,考试是考试,实操是实操。我们不能拿一MySQL数据库实现的情况来逆向判断主键的特性,就像你不能拿一只长着5条腿的蛤蟆得出所有蛤蟆都是5条腿一样。回头我设计一个数据库,不允许联合主键的存在,那是不是D选项也错了?所以,这道题考的不是实操,而是主键的定义。主关键字(主键,primary key)是被挑选出来,作表的行的唯一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。主键可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键,又称主码。并且它可以唯一确定表中的一行数据,或者可以唯一确定一个实体。
从上面的定义和书上所述,主键的定义关键字是“唯一”、“确定一个实体”、“一个或多个字段”。
很明显,唯一代表着不允许重复;确定一个实体决定了主键不允许为空;联合主键就不用说了。所以,ACD都对,唯有这条是错误的。所以选B。反正我两道题都选了B,如果我CDGA过了,就算了。如果没过,我就去找汪主席聊聊去扩展阅读:公众号“大数据架构师”后台回复“DMBOK”即可下载彭友会的徐总他们组织整理的【DMBOK2200个知识点】。更多精彩:
排版 | 老彭
审校 | 老彭 主编 | 老彭