免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2016年上半年 数据库系统工程师 上午试卷 综合知识
  第37题      
  知识点:   元组演算   元组演算
  关键词:   元组演算表达式   表达式   元组        章/节:   关系数据库       

 
关系R.S如下表所示,元组演算表达式T={t|R(t)⋀∀u(S(u)→t[3]>u[1]}运算的结果为(37)。
 
 
  A. 
 
  B. 
 
  C. 
 
  D. 
 
 
 

 
  第38题    2022年上半年  
   67%
假设有关系E(学校名称,所在地)和F(学校名称,专业代码,分数线),查询所有学校所有专业的分数线,以及学校所在地的信息,对..
  第34题    2013年上半年  
   49%
关系R、S如下图所示,关系代数表达式πR.A,S.B,S.CR.A>S.B(RxS)(33),它与 元组演..
  第35题    2013年上半年  
   53%
关系R、S如下图所示,关系代数表达式πR.A,S.B,S.CR.A>S.B(RxS)(33),它与 元组演..
   知识点讲解    
   · 元组演算    · 元组演算
 
       元组演算
        元组关系演算是非过程化查询语言。它只描述所需信息,而不给出获得该信息的具体过程。在元组关系演算中,其元组关系演算表达式中的变量是以元组为单位的,其一般形式为:{tPt)}。其中:t是元组变量,Pt)是元组关系演算公式,公式是由原子公式组成的。
                      原子公式
                      原子命题函数是公式,简称为原子公式。它有下面三种形式:
                      (1)Rt)。R是关系名,t是元组变量,Rt)表示这样一个命题“t是关系R的一个元组”。
                      (2)tiθCCθti]。ti]表示元组变量t的第i个分量,C是常量,θ为算术比较运算符。tiθCCθti]表示这样一个命题“元组变量t的第i个分量与C之间满足θ运算”。
                      例如,t[3]<'8'表示t的第三个分量小于8。t[2]='数据库'表示t的第二个分量等于“数据库”。
                      (3)tiθuj]。tu是两个元组变量,tiθuj]表示这样一个命题“元组变量t的第i个分量与元组变量u的第j个分量之间满足θ运算”。
                      例如,t[2]≥u[4]表示t的第二个分量大于等于u的第四个分量。
                      公式的定义
                      若一个公式中的一个元组变量前有全称量词或存在量词符号,则称该变量为约束变量,否则称之为自由变量。公式可递归定义如下:
                      (1)原子公式是公式。
                      (2)如果φ1φ2是公式,那么¬φ1φ1φ2φ1φ2也都是公式。分别表示如下命题:¬φ1表示“φ1不是真”;φ1φ2表示“φ1φ2φ1φ2为真”;φ1φ2表示“φ1φ2都为真”;表示“若φ1为真则φ2为真”。
                      (3)如果φ1是公式,那么,是公式。表示这样一个命题“若有一个t使φ1为真,则为真,否则为假”。
                      (4)如果φ1是公式,那么,是公式。表示这样一个命题“若对所有的t使φ1为真,则"为真,否则为假”。
                      公式中运算符的优先顺序如下:
                      算术比较运算符θ、¬、∧和∨、。加括号时,括号中的运算符优先。
                      关系代数运算转换为元组演算表达式
                      关系代数表达式可以用元组演算表达式表示。由于任何一个关系代数表达式都可以用五种基本的关系运算组合表示,因此,我们只需给出五种基本的关系运算用元组演算表达式表示形式即可。
                             并
                             并运算用元组演算表达式可表示为:RS={tRt)∨St)}。
                             差
                             差运算用元组演算表达式可表示为:R-S={tRt)∧¬St)}。
                             笛卡儿积的元组演算表达式
                             假定关系Rn个属性,关系Sm个属性,则R×S后生成的新关系是n+m目关系,即有n+m个属性。其元组演算表达式为:
                             
                             投影
                             投影运算用元组演算表达式表示如下:
                             
                             选择
                             选择运算用元组演算表达式可表示为:σFR)={tRt)∧F}。
 
       元组演算
        在元组演算中,元组演算表达式简称为元组表达式,其一般形式为{t|Pt)},其中,t是元组变量,表示一个元数固定的元组;P是公式,在数理逻辑中也称为谓词,也就是计算机语言中的条件表达式。{t|Pt)}表示满足公式P的所有元组t的集合。
        在元组表达式中,公式由原子公式组成。原子公式有下列3种形式。
        (1)Rs),其中R是关系名,s是元组变量。其含义是“s是关系R的一个元组”。
        (2)s[i]θu[j],其中su是元组变量,θ是算术比较运算符,s[i]和u[j]分别是s的第i个分量和u的第j个分量。原子公式s[i]θu[j]表示“元组s的第i个分量与元组u的第j个分量之间满足θ运算”。
        (3)s[i]θaaθu[j],其中的a为常量。其含义类似于(2)。
        在一个公式中,如果元组变量未用存在量词?或全称量词?等符号定义,那么称为自由元组变量,否则称为约束元组变量。公式的递归定义如下:
        (1)每个原子是一个公式。其中的元组变量是自由变量。
        (2)如果P1P2是公式,那么┓P1P1P2P1P2P1P2也是公式。
        (3)如果P1是公式,那么(?s)(P1)和(?s)(P1)也都是公式。
        (4)公式中各种运算符的优先级从高到低依次为:θ、?和?、┓、∨和∧、→。在公式外还可以加括号,以改变上述优先顺序。
        (5)公式只能由上述4种形式构成,除此之外构成的都不是公式。
        在元组演算的公式中,有下列4个等价的转换规则。
        (1)P1P2等价于┓(┓P1∨┓P2)。
        (2)P1P2等价于┓(┓P1∧┓P2)。
        (3)(?s)(P1)(s))等价于┓(?s)(┓P1s))。
        (?s)(P1s))等价于┓(?s)(┓P1s))。
        (4)P1P2等价于┓P1P2
        关系代数表达式可以转换为元组表达式,例如:
        (1)RS可用{t|Rt)∨St)}表示。
        (2)R-S可用{t|Rt)∧┓St)}表示。
        (3)R×S可用{t|(?u)(?v)(Ru)∧Sv)∧t[1]=u[1]∧…∧t[r]=u[r]∧t[r+1]=v[1]∧…∧t[r+s]=v[s])}表示,此处设Rr元,Ss元。
        (4)设投影操作是π2,3R),那么元组表达式可写成{t|(?u)(Ru)∧t[1]=u[2]∧t[2]=u[3])}。
        (5)σFR)可用{t|Rt)∧F′}表示,F′是F的等价表示形式。例如,σ2=′dR)可写成{t|(Rt)∧t[2]=′d′)。
        例如,设学生S、课程C、学生选课SC的关系模式分别为:S(Sno, Sname, Sage, Saddr)、C(Cno, Cname, Pcno),以及SC(Sno, Cno, Grade)。我们求与关系代数表达式等价的元组演算表达式。
        因为涉及3个关系模式SSCC,为了转换成等价的元组演算表达式,需要设置3个元组变量uvw,而且这3个元组变量只要用存在量词?限定就可以了。(?uSu)表示在S关系中存在一个元组,(?vSCv)表示在SC关系中存中一个元组,(?wCw)表示在C关系中存在一个元组。因为u[1]对应的是S.Sno,v[1]对应的是SC.Sno,v[2]对应的是SC.Cno,w[1]对应的是C.Cno,w[2]对应的是C.Cname,所以S.Sno=SC.Sno且SC.Cno=C.Cno且Cname=′data′等价于u[1]=v[1]∧v[2]=w[1]∧w[2]=′data′。因为本题的结果集为Sno、Sname和Grade,而u[1]对应的是S.Sno,u[2]对应的是S.Sname,v[3]对应的是SC.Grade,所以对属性列Sno、Sname和Grade的投影等价于t[1]=u[1]∧t[2]=u[2]∧t[3]=v[3]。因此,与等价的元组演算表达式为{(?u)(?v)(?wSu)∧SCv)∧Cw)∧u[1]=v[1]∧v[2]=w[1]∧w[2]=′data′∧t[1]=u[1]∧t[2]=u[2]∧t[3]=v[3]}。
   题号导航      2016年上半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第37题    在手机中做本题