精华内容
下载资源
问答
  • 数据库 元组关系演算

    千次阅读 2019-02-17 21:47:37
    数据库 元组关系演算
                   

    元组关系演算


        之前学习了一下关系代数表达式,现在再学习一下元组关系的演算,这样就全了。这篇东西的符号打出来费了好多时间,比较麻烦,还好看着还能看懂,关键是全文本的,好下面开始正文。


        为了讨论方便,先允许关系的基数是无限的。然后再对这种情况下定义的演算作适当的修改,保证关系演算中的每一个公式表示的是有限关系。


        在元组关系演算系统中,称 {t|Φ(t)} 为元组演算表达式。其中 t 是元组变量, Φ(t) 为元组关系演算公式,简称公式。 
    它由原子公式和运算符组成。

     

         原子公式有三类:

     

        (1) R(t)

            R 是关系名, t 是元组变量。 R(t) 表示 t 是 R 中的元组。于是,关系 R 可表示为: {t|R(t)}

        (2) t[i] θ u[j]

            t 和 u 是元组变量, θ 是算术比较运算符。 t[i] θ u[j] 表示断言 “ 元组 t 的第 i 个分量与元组 u 的第 j 个分量满足比较关系 θ ” 。例如, t[2] < u[3] 表示元组 t 的第 2 个分量小于元组 u 的第 3 个分量。

        (3) t[i] θ c 或  c θ t[i] 
            这里 c 是常量,该公式表示 “t 的第 i 个分量与常量 C 满足比较关系 θ” 。例如: t[4]=3 表示元组 t 的第 4 个分量等于 3 。

     

         在关系演算中定义了 “ 自由元组变量 ” 和 “ 约束元组变量 ” 的概念。这些概念和谓词演算中的概念完全一样。若公式中的一个元组变量前有 “ 全称量词 ” 或 “ 存在量词 ” ,则称该变量为约束元组变量,否则称自由元组变量。

     

        公式可以递归定义如下:

     

        (l) 每个原子公式是公式。 
        (2) 如果 Φ 1 和 Φ 2 是公式,则 Φ 1 ∧ Φ 2 、 Φ 1 ∨ Φ 2 、 ﹁ Φ1 也是公式。分别表示: 
            ① 如果 Φ 1 和 Φ 2 同时为真。则 Φ 1 ∧ Φ 2 才为真,否则为假; 
            ② 如果 Φ 1 和 Φ 2 中一个或同时为真,则 Φ 1 ∨ Φ 2 为真,仅 Φ 1 和 Φ 2 同时为假时, Φ 1 ∨ Φ 2 才为假; 
            ③ 如果 Φ 1 真,则 ﹁ Φ 1 为假。 
        (3) 若 Φ 是公式,则 ∃ t(Φ) 也是公式。其中符号 ∃ 是存在量词符号, ∃ t(Φ) 表示: 
            若有一个 t 使 Φ 为真,则 ∃ t(Φ) 为真,否则 ∃ t(Φ) 为假。 
        (4) 若 Φ 是公式,则 ∀ t( Φ ) 也是公式。其中符号 ∀ 是全称量词符号, ∀ t( Φ ) 表示: 
            如果对所有 t ,都使 Φ 为真,则 ∀ t( Φ ) 必为真,否则 ∀ t( Φ ) 为假。 
        (5) 在元组演算公式中,各种运算符的优先次序为: 
            ① 算术比较运算符最高; 
            ② 量词次之,且 ∃ 的优先级高于 ∀ 的优先级; 
            ③ 逻辑运算符最低,且 ﹁ 的优先级高于 ∧ 的优先级, ∧ 的优先级高于 ∨ 的优先级; 
            ④ 加括号时,括号中运算符优先,同一括号内的运算符之优先级遵循 ①②③ 各项。 
        (6) 有限次地使用上述五条规则得到的公式是元组关系演算公式,其他公式不是元组关系演算公式。

     

        一个元组演算表达式 {t|Φ(t)} 表示了使 Φ(t) 为真的元组集合。 
        关系代数的运算均可以用关系演算表达式来表示 ( 反之亦然 ) 。下面用关系演算表达式来表示五种基本运算:

     

        (1) 并

            R ∪ S={t|R(t) ∨ S(t)}

        (2) 差

            R - S={t|R(t) ∧ ﹁ S(t)}

        (3) 笛卡尔积

            R×S={t (n+m) |( ∃ u (n) )( ∃ v (m) )(R(u) ∧ S(v) ∧ t[1]=u[1] ∧ ... ∧ t[n]=u[n] ∧ t[n+1]=v[1] ∧ ... ∧ t[n+m]=v[m])}

            注: t (n+m) 表示 t 有目数 (n+m)

        (4) 投影

            π t1,t2,...,tk (R)={t (k) |( ∃ u )(R(u) ∧ t[1]=u[i1] ∧ ...t[k]=u[ik] )}

        (5) 选择

            σ F (R)={t|R(t) ∧ F}

            注: F 是公式。 F 用 t[i] 代替 运 算 对 象 i 得到的等价公式。

     

         例 1 查询信息系 (IS 系 ) 全体学生: 
            S IS ={Student(t) ∧ t[5]='IS'}  
         例 2 查询年龄小于 20 岁的学生。 
            S 20 ={Student(t) ∧ t[4]<20}

         例 3 查询学生的姓名和所在系。 
            S={t (2) |( ∃ u)(Student(u) ∧ t[1]=u[2] ∧ t[2]=u[5])}


        上面定义的关系演算允许出现无限关系。例如 {t| ﹁ R(t)} 表示所有不属于 R 的元组 ( 元组的目数等于 R 的目数 ) 。要求出这些可能的元组是做不到的,所以必须排除这类无意义的表达式。把不产生无限关系的表达式称为安全表达式,所采取的措施称为安全限制。安全限制通常是定义一个有限的符号集 dom(Φ) , dom(Φ) 一定包括出现在 Φ 以及中间结果和最后结果的关系中的所有符号 ( 实际上是各列中值的汇集 ) 。 dom(Φ) 不必是最小集。

     

         当满足下列条件时,元组演算表达式 {t|Φ(t)} 是安全的: 
        ( 1 )如果 t 使 Φ(t) 为真,则 t 的每个分量是 dom(Φ) 中的元素。 
        ( 2 )对于 Φ 中每一个形如 ( ∃ t)(W(u)) 的子表达式,若 u 使 W(u) 为真,则 u 的每个分量是 dom(Φ) 中的元素。 
        ( 3 )对于 Φ 中每一个形如 ( ∀ t)(W(u)) 的子表达式,若 u 使 W(u) 为假,则 u 的每个分量必属于 dom(Φ) 。换言之,若 u 某一分量不属于 dom(Φ) ,则 W(u) 为真。

     

         例 4 设有关系 R 如图 2.8(a) , S={t| ﹁ R(t)} ,若不进行安全限制,则可能是一个无限关系。所以定义

            dom(Φ)= π A (R) ∪ π B (R) ∪ π C (R)

                  ={{a1,a2},{b1,b2},{c1,c2}}


         则 S 是 dom(Φ) 中各域值中元素的笛卡儿积与 R 的差集。结果如图 2.8(b) 。注意,在做笛卡儿积时各个域中的元素不能搞混。

     

        元组.jpg

     

     

    附:其他类型举例:

    -----------------------------------------------------------------------------------------

     

    1 、下列等式中恒等的是:

     

    ① π A1,A2 ( σ F (E))≡ σ F ( π A1,A2 (E))

    ② σ F (E 1 × E 2 )≡ σ F (E 1 ) ×σ F (E 2 )

    ③ σ F (E 1 -E 2 )≡ σ F (E 1 )- σ F (E 2 )

    ④ π A1,A2,B1,B2 (ECROSS.gifE)≡ π A1,A2 (E) CROSS.gifπ B1,B2 (E)

     

    ① 当 F 包含 A1,A2 以外的限制 时 ,不恒等

    ② 当 F 包含大于 E1( 或 E2) 个数 的限制 时 ,不恒等

    ③ 恒等

    ④ 等式不可能成立,右 边没 有相同 属 性

     

    2 、以下元 组 的意 义 :

     

    {t|( ∃ u)((R(u) ∨ S(u)) ∧ ( ∀ v)(T(v)→( ∃ w)((R(w) ∨ S(w)) ∧ w[1]=u[1] ∧ w[2]=v[1] ∧ w[3]=v[2])) ∧ t[1]=u[1]}

     

    据 说 是表示 R ∪ S ÷ T 的意思,但是我 实 在是看不 懂 。

     

    3 、以下元 组 表 达 式 转换为关 系代 数 表 达 式

     

    {t| ∃ u ∃ v(R(u) ∧ S(v) ∧ u[3]=v[1] ∧ u[4]=v[2] ∧ u[1]>v[3] ∧ t[1]=u[2])}

    其中 R(A,B,C,D) S(C,D,E)

     

    关 系代 数 表 达 式 为 : π B ( σ A>E (RCROSS.gifS))

     

    4 、把下列 关 系代 数 表 达 式 转换为 元 组 表 达 式

     

    π 1,4 (RCROSS.gifS)

    其中 R(A,B,C) S(B,D)

     

    元 组 演算表 达 式 为 : {t| ∃ u ∃ v(R(u) ∧ S(v) ∧ u[2]=v[1] ∧ t[1]=u[1] ∧ t[2]=v[2])}

     

    5 、 关 系代 数 表 达 式 → 元 组 演算表 达 式

     

    π 1,5,6 ( σ 1>5 (R×S)) -- 注意中 间 是乘法不是自然 连 接

    其中 R(A,B,C) S(A,B,C)

     

    {t| ∃ u ∃ v(R(u) ∧ S(v) ∧ u[1]>v[2] ∧ t[1]=u[1] ∧ t[2]=v[2] ∧ t[3]=v[3])}

     

    6 、下列 查询 效率最高的一 组 是:

     

    ① E1= π A,D ( σ B<'2007' ∧ R.C=S.C ∧ E='80' (R × S))

    ② E2= π A,D ( σ R.C=S.C ( σ B<'2007' (R) ×σ E='80' (S)))

    ③ E3= π A,D ( σ B<'2007' (R) CROSS.gifσ E='80' (S))

    ④ E4= π A,D ( σ B<'2007' ∧ E='80' (RCROSS.gifS))

     

    答案是 ③ ,很明 显 自然 连 接要 优 于笛卡尔 积 ,先 运 算再投影 优 于 先投影再 计 算


               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 1.元组关系演算:以元组变量作为谓词变元的基本对象元组关系演算语言ALPHA2.域关系演算:以域变量作为谓词变元的基本对象域关系演算语言QBE 元组关系演算语言ALPHA (1) 简单检索(即不带条件的检索) 格式: GET ...

    关系演算 :以数理逻辑中的谓词演算为基础

    按谓词变元不同分类

    1.元组关系演算:
    以元组变量作为谓词变元的基本对象
    元组关系演算语言ALPHA
    2.域关系演算:
    以域变量作为谓词变元的基本对象
    域关系演算语言QBE

    元组关系演算语言ALPHA

    (1) 简单检索(即不带条件的检索)

    格式: GET 工作空间名 (表达式1)
    查询所有被选修的课程号码。
    GET W (SC.Cno)

    (2) 限定的检索(即带条件的检索)

    格式: GET 工作空间名(表达式1) : 操作条件
    查询信息系(IS)中年龄小于20岁的学生的学号和年龄。
    GET W (Student.Sno, Student.Sage):Student.Sdept='IS'∧Student.Sage<20 

    (3) 带排序的检索

    格式: GET 工作空间名(表达式1) [:操作条件] DOWN/UP 表达式2 
    查询计算机科学系(CS)学生的学号、 年龄, 结果按年龄降序排序。 
    GET W (Student.Sno, Student.Sage): Student.Sdept=‘CS’DOWN Student.Sage

    (4) 带定额的检索

    格式 : GET 工作空间名(定额) (表达式1) [:操作条件] [DOWN/UP 表达式2] 
    取出一个信息系学生的学号。
    GET W (1) (Student.Sno): Student.Sdept='IS’

    (5) 用元组变量的检索

    1元组变量的含义
    表示可以在某一关系范围内变化(也称为范围变量Range Variable)
    2元组变量的用途
    简化关系名:设一个较短名字的元组变量来代替较长的关系名。
    操作条件中使用量词时必须用元组变量。
    3定义元组变量
    格式: RANGE 关系名 变量名
    一个关系可以设多个元组变量
    查询信息系学生的名字
    RANGE Student X  GET W (X.Sname):X.Sdept=‘IS’

    (6) 用存在量词的检索

    查询选修2号课程的学生名字。

    RANGE SC X  GET W (Student.Sname): ΕX(X.Sno=Student.Sno∧X.Cno='2')

    查询至少选修一门其先行课为6号课程的学生名字
    RANGE Course CX SC SCX
    GET W (Student.Sname):
    E SCX (SCX.Sno=Student.Sno∧
    E CX (CX.Cno=SCX.Cno∧CX.Pcno='6'))

    (7) 带有多个关系的表达式的检索

    查询成绩为90分以上的学生名字与课程名字

    RANGE SC SCX GET W (Student.Sname, Course.Cname): SCX (SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno) 

    (8) 用全称量词的检索

    查询不选1号课程的学生名字。
    RANGE SC SCX
    GET W (Student.Sname): v(任意)SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')

    (9) 用两种量词的检索

    查询选修了全部课程的学生姓名。

    (10) 用蕴函(Implication) 的检索

    (11) 集函数

    查询学生所在系的数目。

    GET W (COUNT(Student.Sdept))
    COUNT函数在计数时会自动排除重复值。

    更新操作

    (1) 修改操作

    用HOLD语句将要修改的元组从数据库中读到工作空间中 HOLD 工作空间名(表达式1) [:操作条件 ]
    用宿主语言修改工作空间中元组的属性
    用UPDATE语句将修改后的元组送回数据库中

    把95007学生从计算机科学系转到信息系
    HOLD W (Student.Sno, Student.Sdetp): Student.Sno='95007   (从Student关系中读出95007学生的数据)
    MOVE ‘IS’ TO W.Sdept (用宿主语言进行修改)
    UPDATE W (把修改后的元组送回Student关系)

    (2) 插入操作

    用宿主语言在工作空间中建立新元组
    用PUT语句把该元组存入指定关系中  PUT 工作空间名 (关系名)

    学校新开设了一门2学分的课程‚计算机组织与结构‛ , 其课程号为8, 直接先行课为6号课程。 插入该课程元组 
    MOVE '8' TO W.Cno
    MOVE '计算机组织与结构' TO W.Cname
    MOVE '6' TO W.Cpno
    MOVE '2' TO W.Ccredit
    PUT W (Course)

    (3) 删除操作

    用HOLD语句把要删除的元组从数据库中读到工作空间中
    用DELETE语句删除该元组  DELETE 工作空间名

    95110学生因故退学, 删除该学生元组。
    HOLD W (Student):Student.Sno='95110'
    DELETE W 

    转载于:https://www.cnblogs.com/vincentqliu/p/6925956.html

    展开全文
  • 文章目录元组关系演算概述种类第一种R(t)第二种` t[i] θ u[j]`第三种` t[i] θ c 或 c θ t[i] ` 元组关系演算 概述 元组:表示关系表中的记录 元组变量:关系表中的某一条记录。 元组关系演算公式: 表示的关系表...

    元组关系演算

    概述

    • 元组:表示关系表中的记录
    • 元组变量:关系表中的某一条记录。
    • 元组关系演算公式: 表示的关系表。

    在元组关系演算系统中,称 {t|Φ(t)} 为元组演算表达式。其中 t 是元组变量, Φ(t) 为元组关系演算公式,简称公式。
    它由原子公式和运算符组成。

    种类

    在这里插入图片描述
    这是一张user

    第一种R(t)

    用元组演算表达式表示出来,是这样 {t|user(t)},用t表示某条记录,用user(t)表示t是关系表user表中的一条记录。

    这里的{t|user(t)}用于描述元组是属于哪张关系表(数据表)。

    第二种t[i] θ u[j]

    t 和 u 是元组变量, θ 是算术比较运算符。 t[i] θ u[j] 表示断言 “ 元组 t 的第 i 个分量与元组 u 的第 j 个分量满足比较关系 θ ” 。例如, t[2] < u[3] 表示元组 t 的第 2 个分量小于元组 u 的第 3 个分量。

    两个元组中分量的比较(我们已经知道元组是关系表的一条记录,元组中分量是记录中的一个属性的值),也就是比较两个记录中某个属性。

    第三种t[i] θ c 或 c θ t[i]

        这里 c 是常量,该公式表示 “t 的第 i 个分量与常量 C 满足比较关系 θ” 。例如: t[4]=3 表示元组 t 的第 4 个分量等于 3 。
    
    展开全文
  • 元组关系演算语言ALPHA简介一、检索操作(GET)1.简单检索2.带条件的检索3.带排序的检索4.带定额的检索5.用元组变量的检索6.用存在量词的检索7.带有多个关系的表达式的检索8.用全称量词的检索9.用两种量词的检索10.用...
  • 元组关系演算 之前学习了一下关系代数表达式,现在再学习一下元组关系的演算,这样就全了。这篇东西的符号打出来费了好多时间,比较麻烦,还好看着还能看懂,关键是全文本的,好下面开始正文。 为了讨论方便,先...

    元组关系演算

        之前学习了一下关系代数表达式,现在再学习一下元组关系的演算,这样就全了。这篇东西的符号打出来费了好多时间,比较麻烦,还好看着还能看懂,关键是全文本的,好下面开始正文。


        为了讨论方便,先允许关系的基数是无限的。然后再对这种情况下定义的演算作适当的修改,保证关系演算中的每一个公式表示的是有限关系。


        在元组关系演算系统中,称 {t|Φ(t)} 为元组演算表达式。其中 t 是元组变量, Φ(t) 为元组关系演算公式,简称公式。 
    它由原子公式和运算符组成。

     

         原子公式有三类:

     

        (1) R(t)

            R 是关系名, t 是元组变量。 R(t) 表示 t 是 R 中的元组。于是,关系 R 可表示为: {t|R(t)}

        (2) t[i] θ u[j]

            t 和 u 是元组变量, θ 是算术比较运算符。 t[i] θ u[j] 表示断言 “ 元组 t 的第 i 个分量与元组 u 的第 j 个分量满足比较关系 θ ” 。例如, t[2] < u[3] 表示元组 t 的第 2 个分量小于元组 u 的第 3 个分量。

        (3) t[i] θ c 或  c θ t[i] 
            这里 c 是常量,该公式表示 “t 的第 i 个分量与常量 C 满足比较关系 θ” 。例如: t[4]=3 表示元组 t 的第 4 个分量等于 3 。

     

         在关系演算中定义了 “ 自由元组变量 ” 和 “ 约束元组变量 ” 的概念。这些概念和谓词演算中的概念完全一样。若公式中的一个元组变量前有 “ 全称量词 ” 或 “ 存在量词 ” ,则称该变量为约束元组变量,否则称自由元组变量。

     

        公式可以递归定义如下:

     

        (l) 每个原子公式是公式。 
        (2) 如果 Φ 1 和 Φ 2 是公式,则 Φ 1 ∧ Φ 2 、 Φ 1 ∨ Φ 2 、 ﹁ Φ1 也是公式。分别表示: 
            ① 如果 Φ 1 和 Φ 2 同时为真。则 Φ 1 ∧ Φ 2 才为真,否则为假; 
            ② 如果 Φ 1 和 Φ 2 中一个或同时为真,则 Φ 1 ∨ Φ 2 为真,仅 Φ 1 和 Φ 2 同时为假时, Φ 1 ∨ Φ 2 才为假; 
            ③ 如果 Φ 1 真,则 ﹁ Φ 1 为假。 
        (3) 若 Φ 是公式,则 ∃ t(Φ) 也是公式。其中符号 ∃ 是存在量词符号, ∃ t(Φ) 表示: 
            若有一个 t 使 Φ 为真,则 ∃ t(Φ) 为真,否则 ∃ t(Φ) 为假。 
        (4) 若 Φ 是公式,则 ∀ t( Φ ) 也是公式。其中符号 ∀ 是全称量词符号, ∀ t( Φ ) 表示: 
            如果对所有 t ,都使 Φ 为真,则 ∀ t( Φ ) 必为真,否则 ∀ t( Φ ) 为假。 
        (5) 在元组演算公式中,各种运算符的优先次序为: 
            ① 算术比较运算符最高; 
            ② 量词次之,且 ∃ 的优先级高于 ∀ 的优先级; 
            ③ 逻辑运算符最低,且 ﹁ 的优先级高于 ∧ 的优先级, ∧ 的优先级高于 ∨ 的优先级; 
            ④ 加括号时,括号中运算符优先,同一括号内的运算符之优先级遵循 ①②③ 各项。 
        (6) 有限次地使用上述五条规则得到的公式是元组关系演算公式,其他公式不是元组关系演算公式。

     

        一个元组演算表达式 {t|Φ(t)} 表示了使 Φ(t) 为真的元组集合。 
        关系代数的运算均可以用关系演算表达式来表示 ( 反之亦然 ) 。下面用关系演算表达式来表示五种基本运算:

     

        (1) 并

            R ∪ S={t|R(t) ∨ S(t)}

        (2) 差

            R - S={t|R(t) ∧ ﹁ S(t)}

        (3) 笛卡尔积

            R×S={t (n+m) |( ∃ u (n) )( ∃ v (m) )(R(u) ∧ S(v) ∧ t[1]=u[1] ∧ ... ∧ t[n]=u[n] ∧ t[n+1]=v[1] ∧ ... ∧ t[n+m]=v[m])}

            注: t (n+m) 表示 t 有目数 (n+m)

        (4) 投影

            π t1,t2,...,tk (R)={t (k) |( ∃ u )(R(u) ∧ t[1]=u[i1] ∧ ...t[k]=u[ik] )}

        (5) 选择

            σ F (R)={t|R(t) ∧ F}

            注: F 是公式。 F 用 t[i] 代替 运 算 对 象 i 得到的等价公式。

     

         例 1 查询信息系 (IS 系 ) 全体学生: 
            S IS ={Student(t) ∧ t[5]='IS'}  
         例 2 查询年龄小于 20 岁的学生。 
            S 20 ={Student(t) ∧ t[4]<20}

         例 3 查询学生的姓名和所在系。 
            S={t (2) |( ∃ u)(Student(u) ∧ t[1]=u[2] ∧ t[2]=u[5])}


        上面定义的关系演算允许出现无限关系。例如 {t| ﹁ R(t)} 表示所有不属于 R 的元组 ( 元组的目数等于 R 的目数 ) 。要求出这些可能的元组是做不到的,所以必须排除这类无意义的表达式。把不产生无限关系的表达式称为安全表达式,所采取的措施称为安全限制。安全限制通常是定义一个有限的符号集 dom(Φ) , dom(Φ) 一定包括出现在 Φ 以及中间结果和最后结果的关系中的所有符号 ( 实际上是各列中值的汇集 ) 。 dom(Φ) 不必是最小集。

     

         当满足下列条件时,元组演算表达式 {t|Φ(t)} 是安全的: 
        ( 1 )如果 t 使 Φ(t) 为真,则 t 的每个分量是 dom(Φ) 中的元素。 
        ( 2 )对于 Φ 中每一个形如 ( ∃ t)(W(u)) 的子表达式,若 u 使 W(u) 为真,则 u 的每个分量是 dom(Φ) 中的元素。 
        ( 3 )对于 Φ 中每一个形如 ( ∀ t)(W(u)) 的子表达式,若 u 使 W(u) 为假,则 u 的每个分量必属于 dom(Φ) 。换言之,若 u 某一分量不属于 dom(Φ) ,则 W(u) 为真。

     

         例 4 设有关系 R 如图 2.8(a) , S={t| ﹁ R(t)} ,若不进行安全限制,则可能是一个无限关系。所以定义

            dom(Φ)= π A (R) ∪ π B (R) ∪ π C (R)

                  ={{a1,a2},{b1,b2},{c1,c2}}


         则 S 是 dom(Φ) 中各域值中元素的笛卡儿积与 R 的差集。结果如图 2.8(b) 。注意,在做笛卡儿积时各个域中的元素不能搞混。

     

        

     

     

    附:其他类型举例:

    -----------------------------------------------------------------------------------------

     

    1 、下列等式中恒等的是:

     

    ① π A1,A2 ( σ F (E))≡ σ F ( π A1,A2 (E))

    ② σ F (E 1 × E 2 )≡ σ F (E 1 ) ×σ F (E 2 )

    ③ σ F (E 1 -E 2 )≡ σ F (E 1 )- σ F (E 2 )

    ④ π A1,A2,B1,B2 (EE)≡ π A1,A2 (E) π B1,B2 (E)

     

    ① 当 F 包含 A1,A2 以外的限制 时 ,不恒等

    ② 当 F 包含大于 E1( 或 E2) 个数 的限制 时 ,不恒等

    ③ 恒等

    ④ 等式不可能成立,右 边没 有相同 属 性

     

    2 、以下元 组 的意 义 :

     

    {t|( ∃ u)((R(u) ∨ S(u)) ∧ ( ∀ v)(T(v)→( ∃ w)((R(w) ∨ S(w)) ∧ w[1]=u[1] ∧ w[2]=v[1] ∧ w[3]=v[2])) ∧ t[1]=u[1]}

     

    据 说 是表示 R ∪ S ÷ T 的意思,但是我 实 在是看不 懂 。

     

    3 、以下元 组 表 达 式 转换为关 系代 数 表 达 式

     

    {t| ∃ u ∃ v(R(u) ∧ S(v) ∧ u[3]=v[1] ∧ u[4]=v[2] ∧ u[1]>v[3] ∧ t[1]=u[2])}

    其中 R(A,B,C,D) S(C,D,E)

     

    关 系代 数 表 达 式 为 : π B ( σ A>E (RS))

     

    4 、把下列 关 系代 数 表 达 式 转换为 元 组 表 达 式

     

    π 1,4 (RS)

    其中 R(A,B,C) S(B,D)

     

    元 组 演算表 达 式 为 : {t| ∃ u ∃ v(R(u) ∧ S(v) ∧ u[2]=v[1] ∧ t[1]=u[1] ∧ t[2]=v[2])}

     

    5 、 关 系代 数 表 达 式 → 元 组 演算表 达 式

     

    π 1,5,6 ( σ 1>5 (R×S)) -- 注意中 间 是乘法不是自然 连 接

    其中 R(A,B,C) S(A,B,C)

     

    {t| ∃ u ∃ v(R(u) ∧ S(v) ∧ u[1]>v[2] ∧ t[1]=u[1] ∧ t[2]=v[2] ∧ t[3]=v[3])}

     

    6 、下列 查询 效率最高的一 组 是:

     

    ① E1= π A,D ( σ B<'2007' ∧ R.C=S.C ∧ E='80' (R × S))

    ② E2= π A,D ( σ R.C=S.C ( σ B<'2007' (R) ×σ E='80' (S)))

    ③ E3= π A,D ( σ B<'2007' (R) σ E='80' (S))

    ④ E4= π A,D ( σ B<'2007' ∧ E='80' (RS))

     

    答案是 ③ ,很明 显 自然 连 接要 优 于笛卡尔 积 ,先 运 算再投影 优 于 先投影再 计 算
    ————————————————
    版权声明:本文为CSDN博主「厦门德仔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/david_520042/article/details/41245969

    展开全文
  • 直观上,元组关系演算ALPHA中的存在量词和全称量词并不太好理解。本文虽对其做了一定的解释,但是依然可能显得不够。建议大家最好结合表实际演算,增加大家的直觉。 取定学生关系Student中的一个元组,设为t,现...
  • 目录元组关系演算原子公式有三类:公式可以递归定义如下:例子资料参考 元组关系演算 之前学习了一下关系代数表达式,现在再学习一下元组关系的演算,这样就全了。这篇东西的符号打出来费了好多时间,比较麻烦,还...
  • 数据库中元组关系演算 table, th, td { border: 1px solid black; } table, th, td { border: 1px solid black; } Tuple Relational Calculus is a non-procedural and declarative query language. The ...
  • 元组关系演算

    2020-08-26 21:39:24
    1.定义 元组关系演算是非过程化的查询语言。 表达式:{t│Q(t)} 使谓词Q(t)为真的全部元组t。 形式化定义 2.例题 题目 关系数据库(图6-22) 答案
  • 再论元组关系演算与SQL

    千次阅读 2009-04-15 15:08:00
    1 引言 20世纪60年代诞生的...关系数据模型有三种等价的操作语言:关系代数、SQL、关系演算(元组关系演算和域关系演算),它们的非过程化程度依次递增,主要应用领域也不同。SQL是关系数据库的标准语言,关系代数和
  • 关系演算可分为元组演算与域演算 关系演算是基于元组进行操作 而域演算是基于一列中的每个值进行演算,域演算的过程性较差 域演算有QBE语言
  • 看了这些研究论文,你会知道——中国的数据库研究领域还是多么苍白,但是好歹让人见了一点点光明
  • 数据库 - 关系演算

    千次阅读 2015-05-05 09:30:58
    1.元组关系演算: 以元组变量作为谓词变元的基本对象 元组关系演算语言ALPHA 2.域关系演算: 以域变量作为谓词变元的基本对象 域关系演算语言QBE由E.F.Codd提出 INGRES所用的QUEL语言是参照ALPHA语言研制的...
  • 关系代数是基于集合的一种查询,元组演算和域演算是基于逻辑的一种查询。 一、什么是关系元组演算 元组演算是以元组为对象、为操作单位进行演算。谓词变量就是操作对象。 不是以上形式的就不是公式。 二、简单运用...
  • 数据库——关系演算

    2019-06-16 16:01:00
    元组关系演算语言ALPHA 由E.F.Codd提出,以数理逻辑中的谓词演算为基础语句 检索语句(查询)GET 更新语句PUT,HOLD,UPDATE,DELETE,DROP 一、检索操作 (1) 简单检索(即不带条件的检索)(2) 限定的检索(即带条件...
  • 数据库--元组演算

    千次阅读 2013-04-28 21:49:30
    数据库查询数据时,所输入的SQL语句,是一中描述性的语言,即我们只需要告诉数据库我们要查找...元组演算也是一中关系数据库的查询语言,那么用元组演算到底是什么样子,怎么进行查询呢?   首先看最基本的元组
  • 数据库中存储了大量的关系(表)之后,要对其进行增删查改等操作,其一般通过SQL类语言来实现,而语言实现的基础就是对关系进行一定的集合(关系代数)或逻辑处理(关系演算、域演算),然后返回处理结果。...
  • 候选码(Candidate Key):能唯一标识关系元组的一个属性或属性集 性质:唯一性,最小性 二、关系的主码和外码 主码(Primary Key):从多个候选码中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码...
  • 数据库系统--元组演算

    千次阅读 2010-01-11 03:32:00
    1、元组演算的概念 在元组演算中,元组演算表达式简称为元组表达式,其一般形式为{t|p(t)}。t:元组变量,表示一个元数固定的元组;p:公式,在数理逻辑中也称为谓词,也就是计算机语言中的条件表达式。{t|p(t)...
  • 1.关系演算之关系元组演算 2.关系演算之关系域演算 3.关系演算之安全性 4.关于三种关系运算的一些观点 主要是元组演算和域演算 关系元组演算公式的定义方法是:递归 评价:递归是一种定义语言的好方法 存在...
  • 数据库---元组演算

    千次阅读 2007-10-02 00:43:00
    元组演算 对于R3,其结果t是S中的元组。如果t是S中的第一个元组,其t[3]=3,在关系R中第2列存在元组使t[3]如果t是S中的第二个元组,其t[3]=6,在关系R中第2列存在元组使t[3]如果t是S中的第三个元组,其t[3]=9,在...
  • 基于《数据库系统概论》,讲述了关系演算语言,包括元组关系演算语言和域关系演算语言及其相关概念和简单示例
  • 【例1】 查询信息系 (IS 系 ) 全体学生:SIS = { Student(t) ∧ t[5] = ‘IS’ } 【例2】 查询年龄小于 20 岁的... 【例4】 例如,有两个关系 R 和 S,计算: R1={ t | R(t) ∧ ¬ S(t)} R2={ t | ( ∃ u)(S(t) ∧ R
  • (3) 包括: 元组关系演算, 域关系演算 谓词公式中的运算符 (1) 比较运算符:=、>、、≥、≤、≠ (2) 逻辑运算符:与、或、非 (3) 量词:全称量词任意、存在量词存在 若表达式中的变量是元组变量,则称为__元组...
  • 关系演算 关系演算是以数理逻辑中的谓词演算(谓词表示个体的一种属性)为基础的 关系演算是描述关系运算的另一种思维方式,以个体为单位,不以集合为单位 SQL语言是继承了关系代数和关系演算各自的优点所形成的 ...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 173
精华内容 69
关键字:

数据库元组关系演算