zoukankan      html  css  js  c++  java
  • 关系代数(Relation Algebra)与SQL语句的对应关系

    SQL语句的执行一般是先翻译为关系代数再被执行的(能有效提高执行速度),所以我们有必要

    了解关系代数与SQL语句间的对应关系。

    就像高中代数由+-*/和数字组成,关系代数是由union、intersection、join等运算符和关系实例

    组成的。

    关系代数有五个基础运算符,这五个基础运算符能派生出其他组合运算符。它们分别是:

    选择(σ, selection)、投影(π, projection)、叉乘(x, cross-product)、

    差(-, set-difference)和并(υ, union)

    它们和SQL语句的对应关系为:

    选择(σ, selection)相当于SQL语句中的where,表示选出满足一定条件的行。

    如:σ rating>8 (S2)相当于 select * from S2 where rating>8;

    投影(π, projection)相当于SQL语句中的select。。。distinct, 表示选择哪些列。注意:投影是会去重的!

    如:π sname,rating (σ rating>8 (S2))相当于 select sname, rating from S2 where rating>8;

    叉乘(x, cross-product)相当于SQL语句中的from,表示穷举所有集合两边元素的组合量

    如: AxB 相当于 select * from A, B;  注意:叉乘时两个集合不能有重名列

    差(-, set-difference)R-S返回所有在R中而不在S中的元组

    并(υ, union)RυS返回包含在R中或在S中的所有元组

    注意:并、交、差都要求两个关系实例是并相容的。 并相容指:1. 两个关系实例字段数相同 2. 对应字段类型、取值范围相同

    合成运算符:

    合成运算符是由基础运算符组合派生而来的,算是一种速记标志。

    交(∩, intersection) R∩S返回既在R中又在S中的元组。

    自然连接(⋈, natural join)相当于先做叉乘,再选择公共属性一样的关系实例。如果没有公共属性的话,那么结果就是叉乘

    除(÷, division)r÷s, 返回r中包含与s共有列但其他列不同的关系实例。

    例如:

    r的上下蓝色和金黄色部分包含s,而中间橙色部分仅部分包含s,白色部分完全不包含s,所以r÷s= 

  • 相关阅读:
    stl学习笔记—set/multimap
    2013 杭州站 hdoj4778 Gems Fight!
    矩阵加速数列递推
    暑假写的两个数据结构
    AC自动机模板 hdoj2222 UVA-11468
    树莓派安装3.5英寸触摸屏幕
    树莓派设置NTP同步
    在树莓派上设置无线静态IP
    运行tomcat7w.exe未安装指定的服务
    LoadRunner 11安装Micosoft Visual C++ 2005 SP1时提示命令行选项语法错误
  • 原文地址:https://www.cnblogs.com/instant7/p/4095882.html
Copyright © 2011-2022 走看看