《数据库原理与应用》课程试卷 下载本文

位教师只属于一个学院,每个学院有多名教师。

(1)写出R关系的主码,分析非主属性对主码的函数依赖。(4分)

(2)利用规范化理论对R分解,使分解后的每个关系模式达到3NF。(3分)

四、PL/SQL编程题(每小题8分,共16分) 得分: 分 某单位有工资发放表如下:

工资发放表(职工号,职工姓名,月份,岗位工资,薪级工资,住房补贴,岗位津贴,住房公积金,会费,应发工资,实发工资)

在工资发放表中,岗位工资、薪级工资、住房补贴和岗位津贴四项为发放项,住房公积金和会费为扣除项,应发工资为发放项之和,实发工资为应发工资减去扣除项。

1.用PL/SQL语言编写存储过程,根据调用时提供的月份,查询当月所有员工的工资发放信息,将工资发放信息输出到输出窗口。 (1)创建存储过程

第 5 页 共 9 页

(2)调用存储过程查询2014年1月份的工资,输入值为“2014-01”。

2.创建触发器,实现对工资发放表插入和修改数据时,系统自动计算并录入应发工资和实发工资属性列的值。

第 6 页 共 9 页

五、SQL语句题(共24分) 得分: 分 某图书馆数据库中有下面三个关系:

借书卡 (借书卡号,姓名,性别,所在学院,借阅期限) 图书 (图书编号,书名,作者,出版社,价格,库存册数) 借书记录 (记录编号,借书卡号,书号,借书日期,还书日期)

注:“借阅期限”指读者借书的最长时间,以天为单位;库存册数随借书、还书而改变。

1.写出下列操作的关系代数:(每小题3分,共9分) (1)查询“李伟”借阅的所有书的书名和作者;

(2)查询借阅了图书编号为“N-62/1”和“N161.7/2”的借书卡号。

第 7 页 共 9 页

(3)删除借书卡号为“2007114589”的所有借阅信息。

2.写出下列操作的SQL语句:(每小题3分,共15分) (1)查询借书超过5本的借书卡号。

(2)查询所有超期未还的借阅记录。

(3)查询书名中包括“Oracle 12c”的所有书籍的书名,作者和出版社。

第 8 页 共 9 页

(4)将所有学院为“研究生院”借书卡的借阅期限增加一个月。

(5)创建一个反映“信息”学院学生借书情况的视图,视图结构如下:

Borrow_xx(姓名,性别,借阅期限,书名,借书日期,还书日期)

第 9 页 共 9 页