元组关系演算和域关系运算

本文介绍元组关系演算和域关系演算的基本概念,包括元组表达式、原子公式的形式,以及如何用关系演算表达式表示关系代数的五种基本运算,并通过实例说明了查询操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

v在元组演算中,元组关系演算系演算表达式(简称为元组表达式)是以元组变量为单位。记作: {t|Φ(t)}
v其中t是元组变量, Φ(t)是由原子公式和运算符组成的公式。
v如果元组变量前有“全称量词”(")或“存在量词”($),则称其为约束变量,否则称为自由变量
v原子公式有三种形式:
v1. R(t)
vR是关系名,t是关系元组变量。R(t)表示 t是关系R中的元组。关系可表示:{t|R(t)}
v2. t[i]θu[j]
v其中 t和u 都是元组变量,θ是算术比较运算符。表示元组t的第i的分量与元组u的第j个分量之间满足θ关系。
v例如: t[1]<u[2]
v
3. t[i] θaa θt[i]
其中:a是一个常量。表示元组s的第i个分量与常量a之间满足θ 关系。
下面用关系演算表达式表示关系代数的五种基本运算:
v1)并  RÈS={ t |R(t) ÚS(t)}
v2)差 R-S={ t | R(t) Ù S(t)}
v3)广义笛卡儿积
R´S= { t(n+m)|($ u(n))($ v(m))(R(u) Ù S(v) Ù t[1]=u[1]Ù Ù t[n]=u[n] Ù t[n+1]=v[1] Ù Ù t[n+m]=v[m])}
vt(n+m)表示t有目数(n+m)u (n)表示un元组, v(m)表示vm元组。
v4)投影
vi1,i2, ik(R)={t (k)| ($u)(R(u) Ùt[1]=u[i1] Ù Ùt[k]=u[ik]) }
v5)选择
v sF(R) = { t |R(t) Ù F’ }
v其中: F F的等价公式。
v设有如下3个关系模式:
v学生(学号,姓名,年龄)
v课程(课程号,课程名,学分)
v成绩(学号,课程号,成绩)
v(1)查询年龄大于或等于20岁的学生学号与姓名
vП学号,姓名(σ年龄>=20(学生))}
vt|($(u)(学生(u)u[3]>=20t[1]=u[1] t[2]=u[2])}
v(2) 查询课程号为C2的学号与姓名
vП学号,姓名(学生) П学号(σ课程号=’C2’(课程))
v{t|($uu[2 )($v)((学生(u)∧课程(v)v[1]=C2
vu[1]=v[1]t[1]=u[1]t[2]=])}
v域关系演算Domain Relational Calculus)类似于元组关系演算,不同的是用域变量代替元组变量的每一分量,域变量的变化范围是某个值而不是一个关系。
v域关系演算表达式的一般形式为:
v { < t1, t2, … , tk > | P t1, t2, … , tk}
vti 代表域变量,P为由原子构成的公式
v原子公式有两种形式:
v1Rx1, x2, … , xn )是原子公式,表示元组( x1, x2, … , xn )是关系R中的一个元组。
v2x q y其中xy是常量或域变量, q比较运算符。
v 域关系演算公式中也可使用 Ú 等逻辑运算符,存在量词$和全称量词"
v设有如下3个关系模式:
v学生(学号,姓名,年龄)
v课程(课程号,课程名,学分)
v成绩(学号,课程号,成绩)
v(2) 查询课程号为C2的学号与姓名
vП学号,姓名(学生) П学号(σ课程号=’C2’(课程))
v{wx|($w)($t)((学生(wxz)成绩(tuv)(u=C2
vw=t))}
v{t|($u)($v)((学生(u)成绩(v)v[2]=C2
vu[1]=v[1]t[1]=u[1]t[2]=u[2])}
表示t的第1的分量小于元组u的第2个分量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值