第3章关系模型(1) 本章主要讲述: 关系模型的数据结构 关系的定义和性质 关系数据库的基本概念 关系运算 U
1 第3章 关系模型(1) ➢ 本章主要讲述: ➢ 关系模型的数据结构 ➢ 关系的定义和性质 ➢ 关系数据库的基本概念 ➢ 关系运算
3.1关系数据库的结构 3.1.1关系模型 关系模型就是用二维表格结构来表示实体及实体之间 联系的模型。即关系模型是一些表格的格式,其中包 括关系名、属性名、关键字等。 例如,教学数据库中教师与课程的关系模型如图3.1所 教师关系T TNO TN SEX AGE PROF SAL COMM DEPT 教师号 姓名 性别年龄 职称 工资岗位津贴 系别 U
2 3.1 关系数据库的结构 3.1.1 关系模型 ➢ 关系模型就是用二维表格结构来表示实体及实体之间 联系的模型。即关系模型是一些表格的格式,其中包 括关系名、属性名、关键字等。 ➢ 例如,教学数据库中教师与课程的关系模型如图3.1所 示。 教师关系T TNO 教师号 TN 姓名 SEX 性别 AGE 年龄 PROF 职称 SAL 工资 COMM 岗位津贴 DEPT 系别
课程关系C 授课关系SC CNO CT TNO CNO 课程号 课程名 课时 教师号 课程号 图3.1教师—课程数据库的关系模型 从各个关系的框架中,我们可以很容易看出哪两个关 系之间有联系。例如: 教师关系和授课关系有公共的属性“教师号”,则表明这两 个关系有联系。 ≯而课程关系和授课关系有公共的属性“课程号”,则表明这 两个关系也有联系。 U
3 课程关系C 授课关系SC 图3.1 教师—课程数据库的关系模型 ➢ 从各个关系的框架中,我们可以很容易看出哪两个关 系之间有联系。例如: ➢ 教师关系和授课关系有公共的属性“教师号” ,则表明这两 个关系有联系。 ➢ 而课程关系和授课关系有公共的属性“课程号” ,则表明这 两个关系也有联系。 CNO 课程号 CN 课程名 CT 课时 TNO 教师号 CNO 课程号
3.1.2关系的定义 1、域( Domain) >域是一组具有相同数据类型的值的集合,又称为值域 (用D表示)。关系中用域表示属性的取值范围。例如 整数、实数、字符串的集合 域中所包含的值的个数称为域的基数(用m表示)。 例如: D1={李力,王平,刘伟}m1=3 D2={男,女} 2 D3={4728,30} m2= >其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别 年龄的集合
4 3.1.2 关系的定义 1、 域(Domain) ➢ 域是一组具有相同数据类型的值的集合,又称为值域 (用D表示) 。关系中用域表示属性的取值范围。例如 整数、实数、字符串的集合。 域中所包含的值的个数称为域的基数(用m表示)。 例如: D1={李力,王平,刘伟} m1=3 D2={男,女} m2=2 D3={47,28,30} m3=3 ➢ 其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、 年龄的集合
2、笛卡尔积( Cartesian Product) 给定一组域D1,D2,…,Dn(它们可以包含相同的元素, 即可以完全不同,也可以部分或全部相同)。D1 D2,…,Dn的笛卡尔积为D1×D2×……Dn={(d1 d2,…,dn)d;∈D,i=1,2,…,n}。 由定义可以看出,笛卡尔积也是一个集合。 其中 ①元素中的每一个d1叫做一个分量( Component),来自相应的域 (d∈D) ②每一个元素(d1,d2,d3,…,dn)叫做一个n元组( n-tuple), 简称元组( Tuple)。但元组不是d的集合,元组的每个分量(d1) 是按序排列的。如: (1,2,3)≠(2,3,1)≠(1,3,2)
5 2、 笛卡尔积(Cartesian Product) ➢ 给定一组域D1,D2,…,Dn(它们可以包含相同的元素, 即可以完全不同,也可以部分或全部相同)。D1, D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1, d2,…,dn)|di∈Di,i=1,2,…,n}。 由定义可以看出,笛卡尔积也是一个集合。 其中: ① 元素中的每一个di叫做一个分量(Component),来自相应的域 (di∈Di) ② 每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple), 简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di) 是按序排列的。如: (1,2,3)≠(2,3,1)≠(1,3,2)
③D中的集合元素个数称为D的基数,用m;(i=1,2,n 表示,则笛卡尔积D1×D2×…XDn的基数M(即元素 (d1d2,dn)的个数)为所有域的基数的累乘之积,目 例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为 D1XD2={(李力,男),(李力,女),(王平,男), (王平,女),(刘伟,男),(刘伟,女)} 其中: (李力,男),(李力,女)等是元组 其基数M=m1×m,=3*2=6 >元组的个数为6 U
6 ③ 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
④笛卡尔积可用二维表的形式表示 例如,上述的6个元组可表示成表32。 姓名性别 李力 李力 王平 王平 刘伟 男女男女男女 刘伟 表32D1和D2的笛卡尔积 由上例可以看出,笛卡尔积实际是一个二维表,表的框架由 域构成,表的任意一行就是一个元组,表中的每一列来自同 域,如第一个分量来自D1,第二个分量来自D2 U
7 ④ 笛卡尔积可用二维表的形式表示。 例如,上述的6个元组可表示成表3.2。 表3.2 D1和D2的笛卡尔积 ➢ 由上例可以看出,笛卡尔积实际是一个二维表,表的框架由 域构成,表的任意一行就是一个元组,表中的每一列来自同 一域,如第一个分量来自D1,第二个分量来自D2。 姓名 性别 李力 男 李力 女 王平 男 王平 女 刘伟 男 刘伟 女
3、关系( Relation) >笛卡尔积D1×D2×…Dn的任一子集称为定义在 域D1,D2,…,Dn上的m元关系( Relation),可用 R(D1,D2…Dn)表示 >如上例D1×D2笛卡尔积的子集可以构成教师关系T1,如 下表: 姓名 性别 李力 王平 刘伟 男女男 表33教师关系T1 8 U
8 3、 关系(Relation) ➢ 笛卡尔积D1×D2×…×Dn的任一子集称为定义在 域D1,D2,…Dn上的n元关系(Relation),可用 R(D1,D2……Dn)表示 ➢ 如上例D1×D2笛卡尔积的子集可以构成教师关系T1,如 下表: 表3.3 教师关系T1 姓名 性别 李力 男 王平 女 刘伟 男
几点说明: ①R为关系名,n称为关系的目或度( Degree) 时,称为n元关系。如上例为二元关系,关系名为p=n 当n=1时,称为单元关系,当n=2时,称为二元关系 ②数学上关系是笛卡尔积的任意子集,但在实际应用中 关系是笛卡尔积中所取的有意义的子集。例如在表32中 选取一个子集构成如下关系,显然不符合实际情况 姓名性别 李力男 李力 女 表34不符合实际意义的关系 9 U
9 几点说明: ① R为关系名,n称为关系的目或度(Degree)。 当n=1时,称为单元关系,当n=2时,称为二元关系。…当n=n 时,称为n元关系。如上例为二元关系,关系名为T1。 ② 数学上关系是笛卡尔积的任意子集,但在实际应用中 关系是笛卡尔积中所取的有意义的子集。例如在表3.2中 选取一个子集构成如下关系,显然不符合实际情况 姓名 性别 李力 男 李力 女 表3.4 不符合实际意义的关系
313关系的性质 尽管关系与二维表格是非常类似的,但它们之间又有 重要的区别。关系具有如下特性 1.关系中不允许出现相同的元组。 2.关系中元组的顺序(即行序)是无关紧要的,在一个关系中可 以任意交换两行的次序 3.关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。 交换时,应连同属性名一起交换,否则将得到不同的关系 4.同一属性名下的各个属性值必须来自同一个域,是同一类型的 数据。 5.关系中各个属性必须有不同的名字,不同的属性可来自同一个 域 10 U
10 ➢ 尽管关系与二维表格是非常类似的,但它们之间又有 重要的区别。 关系具有如下特性: 1. 关系中不允许出现相同的元组。 2. 关系中元组的顺序(即行序)是无关紧要的,在一个关系中可 以任意交换两行的次序。 3. 关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。 交换时,应连同属性名一起交换,否则将得到不同的关系。 4. 同一属性名下的各个属性值必须来自同一个域,是同一类型的 数据。 5. 关系中各个属性必须有不同的名字,不同的属性可来自同一个 域。 3.1.3 关系的性质