第二章 关系模型
◎ D1={李力,王平,刘伟} ={李力,王平,刘伟} m1=3 ◎ D2={男,女} ={男 m2=2 ◎ D3={47,28,30} ={47,28,30} m3=3 ◎ 其中,D1, D2, D3为域名 ,分别表示教师关系中姓 其中, 为域名, 名、性别、年龄的集合。 性别、年龄的集合。
域名无排列次序, 域名无排列次序,如D2={男,女}={女,男} ={男 }={女
关系模型的数据结构 关系的定义和性质 关系数据库的基本概念 关系运算
2.1 关系模型
关系模型就是用二维表格 结构来表示实体及实体 关系模型就是用 二维表格结构来表示实体及实体 之间联系的模型。 之间联系的模型。 关系模型是各个关系的框架的集合, 关系模型是各个关系的框架的集合 , 即关系模型 是一些表格的格式 , 其中包括关系名 、 属性名 、 是一些 表格的格式, 其中包括关系名、 属性名、 关键字等。 关键字等。 例如, 例如 , 教学数据库中教师与课程的关系模型如图 2.1所示。 所示。
2. 该子集中的元素是关系中的元组,用r 表示,关系中元组 该子集中的元素是关系中的元组, 表示, 个数是关系的基数。ห้องสมุดไป่ตู้个数是关系的基数 。 如 ( 李力 , 男 ) , ( 王平, 女 ) , 李力, 王平 , (刘伟,男)为三个元组,关系T的基数为3。 刘伟, 为三个元组,关系T的基数为3
(1)如果一个关系的元组个数是无限的,则称为无限关系; 如果一个关系的元组个数是无限的, (2)如果一个关系的元组个数是有限的,则称为有限关系。 如果一个关系的元组个数是有限的,则称为有限关系。 (3)由于计算机存储系统的限制,我们一般不去处理无限关系,而 由于计算机存储系统的限制,我们一般不去处理无限关系, 只考虑有限关系。 只考虑有限关系。
◎ 1. 元素中的每一个di叫做一个分量(Component),来 元素中的每一个di叫做一个分量(Component), 自相应的域(di∈Di) 自相应的域(di∈Di) ◎ 2. 每一个元素(d1,d2,d3,…,dn)叫做一个n元 每一个元素( dn)叫做一个n 组 (n-tuple) , 简称 元组( Tuple) 。 但元组不是di的 tuple) 简称元组 ( Tuple) 但元组不是di的 集合,元组的每个分量(di)是按序排列的。 集合,元组的每个分量(di)是按序排列的。如: ◎ (1,2,3)≠(2,3,1)≠(1,3,2); ◎ 而集合中的元素是没有排序次序的,如(1,2,3)= 而集合中的元素是没有排序次序的, (2,3,1)=(1,3,2)。
4. 数学上关系是笛卡尔积的任意子集,但在实际应用中关系 数学上关系是笛卡尔积的任意子集, 是笛卡尔积中所取的有意义的子集。 例如在表2 是笛卡尔积中所取的有意义的子集 。 例如在表 2.1 中选取 一个子集构成如下关系, 一个子集构成如下关系,显然不符合实际情况
姓名 李力 李力 性别 男 女
在关系模型中,关系可进一步定义为: 在关系模型中,关系可进一步定义为:
第二章 关系模型
上一章介绍了三种主要的数据模型: 上一章介绍了三种主要的数据模型: 三种主要的数据模型
层次模型 网状模型 关系模型 其中关系模型简单灵活,并有着坚实的理论基础,已 其中关系模型简单灵活,并有着坚实的理论基础,已 成为当前最流行的数据模型。 成为当前最流行的数据模型。
本章主要讲述: 本章主要讲述:
3. 若Di(i=1,2,……n)为有限集,Di中的集合元素个数称为Di的 Di(i=1 ……n 为有限集,Di中的集合元素个数称为Di的 基 数 , 用 mi ( i=1 , 2 , ……n ) 表 示 , 则 笛 卡 尔 积 i=1 ……n D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个数) ……×Dn的基数M 即元素( ,d2 ……dn)的个数) 为所有域的基数的累乘之积, 为所有域的基数的累乘之积,即 M=
◎ 如上例中的教师—课程数据库的关系模型就是这样建 如上例中的教师— 立的。 立的。
2.2 关系的定义
在关系模型中, 数据是以二维表的形式存在的 , 在关系模型中 , 数据是以二维表的形式存在的, 这个二维表就叫做关系。 这个二维表就叫做关系。 关系理论是以 集合代数理论为基础的 , 因此 , 关系理论 是以集合代数 理论为基础的, 因此, 我 们可以用集合代数给出二维表的“关系”定义。 们可以用集合代数给出二维表的“关系”定义。 为了从集合论的角度给出关系的定义, 为了从集合论的角度给出关系的定义 , 我们先引 入域和笛卡尔积的概念。 笛卡尔积的概念。
定义在域D 定义在域 D1 , D2 , ……Dn( 不要求完全相异 ) 上的关系由关 ……Dn ( 不要求完全相异) 系头(Heading)和关系体(Body)组成。 系头(Heading)和关系体(Body)组成。
◎ 关系头:由属性名A1,A2,…,An的集合组成,每个属性Ai正好 关系头:由属性名A An的集合组成,每个属性Ai正好 对应一个域Di(i=1 对应一个域Di(i=1,2,…,n),关系头,也称关系框架,相对 关系头,也称关系框架, 固定,是关系的数据结构的描述。 固定,是关系的数据结构的描述。 ◎ 关系体:是指关系结构中的内容或者数据,并非固定不变,它随 关系体:是指关系结构中的内容或者数据,并非固定不变, 元组的建立、删除或修改而变化。 元组的建立、删除或修改而变化。
2.2.1 域(Domain) Domain) 域是一组具有相同数据类型的值的集合, 域是一组具有相同数据类型的值的集合 , 又称为 值域。 值域。(用D表示) 表示)
◎ 例如整数、实数、字符串的集合。 例如整数、实数、字符串的集合。
域中所包含的值的个数称为域的基数 ( 域中所包含的值的个数称为域的 基数( 用 m 表 示)。 关系中用域表示属性的取值范围。 关系中用域表示属性的取值范围。例如:
∏m
i =1
n
i
例如:上述表示教师关系中姓名、 例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为: D1×D2={(李力,男),(李力,女),(王平,男),(王平, ={(李力, 李力, 王平, 王平, 女),(刘伟,男),(刘伟,女)} 刘伟, 刘伟, 其中: 李力、王平、刘伟、 李力、王平、刘伟、男、女都是分量 (李力,男),(李力,女)等是元组 李力, 李力, 其基数M=m1 其基数M=m1×m2=3*2=6 元组的个数为6 元组的个数为6
2.2.3 关系(Relation) 关系(Relation) 笛卡尔积D 笛卡尔积 D1×D2×…×Dn的任一子集称为定义 Dn 的任一子集称为定义 在域D 在域 D1 , D2 , …Dn 上的n 元 关系 ( Relation ) , Dn上的 n 关系( Relation) 可用R 可用R(D1,D2……Dn)表示 ……Dn) ◎ 如上例D1×D2笛卡尔积的子集可以构成教师关系T1, 如上例D 笛卡尔积的子集可以构成教师关系T
3. 同样可以把关系看成一个二维表。其中, 同样可以把关系看成一个二维表。其中,
(1)表的框架由域Di(i=1,2,……n)构成; 表的框架由域Di(i=1 ……n (2)表的任意一行对应一个元组; (3)表的每一列来自同一域; (4)域可以相同,为了加以区别,每列起一个名字,称为属性,n 域可以相同,为了加以区别,每列起一个名字,称为属性, 目关系有n 个属性,属性的名字唯一,属性的取值范围Di(i=1 目关系有n 个属性,属性的名字唯一,属性的取值范围Di(i=1 , 2,…,n)称为值域 称为值域 (5)具有相同关系框架的关系成为同类关系,例如,有另一个关系 具有相同关系框架的关系成为同类关系,例如, T2,如表2.3所示: 如表2 姓名 性别 张雪 女 张兰 女 T1和T2是同类关系。 是同类关系。
2.2.2 笛卡尔积(Cartesian Product) 笛卡尔积(Cartesian 给定一组域D 给定一组域 D1 , D2 , … , Dn( 它们可以包含相 Dn ( 同的元素, 即可以完全不同 , 同的元素 , 即可以完全不同, 也可以部分或全部 相 同 ) 。 D1 , D2 , … , Dn 的 笛 卡 尔 积 为 D1×D2×……×Dn={ ( d1 , d2 , … , dn ) ……× |di∈Di,i=1,2,…,n}。 |di∈Di,i=1 n}。 由定义可以看出,笛卡尔积也是一个集合。 由定义可以看出,笛卡尔积也是一个集合。 其中:
由上例可以看出, 由上例可以看出 , 在一个关系中可以存放两类信 息:
◎ 一类是描述实体本身的信息 ◎ 一类是描述实体(关系)之间的联系的信息 一类是描述实体(关系)
在层次模型和网状模型中, 把有联系的实体 ( 在层次模型和网状模型中 , 把有联系的实体( 元 组 ) 用指针链接起来, 实体之间的联系是通过指 用指针链接起来 , 实体之间的联系是通过 指 针来实现的。 来实现的。 而关系模型则采用不同的思想, 即用 二维表来表 而关系模型则采用不同的思想 , 即用二维表 来表 示实体与实体之间的联系, 示实体与实体之间的联系 , 这就是关系模型的本 质所在。 质所在。 所以, 在建立 关系模型时 所以 , 在建立关系模型 时 , 只要把的所有的实体 及其属性用关系框架来表示, 及其属性用关系框架来表示 , 同时把实体之间的 关系也用关系框架来表示, 关系也用关系框架来表示 , 就可以得到一个关系 模型。 模型。
2.3 关系的性质
尽管关系 与 二维表格、 传统的 数据文件是非常类 尽管 关系与 二维表格 、 传统的数据文件 是非常类 似的,但它们之间又有重要的区别。 似的,但它们之间又有重要的区别。 严格地说, 关系是种规范化了的 二维表中行的集 严格地说 , 关系 是种规范化了的二维表中行的集 合 , 为了使相应的数据操作简化, 在关系模型中 , 为了使相应的数据操作简化 , 在关系模型中, 对关系作了种种限制, 对关系作了种种限制,关系具有如下特性:
教师关系T