域关系演算
来源:互联网 发布:淘宝潮男衣服店铺推荐 编辑:程序博客网 时间:2024/04/25 19:35
域关系演算
原子公式有两种形式:
⑴ R(x1…xk),R是一个k元关系,每个xi是常量或域变量;
⑵ xθy,其中x,y是常量或域变量,但至少有一个是域变量,θ是算术比较符。
公式中可使用∧、∨、┐和=>等逻辑运算符,也可用(∃x)和(∀x)形成公式,但变量x是域变量,不是元组变量。
自由域变量、约束域变量等概念和元组演算中一样。
域演算表达式是形为{t1…tk∣P(t1,…,tk)}的表达式,其中P(t1,…,tk)是关于自由域变量t1,…,tk 的公式。
例 图2.21的(a)、(b)、(c)是三个关系R、S、W,(d)、(e)、(f)分别表示下面三个域表达式的值。
R1={xyz|R(xyz)∧x<5∧y>3 }
R2={xyz|R(xyz)∨(S(xyz)∧y=4)}
R3={xyz|(∃u)(∃v)(R(zxu)∧W(yv)∧u>v)}
元组表达式到域表达式的转换
我们可以很容易地把元组表达式转换成域表达式,转换规则如下:
⑴ 对于k元的元组变量t,可引入k个域变量t1…tk,在公式中t用t1…tk替换,元组分量t[i]用ti替换。
⑵ 对于每个量词(∃u)或("u),若u是m元的元组变量,则引入m个新的域变量u1…um。在量词的辖域内,u用u1…um替换,u[i]用ui替换,(∃u)用(∃u1)…(∃um)替换,(∀u)用(∀u1)…(∀um)替换。
例 设教学数据库中有三个关系:
学生关系 S(S#,SNAME,AGE,SEX)
选课关系 SC(S#,C#,GRADE)
课程关系 C(C#,CNAME,TEACHER)
(1) 检索学习课程号为C2的学生学号与成绩。
{t|(∃u)(SC(u)∧u[2]='C2'∧t[l]=u[1]∧t[2]=u[3])}
{t1t2|(∃u1)(∃u2)(∃u3)(SC(u1u2u3)∧u2='C2'∧t1=u1∧t2=u3)}
可以化简为:
{t1t2| (SC(t1'C2' t2))}
(2) 检索学习课程号为C2的学生学号与姓名。
{t|(∃u)(∃v)(S(u)∧SC(v)∧v[2]='C2'∧u[l]=v[1]∧t[l]=u[1]∧t[2]=u[2])}
{t1t2|(∃u1)(∃u2)(∃u3)(∃u4)(∃v1)(∃v2)(∃v3)(S(u1u2u3u4)∧SC(v1v2v3)∧v2='C2'∧u1=v1∧t1=u1∧t2=u2)}
可以化简为:
{t1t2|(∃u3)(∃u4)(∃v3)(S(t1t2u3u4)∧SC(t1'C2' v3)}
- 域关系演算
- 关系演算
- 关系演算
- 元组关系演算和域关系运算
- 数据库 - 关系演算
- 再论元组关系演算与SQL
- [数据库]元组关系演算
- 对关系演算的认识
- 关系模型、关系代数、关系演算
- 关系代数与关系演算(上)
- 关系代数与关系演算(下)
- 数据库基础之关系代数和关系演算
- 数据库复习9——关系代数和关系演算
- Essential Notes on Database(II) Relational Calculus 关系演算
- pi演算
- lambda 演算
- λ演算
- Lambda 演算
- 装饰模式
- 1023. 组个最小数 (20)
- POJ 2533 Longest Ordered Subsequence (LIS)
- 程序题
- @ModelAttribute运用详解
- 域关系演算
- HP实训软件测试第一阶段测试基础知识总结
- C++输出格式
- C++ const用法
- 创建型模式之一——简单工厂模式
- Sicily 1151. 魔板
- CreateProcess启动隐藏的外部程序 .
- 用户账号绑定到微信公众号的方法分享
- 测试需要什么技术?