免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2010年上半年 数据库系统工程师 上午试卷 综合知识
  第21题      
  知识点:   中间代码   关系运算
  关键词:   表达式   短路求值   后缀式        章/节:   计算机软件基础知识       

 
逻辑表达式“ a∧b∨ c∧(b ∨ x > 0 )”的后缀式为(21)。(其中∧、∨分别表示逻辑与、逻辑或,>表示关系运算大于,对逻辑表达式进行短路求值)
 
 
  A.  abcbx0>∨∧∧∨
 
  B.  ab∧c∨b∧x0>∨
 
  C.  ab∧cb∧x>0∨∨
 
  D.  ab∧cbx0>∨∧∨
 
 
 

 
  第7题    2018年上半年  
   32%
算术表达式采用后缀式表示时不需要使用括号,使用(5)就可以方便地进行求值。a-b(c+d)(其中,-、+、*表示二元算术运算减、..
  第22题    2016年上半年  
   58%
将高级语言源程序先转化为一种中间代码是现代编译器的常见处理方式。常用的中间代码有后缀式、(22)、树等。
  第20题    2011年上半年  
   35%
算术表达式采用逆波兰式表示时不用括号,可以利用(20)进行求值。与逆波兰式ab-cd+*对应的中缀表达式是(21)。
   知识点讲解    
   · 中间代码    · 关系运算
 
       中间代码
        从原理上讲,对源程序进行语义分析之后就可以直接生成目标代码,但由于源程序与目标代码的逻辑结构往往差别很大,特别是考虑到具体机器指令系统的特点,要使翻译一次到位很困难,而且用语法制导方式机械生成的目标代码往往是烦琐和低效的,因此有必要设计一种中间代码,将源程序首先翻译成中间代码表示形式,以利于进行与机器无关的优化处理。由于中间代码实际上也起着编译器前端和后端的分水岭作用,所以使用中间代码也有助于提高编译程序的可移植性。常用的中间代码有后缀式、四元式和树等形式。
        (1)后缀式(逆波兰式)。逆波兰式是波兰逻辑学家卢卡西维奇(Lukasiewicz)发明的一种表示表达式的方法。这种表示方式把运算符写在运算对象的后面,例如,把a+b写成ab+,所以也称为后缀式。这种表示法的优点是根据运算对象和算符的出现次序进行计算,不需要使用括号,也便于用栈实现求值。对于表达式x:=(a+b)*(c+d),其后缀式为xab+cd+*:=。
        (2)树形表示。例如,表达式x:=(a+b)*(c+d)的树形表示如下图所示。
        
        表达式的树形表示
        (3)四元式表示。四元式是一种普遍采用的中间代码形式,其组成成分为运算符OP、第一运算对象ARG1、第二运算对象ARG2和运算结果RESULT。其中,运算对象和运算结果有时指用户自定义的变量,有时指编译程序引入的临时变量,RESULT总是一个新引进的临时变量,用来存放运算结果。例如,表达式x:=(a+b)*(c+d)的四元式表示为:
        ①(+,a,b,t1)②(+,c,d,t2)③(*,t1,t2,t3)④(:=,t3,_,x)
 
       关系运算
        在3.4.1节的集合运算基础上,关系数据库还有一些专门的运算,主要有投影、选择、连接、除法和外连接。它们是关系代数最基本的操作,也是一个完备的操作集。在关系代数中,由五种基本代数操作经过有限次复合的式子称为关系代数运算表达式。表达式的运算结果仍是一个关系。我们可以用关系代数表达式表示各种数据查询和更新处理操作。
        (1)投影。投影操作从关系R中选择出若干属性列组成新的关系,该操作对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。记作:
        πAR)≡{t[A]|tR}
        其中AR的属性列。
        (2)选择。选择操作在关系R中选择满足给定条件的所有元组,记作:
        σFR)≡{t|tRFt)=true}
        其中F表示选择条件,是一个逻辑表达式(逻辑运算符+算术表达式)。选择运算是从行的角度进行的运算。
        (3)θ连接。θ连接从两个关系的笛卡儿积中选取属性间满足一定条件的元组记作:
        
        其中AB分别为RS上度数相等且可比的属性组。θ为“=”的连接,称作等值连接,记作:
        
        如果两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,则称为自然连接,记作:
        
        (4)除法。设两个关系RS的元数分别为rs(设r>s>0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系:其中每个元组tS中每个元组u组成新元组<tu>必在关系R中。其具体计算公式如下:
        R÷S=π1,2,…,r-sR)-π1,2,…,r-s((π1,2,…,r-sR)×S)-R
        (5)外联接。两个关系RS进行自然连接时,选择两个关系RS公共属性上相等的元组,去掉重复的属性列构成新关系。这样,关系R中的某些元组有可能在关系S中不存在公共属性值上相等的元组,造成关系R中这些元组的值在运算时舍弃了;同样关系S中的某些元组也可能舍弃。为此,扩充了关系运算左外连接、右外连接和完全外连接。
        .左外连接:RS进行自然连接时,只把R中舍弃的元组放到新关系中。
        .右外连接:RS进行自然连接时,只把S中舍弃的元组放到新关系中。
        .完全外连接:RS进行自然连接时,只把RS中舍弃的元组都放到新关系中。
        (6)关系运算实例。设两个关系模式RS如下表一所示,则π1,2R)的结果如下表二所示,σ1>2(R)的结果如下表三所示,的结果如下表四所示,RS的左外连接如下表五所示,RS的右外连接如下表六所示,RS的完全外连接如下表七所示。
        
        关系RS
        
        对关系R求投影操作
        
        对关系R求选择操作
        
        对关系RS的自然连接
        
        RS的左外连接
        
        RS的右外连接
        
        RS的完全外连接
   题号导航      2010年上半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第21题    在手机中做本题