数据库期末复习题

更新时间:2023-09-23 05:15:01 阅读量: 人文社科 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

企业中小型数据库系统开发期末复习题

选择、填空题参照课后习题中的题目。 三、简答题

1、DBS由哪几个部分组成?

数据库、数据库管理系统、数据库应用系统、数据库管理员

2.数据库的并发操作会带来数据不一致性有哪些问题?

丢失更新、不可重复读、脏读和幻读。

3.请叙述数据库设计的六个步骤。

(1)需求分析(2)概念设计(3)逻辑设计(4)物理设计(5)数

据库实施 (6)数据库运行和维护

4.数据库的完整性约束有哪三个?

实体完整性。 参照完整性 用户自定义完整性

5.请详细叙述三级封锁协议。

三级封锁协议在二级封锁协议的基础上,再规定S锁必须在事务T结束后才能释放。如果未获准加S锁,则该事务T进入等待状态,直到获准加X锁后该事务才继续执行。

三级封锁协议除了能防止丢失修改和读“脏”数据的问题之外,还能解决不可重复读的问题。但是带来了其它问题:死锁和活锁。

6.数据库技术的发展经历了哪三个阶段?

人工管理阶段,文件系统阶段,数据库系统阶段。

四、本题用到下面三个关系表:

CARD 借书卡: CNO 卡号,NAME 姓名,CLASS 班级

BOOKS 图书: BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数

BORROW 借书记录:CNO 借书卡号,BNO 书号,RDATE 还书日期 备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求用SQL语句实现下列题目:

1. 写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。

create table borrow (

cno int not null foreign key references card(cno), bno int not null foreign key references books(bno), rdate datetime,

primary key(cno,bno)) )

2. 找出借书超过5本的读者,输出借书卡号及所借图书册数。

SELECT CNO,借图书册数=COUNT(*) FROM BORROW GROUP BY CNO HAVING COUNT(*)>5

3. 查询借阅了\水浒\一书的读者,输出姓名及班级。

select cname,class from card

where cno in (

select cno from borrow where bno=(select bno from books where bname ='水浒') )

4. 查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

select * from borrow where rdate

5. 查询书名包括\网络\关键词的图书,输出书号、书名、作者。

select bno,bname,author from books

where bname like '%网络%'

6. 查询现有图书中价格最高的图书,输出书名及作者。

select bname,author from books

where price in (select max(price) from books)

7. 查询当前借了\计算方法\但没有借\计算方法习题集\的读者,输出其借书卡号,并按卡号降序排序输出。

8. 将\班同学所借图书的还期都延长一周。

update borrow set rdate=dateadd(dd,7,rdate);

UPDATE b SET RDATE=DATEADD(Day,7,b.RDATE) FROM CARD a,BORROW b WHERE a.CNO=b.CNO

AND a.CLASS=N'C01'

9. 从BOOKS表中删除当前无人借阅的图书记录。

10.建立一个视图,显示\力01\班学生的借书信息(只要求显示姓名和书名)。 11.查询当前同时借有\计算方法\和\组合数学\两本书的读者,输出其借书卡号,并按卡号升序排序输出。

12.假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句。 13.对CARD表做如下修改:

a. 将NAME最大列宽增加到10个字符(假定原为6个字符)。 b. 为该表增加1列NAME(系名),可变长,最大20个字符。

14.创建一个触发器,要求库存册数在输入时不能为负数,如果为负数则取消操作。

五、现有图书借阅关系数据库如下:

图书(图书号、书名,作者,单价,库存量) 读者(读者号,姓名,工作单位,地址) 借阅(图书号,读者号,借期,还期,备注) 其中:还期为NULL表示该书未还。 用关系代数表达式实现下列1-4小题:

1、检索读者号为R016的读者姓名、工作单位;

select 姓名,工作单位from 读者where 读者号='R016'

2、检索借阅图书号为B5的读者姓名;

select 姓名from 读者

where 读者号in (select 读者号from 借阅where 图书号='B5')

3、检索读者“李林”所借图书的书名;

select 图书.书名from 图书,读者,借阅where 读者.姓名='李林'and 读者.读者号=借阅.读者号and 借阅.读书号=图书.图书号

4、检索读者“李林”所借图书中未还的书名;

select 图书.书名from 图书,读者,借阅where 读者.姓名='李林' and 还期is null and

读者.读者号=借阅.读者号and 借阅.读书号=图书.图书号

用SQL语言实现下列5-10小题:

5、检索读者号为R016的读者姓名、工作单位; 6、检索借阅图书号为B5的读者姓名; 7、检索读者“李林”所借图书的书名; 8、检索读者“李林”所借图书中未还的书名; 9、将读者“李林”所借图书的信息从借阅表中删除;

delete from 借阅

where 读者号in (select 读者号from 读者where 姓名='李林')

10、建立未还图书的读者姓名和单位视图。

create view viewname as select 读者.姓名,读者.工作单位 from 读者,借阅

where 读者.读者号=借阅.读者号and 还期is null

六、操作题

有如下三个关系R、S、T,请写出下列表达式的运行结果。

R表 A a b c e A c b b e B b B b d b d B a a d d C c B>’c’(R)

C c a c b C c c a b S表

T表 (1)σ

A b e B d d C a b

(2)σ A b e B d d B>’c’ ∧A>’a’(R)

C a b

(3)∏C(S) C c c a b

(4)R×S

A a a a a b b b b c c c c

B b b b b d d d d b b b b C c c c c a a a a c c c c A c b b e c b b e c b b e B a a d d a a d d a a d d C c c a b c c a b c c a b

本文来源:https://www.bwwdw.com/article/g99d.html

Top