当前位置:首页 » 数据仓库 » 数据库中用优化的关系表达式
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库中用优化的关系表达式

发布时间: 2022-12-21 17:16:53

1. 为什么sql语言的select命令和关系代数表达式相比,dbms更容易进行优化

关系代数表达式由关系代数操作组合而成。操作中,以笛卡尔积和联接操作最费时,并生成大量的中间结果。如果直接按表达式书写的顺序执行,必将花费很多时间,并生成大量的中间结果,效率较低。在执行前,由DBMS的查询子系统先对关系代数表达式进行优化,尽可能先执行选择和投影操作,以便减少中间结果,并节省时间。

2. 数据库常用的关系运算是什么

它们的操作对象只是一个关系,关系数据库系统有如下特点。联接运算是二目运算、自然联接
自然联接是去掉重复属性的等值联接,有些查询需要几个基本运算的组合,但它们是另外一个关系的关键字。在foxpro中有单独一条命令join实现两个关系的联接运算,则称为该关系的外关键字、传统的集合运算
1,应当两两进行:
sele
1
use
定单
sele
2
use
商品
join
with
a
to
xgx
for
a->。
3、并(union)
设有两个关系r和s:一类是传统的集合运算(并,联接条件中将出现两个关系中的公共属性名;=a->,另一类是专门的关系运算(选择,字段2。
综上所述,运算符为∩。
如。由此可见,要经过若干步骤才能完成;定购量
设关系r和s分别有m和n个元组,即二维表的形式、投影、联接运算
选择和投影运算都是属于一目运算。
(3)关系模型有严格的数学理论。
(2)关系数据库系统提供一种完备的高级关系运算。
r∩s=r-(r-s)。
2。
1,是最常用的联接运算,在关系运算中起着重要作用。
2。在foxpro中短语fields<字段1。
如果需要两个以上的关系进行联接,值为真的元组将被选取;高等教育出版社'。利用关系的这三种专门运算可以方便地构造新的关系、可比的属性。
在foxpro中的短语for<条件>和while<条件>均相当于选择运算。如、交等)。
一、差(difference)
r和s的差是由属于r但不属于s的元组组成的集合。其中的条件是以逻辑表达式给出的、交(intersction)
r和s的交是由既属于r又属于s的元组组成的集合;
and
单价<=20
三。记为t=r∩s。
二,它们具有相同的结构,以便提高查询效率关系的基本运算有两类:
(1)数据库中的全部数据及其相互联系都被组织成关系:list
for
出版单位='。运算过程是通过联接条件来控制的,生成的新关系中包含满足联接条件的元组,运算符为-:
list
fields
单位、外关键字
如果一个关系中的属性或属性组并非该关系的关键字,则r与s的联接过程要访问m×n个元组,姓名
四。
如。联接是对关系的结合,支持对数据库的各种操作。这是从列的角度进行的运算,运算符为∪;货号=货号
and
库存量>。记为t=r∪s。它属于联接运算的一个特例、选择运算
从关系中找出满足给定条件的那些元组称为选择、投影运算
从关系模式中挑选若干属性组成新的关系称为投影,涉及到联接的查询应当考虑优化、联接等),相当于对关系进行垂直分解,使数据库的研究建立在比较坚实的数学基础上,…>相当于投影运算、联接
联接是将两个关系模式通过公共的属性名拼接成一个更宽的关系模式,或者具有相同语义。r和s的并是由属于r或属于s的元组组成的集合。
五。记为t=r-s。这种运算是从水平方向抽取元组,需要两个关系作为操作对象、差

3. 数据库 查询优化

针对问题一:

select s.sname
from sailor s,reserves r,boats b
where r.sid=s.sid and r.bid=b.bid and rating>5 and b.bid=100;

创建视图
create or replace view reservesview as
select r.day,s.sid,s.sname,b.bid,b.bname
from sailor s,reserves r,boats b
where r.sid=s.sid and r.bid=b.bid and rating>5 and b.bid=100;

针对问题3:
select b.bcolor
from sailor s,reserves r,boats b
where r.sid=s.sid and r.bid=b.bid and s.sname='LUBBLE';

关系表达式你可以根据SQL反推一下。

4. 关系数据库关系代数表达式怎么写

一、关系代数的9种操作:

关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。

五个基本操作:
并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π)

四个组合操作:
交(∩)、联接(等值联接)、自然联接(R S)、除法(÷)
注2:等值连接表示先做笛卡尔积(×)之后,对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列)
注2:自然连接表示两个关系中若有相同名称的属性,则自动作为关联条件,且仅列出一列

二、关系代数表达式:

由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。

三、举例说明:

设教学数据库中有3个关系:
学生关系S(SNO, SNAME,AGE,SEX)
学习关系SC(SNO,CNO,GRADE)
课程关系C(CNO,CNAME,TEACHER)

(1) 检索学习课程号为C2的学生学号与成绩
------------------------------------
SELECT SNO,GRADE
FROM SC
WHERE CNO='C2'
------------------------------------
π SNO, GRADE (σ CNO='C2' (SC))
************************************

(2) 检索学习课程号为C2的学生学号与姓名
------------------------------------
SELECT SC.SNO,S.SNAME
FROM SC,S
WHERE SC.SNO=S.SNO
AND SC.CNO='C2'
------------------------------------
π SNO,SNAME (σ CNO='C2' (S SC))
此查询涉及S和SC,先进行自然连接,然后再执行选择投影操作。
----
π SNO,SNAME (S) (π SNO (σ CNO='C2' (SC)))
自然连接的右分量为"学了C2课的学生学号的集合"。
此表达式比前一个表达式优化,执行起来要省时间、省空间。
************************************

(3) 检索选修课程名为MATHS的学生学号与姓名
------------------------------------
SELECT SC.SNO,S.SNAME
FROM SC,S,C
WHERE SC.SNO=S.SNO
AND SC.CNO=C.CNO
AND C.CNAME='MATHS'
------------------------------------
π SNO, SANME (σ CNAME='MATHS' (S SC C))
************************************

(4) 检索选修课程号为C2或C4的学生学号
------------------------------------
SELECT SNO
FROM SC
WHERE CNO='C2'
OR CNO='C4'
------------------------------------
π SNO (σ CNO='C2'∨CNO='C4' (SC))
************************************

(5) 检索至少选修课程号为C2或C4的学生学号
------------------------------------
SELECT SA.SNO
FROM SC AS SA,SC AS SB
WHERE SA.SNO=SB.SNO
AND SA.CNO='C2'
AND SB.CNO='C4'
------------------------------------
π 1 (σ 1=4∧2='C2'∧5='C4' (SC×SC))
************************************

(6) 检索不学C2课的学生姓名与年龄
------------------------------------
SELECT SNAME,AGE
FROM S
MINUS
SELECT S.SNAME,S.AGE
FROM SC,S
WHERE SC.SNO=S.SNO
AND SC.CNO='C2'
(Oracle)
------------------------------------
π SNAME, AGE (S)-π SNAME, AGE (σ CNO='C2' (S SC))
************************************

(7) 检索学习全部课程的学生姓名
------------------------------------

5. 数据库系统中的习题,关系代数的表达,6个问题

[例]设教学数据库中有3个关系:
学生关系S(SNO,SNAME,AGE,SEX)
学习关系SC(SNO,CNO,GRADE)
课程关系C(CNO,CNAME,TEACHER)

下面用关系代数表达式表达每个查询语句。

(1) 检索学习课程号为C2的学生学号与成绩。
πSNO,GRADE(σ CNO='C2'(SC))

(2) 检索学习课程号为C2的学生学号与姓名
πSNO,SNAME(σ CNO='C2'(SSC))
由于这个查询涉及到两个关系S和SC,因此先对这两个关系进行自然连接,同一位学生的有关的信息,然后再执行选择投影操作。

此查询亦可等价地写成:
πSNO,SNAME(S)(πSNO(σ CNO='C2'(SC)))
这个表达式中自然连接的右分量为"学了C2课的学生学号的集合"。这个表达式比前一个表达式优化,执行起来要省时间,省空间。

(3)检索选修课程名为MATHS的学生学号与姓名。
πSNO,SANME(σ CNAME='MATHS'(SSCC))

(4)检索选修课程号为C2或C4的学生学号。
πSNO(σ CNO='C2'∨CNO='C4'(SC))

(5) 检索至少选修课程号为C2或C4的学生学号。
π1(σ1=4∧2='C2'∧5='C4'(SC×SC))
这里(SC×SC)表示关系SC自身相乘的乘积操作,其中数字1,2,4,5都为它的结果关系中的属性序号。

6. 数据库的关系代数表达式

数据库的关系代数表达式是由关系代数运算经有限次复合而成的式子。

在关系代数运算中,把由并(∪)、差(-)、笛卡尔积(×)、投影(π)、选择(σ)五个基本操作经过有限次复合的式子称为关系代数表达式。关系代数表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的各种数据查询和更新操作。

关系代数表达式用到的运算符包括集合运算符、专门的关系运算符、算术比较符和逻辑运算符。和交(∩)、联接(等值联接)、自然联接(RXS)、除法(÷) 四个组合操作。

(6)数据库中用优化的关系表达式扩展阅读:

关系代数表达式的运算过程是将关系的属性分为像集属性和结果属性两部分;与关系相同的属性属于像集属性;不相同的属性属于结果属性。在关系中,对像集属性投影,得到目标数据集。将被关系分组。

分组原则是结果属性值一样的元组分为一组。逐一考察每个组,如果它的像集属性值中包括目标数据集,则对应的结果属性应属于该运算结果集。

7. 标题在集中式数据库的查询优化中,为什么说“I/O代价是最主要的”。

因为在查询优化中需要考虑的主要因素包括I/O代价、CPU代价和通信代价。
查询优化就是选择一个高效执行的查询处理策略。代数优化是指关系代数表达式的优化,即按照一定的规则,改变代数表达式中操作的次序和组合,使查询执行效率更高。物理优化则是指存取路径和底层操作算法的选择。
查询优化的总目标是,选择有效地策略,求得给定关系表达式的值,使得查询代价最小。因此最为重要。

8. 数据库中 什么是表达式 VFP提供了哪几种类型的表达式

在Visual FoxPro系统中,表达式是由常量、变量、函数及其他数据容器单独或与运算符组成的有意义的运算式。表达式分为5种类型:
1. 算术表达式
算术表达式又称数值表达式,其运算对象和运算结果均为数值型数据。
2. 字符表达式
字符表达式是由字符运算符将字符型数据对象连接起来进行运算的式子。其运算对象是字符型数据对象,运算结果是字符常量或逻辑常量。
3. 日期表达式
由日期运算符将一个日期型或日期时间型数据与一个数值型数据连接而成的运算式称为日期表达式。日期运算符分为“+”和“-”两种,其作用分别是在日期数据上增加或减少一个天数,在日期时间数据上增加或减少一个秒数。若两个日期型数据相减,结果为两日期间的天数差值,两个日期时间型数据相减,结果为二者之间相差的秒数。
4. 关系表达式
由关系运算符连接两个同类数据对象进行关系比较的运算式称为关系表达式。关系表达式的值为逻辑值,关系表达式成立则其值为“真”,否则为“假”。
5. 逻辑表达式
由逻辑运算符将逻辑型数据对象连接而成的式子称为逻辑表达式。关系表达式的运算对象与运算结果均为逻辑型数据。