江苏开放大学数据库技术及应用(专)第三次形成性考核作业

一、选择题(每题2分,共30分)

1.为了使索引键的值在基本表中唯一,在创建索引的语句中应使用保留字( d  )。

A .UNIQUE B. CLUSTER C .DISTINCT D. UNION

2.创建索引是为解决关系数据库中(  b )问题而引入的。

  1. 插入、删除异常和数据冗余 B. 提高查询速度
  2. 减少数据操作的复杂性 D. 保证数据的安全性和完整性

3.关系数据库中,为了简化用户的查询操作,而又不增加数据冗余,常用方法是创建( c  )。

  1. 视图 B. 新表 C. 索引 D. 属性

4.以下关于视图的描述中,错误的是(  b  )。

A . 视图是虚表

  1. 可以对任何视图进行任意的修改操作

C .视图能够对数据库提供安全保护作用

  1. 视图对重构数据库提供了一定程度的独立性

5.下列关于视图的描述,(  a )是不正确的。

  1. 视图对应外模式 B. 视图是虚表
  2. 视图可以加快查询的执行速度 D. 视图可以简化查询语句的编写

6.数据的安全性是指(  a )。

  1. 防止数据被非法使用 B. 数据的存储和使用数据的程序无关
  2. 数据的正确性、一致性 D. 减少重复数据

7.DBMS提供授权功能来控制不同用户访问数据的权限,这是为了实现数据库的(  c )。

  1. 可靠性 B. 一致性 C. 安全性 D. 独立性

8.下列各项,( a  )不属于SQL Server的安全控制体系结构。

  1. 登录名 B. 数据库用户 C. 规则 D. 数据库对象权限

9.在SQL Server中,为便于管理用户及权限,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为( b  )。

  1. 账户 B. 角色 C. 登录名 D. SQL Server用户

10.SQL Server中,要定义产品的数量随出入库单的增加而变化,应使用( c  )实现。

  1. 规则 B. CHECK约束 C.触发器 D.存储过程

11.日志文件是用于记录( b  )。

  1. 程序运行的过程 B. 对数据库所有的更新操作
  2. 程序执行的结果 D. 用户对数据库的访问信息

12.下列各个T-SQL标识符,( c )是合法的。

  1. _AbC B. A B C. AS D. 2S

13.下列有关T-SQL中局部变量的说法,(b   )是不正确的。

  1. 局部变量要先声明后使用 B. 局部变量的作用域是一个批处理
  2. 局部变量名以@开头 D. 局部变量赋值语句形如:名=值

14.下列有关SQL Server中存储过程的说法,(  b )是不正确的。

  1. 存储过程可以有多个输入参数 B. 存储过程可以有多个输出参数
  2. 系统存储过程的前缀是sp_ D. 存储过程由事件驱动执行

15.下列有关SQL Server中触发器的说法,(  c )是不正确的。

  1. 触发器由事件驱动执行 B. 创建触发器时必须定义驱动事件
  2. 执行触发器时要说明触发器名 D. 触发器能对表实现复杂的数据完整性约束

二、应用题(共70分)

  1. (每小题5分,共20分)

设工程-零件数据库有4个基本表,

供应商(供应商代码,名称,城市)

零件(零件代码,零件名,颜色,产地)

工程(工程代码,工程名,预算)

供应情况(供应商代码,零件代码,工程代码,数量)

请使用T-SQL语句完成下列操作。

(1)为“造船厂”工程建立供应情况视图“V_SPJ”,包括供应商代码、供应商名称、零件代码、供应数量等信息。

Create view V_SPJ

As

Select a.供应商代码,a.名称 , b.零件代码,b.数量 from 供应商 as a join 供应情况 as b on

  1. 供应商代码 = b.供应商代码

(2)在工程表的预算和工程名上创建组合索引“IX_J”,预算降序,工程名升序。

create index 索引名 on 工程(预算 desc);

create index 索引名 on 工程(工程名 asc);

(2)创建规则对象“R_COLOR”,限制“颜色”只能是“红”、“黄”、“蓝”,并将该规则绑定到零件表的“颜色”列上。

create rule R_COLOR as 零件.颜色 in (‘红’,’黄’,’蓝’)

(4)创建默认值对象“D_CITY”,其值为“南京”,将其绑定到供应商的“城市”列上。

ALTER TABLE 供应商

ADD CONSTRAINT D_CITY名 DEFAULT(‘南京’) FOR 城市

  1. (每小题10分,共50分)

设学生管理数据库有3个基本表,

学生(学号,姓名,性别,专业,总学分)

课程(课程号,课程名,学分)

选课(学号,课程号,分数)

(1)创建并执行存储过程p_course_grade,将指定课程成绩大于55小于60的都提高到60分,并显示该课程的选修学生姓名和成绩。执行该存储过程,以修改并显示004号课程的成绩信息。

USE

学生信息

CREATE TABLE

学生                                 (

学号

INT CONSTRAINT pk_xh PRIMARY KEY

,姓名

CHAR(10) NOT NULL CONSTRAINT uk_xm UNIQUE,

性别 CHAR(2) NULL CONSTRAINT df_xb DEFAULT ’

男’,专业 CHAR(20) NULL,班级CHAR(12) NULL,

备注TEXT NULL)

(2)创建存储过程p_grade,查询指定学号和课程号的分数,作为结果返回。执行该存储过程,查询10103号学生001号课程的分数,要求根据返回信息做如下处理:如返回空值显示“无指定成绩信息”,否则显示“成绩是XX”。

select Student.sno,sname,isnull(lname,”) as lname,isnull(grade,0) as grade

from Student left join SC on Student.sno=SC.sno

left join Lesson on SC.lno=Lesson.lno and

where SC.sname=@sname

(3)创建触发器“T_credit”,功能为:当用户在选课表中插入或修改一条学生成绩信息时,自动更新学生表中该生的总学分(设成绩60分以上能得到学分)。设计一条语句激活该触发器。

select c.studentid,c.studentname,a.coursename,case when result>=80 then ”优秀‘’

when result >=60 then”及格’’ else ”不及格‘’ end result -from sc a left join student b on a.studentid=b.studenid

left join course c on a.courseid=c.courseid

where c.coursename=’+@coursename+’

‘)

(4)创建触发器“T_student”,功能为:当删除学生表中的某条学生信息时,如果该生不是“计算机应用”专业的学生,则自动删除选课表中该学生的成绩信息;否则撤销删除操作,并给出提示信息“不能删除计算机应用专业的学生信息!”。设计一条语句激活该触发器。

select sum(chengji1 +chengji2 + … + chengjiN )/ n as num,xuefen into

@num, @xuefen from table where xuehao = shuruxuehao;/*chengji 是各科成绩的字段*/

if num >=60 then

set shuchuxuefen = @xuefen;

else

set shuchuxuefen = 0;

(5)设计函数“F_avg”,接受专业名和课程名,返回该专业学生该门课程的平均分。调用该函数获得“软件”专业学生“数据库”课程的平均分。

SELECT `cno`,`cname` FROM table WHERE sno=sno;

END;

资源下载
下载价格10
点点赞赏,手留余香 给TA打赏
支持多种货币
支持多种货币付款,满足您的付款需求
7天无忧退换
安心无忧购物,售后有保障
专业客服服务
百名资深客服7*24h在线服务
发货超时赔付
交易成功极速发货,专业水准保证时效性

站点公告

开放大学课程作业辅导,有需要扫码加微信

显示验证码

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录