- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 关系运算 第2章 关系运算 关系数据库是建立在关系模型的基础上,是基于离散数学集合论中的两个基本理论:集合和关系。 关系数据库对数据的操作除了包括集合代数的并、交、差等运算之外,更定义了一组专门的关系运算:选择、投影、连接。 关系操作的特点是运算的对象和结果都是关系。 第1节 关系的数学定义 一、笛卡儿积的数学定义 1、笛卡儿积的数学定义 定义2.1 设有属性集A1和A2分别在值域D1和D2中取值,则两个属性集的笛卡儿积定义为: D1×D2={d1,d2|d1∈D1且 d2∈D2} 其中,序偶d1,d2中的两个元素 d1和d2是有序的。 一、笛卡儿积的数学定义 1、笛卡儿积的数学定义 定义2.2 设有属性A1,A2,…,An分别在值域D1,D2,…,Dn中取值,则这些值域的笛卡儿积定义为: D1×D2×?×Dn={d1,d2,…,dn|dj∈Dj, j=1,2,…,n} 其中,每个元素d1,d2,…,dn称为有序n元组。 元组中的第j个值dj称为元组的第j个分量。 若Dj (j=1,2,…,n)为有限集,且其基数为mj (j=1,2,…,n),则笛卡儿积D1×D2×?×Dn的基数为 一、笛卡儿积的数学定义 例:设D1={1,2,3},基数为3; D2={a,b},基数为2; 则有 D1×D2={1,a,1,b,2,a,2,b, 3,a, 3,b} 基数为 3×2=6 一、笛卡儿积的数学定义 例:设 D1={李兵,王芳},D2={男,女}, D3={北京,上海} D1×D2×D3={李兵,男,北京,李兵,男,上海, 李兵,女,北京,李兵,女,上海, 王芳,男,北京,王芳,男,上海, 王芳,女,北京,王芳,女,上海} 基数为 2×2×2=8 一、笛卡儿积的数学定义 可见,笛卡儿积实际上是一个二维表,结果共有8个元组。 二、关系的数学定义 定义2.3 笛卡儿积D1×D2×?×Dn的任一子集称为在域D1,D2,…,Dn上的关系。 值域集合D1,D2,…,Dn是关系中元组的取值范围,称为关系的域(Domain),n称为关系的目或度(Degree)。 三、关系数据模型 数据结构 数据操作 数据约束(完整性约束) 实体完整性 参照完整性 用户定义完整性 关系模型的数据操作 在关系模型中,操作对象和操作结果都是关系,操作关系的行为定义为关系语言,关系语言根据其所反映的数学含义可分为两类:关系代数语言和关系演算语言。 关系代数语言和关系演算语言均是抽象的语言,这些语言与具体DBMS中实现的实际语言并不完全一致,但它们能用作评估实际数据库系统查询语言能力的基础和标准。 SQL语言(Structure Query Language,结构化查询语言)。SQL语言集数据定义(DDL)、数据操纵(DML)、数据控制(DCL)为一体,是关系数据库的标准语言。 关系语言是一种高度非过程化的语言,关系的三种语言在表达能力上是完全等价的。 关系模型的完整性约束 为了防止合法用户使用数据时加入不合语义的数据,关系数据模型通过完整性约束实现数据的正确性和相容性,其完整性约束包括:实体完整性、参照完整性和用户定义完整性。 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系数据库系统自动支持。 例如:课程关系C(C#,CNAME,CLASSH) 学习关系SC(S#,C#,GRADE) 关系模型的完整性约束 用户定义完整性是根据应用环境的要求和实际需要,对关系中的数据所定义的约束条件。它反映的是某一具体应用所涉及的数据必须满足的语义要求。关系模型只提供定义并检验这类完整性的机制,以便于系统用统一的方法来满足用户需求,而关系模型自身并不去定义任何这类完整性规则。 用户定义完整性包括字段有效性(属性值域的约束)和记录有效性两类,其中对属性值域的约束也称域完整性规则,是对关系中属性取值的约束定义,包括数据类型、精度、取值范围、是否空值等。 例如,选课关系中“成绩”的值域是0~100,学生关系中“性别”的值域为“男”或“女”。 四、关系的性质 (1)关系中的每个属性值都是不可再分的数据单位,即关系表中不能再有子表; (2)关系中任意两行不能完全相同,即关系中不允许出现相同的元组; (3)关系是一个元组的集合,所以关系中元组间的顺序可以任意; (4)关系中的属性是无序的,使用时一般按习惯排列各列的顺序; (5)每一个关系都有
文档评论(0)