数据库第五章 数据库完整性 课后习题

1.什么是数据库的完整性?
数据库的完整性是指数据的正确性和相容性。
2.数据库的完整性概念与数据库的安全性概念有什么区别和联系?
数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(GarbageInGarbageOut)所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
3.什么是数据库的完整性约束条件?
完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。
4.关系数据库管理系统的完整性控制机制应具有哪三方面的功能?
DBMS的完整性控制机制应具有三个方面的功能:
(1)定义功能,即提供定义完整性约束条件的机制;.
(2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;.
(3)违约反应,如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
5.关系数据库管理系统在实现参照完整性时需要考虑哪些方面?
RDBMS在实现参照完整性时需要考虑以下几个方面:
(1)外码是否可以接受空值。
(2)删除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:
1)级联删除(CASCADES)
2)受限删除(RESTRICTED)
3)置空值删除(NULLIFIES)
(3)在参照关系中插入元组时的问题,这时系统可能采取的作法有:
1)受限插入
2)递归插入。
(4)修改关系中主码的问题。–般是不能用UPDATE语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。
6.假设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码:
部门(部门号,名称,经理名,电话),其中部门号为主码。
用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
(1)定义每个模式的主码: (2)定义参照完整性: (3)定义职工年龄不得超过60岁。

职工表定义:
CREATE TABIE Workers
( Wno NUMBER (4),
Wname VARCHAR (10),
WAge NUMBER (2),
CONSTRAINT Cl CHECK (WAge<=60),
Job VARCHAR(9),
Sal NUMBER(7, 2),
Deptno NUMBER (2),
CONSTRAINT WKey FOREIGN KEY (Deptno)
REFERENCES DEPT (Deptno)) ;
部门表定义:
CREATE TABLE DEPT
(Deptno NUMBER(2),
Dname VARCHAR (10),
Manager VARCHAR (10),
phoneNum VARCHAR(11)
CONSTRAINT DKey PRIMARY KEY (Deptno)
);
7.在关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?
对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。
8.某单位想举行一个小型的联谊会,关系Male记录注册的男宾信息,关系Female记录注册的女宾信息。建立一个断言,将来宾的人数限制在50人以内。(提示,先创建关系Female和关系Male。)
CREATE TABLE Female
( Fno CHAR(10) PRIMARY KEY
Fname CHAR(10) NOT NULL,
Fage SMALLINT);
CREATE TABLE Male
( Mno CHAR(10) PRIMARY KEY
Mname CHAR(10) NOT NULL,
Mage SMALLINT );
断言代码:
CREATE ASSERTION Pcount
CHECK(50>=(SELECT COUNT(*)
FROM (SELECT * FROM Male
UNION
SELECT * FROM Female)
AS num);
这里改为不超过4人方便验证,触发器代码(方法一):
在这里插入图片描述
总人数不超过4,但男女宾要分开记录,所以在Female表和Male表上分别建立一个触发器,条件是两个表相加的人数不能超过4
插入四条记录可成功插入:
在这里插入图片描述
若继续插入信息,总人数会超过4人,触发器内会执行删除语句,其他信息不能成功插入,总人数还是保持4人。
在这里插入图片描述
方法二触发器代码:
在这里插入图片描述

### 回答1: 在关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般会进行以下处理: 1. 实体完整性约束条件:当操作违反实体完整性约束条件时,系统会拒绝该操作并提示用户错误信息,要求用户重新输入符合实体完整性的数据。 2. 参照完整性约束条件:当操作违反参照完整性约束条件时,系统会拒绝该操作并提示用户错误信息,要求用户先修改被引用表中的数据,使其符合参照完整性约束条件,然后再进行操作。 3. 用户定义的完整性约束条件:当操作违反用户定义的完整性约束条件时,系统会根据用户定义的处理方式进行处理,例如,可以选择拒绝该操作、自动修正数据或者提示用户进行手动修正。 ### 回答2: 在关系数据库中,实体完整性、参照完整性和用户定义的完整性约束条件是关系系统的重要保证,它们保障了数据库中数据的正确性、有效性和可靠性。当操作违反这些约束条件时,一般会采取不同的处理方式。 1. 实体完整性约束条件 实体完整性约束条件保障了表中每个记录都有唯一性标识并且不为空。当操作违反实体完整性约束条件时,一般会阻止操作的执行,并提示用户输入正确的数据。 例如,在一个学生信息表中,学生的学号是唯一的,不允许重复,如果用户输入了一个已经存在的学号,则数据库会阻止用户的操作,并提示用户重新输入正确的学号。 2. 参照完整性约束条件 参照完整性约束条件保障了两个表之间的一致性,确保了在主表中的数据在从表中都有对应的匹配数据。当操作违反参照完整性约束条件时,一般会阻止操作的执行,并提示用户输入正确的数据或者删除相关数据。 例如,在一个订单管理系统中,订单表与客户表存在外键关系,客户表中的客户编号是主表的订单编号的外键,如果用户尝试在订单表中插入一个不存在于客户表中的客户编号,则数据库会阻止用户的操作,并提示用户输入正确的客户编号或者先在客户表中添加该客户信息。 3. 用户定义的完整性约束条件 用户定义的完整性约束条件是用户针对具体业务需求自定义的约束条件,如输入数据格式、合法数据范围等。当操作违反用户定义的完整性约束条件时,一般会阻止操作的执行,并提示用户重新输入正确的数据或者通过其他方式修改数据。 例如,在一个公务出行管理系统中,出差单中的出发时间和到达时间不能超过24小时,如果用户输入了超过24小时的出行时间,则数据库会阻止用户的操作,并提示用户重新输入合法的时间。如果用户需要修改时间,则需要先删除原有的出差单记录,重新填写符合条件的数据。 总之,当操作违反关系系统中的完整性约束条件时,数据库会根据不同约束条件采取不同的处理方式,保证数据库中数据的正确性和一致性。 ### 回答3: 在关系数据库管理系统中,实体完整性、参照完整性和用户定义的完整性约束条件是确保数据在数据库中正确性、完整性和一致性的关键元素。当操作违反这些完整性约束条件时,系统会根据约束类型分别进行处理。 1. 实体完整性:实体完整性是指每个表必须有一个主键,且主键不能重复或为空。如果操作违反了实体完整性约束条件,则系统会停止执行该操作,并返回相关错误提示。 2. 参照完整性:参照完整性是指关系表之间的参照关系必须满足一定的约束条件,如外键必须指向另一个表的主键。如果操作违反了参照完整性约束条件,则系统会阻止此操作并抛出相关的错误提示。 3. 用户定义的完整性约束条件:用户定义的完整性约束条件是指除了实体完整性和参照完整性外,用户可能会添加自己的约束。这些约束条件可以是非空值、唯一性等等。如果操作违反了用户定义的完整性约束条件,则系统会停止该操作并返回错误提示。 总而言之,数据库管理系统会根据不同的完整性约束条件设置相关的处理机制,以保证数据库的数据正确性、完整性和一致性。当不可避免的操作违反这些约束条件时,系统会立即报错,以提示用户进行相应的调整和修复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值