关系代数与sql语句类似,也是一种独立语言;
以下通过一些例子尽量的简单地讲解,只有七个小点,可能15分钟不到就能看完;
使用表如下:

1、选择(select)
选择一些符合条件的行(row),使用符号 σ (sigma)

【例1】σsFDMarks > 77 Students
(相当于SQL中使用: SELECT * FROM STUDENTS WHERE sFDMarks > 77;)

【例2】用“^”表示AND
σsFDMarks > 77 ^ sID > 1 Students
(SELECT * FROM STUDENTS WHERE sFDMarks > 77 AND sID > 1;)

2、投影(project)
选择一些符合条件的列(column),使用符号 π (pi)
【例3】πsID, ExamMarks StudentModules
(SELECT sID, ExamMarks from StudentModules;)

以上两个综合使用
【例4】πsID, ExamMarks ( σExamMarks > 70 StudentModules )

SELECT sID, ExamMarks
FROM ( SELECT * FROM StudentModules WHERE ExamMarks > 70
)

3、笛卡尔积(Cross-Product or Cartesian Product Operator)
很少用;
【例5】σ(students.sID = StudentModules.sID) (Students x StudentModules)

SELECT Students.sID, sName, sFirstDegree, sFDMarks, mID, StudentModules.sID, CAMarks, ExamMarks
FROM Students, StudentModules
WHERE Students.sID = StudentModules.sID

4、自然连接(Natural Join )
如果两张表中有相同名字的列,将它们相同的值连接在一起,注意结果中没有重复值;
【例6】Students ⋈ StudentModules
等价于
σ(students.sID = StudentModules.sID) (Students x StudentModules)

5、theta-连接(theta-joins)
先自然连接两个表Table1和Table2,再根据条件condition筛选;
【例7】Table1 ⋈(condition) Table2
(SELECT * FROM Table1 JOIN Table2 ON( condition);)
等价于
σΘ (Exp1 x Exp2)

6、重命名(Rename)
使用符号 ρ (Rho)
【例8】ρR( A1, A2, … An) (E)

SELECT EA1 AS A1, EA2 AS A2 ... EAn AS An
FROM E AS R

如果不想改变每一列的名字,只是想把整个关系E改成R:
ρR (E)

7、自连接(Self Joins)
重命名Rename经常用于自连接的时候。
【例9】找出相同老师教授的课程(List the pairs of modules taught by the same lecturer. )

π( M1.mName , M2.mName ) (
 σ( M1.mName < M2.mName ) (
  ρM1( M1.mID, M1.mName, mLecturer )(Modules ) ⋈
  ρM2( M2.mID, M2.mName, mLecturer )(Modules )
 )
)

很简单的数据库关系代数介绍(Relational Algebra)相关推荐

  1. 数据库复习2. Relational Algebra 关系代数

    Relational Algebra 关系代数 Relational Algebra is the language to describe operations in relational DBMS ...

  2. 关系代数(Relational Algebra)——极简教程

    一切皆是关系. 什么是关系? 事物之间相互作用.相互影响的状态. Relation (philosophy), links between properties of an object. Relat ...

  3. mysql简单概述_MySQL入门很简单: 1 数据库概述

    1. 数据库概述 1.1 数据存储方式: 1)人工管理阶段 2)文件系统阶段: 文件系统通过文件的存储路径和文件名称访问文件中的数据 3)数据库系统阶段:Oracle, SQL Server, MyS ...

  4. Oracle数据库基础教程:入门其实很简单

    为什么80%的码农都做不了架构师?>>>    Oracle数据库基础教程:入门其实很简单 Oracle数据库系统是目前最流行的客户/服务器数据库之一.本文集从初学者的角度出发,由浅 ...

  5. cad与连接mySQL数据库_跨服务器操作数据库?其实很简单!(下)

    之前一篇文章一步一步的教小伙伴们如何建立SQL Server的数据库链接(DBLINK),详细步骤可查看上篇:跨服务器操作数据库?其实很简单!(上) 今天我们来教大家如何连接MYSQL和Oracle的 ...

  6. 关于实体类属性出现数据库关键字的解决办法【踩了一个大坑,花了六个小时才搞得这个BUG,其实就很简单,符号问题】

    实体类出现属性字段numeric,与数据库冲突 在属性上面添加@Column(name = "`numeric`")即可 @Column(name = "`numeric ...

  7. 《MySQL入门很简单》学习笔记(22)之第22章驾校学员管理系统(关键词:数据库/MySQL)

    第22章 驾校学员管理系统 略. 参考文献: 1.<MySQL入门很简单>.

  8. 数据库关系代数操作与扩展操作

    数据库关系代数操作与扩展操作 序: 本篇主要介绍数据库的关系操作及其用数学怎么表示. **1.**关系代数操作分为集合操作和纯关系操作.(下面附战德臣老师课件的一张图以便于理解) **2.**并运算( ...

  9. 常见主流数据库对比介绍

    常见数据库有<关系数据库系统>: ORACLE(甲骨文).DB2.SQL Server.Sybase.Informix.MySQL.VF.Access等. 其实数据库系统几乎支持所有的操作 ...

最新文章

  1. svn官方备份hot-backup.py强烈推荐
  2. Hadoop Hive迁移至MaxCompute
  3. AI算法工程师必备技术,快快积累!
  4. 使用Picasso加载网页图片到RecyclerView
  5. C#(9)——API调用
  6. 视觉SLAM学习--图像匹配(CVPR2020 Tutorial)
  7. easy_install 安装
  8. (pytorch-深度学习系列)pytorch实现多层感知机(自动定义模型)对Fashion-MNIST数据集进行分类-学习笔记
  9. oracle查看表中记录数,Oracle 查询某一用户下所有表的记录数
  10. Nvivo 自动编码语言包
  11. Qt编写可视化大屏电子看板系统31-模块9视频监控
  12. U盘所有文件(夹)变成.exe文件的解决方法
  13. 360扫描出来html木马,你的电脑真的做好防护了吗?使用360安全卫士木马查杀一键扫描就知道...
  14. word2vec源码详解
  15. (基础知识)单反镜头的参数辨别
  16. PCL--学习笔记(持续更新——蜗速)
  17. ADS学习:统计分析——灵敏度分析、良率优化
  18. 电子发票(PDF)识别信息提取(JAVA)电子专票(OFD)在线预览
  19. ViewPager 优化
  20. MySQL-学习数据库必备的基础知识

热门文章

  1. 计算机模拟图像和数字,图像与数字图像基础
  2. 【最短路】FOJ 2243 Daxia like uber
  3. printf 格式串和参数不匹配的后果(你想知道的C语言 1.10)
  4. Oracle项目管理之设施与资产管理Facilities and Asset(中文)
  5. jQuery中淡入效果fadeTo
  6. 【绿茶书情】:《SOHO小报》和《凤… - 绿茶的日志 - 网易博客
  7. 自制 js 的 trim、right、left、instrRev、instr、mid 函数
  8. 全球计算机网络覆盖率,覆盖率
  9. Windows Server 2008中配置IIS
  10. 转换TensorFlow模型并使用OpenVINO运行加速推理效能