2018年四川大学公共管理学院667信息管理基础之数据库系统概论考研强化五套模拟题
● 摘要
一、简答题
1. 试由Armostrong 公理系统推导出下面三条推理规则。
(1)合并规则:若(2)伪传递规则:由(3)分解规则:
又因
可得所以由传递律可得
可得
根据传递律得
根据传递律得
【答案】(1
)已知
由増广律知
(2)已知由増广律知又因(3)已知
由自反律知
又因
2. 设有如图1所示的3个关系S 、C 和SC ,将下列关系代数表达式用汉语表示出来,并求其结果。
图1
(1)(2)(3)
【答案】(1)检索籍贯为上海的学生的姓名、选修的课程号和成绩,其结果为图2中的(2)检索选修操作系统的学生姓名、课程号和成绩,其结果为图2中的(3)检索选修了全部课程的=学生姓名和年龄,其结果为图2中的
图2
3. 写出面向对象数据库产生的主要原因。
【答案】面向对象数据库产生的两个主要原因是:
(1)传统的数据模型和系统往往不能满足CAD/CAM、GIS 和多媒体数据库这些复杂数据库应用的要求。 例如,对象的结构更为复杂,事务持续时间更长,需要存储图像或大文本项数据类型。面向对象的方法为处理这些应用需求提供了很大的灵活性,使人们摆脱了传统DBS 对数据类型和查询语言的限制,能让设计者定义并应 用复杂对象的结构。
(2)人们在开发应用软件时,越来越多使用面向对象的程序设计语言。现在数据库已称为软
件系统的基本组成部分,但是如果用面向对象的语言开发软件,很难把传统数据库嵌入到这种面向对象的应用软件中。所以面 向对象数据库就应运而生,把数据库和面向对象语言开发的软件直接或无缝地集成在一起。
4. 什么是死锁?请给出预防死锁的若干方法。
【答案】(1)如果事务于是
等待
释放
上的锁。
而
这样就出现了在等待
①一次封锁法
要求每个事务必须一次将所用的所有数据全部加锁,否则就不能执行。 ②顺序封锁法
预先对数据对象规定一个封锁顺序,所有事务都按照这个顺序实行封锁。但是,预防死锁的策略不大适合数据库系统的特点。
5. 对于参照完整性规则,在SQL 语言中可以用哪几种方式实现?删除基本关系的元组时,依赖,依赖关系可以采取的做法有哪3种? 关系可以采 取的做法有哪3种?修改基本关系的主码值时
【答案】(1)参照完整性规则在SQL 中可以用外码子旬、检查子句、断言等方式实现。 (2)
删除基本关系元组时,SQL 规定,依赖关系可以采取下列3种做法之一:
①RESTRICT 方式:只有当依赖关系中没有一个外码值与要删除的基本关系中主码值相对应时,系统才能执 行删除操作,否则拒绝此删除操作。
②CASCADE 方式:将依赖关系中所有外码值与基本关系中要删除的主码值相对应的元组一起删除。
③SETNULL 方式:删除基本元组时,将依赖关系中所有与基本关系中被删主码值相对应的外码值置为空值。
(3)对于这3种方式,选择哪一种,要视应用环境的语义而定。修改基本关系的主码值时,依赖关系可以采取的做法与上述删除操作类似。
6. 试述层次模型的概念,举出三个层次模型的实例。
【答案】(1)层次模型满足如下条件:有且只有一个结点没有双亲结点,这个结点称为根结点;根以外的其他结点有且只有一个双亲结点。
(2)三个层次模型的实例:
①教员学生层次数据库模型如图1所示:
封锁了数据又申请封锁
封锁了数据因已封锁了
和
又请求封锁也只能等待
因
已封锁了释放上的锁。
又在等待的局面,两个事务永远不能结束,形成死锁。
(2)防止死锁发生其实是要破坏产生死锁的条件。预防死锁通常可以有两种方法: