您的位置:首页 > 数据库

数据库(二) 关系模型之关系代数

2018-01-20 12:18 288 查看
关系代数运算的特点

①基于集合,提供了一系列的关系代数操作:笛卡尔积广义积)、选择投影更名等基本操作;

②以及连接关系除等扩展操作,是一种集合思维的操作语言;

③关系代数操作以一个或多个关系为输入,结果是一个新的关系;

④用对关系的运算来表达查询,需要指明所用操作,具有一定的过程性;

⑤是一种抽象的语言,是学习其他数据库语言,如SQL等的基础;

 

关系代数操作



(1)关系代数的约束:并相容性

①参与运算的两个关系及其相关属性之间有一定的对应性、可比性或意义关联性;

②定义:关系R与关系S存在相容性,当且仅当:

关系R与关系S的属性数目必须相同;

对于任意i,关系R的第i个属性的域必须和关系S的第i个属性的域相同;

 

(2)(Union)

①定义:假设关系R和关系S是并相容的,则关系R与关系S的并运算结果也是一个关系,记作:R∪S,它由或者出现在关系R中,或者出现在S中的元组构成;

②数学描述:R∪S={t|t∈R∨t∈S},其中t是元组;

③并运算是将两个关系的元组合并成一个关系,在合并时去掉重复的元组;

④R∪S和S∪R运算那结果是同一个关系,其描述示意图如下:



(3)(Difference)

①定义:假设关系R和关系S是并相容的,则关系R与关系S的差运算结果也是一个关系,记作:R-S,它由出现在关系R中,但不出现在S中的元组构成;

②数学描述:R-S={t|t∈R∧t∉S},其中t是元组;

③R-S与S-R是不同的,其区别的描述示意图如下:



(4)广义笛卡尔积(Cartesian Product)

①定义:关系R(<a1,a2,...,an>)与关系S(<b1,b2,...,bm>)广义笛卡尔积(简称广义积,或积或笛卡尔积)运算结果也是一个关系,记作:R×S,它由关系R中的元组与关系S的元组进行所有可能拼接(或串接)构成;

②数学描述:



③应用场景:当一个检索涉及到多个表时,便需要将这些表串接或拼接起来,然后才能检索,这时,就要使用广义笛卡尔积运算;

④R×S=S×R:R×S为R中
的每一个元组都和S中的所有元组进行串接。S×R为S中的每一个元组都和R中的所有元组进行串接。结果是相同的;

⑤两个关系R和S,它们的属性个数分别是n和m,则笛卡尔积R×S的属性个数=n+m;

⑥两个关系R和S,它们的元组个数分别是x和y,则笛卡尔积R×S的元组个数是x×y;

 

(5)选择(Select)

①定义:给定一个关系R,同时给定一个选择的条件condition(简记con),选择运算结果也是一个关系,记作σcon(R),它从关系R中选择出满足给定条件condition的元组构成;

②数学描述:



③选择操作从给定的关系中选出满足条件的行,条件的书写很重要,尤其是当不同运算符在一起时,要注意运算符的优先次序,优先次序自高至低位:括弧、θ、﹁、∧、∨;

 

(6)投影(Project)

①定义:给定一个关系R,投影运算结果也是一个关系,记作∏A(R),它从关系R中选出属性包含在A中的列构成;

②数学描述:



③注意,投影操作是从给定关系中选出某些列组成新的关系,而选择操作是从给定关系中选出某些行组成新的关系;

 

(7)(Intersection)

①定义:假设关系R和关系S是并相容的,则关系R与关系S的交运算结果也是一个关系,记作:R∩S,它由同时出现在关系R和关系S中的元组构成;

②数学描述:R∩S={t|t∈R∧t∈S},其中t是元组;

③R∩S和S∩R运算的结果是同一个关系;

④交运算可以通过差运算来实现:R∩S=R-(R-S)=S-(S-R);


   


(8)θ连接(theta-Join)

①定义:给定关系R和关系S,R与S的θ连接运算结果也是一个关系,记作


,它由关系R和关系S的笛卡尔积中,选取R中属性A与属性之间满足θ条件的元组构成;

②数学描述:



③投影与选择操作知识对单个关系(表)进行操作,而实际应用中往往涉及多个表之间的操作,这就需要θ连接操作;

④在实际应用中,θ连接操作经常与投影、选择操作一起使用;

⑤操作过程:对两个表进行广义笛卡尔积 --> 从广义笛卡尔积中选取符合条件的元组-->在新表上进行投影操作,得到最终的结果;

⑥特别注意:虽然在讲θ连接操作时,使用笛卡尔积然后再进行选择来得到θ连接结果。这主要是方便理解。但当引入连接操作后,DBMS可直接进行连接操作,而不必先形成笛卡尔积;

(9)等值连接(Equi-Join)

①定义:给定关系R和关系S,R与S的等值连接运算结果也是一个关系,记作


,它由关系R和关系S的笛卡尔积中选取R中属性A与S中属性B上值相等的元组所构成;

②数学描述:



③当θ连接中运算符为“=”时,就是等值连接,等值连接是θ连接的一个特例;

④广义积的元组组合并不是都有意义的,另外广义积的元组组合数目也非常庞大,因此采用θ连接/等值连接运算可大幅度降低中间结果的保存量,提高速度;

 

(10)自然连接(Natural-Join)

①定义:给定关系R和关系S,R与S的自然连接运算结果也是一个关系,记作



它由关系R和关系S的笛卡尔积中选取相同属性组B上值相等的元组所构成;

②数学描述:



③自然连接是一种特殊的等值连接;

④要求关系R和关系S必须有相同的属性组B,R和S属性相同,值必须相等才能连接;

⑤要在结果中去掉重复的属性列;

 

(11)书写关系代数表达式的基本思路

①检索是否涉及多个表,如不涉及,则可直接采用并、差、交、选择与投影,只要注意条件书写正确与否即可;

②如涉及多个表,则检查,能否使用自然连接,将多个表连接起来(多数情况是这样的),如不能,能否使用等值或不等值连接(θ连接),还不能,则使用广义笛卡尔积,注意相关条件的书写;

③连接完后,可以继续使用选择、投影等运算,即所谓数据库的“选投联”操作:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: