1、(完整word版)数据库原理及应用复习资料及答案数据库原理及应用期末考试注意事项(2014秋)一、 题型说明期末考试包括五种题型,具体分布情况如下:1. 单项选择题:10题,共计20分2. 填空题:10题,共计15分3. 根据已知场景写出SQL语句或关系代数表达式:7题,共计35分注:有2道小题机电与软工专业有所区别。4. 设计题:1题,共计10分5. 问答题:4题,共计20分注:有1道小题机电与软工专业有所区别。机电专业的4个小题均为叙述性问答题;软工专业的3个小题中,有3题为叙述性问答题,1题为规范化理论部分应用题。二、 答题注意事项1. 机电与软工专业使用同一套考卷。要求不同的题目均已在
2、卷面上明确指出,答题时请看清楚要求。2. 本学期采用答题纸方式,单选题需用铅笔涂黑,主观题部分需按要求写在答题纸上。复习题一、单项选择题1. (A)是对数据库中全部数据的逻辑结构和特征的描述。A.模式 B.外模式 C.内模式 D.视图2. (B)是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述A.模式 B.外模式 C.内模式 D.概念模式3. 数据库中的记录是按照B+树存储还是按hash方法存储,这一特征在数据库的(C)中定义。A.模式 B.外模式 C.内模式 D.子模式4. 在SELECT语句中,(A)关键字可以消除重复值A. DISTINCTB. UNIQUEC. *D. AL
3、L5. 概念模型的表示方法有很多种,其中最著名的是(B)。A.关系模型 B. E-R模型 C.层次模型 D.网状模型6. 数据库的概念模型(D)A. 独立于计算机硬件,依赖于 DBMSB. 依赖于计算机硬件,独立于 DBMSC. 依赖于计算机硬件和 DBMSD. 独立于计算机硬件和 DBMS7. 若关系R和S的属性个数分别为m和n,则RS的属性个数为(C)。A.m B.n C.m+n D. mn8. 若关系R和S的元组个数分别为m和n,则RS的元组个数为(B)。A.m+n B.小于或等于m+n C.大于m D.大于n9. 已知关系R1和R2进行关系运算后得到S,则S是(B)A. 一行记录B.
4、一个关系C. 一个确定值D. 一个数组10. 若关系R和S的元组个数分别为m和n,则R-S的元组个数是(D)。A. m-n B.小于m C.小于n D.小于等于m11. 设关系R,S,W各有10个元组,则这三个关系的笛卡尔积的元组个数为(D)A. 10 B. 30 C. 100 D.100012. 在信息系统的设计中,普遍采用的是基于(B)的系统设计方法。A. BCNF B.3NF C.2NF D.4NF13. 在数据库中空值表示(C)。A.0 B.默认值 C.不确定 D.空格14. SQL中,下列涉及空值的操作,不正确的是(A)。A. AGE=NULLB. AGE IS NOT NULLC.
5、 AGE IS NULLD. NOT(AGE IS NULL)15. 在 SQL 语句中,与 X BETWEEN 20 AND 30 等价的表达式是(D)A. X=20 AND X20 AND X20 AND X=20 AND XY和X-Z,则R的候选键是(A)。A. X B. Y C. Z D.XY31. 事务必须满足的四个原则是(A),一致性,隔离性,持久性。A. 原子性 B. 完整性 C. 安全性 D.正确性32. 事务并发执行时,每个事务不必关心其他事务,如同在单用户环境下执行一样,这个性质称为事务的(D)A. 持久性B. 一致性C. 独立性D. 隔离性33. 下面哪种情况下适合建立索
6、引(C)。A. 经常进行插入操作的表 B. 行数较小的表C. 更新少而数据量大的表 D. 表中存在大量重复值的列34. 关于存储过程与触发器,下列说法正确的是(B)。A. 存储过程是存储在客户端的SQL程序 B. 触发器是一种存储过程C. 触发器可通过其名字被用户直接调用 D .存储过程是一种触发器35. 当SELECT语句返回的结果是一个集合时,可以借助(B)对其中的单行记录进行处理。 A. 锁 B. 游标 C.索引 D .存储过程36. 用户使用SQL Server时,通常需要依次经过(A)两个安全性阶段。A. 身份验证、权限验证 B. 权限验证、身份验证 C. 登录验证、操作验证 D .
7、操作验证、登录验证37. 下列关系代数操作中最费时的是(B)。A.投影 B.笛卡尔积 C.选择 D.交38. 下列关系代数操作中最费时的是(B)。 A.投影 B.连接 C.选择 D.并39. 关系数据库中由数据冗余导致的异常不包括(D)。A.插入异常 B.删除异常 C.修改异常 D.查询异常40. 在函数依赖范畴内,(C)是关系模式能够达到的最高规范化程度。A.3NF B.4NF C.BCNF D.5NF41. 一个事务中所有对DB的操作是一个不可分割的整体,这个性质称为(D)。A.完整性 B.一致性 C.隔离性 D.原子性42. 关于主键约束,下列说法正确的是(A)。A.主键值不为空,也不允
8、许出现重复 B.主键值不为空,但允许出现重复 C.主键值允许空,但不允许出现重复 D.主键值允许空,也允许出现重复43. 关于参照完整性,下列说法中错误的是(A)。A.外键属性取值不能为空 B.关系中不允许引用不存在的实体C.可以通过定义外键实现 D.外键属性取值允许为空44. 在SELECT语句中,能够实现对查询结果排序的操作是(B)A. COUNTB. ORDER BY C. GROUP BY D. INDEX45. 下列说法中错误的是(C)A. 模式分解是关系规范化的基本方法B. 实际应用中,数据库设计一般应达到3NFC. 若一个关系模式符合2NF,则它必然也符合3NFD. 实际应用中常
9、常为了提高查询效率而允许数据库中存在一定的数据冗余二、填空题1. 在数据库的三级模式结构中,视图属于 外模式 范畴。2. 在数据库的三级模式结构中,索引属于 内模式 范畴。3. 在数据库的三级模式结构中,基本表属于 模式 范畴。4. 在关系数据库中,建立数据库表时,将年龄字段值限制在1240岁之间的这种约束属于数据库完整性规则中的 用户定义的完整性(或域完整性)。5. 实体完整性的含义是关系中元组在主键属性上 不为空 。6. 实体完整性的含义是关系中元组在 主键 属性上不允许为空。7. SQL查询语句中,SELECT子句对应于关系代数中的 投影 操作。8. SQL查询语句中,WHERE子句对应
10、于关系代数中的 选择 操作。9. 关系代数中的 选择 操作是对一个关系进行水平分割。10. 关系代数中的 投影 操作是对一个关系进行垂直分割。11. 设关系R、S和W的元组个数分别为3、5和6,则这三个关系的笛卡尔积的元组个数为 90 。12. 设关系R、S和W的属性个数分别为2、3和4,则这三个关系的笛卡尔积的属性个数为 9 13. 删除数据库中已经存在的表X,应采用的SQL语句是 drop table X 。14. 删除数据库中定义的视图Y,可以采用的SQL语句是 drop view Y 。15. 删除数据库Z,可以采用的SQL语句是 drop database Z 。16. 已知关系模式
11、R(ABC),若A-C,则AB-C是 部分 函数依赖。17. 已知关系模式R(A,B,C,D,E)及其上的函数依赖集合F=A-B,B-C,则A-C为 传递 函数依赖。18. 已知关系模式R(A,B,C,D),且R上存在函数依赖A-B和B-C,则R上的传递函数依赖是 A-C 。19. SQL Server提供了两种确认用户的验证模式,包括Windows验证和 混合验证 。20. SQL Server提供了两种确认用户的验证模式,包括 Windows验证 和混合验证。21. 游标 提供了一种从包括多条数据记录的SELECT返回结果集中每次提取一条记录的机制。22. 在数据库设计的需求分析阶段, 数
12、据字典 是数据库系统中各类数据详细描述的集合,提供了对各类数据描述的集中管理。23. 将ER图转换为关系模型的过程,属于数据库设计的 逻辑设计 阶段。24. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是 需求分析 。25. nchar(10)用于存放固定长度的10个 Unicode 字符数据。26. char与varchar的区别在于, varchar 按可变长存储字符数据。27. char与nchar的区别在于, nchar 用于存放Unicode字符数据。28. 数据库完整性约束包括 实体完整性 、参照完整性和用户定义的完整性。29. 数据库完整性约束包括实体完整性、
13、 参照完整性 和用户定义的完整性。30. 触发器 是一种特殊的存储过程,当有操作影响到它保护的数据时,就会自动执行。31. 事务处理必须满足的四个原则是: 原子性 、一致性、隔离性和持久性。32. 当多个事务同时读取或修改相同的数据库资源时, 锁 是进行并发控制的主要方法。33. 事务日志 记录了用户对数据库的各种操作。34. E-R模型中的E表示 实体 ,R表示联系。35. E-R模型中的E表示实体,R表示 联系 。三、根据已知场景按要求写出SQL语句或关系代数表达式注:(1)多表做连接查询时可以有多种解题方法,下述答案仅提供了在where子句中书写连接条件的解法;学生也可根据个人习惯采用i
14、nner join或是嵌套查询方式(2)考核内容除查询外,包括存储过程与视图的创建,需掌握相关创建语句的书写规范1. 已知网上图书销售系统数据库中包括三张表:l 客户信息表customer(cid,cname,email,tel,address),存放客户账号、姓名、电子邮箱、电话以及地址; (所有字段均为字符型)l 图书信息表book(bid,bname,author,press,price,ISBN),存放图书编号、书名、作者、出版社、价格和ISBN号; (价格字段为整型,其他字段均为字符型)l 图书购买记录表cb(cid,bid,shoppingdate,quantity),存放客户账号
15、、图书编号、购买日期、数量。 (购买日期为日期型,数量为整型,其他字段均为字符型)(1) 利用SQL查询价格在50元到100元(含50、100元)之间的图书信息; select *from bookwhere price between 50 and 100(2) 利用SQL查询购买了编号为“b001”的图书的客户的账号和购买日期,按购买日期由先到后排序select cid, shoppingdatefrom cbwhere bid=b001order by shoppingdate(3) 利用SQL查询所有姓名中含有“华”字的客户的姓名、电话和地址select cname, tel, add
16、ressfrom customerwhere cname like %华%(4) 利用SQL查询“高等教育出版社”出版的图书的平均价格select avg(price)from bookwhere press=高等教育出版社(5) 创建一个用于查询各出版社出版的图书的数量的视图(视图名称自行定义)create view myviewasselect press, count(*)from bookgroup by press(6) 利用SQL查询账号为“c001”的客户购买的所有图书的书名和购买日期select bname, shoppingdatefrom book, cbwhere boo
17、k.bid=cb.bid and cid=c001(7) 利用SQL查询一次购买了超过50本数据库应用技术图书的客户的姓名select cnamefrom customer, book, cbwhere customer.cid=cb.cid and book.bid=cb.bid and bname=数据库应用技术 and quantity50(8) 利用SQL查询所有购买了图书软件工程的客户的姓名select cnamefrom customer, book, cbwhere customer.cid=cb.cid and book.bid=cb.bid and bname=软件工程2.
18、已知图书管理数据库中包括三张表:l 学生信息表student(sid,sname,age,sex,major),存储学生的学号、姓名、年龄、性别以及专业名称;(年龄字段为整型,其余字段均为字符型)l 图书信息表book(bid,bname,author,press,price,ISBN),存储图书的编号、书名、作者、出版社、价格和ISBN号;(价格字段为整型,其余字段均为字符型)l 图书借阅记录表sb(sid,bid,borrowdate),存储学号、图书编号、借阅日期;(借阅日期字段为日期型,其余字段均为字符型)(1) 利用SQL查询年龄在20到25岁之间的学生信息 select * fro
19、m student where age between 20 and 25(2)利用SQL查询“清华大学出版社”出版的书籍的图书编号,图书名和价格,按价格由低到高排序 select bid,bname,price from book where press=清华大学出版社 order by price ( 此句也可写为 order by price asc )(3)利用SQL查询所有姓李的学生的姓名、年龄、性别和专业 select sname,age,sex,major from student where sname like 李%(4)利用SQL查询“软件工程”专业学生的平均年龄 sele
20、ct avg(age) from student where major=软件工程(5)利用SQL查询各专业的学生人数 select major,count(sid) from student group by major(6)利用SQL查询所有借阅了图书数据库技术基础的学生的学号 select sid from book,sb where book.bid=sb.bid and bname=数据库技术基础(7)利用SQL查询学号为“s010”的学生借阅的所有图书的书名和借阅日期 select bname,borrowdate from book,sb where book.bid=sb.bi
21、d and sid=s010 (8)利用SQL查询王伟同学借阅的所有图书的书名和借阅日期 select bname,borrowdate from student,book,sb where student.sid=sb.sid and book.bid=sb.bid and sname=王伟 (9)创建存储过程xproc,查询女学生借阅的图书书名 create procedure xproc asselect bname from student,book,sb where student.sid=sb.sid and book.bid=sb.bid and sex=女 3. 已知教学管理数
22、据库中包括三张表:l 教师信息表teacher(tid,tname,age,sex,title),存储教师的工号、姓名、年龄、性别以及职称信息; (年龄字段为整型、其余均为字符型)l 课程信息表course(cid,cname),存储课程的课程号和课程名称;(字段均为字符型)l 授课信息表tc(tid,cid),存储教师工号、课程号 (字段均为字符型)(1)利用SQL查询年龄在25到35岁之间的教师信息 select * from teacher where age between 25 and 35(2)利用SQL查询男教师的姓名和年龄,按年龄由高到低排序 select tname,age
23、from teacher where sex=男 order by age desc(3)创建一个男教师视图,包括所有男教师的工号、姓名、年龄、职称(视图名称自定义) create view myview as select tid, tname, age, title from teacher where sex=男(4) 利用SQL查询所有姓张的教师的姓名、年龄和性别 select tname,age,sex from teacher where tname like 张%(5)利用SQL查询专业技术职称为“副教授”的教师的最小年龄 select min(age) from teacher
24、 where title=副教授(6)利用SQL查询各个专业技术职称的教师人数 select title,count(tid) from teacher group by title(7)利用SQL查询讲授“数据库”课程的教师的工号 select tid from course,tc where course.cid=tc.cid and cname=数据库(8)利用SQL查询姓李的教师的授课信息,包括工号,姓名,课程号及课程名 select teacher.tid, tname, course.cid, cname from course,tc, teacher where course.c
25、id=tc.cid and tc.tid=teacher.tid and tname like 李% (9)利用SQL查询教师张华讲授的所有课程的课程名 select cname from teacher,course,tc where teacher.tid=tc.tid and course.cid=tc.cid and tname=张华 (10)利用SQL查询由男教师讲授的课程的名称 select cname from teacher,course,tc where teacher.tid=tc.tid and course.cid=tc.cid and sex=男(9) 查询讲授“数据
26、库原理”课程的教师的姓名与职称select tname, titlefrom teacher, course, tcwhere teacher.tid=tc.tid and course.cid=tc.cid and cname=数据库原理 四、设计题1. 某商业集团的销售管理系统数据库中有如下信息:l 商店:商店编号,商店名,地址l 商品:商品编号,商品名,规格,单价l 职工:工号,姓名,性别,业绩其中约定:一个商店可销售多种商品,一种商品可在多个商店销售,每个商店对所销售的每一种商品按月进行销量统计;一个商店有多名职工,一个职工仅在一个商店任职,商店聘用职工有月薪。根据以上情况,完成下述设
27、计:(1) 设计系统的E-R图(2) 将E-R图转换为关系模式,并指定其中的主键和外键答案: 2. 一个图书馆管理系统中有如下信息:l 图书:书号,书名,数量,位置l 借书人:借书证号,姓名,单位l 出版社:出版社名,地址,电话,Email其中约定:任何人都可以借多种书,任何一种书可以被多个人借,借书和还书时要登记借阅时间;一个出版社可以出版多种书籍,同一本书仅由一个出版社出版,出版社名具有唯一性。根据以上情况,完成下述设计:(1)设计系统的E-R图(2)将E-R图转换为关系模式,并指定其中的主键和外键答案:3. 一个教学管理系统中有如下信息:l 学生:学号,姓名,性别,年龄l 课程:课程号,
28、课程名,学分l 班级:班级名,班主任l 教师:工号,姓名其中约定:一个学生属于一个班级,一个班级包括多名学生;一个学生可选修多门课程,一门课程可由多个学生选修,学生选修的每门课程均有相应的成绩;一个教师可教授多门课程,一门课程仅由一个教师教授。根据以上情况,完成下述设计:(1) 设计系统的E-R图(2) 将E-R图转换为关系模式,并指定其中的主键和外键答案:4. 一个仓库管理数据库中有如下信息:l 仓库:仓库号,地址,电话l 零件:零件号,零件名称,规格,单价l 管理员:工号,姓名,性别其中约定:一种零件可存放在多个仓库中,一个仓库可存放多种零件,零件存放在仓库中有库存量。一个仓库有多名管理员
29、,一个管理员仅可以管理一个仓库。根据以上情况,完成下述设计:(1) 设计系统的E-R图(2) 将E-R图转换为关系模式,并指定其中的主键和外键答案: 5. 一个运动会管理系统数据库中有如下信息:l 运动员(运动员编号,姓名,性别)l 比赛(比赛编号,名称,时间)l 裁判员(裁判员编号,姓名)其中约定:一个运动员可参加多场比赛,一场比赛可有多个运动员参加,运动员参加比赛产生成绩;一场比赛有一个裁判员,一个裁判员可主持多场比赛。根据以上情况,完成下述设计:(1)设计系统的E-R图(2)将E-R图转换为关系模式,并指定其中的主键和外键答案: 五、问答题1. 试论述数据库的逻辑独立性和物理独立性。答:
30、数据库的三级模式二级映像结构保证了逻辑独立性和物理独立性。当模式改变时,由DBA对各个外模式/模式映像作相应改变,可以使外模式保持不变,因此依据数据的外模式编写的应用程序不必修改,保证了数据与程序的逻辑独立性。当数据库的存储结构发生改变时,由DBA对模式/内模式映像作相应改变,可使模式保持不变,因而应用程序也不需要修改,保证了数据与程序的物理独立性。2. 试论述数据库的三级模式和两级映像。答:数据库的体系结构分为三级模式:外模式、模式和内模式。模式是对数据库中全部数据的逻辑结构和特征的描述。外模式是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。内模式是对数据物理结构和存储方式的描
31、述。DBMS在三级模式结构之间提供了两级映像:外模式/内模式映像,模式/内模式映像。对应于一个模式,可以有多个外模式,对于每一个外模式,都有一个外模式/模式映像定义它们之间的对应关系。数据库只有一个模式,也只有一个内模式,模式/内模式映像定义模式与内模式之间的对应关系。3. 试论述数据库管理系统的功能。答:数据库管理系统是数据库系统的核心,它是建立在操作系统的基础上,位于用户与操作系统之间的一层数据管理软件。 它为用户或应用程序提供访问数据库的方法,包括数据库的创建,查询,更新及各种数据控制。同时它还承担着数据库的维护工作,保证数据库的安全性和完整性。4. 试结合实例阐述关系模型的参照完整性规
32、则。答:参照完整性规则是:若属性F是基本关系R的外键,它与基本关系S的主键相对应,则R中每个元组在属性F上的取值或者为空,或者等于S中某个元组的主键值。参照完整性的实质是不能引用不存在的实体。结合实例阐述部分可由学生自由发挥,视答题情况给分。例如,教师(工号,姓名)和课程(课程号,课程名,工号),其中课程表中的工号引用了教师表中的工号,其各个记录中工号部分的取值或者为空,或者等于教师表中某个教师的工号。5根据关系规范化理论,一个设计不好的关系模式存在哪些问题?关系规范化的一般方法是什么?可结合实例进行阐述。答:一个设计不好的关系模式会导致较大的数据冗余,而数据冗余又会导致更新异常,插入异常和删
33、除异常,造成数据的不一致。关系规范化的一般方法是模式分解,即将一个设计不够好的关系模式分解为一组规范化级别更高的关系模式。在实际应用中,通常需要规范化到3NF。6. 试结合实例阐述你对数据冗余的认识答:数据冗余是数据的重复存储。一个设计不好的关系模式会导致大量的数据冗余。而数据冗余会导致更新异常,插入异常和删除异常,造成数据的不一致。通过关系规范化可以减少数据冗余,其方法是关系模式的分解,即将一个设计不够好的关系模式分解为一组规范化级别更高的关系模式。在实际应用中,通常需要规范化到3NF。7试论述视图的概念以及视图的优点。答:视图作为一种数据库对象,为用户提供了一个可以检索数据表中数据的方式。
34、它是从一个或多个基本表中使用select语句导出的虚拟表,视图也可以定义在其他视图的基础上。同基本表一样,视图包括由行和列构成。但是数据实际存放于基本表中,数据库中存储的只是视图的定义。当基本表的数据发生改变时,从视图查询处理的数据也随之改变。视图的优点包括:简化用户的数据查询和处理;保证数据的逻辑独立性;重新定制数据,使得数据便于共享;合并分割数据,有利于数据输出到应用程序中;数据保密;8. 试阐述索引的概念以及建立索引的优缺点。答:索引是对数据库表在能够一个或多个列的值进行排序的结构,其主要目的是加快数据的查询速度和减少系统的响应时间。索引的优点包括:加快数据的检索速度;创建唯一性索引可保
35、证表中每一行数据的唯一性;加速表和表之间的连接等。但是创建索引和维护索引会消耗时间,另外,每个索引都会占用一定的物理空间,因此索引在带来诸多优势的同时也让系统付出了一定的代价。9. 试论述存储过程的概念及其优点。答:存储过程是SQL语句和可选流程控制语句的预编译集合,能够提高系统的应用效率和执行速度。它以一个名称独立存储在数据库中,可接受输入参数,输出参数,返回单个或多个结果集以及返回值,可由应用程序调用执行。 存储过程的优点是:允许模块化程序设计;允许更快速地执行;减少网络流量;可作为安全机制使用。 10.什么是关系?请列举不少于3种关系数据库产品。答:在关系数据模型中,现实世界的实体以及实
36、体间的各种联系均用关系来表示。在用户看来,关系是一种规范化了的二维表格,是一个属性数目相同的元组的集合。常见的关系数据库产品包括SQL Server,Oracle,DB2,Access等。11. 试列举数据库系统的主要组成部分。答:数据库,数据库管理系统,数据库应用系统,数据库管理员,数据库开发工具和用户。12. 什么是数据库备份?SQL Server提供了哪些备份方式?答:数据库备份就是在某种介质上创建完整数据库(或其中一部分)的副本,并将所有数据项都复制到备份集,以便在数据库遭到破坏时能够恢复数据库。 SQL Server的备份方式包括:完全数据库备份,差异数据库备份,事务日志备份,数据库文件或文件组备份。