06形式化关系查询语言
2017-02-28 01:08
507 查看
关系代数
关系代数中基本的表达式是如下二者之一:数据库中的一个关系,一个常数关系。关系代数中一般的表达式是由更小的子表达式构成,设E1和E2是关系代数表达式,则E1∪E2,E1−E2,E1×E2,σp(E1), Πs(E1) , ρx(E1)都是关系代数表达式是过程化查询语言
基本运算
选择:σp(r)={t|t∈r and p(t)}
选择谓词p中可以使用=, ≠, >, ≥, <, ≤, and(∧), or(∨), not(¬) 将多个谓词合并成一个较大的谓词投影:ΠA1,A2,…,An(r)
由于关系是一个集合,所以所有重复的行均被去除并:r∪s={t|t∈r or t∈s}
要使r∪s有意义(即r和s是相容的),需要下面两个条件同时成立关系r和关系s必须是同元的,即属性的数目必须相同
对所有的i, r的第i个属性的域必须和s的第i个属性的域相同
集合差:r–s={t|t∈r and t∉s}
要使r−s有意义(即r和s是相容的),需要下面两个条件同时成立关系r和关系s必须是同元的,即属性的数目必须相同
对所有的i, r的第i个属性的域必须和s的第i个属性的域相同
笛卡尔积:r×s={tq|t∈r and q∈s}
假设r(R)和s(S)的属性是不相交的(即R∩S=ϕ)如果r(R)和s(S)的属性相交,则必须使用重命名
更名运算:ρx(A1,A2,...,An)(E)
返回表达式E的结果,并赋给名字x,同时将属性更名为 A1,A2,…,An附加的运算——可以用基本运算表达
集合交:r∩s={t|t∈r and t∈s}=r–(r–s)自然连接:r⋈s=ΠR∪S(σr.A1=s.A1∧r.A2=s.A2∧…,∧r.An=s.An(r×s)),,其中R∩S={A1,A2,…,An}
交换律
结合律
theta连接:r⋈θs=σθ(r×s)
外连接
左外连接:r ⟕ s=r⋈s∪(r−ΠR(r⋈s))×{null,null…,null}
右外连接:r⟖s=r⋈s∪({null,null…,null}×(s−ΠR(r⋈s))
全外连接:r⟗s=r⋈s∪()(r−ΠR(r⋈s))×{null,null…,null})∪({null,null…,null}×(s−ΠR(r⋈s)))
赋值运算:temp←E1
只能对临时关系变量赋值
扩展的运算——扩展了关系代数的表达能力
广义投影:ΠF1,F2,…,Fn(r)Fi可以包含+,−, ∗, / 代数运算和字符串串接
聚集:G1,G2,…,Gn
相关文章推荐
- 【笔记】数据库--形式化关系查询语言
- 形式化关系查询语言
- 【数据库系统概念】第6章 形式化关系查询语言 知识总结
- SQL 形式化语言——关系代数
- 关系代数是关系数据库系统查询语言的理论基础
- 关系数据标准语言SQL之数据查询
- JPA教程:JPA概述、JPA实体生命周期、JPA实体映射关系、JPA查询语言
- 关系查询语言
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- XQuery查询语言
- HQL:Hibernate查询语言(四)
- C# 3.0语言新特性(语言规范):7 查询表达式
- HQL: Hibernate查询语言(一)
- Hibernate查询语言:HQL
- LINQ,.NET语言级集成查询能力(.NET Language Integrated Query)
- [导入]Visual Basic 9.0前瞻——语言集成的查询支持和动态编程
- Hibernate查询语言:HQL
- XQuery数据查询语言[1-1] (转载)
- Hibernate查询语言:HQL