db第5章 习题答案

db第5章 习题答案

ID:16289198

大小:41.50 KB

页数:3页

时间:2018-08-09

db第5章 习题答案_第1页
db第5章 习题答案_第2页
db第5章 习题答案_第3页
资源描述:

《db第5章 习题答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第五章数据库完整性一、选择题  1.完整性检查和控制的防范对象(AC),防止它们进入数据库。安全性控制的防范对象是(BD),防止他们对数据库数据的存取。  A.不合语义的数据B.非法用户  C.不正确的数据D.非法操作  2.下述SQL语言中的权限,哪一个允许用户定义新关系时,引用其他关系的主码作为外码(C)。  A.INSERTB.DELETE  C.REFERENCESD.SELECT  二、简答题  1.什么是数据库的完整性?答:数据库的完整性是指数据的正确性和相容性。  2.数据库的完整性概念与数据库的安全性概念有

2、什么区别和联系?  答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。  前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(GarbageInGarbageOut)所造成的无效操作和错误结果。  后者是保护数据库防止恶意的破坏和非法的存取。  也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。3.DBMS的完整性控制机制应具有哪些功能?  答:DBMS的完整性控制机制应具有三个方面的功能:  1).定义功能,即提供定义完整性约束条件的

3、机制。  2).检查功能,即检查用户发出的操作请求是否违背了完整性约束条件。3).违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。4.RDBMS在实现参照完整性时需要考虑哪些方面?  答:RDBMS在实现参照完整性时需要考虑以下几个方面:  1)外码是否可以接受空值  2)删除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:  (a)级联删除(CASCADES);  (b)受限删除(RESTRICTED);  (c)置空值删除(NULLIFIES)  3)在参照关系中

4、插入元组时的问题,这时系统可能采取的作法有:  (a)受限插入  (b)递归插入  4)修改关系中主码的问题  一般是不能用UPDATE语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。如果允许修改主码,首先要保证主码的唯一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。5.假设有下面两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码; 部门(部门号,名称,经理名,电话),其中部门号为主码; 用SQL语言定义这两个关系模式,要求在模式

5、中完成以下完整性约束条件的定义: 定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60岁。  答  CREATETABLEDEPT(DeptnoNUMBER(2),DeptnameVARCHAR(10),ManagerVARCHAR(10),PhoneNumberChar(12),CONSTRAINTPK_SCPRIMARYKEY(Deptno));CREATETABLEEMP(EmpnoNUMBER(4),EnameVARCHAR(10),AgeNUMBER(2)CONSTRAINTC1CHECK(Age<=60

6、),JobVARCHAR(9),SalNUMBER(7,2),DeptnoNUMBER(2),CONSTRAINTFK_DEPTNOFOREIGNKEY(Deptno)REFERENCESDEPT(Deptno));6.关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?  答:  对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。具体的处

7、理可以参见上面第5题或《概论》10.2中相应部分。  三、编程题已知学生选课数据库,学生:学号、姓名、性别、年龄、系名、年级;课程:课程号、课程名、学分;选修:学号、课程号、成绩。1.创建触发器T_1,功能是当向数据表学生添加记录时,显示学生的信息。createtriggerT_1on学生afterinsertasselect*from学生insertinto学生values('3001','李四','男','计本10')2.创建触发器T_2,功能是当向数据表班级添加、修改和删除记录时,显示学生的信息。createtrig

8、gerT_2on学生afterinsert,update,deleteasselect*from学生3.创建触发器T_3,功能是当修改班级班号,同步更新学生表student和courseteacher的班号。createtriggerT_3onclassforupdateasBEGINUPDATEstu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。