关系型数据库的参考完整性约束可以通过()来实现。
A.主码
B.候选码
C.超码
D.外码
参考完整性约束
参考完整性(Referential Integrity) 也称为参照完整性,是关系型数据库中三大完整性约束之一。其核心作用是维护两个关系(表)之间的引用关系,确保数据的一致性。
实现机制:正是通过外码(Foreign Key) 来实现的。
具体规则:一个表的外码值,要么为空(NULL),要么必须等于被引用表中某个元组的主码值。
软考中,数据库的完整性约束通常从以下三个层面考查:

码(键)的层级关系(区分高频混淆点)
选项中的超码、候选码、主码、外码,它们之间是包含关系,逻辑层级如下:
超码(Super Key):一个或多个属性的集合,只要它能唯一标识一条记录即可。(范围最大)
例子:学生表(学号,身份证号,姓名)。其中
学号、身份证号、学号+姓名都是超码。候选码(Candidate Key):最小的超码。即去掉其中任何一个属性,它就不再能唯一标识记录。
例子:
学号是候选码,身份证号也是候选码。但学号+姓名不是候选码(因为去掉姓名,学号依然能标识)。主码(Primary Key):从候选码中挑选一个出来作为主关键字。(人为选定)
外码(Foreign Key):本表中的某个属性,它是另一张表的主码。
外码(参考完整性)的深度细节(软考常挖坑)
关于外码,考试特别喜欢考它的三种实现策略,也就是当主表数据被修改或删除时,子表(含外码的表)该如何反应:
级联(CASCADE):主表删除/修改,子表自动跟着删除/修改。
置空(SET NULL):主表删除/修改,子表对应的外码设为 NULL(前提是允许为空)。
限制(RESTRICT / NO ACTION):如果子表有引用,则拒绝删除或修改主表数据。
在C/C++程序中,函数fun无返回值、无参数,对该函数的正确声明是()。
A.fun(void);
B.void fun(...).
C.void fun(void, ...)
D.void fun(void);
解析:本题主要考查C/C++函数基本概念,没有难度。
在C/C++中,要声明一个“无返回值”且“无参数”的函数:
无返回值:返回类型必须写
void。无参数:在C++中,括号内为空
()或在括号内写void均可。但在严格的C语言标准(以及软考标准考纲)中,fun()表示参数个数和类型未指定(不确定),而fun(void)才明确表示没有任何参数。因此,最标准、最严谨的写法是void fun(void);。
关于参数列表的 void,软考特别喜欢考C语言和C++的细微差别:
void fun(); | 参数个数不确定 | 无参数(void) 等价) |
void fun(void); | 明确无参数 | 无参数 |