数据库原理与应用试题 下载本文

(2). 对学生表,列出年龄在15~17岁之间的学生名单。(2分)

(3). 创建视图V1,用于显示各系的平均年龄,【即显示(系号,平均年龄)。】(3分) (4). 创建存储过程,取名为Proc_1 , 用于修改某学生年龄的存储过程,其学号,年龄要求以参数输入(员学号类型为:char(10);年龄类型为:@score int)。(3分)

(5). 为学生表 创建一个名为test_tr的触发器,当执行添加、更新或删除时,激活该触发器,触发时要求显示插入,删除临时表。(3分)

答案:

1.(共5分) 答案

(1) (共1分) R的候选码是:A (2) (共2分)

R最高属于第2(2NF)范式。

理由:关系模式R(U,F)中不存在非主属性对码的部分函数依赖。 (3) (共2分) 分解如下:

R1(A,B,C),主码:A R2(B,D), 主码:B R3(C,D,E), 主码:(C,D) R4(E,B), 主码:E

2、(共13分)

根据以下学生表,写SQL语句完成以下任务:

1. 向学生表增加一条数据,(004,张三丰,D01,16)(2分) INSERT INTO 学生表 ----------- 0.5分

(学号,姓名, 系号, 年龄) -------------0.5’

VALUES (‘004’,’张三丰’,’D01’,16) -----------1 分 2.. 对学生表,列出年龄在15~17岁之间的学生名单。(2分)

SELECT * FROM 学生表 ----------- 1分

WHERE 年龄 BETWEEN 15 AND 17 ----------- 1分 (语句中的WHERE子句还有等价的形式,或为以下: WHERE年龄 >=15 AND年龄 <=17) 3. 创建视图V1,用于显示各系的平均年龄,【即显示(系号,平均年龄)。) (3分)

CREATE VIEW V1 AS ----------- 0.5分

SELECT 系号,avg(年龄) as 平均年龄 ----------- 1分 FROM 学生表 ----------- 0.5分 GROUP by 系号 -----------1分

4. 创建存储过程,取名为Proc_1 , 用于修改某学生年龄的存储过程,其学号,年龄要求以参数输入(员学号类型为:char(10);年龄类型为:@score int)。(3分)

CREATE PROCEDURE Proc_1 -----------0.5 分 @sid char(10), @score int ----------- 1分 AS --------- 0.5分 UPDATE 学生表

SET 年龄=@score ----------- 0.5分 WHERE 学号=@sid ----------- 0.5分

5. 为学生表 创建一个名为test_tr的触发器,当执行添加、更新或删除时,激活该触发器,触发时要求显示插入,删除临时表。(3分)

CREATE TRIGGER test_tr ----------- 0.5分

ON 学生表 FOR INSERT,UPDATE,DELETE -----------1 分 AS --------- 0.5分

SELECT * FROM inserted ----------- 0.5分 SELECT * FROM deleted ----------- 0.5分

1、(共5分) 分析如下的问题:有关系模式R(U,F), 属性集U={A,B,C,D,E}, 函数依赖集合F={AB->C, C ->D, D->E },请回答如下的问题: (1) R最高属于第几范式? 说明理由; (2) R属于第三范式?说明理由,若是第三范式就不用分解,否则分解成符合第三范式的模式。 2、(共13分)“教学”数据库中有三个表:学生表(学号,姓名,性别,生日),课程表(课程号,课程名,学分),成绩表(学号,课程号,成绩),写SQL语句完成以下任务: (1) 向学生表增加一条数据,(0930200001,张三,男,1990-3-5)。(2分) (2) 在课程表中,查询课程号为‘NN1008’的课程名和学分。(2分) (3) 创建视图V1,用于显示各学生的平均成绩,【即显示(学号,平均成绩)。)。(3分) (4) 创建存储过程,取名为Proc_1 , 用于修改某课程名的存储过程,其课程号,课程名

要求以参数输入(员课程号类型为:@sid char(10);课程名类型为:@score char(10))。(3分)

答案:

1、

答案(共5分) (1) (共2分)、

R最高属于2NF范式。

理由:关系模式R(U,F)的主码是(A,B),非主属性存在对码的传递函数依赖AB->C, C ->D, D->E。

(2) (共3分)、 R不属于第三范式,

理由:关系模式R(U,F)的主码是(A,B),非主属性存在对码的传递函数依赖AB->C, C ->D, D->E。

分解为符合第三范式的关系模式集合如下: R1(A,B,C) R2(C,D) R3(D,E) 2、(共13分)

(1) (2分)向学生表增加一条数据,(0930200001,张三,男,1990-3-5)。 INSERT INTO 学生表---------------0.5分 (学号,姓名,性别,生日)-------------0.5分

VALUES (‘0930200001’,’张三’,’男’,’1990-3-5’)--------1分 (2) (2分)在课程表中,查询课程号为‘NN1008’的课程名和学分。 SELECT 课程名,学分 FROM 课程表 ----1分 WHERE 课程号=’NN1008’-----1分

(3) (3分) 创建视图V1,用于显示各学生的平均成绩,【即显示(学号,平均成绩)。)。

CREATE VIEW V1 AS ----------- 0.5分

SELECT 学号,avg(成绩) as 平均年龄 ----------- 1分 FROM 成绩表 ----------- 0.5分 GROUP by 学号 ----------- 1分

(4) (3分)创建存储过程,取名为Proc_1 , 用于修改某课程名的存储过程,其课程

号,课程名要求以参数输入(员课程号类型为:@sid char(10);课程名类型为:@score char(10))。

CREATE PROCEDURE Proc_1 -----------0.5 分

@sid char(10), @score char(10)----------- 1分 AS ---- 0.5分 UPDATE 课程表

SET 课程名=@score ----------- 0.5分 WHERE 课程号=@sid ----------- 0.5分

五、设计题(共14.5分) 例如,某工厂的物资库存管理 该系统涉及的实体有:

仓库 属性有仓库号、面积、位置、电话号码。 零件 属性有零件号、名称、规格、单价、描述。 产品 属性有产品号、名称、生产日期、单价、描述。 职工 属性有职工号、姓名、性别、年龄、职称。 这些实体之间存在如下联系:

一个仓库可以存放多种零件,一种零件也可以存放在多个仓库中,某个仓库存放某种零件会有一个库存量。

一个仓库可以存放多种产品,一种产品也可以存放在多个仓库中,某个仓库存放某种产品会有一个存放量。

一种零件可以用在多种产品上,一种产品也由多种零件制造而成,某种产品使用某种零件会有一个使用量。

一个仓库有多名职工,但一名职工只能在一个仓库工作。

在这些职工中,除仓库主任外,其他职工都被自己所在仓库的仓库主任直接领导。

根据上述关系:

(1) 请设计E-R模型,要求标注几对几的联系,可省略属性。

(2)写出关系数据库的逻辑模型(要求标注主码和外码,主码用实下划线_____,外码用波浪线。 答案 (1)

(2)

仓库表(仓库号、面积、位置、电话号码) 主键:仓库号

库存表(仓库号、零件号、库存量) 主键:仓库号、零件号 外键:仓库号;零件号

零件表(零件号、名称、规格、单价、描述) 主键:零件号

存放表(仓库号、产品号、存放量) 主键:仓库号、产品号 外键:仓库号;产品号

产品表(产品号、名称、生产日期、单价、描述) 主键:产品号

使用表(零件号,产品号,使用量) 主键:零件号,产品号 外键:零件号;产品号

职工表(职工号、仓库号、姓名、性别、年龄、职称) 主键:职工号、仓库号