试卷答案第页共4页12011─2012学年第一学期《数据库原理及应用》参考答案及评分标准专业:计科辅年级:大四考试方式:闭卷学分:4学分考试时间:120分钟一、填空题(每空1分,共10分)1.数据库系统的核心是_数据库管理系统____。2.数据独立性分为__逻辑独立性____和____物理独立性___。3.若关系A有m个属性,关系B有n个属性,则A×B有__m+n___个属性。。4.关系模型的基本数据结构是__关系____。5.SQLServer2005中,一个简单的数据库可以只有一个__数据___文件和一个日志文件。6.关系中属性的取值范围称为属性的___域________。7.在T-SQL中,查询表中数据时,可用__DISTINCT___关键字滤掉重复行。8.调用标量函数时必须提供至少由两部分组成的名称,即__所有者_.函数名。9.在索引命令中使用关键字CLUSTERED表示将建立的是__聚集__索引。二、选择题(每小题1分,共20分)三.名词解释(每小题3分,共15分)1、数据库:就是存放数据的仓库,是将数据按照一定的数据模型组织、描述和存储,能够自动进行查询和修改的数据集合。2、实体:客观存在并可以相互区别的事务叫实体。3、视图:视图(View)是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,视图是从一个或几个表导出来的表,不是真实存在的基本表而是一张虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。4、事务:事务由一系列的数据操作组成,是数据库应用程序的基本逻辑单元,用来保证数据的一致性。5、触发器:触发器也是一种存储过程,它是一种在基本表被修改时自动执行的内嵌过程,主要通过事件进行触发而被执行。12345678910AACABBBDBB11121314151617181920ADCDADBABA试卷答案第页共4页2四、简答题(每小题5分,酌情给分,共25分)1、简述数据库技术的发展阶段?答:数据库技术的发展分三个阶段:1.人工管理阶段20世纪50年代中期以前,计算机主要用于科学计算。从硬件上看,外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备;从软件上看没有操作系统,没有管理数据的软件,数据处理的方式是批处理。这个时期数据管理的特点是:数据由计算或处理它的程序自行携带,数据和应用程序一一对应,应用程序依赖于数据的物理组织,因此数据的独立性差,数据不能被长期保存,数据的冗余度大等给数据的维护带来许多问题。2.文件系统阶段在此阶段,数据以文件的形式进行组织,并能长期保留在外存储器上,用户能对数据文件进行查询、修改、插入和删除等操作。程序与数据有了一定的独立性,程序和数据分开存储,然而依旧存在数据的冗余度大及数据的不一致性等缺点。3.数据库系统阶段20世纪60年代后期以来,计算机应用越来越广泛,数据量急剧增加,而且数据的共享要求越来越高。计算机的硬件和软件都有了进一步的发展,硬件方面,有了大容量的磁盘;软件方面,传统的文件系统已经不能满足人们的需求,能够统一管理和共享数据的数据库管理系统(DBMS)应运而生。所以,此阶段将数据集中存储在一台计算机上(数据库中),进行统一组织和管理。2、简述数据库的三级模式结构及两级映像功能。答:为了保障数据与程序之间的独立性,使用户能以简单的逻辑结构操作数据而无需考虑数据的物理结构,简化了应用程序的编制和程序员的负担,增强系统的可靠性。通常DBMS将数据库的体系结构分为三级模式:外模式、模式和内模式。模式也称概念模式或逻辑模式,是对数据库中全部数据的逻辑结构和特征的描述,是所有用户的公共数据视图。外模式也称子模式或用户模式,它是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。内模式也称存储模式或物理模式,是对数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,一个数据库只有一个内模式。三级模式结构之间差别往往很大,为了实现这3个抽象级别的联系和转换,DBMS在三级模式结构之间提供了两级映像:外模式/模式映像,模式/内模式映像。3、简述SQLServer的安全性机制。答:SQLServer2005的安全性管理机制可分为三个等级:操作系统级、SQLServer级和数据库级。在用户使用客户计算机通过网络实现SQLServer服务器的访问时,用户首先要获得计算机操作系统的使用权。SQLServer的服务器级安全性建立在控制服务器登录账号和口令的基础上。SQLServer采用了标准SQLServer登录和集成WindowsNT登录两种方式。在用户试卷答案第页共4页3通过SQLServer服务器的安全性检验以后,将直接面对不同的数据库入口这是用户将接受的第三次安全性检验4、简述存储过程的优点。答:存储过程最主要的特色是当写完一个存储过程后即被翻译成可执行码存储在系统表内,当作是数据库的对象之一,一般用户只要执行存储过程,并且提供存储过程所需的参数就可以得到所要的结果而不必再去编辑T-SQL命令。5、简述死锁及其解决办法。答:在事务和锁的使用过程中,死锁是一个不可避免的现象。在数据库系统中,死锁是指多个用户分别锁定了一个资源,并又试图请求锁定对方已经锁定的资源,这就产生了一个锁定请求环,导致多个用户都处于等待对方释放所锁定资源的状态。在数据库中解决死锁常用的方法有:(1)要求每个事务一次就将要使用的数据全部加锁,否则就不能继续执行。预先规定一个顺序,所有事务都按这个顺序实行加锁,这样就不会发生死锁。(2)允许死锁发生,系统来用某些方式诊断当前系统中是否有死锁发生。当搜索检测到发生死锁时,系统回滚该事务。这样,其他事务就有可能继续运行了。五、综合题(第一题12分,第二题18分,共30分)1、设计一个图书管数据库,此数据库中对每个借阅者保存读者记录,包括:读者号、姓名、性别、年龄、单位。对每本书存有:书号、书名、作者、出版社。对每本被借出的书存有读者号、借出日期和应还日期。要求:给出E-R图,再将其转换为关系模型并给出各关系的主关键字。(12分)答:E-R图(6分)关系模型及主关键字6分关系模型:读者(读者号,姓名,性别,年龄,单位)图书(书号,书名,作者,出版社)借阅(书号,读者号,借出日期,应还日期)阅卷人得分NM读者图书借阅书名作者出版社读者号姓名单位借出日期书号应还日期性别年龄试卷答案第页共4页42.设有一个学生-课程数据库,包括学生关系Student、课程关系Course、选修关系SC,如下图所示:(每题2分)根据以上所定义的三张基表写出相应的SQL语句:(1)统计有学生选修的课程门数。答:SELECTCOUNT(DISTINCT课程号)FROMSC(2)查询每个学生的姓名及其选修课程的课程名。答:SELECT姓名,课程名FROMStudent,Course,ScWhereStudent.学号=SC.学号ANDCourse.课程号=SC.课程号.(3)求选修2号课程的学生的平均年龄。答:SELECTAVG(年龄)FROMStudent,SCWHEREStudent.学生号=SC.学生号and课程号=’C004’(4)求学分为3的每门课程的学生平均成绩。答:SELECTCourse.课程号,AVG(成绩)FROMCourse,SCWHERECourse.课程号=SC.课程号and学分=3GROUPBYCourse.课程号(5)查询年龄在20以下的学生的姓名、系别、年龄。答:SELECT姓名、系别、年龄FROMStudentWHERE年龄课20(6)统计每门课程的学生选修人数,超过3人的课程才统计。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。答:SELECT课程号,COUNT(*)FROM选课GROUPBY课程号HAVINGCOUNT(*)3ORDERBYCOUNT(*)DESC,课程号(7)检索姓名以王打头的所有学生的姓名和年龄。答:SELECT姓名,年龄FROMStudentWHERE姓名LIKE'王%'(8)创建一个视图,包括每个系的学生所选的每门课程的平均成绩,而且只选取平均成绩为80分以上的。答:Createviewview1asselect所在系,课程号,avg(成绩)as平均成绩fromstudent,course,scwhereStudent.学号=SC.学号groupby所在系,课程号having(avg(成绩)=80)(9)把查询学生表的权限授予用户U1答:GRANTSELECTON学生TOU1.