数据库系统与应用课后习题答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章完整性约束1.什么是数据库的完整性?答:完整性约束是加在数据库模式上的一个具体条件,它规定什么样的数据能够存储到数据库系统当中。若一个数据库实例满足所有的完整性约束,它就是一个符合逻辑的实例。DBMS确保完整性约束条件的定义及检查,以使只有符合逻辑的实例能够存储到数据库中。2.数据库的完整性约束条件可分为哪几类?答:按照完整性约束条件作用的对象,可以将其分为4类:类型约束、属性约束、关系变量约束、数据库约束。类型约束是完整性约束的最基础构成,定义属性列对应域的取值范围。属性约束主要规定属性的类型、取值范围、精度等约束条件。关系变量约束定义同一关系内不同元组之间、不同属性间的约束。数据库约束定义多个关系之间应满足的约束条件。3.DBMS的完整性控制机制应具有哪些功能?答:DBMS的完整性控制机制应包括:完整性约束的定义、完整性约束的检查和违约反应。4.RDBMS在实现参照完整性时需考虑哪些方面?答:RDBMS实现参照完整性时需要考虑:1)外码是否可以接受空值的问题;2)在被参照关系中删除元组时的问题;3)在参照关系中插入元组时的问题;4)修改关系中主码的问题。5.在关系系统中,当操作违反实体完整性、参照完整性和用户自定义的完整性约束条件时,一般是如何分别进行处理的?答:对违反实体完整性规则和用户定义的完整性规则的操作,一般是拒绝执行。对违反参照完整性的操作,有两种处理方式:1)拒绝执行;2)接受这个操作,同时执行一些附加的操作,以保证数据库的状态正确。6.设数据库中有三个关系:员工表EMP(E#,ENAME,AGE,SEX,ECITY),其属性分别表示员工编号、姓名、年龄、性别和所在城市;公司表COMP(C#,CNAME,CITY,MANAGER),其属性分别表示公司编号、公司名称、公司所在城市和管理者的员工编号;工作表WORKS(E#,C#,SALARY),其属性分别表示员工编号、公司编号和工资。用SQL语言创建上述三个表,要求在模式中完成以下完整性约束条件的定义,并为每一个约束命名:(1)定义每个模式的主码;(2)定义参照完整性;(3)定义员工年龄不得超过60岁;(4)定义员工性别只能在“男”、“女”中取值;(5)定义一个表级约束,保证每个管理者只能管理一家公司。(6)定义EMP上的一个表级约束,保证每个职工的薪水不少于1000元;(7)定义一个断言,保证那些薪水比所在公司的管理者还要高的员工信息是不存在的。答:createtableEMP(E#char(8)constraintemp-pkprimarykey,ENAMEchar(20)constraintemp-notnullnotnull,AGEintconstraintemp_checkagecheck(AGE60),SEXchar(2),ECITYchar(40)constraintemp_checksexCHECK(SEXIN('男','女')));CreatetableCOMP(C#char(5)constraintcomp-pkprimarykey,CNAMEchar(40)constraintcomp-pknotnull,CITYchar(40),MANAGERchar(8)constraintcomp-fkempreferencesEMP(E#),constraintcomp-checkmanagerCHECK(MANAGERnotin(SELECTMANAGERFROMCOMP));CreatetableWORKS(E#char(8)constraintworks-fkempreferencesEMP(E#),C#char(5)constraintworks-fkcompreferencesCOMP(C#),SALARYnumeric(10,2)works_checksararycheck(SALARY=1000),Constraintwork-pkPrimarykey(E#,C#));Createassertionsalarycheckcheck(Notexists(Select*fromworksxWhereSALARY=any(selectSALARYfromworksyWherex.C#=y.C#andy.E#=(SelectManagerfromcompWherex.C#=comp.C#)))

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功