题目
基本关系R的外码能否取空值[1],应视具体问题而定。当外码不是本关系的主属性[2]时,可以取空值,否则不能取空值。正确错误
基本关系R的外码能否取空值[1],应视具体问题而定。当外码不是本关系的主属性[2]时,可以取空值,否则不能取空值。
正确
错误
题目解答
答案
答案:错误。
简单解释:
基本关系R的外码(外键)可以取空值。外码是指一个关系中的属性,它引用了另一个关系的主键作为其值。在某些情况下,外码可以为空,表示该属性的引用值不存在或未知。在数据库设计中,可以通过设置外码属性的允许空值约束来控制外码是否可以为空。
解析
考查要点:本题主要考查对数据库中外码(外键)是否可以取空值的理解,以及外码是否为主属性对外码取空值的影响。
核心思路:
外码是否可以取空值,关键取决于数据库设计时的约束设置,而非外码是否为主属性。
- 主属性是主键的一部分,因此主属性本身不允许为空。
- 非主属性的外码是否允许为空,需根据具体设计需求通过约束定义,而不是由是否为主属性直接决定。
破题关键:
题目中“当外码不是本关系的主属性时可以取空值,否则不能取空值”的说法错误,因为外码是否允许空值与是否为主属性无直接关系,而是由设计约束决定。
错误原因分析:
- 主属性的特性:主属性是主键的一部分,因此主属性本身不允许为空。如果外码是主属性,则自然不能为空,但这属于主键的性质,而非外码本身的特性。
- 非主属性的外码:外码若不是主属性(即非主键的一部分),是否允许为空应通过约束设置决定。例如:
- 若设计时允许外码为空,则可以取空值;
- 若设计时设置外码必须非空,则不能取空值。
- 题目错误点:题目将外码是否允许空值与是否为主属性直接关联,混淆了主属性的特性与外码的约束规则。
正确结论:
外码是否可以取空值,完全由数据库设计时的约束定义决定,与外码是否为主属性无关。