当前位置:首页 » 编程语言 » 关系代数与sql语言关系
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

关系代数与sql语言关系

发布时间: 2023-05-31 12:46:49

sql与关系代数、关系演算之间的对应关系

SQL是关系数据库的标准语言,对关系模型的发展和商用DBMS的研制起着重要的作用。SQL语言是介乎于关系代数和元组演算之间的一种语言。

⑵ SQL语言及关系代数解答,非常感谢!

由于楼上的5——8写的很好了,所以我就懒省事照搬过来了

1——4题答案在图片上;

5.createviewAAAas

selectmaker,model,speedfromproctt1,PCt2wheret1.model=t2.model

unionallselectmaker,model,speedfromproctt1,Laptopt2wheret1.model=t2.model

6.withtmpas(selectmodel,,speedfromLaptop)

selectt2.makerfromtmpt1,proctt2

wheret1.speed=(selectmax(speed)fromtmp)

andt1.model=t2.model

7.updateProctsetmaker='A'wheremaker='B'

8.selectavg(price)from(

selectmodel,pricefromPCwherespeed>=150

unionallselectmodel,pricefromlaptopwherespeed>=150)

⑶ 数据库系统原理之关系代数

关系代数基于集合(关系),定义了一系列对集合(关系)对操作。如并,差,笛卡尔积,选择,更名,投影等基本操作,以及基于基本操作推导出来的扩展操作。
关系代数作用于一个或多个关系,然后产生一个新的关系。可以将关系代数理解为函数,接受一个关系输入,返回一个新对关系。举个例子,我们将并操作命名为 Union ,那么并操作可以表示为:

对于其他对操作猜型岩如差操作,选择操作等,都有相应对数学符号进行表示,但在中输入这些符号比较困难,再加上我学习关系代数是了解基本的概念知识,这里就不使用数学符号表示了,而是以文字代替。
关系代数定义了基于集合(关系)的操作,其是 SQL 的重要基础(另一个重要基础是关系演算),了解了关系代数的概念以及各个操作要达到的目的之后,对 SQL 中对一些概念也会更加清晰,如连接操作。
本文首先介绍关系代数中的基础操作,再介绍扩展操作。

关系代数的基础操作有:并,差,笛卡尔积,选择,更名,投影等。有些操作如并,差等要求参与运算的关系需要具备并相容性。所谓并相容性,就是两个关系的属性数目(度)相同,并且每个度所在的域相同。
如 R(学生,学号,地址) 和 S(课程,课程号) 两个关系由于度和属性所在的域不相同,因此不具备并相容性,也就无法进行并,差等操作。
相应的, R2(学生,学号,地址) 和 S(教师,教师号,地址) 由于度和属性所在的域相同,因此具备并相容性。

并操作就是将两个关系租盯合并为一个关系,在合并时去掉重复的元组。为什么要去掉重复项呢?这是集合的特质,集合要求不能有重复项。
R 并 S 和 S 并 R 得到的结果是一样的,即并操作满足交换律。
举个例子,有两个关系 R(学生) 和 S(教师):

这两个关系进行并操作的结果为:

差操作用来选择出现在一个关系但并未出在另一个关系中的元组。
还是以上面两个关系 R(学生) 和 S(教师) 为例,R 差 S 的结果为:

S 差 R 的结果为:

其中元组 T(Jerry,2,澳大利亚) 在两个关系中都出现,是两个关系的交集。因此差操作就是从一个关系中去除和另一个关系的交集所得到的集合。
差操作不满足交换律。

笛卡尔积用来将两个关系连接起来,笛卡尔积的结果将两个关系中所有可能的元组组合起来。假设关系 R 的元组数目为 M,度数为 I,关系 S 的元组数目为 N,度数为 J,那么 R 和 S 进行笛卡尔积运算得到的新关系的元组数目为 M * N,度数为 I + J。
举个例子,有两个关系 R(学生) 和 S(课程) :

那么对 R 和 S 进行笛卡尔积的结果为:

笛卡尔积用来将两个关系连接在一起,获取所有可能的结果,其是连接操作的基础。

选择操作就是从一个关系中,选择出满足条件的元组。
如从上面的学生表中,选择出学号大于等于 2 的学生,结果为:

选择条件由与或非逻辑表达式构成。

投影操作是从给定的关系中,选择出某些属性属性构成新的关系。如从学生表中投影出一个新的关系 R(姓名,地址) :

关系代数常用的扩展操作有交操作,Theta 连接操作,自然连接操作,外连接操作,除操作等。扩展操作可以由基础操作推导而来。

交操作用来从两个关系中,选择出同时存在于两个关系中的元组。如上面 R(学生) 和 S(教师) 进行交操作的结果为:

Theta 连接操作会从两个关系的笛卡尔积中,选择出某个条件的元组,并去掉重复项。例如在上面笛卡尔积例子,选择出课程号不为 c1 并且学号不为 s1 的元组:

连接操作一般和投影操作配合使用,比如从上面的结果集中投影出 R(姓名,课程) :

Theta 连接操作中有个特殊的操作,叫做等值连接,即选择条件为判断是否相等。

自然连接可以认为是一种特殊的等值连接,其要求两个关系具有相同的属性,并且判断条件为两个关系中的某两个相同属性的值相等。
自然连接是最常用的连接操作。
假如有两个关系 R(学生 ) 和 S(班级) :

对这两个关系进行自然连接的结果为:

外连接就是在自然连接的结果集中,将空值元组和穗御没有匹配到的元素放入到结果集中。
假如有两个关系 R(学生 ) 和 S(班级) :

首先对这两个关系进行自然连接:

我们在自然连接的结果集中,机上空值元组和没有匹配到的元组:

以上就是外连接的结果,也叫做全外连接:保证两端的元素不丢失。对应的,还有左外连接和右外连接,左外连接会保证左侧的元素不丢失,右外连接会保证右侧的元素不丢失。
因此上面两个进行左外连接的结果为:

进行右外连接的结果为:

除操作是对两个关系进行“除法”操作,要求“除数”关系是“被除数”关系的真子集。除操作会从“被除数”关系中,选择出一个新的关系,设为 N,N 也是 “被除数”关系的真子集。N 需要满足一个条件:
N 和“除数”关系的笛卡尔积是“被除数”关系的最大真子集。
好绕啊···
我们还是直接看例子吧。
假设有两个关系: R(A1,A2,A3) 和 S(A3) :

对 R 和 S 进行除操作,得到的结果为:

如果 S 关系为:

那么对 R 和 S 进行除操作的结果为:

从上面的例子来看,除操作适用于“满足全部····”的查询。举个例子,从学生表中查询选择了所有课程或者选择了软件测试和软件工程这两门课程的学生。
假设存在一个关系 R(学生) 和 S(课程) :

现在我们要查询选择了软件测试这门课的所有学生,则被除数关系为 R(学生) ,除数关系为:

对两个关系进行除操作,得到的结果为:

如果我们只需要获取学生的姓名,不需要学号这一列,那么可以再对结果集进行投影操作:

本文介绍了关系代数以及关系代数中常用的基础操作和扩展操作,基础操作包括并,差,笛卡尔积,选择,投影,更名等,某些基础要做要求两个参与运算的关系具有并相容性。扩展操作可以由基础操作推导而来,可以完成更复杂的操作。
关系代数是 SQL 语言的基础,SQL 语言是在关系代数上的一层封装,目的是方便程序员使用。
关系代数的操作接受一个或多个关系作为输入,再输出一个新的关系,不同的关系操作可以进行相互的组合。例如可以先进行选择操作再进行投影操作,先进行自然连接操作再进行选择操作等等。根据不同的需求需要灵活的组合这些操作。

完。

⑷ 简述SQL与关系代数的联系和区别

  1. 联系:关系代数是sql的理论基础。

  2. 区别:sql是结构化查询语言,是数据库具体的技术标准和规范。关系代数是数学理论。

⑸ 述关系代数运算中的每一种运算与SQL 查询语句有什么关系

关系运算的投影,就是SQL查询一列(竖),比如Select
sno
from
stu。而关系运算的选择,就是查询几行(横),比如,select
*
from
stu。关系的联接运算,就是SQL的连接查询(内,外,左,右,自然,等值等等),比如
Select
*
(或者某列)
from
stu,sc
where
stu.sno=sc.sno
关系的除运算应用较少也不好理解,这里不考虑。

⑹ 关系代数与SQL语句的关系举例说明

SQL语句用法及关系代数运算是数据库原理课中的重点和难点内容,关系代数是一种抽象数学语言,是关系数据操纵语言的一种传统表达方式.SQL是业界公认的一种结构化的查询语言,虽然各类数据库管理系统中SQL语言有不同语法结构,但差别不大,且已形成了关系数据库的国际标准语言.

⑺ sql语言属于具有关系代数和关系演算双重特点的语言

是的,SQL(Structured Query Language)语言具有关系代数和关系演算双重特点。

SQL实例

因此,SQL语言既继承了关系代数的操作符和集合论的概念,也借鉴了关系演算的形式化查询思想,使得它具有关系代数和关系演算双重特点衫拆兄。这使得SQL语言成为关系御运型数据库系统中最常用和最重要的查询和操作或袭语言之一。

⑻ 如何把sql语言转换成关系代数

sql和关系代数实现查询的方法是一样的,只是表现形式不一样。关系代数用选择、投影、连接、除来实现查询,SQL通过select--from--where来实现。加上where条件后就相当于关系代数中的选择,select后面的属性列相当于投影,from后面如果有几个数据表,则在where子句中需要加上各个数据表的连接属性是相同的这个查询条件,也就相当于连接了。

⑼ 关系代数与SQL语句:

我用一个例子进行讲述,希望您可以理解其中的含义:例题:有以下三个关系:
关系XSJB(学生信息) 关系KC(课程) 关系SC(选课)
XH XM NI XB KCH KCM XH KCH G
1001 张明 20 女 001 离散数学 1001 001 88
1002 吴海 21 男 002 数据结构 1001 002 80
1003 孙军 23 男 003 数据库原理 1001 003 80
2001 王一 25 女 004 计算机网络 2002 005 85
2002 黄三 20 男 005 英语 2003 001 70
2003 赵平 19 男 2003 003 85
2003 002 90
005 85
上面三张表中XH、XM、NI、XB、KCH、KCM、G分别表示学生的学号、姓名、年龄、性别、课程号、课程名、成绩
检索课程号为“001”的课程名。(用关系代数和SQL语言表示)
关系代数:
πkcm(σkch='001'(XSJB))

SQL语言:
select KCM
from XSJB
where KCH='001'

⑽ sql语言是一种介于关系代数和关系演算之间的什么

SQL语言是一种介于关系代数与关系演算之间的结构化查询语言。