关系模型知识点总结(3) |
您所在的位置:网站首页 › 集合运算的知识点 › 关系模型知识点总结(3) |
关系代数
一、前言二、概述三、传统的集合运算符1.概述2.∪(并)3.∩(交)4.-(差)5.笛卡儿积
四、专门的关系运算1.概述2.记号3.象集4.选择5.投影6.连接🔴等值连接🔴自然连接
7.悬浮元组🔴外连接🔴左外连接🔴右外连接
8.除运算
五、结语
一、前言
本文将讲述有关于关系代数的知识点,并附例题加深印象 二、概述 抽象的查询语言用对关系的运算来表达查询运算对象:关系运算结果:关系运算符:传统集合运算符 和 专门的关系运算符 三、传统的集合运算符 1.概述 将关系看作是元组的集合运算是从行的角度进行的其中包括并、差、交 和 笛卡儿积 2.∪(并)R∪S={ t | t∈R ∨ t∈S }简单来说,就是把两个关系中所有的元素合并成一张表 例如: 关系R ABC123456789关系S ABC123056739那么 R∪S 为: ABC123456789056739 3.∩(交)R∩S={ t | t∈R ∧ t∈S }简单来说,就是把两张表格中相同的元素提取出来,组成一个新的表 例如: 关系R ABC123456789关系S ABC123056739那么 R∩S 为: ABC123 4.-(差)R-S={ t | t∈R ∧ t∉S } 简单来说,就是将R中两个关系中共同元素去除 例如: 关系R ABC123456789关系S ABC123056739那么 R-S 为: ABC456789 5.笛卡儿积R×S={(x,y)|x∈R∧y∈S} 这个有点难以理解。。。那么直接看例子吧 例如: 关系R ABC123456789关系S ABC123056739那么 R×S 为: R.AR.BR.CS.AS.BS.C123123123056123739456123456056456739789123789056789739我们设R是n目关系,有K1个元组,S是m目关系,有K2个元组,那么他们的笛卡儿积其实就是排列组合,如果将R关系中的每一行看作是abc,S关系中的每一行看作是xyz,那么他们两两组合的方式一共有9种,故 当R有K1个元组,S有K2个元组时,R和S的笛卡儿积行一共有K1×K2个元组;而由于每个关系里都有各自属性,所以R和S的笛卡儿积列一共有(m+n)个元组 PS:如果概念性语言描述不清楚的话,可以看这篇【关系模型知识点总结(1)—— 关系数据结构】里面有对专业名词的解释 四、专门的关系运算 1.概述 从关系R中选取使得逻辑表达式F为真的元组F:选择条件,即逻辑表达式,取值为真/假,一般形式为X1θY1,θ为> / < / = / 从行的角度运算 2.记号 关系R(A1,A2,···,An),t∈R表示t是R的元组t[Ai]代表元组t中相应于属性Ai的分量若 A={Ai1,Ai2,···,Aik},则 A是属性列/属性组t[A]=(t[Ai1],t[Ai2],···,t[Aik])表示元组t在数学列A上每个分量的集合 3.象集 给定一个关系R(X,Z),X和Z为属性组当t[X]=x,x在R中象集定义为 Zx={ t[Z] | t∈R,t[X] =x }列如: ABX1Z1X1Z2X1Z3X2Z4X2Z5X3Z6X1在R中的象集ZX1 = {Z1,Z2,Z3} X2在R中的象集ZX2 = {Z4,Z5} X3在R中的象集ZX2 = {Z6} 4.选择 σF ( R ) {t|t∈R∧F(t)=‘真’}提取出来的是某一行列如: Student IDNameSdept001张三CS002李四IS003王五MAσ Sdept=‘CS’(Student) 结果为: IDNameSdept001张三CS 5.投影 ΠA( R )={ t[A] | t∈R }从列的角度来运算将提取出来的属性及值组成新的关系若有重复元组,要取消例如: Student IDNameSdept001张三CS002李四IS003王五MAΠSdept(Student)的结果为: SdeptCSISMA 6.连接 从两个关系的笛卡尔积中选取属性间满足一定条件的元组同名属性才能进行自然连接自然连接要去掉重复属性,等值连接不用 🔴等值连接例如: R ABCa1b15a1b~126a2b38a2b412S BEb13b27b310b32b52等值连接后结果为: AR.BCS.BEa1b15b13a1b~126b27a2b38b310a2b38b32 🔴自然连接例如: R ABCa1b15a1b~126a2b38a2b412S BEb13b27b310b32b52自然连接后结果为: ABCEa1b153a1b~1267a2b3810a2b382 7.悬浮元组 操作时被舍弃的元组例如: R ABCa1b15a1b~126a2b38a2b412S BEb13b27b310b32b52在进行连接时,下面两组都是被舍弃的元组,因为属性值不相同,他们就是悬浮元组 ABCa2b412 BEb52 🔴外连接将悬浮元组保存在关系中,在其它属性填上空值(NULL) 简单来说,就是把表中所有元素都填到新表中,如果某行或者某列中只有一个关系有值,另一个没有,就用NULL代替 ABCEa1b153a1b~1267a2b3810a2b382a2b4122NULLNULLb5NULL2 🔴左外连接只保留左边关系R的悬浮元组 简单来说,就是保证R中所有元素都在新表里面了,这行中S的某个属性没有值的话,用NULL代替 ABCEa1b153a1b~1267a2b3810a2b382a2b4122NULL 🔴右外连接只保留右边关系S的悬浮元组 简单来说,就是保证S中所有元素都在新表里面了,这行中R的某个属性没有值的话,用NULL代替 ABCEa1b153a1b~1267a2b3810a2b382NULLb5NULL2 8.除运算列如: R ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1S BCDb1c2d1b2c1d1b2c3d2我们来求a1、a2、a3、a4的象集 a1:{ (b1,c2),(b2,c3),(b2,c3)} a2:{(b3,c7),(b2,c3)} a3:{(b4,c6)} a4:{(b6,c6)} S在B、C上投影为{ (b1,c2),(b2,c3),(b2,c3)} 所以R÷S = {a1} 五、结语概念如果混淆不清的话,建议独立做例题,这样可以加深记忆 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |