数据库完整性-数据库习题

有关系模式:R(A,B,C)和S(D,E,A),若规定S中A的值必须属于R中A的有效值,则这种约束属于( )。
A. 实体完整性规则
B. 用户定义完整性规则
C. 参照完整性规则
D. 数据有效性规则
正确答案: C

一个表中数据要受另一个表中数据制约,是参照完整性

在关系R1(S,SN,D)和R2(D,CN,NM)中,R1的主键是S,R2的主键是D,两个表建立了一对多的联系,则D在R1中称为( )。
A. 外码
B. 主码
C. 候选码
D. 属性
正确答案: A

通过外键可以实现两个关系一对多的联系,主键又称为主码,外键又称为外码。

在SQL中使用FOREIGN KEY语句时,与之配合的语句是( )。
A. EXISTS
B. EXCEPT
C. REFERENCES
D. TABLE
正确答案: C

创建外键的语法:FOREIGN KEY (列名1) REFERENCES 主键表(列名2),如果定义列级约束,可以省略“列名1”

违反了主键约束,可能的操作结果是( )。
A. 拒绝执行
B. 级联操作
C. 设置为空
D. 没有反应
正确答案: A

性别列设置了检查约束,限制只能输入“男”或“女”,如果你在性别列输入一个其他字符,可能的操作结果是( )。
A. 拒绝执行
B. 级联操作
C. 设置为空
D. 没有反应
正确答案: A

检查约束属于自定义完整性,违约策略是“拒绝执行”,只有参照完整性违约处理才有三种选择。

删除一个表上约束的关键字不包括( )。
A. ALTER
B. DROP
C. DELETE
D. TABLE
正确答案: C

删除表上约束是修改表结构,语句为ALTER TABLE 表名 DROP CONSTRAINT 约束名

约束“主码中的属性不能取空值”,属于( )。
A. 实体完整性
B. 参照完整性
C. 用户定义完整性
D. 函数依赖
正确答案: A

实体完整性要求每一个实体都是与众不同的,通过主键实现,主键值(主码属性)不可以重复,而且不允许为空值

所有主键都可以设置为列级约束。( )
A. 对
B. 错
正确答案: B

只涉及一列的主键可以定义为列级或表级约束,如student表上SNO是主键,可以在SNO列定义后面直接写PRIMARY KEY,定义列级约束,也可以在所有列定义结束后定义表级约束,而涉及多列的主键必须定义为表级约束,如SC表的联合主键(SNO,CNO)

主键定义为列级约束和定义为表级约束的写法是一样的,都是直接写PRIMARY KEY关键字。( )。
A. 对
B. 错
正确答案: B

主键定义列级约束直接在列名后面写PRIMARY KEY,但定义表级约束时必须写为PRIMARY KEY(列名),否则不知道主键定义在哪一列。

检查约束定义为列级约束和定义为表级约束的写法是一样的。( )。
A. 对
B. 错
正确答案: A

检查约束必须为完整的表达式,如:check(sex=’男’ or sex=’女’)。

检查约束定义为列级约束和定义为表级约束的写法一样,所以任何检查约束都是可以定义为列级或者表级。( )。
A. 对
B. 错
正确答案: B

只涉及一个列的检查约束可以定义为列级,也可以定义为表级,但涉及多列的检查约束必须定义为表级约束,如:限制男生的姓名不可以用“MS.”开头,涉及性别SEX和姓名SNAME两列,必须定义为表级约束,写为check(sex=’女’ or sname not like ‘MS.%’)。

建表时定义完整性约束后,需要我们在数据变化时自行检查数据是否符合约束要求。( )。
A. 对
B. 错
正确答案: B

完整性约束定义好后,在执行insert,update,delete操作时,DBMS自动检查数据是否符合约束中定义的语义要求,无需人工检查。

关系型数据库的完整性约束有两类,实体完整性和参照完整性。( )
A. 对
B. 错
正确答案: B

三类,还有用户自定义完整性

只能在create table建表时加入PRIMARY KEY关键字定义主键。( )
A. 对
B. 错
正确答案: B

如果建表时未定义主键,也可以修改表结构增加主键,语法为:alter table 表名 add constraint 约束名 PRIMARY KEY(列名)

为成绩表SC定义学号和课程号联合主键时,可以在学号SNO和课程号CNO后面分别加上PRIMARY KEY。( )
A. 对
B. 错
正确答案: B

一个表中不可以有两个PRIMARY KEY,一个表只能一个主键,涉及多列的主键必须定义为表级约束,在所有列定义结束后写PRIMARY KEY(SNO,CNO)。

student表中有学号为21的学生信息,在选课sc表中删除21号学生的选课数据会出错,受学号外键制约,不允许删除。( )
A. 对
B. 错
正确答案: B

外键表SC中数据可以随意删,主键表student中数据删除时会受外键制约。

选课表sc中有21号学生的选课数据,在student表中删除21号的学生信息会出错,受学号外键制约,不允许删除。( )
A. 对
B. 错
正确答案: B

表述不完全准确。删除主键表student中数据时会受外键制约,但定义外键有三个选项:拒绝删除、级联删除和设置为空,默认是拒绝删除,如果定义外键时加上“ON DELETE CASCADE”选项,就不会拒绝删除,而是将21号学生信息在student表和SC表一起删除。

在选课表sc中cno列定义指向课程表的外键时可以加上“on delete set null”的选项。( )
A. 对
B. 错
正确答案: B

SC表中学号和课程号是联合主键,不可以为空,不可以在删除课程表中数据时将SC表中该课程选课记录的课程号置为空。定义约束要符合现实语义。

在员工表中部门编号列定义指向部门表的外键时可以加上“on delete set null”选项。( )
A. 对
B. 错
正确答案: A

员工表中部门表号列一般允许为空,可以允许员工暂时未分配部门,所以,如果部门取消了,在部门表删除了该部门信息,可以将该部门员工的部门编号置为空,处于待分配部门状态,符合现实语义。

在员工表中部门编号列定义指向部门表的外键时可以加上“on delete cascade”选项。( )
A. 对
B. 错
正确答案: B

如果部门取消了,在部门表删除了该部门信息,可以将该部门员工的部门编号置为空,处于待分配部门状态,但不能级联删除该部门员工信息,这样不符合现实语义。

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值