- 关系演算是一种非过程查询语言。在非过程查询语言中, 用户关注如何获得最终结果的细节。
- 关系演算告诉你该怎么做, 却从不解释该怎么做。
文章图片
1.元组关系演算(TRC)
- 指定元组关系演算以选择关系中的元组。在TRC中, 过滤变量使用关系的元组。
- 该关系的结果可以具有一个或多个元组。
{T | P (T)}or {T | Condition (T)}
哪里
T是结果元组
P(T)是用于获取T的条件。
例如:
{ T.name | Author(T) AND T.article = 'database' }
输出:此查询从“作者”关系中选择元组。它返回写有关于“数据库”的文章的作者的带有“名称”的元组。
TRC(元组关系演算)可以量化。在TRC中, 我们可以使用现有(?)和通用量词(?)。
例如:
{ R| ?T ∈ Authors(T.article='database' AND R.name=T.name)}
输出:此查询将产生与上一个相同的结果。
2.领域关系演算(DRC)
- 关系的第二种形式称为域关系演算。在域关系演算中, 过滤变量使用属性的域。
- 域关系演算与元组演算使用相同的运算符。它使用逻辑连接词∧(和), ∨(或)和┓(不)。
- 它使用现有(?)和通用量词(?)绑定变量。
{ a1, a2, a3, ..., an | P (a1, a2, a3, ... , an)}
哪里
a1, a2是属性P代表由内部属性建立的公式
例如:
{<
article, page, subject >
|∈ srcmini ∧ subject = 'database'}
【DBMS关系演算】输出:此查询将从关系srcmini生成文章, 页面和主题, 其中主题是数据库。