数据库技术-国防科学技术大学2#¥-第二章 元组关系演算(3)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

元组演算表达式的值
• 上述元组演算表达式的值是所有使 (x/t)为真的框架为 的元组t 为真的框架为R ϕ(x/t)为真的框架为R的元组t的集 合,即: F(h)={tt∈d(R)且ϕ(x/t)为真} F(h)={t d(R)且 (x/t)为真} 为真 •ϕ(x/t)意指用具体元组t取代公式中 意指用具体元组t ϕ(x/t)意指用具体元组 元组变量x后得到的替换公式。 元组变量x后得到的替换公式。
ϕ1: s(x) x[TEACHER]=‘LIU LIU’ ϕ2:x[TEACHER]= LIU ϕ3:x1[GRADE]≤x2[GRADE] ϕ4:y[GRADE] <60 x[SEX]=‘M ϕ5:x[AGE]≤21 ∧ x[SEX]= M’ ϕ6:∀x[S] (x[AGE]≥18) x[S](x[S-NO]=‘S1 )∧x[C-NO]=‘C1 S1’)∧x[C C1’ ϕ7:∃x[S](x[S-NO]= S1 )∧x[C-NO]= C1 ϕ8:s(x) ∨ x[GRADE]≥60
(2) 规则
1)任何原子公式是公式; 1)任何原子公式是公式; 任何原子公式是公式 2)若 为公式, ¬ϕ也是公式; 2)若ϕ为公式,则¬ϕ也是公式; 也是公式 3)若 3)若ϕ1、ϕ2为公式,则ϕ1∧ϕ2、ϕ1∨ϕ2也都是公 为公式, ∧ϕ2 1∨ϕ 式; 4)若x是元组变量,ϕ (x)是涉及x的公式,则 是涉及x 4)若 是元组变量, (x)是涉及 的公式,
ϕ1: s(x) x[TEACHER]=‘LIU LIU’ ϕ2:x[TEACHER]= LIU ϕ3:x1[GRADE]≤x2[GRADE] ϕ4:y[GRADE] <60 x[SEX]=‘M ϕ5:x[AGE]≤21 ∧ x[SEX]= M’ ϕ6:∀x[S] (x[AGE]≥18) ϕ7:s(x) ∨ x[GRADE]≥60
为确定公式求值的运算次序,将运算 按优先级从高到低排列如下:括号;算 术比较运算符;∀、∃、¬、∧、∨。
元组演算公式举例
S(S-NO,SNAME,AGE,SEX) NO,SNAME,AGE,SEX) SC( NO,C-NO,GRADE) SC(S-NO,C-NO,GRADE) C(C-NO,CNAME,TEACHER) NCHER]=‘LIU LIU’ ϕ2:x[TEACHER]= LIU ϕ3:X1[GRADE]≤x2[GRADE] ϕ4:y[GRADE] <60 x[SEX]=‘M ϕ5:x[AGE]≤21 ∧ x[SEX]= M’ ϕ6:∀x[S] (x[AGE]≥18) ϕ7:s(x) ∨ x[GRADE]≥60
f f ff f ff bb ff
(1) 原子公式
2、合法公式
1)若 1)若ϕ为r(x),这时x在ϕ中为自由的,定义T(x, r(x),这时x 中为自由的,定义T(x, )=R, 是关系r的框架。 ϕ)=M(x, ϕ)=R,R是关系r的框架。 2)若 2)若ϕ为x[A]θC或Cθx[A],这时x在ϕ中是自 x[A]θ [A],这时x 由的, 不确定。 由的,定义 M(x, ϕ)=A, T(x, ϕ)不确定。 3)若 3)若ϕ为x[A]θy[B],这时x、y在ϕ中均为自由 x[A]θy[B],这时x 定义M(x, 的,定义M(x, ϕ)=A, M(y, ϕ)=B, T(x, ϕ)和 不确定。 T(y, ϕ)不确定。 以上原子公式在服从比较运算和域的要求 时均为合法的。 时均为合法的。
5、合法公式的解释规则
• 设ϕ是没有自由出现元组变量的合法公式, 是没有自由出现元组变量的合法公式, 但可能包含true false作为原子 true和 作为原子。 但可能包含true和false作为原子。那么 公式ϕ的解释I(ϕ)递归地定义为: 公式ϕ的解释I(ϕ 递归地定义为: I( true, I(ϕ 为真; false, 1) 若ϕ为true,则I(ϕ)为真;若ϕ为false, I(ϕ 为假。 则I(ϕ)为假。 中必无自由变量。如果I(g) 2) 若ϕ为¬g,g中必无自由变量。如果I(g) 为真, I(ϕ 为假;否则I( 为真。 I(ϕ 为真,则I(ϕ)为假;否则I(ϕ)为真。
∃ x [ R ]ϕ 和 ∀ x [ R ]ϕ
也都是公式; 也都是公式;
5)若 是公式, 5)若ϕ是公式,则(ϕ)也是公式; 也是公式; 6)所有公式均从原子公式出发 所有公式均从原子公式出发, 6)所有公式均从原子公式出发,按上述规则经 有限次复合运算求得,别无其他形式的公式。 有限次复合运算求得,别无其他形式的公式。
f∧g或为f∨g, 或为f∨g 2) 若ϕ为f∧g或为f∨g,ϕ中所有变量出现是自由 抑或约束的一如它们在g 中的情况。为使ϕ 抑或约束的一如它们在g和h中的情况。为使ϕ为 合法公式,需满足下面三种情形: 合法公式,需满足下面三种情形: f)、 g)已有定义 已有定义, ①若T(x, f)、T(x, g)已有定义,则必有 g); T(x, f)=T(x, g); 若只有T(x, f)(或 g))已定义 已定义, ②若只有T(x, f)(或T(x, g))已定义,则必有 f)⊇ (或 g)⊇ f)); T(x, f)⊇M(x, g) (或T(x, g)⊇M(x, f)); 上述两种情形下都定义T(x, (或 上述两种情形下都定义T(x, ϕ)=T(x, f) (或T(x, g)): ϕ)=T(x, g)): f)和 g)都不确定 都不确定, ③若T(x, f)和T(x, g)都不确定,则T(x, ϕ)亦不确 定。 上述三种情形均定义M(x, g)。 上述三种情形均定义M(x, ϕ)=M(x, f)∪M(x, g)。
1、元组演算公式的定义
原子公式 (基础) 基础) 规则 复合公式
(1) 基础(三种原子公式):
r(x)。 中的关系, 是元组变量, 1) r(x)。r是h中的关系,x是元组变量, r(x)表示x∈r; 表示x∈r r(x)表示x∈r; x[A]θ x[B]。 为元组变量, 2) x[A]θC 或 Cθx[B]。x为元组变量,A、 中的属性, B为U中的属性,C为A或B对应的域中的 常量,θ为比较运算符,x[A]θC表示x的A 常量, 为比较运算符,x[A]θ 表示x 分量与C之间有θ关系; x[B]类似 类似。 分量与C之间有θ关系;Cθx[B]类似。 x[A]θy[B]。 为元组变量, 3) x[A]θy[B]。x、y为元组变量,A、B 为 中属性, 为比较运算符。x[A]θy[B]表 U中属性,θ为比较运算符。x[A]θy[B]表 分量与y 分量之间有θ关系。 示x的A分量与y的B分量之间有θ关系。
问题及解决
• 引入概念: 引入概念: –元组变量在公式中的自由出现和约 元组变量在公式中的自由出现和约 束出现 –公式ϕ中自由出现变量x的型T(x, ϕ) 公式ϕ 公式 中自由出现变量x的型T(x, 与述M(x, 与述M(x, ϕ) • 型T(x, ϕ)指元组变量x的框架 指元组变量x • 述M(x, ϕ)指元组变量x在ϕ中涉及到的 指元组变量x 属性; 属性;
(2) 复合公式
f均为合法公式 均为合法公式。 设g, f均为合法公式。 1)若 1)若ϕ为¬g,则ϕ为合法公式。ϕ中 为合法公式。 所有变量出现是自由抑或约束的 一如它们在g中的情况。 一如它们在g中的情况。对ϕ中所 有自由出现的变量,定义T(x, 有自由出现的变量,定义T(x, g)。 ϕ)=T(x, g), M(x, ϕ)=M(x, g)。
例:
设 ϕ=s(x)∧x[S-NO]=y[S-NO]∧y[GRADE]≥60 =s(x)∧x[S-NO]=y[S={SSEX}。 T(x, ϕ) ={S-NO, NAME, AGE, SEX}。 u=<S3, CHEN, 21, M> ϕ(x/u)=true∧s3=y[S-NO]∧y[GRADE]≥60 (x/u)=true∧s3=y[S-
T ϕ1: s(x) M ϕ2:x[TEACHER]=‘LIU x[TEACHER]= LIU’ LIU MM ϕ3:X1[GRADE]≤x2[GRADE] M ϕ4:y[GRADE] <60 x[SEX]=‘M ϕ5:x[AGE]≤21 ∧ x[SEX]= M’ M 合法 ϕ6:∀x[S] (x[AGE]≥18) x[S](x[S-NO]=‘S1 )∧x[C-NO]=‘C1 S1’)∧x[C C1’) ϕ7:∃x[S](x[S-NO]= S1 )∧x[C-NO]= C1 ) ? ? ϕ8:s(x) ∨ x[GRADE]≥60
元组关系演算
• 元组关系演算
r÷s={u |对每一元组v∈s,都存在一元 |对每一元组v∈s,都存在一元 对每一元组v∈s, 组t∈r,使得t[Q]=u 且t[S]=v} t∈r,使得t[Q]=u 使得 r′(R′)={u |∀v(v∈s→∃t(t∈r∧t[Q]=u (R′ |∀v(v∈s→∃t(t∈r∧ v∈s→∃t(t∈r ∧t[S]=v))}
3)若 3)若ϕ为 ∃x[ R ]g 或 ∀x[ R ]g 仅当同时满足下 。 列两个条件时,公式ϕ才是合法的: 列两个条件时,公式ϕ才是合法的: 中必须自由出现且R g); ①x在g中必须自由出现且R⊇M(x, g); g)有定义 则必须有R=T(x, g)。 有定义, ②若T(x, g)有定义,则必须有R=T(x, g)。 中的所有出现都是约束的,因此T(x, x 在ϕ中的所有出现都是约束的,因此T(x, ϕ)和 无定义。 中不同于x的任何元组变量y M(x, ϕ)无定义。ϕ中不同于x的任何元组变量y的 任何出现是自由的抑或约束的一如它们在g中的 任何出现是自由的抑或约束的一如它们在g 情况,并且T(y, M(y,ϕ g)。 情况,并且T(y, ϕ)=T(y, g), M(y,ϕ)=M(y, g)。 (g), 为合法的,并且ϕ 4) 若ϕ为(g),ϕ为合法的,并且ϕ中元组变量的出 现是自由抑或约束,其型和述一如它们在g 现是自由抑或约束,其型和述一如它们在g中的 情况。 情况。
4、元组代入规则
设公式ϕ(x)是合法的,元组变量x的框架为R 设公式ϕ(x)是合法的,元组变量x的框架为R。 是合法的 已定义,要求R=T(x, 若T(x, ϕ)已定义,要求R=T(x, ϕ),否则应有 R⊇M(x, ϕ)。 将框架为R的具体元组t取代公式ϕ 将框架为R的具体元组t取代公式ϕ中的元组变 后得到的替换公式ϕ(x/t)为按如下规则修 量x后得到的替换公式ϕ(x/t)为按如下规则修 中的原子公式而来: 改ϕ 中的原子公式而来: r(x)中是自由的 如果t∈r 则用true 中是自由的, t∈r, 1) 若x在r(x)中是自由的,如果t∈r,则用true 取代r(x) r(x), false取代r(x)。 取代r(x) 取代r(x),否则用 false取代r(x)。
x[A]θ x[A])是自由的, 2) 若x在 x[A]θC(或Cθx[A])是自由的,如 C1θ C1), ),则用 果 t[A]=C1 且 C1θC(或CθC1),则用 x[A]θ (Cθx[A]),否则用false true 取代 x[A]θC (Cθx[A]),否则用false 取代之。 取代之。 3) 若x在 x[A]θy[B] 或 y[B]θx[A]中是自由的, x[A]θ y[B]θx[A]中是自由的 中是自由的, t[A]=C, 取代x[A] x[A]; 如果 x≠y, t[A]=C,则用 C取代x[A];如 x=y, x[A]θy[B]实际为 果x=y,那么原子公式 x[A]θy[B]实际为 x[A]θx[B],此时若 t[A]=C1, t[B]=C2 且 x[A]θx[B], C1θC2, true取代x[A]θy[B], 取代x[A] C1θC2,则用 true取代x[A]θy[B],否则 false取代之 取代之。 用false取代之。
元组关系演算
• F={x[R]ϕ(x)} F={x[R]ϕ ϕ(x)} • 元组演算的结果关系x[R]是指框架R 元组演算的结果关系x[R]是指框架R x[R]是指框架 下所有使公式ϕ(x)为真的元组构成 下所有使公式ϕ(x)为真的元组构成 的集合 • ϕ(x)┉公式的构成 (x)┉公式的构成 • ϕ(x/u) ┉代入规则 ┉代入规则 • ϕ(x/u)为真┉解释规则 (x/u)为真 为真┉
相关文档
最新文档