5.1什么是数据库的完整性?
数据库的完整性是指数据的正确性和相容行
5.2数据库的完整性概念与数据库的安全性概念有什么区别和联系?
完整性:为了防止数据库中存在不符合语义的数据,防止错误信息的输入
和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果
安全性:保护数据库防止恶意破坏和非法的存取
安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是
不合语义的数据。
5.3什么是数据库的完整性约束条件?
完整性约束条件是指数据库中的数据应该满足的语义约束条件
5.4关系数据库管理系统的完整性控制机制应具有哪三方面的功能?
1.定义功能:提供完整性约束条件的机制
2.检查功能:检查用户发出的操作请求是否违背了完整性约束条件
3.违约条件功能:发现用户的操作请求使数据违背了完整性约束条件
则采取一定的动作来保证数据的完整性。
5.5关系数据库管理系统在实现参照完整性时需要考虑哪些方面
参照完整性将两个表中的相应元组联系起来。因此,对被参照表和参照表进行
增、删、改操作时有可能破坏参照完整性,因此需要保证两个表的相容性。
5.6假设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;
部门(部门号,名称,经理名,电话),其中部门号为主码;
用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
(1)定义每个模式的主码; (2)定义参照完整性; (3)定义职工年龄不得超过60岁。
create table 职工
( 职工号 char(20) primary key,
姓名 char(20),
年龄 smallint,
职务 char(20),
工资 int,
部门号 char(10),
constraint c1 check(年龄<=60),
constraint foreign_key foreign key (部门号) references 部门(部门号)
);
create table 部门
( 部门号 char(10),
名称 char(20),
经理名 char(20),
电话 char(12),
primary key(部门号),
);
5.7在关系系统中,当操作违法实体完整性、参照完整性和用户的定义完整性约束条件时,一般是如何分别进行处理的?
对于违反实体完整性和用户定义的完整性的操作,一般都采用拒绝执行的方式进行处理;
而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,
以保证数据库的正确性。
5.7某单位想举行一个小型的联谊会,关系Male记录注册的男宾信息,关系Female记录注册的女宾信息。建立一个断言,将来宾的人数限制在50人以内。
CREATE TABLE Male
(SerialNumber SmallInt PRIMARY KEY,
Name Char( 8 ),
Age SmallInt ,
Occupation Char( 20));
CREATE TABLE Female
( SerialNumber SmallInt PRIMARY KEY,
Name Char( 8 ) ,
Age SmallInt,
Occupation Char( 20)) ;
创建Male表和Female表后
create assertion party
check((select count(*) from Male)+(select count(*) from Female)<=50);