1、诚信应考 考出水平 考出风格浙江大学城市学院2011 2012 学年第 1 学期期末考试试卷 数据库系统原理 开课单位: 计算分院 ;考试形式:闭卷;考试时间:_2012_年_1_月_13_日;所需时间: 120 分钟题序 一 二 三 四 五 六 七 八 总 分得分评卷人一_单项选择题_(本大题共_18_题,每题_2_分,共_36_分。)1. 在数据库中,与查询有关的是( C )A. 数据依赖 B. 进程管理C. 索引 D. 数据压缩2. 下列说法中不正确的是( C ) 。A. 任何一个包含两个属性的关系模式一定满足 3NFB. 任何一个包含两个属性的关系模式一定满足 BCNFC. 任何一个包
2、含三个属性的关系模式一定满足 3NFD. 任何一个关系模式都一定有码3. 单个用户使用的数据视图的描述称为 ( A ) A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 4. 设属性 A 是关系 R 的主属性,则属性 A 不能取空值(NULL) 。这是( A )A. 实体完整性规则 B. 参照完整性规则C. 用户定义完整性规则 D. 域完整性规则5. 下述哪一条不是由于关系模式设计不当而引起的?( B )A. 数据冗余 B. 丢失修改 C. 插入异常 D. 更新异常得分年级:_专业:_班级:_学号:_姓名:_装.订线第 1 页 共 10 页16. 设有关系 R 和关系 S 进行如图
3、3 所示的运算,则运算结果中含有元组的数目是( A )R SA B C1 2 34 5 67 8 9D E5 67 89 10A. 6 B. 7 C. 8 D. 97. 在数据库系统中,保证数据及语义正确和有效的功能是 ( D )A. 并发控制 B. 存取控制 C. 安全控制 D. 完整性控制8. 设有两个事务 T1、T2,其并发操作如下所示,下列评价正确的是( D )。A. 该操作不存在问题 B. 该操作丢失修改C. 该操作不能重复读 D. 该操作读“脏”数据 T1 T2读 A=100A=A*2 写回ROLLBACK恢复 A=100读 A=109. 若数据库中只包含成功事务提交的结果,则此数
4、据库就称为处于( B )状态。A. 安全 B. 一致 C. 不安全 D. 不一致10. 对关系 R 进行投影运算后,得到关系 S,则 ( D )A. 关系 R 的元组数等于关系 S 的元组数B. 关系 R 的元组数小于关系 S 的元组数C. 关系 R 的元组数大于或等于关系 S 的元组数D. 关系 R 的元组数大于关系 S 的元组数第 2 页 共 10 页2选择题 1114 基于图书管理数据库,表结构如下所示:图书列名 数据类型 长度 约束条件图书编号 VARCHAR 6 主码分类号 VARCHAR 8书名 VARCHAR 16作者 VARCHAR 6出版单位 VARCHAR 20单价 FLO
5、AT 8读者列名 数据类型 长度 约束条件借书证号 VARCHAR 4 主码单位 VARCHAR 8姓名 VARCHAR 6性别 VARCHAR 2职称 VARCHAR 6地址 VARCHAR 20借阅列名 数据类型 长度 约束条件借书证号 VARCHAR 4图书编号 VARCHAR 8 主码借书日期 DateTime 811. 查询 0001 号借书证的读者姓名和所借图书的书名。SQL 语句正确的是( A ) 。SELECT 姓名,书名 FROM 借阅,图书,读者 WHERE 借阅. 借书证号=0001 AND _A. 图书.图书编号=借阅.图书编号 AND 读者.借书证号= 借阅.借书证号
6、B. 图书.分类号= 借阅.分类号 AND 读者.借书证号=借阅.借书证号C. 读者.图书编号= 借阅.图书编号 AND 读者.借书证号=借阅.借书证号D. 图书.图书编号=借阅.图书编号 AND 读者.书名=借阅.书名12. 查询所藏图书中,有两种及两种以上的图书出版社所出版图书的最高单价和平均单价。下面 SQL 语句正确的是( B )。SELECT 出版单位,MAX(单价),AVG(单价) FROM 图书_A. GROUP BY 出版单位 HAVING COUNT 图书编号=2B. GROUP BY 出版单位 HAVING COUNT(DISTINCT 图书编号)=2C. GROUP BY
7、 出版单位=2第 3 页 共 10 页3D. WHERE 图书编号=213. 查询 0002 号借书证的读者姓名和所借图书的总价值。下面 SQL 语句正确的是( A )。SELECT 姓名,SUM(单价) FROM 图书,读者 WHERE 借书证号 =0002 AND _A. 总编号 IN (SELECT 总编号 FROM 借阅 WHERE 借书证号 =0002)B. 总编号 NOT IN (SELECT 总编号 FROM 借阅 WHERE 借书证号=0002)C. 总编号=(SELECT 总编号 FROM 借阅 WHERE 借书证号 =0002)D. WHERE 借书证号=000214. 查
8、询所藏图书中,各个出版社的图书最高单价、平均单价和册数,下面 SQL 语句正确的是( D )。SELECT 出版单位,_,_,_FROM 图书 _ 出版单位A. MIN(单价) AVGAGE(单价 ) COUNT(*) GROUP BYB. MAX(单价) AVG(单价) COUNT(*) ORDER BYC. MAX(单价) AVG(单价) SUM(*) ORDER BYD. MAX(单价) AVG(单价) COUNT(*) GROUP BY选择题 1517 基于下列表及数据:部门表部门号 部门名称40 家用电器部10 电视录摄像机部20 电话手机部30 计算机部商品表部门号 商品号 商品名
9、称 单价 数量 产地40 0101 A 牌电风扇 200.00 10 广东40 0104 A 牌微波炉 350.00 10 广东40 0105 B 牌微波炉 600.00 10 上海20 1032 C 牌传真机 1000.00 20 北京40 0107 D 牌微波炉 420.00 10 广东20 0110 A 牌电话机 200.00 50 广东20 0112 A 牌手机 2000.00 10 广东40 0202 A 牌电冰箱 3000.00 2 广东30 1041 B 牌计算机 6000.00 10 上海30 0204 C 牌计算机 10000.00 10 上海15. 语句:SELECT 部门
10、表.部门号,部门名称,SUM(单价*数量)FROM 商品表,部门表 WHERE 部门表.部门号=商品表.部门号第 4 页 共 10 页4GROUP BY 部门表.部门号的查询结果是( B ) 。A. 各部门商品数量合计B. 各部门商品金额合计C. 所有商品金额合计D. 各部门商品金额平均值16. 语句:SELECT 部门表.部门号,部门名称,商品号,商品名称,单价FROM 部门表,商品表WHERE 部门表.部门号=商品表.部门号ORDER BY 部门表.部门号 DESC,单价查询结果的第一条记录的商品号是( A ) 。A. 0101B. 0202C. 0110D. 011217. 语句:SEL
11、ECT 商品名称 FROM 商品表 WHERE 数量=10UNIONSELECT 商品名称 FROM 商品表 WHERE 产地=广东 查询结果行数是( D ) 。A. 7B. 6C. 13D. 918. 以下 SQL 语句运行出错的是( C ) 。A. 从商品表中删除行(20,1032,C 牌传真机, 1000.00,20, 北京)B. 将行(50,小电器部)插入部门表中C. 将商品号为0110的部门编号改为50D. 将商品号为1041 的单价改为 12000.00二_不定项选择题_(本大题共_5_题,每题_3_分,共_15_分。)1. 关于子查询,以下说法正确的是( AC )A一般来说,连接
12、都可以用子查询替换。B一般来说,子查询都可以用连接替换。C相对于连接,子查询适合于作为查询的筛选条件。D相对于连接,子查询适合于查看多表的数据。2. 关于规范设计的描述正确的是( AD ) 。A. 规范设计的主要目的是消除数据冗余。B. 规范设计一定会增加数据库的性能。得分第 5 页 共 10 页5C. 设计数据库时,规范化程度越高越好。D. 在规范化数据库时,易于维护数据库的完整性。3. 在( AD )的列上更适合创建索引。A. 需要对数据进行排序B. 具有默认值C. 频繁更改D. 频繁搜索4. 数据库事务处理不具有如下特征( BD ) 。A. 原子性B. 安全性C. 隔离性D. 完整性5.
13、 假定有一个用户表,表中包含字段,UserID(int) 、UserName (varchar) 、password(varchar) 、age(int)等,该表需要设置主码,以下的说法正确的是( AB ) 。A. 如果不能有同时重复的 UserName 和 password,那么 UserName 和 password 可以组合在一起作为主码。B. 此表设计主码时,根据选择主码的最小性原则,最好采用 UserID 作为主码。C. 此表设计主码时,根据选择主码的最小性原则,最好采用 UserName 和 password 的组合作为主码。D. 如果采用 UserID 作为主码,那么在 User
14、ID 列输入的数值,允许为空。三_简答题_(本大题共_3_题,每题_分,共_8_分。)1简述 SQL 语句中,WHERE 子句和 HAVING 子句的差别。 (2 分)答案不唯一,视答题情况给分2什么是视图?一般在什么情况下需要使用视图;(3 分)答案不唯一,视答题情况给分3. 表中哪些类型的属性不能保存 NULL?为什么?(3 分)答案不唯一,视答题情况给分四设计题 (本大题共_3_ 题,每题_分,共_10_分)试设计一个房产租赁中介公司的数据库,有如下需求:(1)该公司在杭州的各个区均有营业点。在每个区至少有一个营业点,每个营业点有唯一的编号,还包括电话号码,地址等信息;(2)每个营业点至
15、少有一名雇员。雇员的信息包括唯一的员工号,姓名,性别等。每个雇员只能被一个营业点雇佣。(3)在每个营业点的雇员中选拔一名作为经理,该经理只能管理他所在的营业点。得分得分第 6 页 共 10 页6(4)公司拥有若干客户,客户信息包括唯一的客户编号,客户姓名等信息。(5)公司需要管理若干房产信息。这些信息包括房产编号,房产类型,可用日期,要价,地址和所有人。地址信息中应该包含所在街道,小区,门牌号;(6)每个房产信息可以被多个营业点发布,每个营业点都可以发布任何公司所有的房产信息;(7)当租赁交易完成后,交易信息将被保存,交易信息中应该包含交易时间,员工号,客户编号,租赁价格以及营业点编号。根据以
16、上情况和假设,完成如下设计:1) 设计该系统的 E-R 图 (5 分)2) 将该 E-R 图转换为满足 3NF 要求的关系模式(3 分)3) 指出转换结果中每个关系模式的候选码和外码(2 分)1.略,根据实体,联系,属性的完整性评分2.区(区号,区名) ;营业点(营业点编号,电话号码,地址,经理编号) ;雇员(员工号,姓名,性别,营业点) ;房产信息(房产编号,房产类型,可用日期,要价,所有人,街道,小区,门牌号) ;房产发布(房产编号,营业点编号) ;交易信息(员工号,营业点编号,客户编号,交易时间,租赁价格)关系不完整,主键或外码无标注酌情扣分五关系代数题(本大题共_3_ 题,每题_3_分
17、,共_9_分)设有如下关系模式:Customer(cid, CustName, age)Product(pid, ProdName, category, price)Purchase(cid, pid, amount)其中:Customer 表示顾客,cid 为顾客编号,CustName 为顾客姓名,age 为顾客年龄Procudt 表示商品,pid 为商品编号,ProdName 为商品名称,category 为商品类别,price 为单价Purchase 为销售信息,amount 为购买数量完成如下命题:(1)给出关系代数表达式,查找既购买了类别为“Computer“ 的商品,又购买了类别为
18、“Book”的商品的顾客姓名。(2)给出关系代数表达式,查找单价在 20 到 50 之间,有过销售记录,类别为“Computer”的产品名称。(3)根据(2)中给出的关系代数表达式,画出优化后的查询语法树。得分第 7 页 共 10 页7答案(1) cust name (category=“Computer” (customerpruchaseproduct) cust name (category=“Book ” (customerpruchaseproduct) (2) prod_name (category= “Computer”price=20 (purchaseproduct)(3)略
19、六、应用题(本大题共_4_ 题,每题_分,共_10_分)给定 Orders 表的结构及数据如下:订单号 订单日期 商品编码 商品描述 订购数量 单价21608 10/20/2011 AT94 Iron 11 21.9521610 10/20/2011 DR93 Gas Range 1 495.0021610 10/20/2011 DW11 Washer 1 399.9921613 10/21/2011 KL62 Dryer 4 329.9521614 10/21/2011 KT03 Dishwasher 2 595.0021617 10/23/2011 BV06 Home Gym 2 794.
20、9521617 10/23/2011 CD52 Microwave Oven 4 150.0021619 10/23/2011 DR93 Gas Range 1 495.0021623 10/23/2011 KV29 Treadmill 2 1290.00回答下列问题:(1)给出 Order 表的主码;(2 分)(2)画出 Orders 表的函数依赖图;(2 分)(3)Orders 表属于第几范式,为什么?(3 分)(4)将它分解为高一级范式。 (3 分)答案:1. 订单号+商品编码2. 略(视完整性给分)3. 第一范式,存在部分函数依赖4. 略(视准确性给分)七SQL 题(本大题共_4_题,
21、每题 _3_分,共_12_分)设有如下关系模式:得分得分第 8 页 共 10 页8Suppliers(供货商)代码 描述 数据类型 长度 约束条件Sid 供货商编号 INT 4 主码SName 供货商名称 VARCHAR 40address 地址 VARCHAR 100Parts(零件)代码 描述 数据类型 长度 约束条件Pid 零件编号 INT 4 主码PName 零件名称 VARCHAR 40 不能为空color 颜色 VARCHAR 10Catalog(供应信息)代码 描述 数据类型 长度 约束条件Sid 供货商编号 INT 4 主码Pid 零件编号 INT 4 主码cost 用量 IN
22、T 4 限定于0,1000之间Remark 备注 VARCHAR 20 不能为空用 SQL 语言写出如下的程序设计问题:(1)定义 Catalog,并说明其实体完整性、参照完整性以及用户自定义完整性。(2)删除所有没有被使用过的零件信息。(3)生成视图 V_Supplier,要求该视图显示所有供货过的供货商信息及供货信息(供货商编号,最大供货数量,最小供货数量,平均供货数量,供货次数) 。(4)查询至少供应了供货商名为前进商行供应过的所有零件的供应商信息。 1.CREATE TABLE Catalog(SID int,Pid int,Cost int check(cost between 0
23、and 1000),Remark varchar(20),Primary key(sid ,pid),Foreign key sid reference supplier(sid),Foreign key pid reference parts(pid)2.Delete from parts where not exists(select * from catalog where catalog.pid = parts.pid)3.Create view v_supplier(sid,max_sup,min_sup,avg_sup,count_sup)As Select sid,max(cost),min(cost),avg(cost),count(pid)From catalogGroup by sid4.Select *From suppliers aWhere not exists(Select * from suppliers b,catalog c where b.sid=c.sid and b.sname=前进商行第 9 页 共 10 页9And not exists(Select * from catalog d where a.sid=d.sid and c.pid = d.pid)