数据库原理与应用.ppt

上传人:max****ui 文档编号:14551957 上传时间:2020-07-23 格式:PPT 页数:37 大小:448.86KB
返回 下载 相关 举报
数据库原理与应用.ppt_第1页
第1页 / 共37页
数据库原理与应用.ppt_第2页
第2页 / 共37页
数据库原理与应用.ppt_第3页
第3页 / 共37页
点击查看更多>>
资源描述
关系代数,严格地提出关系模型的是美国IBM公司的E.F.Codd 1970年提出关系数据模型 E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM,1970 之后,提出了关系代数和关系演算的概念,关系数据库应用数学方法来处理数据库中的数据 80年代后,关系数据库系统成为最重要、最流行的数据库系统 关系数据库系统 是支持关系模型的数据库系统 关系模型的组成 关系数据结构 关系操作集合 关系完整性约束,单一的数据结构-关系 现实世界的实体以及实体间的各种联系均用关系来表示 数据的逻辑结构-二维表 从用户角度,关系模型中数据的逻辑结构是一张二维表。 关系代数的目的: 是演示一个查询语言从关系数据库系统中检索信息的能力,关系代数是一种抽象的语言,是为了用最简单的形式来表达所有关系数据库查询语言必须完成的运算的集合 关系代数运算的分类 传统的集合运算 并、差、交、广义笛卡尔积 专门的关系运算 选择、投影、连接、除,关系代数运算符,关系代数运算符,集合运算 并、差、交、广义笛卡尔积 兼容表定义:若表R和S具有相同的标题,即Head( R)=Head (S),且属性是从相同的域中选择并具有相同的含义,则表R和S是兼容的。 注意:仅当两个表是兼容表时,才可以做并、交、差运算,RS,R,S,RS,R - S,R,S,R-S,注意:与文式图的区别,RS,R,S,R S,广义笛卡尔积 R n目关系,k1个元组 S m目关系,k2个元组 RS 列:(n+m)列的元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组 行:k1k2个元组,R,S,R S,问题: R R 是否正确?,定义 赋值、别名 R是一个表,Head ( R )=A1An 。假定B1Bn是n个属性。且它们的域Domain(Bi)=Domain(Ai)。 S(B1Bn):=R(A1An) ,我们定义了一个新表S 简写为 S:=R 故 为了完成自身与自身的笛卡尔积运算 (1) S:=R (2) R S,自然关系运算 选择、投影、连接、除 选择运算: 给定一个表S ,选择运算的结果是一个新表 用 S where C 表示 (1)C可以任何形式的合法条件 (2)可以是复合条件 若 U:= S where C1 ; V:= S where C2 那么: S where C1 and C2 等价 U V S where C1 or C2 等价 U V S where not C1 等价 S-U,选择运算是从行的角度进行的运算,举例(参见 P18 CAP数据库) 该CAP数据库由下列表的集合组成 CAP=customers,agents,products,orders,customers,products,agents,orders,例 找出所有在Kyoto的顾客 customers where city=kyoto 例 找出所有存放在Dallas并且价格超过$1的商品 products where city=Dallas and price1 2、投影运算 从R中选择出若干属性列组成新的关系 投影操作主要是从列的角度进行运算,但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),例 检索出表customers中的全部顾客的名字 CN:= customerscname,CN,一个综合例题 检索出所有佣金比例超过6%的代理商对,并且都在同一个城市。 L:= agents where percent6 ; M:=agents where percent6; paris:= (LM) where L.city=M.city )L.anme,M.aname正确吗? 如何修改?为什么?,Paris:= (LM) where L.city=M.city and L.aidM.aid) L.anme,M.aname,注意:关系代数查询要避免内容依赖。 关系代数优先级,连接运算 连接也称为连接 从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S = | tr Rts StrAtsB A和B:分别为R和S上度数相等且可比的属性组 :比较运算符 连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。,两类常用连接运算 等值连接(equijoin) 什么是等值连接 为“”的连接运算称为等值连接 等值连接的含义 从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为: R S = | tr Rts StrA = tsB ,A=B,自然连接(Natural join) 什么是自然连接 自然连接是一种特殊的等值连接 两个关系中进行比较的分量必须是相同的属性组 在结果中把重复的属性列去掉 自然连接的含义 R和S具有相同的属性组B R S = | tr Rts StrB = tsB ,一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,举例,R,S,R S,等值连接 R S,自然连接 R S,注意:若R和S是兼容表 则 RS 等价 R S 例 检索出所有订购商品p01的顾客的名字。 1)T:= orders where pid=p01 2) CNP01:= (customers Tcid)cname 例 检索所有订购了至少一种价值为$1的商品的顾客名字。 1)cheaps:=(products where price=1)pid 2) (orders cheaps)customers)cname,(orders(products where price=1)pid)customers)cname 考虑如下关系代数是否能实现我们的要求: (orders(products where price=1)customers)cname 注:做连接的时候必须使用投影来避免一些连接上的不确定影响 乘积与连接运算都满足结合率: (RS)T = R(ST) (RS)T = R(ST),除运算,除操作是同时从行和列角度进行运算,表T 为 R S 的结果,若 Head(T)= A1An 并且T中包含的恰好是这样的行t : 对于S中的每一个行s,t和s的窜接的结果的行可以在表R中找到,并且T中没有更大的行的集合满足这个条件。 假定 Head ( R)=A1An B1Bm Head ( S)=B1Bm 定理: 给定表T和S ,且 Head(T)=A1An Head (S)=B1Bm ,若表R是通过R=T S定义的,那么有T=R S 。 问题:反之成立吗?为什么?,例:,R,S,R S,R,R S,S,例:检索出由顾客c006订购的商品的号码 ( orders where cid=c006)pid 再找出所有的订购了全部以上商品的顾客的姓名。 (orderscid,pid (orders where cid=c006)pid) customers )cname 问题:请检索订购了全部商品的顾客的名字。,(orderscid,pid productspid) customers )cname,本节结束!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!