数据库原理与应用习题集(11套)

数据库原理与应用习题集(11套)
数据库原理与应用习题集(11套)

=============================================1

第1章习题

一、选择题

1.下列四项中,不属于数据库系统优点的是()。

A.实现数据共享B.确保数据的安全性与保密性

C.控制数据冗余D.数据依赖程序

2.数据库系统中,对用户使用的数据视图的描述称为()。

A.概念模式 B.内模式

C.存储模式 D.外模式

3.下列四项中,不属于数据库特点的是( ) 。

A. 数据共享

B.数据完整性

C. 数据冗余很高

D. 数据独立性高

4.数据库的三级模式之间存在着两级映像,使数据库系统具有较高的数据()。

A.相容性 B.独立性

C.共享性 D.一致性

5.数据库系统的三级模式结构中,定义索引的组织方式属于()。

A.概念模式B.外模式

C.逻辑模式D.内模式

6. E-R模型属于()。

A. 概念模型

B. 层次模型

C. 网状模型

D. 关系模型

7.学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是( ) 。

A. 多对多

B. 一对一

C. 多对一

D. 一对多

8.反映现实世界中实体及实体间联系的信息模型是( ) 。

A. 关系模型

B. 层次模型

C. 网状模型

D. E-R模型

二、设计题

1.某医院病房计算机管理中需要如下信息:

科室:科名,科地址,科电话,医生姓名

病房:病房号,床位号,所属科室名

医生:姓名,职称,所属科室名,年龄,工作证号

病人:病历号,姓名,性别,诊断,主管医生,病房号

其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。设计该计算机管理系统的E-R图,并注明属性和联系类型。

2.假设某公司的业务规则如下:

(1)公司下设几个部门,如技术部、财务部、市场部等。

(2)每个部门承担多个工程项目,每个工程项目属于一个部门。

(3)每个部门有多名职工,每一名职工只能属于一个部门。

(4)一个部门可能参与多个工程项目,且每个工程项目有多名职工参与施工。根据职工在工程项目中完成的情况发放酬金。

(5)工程项目有工程号、工程名两个属性;部门有部门号、部门名称两个属性;职工有职工号、姓名、性别属性。

请根据上述规则设计E-R模型。

3. 某公司的业务规则如下:

(1)每位职工可以参加几个不同的工程,且每个工程有多名职工参与;

(2)每位职工有一个职位,且多名职工可能有相同的职位;

(3)职位决定小时工资率,公司按职工在每一个工程中完成的工时,计算酬金;

(4)职工的属性有职工号、姓名、职位和小时工资率;

(5)工程的属性有工程号和工程名称。

试根据上述业务规则设计E-R模型。

答案:

一、选择题 DDCB DADD

二、设计题

1.

2.

3.

===================================================2

第3章习题

1.学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教师,每名教师只教一门课,每门课可由多个教师教;每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。请用E-R图画出该学校的概念模型,注明联系类型,再将E-R模型转换为关系模型。

2.工厂生产的每种产品由不同的零件组成,有的零件可用于不同的产品。这些零件由不同的原材料制成,不同的零件所用的材料可以相同。一个仓库存放多种产品,一种产品存放在一个仓库中。零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中(不跨仓库存放)。请用E-R图画出此关于产品,零件,材料,仓库的概念模型,注明联系类型,再将E-R模型转换为关系模型。

3.一个图书馆管理系统中有如下信息:

图书:书号、书名、数量、位置

借书人:借书证号、姓名、单位

出版社:出版社名、邮编、地址、电话、E-mail

其中约定:任何人可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社名具有唯一性。

根据以上情况,完成如下设计:

(1)设计系统的E-R图;

(2)将E-R图转换为关系模式;

(3)指出转换后的每个关系模式的关系键。

答案

1.

n

1

假定:主码用____ 表示

外码用 表示

2. 该E-R 图可以转换为以下关系模式:

产品(产品名,型号,重量,仓库号,数量c )

材料(材料编号,名称,仓库号,数量a )

产品-零件(产品名,零件名,组装日期b )

零件-材料(材料编号,零件名,生产日期a ) 零件-仓库(零件名,仓库号,数量b )

3.

3个M:N 的联系必须成为一个独立的关系模4个实体各自为一个关系模式,2个1:N 的联系没有成为一个独立的关系模式,而是合并到多方实体,合并时包括联系得属性

该E-R图可以转换为以下关系模式:

图书(书号,书名,数量,位置,出版社名)

借书人(借书证号,姓名,单位)

出版社(出版社名,邮编,地址,电话,E-mail)

借阅(借书证号,书号,借书日期,还书日期)

===================================================3

第5章习题

1.试用T-SQL语言创建ZYGL(职员管理)数据库,要求数据文件的初始大小为1MB,最大大小为50MB,增长方式按10%增长;日志文件的初始大小为3MB,按1MB增长。

2.试用T-SQL语言修改ZYGL数据库的主数据文件,将增长方式修改为按5MB增长。

3.试用T-SQL语言修改ZYGL数据库,为ZYGL增加一个数据文件ZYGLBAK。

4.试用T-SQL语言删除ZYGL数据库。

--1.

CREATE DATABASE zygl

ON

(NAME = 'zygl_Data',

FILENAME ='E:\sql\zygl_Data.MDF' ,

SIZE = 1, MAXSIZE = 30, FILEGROWTH = 10%

)

LOG ON

(NAME = 'zygl_Log',

FILENAME ='E:\sql\zygl_Log.LDF' ,

SIZE = 3, FILEGROWTH = 1

)

GO

--2

ATLER DATABASE ZYGL

MODIFY FILE

( NAME =ZYGL_DA TA, FILEGROWTH =5 )

--3

ATLER DATABASE ZYGL

ADD FILE

(NAME =ZYGLBAK ,

FILENAME ='E:\sql\zygl_Data1 .NDF' ,

SIZE = 1, MAXSIZE = 50, FILEGROWTH = 10% )

--4

DROP DATABASE ZYGL

===================================================4

第6章习题

设计题

现有一个数据库scd,库中包含以下系、学生、班级各表:

student(学号,姓名,年龄,班号)

class(班号,专业名,系名,入学年份)

department(系号,系名)

假设表中将有如下数据:

student (

2008101,张山,18,101;

2008102,李斯,16,102;

2008103,王玲,17,111;

2008105,李飞,19,112

class(

101,软件,计算机,2005;

102,微电子,计算机,2006;

111,无机化学,化学,2004;

112,高分子化学,化学,2006

department (

001,数学;

002,计算机;

003,化学

1. 用SQL语言创建以上各数据表,在定义中要求为每一字段(列)选择合适的数据类型和长度,并设置适当的约束,即声明:

(1)每个表的主键和所有可能的外键。

(2)学生姓名不能为空。

(3)系部系名不能为空,且唯一。

(4)学生的年龄介于15到40岁之间,默认为18。

2.试用SQL语言完成下列功能:

(1)学校又新增加了两个系部:一个物理系,编号为006,一个经济系,编号为008。

(2)将入学年份在2004年以前的班级删除。

(3)学生张山转到111班,请更新相关的表。

(4)为每个学生的年龄增加1岁,请更新相关的表。

3.试用SQL语言修改表结构:

由于年龄可以通过出生日期计算而来,对student表删除“年龄”字段,增加一个“出生日期”字段。(提示:必须先删除对年龄的检查约束,才能删除年龄列)

答案

--1.

create database scd

go

Use scd

Go

CREATE TABLE department

(系号 char(3) PRIMARY KEY,

系名 char(20) not null unique

)

Go

CREATE TABLE class

(班号 char(3) PRIMARY KEY,

专业名 char(20),

系名 char(20) references department(系名) ,

入学年份 int

)

Go

CREATE TABLE student

(学号 char(7) PRIMARY KEY,

姓名 char(8) NOT NULL,

年龄 int constraint ck_nl CHECK(年龄 >=15 and 年龄<=40)

constraint df_nl DEFAULT 18, --指定约束名ck_nl 和df_nl,以便以后好删除

班号 char(3) references class(班号)

)

Insert into department values ('001', '数学');

Insert into department values ('002', '计算机');

Insert into department values ('003', '化学')

Insert into class values ( '101','软件','计算机',2005);

Insert into class values ( '102','微电子','计算机',2006);

Insert into class values ('111','无机化学','化学',2004);

Insert into class values ('112','高分子化学','化学',2006 )

Insert into student values('2008101','张山',18,'101');

Insert into student values('2008102','李斯',16,'102');

Insert into student values( '2008103','王玲',17,'111')

Insert into student values( '2008104','李飞',19,'112')

--2.

--1)

Insert into department values(‘006’,’物理系‘)

Insert into department values(‘008’,’经济系‘)

--2)

Delete class where 入学年份<2004

--3)

Update student set班号='111'where姓名='张山'

--4)

Update student set 年龄=年龄+1

--3.

--1)

--要删除年龄列,应先删除该列上的约束,再删除

Alter table student drop constraint ck_nl, df_nl

--删除年龄列

Alter table student drop column 年龄

Alter table student add 出生日期 datetime

--2)

Alter table class

Add 班长学号 char(7) references student(学号)

===================================================5

第7章习题

设计题

以下各题在CJGL数据库中实现:

1. 查询“数据库原理”这门课程的学分和开课学期。

2. 查询身高在175cm以上的男生信息。

3. 查询所有姓“李”同学的基本情况。

4. 查询至少选修了两门课程的学生学号。

5. 将所有学生信息按身高逆序输出。

6. 查询平均成绩在75分以上的学生姓名、性别和专业。

7. 查询“李林”同学没学过的课程号。

8. 查询有两门课以上不及格的学生姓名。

9. 检索选修课程包含“程明”同学所选课程之一的学生学号。

10. 检索同时选修了课程号为101和102这两门课程的学生学号。

11. 检索选修课程名为“数据库原理”的学生学号和姓名。

12*. 查询每门课得最高分的学生姓名。

13*. 检索选修课程包含学号为081103的学生所修全部课程的学生学号。

14. 创建一个名为avg75的视图,包含所有平均成绩在75分以上的学生信息。答案

1. 查询“数据库原理”这门课程的学分和开课学期。

Select 课程号,开课学期

From kc

Where 课程名 =’数据库原理’

2. 查询身高在175cm以上的男生信息。

Select *

From xs

Where 性别=’男’ and 身高>175

3. 查询所有姓“李”同学的基本情况。

Select *

From xs

Where 姓名 like ‘李%’

4.查询至少选修了两门课程的学生学号。

Select 学号

From xs_kc

Group by 学号

Having count(课程号)>=2

5. 将所有学生信息按身高逆序输出。

Select *

From xs

Order by 身高 desc

6 检索平均成绩在75分以上的学生姓名、性别和专业。方法一:

Select 姓名,性别,专业名

From xs

Where 学号 in (

Select 学号

From xs_kc

Group by 学号

Having avg(成绩)>75)

方法二:

Select 姓名,性别,专业名

From xs_kc JOIN xs ON xs.学号=xs_kc.学号

Group by xs.学号, 姓名,性别,专业名

Having avg(成绩)>75

7. 检索“李林”同学不学的课程号。

Select 课程号

From kc

Where 课程号 not in (

Select 课程号 from xs, xs_kc

Where xs.学号=xs_kc.学号 and xs.姓名=’李林’)

8. 查询只有两门课不及格的学生姓名。

Select 姓名

From xs

Where 学号 in (Select 学号

From xs_kc

Where 成绩<60

Group by 学号

Having count(课程号)=2)

9. 检索选修课程包含“程明”同学所选课程之一的学生学号。

Select distinct 学号

From xs_kc

Where 课程号 in (

Select 课程号 from xs, xs_kc

Where xs.学号=xs_kc.学号 and xs.姓名=’程明’)

10. 检索同时选修了课程号为101和102这两门课程的学生学号。

select*from xs_kc

------------------

错误写法:

Select学号

From xs_kc

Where课程号='101'or课程号='102'

Select学号

From xs_kc

Where课程号='101'and课程号='102'

-------------------------------------------方法一,使用自连接:方法一,使用自连接:

Select a.学号

From xs_kc a , xs_kc b

Where a.学号=b.学号and a.课程号='101'and b.课程号='102'

方法二,使用子查询:

Select学号

From xs

Where学号in(select学号From xs_kc where课程号='101') And学号in(select学号From xs_kc where课程号='102')

方法三、

Select学号

From xs_kc

Where课程号='101'or课程号='102'

group by学号having count(学号)=2

11. 检索选修课程名为“数据库原理”的学生学号和姓名。

Select a.学号,姓名

From xs a , xs_kc b , kc c

Where a.学号=b.学号 and b.课程号=c. 课程号 and 课程名=’数据库原理’

12. 查询每门课的最高分的学生姓名。

相关查询法

SELECT A.学号, 姓名, B.课程号, 成绩

FROM XS A, XS_KC B

WHERE A.学号=B.学号 AND 成绩=

(SELECT MAX(成绩) FROM XS_KC C

WHERE B.课程号=C.课程号)

或派生表法

SELECT A.姓名, B.课程号, B.成绩, C.最高成绩

FROM XS A , XS_KC B , (SELECT 课程号, MAX(成绩) 最高成绩 FROM XS_KC group by 课程号) C

WHERE A.学号=B.学号 AND B.课程号= C.课程号 and B.成绩=C.最高成绩

13. 检索选修课程包含学号为081101的学生所修课程的学生学号。

方法一,

select distinct 学号

from xs_kc

where 课程号 in ( select 课程号

from xs_kc

where 学号='081101')

group by 学号

having count(课程号)=

(select count (课程号)

from xs_kc

where 学号='081101')

方法二,

SELECT 学号,姓名

FROM xs

WHERE NOT EXISTS(

SELECT *

FROM kc , xs_kc a

WHERE kc.课程号=a. 课程号 and 学号=’ 081103’

and NOT EXISTS(

SELECT *

FROM xs_kc b

WHERE b.学号=xs.学号 AND 课程号=kc.课程号 ) )

14. 创建一个名为avg75的视图,包含所有平均成绩在75分以上的学生信息。

Create view avg75

As

Select *

From xs

Where 学号 in (

Select 学号

From xs_kc

Group by 学号

Having avg(成绩)>75)

Create view avg75

As

Select 姓名,性别,专业名,avg(成绩)

From xs_kc JOIN xs ON xs.学号=xs_kc.学号

Group by 姓名,性别,专业名

Having avg(成绩)>75

===================================================6

第8章习题

对于数据库scd,库中包含以下系、学生、班级各表:

student (学号,姓名,年龄,班号)

class(班号,专业名,系名,入学年份)

department (系号,系名)

请使用T-SQL语言完成以下各题。

1.将student表的班号与姓名这两列组合创建一个升序的非聚集索引。

2.为department表的系名建立一个唯一索引,如果输入了重复的键,将忽略该INSERT或UPDATE语句,并使用填充因子FILLFACTOR 为50%。

3.为数据库scd建立一个默认对象,使其对应于年龄为18,将其绑定到student表的年龄列上。

4.为数据库scd建立一个规则对象,并将其绑定到学生表的专业名列上,规定专业名的取值只能为‘护理学’、‘地质勘探’和‘考古学’之一。

5.修改class表为其建立一个CHECK约束,检查入学年份是否小于2009。

答案

1.将student表的班号与姓名这两列组合创建一个升序的非聚集索引。

Create nonclustered index ix_bj_xm on student (班号 asc , 姓名 asc)

2.为department表的系名建立一个唯一索引,如果输入了重复的键,将忽略该INSERT或UPDATE语句,并使用填充因子FILLFACTOR 为50%。

Create unique index uqix_xm on department (系名 asc)

WITH IGNORE_DUP_KEY, FILLFACTOR = 50

3.为数据库scd建立一个默认对象,使其对应于年龄为18,将其绑定到student表的年龄列上。

Create default d_age as 18

Go

Exec sp_bindefault ‘d_age’ , ‘student.年龄’

4.为数据库scd建立一个规则对象,并将其绑定到学生表的专业名列上,规定专业名的取值只能为‘护理学’、‘地质勘探’和‘考古学’之一。

Create rule r_zym as @zym in (‘护理学’, ‘地质勘探’,’考古学’)

Go

Exec sp_bindrule ‘r_zym’, ‘student.专业名’

5.修改class表为其建立一个CHECK约束,检查入学年份是否小于2008。

Alter table class

Add constraint ck_rxnf check (入学年份<2008 )

==================================================7

第9章习题1

习题九

三、设计题:

1.使用流程控制语句编写程序:

(1)在CJGL数据库中,使用case函数处理:如果课程的学时在80以上显示学习时间长, 学时在54~80 显示学习时间一般, 否则显示学习时间短。

(2)在CJGL数据库中,使用case函数处理:如果学生的专业是“计算机”,显示热门,是“通信工程”显示一般,否则显示冷门。

(3)计算18!=18*17*16…*2*1。

(4)计算S = 1!+2!+3!+ (10)

2.以下各题在CJGL数据库中实现:

(1)创建一个自定义函数,可以求解任意数n的阶乘,即n!。并用n=10调用该函数。

(2)分别用函数或存储过程实现以下功能:给定输入参数课程名,统计该课程成绩介于58~59分的学生人数。使用输入参数“数据库原理”调用该函数或该存储过程。

(3)创建存储过程来完成求解给定某个学生的学号返回该生的姓名和平均分的功能。

(4)分别使用约束和触发器实现以下功能:检查在课程表中插入或修改的课程号是否在101~108之间。

3.以下各题在第六章习题(设计题)给出的数据库SCD中实现:

(1)创建一个自定义函数用于统计各班级的人数,将class表增加一个人数字段,然后调用该函数将人数定义为计算列。

(2)创建一个可以按给定学号输出学生的姓名、系名信息的存储过程。

(3)创建一个触发器,当插入或更新某个学生的记录时,检查该班级的学生是否超过50人,如果超过,就发出警告信息同时撤消所作的插入或更新操作。

答案:

三、设计题

1.使用流程控制语句编写程序:

(1)在CJGL数据库中,使用case函数处理:如果课程的学时在80以上显示学习时间长, 学时在54~80 显示学习时间一般, 否则显示学习时间短。

SELECT 课程号,课程名,学习时间=

CASE

WHEN 学时>=80 THEN '学习时间长'

WHEN 学时>=54 THEN '学习时间一般'

ELSE ‘学习时间短’

END

FROM KC

(2)在CJGL数据库中,使用case函数处理:如果学生的专业是“计算机”,显示热门,是“通信工程”显示一般,否则显示冷门。

SELECT 学号, 姓名, 专业热度=

CASE 专业名

WHEN ‘计算机’ THEN '热门'

WHEN ‘通信工程’ THEN '一般'

ELSE '冷门 '

END

FROM xs

(3)计算18!=18*17*16…*2*1。

DECLARE @i int , @p bigint

SELECT @i=1, @p=1

WHILE @i<=18

BEGIN

SET @p=@p*@i

SET @i=@i+1

END

PRINT '18*17*16…*2*1='+CAST(@p AS char(20))

(4)计算S = 1!+2!+3!+ (10)

DECLARE @i int , @p bigint, @s bigint

SELECT @i=1, @p=1, @s=0

WHILE @i<=10

BEGIN

SET @p=@p*@i

SET @s=@s+@p

SET @i=@i+1

END

PRINT '1!+2!+3!+……+10!='+CAST(@s AS char(20))

2.以下各题在CJGL数据库中实现:

(1)创建一个自定义函数,可以求解任意数n的阶乘,即n!。并用n=10调用该函数。

CREATE FUNCTION F_C(@n INT)

RETURNS INT AS

BEGIN

DECLARE @i int , @p bigint

SELECT @i=1, @p=1

WHILE @i<=@n

BEGIN

SET @p=@p*@i

SET @i=@i+1

END

Return @ p

END

Go

--调用

select dbo. F_C (10)

(2)分别用函数或存储过程实现以下功能:给定输入参数课程名,统计该课程成绩介于58~59分的学生人数。使用输入参数“数据库原理”调用该函数或该存储过程。

----函数:

Create function f_cj58 (@cna char(20)) returns int

As

BEGIN

DECLARE @c int

SELECT @c=count(*) from CJGL.dbo.xs_kc a , CJGL.dbo. kc b

where a.课程号= b.课程号 and 课程名=@cna and (成绩 between 58 and 59)

Return @c

END

Go

以下函数调用:

Select dbo.f_cj58 (‘数据库原理’) as [58~59分人数]

Go

-----存储过程:

create procedure p_cj58

@cna char(20), @c int output

as

SELECT @c=count(*) from CJGL.dbo.xs_kc a , CJGL.dbo. kc b

where a.课程号= b.课程号 and 课程名=@cna and (成绩 between 58 and 59)

return

Go

--存储过程调用

DECLARE @c1 int

Exec p_cj58 ‘数据库原理’, @c1 output

(3)创建存储过程来完成求解给定某个学生的学号返回该生的姓名和平均分的功能。

Create procedure p_pj

@sno char(8) , @sna char(8) output , @savg int output

as

SELECT @sna=姓名,@ savg=avg(成绩) from CJGL.dbo.xs a , CJGL.dbo.xs_kc b

where a.学号= b.学号 and a.学号=@sno GROUP BY 姓名

return

Go

--调用

DECLARE @sna char(8) , @savg int

Exec p_pj ‘061101’ , @sna output , @savg output

Select @sna, @savg

(4)分别使用约束和触发器实现以下功能:检查在课程表中插入或修改的课程号是否在101~108之间。

---------------------------使用触发器

Create trigger T_KC on kc

For INSERT, UPDATE

As

Declare @cno char(4)

Select @cno=课程号 from inserted

If @cno not like ’10[1-8]’

rollback transaction

go

----------------------------使用约束

Alter talbe kc

Add constraint ck_kh check( 课程号 like ’10[1-8]’ )

3.以下各题在第六章习题(设计题)给出的数据库SCD中实现:

(1)创建一个自定义函数用于统计各班级的人数,将class表增加一个人数字段,然后调用该函数将人数定义为计算列。

USE SCD

GO

CREATE FUNCTION F_CNT (@CNUM CHAR(8)) RETURNS INT

AS

BEGIN

DECLARE @CNT INT

SELECT @CNT= COUNT(*)

FROM student

WHERE 班号=@CNUM

RETURN @CNT

END

GO

USE SCD /*假定用户函数F_CNT在此数据库中已定义*/

CREATE TABLE CLASS

(班号 CHAR(3) PRIMARY KEY,

专业名 CHAR(20),

系名 CHAR(20) REFERENCES DEPARTMENT(系名) ,

入学年份 INT

人数 AS DBO. F_CNT (班号)

)

(2)创建一个可以按给定学号输出学生的姓名、系名信息的存储过程。

方法一:

CREATE PROCEDURE STU_INFO

@SNO CHAR (7)

AS

SELECT A.学号, 姓名, 系名

FROM STUDENT A INNER JOIN CLASS B

ON A.班号= B.班号

WHERE 学号=@SNO

GO

调用:

EXEC STU_INFO '2008101'

方法二:

CREATE PROCEDURE STU_INFO_1

@SNO CHAR (6), @SNA CHAR(8) OUTPUT,@DNA CHAR(20) OUTPUT

AS

SELECT @SNA =姓名, @DNA =系名

FROM STUDENT A INNER JOIN CLASS B

ON A.班号= B.班号

WHERE 学号=@SNO

GO

调用:

DECLARE @SNA CHAR(8),@DNA CHAR(20)

EXEC STU_INFO '2008101' ,@SNA OUTPUT,@DNA OUTPUT

SELECT @SNA ,@DNA

(3)创建一个触发器,当插入或更新某个学生的记录时,检查该班级的学生是否超过50人,如果超过,就发出警告信息同时撤消所作的插入或更新操作。

Create trigger T_stu on student

For INSERT, UPDATE

As

Declare @cno char(4)

Select @cno=班号 from inserted

If (select count(*) from student

where 班号=@cno ) >50

begin

Raiserror ('该班人数超过人,插入或修改已撤销.', 16, 1)

Rollback transaction

end

GO

===================================================8

第9章习题2

在职员管理数据库ZYGL中完成以下操作:

1.创建一个自定义数据类型ID_type,用于描述员工号,执行如下程序:

USE ZYGL

EXEC sp_addtype 'ID_type', 'char(3) ', 'not null '

GO

2.在SQL Server管理平台中通过表设计器修改职员表和工资表,对它们的“员工号”

的数据类型使用自定义数据类型ID_type。

3.创建一个自定义函数用于统计某部门的人数,部门名为函数的输入参数,如果没有该部门,则返回-1值。

USE ZYGL

CREATE FUNCTION total_rs(@name_bm char(10))

RETURNS int AS

BEGIN

DECLARE @num int

IF not EXISTS( SELECT * FROM 部门表 WHERE 部门名=@name_bm)

SELECT @num= -1

ELSE

SELECT @num=count(*) FROM 职员表,部门表

WHERE 职员表.部门号=部门表.部门号 and 部门名=@name_bm

RETURN @num

END

4.分别以部门名“办公室”和“销售科”调用函数total_rs:

USE ZYGL

SELECT dbo.total_rs('销售科') AS 部门人数

记录结果。

SELECT dbo.total_rs('办公室') AS 部门人数

记录结果。

5.创建一个可以按给定员工姓名,输出其姓名、部门名及其工资信息的存储过程。USE ZYGL

IF EXISTS (SELECT name FROM sysobjects

WHERE name = 'yg_info' AND type = 'P')

DROP PROCEDURE yg_info

GO

/*创建存储过程*/

CREATE PROCEDURE yg_info @name char(8)

AS

SELECT a.员工号, 姓名, 部门名, 应发工资, 实发工资

FROM 职员表 a INNER JOIN 部门表 b ON a.部门号 = b.部门号

INNER JOIN 工资表 t ON a.员工号= t.员工号

WHERE 姓名=@name

GO

6.调用yg_info存储过程查询员工 '岳亮'的信息。

USE ZYGL

EXEC yg_info '岳亮'

7.创建一个触发器,当插入或更新某个员工的工资记录时,检查该员工的基本工资是否超过平均基本工资的三倍,如果超过,就发出警告信息同时撤消插入或更新。执行如下程序:

USE ZYGL

IF EXISTS (SELECT name FROM sysobjects

WHERE name = 'reminder_gz' AND type = 'TR')

DROP TRIGGER reminder_gz

GO

CREATE TRIGGER reminder_gz ON 工资表

FOR INSERT, UPDA TE

AS

DECLARE @jbgz decimal(7,2),@pjgz decimal(7,2)

SELECT @jbgz =基本工资 FROM inserted

SELECT @pjgz=avg(基本工资) FROM 工资表

IF @jbgz>@pjgz*3

BEGIN

ROLLBACK TRANSACTION --撤消插入操作

RAISERROR ('该工资数据有误,超过平均值三倍,操作已经撤消!', 16, 10) /*返回一个错误信息*/ END

GO

8.在SQL Server管理平台中打开ZYGL库的工资表,将001号员工的基本工资分别修改为2600与8600,看触发器的触发反应。

===================================================9

第10章习题1

在职员管理数据库ZYGL中完成以下操作:

1.采用游标的方式将每位员工的津贴提高20%。注意津贴的变化对实发工资和应发工资的影响。

方法一:游标的非CURRENT形式的UPDATE语句

USE ZYGL

GO

DECLARE @id char(3)

DECLARE salary_cursor CURSOR

FOR SELECT 员工号 FROM 工资表

OPEN salary_cursor

FETCH NEXT FROM salary_cursor

INTO @id

WHILE @@FETCH_STATUS=0

BEGIN

UPDA TE 工资表 SET 津贴=津贴*1.2 WHERE 员工号=@id

FETCH NEXT FROM salary_cursor

INTO @id

END

CLOSE salary_cursor

DEALLOCATE salary_cursor

SELECT * FROM 工资表

GO

数据库原理与应用习题参考答案

习题参考答案 第1章习题参考答案 一、选择题 1. C 2. B 3. D 4. C 5. D 6. A 7. A 8. B 9. D、 10. B 11. C 12. D 13. A 14. D 15. B 二、填空题 1. 数据库系统 2. 关系 3. 物理独立性 4. 操作系统 5. 数据库管理系统(DBMS) 6. 多对多 7. 独立性8. 完整性控制 9. 逻辑独立性10. 关系模型 11. 概念结构(逻辑)12. 树有向图二维表嵌套和递归 13. 宿主语言(或主语言)14. 数据字典 15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构

第2章习题参考答案 一、选择题 1. A 2. C 3. C 4. B 5. B 6. C 7. B 8. D 9. C 10. A 11. B 12. A 13. A 14. D 15. D 二、填空题 1. 选择(选取) 2. 交 3. 相容(或是同类 关系) 4. 并差笛卡尔积选择投影 5. 并差交笛卡尔积 6. 选择投影连接 7. σ f (R) 8. 关系代数 关系演算 9. 属性10. 同质11. 参照完整 性 12. 系编号系名称,电话,办公地点13. 元组关系域关系 14. 主键外部关系键15. R和S没有公共的属性 三简答题 (1)查询T1老师所授课程的课程号和课程名。 Π CNO,CN (σ TNO=’T1’ (TC)*Π CNO,CN (C)) (2)查询年龄大于18岁男同学的学号、姓名、系别。 Π SNO, SN, Dept (σ Age>18Sex=’男’ (S)) (3)查询“李力”老师所授课程的课程号、课程名和课时。 Π CNO (Π TNO (σ TN=’李力’ (T))*TC))* C (4)查询学号为S1的同学所选修课程的课程号、课程名和成绩。 Π CNO,CN,Score (σ SNO=’S1’ (SC)*Π CNO,CN (C)) (5)查询“钱尔”同学所选修课程的课程号、课程名和成绩。 Π CNO,CN,Score (Π SNO (σ SN=’钱尔’ (S))*Π CNO,CN (C)*SC) (6)查询至少选修“刘伟”老师所授全部课程的学生姓名。 Π SN ((Π SNO, SN (S)*(Π SNO, CNO (SC)Π CNO (σ TN=’刘伟’ (T*TC)))) (7)查询“李思”同学未选修的课程的课程号和课程名。 Π CNO, CN ((Π CNO (C)-Π CNO (σ SN=’李思’ (S)*SC))*C) (8)查询全部学生都选修了的课程的课程号和课程名。 Π CNO, CN (C*(Π SNO, CNO (SC)Π SNO (S))) (9)查询选修了课程号为C1和C2的学生的学号和姓名。 (Π SNo,CNo (SC)Π CNo (σ CNo =’C1’CNo =’C2’ (C))*Π SNo,SN (S) (10)查询选修全部课程的学生的学号和姓名。 Π SNO, SN (S*(Π SNO, CNO (SC)Π CNO (C))) (11)查询选修课程包含“程军”老师所授课程之一的学生学号。

(完整版)数据库原理及应用-期末考试试题

数据库原理及应用期末考试试题 1. 组织层数据模型的三要素是[ ]。 A.外模式,概念模式和内模式 B.关系模型,网络模型,层次模型 C.1:1的联系,1:n的联系,n:m的联系 D.数据结构,数据操作,数据约束条件 2在关系模型中,任何关系必须满足约束条件包括实体完整性、[ ]和用户自定义完整性。 A.动态完整性 B.数据完整性 C.参照完整性 D.结构完整性 3 SQL Server 中的角色是[ ]。 A. 一个服务器登录 B. 一个数据库用户 C. 一组权限的集合 D. 一个服务器用户 4.当数据的物理存储结构改变时,应用程序无需改变,这样的特性称为数据的[ ]。 A.逻辑独立性 B.物理独立性 C.程序无关性 D.物理无关性 5.下列哪个不是以处理大量数据为中心的应用程序的特点[ ]。 A.涉及的数据量大 B.数据需长期联机保存 C.数据的计算复杂 D.数据可被多个应用所共享 6.E-R图适用于建立数据库的[ ]。 A.概念模型 B.结构模型 C.逻辑模型 D.物理模型 7. 在关系数据库设计中,设计关系模型属于[ ]。 A.需求分析 B.物理结构设计 C.逻辑结构设计 D.概念结构设计 8.[ ]记录了对数据库中数据进行的每一次更新操作。 A.后援副本 B.日志文件 C.数据库 D.缓冲区 9. [ ]是用户定义的一组数据库操作序列,是一个基本的不可分割的工作单元。 A.程序 B.进程 C.事务 D.文件 10.信息世界中,实体是指[ ]。 A.客观存在的事物 B. 客观存在的属性 C. 客观存在的特性 D. 某一具体事件 11. 数据库系统中, DBA表示[ ] 。 A.应用程序设计者 B. 数据库使用者

数据库原理及应用练习题及参考答案

数据库原理与应用练习题及参考答案 一、选择题 1.一下关于关系的说法正确的是( A ) A. —个关系就是一张二维表 B. 在关系所对应的二维表中,行对应属性,列对应元组。 C. 关系中各属性不允许有相同的域。 D. 关系的各属性名必须与对应的域同名。 3. 进行自然连接运算的两个关系( A. 至少存在一个相同的属性名 C 不可存在个相同的属性名 A ) B. 可不存在任何相同的属性名 D 所有属性名必须完全相同 4. 概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成 一个独立于具体 DBMS 的(B )。 A. 数据模型 B.概念模型 C 层次模型 D.关系模型 5. Access 2010数据库具有很多特点,下列叙述中,正确的是( B )。 A. Access 2010数据表可以保存多种数据类型,但是不包括多媒体数 B. Access 2010可以通过编写应用程序来操作数据库中的数据 C. Access 不能支持 Internet/Intranet 应用 D. Access 2010 使用切换面板窗体管理数据库对象 6. 数据表的基本对象是( A ) 7.利用 Access 2010 创建数据库文件, 其扩展名是( B ) A.mdb B.accdb C.xlsx D. acc 8. 启动 Access 2010 后,最先显示的是什么界面( C ) A.数据库工作界面 B. “打开”窗口 C. Backstage D 导航窗格 9. 在 Access 数据库对象中,不包括的是( B ) A.表 B.向导 C 窗体 D.模块 10. 表的组成内容包括( C ) A.查询和字段 B.报表和字段 C.字段和记录 D.记录和窗体 2.关系数据表的关键字可由( A.一个 B.两个 D )属性组成。 C 多个 D.—个或多个 A. 表 B.查询 C 报表 D.窗体

数据库原理与应用试题及答案

一、单选题(共20分,每题1分) 1.DB、DBMS和DBS三者之间的关系是() A. DB包括DBMS和DBS B. DBS包括DB和DBMS C. DBMS包括DB和DBS C. DBS与DB和DBMS无关 2.在数据库系统中,读脏数据是指一个事务读了另一个事务() A. 未更新的数据 B. 未撤销的数据 C. 未提交的数据 D. 未刷新的数据 3.加锁协议中规定“先申请先服务”的原则,可以避免数据库系统出现() A. 活锁 B. 死锁 C. 读-写冲突 D. 写-写冲突 4.语句DELETE FROM SC表明() A. 删除SC中的全部记录 B. 删除基本表SC C. 删除基本表SC中的列数据 D. 删除基本表SC中的部分行 5.数据库设计阶段分为() A. 物理设计阶段、逻辑设计阶段、编程和调试阶段 B. 模型设计阶段、程序设计阶段和运行阶段 C. 方案设计阶段、总体设计阶段、个别设计阶段和编程阶段 D. 概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段 6.关系笛卡尔积运算记号R×S表示() A. R为关系名,S为属性名 B. R和S均为属性名 C. R为属性名,S为关系名 D. R和S均为关系名 7.在DB应用中,一般一条SQL语句可产生或处理一组记录,而DB主语言语句 一般一次只能处理一条记录,其协调可通过哪种技术实现() A. 指针 B. 游标 C. 数组 D. 栈 8.下列说法中不正确的是() A. 任何一个包含两个属性的关系模式一定满足3NF B. 任何一个包含两个属性的关系模式一定满足BCNF C. 任何一个包含三个属性的关系模式一定满足3NF D. 任何一个关系模式都一定有码

数据库原理及应用

数据库原理及应用 数据库技术简介 数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支。 数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。 数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。 第一章绪论 1.1 数据库系统概述 1.1.1 四个基本概念 数据(Data) 数据库(Database)数据库管理系统(DBMS) 数据库系统(DBS) 一、数据 数据(Data)的定义 数据是信息的具体表现形式 描述事物的符号记录 数据的表现形式——数字文字图形图像声音等 各类数据必须数字化后才能加工处理。 数据与其语义是不可分的 例如:93是一个数据 语义1:学生某门课的成绩 语义2:某人的体重 语义3:计算机系2007级学生人数 例如:学生档案中的一条记录:(李明男1982 江苏计算机系2000) 二、数据库(续) 数据库的定义 数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。 三、数据库管理系统 什么是DBMS 数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。 DBMS的用途 组织和存储好大量的数据,并提供方便、高效地检索数据和维护数据的手段。 DBMS的主要功能: 数据定义功能 数据组织 存储和管理 数据操纵功能 数据库的事务管理和运行管理 数据库的建立和维护功能 其它功能 四、数据库系统 什么是数据库系统

数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统。 数据库系统的构成 数据库 数据库管理系统(及其开发工具) 应用系统 数据库管理员(DBA) 1.1.2 数据管理技术的产生和发展 数据管理:是指对数据的分类、组织、编码、存储、查询和维护等活动,是数据处理的中心环节。 数据处理:是指对数据进行收集、组织、存储、加工、抽取和传播等一系列活动的总和。其目的是从大量的、原始数据中抽取、推导出对人们有价值的信息。 数据管理技术的发展动力:应用需求的推动、计算机软/硬件的发展 数据管理技术的发展过程 人工管理阶段(40年代中--50年代中) 文件系统阶段(50年代末--60年代中) 数据库系统阶段(60年代末--现在) 一、人工管理 时期 40年代中--50年代中 产生的背景 应用需求科学计算 硬件水平纸带、卡片、磁带 软件水平没有操作系统 处理方式批处理 特点:数据不保存、数据由程序各自管理(逻辑结构、存储结构、存取方法、输入方式等) 数据不共享:一组数据只能对应一个程序 数据不具独立性:数据的结构发生变化后(物理或逻辑上),应用程序必须做相应的修改。 应用程序与数据的对应关系(人工管理阶段) .. 二、文件系统 时期

数据库原理与应用试题库

《数据库原理与应用》试题库 (附答案)

第一部分基本概念 一、单项选择题 1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中, 数据独立性最高的是 阶段。 A.数据库系统 B.文件系统 C.人工管理 D.数据项管理 答案:A 2 。 .数据库系统与文件系统的主要区别是 A.数据库系统复杂,而文件系统简单 B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 C.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件 D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量 答案:B 3 。 .数据库的概念模型独立于 A.具体的机器和DBMS B.E-R图 C.信息世界 D.现实世界 答案:A .数据库是在计算机系统中按照一定的数据模型 4 组织、存储和应用的 ① 支持数据库各种操作 , 的软件系统叫 ② DBMS ,由计算机、操作系统、 、数据库、应用程序及用户等组成的一个整体叫做 ③ 。 ① A.文件的集合 B.数据的集合 C.命令的集合 D.程序的集合 ② A.命令系统 B.数据库管理系统 C.数据库系统 D.操作系统 ③ A.文件系统 B.数据库系统 C.软件系统 D.数据库管理系统 答案:①B ②B ③B 5.数据库的基本特点是。 A.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余大,易移植 (4)统一管理和控制 B.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制 C.(1)数据可以共享(或数据结构化) (2)数据互换性 (3)数据冗余小,易扩充 (4)统一管理和控制 D.(1)数据非结构化 (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制 答案:B 6.数据库具有①、最小的②和较高的③。 ① A.程序结构化 B.数据结构化 C.程序标准化 D.数据模块化 ② A.冗余度 B.存储量 C.完整性 D.有效性 ③ A.程序与数据可靠性 B.程序与数据完整性 C.程序与数据独立性 D.程序与数据一致性 答案:①B ②A ③C 7.在数据库中,下列说法是不正确的。 A.数据库避免了一切数据的重复 B.若系统是完全可以控制的,则系统可确保更新时的一致性 C.数据库中的数据可以共享 D.数据库减少了数据冗余 答案:A 8.是存储在计算机内有结构的数据的集合。

《数据库原理与应用》课后习题参考题答案

《数据库原理与应用》课后习题参考答案 第一章作业参考答案 1. 单选题 C C D B C 2. 判断题对错错错对 3填空题网状模型用户商业智能数据挖掘系统设计 4简答题 1)数据模型是指描述事物对象的数据组成、数据关系、数据约束的抽象结构及其说明。数据模型是指描述事物对象的数据组成、数据关系、数据约束的抽象结 构及其说明。数据模型是指描述事物对象的数据组成、数据关系、数据约束的抽象 结构及其说明。3)数据约束:用于描述数据结构中数据之间的语义联系、数据之间 的制约和依存关系,以及数据动态变化的规则。主流数据库采用关系图模型。数据 库典型数据模型:层次数据模型网状数据模型关系数据模型其它数据模型(如对 象数据模型、键值对数据模型、列式数据模型。。。) 2)数据库——是一种依照特定数据模型组织、存储和管理数据的文件,数据库文件一般存放在辅助存储器以便长久保存。数据库具有如下特点:数据不重复存 放;提供给多种应用程序访问;数据结构独立于使用它的应用程序;对数据增、 删、改、检索由统一软件进行管理和控制。 3)数据库(Database)是一种依照特定模型组织、存储和管理数据的数据结构。 在数据库中,不仅存放了数据,而且还存放了数据与数据之间的关系。数据库内部 元素:用户表:用户在数据库中创建的数据库表;系统表:数据库中系统自带的数 据库表;视图:数据库中用于对数据进行查询的虚拟表;索引:数据库中用于加快 数据查询的索引项;约束:数据库中对数据、数据关系施加的规则;存储过程:数 据库内部完成特定功能处理的程序;触发器:数据库内部因数据变化自动执行的一 类存储过程等等 4)数据库系统包括:用户、数据库应用程序、数据库管理系统和数据库四个组成要素。 5)数据库管理系统(Database Manage System,DBMS )——是一种专门用来创建数据库、管理数据库、维护数据库,并提供对数据库访问的系统软件。数 据库管理系统(DBMS)主要功能:创建数据库和表; 创建支持结构,如索引等; 读取

数据库原理与应用期末复习总结含试题及其答案

数据库原理综合习题答案 1.1名词解释 (1) DB:即数据库(Database),是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。 (2) DBMS:即数据库管理系统(Database Management System),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。 (3) DBS:即数据库系统(Database System),是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。 (4) 1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,那么实体集E1对E2的联系称为“一对一联系”,记为“1:1”。 (5) 1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。 (6) M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。 (7) 数据模型:模型是对现实世界的抽象。在数据库技术中,表示实体类型及实体类型间联系的模型称为“数据模型”。它可分为两种类型:概念数据模型和结构数据模型。 (6) 概念数据模型:是独门于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构。 (9) 结构数据模型:是直接面向数据库的逻辑结构,是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,所以称为“结构数据模型”。结构数据模型应包含:数据结构、数据操作、数据完整性约束三部分。它主要有:层次、网状、关系三种模型。 (10) 层次模型:用树型结构表示实体类型及实体间联系的数据模型。 (11) 网状模型:用有向图结构表示实体类型及实体间联系的数据模型。 (12) 关系模型:是目前最流行的数据库模型。其主要特征是用二维表格结构表达实体集,用外鍵表示实体间联系。关系模型是由若干个关系模式组成的集合。 (13) 概念模式:是数据库中全部数据的整体逻辑结构的描述。它由若干个概念记录类型组成。概念模式不仅要描述概念记录类型,还要描述记录间的联系、操作、数据的完整性、安全性等要求。 (14) 外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述。 (15) 内模式:是数据库在物理存储方面的描述,定义所有的内部记录类型、索引和文件的组成方式,以及数据控制方面的细节。 (16) 模式/内模式映象:这个映象存在于概念级和内部级之间,用于定义概念模式和内模式间的对应性,即概念记录和内部记录间的对应性。此映象一般在内模式中描述。 (17) 外模式/模式映象:这人映象存在于外部级和概念级之间,用于定义外模式和概念模式间的对应性,即外部记录和内部记录间的对应性。此映象都是在外模式中描述。 (18) 数据独立性:在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。 (19) 物理数据独立性:如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相应的修改,使概念模式尽可能保持不变。也就是对模式的修改尽量不影响概念模式。

数据库原理与应用试题含答案

一、判断题 [数据库系统概论]2 (F)与用文件系统来管理数据相比,用数据库管理数据增加了数据冗余度。 (F)一个信息只能用一种数据形式来表示。 (F)数据库系统是数据库管理系统的重要组成部分。 (F)数据库的三级模式是概念模型、逻辑模型和物理模型。 (F)E-R模型只能转换为关系模型,不能转换为层次模型和网状模型。 (F)如果一个实体A对应多个实体B,则A与B之间必然是一对多的联系。 [关系型数据库基本原理]2 (F)一个关系的主键只能包含一个属性。 (F)在实体-联系模型中,实体具有属性,联系不能具有属性。 (F)关系运算中,选择运算是从列的角度进行的运算,投影运算是从行的角度进行的运算。 (F)在一个关系模式中,如果A->B,B->C,则称C部分依赖于A。 (F)E-R图转换为关系模型时,实体可转换为关系模式,联系不能转换为关系模式。 (F)E-R图转换为关系模式时,所有的联系都必须转换为独立的关系模式。 [数据库的管理]1 (F)数据库的文件包括数据文件、事务日志文件和索引文件。 (F)数据库的一个数据文件可以属于多个文件组。 (F)在SQL Server中,数据库的主数据文件的扩展名是ldf。 [表的管理]2 (F)创建一个表时,对于表的每一列,必须指明数据类型和长度,例如“生日datetime(8)”。(T)在SQL Server中,nchar数据类型与nvarchar数据类型的区别是,前者是固定长度的,后者是可变长度的。 (T)在SQL Server中,存储逻辑型数据值的数据类型是bit. (F)SQL中的数据定义语言(DDL)用于实现数据增、删、改、查等数据操作。 (F)对于逻辑型的属性,赋值是只能写“YES”或“NO”。 (T)在SQL语句中,对一个字符型的属性赋值,应该两边用单引号将值包括起来。 [数据查询]1 (F)关系型数据库的连接查询有内连接和外连接之分,内连接只能实现两个表的查询,外连接可以实现多个表的查询。 (F)在SELECT语句的WHERE子句部分,不能再使用SELECT语句。 (T)在进行分组统计时,如果需要对分组进行筛选,应使用HAVING语句而不是WHERE语句。[索引与视图]2 (F)为了提高数据库的检索和更新速度,最好在数据表的每个字段都建立索引。 (F)聚集索引一定是唯一性索引,非聚集索引一定是非唯一性索引。 (T)主键索引必然是唯一索引。 (F)视图一旦创建,就存储了数据。 (F)视图只能用来查看数据,不能在视图上进行数据更新。 (F)视图只能用来查看一个基本表的数据,相当于在一个基本表上的投影与选择。 [数据完整性]1

数据库原理与应用-期末考试复习题

数据库原理期末考试复习题 一、单选题 1.在数据库中存储的是(C)。 A. 数据 B. 数据模型 C. 数据及数据之间的联系 D. 信息 2.现有一个“教师”表,其中一个字段是教师的住址(字符型,20位长),如果不希望此字段包含空值,即某位教师现没有住址,则希望此字段自动填入“还没有”,应该(C )。 A. 为此列创建一个check约束 B. 为此列创建一个foreign key约束 C. 为此列创建一个default约束 D. 为此列创建一个primary key约束 3.数据库系统包括( D )。 A. DB、DBMS B. DB、DBA C. DB、DBMS、DBA、计算机硬件 D. DB、DBMS、DBA、OS、计算机硬件 4.假设同一名称的产品有不同的型号和产地,则计算每种产品平均单价的SQL语句是(D)。 A. SELECT 产品名称,AVG(单价) FROM 产品GROUP BY 单价 B. SELECT 产品名称,AVG(单价) FROM 产品ORDER BY 单价 C. SELECT 产品名称,AVG(单价) FROM 产品ORDER BY 产品名称 D. SELECT 产品名称,AVG(单价) FROM 产品GROUP BY 产品名称 页脚内容1

5.数据库中,数据的物理独立性是指(C)。 A. 数据库与数据库管理系统的相互独立 B. 用户程序与DBMS的相互独立 C. 用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的 D. 应用程序与数据库中数据的逻辑结构相互独立 6.关系数据库规范化是为解决关系数据库中(B)问题而引入的。 A. 提高查询速度 B. 保证数据的安全性和完整性 C. 减少数据操作的复杂性 D. 插入异常、删除异常和数据冗余 7.当前数据库应用系统的主流数据模型是(C)。 A. 层次数据模型 B. 网状数据模型 C. 关系数据模型 D. 面向对象数据模型 8.如果两个实体集之间的联系是m:n,转换为关系时(B)。 A. 联系本身不必单独转换为一个关系 B. 联系本身必须单独转换为一个关系 C. 联系本身也可以不单独转换为一个关系 D. 将两个实体集合并为一个实体集 9.候选码中的属性可以有(C)。 A. 0个 B. 1个 C. 1个或多个 D. 多个 10.下列关于关系性质的描述中正确的是(B )。 页脚内容2

数据库原理及应用-期末考试试题

数据库原理及应用期末考试试题 一、单项选择题 1 2 3 4 5 6 7 8 9 1011121314151617181920 D C C B C A D B C A C A D D B C B C A B 1. 组织层数据模型的三要素是[ ]。 A.外模式,概念模式和内模式 B.关系模型,网络模型,层次模型 C.1:1的联系,1:n的联系,n:m的联系 D.数据结构,数据操作,数据约束条件 2在关系模型中,任何关系必须满足约束条件包括实体完整性、[ ]和用户自定义完整性。 A.动态完整性 B.数据完整性 C.参照完整性 D.结构完整性 3 SQL Server 中的角色是[ ]。 A. 一个服务器登录 B. 一个数据库用户 C. 一组权限的集合 D. 一个服务器用户 4.当数据的物理存储结构改变时,应用程序无需改变,这样的特性称为数据的[ ]。 A.逻辑独立性 B.物理独立性 C.程序无关性 D.物理无关性 5.下列哪个不是以处理大量数据为中心的应用程序的特点[ ]。 A.涉及的数据量大 B.数据需长期联机保存 C.数据的计算复杂 D.数据可被多个应用所共享 6.E-R图适用于建立数据库的[ ]。 A.概念模型 B.结构模型 C.逻辑模型 D.物理模型 7. 在关系数据库设计中,设计关系模型属于[ ]。 A.需求分析 B.物理结构设计 C.逻辑结构设计 D.概念结构设计 8.[ ]记录了对数据库中数据进行的每一次更新操作。 A.后援副本 B.日志文件 C.数据库 D.缓冲区 9. [ ]是用户定义的一组数据库操作序列,是一个基本的不可分割的工作单元。 A.程序 B.进程 C.事务 D.文件 10.信息世界中,实体是指[ ]。 A.客观存在的事物 B. 客观存在的属性 C. 客观存在的特性 D. 某一具体事件 11. 数据库系统中, DBA表示[ ] 。 A.应用程序设计者 B. 数据库使用者

数据库原理与应用(第四版)

数据库 一、选择题30’ 二、填空题20’涉及内容:C1,C2,C3,C7概念为主。其余章节少量涉及。 三、问答题20’(4*5’) 1.论述数据、数据库、数据库管理系统、数据库系统的概念; 数据:描述事物的符号记录。是数据库中存储的基本对象。 种类:文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等 特点:数据与其语义是不可分的 数据库:长期储存在计算机内、有组织的、可共享的大量数据的集合。 基本特征: ?数据按一定的数据模型组织、描述和储存 ?可为各种用户共享 ?冗余度较小 ?数据独立性较高 ?易扩展 数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件,是基础软件, 是一个大型复杂的软件系统。 用途:科学地组织和存储数据、高效地获取和维护数据 数据库系统:在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。 2.数据库系统的特点 ?数据结构化 整体结构化 不再仅仅针对某一个应用,而是面向全组织 不仅数据内部结构化,整体是结构化的,数据之间具有联系 数据库中实现的是数据的真正结构化 数据的结构用数据模型描述,无需程序定义和解释 数据可以变长 数据的最小存取单位是数据项 ?数据的共享性高,冗余度低,易扩充 数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应用共享使用。 数据共享的好处 减少数据冗余,节约存储空间 避免数据之间的不相容性与不一致性 使系统易于扩充 ?数据独立性高 物理独立性 指用户应用程序与存储在磁盘上的数据库中数据是相互独立的。 当数据的物理存储改变了,应用程序不用改变。

数据库原理及应用试题库1

三、简答题 1.设有关系模式:学生修课管理(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。设一名学生可以选修多门课程号,一门课程号可以被多名学生选修;一名学生有唯一的所在系,每门课程号有唯一的课程名和学分。 回答以下问题:(1)根据上述规定写出关系模式R的基本函数依赖; (2)找出关系模式R的候选码; (3)试问关系模式R最高已经达到第几范式为什么 (4)将R分解成3NF模式集。 答:(1)学号(姓名,所在系,性别)F 课程号(课程名,学分)F (学号,课程号)成绩F (学号,课程号)(姓名,所在系,性别,课程号,学分)P (2)候选码:学号,课程号 (3)存在部分函数依赖,R达到第一范式 (4)Student(学号,姓名,所在系,性别) SC(学号,课程号,成绩) Course(课程号,课程名,学分) 2.设有关系模式:学生表(学号,姓名,所在系,班号,班主任,系主任)。其语义为:一名学生只在一个系的一个班学习,一个系只有一名系主任,一个班只有一名班主任,一个系可以有多个班。 回答以下问题:(1)根据上述规定写出关系模式R的基本函数依赖; (2)找出关系模式R的候选码; (3)试问关系模式R最高已经达到第几范式为什么 (4)将R分解成3NF模式集。 答:(1)学号(姓名,所在系,班号,班主任,系主任)F 班号(班主任,系主任)F 班主任系主任F 所在系系主任F (2)候选码:学号 (3)存在传递依赖,不存在部分函数依赖,R达到第二范式 (4)Student(学号,姓名,所在系,班号) Class(班号,班主任) Dept(所在系,系主任) 3.设有关系模式:授课表(课程号,课程名,学分,授课教师号,教师名,授课时数)。其语义为:一门课程号有确定的课程名和学分,每名教师有确定的教师名,每门课程号可以由多名教师讲授,每名教师也可以讲授多门课程,每名教师对每门课程号有确定的授课时数。

数据库原理与应用习题答案

习题参考答案 第1章 一、填空题 1.答案:【1】分类【2】组织【3】存储【4】检索【5】维护 2.答案:【1】逻辑结构【2】存储空间【3】数据存取方法 3.答案:【1】数据冗余【2】不一致性【3】数据联系弱 4.答案:【1】应用程序【2】数据 5.答案:【1】1968年【2】Information Management System【3】层次 6.答案:【1】记录 7.答案:【1】数据的完整性【2】数据的安全性【3】并发控制、 【4】数据库的恢复 8.答案:【1】数据项【2】记录

附录2 习题参考答案275 9.答案:【1】概念模型【2】数据模型 10.答案:【1】数据结构【2】数据操作【3】数据的完备性约束条件 11.答案:【1】层次数据库【2】网状数据库【3】关系数据库、 【4】面向对象的数据库 12.答案:【1】实体内部的联系【2】实体与实体之间的联系 13.答案:【1】一对一的联系【2】一对多的联系【3】多对多的联系 14.答案:【1】三级模式【2】子模式【3】模式【4】存储模式 15.答案:【1】数据库【2】硬件【3】软件【4】数据库管理员(DBA) 16.答案:【1】数据库管理员【2】系统分析员【3】应用程序员【4】用户 二、选择题 1.C 2.C 3.A 4.A 5.C 6.B 7.A ①B⑤C⑦D④E③8.D9.C 10.B 11.C 12.A

276 数据库原理与应用 三、简答题 1.参照1.2.1数据库发展阶段的划分。 2.答案一:数据库是集中、统一地保存和管理某一单位或某一领域内所有有用信息的系统。这个系统根据数据之间的自然联系结构而成,数据冗余较少,且具有较高的数据独立性,能为多种应用服务。 答案二:数据库是以一定的组织方式存储在一起的、能为多个用户共享的、具有尽可能小的冗余度、与应用彼此独立的、相互关联的数据集合。 3.数据结构指数据的组织方式,包括物理方式与逻辑方式。数据字典(简称DD)是对系统中数据的详尽描述,是各类数据属性的清单。在RDBMS中,数据字典通常采用和普通数据同样的表示方式,DD在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善。 4.参照1.2.4数据库系统阶段。 5.参照1.2.4数据库系统阶段。 6.数据库系统的结构分为3级:用户的数据逻辑结构、整体数据的逻辑结构和数据的物理结构。当整体

数据库原理及其应用教程课后答案

第一章 1.2.从程序和数据之间的关系分析文件系统和数据库系统之间的区别和联系? (1)文件系统与数据库系统之间的区别 文件系统用文件将数据长期保存在外存上,数据库系统则用数据库统一存储数据;文件系统中程序和数据有一定的联系,二数据库系统中程序和数据分离;文件系统用操作系统中的存取方法对数据进行管理,数据库系统则用DBMS 统一管理和控制数据;文件系统实现以文件为单位的数据共享,二数据库系统实现以记录和字段为单位的数据共享。 (2)文件系统和数据库系统之间的联系 均为数据组织的管理技术;均由数据管理软件管理数据,程序与数据之间用存取方法进行转换;数据库系统是在文件系统的基础上发展起来的。 1.8.什么是数据库的数据独立性?它包含了哪些内容? 物理独立性? 所谓数据的独立性是指数据库中的数据与应用程序间相互独立,即数据的逻辑结构、存储结构以及存取方式的改变不影响应用程序。 数据独立性分两级:物理独立性和逻辑独立性 物理独立性是指当数据的物理结构改变时,通过修改映射,使数据库整体逻辑结构不受影响,进而用户的逻辑结构以及应用程序不用改变。 逻辑独立性是指当数据库的整体逻辑结构发生改变时,通过修改映射,使用户的逻辑结构以及应用程序不用改变。 1.11.解释实体、属性、实体键、实体集、实体型、实体联系类型、记录、数据项、字段、记录型、文件、实体模型、数据模型的含义。 实体:客观存在并且可以相互区别的“事物”称为实体。 属性:实体所具有的某一特性称为属性。 实体键:在实体型中,能唯一标识一个实体的属性或属性集称为实体的键。 实体集:同型实体的集合称为实体集。 实体型:具有相同属性的实体必然具有共同的特征,所以,用实体名及其属性名来抽象和描述同类实体,称为实体 型。 实体联系类型:一对一联系(1:1);一对多联系(1:n);多对多联系(m:n) 记录:(record)字段的有序集合称为记录。 数据项:标记实体属性的命名单位称为字段,也称为数据项。 字段:标记实体属性的命名单位称为字段,也称为数据项。 文件:同一类记录的集合称为文件。文件是用来描述实体集的。 数据模型:数据模型是数据库的框架,该框架描述了数据及其联系的组织方式、表达方式和存储路径,它是数据库

数据库原理及应用习题

窗体顶端 四、分析与设计题(4) 1.请依据下表内容完成题目要求。(40分) 1.建立数据库student。(2分) 2.按照图表中给出的表定义,请在student数据库中创建学生表。(4分) 3.查询学生表中女同学的基本信息。(2分) 4.查询成绩表中选修了课程号为'002'的所有学生的学号及成绩,并按成绩降序排列。(3分) 5.查询成绩表中课程号为'003'课程的成绩最高分。(2分) 6.查询所有学生的学号、姓名、所选课程的课程名称及相应成绩(4分) 7.查询学生表中各系的的学生人数,结果显示系别和人数两列。(3分) 8.向成绩表成绩中插入一行数据,列值分别为:('','003',89 )(2分) 9.修改课程表中 '数据结构'课程的学分,将其学分改为6 。(2分) 10.删除学生表中姓张的学生记录(2分) 11.根据学生表创建视图View1,视图包含计算机系所有学生的基本信息。(3分) 12.查询视图View1所包含的数据。(2分) 13.创建存储过程Proc1,使其完成如下功能:根据任意输入的学生学号,查询成绩表中该学生的学号、课程号及成绩。(使用输入参数)(5分) 14.执行第13小题中创建的存储过程Proc1,执行时输入的学生学号为''(2分) 15、删除成绩表。(2分) 答案: 完成如下所要求所用的操作命令:(共40分) 1、创建一个存放在D:\SQL路径下Test数据库,该数据库的主数据文件逻辑名称为Test_data,物理文件名为,初始大小为4MB,最大尺寸为10MB,增长速度为10%;数据库的日志文件逻辑名称为Test_log,物理文件名为,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。(4分) 2、依据表结构创建score表。(3分) 3、查看表中所的的数据行。(2分) 4、查看表中姓名、SQL 两列数据,并按成绩降序排列。。(2分) 5、查看表中姓王学生的基本信息。(3分) 6、查看所有学生的学号、姓名及总分(三门课相加)。(2分) 7、向score表中插入一行数据,值分别为:(2分) (1005 , '赵强', 64, 82 , 69) 8、修改表中姓名为王英的数据,使VB的值改为:85 (2分) 9、创建视图xs1,使其包含学号、姓名、SQL三列。(3分) 10、创建存储过程pjf,用它来按姓名查询score表中任一学生的平均成绩。(4分) 11、执行第10小题中创建的存储过程pjf。 (2分) 12、建立触发器tr1p,防止用户对score表有删除、修改及插入操作。(4分) 13、显示score中各门课的平均值。(3分) 14、删除score表中姓王的所有数据行。(2分) 15、删除test数据库。(2分)

数据库原理与应用 习题及解答

《数据库原理与应用》习题及解答 管理学院管理科学与工程系 2016.2

第1章数据库基本概念 1.什么是数据库系统?它有什么特点? 答: 数据库系统(database system ,DBS)是指实现有组织地、动态地存储大量关联数据、方便用户访问的计算机硬件、软件和数据资源组成的系统。通常由数据库、数据库管理系统、应用系统程序和数据库管理员及用户等几部分组成。 数据库系统有以下特点: (1) 数据结构化 (2) 数据共享 (3) 数据独立性 (4) 可控冗余度 2.什么是数据库管理系统?它的主要功能有哪些? 答:数据库管理系统(DBMS)是指位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新及各种数据控制,是数据库系统的核心软件。 它的主要功能: (1)数据定义功能 (2)数据操纵功能 (3)数据的完整性检查功能 (4)数据库的安全保护功能 (5)数据库系统的故障恢复功能 (6)在网络化环境下访问数据库的功能 3.某高校中有若干个系部,每个系部都有若干个年级和教研室,每个教研室有若干个教师,其中有的教授和副教授每人带若干个研究生,每个年级有若干个学生,每个学生选修若干课程,每门课可有若干个学生选修。试用E-R图描述此学校的关系概念模型。 答:

4.定义并解释概念模型中以下术语:实体,属性,码,E-R图 答: 实体:每一类数据对象的个体称为“实体”。 属性:每个实体集涉及的信息项目称为“属性”。 码:能够唯一标识其对应实体的属性或属性组合称为“码”。 E-R图:即实体-联系图,用来表示数据模型,直接从现实世界中抽象出实体类型及实体间联系。 5.SQL包含哪些组件,其功能各是什么? 答:1. SQL Server 数据库引擎(MSSQLServer service) 用来处理所有发自SQL Server客户端应用程序的T-SQL语句的组件,SQLServer service 协调和安排这些语句的执行,并向客户机反馈结果。支持分布式查询、并发控制。主要功能包括:数据管理,事务处理和查询,维护数据的完整和安全。 2. SQL Server 代理程序(SQLServerAgent service) 实现运行调度SQL Server管理任务的代理程序。每个实例都有一个SQLServerAgent service。SQLServerAgent相当于SQLServer2005的系统自动管理、控制、调度中心,启动代理服务能够使系统按照系统管理员的意图自动运行并管理数据库系统。 3. Microsoft 搜索服务( Microsoft search service) 是一个全文搜索和查询服务,用于建立数据库的全文目录和索引,并支持对全文的检索。 4. 分布式事务处理协调器(Distributed Transactuion Coordinator) 用于完成分布式事务(在物理上不同的两台SQL Serever2005 服务器上完成的同一件任务)并保证事务的一致性。 6.安装SQL Server前应做哪些规划? 答:(1)如果要在运行 Microsoft Windows NT或 Micorsoft Windows XP 的计算机上安装 SQL Server 2008,并且希望 SQL Server 2008 与其它客户端和服务器通讯,则创建一个或多个域用户帐户(2)用具有本地管理权限的用户帐户登录到操作系统,或者给域用户帐户指派适当的权限。 (3)关闭所有和 SQL Server 相关的服务。包括所有使用 ODBC 的服务,如Microsoft Internet Information 服务 (IIS)。 (4)关闭 Microsoft Windows NT 事件查看器和注册表查看器(Regedit.exe 或Regedt32.exe)。 7.SQL Server支持哪两种身份认证模式?各有何特点? 答:(1) Windows身份验证模式 客户机使用Windows 操作系统的用户账户和密码连接数据库服务器时,SQL Server2008 使用Windows 操作系统来进行身份验证。 (2)混合身份验证模式 客户机使用用户账户和密码连接数据库服务器时,服务器首先在数据库中查询是否有相同账户和密码的用户,若有则接受连接。若数据库中没有相应的账户

数据库原理与应用试题(A)

湖南农业大学课程考核试卷 课程名称(全称):数据库原理与应用 课程代码:20363B1 考核时间:2008 年 7 月 日 试卷号:A 考核对象:2006级电子商务 1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是____阶段。 A .数据库系统 B .文件系统 C .人工管理 D .数据项管理 2.对关系模型叙述错误的是____。 A .建立在严格的数学理论、集合论和谓词演算公式的基础之上 B .微机DBMS 绝大部分采取关系数据模型 C .用二维表表示关系模型是其一大特点 D .不具有连接操作的DBMS 也可以是关系数据库系统 3.关系运算中花费时间可能最长的运算是____。 A .投影 B .选择 C .笛卡尔积 D .除 4.假定学生关系是S (S #,SNAM E ,SEX ,AGE ),课程关系是C (C #,CNAME ,TEACHER ),学生选课关系是SC (S #,C #,GRADE )。 要查找选修“COMPUTER ”课程的“女”学生姓名,将涉及到关系____。 A .S B .SC ,C C .S ,SC D .S ,C ,SC 一 选择题(本大题共20分,每小题2分)

5. 消除了部分函数依赖的INF的关系模式,必定是____。 A.1NF B.2NF C.3NF D.4NF 6.关系规范化中的删除操作异常是指________。 A.不该删除的数据被删除B.不该插入的数据被插入 C.应该删除的数据未被删除D.应该插入的数据未被插入7.在关系数据库设计中,设计关系模式是____的任务。 A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段 8.从E-R模型关系向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的码是____。 A.M端实体的码B.N端实体的码 C.M端实体码与N端实体码组合D.重新选取其他属性9.下面哪个不是数据库系统必须提供的数据控制功能____。 A.安全性B.可移植性C.完整性D.并发控制 10.设有两个事务T1、T2,其并发操作如图1所示,下面评价正确的是____。 A该操作不存在问题B.该操作丢失修改 C.修改该操作不能重复读D.该操作读“脏”数据 T1 T2 ①读A=10,B=5 ②读A=10 A=A*2写回 ③读A=20,B=5 求和25验证错 图1事务并发操作图 二填空(本大题共20分,每空2分) 1._________是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。

相关文档
最新文档