|
知识路径: > 计算机系统综合知识 > 数据库系统 > 数据库管理系统的类型、结构和性能评价 > 数据操作 >
|
相关知识点:7个
|
|
|
|
在元组演算中,元组演算表达式简称为元组表达式,其一般形式为{t|P(t)},其中,t是元组变量,表示一个元数固定的元组;P是公式,在数理逻辑中也称为谓词,也就是计算机语言中的条件表达式。{t|P(t)}表示满足公式P的所有元组t的集合。
|
|
|
在元组表达式中,公式由原子公式组成。原子公式有下列3种形式。
|
|
|
(1)R(s),其中R是关系名,s是元组变量。其含义是“s是关系R的一个元组”。
|
|
|
(2)s[i]θu[j],其中s和u是元组变量,θ是算术比较运算符,s[i]和u[j]分别是s的第i个分量和u的第j个分量。原子公式s[i]θu[j]表示“元组s的第i个分量与元组u的第j个分量之间满足θ运算”。
|
|
|
(3)s[i]θa或aθu[j],其中的a为常量。其含义类似于(2)。
|
|
|
在一个公式中,如果元组变量未用存在量词?或全称量词?等符号定义,那么称为自由元组变量,否则称为约束元组变量。公式的递归定义如下:
|
|
|
(1)每个原子是一个公式。其中的元组变量是自由变量。
|
|
|
(2)如果P1和P2是公式,那么┓P1、P1∨P2、P1∧P2和P1→P2也是公式。
|
|
|
(3)如果P1是公式,那么(?s)(P1)和(?s)(P1)也都是公式。
|
|
|
(4)公式中各种运算符的优先级从高到低依次为:θ、?和?、┓、∨和∧、→。在公式外还可以加括号,以改变上述优先顺序。
|
|
|
(5)公式只能由上述4种形式构成,除此之外构成的都不是公式。
|
|
|
|
|
|
(3)(?s)(P1)(s))等价于┓(?s)(┓P1(s))。
|
|
|
(?s)(P1(s))等价于┓(?s)(┓P1(s))。
|
|
|
|
|
|
(2)R-S可用{t|R(t)∧┓S(t)}表示。
|
|
|
(3)R×S可用{t|(?u)(?v)(R(u)∧S(v)∧t[1]=u[1]∧…∧t[r]=u[r]∧t[r+1]=v[1]∧…∧t[r+s]=v[s])}表示,此处设R是r元,S是s元。
|
|
|
(4)设投影操作是π2,3(R),那么元组表达式可写成{t|(?u)(R(u)∧t[1]=u[2]∧t[2]=u[3])}。
|
|
|
(5)σF(R)可用{t|R(t)∧F′}表示,F′是F的等价表示形式。例如,σ2=′d′(R)可写成{t|(R(t)∧t[2]=′d′)。
|
|
|
例如,设学生S、课程C、学生选课SC的关系模式分别为:S(Sno, Sname, Sage, Saddr)、C(Cno, Cname, Pcno),以及SC(Sno, Cno, Grade)。我们求与关系代数表达式等价的元组演算表达式。
|
|
|
因为涉及3个关系模式S、SC、C,为了转换成等价的元组演算表达式,需要设置3个元组变量u、v、w,而且这3个元组变量只要用存在量词?限定就可以了。(?u)S(u)表示在S关系中存在一个元组,(?v)SC(v)表示在SC关系中存中一个元组,(?w)C(w)表示在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)(?w)S(u)∧SC(v)∧C(w)∧u[1]=v[1]∧v[2]=w[1]∧w[2]=′data′∧t[1]=u[1]∧t[2]=u[2]∧t[3]=v[3]}。
|
|
|