第2章 关系数据库
一、 名词解释
关系模型:
关系模型主要有三个组成部分: ? 数据结构(二维表格即关系);数据操作(其理论依据是关系代数和关系演算);完整性规则(实体完整性、参照完整性和用户完整性)。 1.数据结构
在关系模型中,实体、实体间的各种联系均用关系表示;其逻辑结构就是二维表格。
2.数据操作
数据操作用于描述系统的动态特性,其理论依据是关系代数和关系演算。
数据库主要有检索和更新(包括插入、删除和修改)两大类操作。在关系模型中必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。 (1)常用的关系操作 包括:选择(Select)、 投影(Project)、 连接(Join)、
除(Divide)、 并(Union) 交(Intersection)、
差(Difference)、 插入(Insert)、 删除(Delete)、
修改(Update)等操作。
特点:集合操作方式(操作的对象和结果都是集合)。
操作方式:采用关系代数和关系演算方式。关系代数是用关系运算来表达查询要求的方式;关系演算是用谓词来表达查询要求的方式。在关系演算中又分元组关系演算和域关系演算。 (2)关系数据语言 1)抽象的查询语言
关系代数、关系演算是抽象的查询语言,它们与具体的DBMS中实现的实际语言并不完全一样,但它们能用作评估实际系统中查询语言能力的标准和基础。 2)SQL语言
SQL语言是介于关系代数、关系演算之间的一种语言,它是把查询、定义、控制合为一体的关系数据语言。
3.关系模型的三类完整性规则
关系模型的三类完整性规则,是对数据的约束。在关系模型中提供了三类完整性规则:实体完整性、参照完整性和用户定义的完整性。
主键:用户选作元组标识的一个侯选键称为主键。
外键:若有一个关系R中包含有另一个关系S的主键K所对应的 属性组F ,且F不是R的主键,则称F为R的外键。 候选键:能唯一标识元组的最小属性组合。 实体完整性:
参照完整性:
.6.
关系系统:
当一个系统满足以下两条要求时,它就是一个关系系统:
(1)支持关系数据结构。在用户眼里,数据库是由表,并且只有表构成的。
(2)不仅应有关系代数中选择、投影和(自然)连接运算,并且不能要求用户定义任何物理存取路径。
上述两点构成了关系系统的最基本要求。
二、 单项选择题
BBABB、ACDBD
三、 填空题
1.“关系”这个术语来自数学中的_集合_概念,因此,关系中任意两个元组不能__重复__。 2. 关系代数运算都是_关系_级的运算,即它们的每个运算分量是一个_关系_,运算的结果也是
_关系_。
3. 关系数据库中,实现表与表之间的联系是通过__外码__。
4. 两个没有公共属性的关系作自然连接时等价于它们作_集合并_。
5. 关系数据库中,实现主码标识元组的作用是通过_实体完整性实现的_。
6. 在关系数据库中,实现“表中任意两行不能相同”的约束是_实体完整性_。
7. 传统的集合“并、交、差”运算施加于两个关系时,这两个关系的_度(列数)_必须相等,
_对应列_必须取自同一个域。
8. 在关系代数中,对一个关系做投影操作后,新关系的元组个数_等于或小于_原来关系的元组个数。
9. 设关系 R 和关系 S 的元数分别是 3 和 4 ,关系 T 是 R 与 S 的笛卡尔积,即:T=R×S
则关系 T 的元数是 7 。
10.关系代数中,连接运算是__笛卡尔积、选择和投影_操作的组合。
四、 程序设计题 1.解:
πB,C(R) σA=D(R×S) B 3 5 8 C A B C D E 4 4 7 7 9 5 7 4 8 9 7 8 5 2.现有关系数据库如下:?
S(学号,姓名,性别,专业,奖学金)? C(课程号,课程名,学分)? SC(学号,课程号,分数)?
用关系代数表达式实现下列各题。
(1)检索“英语”专业学生所学课程的学号、姓名、课程名和分数。
(2)检索“数据库技术”课程成绩高于90分的所有学生的学号、姓名、专业和
分数。
(3)检索选修课程号为C2和C5的学生学号。
(4)检索不选修“C1”课程的学生学号,姓名和专业。
(5)检索没有任何一门课程成绩不及格的所有学生的学号、姓名和专业。
3.对于上题的关系S、C、SC,试用元组演算表达式表示下列各题。?
(1)检索选修课程号为K2的学生学号和分数。
.7.
(2)检索“数据库技术”课程的学生学号和姓名。 (3)检索选修课程号为K2和K5的学生学号。 (4)检索不选修“C1”课程的学生姓名和专业。 (5)检索选修全部课程的学生姓名。
4.有关系R、S和W,写出下列域演算表达式的结果。
R S W A B C A B C A B C 6 b 7 3 a d 6 b 2 6 d 4 6 b e 5 a 7
3 c 5 5 c f 2 c 9
(1) R1= { xyz| R(xyz) ?(z>6∨y=a) } (2) R2={ xyz| R(xyz)∨S(xyz)?x=6?z?7 }
(2) R3={vyx|(?z)( ?u)( R(xyz)?w(uvt)?z>u)}
5.设 R 和 S 都是二元关系,把元组表达式
{ t| R(t)?(?u)(s(u)?u[1]=t[2]) }转换成等价的: (1) 汉语查询句子; (2) 关系代数表达式; (3) 域表达式。
.8.
第3章 关系数据库标准语言SQL
一、基本概念题
1. SQL语言有什么特点? 答:(1)语言功能的一体化 (2)模式结构的一体化 (3)面向集合的操作方式
(4)自含式语言(交互式语言),又是嵌入式语言两种使用方式、同一语法结构 (5)语言简洁、易学易用 (6)高度非过程化
2. 试指出SQL语言中基本表和视图的区别和联系是什么?
答:一个视图虽然也是一个关系,但是它与基本表有着本质的区别。任何一个视图都是从已有的若干关系导出的关系,它只是逻辑上的定义,实际并不存在。在导出时,给出一个视图的定义,此定义存放在数据字典中,但没有真正执行此定义。当使用某一视图查询时,将实时从数据字典中调出此视图的定义;根据此定义以及现场查询条件,从规定的若干关系中取出数据,组织成查询结果。因此,视图是虚表。
3. 哪些视图是可以更新的?哪些视图是不可以更新的?请各举一例说明。
4. 嵌入式SQL语言需解决的几个问题是什么?怎么解决? 答:使用嵌入式SQL必须解决以下几个问题:
.9.
⑴ 预编译器不能识别和接受 SQL语句,因此,嵌入式程序中,应有区分 SQL语句与 宿主语言语句的标记。如:在C语言中使用EXEC SQL标记。
⑵ DBMS和宿主语言程序(程序工作单元)如何进行信息传递。解决方法:主变量及其指示变量、SQL通信区。
⑶ 一条SQL语句原则上可产生或处理一组记录(集合),而宿主语言一次只能处理一
个记录,必须协调这两种处理方式。解决方法:游标。 5. 什么是游标?使用游标有哪几个步骤?
答:游标是系统为用户的查询结果开辟带指针的数据缓冲区,存放SQL的查询结果,每个游标有一个单独的名字。 游标的操作的主要步骤:
(1)用DECLARE语句声明游标,并定义游标类型和属性; (2)调用OPEN语句打开和填充游标;
(3)执行FETCH函数(或语句)读取游标中的单行数据; (4)如果需要,修改游标基表中的当前行数据; (5)执行CLOSE语句关闭游标;
(6)执行DEALLOCATE语句删除游标,并释放它所占用的所有资源。
6. 嵌入式SQL语言在什么情况下需要使用游标?什么情况下不需要使用游标? 答:不需要使用游标的语句有: .说明性语句;
.数据定义语句; . 数据控制语句; .INSERT语句
.查询结果为单记录的SELECT语句 . 对满足条件的当前记录(或记录集),一次性进行修改或删除的UPDATE和 DELETE语句(有些书上把 UPDATE或 DELETE语句这种使用形式称为非CURRENT形式)。
需要使用游标的SQL语句有:
.查询结果为多条记录的SELECT语句;
.对满足条件的结果集中记录分别进行修改或删除的UPDATE、DELETE语句。也称为CURRENT形式的UPDATE、DELETE语句
7. 什么是Transact-SQL?它在哪些方面增加了标准SQL的功能? 答:Transact-SQL 的缩写为T-SQL,T-SQL是Microsoft 公司的SQL Server的数据库语言,它是对标准SQL语言的扩充。T-SQL以存储过程、函数、数据类型、逻辑运算符及流程控制语句等增加了SQL语言的功能。
8. 什么是触发器?触发器的主要优点是什么?
答:所谓触发器就是一类由事件驱动的特殊过程(特殊类型的存储过程),当一个触发器建立后,它作为一个数据库对象被存储。当某个触发事件发生时,触发器被触发,执行一系列操作。触发器一旦由某个用户建立,任何用户对该触发器指定的数据进行增、删或改操作时,DBMS系统将自动激活相应的触发器,定义在触发器中的功能将被DBMS执行,在核心层进行集中的完整性控制。 触发器的主要优点
⑴ 触发器能够实施比外键约束,检查约束和规则对象等更为复杂的数据完整性检查。 ⑵ 和约束相比,触发器提供了更多的灵活性。约束将系统错误信息返回给用户,而触发器则可以打印错误信息,调用其他存储过程,或根据需要纠正错误。 ⑶ 无论对表中的数据进行何种更新(增、删、改操作),相应的触发器都能被激活,对数据实施完整性检查和处理。
⑷ 触发器能够级联更新数据库中的表内容。
.10.
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数据库实验指导书答案(2)在线全文阅读。
相关推荐: