数据库 期中测验试题NEW

发布 2021-05-05 00:12:28 阅读 8135

2009-2010第2学期数据库原理与应用期中测验试题。

班级学号姓名。

一.(每题3分共21分)

1.试述关系模型的三个组成部分。

关系模型的三个组成部分为关系结构、关系操作和关系完整性约束。

在关系模型中,无论是实体集,还是实体集之间的联系均由单一的关系表示。关系模式可以形式化地表示为:r(u,d,dom,f),其中r为关系名,u为组成该关系的属性集合,d为属性组u中属性所来自的域,dom为属性向域的映像的集合,f为属性间数据的依赖关系集合。

关系操作语言包括关系代数、关系演算和基于映像的语言。关系操作语言灵活方便.表达能力和功能都非常强大。其主要特点是:

关系操作语言操作一体化;关系操作的方式是一次一集合方式;关系操作语言是高度非过程化的语言。

关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。

2.试述关系操作语言的特点和分类。

关系操作语言灵活方便,表达能力和功能都非常强大,其主要特点是:关系操作语言操作一体化;关系操作的方式是一次一集合方式;关系操作语言是高度非过程化的语言。关系操作语言包括关系代数、关系演算和基于映像的语言。

关系代数语言是用对关系的运算来表达查询要求的语言。关系演算语言是用查询得到的元组应满足的谓词条件来表达查询要求的语言。基于映像的语言是具有关系代数和关系演算双重特点的语言。

3.定义并解释下列术语,说明它们之间的联系与区别。

1)主码、候选码、外码。

1)若关系中的某一属性组(或单个属性)的值能惟一标识一个元组,则称该属性组(或属性)为候选码。当一个关系有多个候选码时,应选定其中的一个候选码为主码;而如果关系中只有一个候选码,这个惟一的候选码就是主码。

设f是基本关系r的一个或一组属性,但不是关系r的主码(或候选码)。如果f与基本关系s的主码ks相对应,则称厅是基本关系r的外码。

2)笛卡尔积、关系、元组、属性、域。

2)给定一组域d1,d2,…,dn.这些域中可以有相同的部分,则d1,d2,…,dn的笛卡地积为:d1×d2×…×dn﹦{(dl,d2,…,dn)∣di∈di,i=1,2, …n}。

d1×d2×…×dn的子集称作在域d1,d2,…,dn上的关系,表示为:r(d1,d2,…,dn)。其中,r表示关系的名字,n是关系的目。

笛卡儿积集合中的每一个元素(dl,d2,…,dn)称为一个元组。

关系中的每一列称为一个属性。

域为数据集合,属性值**于域。

3)关系、关系模式、关系数据库。

关系是留卡儿积的有限子集,所以关系也是一个二维表。

关系的描述称为关系模式。关系模式可以形式化地表示为:r(u,d,dom,f)。

其中r为关系名,它是关系的形式化表示;u为组成该关系的属性集合;d为属性组u中属性所来自的域;dom为属性向域的映像的集合;f为属性问数据的依赖关系集合。

在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库。

4. 试述关系模型的完整性规则。在参照完整性中,为什么外码属性的值也可以为空?什么情况下才可以为空?

关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。

关系的实体完整性规则为:若属性a是基本关系r的主属性,则属性a的值不能为空值。关系的参照完整性规则为:

若属性(或属性组)f是基本关系r的外码,它与基本关系s的主码ks相对应(基本关系r和s不一定是不同的关系),则对干r中每个元组在f上的值必须取空值(f的每个属性值均为空值)或者等于s中某个元组的主码值。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

由于外码在被参考关系a中,是非主属性,其值为空,不影响关系的实体完整性。当外码值不清楚或不确定时,可以设为空值,此时参照表中没有对应的记录与之匹配。

5. 试述等值连接与自然连接的区别和联系。

等值连接是从关系r和s的广义笛卡儿积中选取a和b属性值相等的那些元组。自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。

二、(共49分)

6. 设职工社团数据库有三个基本表:

职工zg(职工号,姓名,年龄,性别); 社会团体st(编号,名称,负责人,活动地点); 参加cj(职工号,编号,参加日期)。 其中:

1)职工表的主码为职工号。 2)社会团体表的主码为编号;外码为负责人,被参照表为职工表,对应属性为职工号。

3)参加表的职工号和编号为主码;职工号为外码,其被参照表为职工表,对应属性为职工号;编号为外码,其被参照表为社会团体表,对应属性为编号。

试用sql语句完成下列操作:(以ms sql-server 2000的t-sql为准)

l)定义职工表、社会团体表和参加表,并定义其主码和参照关系。

creat table zg(职工号char(8)not null unique,姓名char(8)not null,年龄smallint,性别char(2),check(性别 in(‘男’,‘女’))

creat table st (编号char(8)not null unique,(unique)

名称char(12)not null,负责人 char(8),活动地点 varchar(50),constraint c1 foreign key(负责人)references职工(职工号));

constratint cl foreign key (负责人) references 职工 (职工号)

creat table参加(职工号char(8),编号char(8),参加日期 date

constraint c2 primary key clustered (职工号, 编号) on [primary]

constraint c3 foreign key (职工号)references职工(职工号)

constraint c4 foreign key (编号)references参加(编号))

2)建立下列两个视图。

社团负责人str(编号,名称,负责人,负责人姓名,负责人性别);

参加人情况cjr(职工号,姓名,社团编号,社团名称,参加日期)

creat view社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别)

as select编号,名称,负责人,姓名,性别。

from社会团体,职工。

where社会团体,负责人=职工.职工号;

creat view参加人情况(职工号,姓名,社团编号,社团名称,参加日期)

as select参加.职工号,姓名,社会团体编号,名称,参加日期。

from职工,社会团体,参加。

where职工.职工号=参加.职工号and参加.编号=社会团体.编号;

3)查找参加唱歌队或篮球队的职工号和姓名。

select参加人情况。职工号,参加人情况。姓名。

from 参加人情况。

where社会团体.名称in(‘唱歌队’,‘篮球队’)

4)查找没有参加任何社会团体的职工号和姓名。

4)select 职工号,姓名。

from 职工。

where not exists(select*from 参加人情况)

5)查找参加了全部社会团体的职工号和姓名。

select职工号,姓名。

from职工。

where not exists(select*

from参加。

where not exists

select*

from社会团体。

where参加.职工号=职工.职工号and

参加.编号=社会团体.编号));

6)查找职工号为“1001”的职工所参加的全部社会团体的编号。

select职工号。

from职工。

where not exists(select*

from参加参加1

where参加1.职工号=‘1001’and not exists

select*

from参加参加 2

where 参加2.编号=参加1.编号and

参加2.职工号一职工.职工号));

三、(30分)

7. 对于学生选课关系,其关系模式为:学生s(学号,姓名,年龄,所在系);

课程c(课程名,课程号,先行课);选课sc(学号,课程号成绩)。

a. 用关系代数表达式完成如下查询。

1)求学过数据库课程的学生的姓名和学号。

2)求学过数据库和数据结构的学生姓名和学号。

3)求没学过数据库课程的学生学号。

b.写出完成下列功能的sql语句。

1) 统计各门课的选课人数:

2) 计算个人的平均成绩:

3) 90分以上的学生的学号及(90分以上的)人数(课程号=‘001’)

4) 插入记录课程(课程号,课程名)

5).修改元组成绩=成绩+10

6) 删除某个元组学号 = n'9601003'):

学生(学号,姓名,年龄,所在系);

课程(课程名,课程号,先行课);

选课(学号,课程号成绩。

1) 统计各门课的选课人数:

select count(课程号) as 选课人数, 课程号。

from dbo.成绩。

group by 课程号。

2) 计算个人的平均成绩:

select 学号, **g(distinct 成绩) as 平均成绩。

from dbo.成绩。

group by 学号。

3) 90分以上的学生的学号及(90分以上的)人数。

select 学号, count(学号) as 人数。

from dbo.成绩。

where (成绩 >=90) and 课程号='001'

group by 学号。

4) 插入记录。

insert

into 课程(课程号,课程名)

values ('018 ',软件2')

5) 修改。

语句格式。update 《表名》

set 《列名》=《表达式》[,列名》=《表达式》]…

[where 《条件》];

功能。修改指定表中满足where子句条件的元组。

update 成绩。

数据库2019 试题

a 数据结构,数据通信,关系操作。b 数据结构,数据操作,数据完整性约束。c 数据通信,数据操作,数据完整性约束。d 数据结构,数据通信,数据完整性约束。4 数据管理技术的发展是与计算机技术及其应用的发展联系在一起的,经历了由低级到高级的发展。分布式数据库 面向对象数据库等新型数据库属于哪一个发展阶...

数据库原理 数据库管理系统复习

数据库 access 复习要点 数据库access基础 数据库管理系统 数据库原理 数据库原理及应用 以下为重点复习内容,请同学们务必背出下列重点概念,考试为闭卷笔试。复习教材 access数据库应用基础与实训教程 1.数据库管理系统的英文缩写 dbms 2.access 数据库文件的扩展名是什么?...

数据库原理 数据库管理系统复习

数据库 access 复习要点 数据库access基础 数据库管理系统 数据库原理 数据库原理及应用 以下为重点复习内容,请同学们务必背出下列重点概念,考试为闭卷笔试。复习教材 access数据库应用基础与实训教程 1.数据库管理系统的英文缩写 dbms 2.access 数据库文件的扩展名是什么?...