南京理工大学数据库试题02

  一、选择题60(选择一个最合适的答案,在答题纸上涂黑)

 1.一个事务中的一组更新操作是一个整体,要么全部执行,要么全部不执行。这是事务的:

 A.原子性 B.一致性 C.隔离性 D.持久性

 2.在数据库的三级模式结构中,描述一个数据库中全体数据的全局逻辑结构和特性的是:

 A.外模式 B.内模式 C.存储模式 D.模式

 3.关于联系的多重性,下面哪种说法不正确?

 A.一个多对多的联系中允许多对一的情形。

 B.一个多对多的联系中允许一对一的情形。

 C.一个多对一的联系中允许一对一的情形。

 D.一个多对一的联系中允许多对多的情形。

 4.考虑学校里的"学生"和"课程"之间的联系,该联系的多重性应该是:

 A. 一对一 B. 多对一 C. 一对多 D. 多对多

 5.下面哪种约束要求一组属性在同一实体集任意两个不同实体上的取值不同。

 A. 键(key)约束。

  B. 单值约束。

 C. 参照完整性。

  D. 域(domain)约束

 6.关系模型要求各元组的每个分量的值必须是原子性的。对原子性,下面哪种解释不正确:

 A.每个属性都没有内部结构。 B.每个属性都不可再分解。

 C.各属性值应属于某种基本数据类型。

  D.属性值不允许为NULL。

 7.对于一个关系的属性(列)集合和元组(行)集合,下面哪种说法不正确:

 A.改变属性的排列次序不影响该关系。B.改变元组的排列次序不影响该关系。

 C.改变元组的排列次序会改变该关系。D.关系的模式包括其名称及其属性集合。

 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成立。

 D.若任意两元组在属性A上不可能一致,则A → B不成立。

 10.若某关系R的属性集A函数决定R中所有其它属性,则A为关系R的一个:

 A.键。

 B.主键。C.超键。D.外键。

 11.当且仅当函数依赖A→BC,则有A→B和A→C。此规则是

 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的超键,闭包A+是R中所有属性集合。

 13.某关系R(A, B, C, D)有函数依赖A→B, BC→D, D→A,R总共有几个超键?

 A.3 B.4 C.6 D.7

 14.某关系R(A, B, C, D)有函数依赖A→B, BC→D, D→A,下面哪个函数依赖不蕴含于已知依赖?

 A. D→B B. AC→BD C. BC→AD D. BD→AC

 15.某关系R(A, B, C, D)有函数依赖A→B, BC→D, D→A,该关系若违背BCNF,则应分解成几个关系才能满足BCNF:

 A.符合BCNF,无需分解 B.2个关系 C.3个关系 D.4个关系

 16.关系product(prodid,prodname,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.笛卡尔积× D.自然连接∞

 19.设有关系R(A,B,C)和S(C,D,E),其元组如下所示:

 πB,E(R∞A=D S)的值是:

 20.在学生选课表studentcourse(stdno,courseno,grade)中,查询选修3号课程、且成绩在70和80分之间的学生的学号(stdno)及其成绩(grade)。实现该功能的SQL语句是:

 A.SELECT stdno,grade FROM studentcourse

 WHERE courseno='3' AND BETWEEN 70<grade<80;

 B.SELECT stdno,grade FROM studentcourse

 WHERE courseno='3' AND grade BETWEEN 70 AND 80;

 C.SELECT stdno,grade FROM studentcourse

 WHERE courseno='3' AND grade BETWEEN 70,80;

 D.SELECT stdno,grade FROM studentcourse

 WHERE courseno='3' AND grade IN(70,80);

 21.已知关系R和S:

 Select * From R

 Where a<>ALL(Select b From S)

 结果是;

 22.学生成绩表R如下

 Select (score/10)*10 as ScoreLevel, count(no) as num

 From R

 Group by (score/10)*10

 Order by ScoreLevel desc;

 结果是:

 23.关于视图view,下面哪种说法不正确?

 A.基于一条Select语句可定义一个视图。

 B.Create View viewName AS...命令可定义视图。

 C.查询视图与查询表在语法上是一样的。

 D.Select语句中的From子句中视图和表不能同时出现。

 24.关系R如下

 Select * From R Where a>no*2 OR (a>no*2)is Unknown

 结果为

 25.已知关系如下

 Select empname,amount

 From salesman Natural Left Outer Join salesorder;

 结果为:

 26.关于表的主键约束,下面哪种说法不正确:

 A.select命令不可能违背主键约束。

 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-repeatable Reads)不可重复读

 C.(Phantom Rows)幻像行 D.事务冲突。

 29.关于事务控制,下面哪种说法不正确?

 A.Commit提交当前事务,并结束当前事务。

 B.Rollback退回当前事务,取消本事务已做的数据更新,并结束当前事务。

 C.Commit提交当前事务,并释放本事务施加的锁。

 D.Rollback退回当前事务,继续持有本事务施加的锁。

 30.下面哪一种指令能为用户授权,使其能以一定的权限访问特定的数据库对象。

 A.Grant B.Revoke C.Commit D.Privilege

 二、综合题40

 一个简化的图书馆信息管理系统。系统需求如下:

  a.图书馆有若干管理员librarian,各自有员工号empid、姓名name、身份证号idno等属性。

  b.图书馆中备有若干种图书booktype,每种图书有ISBN、名称title、出版社publisher、作者writers、价格price等属性,每种图书有唯一的ISBN号,同种图书可购入多本。

 c.每一本图书book有唯一标记bookid和种类booktype。

 d.读者reader在办理借书证后方可借阅。一个读者有唯一的借书证号cardno,还有姓名name、身份证号idno、住址address、注销标记logoff等。读者在注销之前,须归还所有已借图书或报失。

 e.需处理以下基本业务:

 ①借书:在某时刻某读者通过某管理员借阅某一本书。

 ②还书:在某时刻通过某管理员归还某一本书。

 ③报失:在某时刻某读者向某管理员报失某一本书;报失之后该书不能再借。

  每一次还书和报失记录都须对应某一次借书记录,且可由不同管理员处理。

 按次序回答下列问题:

 1.用E/R图建立该系统的数据库模型。为每个实体集确定键属性,并确定每个联系的多重性。(8)

 2.由E/R模型建立该系统的关系模式,并确定每个关系的主键和可能的外键。注意各关系中的函数依赖和多值依赖,并使你的关系能符合更高范式。(8)

 3.基于以上关系模式,用关系代数表示下面计算:(6)

 (1)计算“清华大学出版社”出版的图书名称及作者。

 (2)计算借书证号为“A00345”的读者未归还的图书名称。

 (3)计算未处理过借书手续的管理员的员工号及其姓名。

 4.使用SQL语言实现上述计算,并使输出结果不重复。(6)

 5.使用SQL语言完成下面的计算:(12)

 1) 增加借书记录: 借书证号为'A00345',通过管理员'E0035'于当前日期借到图书'B00124'。(提示:today(*)函数返回当前日期)

 2)还书记录:通过管理员'E0034'于当前日期归还图书'B00124'。(提示:还书无需确认借书证)

 3)计算借书证号为“A00345”的读者已借超过30天而未还的图书数量。(提示:days(d1,d2)函数返回从日期d1到d2的天数)

 4)计算借书次数最多的读者的姓名和身份证号。(注意使用视图)

 5)计算所有图书的ISBN、书名、借阅次数,并按借阅次数从大到小排列。(注意使用外连接)

 数据库试题参考答案

 一、选择

 01-05:ADDDA

 06-10:DCADC

 11-15:ABDDC

 16-20:DBDBB

 21-25:BADBC

 26-30:DDBDA

 二、综合题

 1.ER图(一些非键属性未列出)

 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, endempid)

 3.关系代数运算

 1) 计算“清华大学出版社”出版的图书名称及作者

 πtitle,writers(σpublisher=’清华大学出版社’Booktype)

 2) 计算借书证号为“A00345”的读者未归还的图书名称

 πtitle(σcardno=’A00345’AND end=NULL(Record∞Book∞Booktype))

 3) 计算未处理过借书手续的管理员的员工号及其姓名。

 πempid,name(Librarian) -πempid,name(Librarian∞brwempid=empidRecord)

 4.SQL运算

 1) 计算“清华大学出版社”出版的图书名称及作者

 Select title,writers From Booktype Where publisher=’清华大学出版社’;

 2) 计算借书证号为“A00345”的读者未归还的图书名称

 Select title

  From Record Natural Join Book Natural Join Booktype

  Where cardno=’A00345’ AND "end" IS NULL;

 3) 计算未处理过借书手续的管理员的员工号及其姓名。

 Select empid,name

 From Librarian

 Where empid NOT IN(Select brwempid From Record);

 5.SQL

 1) 增加借书记录: 借书证号为'A00345',通过管理员'E0035'于当前日期借到图书'B00124'。(提示:today(*)函数返回当前日期)

 insert into record(brwempid, cardno,bookid,borrowdate)

 values('E0035','A00345','B00124',today(*));

 2) 还书记录:通过管理员'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 Record

 Where cardno='A00345' AND "end" IS NULL

 AND days(borrowdate,today(*))>30;

 4) 计算借书次数最多的读者的姓名和身份证号。(注意使用视图)

 Create view brwtimes as

 select cardno,count(recid) as times

 from record

 group by cardno

 select name,idno

 from reader natural join brwtimes

 where times=(select max(times) from brwtimes);

 5) 计算所有图书的ISBN、书名、借阅次数,并按借阅次数从大到小排列。(注意使用外连接)

 Select book.isbn,title,count(recid) as times

 From book Left Outer Join record Natural Join booktype

 Group by book.isbn,title

 Order by times DESC;

 数据库试题一

 8

 S

 C D E 3

 6

 1

 8 7

 4

 2

 4 4

 6

 3

 6

 R

 A B C 1

 4

 7 2

 5

 8 3

 6

 9

 D.

 B E 2

 5

 8 4

 3

 6

 C.

 B E 5

 5

 8 6

 6

 4

 B.

 B E 5

 8 6

 4

 A.

 B E 2

 5

 8 4

 6

 3

 R

 A B 1

 2

 3 2

 4

 6

 S

 A B 1

 2

 3 2

 1

 2

 A.

 A B 1 2

 B.

 A B 3 6

 C.

 A B

 D.语法错

 R.

 No Score 1

 2

 3

 4

 5

 6

 7

 8 77

 84

 92

 82

 63

 72

 NULL

 47

 A.

 ScoreLevel num 90

 80

 70

 60

 40

 NULL

  1

 2

 2

 1

 1

 1

 B.

 ScoreLevel num 90

 80

 70

 60

 40 1

 2

 2

 1

 1

 C.

 ScoreLevel num 40

 60

 70

 80

 90 1

 1

 2

 2

 1

 D.语法错

 R.

 No a 1

 2

 3 2

 NULL

 7

 A.

 No a 2 NULL

 B.

 No a 2

 3 NULL

 7

 C.

 No a 3 7

 D.语法错

 salesorder

 orderno empid amount 8001

 8002 1

 3 4300

 6700

 salesman.

 Empid empname 1

 2

 3 Zhang

 Li

 Wang

 D.语法错

 C.

 Empname amount Zhang

 Li

 Wang 4300

 NULL

 6700

 B.

 Empname amount Zhang

 Li

 Wang 4300

 0

 6700

 A.

 Empname amount Zhang

 Wang 4300

 6700

 Librarian

 Reader

 Book

 Booktype

 Record

 empid

 isbn

 bookid

 cardno

 recid

 borrow

 end helper

 borrowdate

 end

 enddate

 NULL

 1=return

 2=lose

 NULL

 autoincrement

 NOT NULL

推荐访问:南京电大试题数据库 试题 数据库 南京理工大学