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