元组关系演算的语义研究.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
元组关系演算的语义研究

元组关系演算的语义研究 王小兵 西安电子科技大学计算机学院,陕西西安 (710071) E-mail :xbwang@ 摘 要:针对一些文献存在的问题,规范了特性谓词在元组关系演算中的表达形式,研究了 完整性约束及空值对元组关系演算语义的影响,并通过实例加以说明。 关键词: 元组关系演算,特性谓词,完整性约束,空值 中图分类号: TP311 文献标识码: A 1. 引言 20 世纪60 年代诞生的数据库技术,经过近半个世纪的发展,形成了坚实的理论基础、 成熟的商业产品和广泛的应用领域。E.F Codd 提出的关系数据模型为当今主流的数据库管 理系统提供了坚实的数学基础。关系数据模型有三种等价的操作语言:关系代数、SQL、 关系演算,它们的非过程化程度依次递增,主要应用领域也不同。对于用户提出的查询要 求,需要由专业人员书写 SQL 语句并执行得到结果。有一些复杂的查询,不易直接写出 SQL 语句,此时可求助于元组关系演算,大致过程为:先写出查询的元组关系演算表达式; 再根据等价转化规则得到不含全称量词∀的元组关系演算表达式;最后将元组关系演算表 达式转化为 SQL 语句。不过,元组关系演算的抽象性和非过程性,产生了一些问题[1] [2] [3] 。对于这些问题,笔者进行了深入细致的分析,希望有助于人们对元组关系演算的学习 和使用。 2. 元组关系演算 元组关系演算是关系演算的一种,是以数理逻辑中的谓词演算为基础的。文献[2] 分 析元组关系演算的运行机制,介绍了一种易于正确理解和设计元组关系演算表达式的方法, 并通过实例揭示了它与SQL 之间的密切联系。经过仔细分析,笔者发现有一些问题值得商 榷。 下面以[2] 中“学生选修课程”这一数据库模式为例。该数据库模式包含三个基本表: S 表示学生基本情况,结构为S(s# , sn , age, sex),各属性分别表示学号、学生姓名、年龄、 性别;C 表示课程基本情况,结构为C(c#, cn, tn),各属性分别表示课程编号、课程名称、 任课教师姓名;SC 表示学生选课情况,结构为SC(s#, c#, g),各属性分别表示学号、课程 编号和成绩。 [2] 提出查询,要求检索Wang 同学不学的课程的编号。在分析该查询的语义后,给 出了三种不同的方案,分别用元组关系演算表达式(1)、(2)、(3)来表示。由于SQL 只有与 存在量词∃对应的EXISTS 谓词,因而使用谓词逻辑中全称量词∀和存在量词∃之间的等 价转化公式,分别得到不包含∀的元组演算表达式(4)、(5)、(6),最后以此为依据写出三种 不同形式的SQL 语句。 {t[c#]|C(t)∧w(SC(w)∧t[c#]≠w[c#] ∨v(S(v)∧w[s#]=v[s#] ∧v[sn]≠Wang))} (1) {t[c#]|C(t)∧w(SC(w)∧t[c#]≠w[c#] ∨v(S(v)∧(v[sn]≠Wang∨w[s#]≠v[s#])))} (2) {t[c#]|C(t)∧v(S(v)∧(v[sn]≠Wang∨w(SC(w)∧(w[s#]≠v[s#] ∨t[c#]≠w[c#]))))} (3) {t[c#]|C(t)∧¬w(SC(w)∧t[c#]=w[c#] ∧¬v(S(v)∧w[s#]=v[s#] ∧v[sn]≠Wang))} (4) -1- {t[c#]|C(t)∧¬w(SC(w)∧t[c#]=w[c#] ∧v(S(v)∧(v[sn]=Wang ∧[s#]=v[s#])))} (5) {t[c#]|C(t)∧¬v(S(v)∧(v[sn]=Wang ∧w(SC(w)∧(w[s#]=v[s#] ∧t[c#]=w[c#]))))} (6) 通过仔细分析,发现式(1)

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档