- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 关系运算 关系数据库系统是当今普遍应用的数据库系统。本章主要介绍关系数据模型的基本概念,关系运算和关系表达式的优化问题,其中关系运算本课程的重点内容之一。 关系运算是关系数据模型的理论基础。 3.1 关系数据模型 3.1.1 关系数据模型的定义 用二维表格表示实体集,键表示实体间联系的数据模型称为关系模型。 在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。 关系理论是以集合代数理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义。 为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念。 定义3.1 域(Domain) 域是一组具有相同数据类型的值的集合,又称为值域。(用D表示) 例如整数、实数、字符串的集合。 域中所包含的值的个数称为域的基数(用m表示)。 关系中用域表示属性的取值范围。例如: D1={汪宏伟,钱红} m1=2 D2={数据结构,离散数学,计算机原理} m2=3 其中,D1,D2为域名,分别表示教师名域和课程名域。 域名无排列次序,如D1={汪宏伟,钱红}={钱红,汪宏伟} 3.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)叫做一个元组(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)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,……n)表示,则笛卡尔积D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个数)为所有域的基数的累乘之积,即 M= 例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为: D1×D2={(汪宏伟,数据结构),(汪宏伟,离散数学),(汪宏伟,计算机原理),(钱红,数据结构),(钱红,离散数学),(钱红,计算机原理)} 它表示教师名和课程名的所有可能的组合。 汪宏伟、钱红、数据结构等都是分量 (汪宏伟,数据结构) ,(钱红,离散数学)等是元组 其基数M=m1×m2=2*3=6 元组的个数为6 3.3 关系(Relation) 笛卡尔积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…Dn上的n元关系(Relation),可用R(D1,D2……Dn)表示 用集合论的观点来定义关系:关系是一个元数为k(k≥1)的元组集合。即这个关系中有若干个元组,每个元组有k个属性值。把关系看成是一个集合,集合中的元素是元组。更直观的理解,可将关系看成是一张二维表格。 如上例D1×D2笛卡尔积的子集可以构成教师本学期任课关系T1,如下表: (1)二维表的表头那一行称为关系模式(Relational Scheme)。每一张表称为该关系模式的一个具体关系或简称为关系(Relation)。它表示的是一个实体集合。 (2)二维表的各行称为关系的元组(Tuple),可用来表示实体集中的一个实体。 元组的个数称为基数(Cordinality)。 (3)二维表中的每一列称为关系的属性(Attributes),给每一列起一个名称即属性 名,表中的属性名不能相同。列中的元素为该属性的值,称作分量。 (4)每个属性(列)所对应的变化范围叫属性的 变域或简称域(Domain),它是一个值的集 合,关系中所有属性的实际值均来自于它所对应的域。同列具有相同的域,不同的列可有相 同的域。例如: 职工编号和年龄都为整数域。 (5)表中任意两行(元组)不能相同。能惟一标识表中不同行的属性或属性组称为主键。 关系的性质 尽管关系与二维表格、传统的数据文件是非常类似的,但它们之间又有重要的区别。 严格地说,关系是种规范化了的二维表,为了使相应的数据操作简化,在关系模型中,对关系作了种种限制,关系具有如下特性: 1. 关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。 2. 关系中元组的顺序(即行序)是无关 紧要的,在一个关系中可以任意交换两行的
文档评论(0)