第2章关系模型
返回 1 第2章 关系模型
上一章介绍了三种主要的数据模型: 层次模型 网状模型 关系模型 其中关系模型简单灵活,并有着坚实的理论基础,已成为当前最流 行的数据模型。 本章主要讲述: 关系模型的数据结构 关系的定义和性质 关系数据库的基本概念 关系运算
返回 2 ➢ 上一章介绍了三种主要的数据模型: ➢ 层次模型 ➢ 网状模型 ➢ 关系模型 ➢ 其中关系模型简单灵活,并有着坚实的理论基础,已成为当前最流 行的数据模型。 ➢ 本章主要讲述: ➢ 关系模型的数据结构 ➢ 关系的定义和性质 ➢ 关系数据库的基本概念 ➢ 关系运算
21关系模型 关系模型就是用二维表格结构来表示实体及实体之间 联系的模型。 关系模型是各个关系的框架的集合,即关系模型是 些表格的格式,其中包括关系名、属性名、关键字等。 例如,教学数据库中教师与课程的关系模型如图21所 示。 >教师关系T TNO SEX AGE PROF SAL COMM DEPT 教师号 姓名 性别年龄 职称 工资岗位津贴系别 课程关系C 授课关系SC CNO CN CT TNO CNO 课程 课程名 课时 教师号 课程号 图2.1教师—课程数据库的关系模型
返回 3 2.1 关系模型 ➢ 关系模型就是用二维表格结构来表示实体及实体之间 联系的模型。 ➢ 关系模型是各个关系的框架的集合,即关系模型是一 些表格的格式,其中包括关系名、属性名、关键字等。 ➢ 例如,教学数据库中教师与课程的关系模型如图2.1所 示。 ➢ 教师关系T ➢ 课程关系C 授课关系SC 图2.1 教师—课程数据库的关系模型 TNO 教师号 TN 姓名 SEX 性别 AGE 年龄 PROF 职称 SAL 工资 COMM 岗位津贴 DEPT 系别 CNO 课程号 CN 课程名 CT 课时 TNO 教师号 CNO 课程号
>从各个关系的框架中,我们可以很容易看出哪两个关 系之间有联系。例如: 教师关系和授课关系有公共的属性“教师号”,则表明这两 个关系有联系。 而课程关系和授课关系有公共的属性“课程号”,则表明这 两个关系也有联系 ≯至于元组之间的联系,则与具体的数据有关。只有在公共属 性上具有相同属性值的元组之间才有联系
返回 4 ➢ 从各个关系的框架中,我们可以很容易看出哪两个关 系之间有联系。例如: ➢ 教师关系和授课关系有公共的属性“教师号” ,则表明这两 个关系有联系。 ➢ 而课程关系和授课关系有公共的属性“课程号” ,则表明这 两个关系也有联系。 ➢ 至于元组之间的联系,则与具体的数据有关。只有在公共属 性上具有相同属性值的元组之间才有联系
由上例可以看出,在一个关系中可以存放两类信息: 一类是描述实体本身的信息 类是描述实体(关系)之间的联系的信息 在层次模型和网状模型中,把有联系的实体(元组)用 指针链接起来,实体之间的联系是通过指针来实现的。 而关系模型则采用不同的思想,即用二维表来表示实体 与实体之间的联系,这就是关系模型的本质所在。 所以,在建立关系模型时,只要把的所有的实体及其属 性用关系框架来表示,同时把实体之间的关系也用关系 框架来表示,就可以得到一个关系模型。 如上例中的教师—课程数据库的关系模型就是这样建立的
返回 5 ➢ 由上例可以看出,在一个关系中可以存放两类信息: ➢ 一类是描述实体本身的信息 ➢ 一类是描述实体(关系)之间的联系的信息 ➢ 在层次模型和网状模型中,把有联系的实体(元组)用 指针链接起来,实体之间的联系是通过指针来实现的。 ➢ 而关系模型则采用不同的思想,即用二维表来表示实体 与实体之间的联系,这就是关系模型的本质所在。 ➢ 所以,在建立关系模型时,只要把的所有的实体及其属 性用关系框架来表示,同时把实体之间的关系也用关系 框架来表示,就可以得到一个关系模型。 ➢ 如上例中的教师—课程数据库的关系模型就是这样建立的
22.关系的定义 >在关系模型中,数据是以二维表的形式存在的,这个 维表就叫做关系。 关系理论是以集合代数理论为基础的,因此,我们可 以用集合代数给出二维表的“关系”定义。 为了从集合论的角度给出关系的定义,我们先引入域 和笛卡尔积的概念
返回 6 2.2 关系的定义 ➢ 在关系模型中,数据是以二维表的形式存在的,这个 二维表就叫做关系。 ➢ 关系理论是以集合代数理论为基础的,因此,我们可 以用集合代数给出二维表的“关系”定义。 ➢ 为了从集合论的角度给出关系的定义,我们先引入域 和笛卡尔积的概念
221域( Domain) 域是一组具有相同数据类型的值的集合,又称为值域。 (用D表示) 例如整数、实数、字符串的集合。 域中所包含的值的个数称为域的基数(用m表示)。 关系中用域表示属性的取值范围。例如: Dl={李力,王平,刘伟}m1=3 D2={男,女} m2=2 D3={47,28,30} 13=3 其中,D1,D,D3为域名,分别表示教师关系中姓名、性别、 年龄的集合。 >域名无排列次序,如D2={男,女}={女,男}
返回 7 2.2.1 域(Domain) ➢ 域是一组具有相同数据类型的值的集合,又称为值域。 (用D表示) ➢ 例如整数、实数、字符串的集合。 ➢ 域中所包含的值的个数称为域的基数(用m表示)。 ➢ 关系中用域表示属性的取值范围。例如: D1={李力,王平,刘伟} m1=3 D2={男,女} m2=2 D3={47,28,30} m3=3 ➢ 其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、 年龄的集合。 ➢ 域名无排列次序,如D2={男,女}={女,男}
222笛卡尔积( Cartesian Product 给定一组域D1,D2,…,Dn(它们可以包含相同的元素 即可以完全不同,也可以部分或全部相同)。D1, D2,…,Dn的笛卡尔积为D1×D2×…….xDn={(d1, d2,…,dn)di∈Di,i=1,2,…,n}。 由定义可以看出,笛卡尔积也是一个集合。 其中: 1.元素中的每一个d叫做一个分量 Component),来自相应的域 (di∈Di) 每一个元素(d1,d2,d3,…,dn)叫做一个n元组( n-tuple), 简称元组( Tuple)。但元组不是di的集合,元组的每个分量(di) 是按序排列的。如: (1,2,3)≠(2,3,1)≠(1,3,2) 而集合中的元素是没有排序次序的,如(1,2,3)=(2,3,1) (1,3,2)
返回 8 2.2.2 笛卡尔积(Cartesian Product) ➢ 给定一组域D1,D2,…,Dn(它们可以包含相同的元素, 即可以完全不同,也可以部分或全部相同)。D1, D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1, d2,…,dn)|di∈Di,i=1,2,…,n}。 ➢ 由定义可以看出,笛卡尔积也是一个集合。 其中: 1. 元素中的每一个di叫做一个分量(Component),来自相应的域 (di∈Di) 2. 每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple), 简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di) 是按序排列的。如: ➢ (1,2,3)≠(2,3,1)≠(1,3,2); ➢ 而集合中的元素是没有排序次序的,如(1,2,3)=(2,3,1) =(1,3,2)
3.若Di(i=1,2,…n)为有限集,D中的集合元素个数称为 Di的基数,用mi(i=1,2,…n)表示,则笛卡余积 D1XD2×…XDn的基数M(即元素(dl,d2,dn)的个 数)为所有域的基数的累乘之积,即 例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为: D1XD2={(李力,男),(李力,女),(王平,男), (王平,女),(刘伟,男),(刘伟,女)} 其中 李力、王平、刘伟、男、女都是分量 (李力,男),(李力,女)等是元组 >其基数M=m1×m2=3*2=6 元组的个数为6
返回 9 3. 若Di(i=1,2,……n)为有限集,Di中的集合元素个数称为 Di的 基数,用 mi ( i=1 ,2, ……n )表示,则 笛卡尔 积 D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个 数)为所有域的基数的累乘之积,即 M= 例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为: ➢ D1×D2={(李力,男),(李力,女),(王平,男), (王平,女),(刘伟,男),(刘伟,女)} 其中: ➢ 李力、王平、刘伟、男、女都是分量 ➢ (李力,男),(李力,女)等是元组 ➢ 其基数M=m1×m2=3*2=6 ➢ 元组的个数为6 = n i mi 1
4.笛卡尔积可用二维表的形式表示 例如,上述的6个元组可表示成表21 姓名 性别 李力 李力 王平 王平 刘伟 男女男女男女 刘伟 表21D1和D2的笛卡尔积 由上例可以看出,笛卡尔积实际是一个二维表,表的框架由 域构成,表的任意一行就是一个元组,表中的每一列来自同 域,如第一个分量来自D1,第二个分量来自D2
返回 10 4. 笛卡尔积可用二维表的形式表示。 例如,上述的6个元组可表示成表2.1。 表2.1 D1和D2的笛卡尔积 ➢ 由上例可以看出,笛卡尔积实际是一个二维表,表的框架由 域构成,表的任意一行就是一个元组,表中的每一列来自同 一域,如第一个分量来自D1,第二个分量来自D2。 姓名 性别 李力 男 李力 女 王平 男 王平 女 刘伟 男 刘伟 女