当前位置:文档之家› (完整版)陕西师范大学2007—2008学年第二学期期末考试数据库原理

(完整版)陕西师范大学2007—2008学年第二学期期末考试数据库原理

第 1 页 ( 共 7 页 )陕西师范大学2007—2008学年第二学期期末考试 计算机科学学院2005级计算机科学与技术专业数据库原理(1)一、单项选择题(将一个正确的答案代码填入括号中,每小题1分,共15分)(1)数据库(DB ),数据库系统(DBS )和数据库管理系统(DBMS )之间的关系是( A )。

A 、DBS 包括DB 和DBMS B 、DBMS 包括DB 和DBSC 、DB 包括DBS 和DBMSD 、DBS 就是DB ,也就是DBMS (2)数据库系统的数据独立性体现在( B )。

A 、不会因为数据的变化而影响到应用程序B 、不会因为数据存储结构与数据逻辑结构的变化而影响应用程序C 、不会因为存储策略的变化而影响存储结构D 、不会因为某些存储结构的变化而影响其他的存储结构 (3)下面的选项不是关系数据库基本特征的是( A )。

A 、不同的列应有不同的数据类型B 、不同的列应有不同的列名C 、与行的次序无关D 、与列的次序无关(4)现有如下关系:患者(患者编号,患者姓名,性别,出生日期,所在单位),医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果),其中,医疗 关系中的外码是( A )。

A 、患者编号B 、患者姓名C 、患者编号和患者姓名D 、医生编号和患者编号 (5)五种基本关系代数运算是( D )。

A 、并、交、差、笛卡尔积、除B 、并、交、选择、投影、连接C 、并、差、笛卡尔积、选择、连接D 、并、差、笛卡尔积、选择、投影 (6)SQL 语言是( B )的语言,容易学习 。

A 、过程化 B 、非过程化 C 、格式化 D 、导航式 (7)在SQL 语言中,删除一个视图的命令是( B )。

A 、DELETEB 、DROPC 、CLEARD 、REMOVE(8)若要在基本表S中增加一列CN(课程名),可用( C )。

A、ADD TABLE S CN CHAR(8)B、ADD TABLE S ALTER CN CHAR(8)C、ALTER TABLE S ADD CN CHAR(8)D、ALTER TABLE S ALTER CN CHAR(8)(9)支持关系数据结构、选择、投影和(自然)连接运算,且对这些运算不必要求定义任何物理存取路径的关系系统称为( B )。

A、表式系统B、最小关系系统C、关系完备的系统D、全关系系统(10)如果关系模式R中的属性全是主属性,则R一定属于( C )。

A、1NFB、2NFC、3NFD、BCNF(11)数据库设计可划分为六个阶段,每个阶段都有自己的设计内容,“为哪些关系,在哪些属性上建什么样的索引”这一设计内容应该属于( C )设计阶段。

A、概念设计B、逻辑设计C、物理设计D、全局设计(12)在关系数据库设计中,对关系进行规范化处理,使关系达到一定的范式,例如达到3NF,这是( D )阶段的任务。

A、需求分析阶段B、概念设计阶段C、物理设计阶段D、逻辑设计阶段(13)事务的持续性是指( B )。

A、事务中包括的所有操作要么都做,要么都不做B、事务一旦提交,对数据库的改变是永久的C、一个事务内部的操作对并发的其他事务是隔离的D、事务必须使数据库从一个一致性状态变到另一个一致性状态(14)DBMS普遍采用( C )方法来保证调度的正确性。

A、索引B、授权C、封锁D、日志(15)在数据库的安全性控制中,授权的数据对象的( A ),授权子系统就越灵活。

A、范围越小B、约束越细致C、范围越大D、约束范围大二、填空题(在横线上填写正确的答案,每空1分,共10分)(16)数据模型是由数据结构、数据操作、和完整性约束三部分组成的。

第2页( 共7 页)第 3 页 ( 共 7 页 )(17)在设计分E-R 的设计人员设计的,所以各个分E-R 主要有 属性冲突 、 命名冲突 和 结构冲突 三类。

(18)数据库系统在运行过程中,可能会发生故障。

故障主要有 事务故障、系统故障、介质故障、计算机病毒。

三、判断题(小题5分,共10分)(19答:行化的。

(20)在关系模式R (A ,B ,C ,D (B ,C )→A},则关系模式R 属于3NF ,但不是BCNF 。

答:错误。

关系模式R 的候选码是A 和(B ,C ),函数依赖满足BCNF 因此是BCNF 。

四、简答题(每小题5分,共15分)(21)数据字典的内容和作用是什么?答:数据字典是系统中各类数据描述的集合。

项是数据的最小组成单位,若干个数据项可以组成一个数据结构。

字典通过对数据项和数据结构的定义来描述数据流、容。

数据字典的作用:数据字典是关于数据库中数据的描述,析阶段建立,是下一步进行概念设计的基础,断修改、充实、完善。

第 4 页 ( 共 7 页 )(22)什么是数据库管理系统?数据库管理系统有哪些功能?答:数据库管理系统(DBMS )是位于操作系统与用户之间的一个数据管理软件,主要功能:(1)数据定义功能,DBMS 提供数据描述语言(DDL ),用户可通过它来定义数据;(2)数据操纵功能,DBMS 还提供数据操纵语言(DML ),实现对数据库的基本操作:查询、插入、删除和修改;(3)数据库的运行管理 这是DBMS 运行时的核心部分,它包括开发控制,安全性检查,完整性约束条件的检查和执行,数据库的内容维护等;(4)数据库的建立和维护功能 它包括数据库初始数据的输入及转换,数据库的转储与恢复,数据库的重组功能和性能的监视与分析功能等。

(23)请解释三个级别的封锁协议以及它们之间的区别。

答:一级封锁协议是:事务T 在修改数据R 之前必须先对其加X 锁,直到事务结束才释放。

事务结束包括正常结束(COMMIT )和非正常结束(ROLLBACK )。

一级封锁协议可防止丢失修改,并保证事务T 是可恢复的。

二级封锁协议是:一级封锁协议加上事务T 在读取数据R 之前必须先对其加S 锁,读完后即可释放S 锁。

二级封锁协议除防止了丢失修改,还可进一步防止读“脏”数据。

三级封锁协议是:一级封锁协议加上事务T 在读取数据R 之前必须先对其加S 锁,直到事务结束才释放。

三级封锁协议除防止了丢失修改和不读‘脏’数据外,还进一步防止了不可重复读。

五、综合题(第24小题20分,第25小题10分,第26小题20分,共50分)(24)建立一个关于科室、病房、医生、病人等信息的关系数据库。

(a )科室:科室名,科地址,科电话; (b )病房:病房号,床位号,所属科室名;(c )医生:姓名,职称,所属科室名,年龄,工作证号 (d )病人:病历号,姓名,性别,诊断,主管医生,病房号(e )有关语义如下:一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。

完成如下设计:(i)设计该关系数据库的E-R图(实体名和属性名的命名根据题中给出的中文名称来定);(ii)将该E-R图转换为关系模型结构,指出转换结果中每个关系模式的候选码。

答:(i)(ii)对应的关系模型结构如下:科室(科室名,科地址,科电话)病房(病房号,床位号,科室名)医生(工作证号,姓名,职称,科室名,年龄)病人(病历号,姓名,性别,诊治,主管医生,病房号)每个关系模式的候选码如下:科室的候选码是科名;病房的候选码是科室名十病房号;医生的候选码是工作证号;病人的候选码是病历号。

(25)对学生-课程数据库查询“信息系”学生选修的课程名称:SELECT Cname FROM STUDENT, SC, CourseWHERE Student.Sdept='IS' AND Student.Sno=SC.SnoAND o=o;试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语第5页( 共7 页)第 6 页 ( 共 7 页 )法树进行优化处理,画出优化后的标准语法树。

(26)设有如下表所示的三个关系S 、C 和SC 。

S (S#,SNAME ,SEX 字段为字符型,AGE 字段为整型)C (C#,CNAME ,TEACHER 字段均为字符型)SC (S#,C#字段为字符型,GRADE 字段为整型)用SQL 语句实现如下要求:(i )建立SC 表并设置主码和参照完整性规则(假设S 表和C 表已创建)。

(ii )将“李强”同学所有所学课程的成绩(GRADE )加3分。

(iii )查询选修全部课程的学生姓名(SNAME )。

(iv )查询至少选修两门课程的学生学号(S #)。

(25)答:第 7 页 ( 共 7 页 )订 线学号: 考生类别: 考试日期:订 线订 线订 线(26)答:(i) create table SC (S# char(1),C# char(2), GRADE tinyint,constraint pk_sc primary key(S#, C#),constraint fk_s foreign key(S#) references S(S#),constraint fk_c foreign key(C#) references C(C#))(ii) update sc set grade = grade + 3 where s# =(select s# from s where sname='李强')(iii) select sname from s where not exists(select * from c where not exists(select * from sc where s.s#=sc.s# andc.c#=sc.c#))(iv) select s# from sc group by s# having count(*)>=2。

相关主题