第3 部分 模拟试题 这里给出的三套模拟试题是针对教材中第1~5、7~9章的内容而出的,以测试学习者对数据库系统这门学科的掌握程度 在每套题的最后部分,加强了对数据库设计的训练,把ER图、对象联系图和UML类图三者有机地联系起来,以提高学习者数据库设计的水平模拟试题1一. 单项选择题(本大题共15小题,每小题2分,共30分)1.在文件系统中,所具有的数据独立性是 [ ] A.系统独立性 B.物理独立性C.逻辑独立性 D.设备独立性2.数据库系统中存放三级结构定义的DB称为 [ ] A.DBS B.DD C.DDL D.DBMS1=23.设有关系R(A,B,C)和关系S(B,C,D),那么与R⋈S等价的关系代数表达式是 [ ]A.σ1=5(R⋈S) B.σ1=5(R×S) C.σ1=2(R⋈S) D.σ1=2(R×S)4.与域表达式 { ab | ($c) (R(ac) ∧ R(cb))} 等价的关系代数表达式是 [ ]A.π1,4(σ2=3(R×R)) B.π1,3(R⋈R) 2=12=3C.π1,4(R⋈R) D.π1,3(R⋈S)5.设有两个关系R(A,B)和S(B,C),与下列SELECT语句 SELECT A,B FROM R WHERE B NOT IN(SELECT BFROM SWHERE C='C56'); 等价的关系代数表达式是 [ ]C≠'C56' A.πA,B(σC≠'C56'(R⋈S)) B.πA,B(R ⋈ S)C.R-πA,B(σC= 'C56'(R⋈S)) D.R-πA,B(σC≠'C56'(R⋈S))6.嵌入式SQL的预处理方式,是指 [ ] A.识别出SQL语句,加上前缀标识和结束标志B.把嵌入的SQL语句处理成函数调用形式C.对源程序进行格式化处理 D.把嵌入的SQL语句编译成目标程序7.设关系模式R(A,B,C,D),F是R上成立的FD集,F={ B→D,AD→C },那么ρ={ ABC,BCD }相对于F [ ]A.是无损联接分解,也是保持FD的分解B.是无损联接分解,但不保持FD的分解C.不是无损联接分解,但保持FD的分解D.既不是无损联接分解,也不保持FD的分解8.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={A→B,C→D},则F+中左部为(BC)的函数依赖有 [ ] A.2个 B.4个 C.8个 D.16个9.有12个实体类型,并且它们之间存在着15个不同的二元联系,其中4个是1:1联系类型,5个是1:N联系类型,6个M:N联系类型,那么根据转换规则,这个ER结构转换成的关系模式有 [ ] A.17个 B.18个 C.23个 D.27个10.DBMS的并发控制子系统,保证了事务__________的实现 [ ] A.原子性 B.一致性 C.隔离性 D.持久性11.SQL中不一定能保证完整性约束彻底实现的是 [ ] A.主键约束 B.外键约束C.局部约束 D.检查子句12.ORDB中,同类元素的有序集合,并且允许一个成员可多次出现,称为 [ ]A.结构类型 B.集合类型 C.数组类型 D.多集类型13.在ORDB中,当属性值为单值或结构值时,引用方式任和传统的关系模型一样,在层次之间加 [ ] A.冒号“:” B.单箭头“→” C.下划线“_” D.圆点“.”14.某一种实际存在的事物具有看来好像不存在的性质,称为 [ ] A.不存在性 B.虚拟性 C.无关性 D.透明性15.DDBS中,全局关系与其片段之间的映象是 [ ] A.一对一的 B.一对多的 C.多对一的 D.多对多的二.填空题(本大题共10小题,每小题1分,共10分)16.关系模型和层次、网状模型最大差别是用___________而不是用___________导航数据。
17.DBS的全局结构体现了DBS的____________结构18.在关系代数中,交操作可由__________操作组合而成19.SQL的SELECT语句中使用分组子句以后,SELECT子句的语义就不是投影的意思了,而是______________________20.设关系模式R(A,B,C),F是R上成立的函数依赖集,F={ A→B,B→C,C→A },那么F在模式AB上投影πAB(F)=___________21.数据库中,悬挂元组是指___________________22.DBD中,子模式设计是在___________阶段进行的23.封锁能避免错误的发生,但会引起 问题24.ORDB中,引用类型是指嵌套引用时,不是引用对象本身的值,而是引用___________25.DDBS中,如果系统具有分片透明性,那么用户只要对___________就能操作了,不必了解数据的___________情况三.简答题(本大题共10小题,每小题3分,共30分)26.“数据独立性”在文件系统阶段、数据库阶段和分布式数据库阶段中各表现为什么形式?27.设有关系R和S: R A B C S A B D 1 2 3 1 3 6 1 3 5 3 6 8 2 4 6 1 3 5 3 6 9 3 4 52>2 试写出R⋈S、 R⋈S的值28.设有关系R(A,B,C)和S(D,E,F),设有关系代数表达式。
πA,B(R)-πA,B(σA=D ∧ E='E8'(R×S)) 试写出与上述关系代数表达式等价的元组表达式,关系逻辑规则和SQL语句29.嵌入式SQL的预处理方式是如何实现的?这种方式有什么重要意义?30.设关系模式R(A,B,C,D,E),F是R上成立的FD集,F={ AB→C,BC→A, AC→B,D→E },试写出R的候选键,并说明理由31.逻辑设计阶段的输入和输出是什么?32.什么是“脏数据”?如何避免读取“脏数据”?33.对象联系图与ER图的主要差别是什么?34.什么是“死锁”?在系统发生死锁时,系统如何处理?35. DDB中数据分片必须遵守哪三个条件?这三个条件的目的各是为了什么?四.设计题(本大题共5小题,每小题4分,共20分)设某商业集团关于商店销售商品的数据库中有三个基本表: 商店 SHOP(S#,SNAME,AREA,MGR_NAME) 其属性是商店编号,商店名称,区域名,经理姓名 销售 SALE(S#,G#, QUANTITY)其属性是商店编号,商品编号,销售数量 商品 GOODS(G#,GNAME,PRICE) 其属性是商品编号,商品名称,单价。
36.试写出下列查询的关系代数表达式、元组表达式和关系逻辑规则: 检索销售“冰箱”的商店的编号和商店名称37.试写出上面第36题的SELECT语句表达形式并写出该查询的图示形式38.试写出下列操作的SQL语句: 从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除39.写一个断言,要求区域名为“EAST”的商店里销售商品的单价不能低于100元40.试写出下列操作的SQL语句: 统计区域名为“EAST”的所有商店销售的每一种商品的总数量和总价值 要求显示(G#,GNAME,SUM_QUANTITY,SUM_VALUE),其属性为商品编号、商品名称、销售数量、销售价值五.综合题(本大题共2小题,每小题5分,共10分)41.某汽车运输公司数据库中有一个记录司机运输里程的关系模式: R(司机编号,汽车牌照,行驶公里,车队编号,车队主管)此处每个汽车牌照对应一辆汽车行驶公里”为某司机驾驶某辆汽车行驶的总公里数如果规定每个司机属于一个车队,每个车队只有一个主管1)试写出关系模式R的基本FD和关键码2)说明R不是2NF模式的理由,并指出数据冗余之所在试把R分解成2NF模式集。
3)进而把R分解成3NF模式集,并说明理由42.设某商业集团数据库中有三个实体集一是“仓库”实体集,属性有仓库号、仓库名和地址等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“商品”实体集,属性有商品号、商品名、单价 设仓库与商品之间存在“库存”联系,每个仓库可存储若干种商品,每种商品存储在若干仓库中,每个仓库每存储一种商品有个日期及存储量;商店与商品之间存在着“销售”联系,每个商店可销售若干种商品,每种商品可在若干商店里销售,每个商店销售一种商品有月份和月销售量两个属性;仓库、商店、商品之间存在着“供应”联系,有月份和月供应量两个属性1)试画出ER图,并在图上注明属性、联系类型、实体标识符;(2)将ER图转换成关系模型,并说明主键和外键3)将ER图转换成对象联系图4)将ER图转换成UML的类图模拟试题1答案一. 单项选择题答案1.D 2.B 3.B 4.A 5.C 6.B 7.B 8.C9.B 10.C 11.D 12.C 13.D 14.D 15.B二.填空题答案 16.关键码 指针 17.模块功能18.差 19.对每一分组执行聚合操作20.{ A→B,B→A } 21.破坏泛关系存在的元组22.逻辑设计 23.活锁、饿死和死锁24.对象标识符 25.全局关系 分片和分配三.简答题答案26.答:“数据独立性”在文件系统中表现为“设备独立性”;在数据库阶段表现为“物理独立性”和“逻辑独立性”;在分布式数据库中表现为“分布透明性”。
27.答:2=2 R⋈S A B C D R⋈S R.A R.B C S.A S.B D 1 3 5 6 2 4 6 1 3 61 3 5 5 2 4 6 1 3 53 6 9 8 3 6 9 1 3 6 3 6 9 1 3 5 3 6 9 3 4 528.答:元组表达式为:{ t|($u)("v)(R(u)∧S(v)∧(u[l]=v[1] Þ v[2]≠'E8')∧t[1]=u[1] ∧t[2]=u[2])} 关系逻辑规则为:W(x,y)← R(x,y,a)∧┐(x,'E8',c) SQL语句为: SELECT A,B FROM R WHERE A NOT IN (SELECT D FROM S WHERE E='E8');29.答:预处理方式是先用预处理程序对源程序进行扫描,识别出SQL语句,并处理成宿主语言的函数调用形式;然后再用宿主语言的编译程序把源程序编译成目标程序 这种方法的重要意义在于不必改动宿主语言的编译程序,这样,SQL的编译程序。