本节对应原书 PDF 第 101–105 页。定义、定理、公式、例题及其原解答逐字取自原书;解释性文字为 AI 通俗化改写;标有「解读」的引用块为 AI 补充的额外直觉。
关系是离散数学中刻画元素之间相互联系的一个重要的概念,在计算机科学与技术领域中有着广泛的应用,关系数据库模型就是以关系及其运算作为理论基础的。
最基本的关系是二元关系,即发生在两个个体之间的关系。比如竞赛中间的胜负关系,如果每一场比赛都是在两个对手之间进行,不考虑平局,那么比赛结果 x 胜 y 就可以表示成 \langle x,y\rangle,关系 \{\langle a,b\rangle,\langle c,b\rangle,\langle c,a\rangle\} 记录了 3 场比赛的结果。由这个结果不难看出,c 是第一名,a 是第二名,而 b 是最后一名。这就是 \{a,b,c\} 集合上的一个二元关系的例子。
本章主要讨论二元关系。先给出二元关系的定义和表示方法,然后讨论关系的运算、关系的性质,最后研究两类重要的二元关系——等价关系与偏序关系。
4.1.1 有序对与笛卡儿积
定义 4.1 由两个元素,比如 x 和 y,按照一定次序构成的二元组称为一个有序对,记作 \langle x,y\rangle. 其中,x 是它的第一元素,y 是它的第二元素.
直角坐标系中点的坐标如 (1,-2),(0,5) 就是有序对.
在一个有序对中,如果两个元素不相等,那么它们是不能交换次序的. 例如 \langle 0,1\rangle 与 \langle 1,0\rangle 代表不同的有序对.
两个有序对 \langle x,y\rangle 与 \langle u,v\rangle 相等的充分必要条件是 x=u 且 y=v.
例 4.1 设有序对 \langle x+y,3\rangle=\langle 3y-2,x+5\rangle,那么根据有序对相等的充分必要条件有 x+y=3y-2 和 3=x+5,因此得到 x=-2,y=0.
利用有序对的概念可以定义集合的笛卡儿积.
定义 4.2 设 A,B 为集合,那么以 A 中元素作为第一元素,B 中元素作为第二元素做有序对,所有这样的有序对构成的集合称为 A 与 B 的笛卡儿积,记作 A\times B. 符号化表示为
例 4.2 设 A=\{0,1\}, B=\{a,b,c\},那么
有穷集合的笛卡儿积的元素数可以通过下面公式计算: 如果 |A|=m,|B|=n,那么 |A\times B|=mn.
不难证明,笛卡儿积运算满足下述性质:
(1) 当 A 或者 B 为空集时,A\times B 也是空集.
(2) 笛卡儿积运算不适合交换律,即 A\times B\neq B\times A,除非 A=B,A=\varnothing 或者 B=\varnothing.
(3) 笛卡儿积运算不适合结合律,即 (A\times B)\times C\neq A\times(B\times C),除非 A=\varnothing, B=\varnothing 或者 C=\varnothing.
(4) 笛卡儿积运算对并和交运算适合分配律,即
上面定义的 2 阶笛卡儿积可以推广到 n 阶.
定义 4.3 (1) 由 n 个元素 x_1,x_2,\cdots,x_n 按照一定的顺序排列构成有序 n 元组,记作 \langle x_1,x_2,\cdots,x_n\rangle.
(2) 设 A_1,A_2,\cdots,A_n 为集合,称
为 n 阶笛卡儿积.
空间直角坐标系中全体点的集合就是 3 阶笛卡儿积 \mathbf{R}\times\mathbf{R}\times\mathbf{R}.
解读:笛卡儿积不满足交换律与结合律,但分配律成立;\langle 0,1\rangle 与 \langle 1,0\rangle 是不同的元素,这正是它与无序对(集合 \{0,1\})的本质区别。
4.1.2 二元关系的定义
下面定义二元关系.
定义 4.4 如果一个集合中的元素都是有序对或者这个集合是空集,则称这个集合是一个二元关系,简称关系. 关系的名字一般使用大写的英文字母,通常记作 R.
如果有序对 \langle x,y\rangle\in R,可以简单记作 xRy,否则记为 x\not Ry. 例如,R=\{\langle a,b\rangle,\langle c,b\rangle,\langle c,a\rangle\} 就可以记作 aRb,cRb,cRa.
例 4.3 一些关系的实例.
(1) R=\{\langle x,y\rangle\mid x,y\in\mathbf{N},\ x+y<3\} 是自然数集 \mathbf{N} 上的关系,不难看出
(2) C=\{\langle x,y\rangle\mid x,y\in\mathbf{R},\ x^2+y^2=1\},其中 \mathbf{R} 是实数集,C 是直角坐标平面上点的横坐标与纵坐标之间的关系,满足关系 C 的所有的点恰好构成坐标平面上的单位圆.
(3) 设 A 是计算机专业 03 级学生的学号构成的集合,这些学号从 0305001 到 0305150. B 是课程号的集合,那么关系
记录了计算机专业 03 级学生选课的情况.
二元关系也可以推广到 n 元关系,n 元关系中的元素是有序 n 元组。下面就是一些 n 元关系的例子。
例 4.4 (1) P=\{\langle x,y,z\rangle\mid x,y,z\in\mathbf{R},\ x+2y+z=3\},P 代表了空间直角坐标系中的一个平面.
(2) 表 4.1 是关系数据库中的一个实体模型,是有关员工的一张简表.
表 4.1
| 员工号 | 姓名 | 年龄 | 性别 | 工资 |
|---|---|---|---|---|
| 301 | 张林 | 50 | 男 | 1600 |
| 302 | 王晓云 | 43 | 女 | 1250 |
| 303 | 李鹏宇 | 47 | 男 | 1500 |
| 304 | 赵辉 | 21 | 男 | 900 |
| \cdots | \cdots | \cdots | \cdots | \cdots |
表 4.1 中包含了若干员工的记录,每个记录是一个 5 元组,由 5 个字段构成,称为属性。这些元组的集合构成了一个 5 元关系。
n 元关系及其运算构成了关系数据库的理论基础,在实际中有着重要的应用,后面将给出一个简单的例子,本章所涉及的关系均指二元关系。
二元关系中特别重要的是从 A 到 B 的关系与 A 上的关系.
定义 4.5 设 A, B 为集合,A\times B 的任何子集所定义的二元关系叫做从 A 到 B 的二元关系,当 A=B 时则叫做 A 上的二元关系.
例 4.5 A=\{a,b\}, B=\{1,2,3\},那么
都是从 A 到 B 的关系;
都是 B 上的二元关系.
设 |A|=n, |B|=m,那么 |A\times B|=nm, A\times B 的不同的子集有 2^{nm} 个,因此存在 2^{nm} 个不同的从 A 到 B 的二元关系. 从这个结果可以推出 A 上存在有 2^{n^2} 个不同的二元关系. 例如 |A|=3,则 A 上有 2^{3^2}=512 个不同的二元关系.
下面是一些 A 上重要关系的实例.
\varnothing 是 A 上的关系,称为空关系. 其他的 A 上的关系定义如下.
定义 4.6 设 A 为任意集合,
E_A, I_A 分别称为全域关系与恒等关系.
例如,A=\{1,2\},则
给定集合 A,A 上的小于等于关系 L_A、整除关系 D_A、包含关系 R_{\subseteq} 定义如下.
定义 4.7
例如 A=\{1,2,3\},则
A=\{\varnothing,\{a\},\{b\},\{a,b\}\},则 A 上的包含关系是
类似地还可以定义 A 上的大于等于关系、小于关系、大于关系、真包含关系等.
例 4.6 设 A=\{1,2,\cdots,10\}, R=\{\langle x,y\rangle\mid x,y\in A,\ x+2y\leqslant 8\},列出 R 中的所有元素.
解 R=\{\langle 1,1\rangle,\langle 1,2\rangle,\langle 1,3\rangle,\langle 2,1\rangle,\langle 2,2\rangle,\langle 2,3\rangle,\langle 3,1\rangle,\langle 3,2\rangle,\langle 4,1\rangle,\langle 4,2\rangle,\langle 5,1\rangle,\langle 6,1\rangle\}
如果称横纵坐标均为整数的点为整点,那么 R 中的全体有序对恰好构成了平面直角坐标系坐标轴的正方向和直线 x+2y=8 所围成的区域(包括直线,但不含坐标轴)内的所有整点。
解读:A 上的关系就是 A\times A 的子集,所以 |A|=n 时一共有 2^{n^2} 个;空关系、全域关系 E_A、恒等关系 I_A 是其中三个"特殊位置"的关系。
4.1.3 二元关系的表示
可以使用集合表达式定义二元关系,上面的例子都通过这种方法来表示一个二元关系。除了集合表达式以外,还可以使用关系矩阵和关系图来表示二元关系。关系矩阵通常用于表示从 A 到 B 的关系或者 A 上的关系,这里的 A 和 B 都是有穷集合。关系图只能表示有穷集合 A 上的关系。
定义 4.8 设 A=\{x_1,x_2,\cdots,x_n\},B=\{y_1,y_2,\cdots,y_m\},R 是从 A 到 B 的关系,R 的关系矩阵是布尔矩阵 M_R=(r_{ij})_{n\times m},其中 r_{ij}=1\Leftrightarrow \langle x_i,y_j\rangle\in R, i=1,2,\cdots,n, j=1,2,\cdots,m.
当 R 为 A 上的关系时,R 的关系矩阵是 n 阶方阵.
定义 4.9 设 A=\{x_1,x_2,\cdots,x_n\},R 的关系图是 G_R=\langle A,R\rangle,其中 A 为 G 的结点集,R 为边集. \forall x_i,x_j\in A,如果 \langle x_i,x_j\rangle\in R,在图中就有一条从 x_i 到 x_j 的有向边.
例 4.7 (1) 设 A=\{a,b,c,d\}, R=\{\langle a,a\rangle,\langle a,b\rangle,\langle a,c\rangle,\langle b,a\rangle,\langle d,b\rangle\},R 的关系矩阵如下,关系图如图 4.1 所示.

(2) 设 A=\{a,b,c,d\}, B=\{1,2,3\},R=\{\langle a,1\rangle,\langle a,2\rangle,\langle b,1\rangle,\langle b,3\rangle,\langle c,1\rangle,\langle c,2\rangle,\langle c,3\rangle\},R 的关系矩阵是
不难看出,R 的关系图 G_R 显然是唯一的。如果用列元素的方法给出了 A 与 B 的全体元素,那么从 A 到 B 的关系或者 A 上的关系 R 的矩阵 M_R 也是唯一的。
解读:集合表达式、关系矩阵、关系图是同一关系的三种写法,可以互相翻译;矩阵第 i 行第 j 列为 1 就对应图中一条 x_i\to x_j 的有向边。