很简单的数据库关系代数介绍(Relational Algebra)
关系代数与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)相关推荐
- 数据库复习2. Relational Algebra 关系代数
Relational Algebra 关系代数 Relational Algebra is the language to describe operations in relational DBMS ...
- 关系代数(Relational Algebra)——极简教程
一切皆是关系. 什么是关系? 事物之间相互作用.相互影响的状态. Relation (philosophy), links between properties of an object. Relat ...
- mysql简单概述_MySQL入门很简单: 1 数据库概述
1. 数据库概述 1.1 数据存储方式: 1)人工管理阶段 2)文件系统阶段: 文件系统通过文件的存储路径和文件名称访问文件中的数据 3)数据库系统阶段:Oracle, SQL Server, MyS ...
- Oracle数据库基础教程:入门其实很简单
为什么80%的码农都做不了架构师?>>> Oracle数据库基础教程:入门其实很简单 Oracle数据库系统是目前最流行的客户/服务器数据库之一.本文集从初学者的角度出发,由浅 ...
- cad与连接mySQL数据库_跨服务器操作数据库?其实很简单!(下)
之前一篇文章一步一步的教小伙伴们如何建立SQL Server的数据库链接(DBLINK),详细步骤可查看上篇:跨服务器操作数据库?其实很简单!(上) 今天我们来教大家如何连接MYSQL和Oracle的 ...
- 关于实体类属性出现数据库关键字的解决办法【踩了一个大坑,花了六个小时才搞得这个BUG,其实就很简单,符号问题】
实体类出现属性字段numeric,与数据库冲突 在属性上面添加@Column(name = "`numeric`")即可 @Column(name = "`numeric ...
- 《MySQL入门很简单》学习笔记(22)之第22章驾校学员管理系统(关键词:数据库/MySQL)
第22章 驾校学员管理系统 略. 参考文献: 1.<MySQL入门很简单>.
- 数据库关系代数操作与扩展操作
数据库关系代数操作与扩展操作 序: 本篇主要介绍数据库的关系操作及其用数学怎么表示. **1.**关系代数操作分为集合操作和纯关系操作.(下面附战德臣老师课件的一张图以便于理解) **2.**并运算( ...
- 常见主流数据库对比介绍
常见数据库有<关系数据库系统>: ORACLE(甲骨文).DB2.SQL Server.Sybase.Informix.MySQL.VF.Access等. 其实数据库系统几乎支持所有的操作 ...
最新文章
- svn官方备份hot-backup.py强烈推荐
- Hadoop Hive迁移至MaxCompute
- AI算法工程师必备技术,快快积累!
- 使用Picasso加载网页图片到RecyclerView
- C#(9)——API调用
- 视觉SLAM学习--图像匹配(CVPR2020 Tutorial)
- easy_install 安装
- (pytorch-深度学习系列)pytorch实现多层感知机(自动定义模型)对Fashion-MNIST数据集进行分类-学习笔记
- oracle查看表中记录数,Oracle 查询某一用户下所有表的记录数
- Nvivo 自动编码语言包
- Qt编写可视化大屏电子看板系统31-模块9视频监控
- U盘所有文件(夹)变成.exe文件的解决方法
- 360扫描出来html木马,你的电脑真的做好防护了吗?使用360安全卫士木马查杀一键扫描就知道...
- word2vec源码详解
- (基础知识)单反镜头的参数辨别
- PCL--学习笔记(持续更新——蜗速)
- ADS学习:统计分析——灵敏度分析、良率优化
- 电子发票(PDF)识别信息提取(JAVA)电子专票(OFD)在线预览
- ViewPager 优化
- MySQL-学习数据库必备的基础知识
热门文章
- 计算机模拟图像和数字,图像与数字图像基础
- 【最短路】FOJ 2243 Daxia like uber
- printf 格式串和参数不匹配的后果(你想知道的C语言 1.10)
- Oracle项目管理之设施与资产管理Facilities and Asset(中文)
- jQuery中淡入效果fadeTo
- 【绿茶书情】:《SOHO小报》和《凤… - 绿茶的日志 - 网易博客
- 自制 js 的 trim、right、left、instrRev、instr、mid 函数
- 全球计算机网络覆盖率,覆盖率
- Windows Server 2008中配置IIS
- 转换TensorFlow模型并使用OpenVINO运行加速推理效能