首页 理论教育 软件工程专业导论-关系代数定义

软件工程专业导论-关系代数定义

时间:2023-10-23 理论教育 版权反馈
【摘要】:如何从数学上描述图6-1表与表之间的关系,以及每个表所具有的属性呢?IBM 公司的Edgar F.Codd[1]于1970年创立了关系代数,建立了关系数据库的基础。Codd于2003年去世,当年关系数据库的产值达到120亿美元。为了方便,我们把关系作为一个表的抽象说法,两者是一样的,本文中为了避免与6.1.3的关系在中文上的混淆,统一用表,因此,这里关系代数就是表代数——表的表达和运算的代数。或解释为中文的定义:老师=正式定义是,给定集合D1,D2,…

软件工程专业导论-关系代数定义

如何从数学上描述图6-1表与表之间的关系,以及每个表所具有的属性呢?IBM 公司的Edgar F.Codd[1]于1970年创立了关系代数(relational algebra),建立了关系数据库的基础。Codd于2003年去世,当年关系数据库的产值达到120亿美元。

为了方便,我们把关系作为一个表的抽象说法,两者是一样的,本文中为了避免与6.1.3的关系(relationship)在中文上的混淆,统一用表(Table),因此,这里关系代数就是表代数(Table algebra)——表的表达和运算的代数(注释:事实上,关系与表是有差别的,可参见数据库原理的书籍)。

表的每个列是属性,记为

A1,A2,…,An是属性(attribute)。

每个行是表模式(schema),记为R

R=(A1,A2,…,An)

例如,instructor=(ID,name,dept_name,salary)。

或解释为中文的定义:(www.xing528.com)

老师=(教师编号,姓名,部门,工资)

正式定义是,给定集合D1,D2,….Dn,表r是D1×D2×…×Dn的子集。

这样,表是n个元组(a1,a2,…,an)的集合,这里每个ai∈Di

元组的顺序无关紧要,即元组可以按任意顺序存放。例如,instructor里面的属性(ID,name,dept_name,salary)的前后顺序可以是任意的。

定义了表,就可以定义出一张表的运算,多张相同模式表的运算,以及多张不同模式表的运算。

表代数具有5个基本算子:选择(selection)、投影(projection)、笛卡儿积(Cartesian product)、并(union)以及差(difference)。其他的运算是扩展运算,常用的是交(Intersection)、连接(Join)和除(Division)等运算,可以用上述5个基本算子构造而成。

下面以举例的方式解释五种基本算子和两个扩展运算的含义。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈