欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    《数据库技术与应用》第5章 习题答案.docx

    • 资源ID:3180718       资源大小:40.53KB        全文页数:8页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《数据库技术与应用》第5章 习题答案.docx

    数据库技术与应用第5章 习题答案第5章数据库完整性与安全性 1. 什么是数据库的完整性?什么是数据库的安全性?两者之间有什么区别和联系? 解: 数据库的完整性是指数据库中数据的正确性、有效性和相容性,其目的是防止不符合语义、不正确的数据进入数据库,从而来保证数据库系统能够真实的反映客观现实世界。 数据库安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。 数据的完整性和安全性是两个不同的概念,但是有一定的联系: 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 2. 什么是数据库的完整性约束条件?完整性约束条件可以分为哪几类? 解: 完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。静态列级约束是对一个列的取值域的说明,包括以下几个方面:数据类型的约束,包括数据的类型、长度、单位、精度等;对数据格式的约束;对取值范围或取值集合的约束;对空值的约束;其他约束。静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有:实体完整性约束;参照完整性约束;函数依赖约束。动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:修改列定义时的约束;修改列值时的约束。动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。 3. 试述DBMS如何实现完整性控制。 解: 为了维护数据库的完整性,DBMS提供了以下三种机制: 完整性约束条件定义完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件。SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。这些完整性一般由SQL的DDL语义来实现。它们作为数据库模式的一部分存入数据字典中。 完整性检查方法检查数据是否满足已定义的完整性约束条件称为完整性检查。一般在INSERT、UPDATE、DELETE语句执行后开始检查,也可以在事务提交时检查。检查这些操作执行后数据库中的数据是否违背了完整性约束条件。 违约处理若发现用户操作违背了完整性约束条件,应采取一定的措施,如拒绝执行该操作,或级连执行其它操作,进行违约处理以保证数据的完整性。 4. 现有以下四个关系模式: 供应商,其中供应商编号为主码; 零件,其中零件编号为主码; 工程,其中工程编号为主码; 供应情况,其中供应商编号,零件编号,工程编号为主码 用SQL语句定义这四个关系模式,要求在模式中完成以下完整性约束条件的定义: 定义每个模式的主码; 定义参照完整性; 定义零件重量不得超过100千克。 解: CREATE SCHEMA Supplier_schema CREATE TABLE Supplier ( Sno CHAR(5) PRIMARY KEY, Sname CHAR(20) NOT NULL, Phone CHAR(13), Address CHAR(30) ); CREATE SCHEMA Part_schema CREATE TABLE Part ( Pno CHAR(7) PRIMARY KEY, Pname CHAR(20) NOT NULL, Color CHAR(10), Weight SMALLINT CHECK(Weight <=100) ); CREATE SCHEMA Project_schema CREATE TABLE Project ( Jno CHAR(7) PRIMARY KEY, Jname CHAR(20) NOT NULL, Jaddress CHAR(30) ); CREATE SHEMA SPJ_shema CREATE TABLE SPJ ( Sno CHAR(5), Pno CHAR(7), Jno CHAR(7), Quantity SMALLINT, PRIMARY KEY (Sno, Pno, Jno), FOREIGN KEY (Sno) REFERENCES Supplier(Sno), FOREIGN KEY (Pno) REFERENCES Part(Pno), FOREIGN KEY (Jno) REFERENCES Project(Jno) ); 5. 在关系数据库系统中,当操作违反实体完整性、参照完整性和用户自定义的完整性约束条件时,一般是如何分别进行处理的。 解: (1) 按实体完整性规则自动进行检查。包括: 检查主码值是否唯一,如果不唯一则拒绝插入或修改。 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。 (2) 按参照完整性检查,违约处理的策略如下: 拒绝执行。不允许该操作执行,该策略一般设置为默认策略。 在被参照关系中删除元组:仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同时,系统才执行删除操作,否则拒绝此操作。 级联操作。 当删除或修改被参照表的一个元组造成了与参照表的不一致,则删除或修改参照表中的所有造成不一致的元组。 级联操作必须在定义外码时给出显式定义。 设置为空值。当删除或修改被参照表的一个元组时造成了不一致,则将参照表中的所有造成不一致的元组的对应属性设置为空值。 置空值删除。删除被参照关系的元组,并将参照关系中相应元组的外码值置空值。 (3) 按用户自定义完整性检查,违约处理:当往表中插入元组或修改属性的值时,RDBMS就检查属性上的约束条件是否被满足,如果不满足则操作被拒绝执行。 6. 触发器的作用是什么?同一表上的多个触发器被激活时遵循的执行顺序是什么? 解: 触发器是用户定义在关系表上的一类由事件驱动的特殊过程,它不需要由用户调用执行,而是在用户对表中的数据进行UPDATE、INSERT或DELETE操作时自动触发执行。它可以实现数据库中相关表的级联修改,能实现比CHECK语句更为复杂的约束,能提供数据库修改前后数据变化的前后状态,能维护非规范化数据。 同一表上的多个触发器激活时遵循以下执行顺序 : 执行该表上的BERORE触发器; 激活触发器的SQL语句; 执行该表上的AFTER触发器。 此外,对于同一个表上的多个BEFORE(AFTER)触发器,遵循“谁先创建谁先执行”的原则,即按照触发器创建的时间先后顺序执行。有些RDBMS是按照触发器名称的字母排序顺序来执行触发器的。 7. 什么是“权限”?用户访问数据库有哪些权限?对数据模式进行修改有哪些权限? 解: 用户使用DB的方式称为权限。 用户访问数据库有四种权限:Read、Insert、Update和Delete。 用户对数据模式进行修改有四种权限:Index,Resource、Alteration和Drop。 8. 安全性措施中的强制存取控制是如何实现的? 解: 对每个数据对象赋予一定的密级,级别从高到低有:绝密级、机密级、秘密级、公用级,每个用户也具有相应的级别,称为许可证级别,密级和许可证级别都是有序的,如绝密>机密>秘密>公用,采用规则是:一是用户只能查看比它级别低或是同级的数据,二是用户只能修改和它同级的数据。 9. SQL提供了哪些数据控制语句?举例说明。 解: 数据控制语言是用来设置或者更改数据库用户或角色权限的语句。SQL中,这些语句包括GRANT、REVOKE等语句。GRANT语句向用户授予权限,REVOKE语句收回授予的权限。 例如:描述把查询Course表的权限授予所有用户的控制语句为 GRANT SELECT ON Course TO PUBLIC; 描述收回用户U3修改学生学号的查询权限的控制语句为: REVOKE UPDATE(Sno) ON TABLE Student FROM U3; 10. 使用角色有什么好处?涉及角色的SQL语句有哪些? 解: 使用角色的好处:数据库角色是指被命名的一组与数据库操作相关的权限。角色是权限的集合,可以为一组具有相同权限的用户创建一个角色,角色简化了授权操作。使用角色进行授权必须先创建角色,将数据库对象上的存取权限授予角色,才能将角色授予用户,使得用户拥有角色所具有的所有存取权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。 涉及角色的SQL语句有:角色的创建 CREATE ROLE <角色名> 给角色授权 GRANT<权限>,<权限> ON <对象类型>对象名 TO <角色>,<角色> 将一个角色授予其它的角色或用户 GRANT <角色1>,<角色2> TO <角色3>,<用户1> WITH ADMIN OPTION 角色权限的收回 REVOKE<权限>,<权限> ON<对象类型><对象名> FROM <角色>,<角色> 11. 现有以下两个关系模式: 雇员 部门 使用SQL提供的功能完成如下操作: 允许WangHong对两个关系进行任何操作,并可以将他的权限转授他人。 允许所有用户查询部门关系。 允许所有用户查询雇员关系中除员工号、年龄和工资之外的所有属性。 允许LiLan对雇员关系中的工资属性进行修改。 定义一个角色Manager,可以对部门关系进行任何操作,对雇员关系除了不能修改工资外,可以进行任何操作。 SongHua是秘书,拥有角色Manager的权限。 收回的授权。 不允许角色Manager修改雇员的职务属性值。 解: 允许WangHong对两个关系进行任何操作,并可以将他的权限转授他人: GRANT ALL PRIVILEGES ON TABLE雇员, 部门 TO WangHong; WITH GRANT OPTION; 允许所有用户查询部门关系: GRANT SELECT ON TABLE部门 TO PUBLIC; 允许所有用户查询雇员关系中除员工号、年龄和工资之外的所有属性: GRANT SELECT(姓名,部门号,职务) ON TABLE雇员 TO PUBLIC; 允许LiLan对雇员关系中的工资属性进行修改: GRANT UPDATE(工资) ON TABLE部门 TO LiLan; 定义一个角色Manager,可以对部门关系进行任何操作,对雇员关系除了不能修改工资外,可以进行任何操作: CREATE ROLE Manager; GRANT ALL PRIVILEGES ON TABLE雇员,部门 TO WangHong; REVOKE UPDATE(工资) ON TABLE部门FROM Manager; SongHua是秘书,拥有角色Manager的权限: GRANTManager TO SongHua; 收回的授权。 REVOKE ALL PRIVILEGES ON TABLE雇员, 部门 FROMWangHong; REVOKE SELECT ON TABLE部门 FROM PUBLIC; REVOKE SELECT(姓名,部门号,职务) ON TABLE雇员 FROM PUBLIC; REVOKE UPDATE(工资) ON TABLE部门 FROMLiLan; 不允许角色Manager修改雇员的职务属性值: REVOKE UPDATE(职务) ON TABLE雇员FROM Manager;

    注意事项

    本文(《数据库技术与应用》第5章 习题答案.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开