数据库技术期末考试
湖北汽车工业学院科技学院数据库技术A考试试卷(题)
请将答案填在如下表中
一、选择题(2*30=60分)
1、JSP文件在第一次运行的时候被JSP引擎编译为( A )文件。
AServlet B JSP CHTML DXML
2、商店可经营多种商品,一种商品可由多家商店经营,商店和商品之间属于(B)联系。
A M∶1BM∶N C1∶M D1∶1
3、关系数据库系统中所管理的关系是(D)。
A一个mdb文件B若干个mdb文件
C一个二维表D若干个二维表
4、JSP规范唯一支持的语言是( C)。
AC# BC++ CJava DBasic
5、在关系代数的专门关系运算中,从表中选出满足某种条件的元组的操作称为(A)
A选择B投影C连接D扫描
关系是一张表,表中的每行就是一个元组,每列就是一个属性
关系代数分为传统的集合运算和专门的关系运算。
传统的集合运算:并、交、差、广义笛卡尔积
专门的关系运算:选择、投影、连接、除
选择:选出满足条件的元组,例如年龄大于20的学生的学生信息,列数不变
投影:选出指定列的数据,例如选出学生表中的姓名,年龄信息
并交差和数学中的类似
6、下面关于MVC的说法不正确的是(D)
AM表示Model层,是存储数据的地方
BView表示视图层,负责向用户显示外观
CController是控制层,负责控制流程
D 在MVC 架构中jsp 通常做控制层 JSP 一般做显示层
7、 关系数据语言根据其理论的不同可分为两大类(A )。
A 关系代数和关系演算
B 实体代数和客体演算
C 规则演算和规则代数
D 元组关系和域关系 8、 关系模式进行投影运算后:(C )
A 元组个数等于投影前关系的元组数
B 元组个数小于投影前关系的元组数
C 元组个数小于或等于投影前关系的元组数
D 元组个数大于或等于投影前关系的元组数 9、 关系模型中,一个关键字(C )。 A 可由多个任意属性组成 B 至多由一个属性组成 C 可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成 D 以上都不是
10、 使用E-R 图方法的三要素是( C )。
A 实体,属性,主健
B 实体,域,候选码
C 实体,属性,联系
D 实体,健,联系 11、 客观存在并可相互区别的事物都称为(A )。
A 实体
B 属性
C 关键字
D 域 12、 在数据库设计中,将
E -R 图转换成关系数据模型的过程属于(C )
A 需求分析阶段
B 概念设计阶段主要采用E-R 模型进行设计,包括画E-R 图
C 逻辑设计阶段
D 物理设计阶段
13、 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于(C )
A 实体完整性约束 行与行的数据不重复
B 参照完整性约束 例如外键
C 用户自定义完整性约束设置学号几位,性别只能为男女
D 关键字完整性约束 即主键
14、 如下图所示,两个关系R1和R2,它们进行(D )运算后得到R3。 A 交 B 并 C 笛卡尔积 D 连接
R1 R2 R3
15、 在SELECT 语句中,需要对分组情况应满足的条件进行判断时,应使用(D )
A WHERE
B GROUP BY 分组
C ORDER BY 排序
D HAVING
16、 基本表也称关系或表,是数据库中独立存在的表,它是由(B )命令创建的。
ACREATE VIEW BCREATE TABLE
CCREATE INDEX DCREATE ATEM
17、事务是用户定义的一组操作序列的集合,是数据恢复和(B)的基本单位。
A一致性操作B并发控制C原子操作D持续性操作
18、关于触发器的说法不正确的是(D )。
A触发器类似于约束,但比约束灵活,可以实施比FOREIGN KEY更复杂的检查和操作
B触发器一旦在表上定义,任何用户对表的增删改操作均由服务器自动激活相应的触发器
C触发器是一种特殊的存储过程
D执行触发器与执行存储过程一样需要调用
19、已知成绩关系如图1所示。执行SQL语句:
SELECT COUNT(DISTINCT学号)
FROM成绩
WHERE分数>70;查询结果中包含的元组数目是()
成绩表
图1
A 1
B 2
C 3
D 4
20、已知关系:厂商(厂商号,厂名)PK=厂商号
产品(产品号,颜色,厂商号)PK=产品号,FK=厂商号假设两个关系中已经存在如图2所示元组:
厂商产品
图2
若再往产品关系中插入如下元组:
I(P03,红,C02)II(P05,黑,null)
III(P04,白,C04)IV(P01,蓝,C01)
能够插入的元组是(C)
A I,II,IV
B I,III
C I,II
D I,IV
21、若关系R属于第一范式,且每个属性都不传递依赖于键码,则R属于(B)
A 第二范式消除部分函数依赖
B 第三范式消除传递函数依赖
C BC范式
D 第四范式
22、在关系数据库的询问优化中,事先处理文件,如排序、建立索引的目的是( D )
A 优化表达式;
B 减少中间结果;
C 扩大缓冲数据;
D 减少扫描文件的时间;
23、用于数据库恢复的重要文件是(C)
A数据库文件B索引文件C日志文件D备注文件
24、使用数据源时,数据库驱动程序的.jar文件应该放在()。
WEB-INF/lib下
的common\lib下
25、负责处理驱动的调入并产生对新的数据库连接支持的接口是( A )。
ADriverManager 负责处理驱动的调入
B Connection 连接数据库对象
C Statement 创建SQL命令对象
DResultSct 返回SQL语句查询结果集(集合)
26、下面不是Servlet方法的是( C)。
A doTrace() BdoPost() CdoRead() DdoOptions()
27、在JSP中使用JDBC语句访问数据库,正确导入SQL类库的语句是(A)。
A<%@ page import=”java.sql.*” %> B<%@ page import=”sql.*” %>
C<%page import=”java.sql.*” %> D<%@ import=”java.sql.*” %>
28、假设在myServlet应用中有一个MyServlet类,在web.xml文件中对其进行如下配置:
则以下选项可以访问到MyServlet的是( D )。
A http://localhost:8080/MyServlet
B http://localhost:8080/myservlet
Chttp://localhost:8080/com/wgh/MyServlet
D http://localhost:8080/ welcome
29、当访问一个Servlet时,以下Servlet中的哪个方法先被执行?( C )
用户请求一个Servlet,Servlet容器自动构建请求和响应对象,然后执行Servlet的service()方法,该方法会接收请求和响应对象
Adestroy() BdoGet() Cservice() Dinit0
30、Servlet的运行过程是 A
A当请求Servlet时,服务器会即时加载Servlet类,然后对该类进行实例化,调用相应的方法处理请求
B首先对Servlet 进行配置,然后服务器在处理请求时,将配置过的Servlet类找到,然后实例化处理请求
C在服务器启动时,会加载Servlet,然后在处理请求的时候,实例化Servlet对象处理请求
DServlet是一个具有接受请求和响应功能的类,在被请求时,Servlet早就被实例化好了,可以直接处理请求
二、简答题:(2*5=10分)
1、什么是JDBC,它有什么作用,为什么要提出它?
JDBC是一种执行SQL语句的JA V A API,是一组由Java语言编写的类和接口组成
为关系数据库提供访问,简单的说就是做三件事,与数据库建立连接、发送操作数据库的语句并处理结果
因为JDBC中有驱动,所以访问数据库时就可以直接通过JDBC 来访问
2、什么情况下调用doGet()方法,什么情况下调用doPost()方法?
调用doGet():直接地址栏输入URL,或者超链接,或者form的method为默认或get。
调用doPost():Form的method为post时。
三、综合设计题:(20分)
1.设有下列关系模式:
STUDENT(NO,NAME,SEX,BIRTHDAY,CLASS)
TEACHER(NO,NAME,SEX,BIRTHDAY,PROF,DEPART)
COURSE(CNO,CNAME,TNO)
SCORE(NO,CNO,DEGREE)
其中,学生信息表STUDENT由学号(NO)、学生姓名(NAME)、性别(SEX)、出生年月日(BIRTHDAY)、班级(CLASS)组成,记录学生的情况;教师信息表TEACHER由教师号(NO)、教师姓名(NAME)、性别(SEX)、出生年月日(BIRTHDAY)、职称(FROF)、教师所在系(DEPART)组成,记录教师的情况;课程表COURSE由课程号(CNO)、课程名称(CNAME)、任课教师号(TNO)组成,记录所开课程及任课教师情况;成绩表SCORE 由学生学号(NO)、课程号(CNO)、成绩(DEGREE)组成,记录学生选课情况及相应的成绩。用SQL语句实现以下操作
1)显示STUDENT表中每个学生的姓名和出生日期。
Select name,birthday from student
2)显示STUDENT表中所有姓“王”的学生记录。
Select * from student where name like…王%?
3)显示成绩表中成绩在60分到80分之间的所有记录。
Seclect * from score where degree>60 and degree<80
4)显示“男”教师及其所上的课程。(显示该教师的姓名和所上的课程名)
Select name,cname from student as a,course as b
Where a.no=b.tno and a.sex=?男?
5)向STUDENT表中插入一条学生记录。(学号:999,姓名:程功,性别:男,出生年月日:10/01/80,班级:95035)
Insert into student values (999,程功,男,10/01/80,95035)
6)在STUDENT表中将学号为“999”的学生的班号改为“95031”
Update student set class=?95031?where No=?999?
7)在STUDENT表中删除学号为“999”的学生记录。
Delete * from student where No=’999’false
不加*号Delete from student where No=’999’
或者Delete student from student where No=’999’
2
1、试问R属于第几范式?为什么?(5分)
2、并将其规范化为3NF,将规范后的关系表写出来(5分)
第二范式:消除了非主属性对码的部分函数依赖1NF->2NF
第三范式:消除主属性对码的传递函数依赖2NF->3NF
1.属于第二范式
2.
四、程序设计题(10分)
设计一个插入单位表的页面insert.jsp以及提交后的插入处理程序insert.do,并使用插入语句插入相关信息。
Insert.jsp页面仅写下form表单中的相关程序,程序不需要对表单中的信息作检查,insert.do 程序仅填写doPost中的相关程序。
单位表的名字为dept,它有两列,deptID,类型为char(2),deptName,类型为nvarchar(50)
数据库服务器地址为:exam,端口号为:8888。数据库名为dept,用户名为:sa,密码为:123,数据库驱动程序全称为:com.microsoft.sqlserver.jdbc.SQLServerDriver
insert.jsp页面代码
<%@ page language="java" import="java.sql.*,java.io.*,java.util.*" %>
<%@ page contentType="text/html;charset=utf-8"%>
//请填写form表单中的程序