? 关系数据结构关系定义关系性质关系模式
关系的完整性实体完整性参照完整性用户定义完整性
关系代数
关系数据库管理系统关系数据库第 2章第 2章
2.1 关系数据结构
2.1.1 关 系
⒈ 域( Domain) 定义 2.1 域是一组具有相同数据类型的值的集合。
笛卡尔积可表示为一个二维表,表中的每行对应一个元组,表中的每列对应一个域。
m= ∏ mi i=1 n
若 Di( i= 1,2,…,n)为有限集,其基数( Cardinal number)为
mi( i= 1,2,…,n),则 D1× D2× … × Dn的基数为:
其中每一个元素 (d1,d2,…,dn)叫作一个 n元组 (n-Tuple),或简称为元组。
元素中的每一个值 di叫作一个分量( Component)。
定义 2.2 给定一组域 D1,D2,…,Dn,(允许部分或全部相同)。
D1,D2,…,Dn的笛卡尔积为:
D1× D2× … × Dn={( d1,d2,…,dn)| di∈ Dj,j= 1,2,…,n }
⒉ 笛卡尔积( Cartesian Product)
基本概念
笛卡 尔 积设有域 D2={,,,},则笛卡 尔 积
D1× D2={( A,),( A,),( A,),( A,)
.,,,
.,,,
.,,,
( k,),( k,),( k,),( k,) }
D1={ A,2,3,…,Q,k },
2.1 关系数据结构
2.1.1 关 系
⒉ 笛卡尔积( Cartesian Product)
PC
K
....
A
A
花色牌值分量元组基数,13× 4 = 52
2.1.1 关 系
3,关 系 (relation)
定义 2.3 D1× D2× … × Dn的有意义的子集称为在域 D1,D2,…,Dn上的关系,
记为 R(D1,D2,…,Dn)。
其 中,R为关系的名; n为关系的度(目); r∈R 表示 r是 R中的元组关系 R中构成候选码的属性称为主属性。
4.候选码 (candidate key):
值能唯一标识一个元组的属性组,且不含多余属性,称该属性组为候选码。
一个关系有多个候选码时,选定其中的一个作为主码。
关系 R的某一属性组 X不是 R的码,但是其他某一关系的码,称 X为 R的外部码。
5.主码 (primary key):
6.外部码 (foreign key):
7.主属性 (prime attribute):
例:
关系中的每一个属性值都必须是不能再分的元素。
每一列中的数值是同类型的数据,来自同一个域。
不同的列可对应于同一个域,但给予不同的属性名。
同一关系中不允许有相同的记录。无重复行。
行、列的次序可以任意交换,不影响关系的实际意义。
关系性质
2.1.1 关 系学生,S(S#,SNAME,SA,SD)
课程,C(C#,CNAME,PC#)
选课,SC(S#,C#,GR)
S,候选码,S#,SNAME; 主码,S#
C,候选码,C#; 主码,C#
SC,候选码,(S#,C#); 主 码,(S#,C#);
外部码,S#,C#
2.1.2 关系模式
8,关系模式定义 2.4 对关系的描述称为关系模式,记为 R(U,D,DOM,F);
其 中,R为关系名,U为属性集,
D为 U所对应的域的集合,
DOM为属性向域的映象集合,
F为属性间数据依赖关系的集合 。
● 关系模式是型,是静态的、稳定的;
● 关系是关系模式的值是动态的,是随时间而变化的。
S(S#,SNAME,SA,SD)关系模式通常简记为,R(U)
2.1.3 关系数据库在关系模型中,实体以及实体间的联系都是用关系来表示。在一个给定的现实世界领域中,相应于所有实体及实体之间的联系的关系的集合构成一个关系数据库。
实体完整性
2.2 关系的完整性
( Entity Integrity)
规则 2.1 若 A是关系 R( u) (A∈u) 上的主属性,则属性 A不能取空值。
例,选课 SC中的 S#,C#均不能取空值。
例,职工 EMP(EMP#,ENAME,JOB,DEPT#)
部门 DEPT(DEPT#,DNAME,LOC)
则,EMP中的 DEPT#为空或为 DEPT中的 DEPT#的 值参照完整性 ( Referential Integrity)
规则 2.2 属性(属性组) X是关系 R的外部码,Ks是关系 S的主码,且 X与
Ks相对应(即 X,Ks是定义在同一个(组)域上,则 R中任一元组在 X上的值为,X=空值或 S中的某个元组的 Ks值
2.2 关系的完整性
( user-defined Integrity)用户定义的完整性用户自定义完整性是针对某一具体数据的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用环境决定。
例,属性的取值范围 属性的非空限制
2.3 关系代数相关表述记号
⒈ 设关系模式为 R(A1,A2,…,An) 。它的一个关系设为 R。
t∈ R表示 t是 R的一个元组。 t[Ai]则表示元组 t中相应于属性 Ai的一个分量 。
⒋ 给定一个关系 R(X,Z),X和 Z为属性组。我们定义,当 r[X]=x时,x在 R中的象集( Images Set)为,Zx={ r[Z]|r∈ R,r[X]=x }
它表示 R中属性组 X上值为 x的诸元组在 Z上分量的集合。
⒉ 若 A={Ai1,Ai2,…,A ik},其中 Ai1,Ai2,…,A ik是 A1,A2,…,An 中的一部分,则 A称为属性列或域列。 A 则表示 {A1,A2,…,An} 中去掉
{Ai1,Ai2,…,A ik}后剩余的属性组。 t[A]=(t[Ai1],t[Ai2],…,t[A ik])表示元组 t 在属性列 A上诸分量的集合。
⒊ R为 n目关系,S为 m目关系。 r∈ R,s∈ S。 rs 称为元组的连接。
它是一个 (n+m)列的元组,前 n个分量为 R中的一个 n元组,后 m个分量为 S中的一个 m元组。

传统的集合运算
2.3 关系代数
并运算
差运算
交运算
广义笛卡尔积 c1b2a2
c2b2a1
c1b1a1
CBA
c1b2a2
c2b3a1
c2b2a1
CBAR1 R2
A B C
a1 b1 c1
a1 b2 c2
a1 b3 c2
a2 b2 c1
R1∪ R2
A B C
a1 b2 c2
a2 b2 c1
R1∩R2
A B C
a1 b1 c1
R1- R2
专门的关系运算学号 学生姓名 所属系名 学生年龄
S# SN SD SA
S1 A CS 20
S2 B CS 21
S3 C MA 19
S4 D CI 19
S5 E MA 20
S6 F CS 22
(S)
选择运算是从关系中选取使公式为真的元组。这是从行的角度进行的运算。
在关系 R中选择满足给定条件的元组,记做:
σF (R) ={ r | r ∈ R Λ F(r)=‘真 ’ }
F是一个公式,表示形式为由逻辑运算符( ∧,∨,?)连接各算术表达式组成 。
算术表达式的基本形式为,XθY,θ ={>,≥,<,≤,=,≠},
X,Y是属性名或常量或简单函数。
例 1 求计算机科学系 CS的学生
σ SD=‘CS’ (S)
学号 学生姓名 所属系名 学生年龄
S# SN SD SA
S1 A CS 20
S2 B CS 21
S3 C MA 19
S4 D CI 19
S5 E MA 20
S6 F CS 22
(a)
(S)
(S’)
S# SN SD SA
S1 A CS 20
S2 B CS 21
S6 F CS 22
σ SD=‘CS’ (S)
选择运算
投影运算这是从列的角度进行的运算 。
例 2 πSN,SD (S) 即求得学生关系 S在学生姓名和所在系这两个属性上的投影结果。
πSN,SD (S)学号 学生姓名 所属系名 学生年龄
S# SN SD SA
S1 A CS 20
S2 B CS 21
S3 C MA 19
S4 D CI 19
S5 E MA 20
S6 F CS 22
(a)
(S)
SN SD
A CS
B CS
C MA
D CI
E MA
F CS
关系 R上的投影是从 R中选择若干属性组 A成新的关系。记做:
πA (R) ={ r[A] | r ∈ R}
投影之后不仅取消了某些列,还可能取消某些元组。
πSA (S)
SA
20
21
19
连接运算是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
记做,R S,其中,F是条件表达式,它涉及到对两个关系中的属性的比较。
如果 F仅仅是一个相等条件,即等值连接。
连接运算
∞ F
例 3 设关系 R,S如下图:
2b5
2b3
10b3
7b2
3b1
EBS
12b4a2
8b3a2
6b2a1
5b1a1
CBAR
R S∞
C<E
A R.B C S.B E
a1 b1 5 b2 7
a1 b1 5 b3 10
a1 b2 6 b2 7
a1 b2 6 b3 10
a2 b3 8 b3 10
A B C E
a1 b1 5 3
a1 b2 6 7
a2 b3 8 10
a2 b3 8 2
R S∞
除运算给定关系 R(X,Y)和 S(Y,Z),其中 X,Y,Z为属性组。 R中的 Y与 S中的 Y
可以有不同的属性名,但必须出自相同的域集。 R与 S的除运算得到一个新的关系 P(X),P是 R中满足下列条件的元组在 X属性列上的投影:元组在 X上分量值 x的象集 Yx包含 S在 Y上投影的集合。记作:
R÷ S = { r[X]|r∈ R ∧ Yx?ΠY(S) }
其中 Yx为 x在 R中的象集,x=r[X]。
学号 课程号 学习成绩
S# C# GRADE
S1 C2 A
S2 C2 C
S3 C2 B
..,.,.
学号 课程号 学习成绩
S# C# GRADE
S1 C1 A
S1 C2 A
S1 C3 A
S1 C5 B
S2 C1 B
S2 C2 C
S2 C4 C
S3 C2 B
..,.,.
SC
关系代数表达式例四,设教学数据库中有二个关系:
学生关系 S( S#,SNAME,SD,AGE )
学习关系 SC( S#,C#,GRADE)
1) 检索学习课程号为 C2的学生学号与成绩
πS#,GRADE(σ C# =‘C2’ (SC))
σ C# =‘C2’ (SC)
学号 课程号 学习成绩S# C# GRADE
S1 C1 A S1 C2 A
S1 C3 A S1 C5 B
S2 C1 B S2 C2 C
..,.,.
SC
学号 学生姓名 所属系名 学生年龄S# SNAME SD SA
S1 A CS 20S2 B CS 21
S3 C MA 19S4 D CI 19
S5 E MA 20..,.,.,.
(S)
S SC∞
σ C# =‘C2’( )S SC∞
2) 检索学习课程号为 C2的学生学号和姓名学号 学生姓名 所属系名 学生年龄 课程号 学习成绩
S# SNAME SD SA C# GRADES1 A CS 20 C1 A
S1 A CS 20 C2 A S1 A CS 20 C3 A
S1 A CS 20 C5 A S2 B CS 21 C1 B
S2 B CS 21 C2 C,.,.,.,.,.,.
3) 检索学习课程号为 C2和 C3的学生学号和所在系
πS#,SD(σ C# =‘C2’,C#=‘C3’( ))S SC∞
πS#,SNAME(σ C# =‘C2’ ( ) )S SC∞
S# SNAME
S1 A
S2 B
2.4 关系数据库管理系统 (RDBMS)的讨论关系系统支持关系模型的关系数据库管理系统简称关系系统。
1.下述关系的 DBMS不能称为关系系统
1)不支持关系数据结构的系统
2)支持关系数据结构,但无 δ,π,∞ 运算功能的系统
3)支持关系数据结构,有 δ,π,∞ 运算,但要求定义物理存取路径的系统可称为关系系统的 DBMS,当且仅当
1)支持关系数据结构(关系数据库)
2)支持 δ,π,∞运算,且不要求用户定义任何物理存取路径
2.4 关系数据库管理系统 (RDBMS)的讨论关系系统分类
4.全关系系统:
支持关系模型的所有特征。在关系完备系统的基础上,进一步支持实体完整性和参照完整性等。
DBⅡ,ORACLE,SYBASE,… 已接近这个目标。目前尚无全关系系统。
1.表式系统:
仅支持关系数据结构,不支持关系操作。
2.(最小)关系系统:
支持关系数据结构,支持 δ,π,∞ 运算,且不定义物理路径。
3.关系完备系统:
支持关系数据结构和所有关系代数操作(或功能上与关系代数等价)。
DBⅡ,ORACLE,SYBASE,… 属于这一类小 结
关系数据结构关系定义关系性质关系模式
关系的完整性实体完整性参照完整性用户定义完整性
关系代数
关系数据库管理系统