06形式化关系查询语言

关系代数

关系代数中基本的表达式是如下二者之一:数据库中的一个关系,一个常数关系。关系代数中一般的表达式是由更小的子表达式构成,设 E1 E2 是关系代数表达式,则 E1E2 E1E2 E1×E2 σp(E1) , Πs(E1) , ρx(E1) 都是关系代数表达式
过程化查询语言

基本运算

选择: σp(r)={t|tr and p(t)}
  • 选择谓词 p 中可以使用=, , > , , < <script type="math/tex" id="MathJax-Element-39"><</script>, , and() , or() , not(¬) 将多个谓词合并成一个较大的谓词
投影: ΠA1,A2,,An(r)
  • 由于关系是一个集合,所以所有重复的行均被去除
并: rs={t|tr or ts}
  • 要使 rs 有意义(即r和s是相容的),需要下面两个条件同时成立
    • 关系r和关系s必须是同元的,即属性的数目必须相同
    • 对所有的i, r的第i个属性的域必须和s的第i个属性的域相同
集合差: rs={t|tr and ts}
  • 要使 rs 有意义(即r和s是相容的),需要下面两个条件同时成立
    • 关系r和关系s必须是同元的,即属性的数目必须相同
    • 对所有的i, r的第i个属性的域必须和s的第i个属性的域相同
笛卡尔积: r×s={tq|tr and qs}
  • 假设 r(R) s(S )的属性是不相交的(即 RS=ϕ
  • 如果 r(R) s(S) 的属性相交,则必须使用重命名
更名运算: ρx(A1,A2,...,An)(E)
  • 返回表达式 E 的结果,并赋给名字x,同时将属性更名为 A1,A2,,An
附加的运算——可以用基本运算表达
  • 集合交: rs={t|tr and ts}=r(rs)
  • 自然连接: rs=ΠRS(σr.A1=s.A1r.A2=s.A2,r.An=s.An(r×s)), ,其中 RS={A1,A2,,An}
    • 交换律
    • 结合律
  • theta连接: rθs=σθ(r×s)
  • 外连接
    • 左外连接: r  s=rs(rΠR(rs))×{null,null,null}
    • 右外连接: rs=rs({null,null,null}×(sΠR(rs))
    • 全外连接: rs=rs()(rΠR(rs))×{null,null,null})({null,null,null}×(sΠR(rs)))
  • 赋值运算: tempE1
    • 只能对临时关系变量赋值
扩展的运算——扩展了关系代数的表达能力
  • 广义投影: ΠF1,F2,,Fn(r)
    • Fi 可以包含 + ,, , / 代数运算和字符串串接
  • 聚集: G1,G2,,Gn
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值