关系代数和关系运算

查询语言

用户用来从数据库中请求获取信息的语言

“纯”查询语言(奠定了人民使用查询语言的基础)

  • 关系代数-SQL的基础
  • 元组关系演算
  • 域关系演算

 

关系代数

在某种程度上是过程化语言

六个基本运算

  • select 选择
  • project 投影
  • union 并
  • set difference 差(合集差)
  • cartesian product 笛卡尔积
  • rename 更名(重命名)

用户输入一个或两个关系,并得到新的关系

附加运算

  • set intersection 交
  • natural join 自然连接
  • division 除
  • assignment 赋值

 

选择运算

关系-表,元组-行,属性-列

选择运算就是在表(关系)中,选择出条件(元组中属性)满足的行(元组)。

定义:σp(r)={t|t∈r and p(t)}

p是由逻辑连词与、或、非连接起来的公式。逻辑连词的运算对象可以是比较运算符的表达式。

例:(a<4)&&(b>3)

 

投影运算

目的:将表中重复的元组删除。

 

并运算

目的:将两个有相同属性(且排列顺序相同)的表合并,将重复的元组取出,将不同的变成一个表。

 

差运算

目的:将两个有相同属性(且排列顺序相同)的表中出现相同的元组删除,使两个表中都没有这些元组

 

广义笛卡尔积

定义:rxs={{t q}|t∈r and q∈s}

假设r(R)的属性和s(S)的属性没有交集

如果属性有交集,那么必须重命名这些有交集的属性

例:r和s中都有B,可以重命名为r.B和s.B

 

复合运算

可以使用多种运算符构建表达式

 

更名运算

允许我们使用其他名字指代关系

 

表达:()内的是查找条件,下标是查找目标

 

附加运算 

虽不能增加关系代数的表达能力,但却可以简化一些常用的查询。

 

交运算

目的:从两个有相同属性(且排列顺序相同)的表中找出相同的元组。

r∩s=r-(r-s)

 

自然连接

将两表中相同属性的元组进行笛卡尔积,在得到的新元组进行投影,删除多余的相同的属性。

注意:

1.r,s必须含有同名属性

2.连接两个关系中同名属性值相等的元组

3.消去重名属性

theta连接

由用户来指定,是自然连接的扩展

 

除运算

使用于“对所有的”此类短语的查询

多项选择:满足一个属性的多个值的另一个属性。

 

赋值运算(<-)

赋值运算可以把查询表达为一个顺序程序,该程序包括:

  • 一系列赋值
  • 一个其值被作为查询结果显示的表达式

赋值必须是赋给一个临时关系变量。

 

总结:

并、差、交为双目、等元运算

笛卡尔积、自然连接、除为双目运算

投影、选择为单运算对象

优先级(由高到低)

  • 投影
  • 选择
  • 笛卡尔积
  • 连接、除
  • 并、差
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值