当前位置:文档之家› 第4次作业及答案

第4次作业及答案

第4次作业及答案一、单项选择题(每个题只有一个答案是正确的。

)1.如果希望从学生表中查询出所有姓“李”的同学,那么条件语句应该是(B)。

A、Where 姓名% ‘李’B、Where 姓名LIKE ‘李%’C、Where 姓名% ‘LIKE李’D、Where 姓名LIKE ‘李’2.在一个教师关系中,能够成为主关键字(或称主码)的属性是(B)。

A、教师姓名B、教师编号C、教师年龄D、教师性别3.从最终用户应用程序的视角看,数据库系统的三级模式结构是(C)。

A、模式、外模式和内模式B、内模式、外模式和模式C、外模式、模式和内模式D、外模式、内模式和模式4.在一个学生关系中,能够成为主关键字(或称主码)的属性是(C)。

A、性别B、年龄C、学号D、班级5.有严格的数学基础的数据模型是(A)。

A、关系模型B、网状模型C、层次模型D、面向对象模型6.下列关于索引的说明不正确的是(A)。

A、索引必须创建在主关键字之上B、索引与基本表分开存储C、索引是为了提高查询速度而创建的D、索引会在一定程度上影响增删改操作的效率7.设关系R是满足第一范式的,若R中不存在非主属性对主键的部分函数依赖,则R 符合(A)。

A、第二范式B、第三范式C、BNC范式D、第四范式8.下列符合第三范式的关系是(D)。

A、学生(学号,姓名,课程号,课程名)B、学生(学号,姓名,课程名,成绩)C、学生(学号,姓名,课程号,成绩)D、学生(学号,姓名,性别)9.在第一个关系中出现,而在第二个关系中不出现的记录组成的新关系称为(D)。

A、两个关系的积B、两个关系的并C、两个关系的交D、两个关系的差10.数据库应用程序开发中,需求分析阶段的主要目的是(A)。

A、回答“干什么”的问题B、回答“怎么干”的问题C、建立逻辑数据模型D、建立最佳物理存储结构11.用户使用SQL Server时,通常需要依次经过两个安全性阶段(C)。

A、登录验证、操作验证B、操作验证、登录验证C、身份验证、权限认证D、权限认证、身份验证12.SQL Server数据库中的一个完整的备份通常要包括(A)。

A、系统数据库、用户数据库和事务日志B、系统数据库、系统表和数据字典C、系统数据库、用户数据库和数据字典D、用户数据库和事务日志13.下列哪些不属于索引的类型(D)。

A、单列索引B、惟一索引C、聚集索引D、事务日志索引14.下列SQL语句中,能够完成并运算的是(A)。

A、SELECT * FROM 篮球爱好者UNIONSELECT * FROM 足球爱好者B、SELECT * FROM 篮球爱好者INTERSECTSELECT * FROM 足球爱好者C、SELECT * FROM 篮球爱好者EXCEPTSELECT * FROM 足球爱好者D、SELECT * FROM 篮球爱好者,足球爱好者15.设学生表和课程表的结构分别为(学号,姓名)和(学号,课程号,成绩),如果希望查询出“成绩大于90分的学生姓名”,则对应的SQL语句是(D)。

A、SELECT 姓名FROM 学生表WHERE 学生表.学号=课程表.学号AND 课程表.成绩>90B、SELECT 姓名FROM 课程表WHERE学生表.学号=课程表.学号AND 课程表.成绩>90C、SELECT 姓名FROM 学生表,课程表WHERE 学生表.学号=课程表.学号OR 课程表.成绩>90D、SELECT 姓名FROM 学生表,课程表WHERE 学生表.学号=课程表.学号AND 课程表.成绩>90二、填空题1.数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级抽象模式构成。

2.备份是指将数据从硬盘复制到可移动媒体上的过程。

3.“实体一联系”方法是描述数据库概念模型的主要方法,一般称这种方法为E-R方法(或E-R图方法)。

4.用户使用SQL Server数据库时,一般需要经过两个安全性阶段:身份验证和权限认证。

5.E-R图设计一般在数据库设计的概念设计阶段使用。

三、判断题(正确的在括号内打上“√”,错误的打上“╳”。

)1.能够惟一表示数据表中的每条记录的字段或者字段的组合称为主码或主键(√)。

2.SQL Server数据库中的NULL值(空值)表示的是“空格”或“0”值(╳)3.一个不规范的关系模式通常会引发插入异常、删除异常和更新异常,导致大量的数据冗余。

(√)4.根据索引的特点,应该对那些数据量大、查询频度较高、实时性要求强的基本表创建索引,(√)5.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。

(√)6.参照完整性规则通常是指在两个参照和被参照关系中,参照关系中每条记录的外键或者为空,或者等于被参照关系中某条记录的主键。

(√)四、简述题1.请简要说明视图的概念和作用参考答案:视图是在基本表或其他视图上建立的表,它的结构和内容都来自某个基本表,是依据基本表存在而存在的。

删除一个视图时,不会对基本表产生任何影响,但当删除一张基本表时,与之相关联的视图就会自动被删除。

其作用主要是:(1)视图是经过预编译的SELECT语句,存储在数据库服务器端,因此执行视图比从客户端直接执行SELECT语句速度更快、效率更高一些。

(2)视图属于用户模式范畴,在实际中,一般的用户不一定具有SELECT语句方面的专门知识,从用户友好性角度来说,视图更便于用户使用。

(3)利用视图可以简化的形式表达复杂的SELECT语句组,如嵌套查询等。

2.什么是函数依赖与函数决定,请举例说明参考答案:设一个关系为R,X和Y是它的两个属性集。

若对于X上的每个值都有Y上的一个惟一值与之对应,则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数依赖于X,称X为决定因素。

假设一个职工关系为(职工号,姓名,性别,年龄,职务),职工号用来标识每个职工,选作该关系的主键。

我们可以从以下两方面理解函数依赖的概念:首先,对于该关系中每个职工的职工号,都对应着姓名属性中的惟一值,即该职工的姓名,或者说一个职工的姓名由其职工号惟一确定,所以称职工号函数决定姓名,或称姓名函数依赖于职工号。

其次,除职工号外,其他属性都不能成为决定因素形成函数依赖,因为对于它们的每个属性值,都可能对应另一属性的多个不同的取值,比如对于性别属性的一个取值“男”就会对应多个而不是一个职工号。

3.请简要说明存储过程的概念和优点。

参考答案:存储过程(Stored Procedure)是一组预先编译好的,以一种可执行的形式永久地存储在数据中的SQL代码。

使用存储过程的好处可归纳为以下几点:(a)执行速度快。

在经过第一次调用以后,就驻留在内存中,不必再经过编译和优化;(b)模块化的程序设计。

经过了一次创建以后,可以被调用无数次;(c)减少网络流量;(d)保证系统的安全性。

五、综合应用题1.设有有以下基本表:(1)供应商表(供应商编号,供应商名称,供应商所在城市);(2)零件表(零件编号,零件名称,零件颜色,零件重量);(3)工程项目表(工程编号,工程名称,工程所在城市);(4)工程供货表(工程编号,供应商编号,零件编号,零件数量)。

用SQL语言写出下列查询语句,(1)查询所有工程的全部细节:SELECT * FROM 工程项目表(2)查询所在城市为上海的所有工程的全部细节SELECT * FROM 工程项目表WHERE 工程所在城市=’上海’(3)查询重量最轻的零件代号SELECT 零件编号FROM 零件表WHERE 零件重量=(SELECT MIN(零件重量) FROM 零件表)(4)查询为工程编号为“JG2008001”的工程提供零件的供应商编号SELECT 供应商编号FROM 工程供货表WHERE 工程编号=’JG2008001’(5)查询为工程编号为“JG2008001”的工程提供零件编号为“P1”的供应商编号SELECT 供应商编号FROM 工程供货表WHERE 工程编号=’JG2008001’ AND 零件编号=’P1’(6)查询由供应商编号为S1的供应商提供零件的工程名称SELECT 工程项目表.工程名称FROM 工程项目表,工程供货表WHERE 工程项目表.工程编号=工程供货表.工程编号AND 工程供货表.供应商编号=’S1’(7)查询供应商S1提供的零件的颜色SELECT DISTINCT零件表.零件颜色FROM零件表,工程供货表WHERE 零件表.零件编号=工程供货表.零件编号AND 工程供货表.供应商编号=’S1’(8)查询为所在城市为上海的工程提供零件的供应商编号SELECT DISTINCT 工程供货表.供应商编号FROM 工程项目表,工程供货表WHERE 工程供货表.工程编号=工程项目表.工程编号AND 工程项目表.工程所在城市=’上海’2.用SQL语句创建简单数据表设有两个关系(1)教师关系T,包括教师编号TNo,姓名TN,系别TD,职称RANK;(2)课程关系C,包括课程号CNo,课程名CN。

教师编号和课程号分别是上述两个关系的主键,请用SQL语句创建教师数据表T。

参考答案:CREATE TABLE T{TNo INT PRIMARY KEY,TN CHAR(30),TD CHAR(20),RANK CHAR(20)};3.用SQL语句创建数据表在上题基础上,假设还存在教师教授课程关系TC,包括教师编号TNo和课程号CNo。

注意:说明主键码和外键码约束参考答案:CREATE TABLE TC{TNo INT,CNo INT,PRIMARY KEY (Tno,Cno),FOREIGN KEY (TNo) REFERENCES T(TNo),FOREIGN KEY (CNo) REFERENCES C(CNo)};4.利用SQL语句进行查询在上题的基础上,如果要查询“张红老师承担的所有课程”,请写出对应的SQL查询语句。

参考答案:SELECT o, FROM T,C,TCWHERE T.TNo=TC.TNo AND =o AND T.TN=’张红’5.程序应用题设学生成绩表的结构为(学号、课程号、成绩),程序运行界面如图1所示。

进入界面后,用户首先选择学号(Combo1)、课程号(Combo2),姓名(Text1)和课程名(Text2)从数据库中自动读入;然后,用户输入对应的成绩(Text3),点击“确认”按钮后,将结果插入到学生成绩表中。

请补充完成下列程序代码。

图1“增加记录”窗体运行界面Private Sub Command1_Click()‘声明一个记录集对象Dim ADOrs As New Recordset‘将记录集对象与已建立的数据库联接对象ADOcn绑定ADOrs.ActiveConnection=ADOcn‘第一步:在学生成绩表中查询是否存在关键字相同的记录(1)拼写查询字符串strSQL =“”(2)执行查询语句strSQL‘第二步:如果关键字重复,则退出程序If Not ThenMsgBox “记录已存在,不能继续增加”Exit SubEnd If‘第三步:将结果插入到学生成绩表中StrSQL=”Insert Into 学生成绩表(学号,课程号,成绩)Values(‘ ”+Combo1.Text+” ‘,’ “+Combo2.Text+” ‘, “+Str(Val(Text3.Text))+”)”StrSQLEnd Sub参考答案及评分要点:‘第一步:在学生成绩表中查询是否存在关键字相同的记录strSQL=”Select * From 学生成绩表Where 学号=’ ”+combo1.Text+” ‘ And 课程号=’ “+Combo2.Text+” ‘ “ADOrs.Open StrSQL‘第二步:如果关键字重复,则退出程序If Not ADOrs.EOF ThenMsgBox “记录已存在,不能继续增加”Exit SubEnd If‘第三步:将结果插入到学生成绩表中StrSQL=”Insert Into 学生成绩表(学号,课程号,成绩)Values(‘ ”+Combo1.Text+” ‘,’“+Combo2.Text+” ‘, “+Str(Val(Text3.Text))+”)”ADOcn.Execute StrSQLEnd Sub鱼知水恩,乃幸福之源也。

相关主题