2.某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。
根据上述语义画出E-R图,在E-R图中需注明实体的属性、联系的类型等。
.5.
第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.