1、1一、选择题 60(选择一个最合适的答案,在答题纸上涂黑)1一个事务中的一组更新操作是一个整体,要么全部执行,要么全部不执行。这是事务的:A.原子性 B.一 致性 C.隔离性 D.持久性2在数据库的三级模式结构中,描述一个数据库中全体数据的全局逻辑结构和特性的是:A外模式 B内模式 C存储模式 D模式3关于联系的多重性,下面哪种说法不正确?A.一个多对多的联系中允许多对一的情形。B.一个多对多的联系中允许一对一的情形。C.一个多对一的联系中允许一对一的情形。D.一个多对一的联系中允许多对多的情形。4考虑学校里的“ 学生“和“课程“ 之间的联系,该联系的多重性应该是:A. 一对一 B. 多对一
2、C. 一对多 D. 多对多5下面哪种约束要求一组属性在同一实体集任意两个不同实体上的取值不同。A. 键(key)约束 。 B. 单值约束。 C. 参照完整性。 D. 域(domain) 约束6关系模型要求各元组的每个分量的值必须是原子性的。对原子性,下面哪种解释不正确:A.每个属性都没有内部结构。 B.每个属性都不可再分解。C.各属性值应属于某种基本数据类型。 D.属性值不允许为 NULL。7对于一个关系的属性( 列 )集合和元组(行) 集合,下面哪种说法不正确:A.改变属性的排列次序不影响该关系。B. 改变元组的排列次序不影响该关系。C.改变元组的排列次序会改变该关系。D. 关系的模式包括其
3、名称及其属性集合。8若 R 是实体集 R1 与 R2 间的一个多对多联系,将其转换为关系 R,哪种说法不正确:A.R属性应包括 R1 与 R2 的所有属性 。 B.R属性应包括 R1 与 R2 的键属性。C.R1 与 R2 的键属性共同构成 R的键。 D.R的属性应包括 R 自身定义的属性。9关于函数依赖的判断,下面哪种说法不正确?A.若任意两元组在属性 A 上一致,在 B 上也一致,则有 A B 成立。B.若任意两元组在属性 A 上一致,在 B 上不一致,则 A B 不成立。C.若任意两元组在属性 A 上不可能一致,则不管在 B 上是否一致,有 A B 成立。2D.若任意两元组在属性 A 上
4、不可能一致,则 A B 不成立。10若某关系 R 的属性集 A 函数决定 R 中所有其它属性,则 A 为关系 R 的一个:A.键。 B.主键。 C.超键。D.外键。11当且仅当函数依赖 ABC,则有 AB 和 AC。此规则是A.分解/合并规则。 B.平凡依赖规则。 C.传递规则。 D.增长规则。12对于某关系 R 的某个属性集 A,下面哪种说法不正确:A.若属性集 A 是 R 的键,则闭包 A+是 R 中所有属性集合。B.若闭包 A+是 R 中所有属性集合,则属性集 A 是 R 的键 。C.若闭包 A+是 R 中所有属性集合,则属性集 A 是 R 的超键。D.当且仅当属性集 A 是 R 的超键
5、,闭包 A+是 R 中所有属性集合。13 某关系 R(A, B, C, D)有函数依赖 AB, BCD, DA,R 总共有几个超键?A.3 B.4 C.6 D.714某关系 R(A, B, C, D)有函数依赖 AB, BCD, DA,下面哪个函数依赖不蕴含于已知依赖?A. D B B. ACBD C. BCAD D. BDAC15某关系 R(A, B, C, D)有函数依赖 AB, BCD, DA ,该关系若违背 BCNF,则应分解成几个关系才能满足 BCNF:A.符合 BCNF,无需分解 B.2 个关系 C.3 个关系 D.4 个关系16 关系 product(prodid,prodnam
6、e,type,factory)表示所销售的每一种商品的货号、品名、种类及生产厂家,一种商品有唯一货号。该关系所满足下列最高范式是:A 2NF。 B 3NF。 C BCNF。 D 4NF。17关系 prodsales(salesman,prodid,prodname,quantity,amount)表示销售员销售商品情况:销售员、货号、品名、销售数量及销售金额。一名销售员可销售多种商品,一种商品可由多名销售员销售。该关系违背下列最低范式是:A.1NF。 B.2NF。 C.3NF。 D.BCNF。18关系代数运算中,下面哪种计算可等价表示为其它几种计算的复合形式:A.投影 B.选择 C.笛卡尔积
7、D.自然连接19设有关系 R(A,B,C)和 S(C,D,E),其元组如下所示:RA B C147258369SC D E3618742446363 B,E(R A=D S)的值是:20在学生选课表 studentcourse(stdno,courseno,grade)中,查询选修 3 号课程、且成绩在70 和 80 分之间的学生的学号(stdno) 及其成绩(grade)。实现该功能的 SQL 语句是:ASELECT stdno,grade FROM studentcourseWHERE courseno=3 AND BETWEEN 70ALL(Select b From S)结果是;A.B
8、 E258463B.B E5864C.B E558664D.B E258436RA B123246SA B123212422学生成绩表 R 如下Select (score/10)*10 as ScoreLevel, count(no) as numFrom RGroup by (score/10)*10Order by ScoreLevel desc;结果是:23关于视图 view,下面哪种说法不正确?A.A B1 2B.A B3 6C.A BD.语法错R.No Score12345678778492826372NULL47A.ScoreLevel num9080706040NULL12211
9、1B.ScoreLevel num908070604012211C.ScoreLevel num406070809011221D.语法错5A.基于一条 Select 语句可定义一个视图。B.Create View viewName AS.命令可定义视图。C.查询视图与查询表在语法上是一样的。D.Select 语句中的 From 子句中视图和表不能同时出现。24关系 R 如下Select * From R Where ano*2 OR (ano*2)is Unknown结果为25已知关系如下Select empname,amountFrom salesman Natural Left Outer
10、 Join salesorder;结果为:R.No a1232NULL7A.No a2 NULLB.No a23NULL7C.No a3 7D.语法错salesman.Empid empname123ZhangLiWangsalesorderorderno empid amount800180021343006700A.Empname amountZhangWang43006700B.Empname amountZhangLiWang430006700C.Empname amountZhangLiWang4300NULL6700D.语法错626关于表的主键约束,下面哪种说法不正确:A.sele
11、ct 命令不可能违背主键约束。B.insert 命令可能违背主键约束。C.delete 命令不可能违背主键约束。D.update 命令不可能违背主键约束。27关于数据库表中的外键,下面哪种说法不正确:A.表 R1 到 R2 有外键,R2 到 R1 同时也能定义外键。B.同一个表中属性 A1 到主键属性之间也能定义外键。C.外键所关联的双方属性应属同种数据类型。D.一个外键只能在单个属性上定义。28在并发性事务环境中,事务 1 先读取某行数据,随后事务 2 修改了此行数据并提交,造成事务 1 再读此行时先后结果不一致。这种现象被称为:A.(Dirty Reads)脏读 B.(Non-repeat
12、able Reads)不可重复读 C.(Phantom Rows)幻像行 D.事务冲突。29关于事务控制,下面哪种说法不正确?A.Commit 提交当前事务,并结束当前事务。B.Rollback 退回当前事务,取消本事务已做的数据更新,并结束当前事务。C.Commit 提交当前事务,并释放本事务施加的锁。D.Rollback 退回当前事务,继续持有本事务施加的锁。30下面哪一种指令能为用户授权,使其能以一定的权限访问特定的数据库对象。A.Grant B.Revoke C.Commit D.Privilege二、综合题 40一个简化的图书馆信息管理系统。系统需求如下:1.图书馆有若干管理员 li
13、brarian,各自有员工号 empid、姓名 name、身份证号 idno 等属性。2.图书馆中备有若干种图书 booktype,每种图书有 ISBN、名称 title、出版社 publisher、作者writers、价格 price 等属性,每种图书有唯一的 ISBN 号,同种图书可购入多本。3.每一本图书 book 有唯一标记 bookid 和种类 booktype。74.读者 reader 在办理借书证后方可借阅。一个读者有唯一的借书证号 cardno,还有姓名 name、身份证号 idno、住址 address、注销标记 logoff 等。读者在注销之前,须归还所有已借图书或报失。5
14、.需处理以下基本业务:借书:在某时刻某读者通过某管理员借阅某一本书。还书:在某时刻通过某管理员归还某一本书。报失:在某时刻某读者向某管理员报失某一本书;报失之后该书不能再借。每一次还书和报失记录都须对应某一次借书记录,且可由不同管理员处理。按次序回答下列问题:1用 E/R 图建立该系统的数据库模型。为每个实体集确定键属性,并确定每个联系的多重性。 (8)2由 E/R 模型建立该系统的关系模式,并确定每个关系的主键和可能的外键。注意各关系中的函数依赖和多值依赖,并使你的关系能符合更高范式。(8)3基于以上关系模式,用关系代数表示下面计算:(6)1) 计算“清华大学出版社”出版的图书名称及作者。2
15、) 计算借书证号为“A00345 ”的读者未归还的图书名称。3) 计算未处理过借书手续的管理员的员工号及其姓名。4使用 SQL 语言实现上述计算,并使输出结果不重复。(6)5使用 SQL 语言完成下面的计算:(12)1) 增加借书记录: 借书证号为 A00345,通过管理员E0035于当前日期借到图书B00124 。( 提示:today(*)函数返回当前日期)2)还书记录:通过管理员E0034于当前日期归还图书B00124 。(提示:还书无需确认借书证)3)计算借书证号为“A00345 ”的读者已借超过 30 天而未还的图书数量。( 提示:days(d1,d2)函数返回从日期 d1 到 d2
16、的天数)4)计算借书次数最多的读者的姓名和身份证号。(注意使用视图)5)计算所有图书的 ISBN、书名、借阅次数,并按借阅次数从大到小排列。(注意使用外连接)8参考答案1ER 图(一些非键属性未列出)2.关系模型Librarian(empid, name, idno)Reader(cardno, name, idno, address)Booktype(isbn, title, publisher, writers, price)Book(bookid, isbn)Record(recid, brwempid, cardno, bookid, borrowdate, end, enddate,
17、 endempid)3.关系代数运算1) 计算 “清华大学出版社 ”出版的图书名称及作者title,writers(publisher=清华大学出版社Booktype)LibrarianReader Book BooktypeRecordempidisbnbookidcardnorecidborrow end helperborrowdate end enddateNULL1=return2=loseNULLautoincrement NOT NULL92) 计算借书证号为“A00345”的读者未归还的图书名称title(cardno=A00345AND end=NULL(RecordBook
18、Booktype)3) 计算未处理过借书手续的管理员的员工号及其姓名。empid,name(Librarian) -empid,name(Librarianbrwempid=empid Record)4.SQL 运算1) 计算 “清华大学出版社 ”出版的图书名称及作者Select title,writers From Booktype Where publisher=清华大学出版社;2) 计算借书证号为“A00345”的读者未归还的图书名称Select titleFrom Record Natural Join Book Natural Join BooktypeWhere cardno=A0
19、0345 AND “end“ IS NULL;3) 计算未处理过借书手续的管理员的员工号及其姓名。Select empid,name From LibrarianWhere empid NOT IN(Select brwempid From Record);5.SQL1) 增加借书记录: 借书证号为A00345,通过管理员E0035于当前日期借到图书B00124 。( 提示:today(*)函数返回当前日期)insert into record(brwempid, cardno,bookid,borrowdate)values(E0035,A00345,B00124,today(*);2) 还
20、书记录 :通过管理员 E0034于当前日期归还图书 B00124。(提示:还书无需确认借书证)update record set “end“ = 1, enddate= today(*),endempid=E0034 where recid = (select recid from record where bookid=B00124 and “end“ IS NULL);3) 计算借书证号为“A00345 ”的读者已借超过 30 天而未还的图书数量。 (提示:days(d1,d2)函数返回从日期 d1 到 d2 的天数)Select Count(recid)From RecordWhere
21、cardno=A00345 AND “end“ IS NULL 10AND days(borrowdate,today(*)30;4) 计算借书次数最多的读者的姓名和身份证号。(注意使用视图)Create view brwtimes asselect cardno,count(recid) as timesfrom recordgroup by cardnoselect name,idnofrom reader natural join brwtimeswhere times=(select max(times) from brwtimes);5) 计算所有图书的 ISBN、书名、借阅次数,并
22、按借阅次数从大到小排列。(注意使用外连接)Select book.isbn,title,count(recid) as timesFrom book Left Outer Join record Natural Join booktypeGroup by book.isbn,titleOrder by times DESC;Department Salesman CustomerSalesorderProductSalesitemsales forruns foras headerworks forunit-ofcontainsdeptidnameempididnonamegenderphonenameprovcityphoneunitordernosigndatecustidlinenosalescostquantitytypespecpricedescprodidfactory