在用户获取数据时,需要借助查询语言。查询语言通常分为两种:一种是过程性的,需要用户指定查询计划,计算机严格遵循查询计划获取数据;另一种是非过程性的,不需要用户指定查询计划即可直接返回最终结果,这种查询语言也可以理解为用户定义“做什么”而不是“如何做”。表3-1描述了两者的区别。
表3-1 查询语言对比
| 查询语言 分类 | 过程性(Procedural) | 非过程性(Non-Procedural) |
| 语言 | 3GL(Third-Generation Language) | 4GL(Fourth-Generation Language) |
| 需求: 显示fileA文件所有名称信息 | Open fileA Do while .not.eof() ?name,total skip enddo | Open fileA List name,total |
关系代数通过对关系的运算来表达查询。简单来说,关系代数的运算通过输入有限数量的关系进行运算,运算结果仍为关系,过程可以按照操作符的运算顺序进行计算,从而得到最终计算结果。关系演算与关系代数相反,是一种典型的非过程性数据库查询语言,提供了查询数据库的申明性方式,其包括元组关系演算(TRC,Tuple Relational Calculus)和域关系演算(DRC,Domain Relational calculus)两个部分。元组演算以元组为对象进行操作,取出关系的每一个元组进行运算,一个元组变量可能需要一个循环,从而元组演算运算次数不可控,有安全风险。域关系演算以域变量为对象,取出域的每一个变量确定是否满足所需条件。总体来看,三者体现了三种不同的思维,可以根据不同的用途选取适合的语言。本节将详细介绍关系代数相关概念,包括关系操作符的原理及在SQL上的应用。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




