资源预览内容
第1页 / 共61页
第2页 / 共61页
第3页 / 共61页
第4页 / 共61页
第5页 / 共61页
第6页 / 共61页
第7页 / 共61页
第8页 / 共61页
第9页 / 共61页
第10页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据库系统概论 An Introduction to Database System第2章 关系模型与关系代数主要内容 n关系模型概述 关系数据结构 关系的完整性 关系操作n关系代数 2.1关系模型概述2.1.1关系数据模型 由E.F.Codd 1970年提出 之后,提出了关系代数和关系演算的概念, 1NF5NF(范式)关系数据库应用数学方法处理数据库中的数据80年代后,关系数据库系统成为最重要、最流 行的数据库系统典型商用系统ORACLE SYBASE INFORMIX DB2 INGRES MySQLE.F.Codd 1923-2003F美国IBM公司研究员 F1981获Turing Award得主 F关系数据库之父 A.M.Turing Dijkstra姚 期 智2.1.2 漫谈关系关系(relation)1、 在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。籍贯 年龄 系别 性别 姓名 学号 09002 北京 21计算机 男 白平 11023 山西 20数学 女刘佳 10002 黑龙江 19 计算机 男 张三立 10018 北京 18 数学 女 王铭 10013 山东 19 信息 女 刘晨 黑龙江 20 计算机 男 李勇 09001 学生登记表(关系) 2、从数学的角度看,关系是集合。笛卡尔(Descartes) 15961650(1) Cartesian Product定义: 给定一组域D1,D2,Dn,这些域中可有 相同的。D1,D2,Dn的笛卡尔积为: D1D2Dn(d1,d2,dn))diDi,i1,2,n (2)关系(Relation) D1D2Dn的子集叫作在域D1,D2, Dn上的关系,表示为R(D1,D2,Dn)籍贯 年龄 系别 性别 姓名 学号 09002 北京 21计算机 男 白平 11023 山西 20数学 女刘佳 10002 黑龙江 19 计算机 男 张三立 10018 北京 18 数学 女 王铭 10013 山东 19 信息 女 刘晨 黑龙江 20 计算机 男 李勇 09001 学生登记表(关系) 关系数据库(Relational DataBase)在一个给定的应用领域中,所有关系的集合 构成关系数据库。2.1.3关系中的术语 元组(tuple) 属性(attribute) 域(domain) 候选码(Candidate Key) 主码(Primary Key) 主属性(Prime Attribute) 非主属性(Nonprimary attribute) 外码(Foreign Key)候选码(Candidate key) 举例能够唯一地标识一个元组的属性组。 主码(Primary key)用户选定的候选码称为主码。 主属性: 候选码中的属性称为主属性。 非主属性: 不是主属性的属性称为非主属性。 外码(Foreign key) 若模式R中的属性组K是其它模式S(S可以是R!) 的主码,则K称为模式R的外码。其中,称R是参考关系,S是被参考关系 关系的基本性质 列是同质的(Homogeneous) 不同的列可出自同一个域 列的顺序无所谓 任意两个元组不能完全相同 行的顺序无所谓 分量必须取原子值 关系模式(Relational Schema)关系模式是关系的描述。它的形式化表示为:R(U,D,DOM,F)R-关系名,U-属性,D-属性域, DOM-属性向域的映射 , F-属性间的依赖说明: 关系模式是静态的、稳定的,是型; 关系是关系模式某一时刻的状态,是变化的,是值;2.1.4 关系的完整性 实体完整性 参照完整性 用户定义的完整性1.实体完整性实体完整性规则(Entity Integrity)若A是关系R的主码,则A不能取空值或重复值2. 参照完整性 若属性组FK是关系R的外码,它与关系S的主码PK 相对应。则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的PK的值(主码值) 举例说明籍贯 年龄 系别 性别 姓名 学号 09002 北京 21计算机 男 白平 11023 山西 20数学 女刘佳 10002 黑龙江 19 计算机 男 张三立 10018 北京 18 数学 女 王铭 10013 山东 19 信息 女 刘晨 黑龙江 20 计算机 男 李勇 09001 学生登记表(关系) 分院 学生会主席10018 99999 10002 10018 10002NULL3. 用户定义的完整性用户定义的完整性是针对某一具体关系数据模式的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。 例如:关系模式S、C、SC中age在15 - 30岁;sex取值男、女grade 在0-100分之间Create table SC (S# CHAR(4) ,c# CHAR(4) ,grade int,primary key(S#,c#),foreign key(S#) reference S(S#),foreign key(c#) reference C(c#),CHECK (grade is null ) OR (grade between 0 and 100) )如何实现中完整性?很简单 举例:定义学生选课表SC(S#,c#,grade)1.关系代数语言 ISBL( Information System Base Language)2.关系演算语言 3.SQL语言 Oracle、Sybase、DB2元组演算 ALPHA 域演算 QBE2.1.5关系操作1.关系结构 2.关系的完整性(约束条件)实体完整性(用主健实现 PK)参照完整性(用外健实现 FK)用户定义完整性(用触发器实现 Tragger) 3.关系的操作总结:关系的三要素重要说明: 如何设计关系模式,既关系结构和 关系完整性,是个复杂的、意义非常重大的问题, 属于数据库设计领域 实现关系模式,是非常容易解决的问题,只是 SQL的一条语句而已2.2 关系代数1. 关系代数 一种对关系抽象的查询语言询2关系代数运算的三个要素 运算对象:关系 运算结果:关系 运算符:四类3. 写好关系查询语句要点 之一:关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么? 之二:了解关系操作的过程集 合 运 算 符 - 并 差 交 广义笛卡 尔积比 较 运 算 符 大于 大于等于 小于 小于等于 等于 不等于运算符含义运算符含义关系代数运算符 专门的 关系 运算符 选择 投影 连接 除逻辑 运算符 非 与 或运算符含义运算符含义关系代数运算符(续) 一. 传统的集合运算并差交广义笛卡尔积温馨提示:写好关系查询语句要点之一:关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么? 之二:了解关系操作的过程,学会手工模拟最重要1. 并(Union)R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域RS 仍为n目关系,由属于R或属于S的元组组成RS = t|t Rt S c1b2a2c2b2a1c1b1a1CBAc2b3a1 c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b3a1c2b2a1CBARSRS 2. 差(Difference)R和Sl具有相同的目nl相应的属性取自同一个域R - S l仍为n目关系,由属于R而不属于S的所有元 组组成R -S = t|tRtS c1b2a2c2b2a1c1b1a1CBAc1b1a1CBAc1b2a2c2b3a1c2b2a1CBARSR-S 3. 交(Intersection)R和S具有相同的目n相应的属性取自同一个域RS仍为n目关系,由既属于R又属于S的元组组 成RS = t|t Rt S RS = R (R-S)ABC a1b1c1 a1b2c2 a2b2c1ABC a1b2c2 a2b2c1ABC a1b2c2 a1b3c2 a2b2c1RSR S 4. 广义笛卡尔积 (Extended Cartesian Product)vR: n目关系,k1个元组vS: m目关系,k2个元组vRS :列:(n+m)列的元组的集合v元组的前n列是关系R的一个元组v后m列是关系S的一个元组行:k1k2个元组vRS = tr ts |tr R tsS ABCa1b1c1a1b2c2a2b2c1R.A R.BR.Ca1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S S.A S.B S.Ca1b2c2a1b3c2a2b2c1A1b2c2A1b3c2a2b2c1a1b2c2a1b3c2a2b2c1S s# sn sex age 01 刘欢 男 36 02 韩红 女 28 03 刀郎 男 30SC s# c# G 01 c1 59 01 c2 80 02 c1 62 03 c1 null 求SSC?SSC S.s# sn sex age SC.s# c# G 01 刘欢 男 36 01 C1 59 01 刘欢 男 36 01 C2 80 01 刘欢 男 36 02 C1 62 01 刘欢 男 36 03 C1 null 02 韩红 女 28 01 C1 5902 韩红 女 28 01 C2 80 02 韩红 女 28 02 C1 6202 韩红 女 28 03 C1 null 03 刀郎 男 30 01 C1 5903 刀郎 男 30 01 C2 80 03 刀郎 男 30 02 C1 6203 刀郎 男 30 03 C1 null思考:SSC与S,SC信息等价吗?二. 专门的关系运算v选择(selection)v投影(projection)v连接(join)v除(division)温馨提示:写好关系查询语句要点之一:关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么? 之二:了解关系操作的过程,学会手工模拟最重要1. 选择(Selection ) v1) 选择又称为限制(Restriction)v2) 选择运算符的含义在关系R中选择满足给定条件的诸元组F(R) = t|tRF(t)= 真 F:选择条件,是一个逻辑表达式比较运算符: ,, 逻辑运算符: , ,例如:sex=男 age15 sex=女 age 12 v3) 选择运算是从行的角度进行的运算 v4) 举例 设有一个学生-课程数据库,包括学生关系 Student、课程关系Course和选修关系SC。举例: 设有一个学生-课程数据库学生关系
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号