数据库 - 关系演算

关系演算

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

按谓词变元不同 进行分类

1.元组关系演算:

以元组变量作为谓词变元的基本对象

元组关系演算语言ALPHA

2.域关系演算:

以域变量作为谓词变元的基本对象

域关系演算语言QBE

由E.F.Codd提出
INGRES所用的QUEL语言是参照ALPHA语言研制的
语句
检索语句
GET
更新语句
PUT,HOLD,UPDATE,DELETE,DROP

检索操作

语句格式:
     GET 工作空间名  [(定额)](表达式1)
               [:操作条件] [DOWN/UP 表达式2]
 定额:规定检索的元组个数
格式:        数字
表达式1:指定语句的操作对象
格式:
关系名| 关系名. 属性名| 元组变量. 属性名| 集函数 [,…  ]
操作条件:将操作结果限定在满足条件的元组中
格式:        逻辑表达式
表达式2:指定排序方式
格式:        关系名. 属性名| 元组变量. 属性名[,…  ]

(1)简单检索

GET 工作空间名 (表达式1)

[例1] 查询所有被选修的课程号码。

GET W (SC.Cno)

[例2] 查询所有学生的数据。

GET W (Student)

格式

GET 工作空间名(表达式1):操作条件

[例3]查询信息系(IS)中年龄小于20岁的学生的学号和年龄
    GET  W  (Student.Sno,Student.Sage):
     Student.Sdept=‘IS‘∧ Student.Sage<20

格式

GET 工作空间名(表达式1)[:操作条件]

DOWN/UP 表达式2

  [例4]查询计算机科学系(CS)学生的学号、年龄,结果按年龄降
           序排序
    GET  W  (Student.Sno,Student.Sage):
               Student.Sdept=‘CS‘ DOWN Student.Sage

格式

GET 工作空间名(定额)(表达式1)

[:操作条件] [DOWN/UP 表达式2]

[例5]  取出一个信息系学生的学号。
    GET  W  (1)  (Student.Sno):
             Student.Sdept=‘IS‘
[例6]  查询信息系年龄最大的三个学生的学号及其年龄,结果按年龄降序排序。
        GET  W (3)  (Student.Sno,Student.Sage):
         Student.Sdept=‘IS‘ DOWN Student.Sage

用元组变量的检索

元组变量的含义

表示可以在某一关系范围内变化(也称为范围变量Range Variable)

元组变量的用途

① 简化关系名:设一个较短名字的元组变量来代替较长的关系名。

② 操作条件中使用量词时必须用元组变量。

定义元组变量

格式:RANGE 关系名 变量名

一个关系可以设多个元组变量

用存在量词的检索

操作条件中使用量词时必须用元组变量

[例8]  查询选修2号课程的学生名字。
   RANGE  SC  XGET W (Student.Sname): ?X(X.Sno=Student.Sno∧X.Cno=‘2‘)
[例9] 查询选修了这样课程的学生学号,其直接先行课是6号课程。
   RANGE Course  CX
   GET  W  (SC.Sno):
  ?CX (CX.Cno=SC.Cno∧CX.Pcno=‘6‘)
[例10]查询至少选修一门其先行课为6号课程的学生名字
           RANGE  Course  CX
                              SC        SCX
            GET  W  (Student.Sname): ?SCX (SCX.Sno=Student.Sno∧
                                   ?CX (CX.Cno=SCX.Cno∧CX.Pcno=‘6‘))
 前束范式形式:
              GET  W  (Student.Sname):
                      ?SCX?CX (SCX.Sno=Student.Sno∧
                                         CX.Cno=SCX.Cno∧CX.Pcno=‘6‘)

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

 [例11]  查询成绩为90分以上的学生名字与课程名字。
     RANGE  SC  SCX
     GET  W(Student.Sname,Course.Cname):
            ?SCX (SCX.Grade≥90 ∧
              SCX.Sno=Student.Sno∧
              Course.Cno=SCX.Cno)

用全称量词的检索

 [例12]  查询不选1号课程的学生名字
          RANGE  SC  SCX
          GET  W (Student.Sname):
         SCX (SCX.Sno≠Student.Sno∨SCX.Cno≠‘1‘)
用存在量词表示:
          RANGE  SC  SCX
          GET  W  (Student.Sname):
   ??SCX (SCX.Sno=Student.Sno∧SCX.Cno=‘1‘)

用两种量词的检索

[例13]  查询选修了全部课程的学生姓名。
          RANGE  Course  CX
                         SC         SCX
          GET  W  (Student.Sname):
   CX ?SCX (SCX.Sno=Student.Sno∧
                SCX.Cno=CX.Cno)

用蕴函(Implication)的检索

 [例14]  查询最少选修了200215122学生所选课程的学生学号
          RANGE  Couse  CX
                           SC     SCX
                           SC     SCY
          GET  W  (Student.Sno):      CX(?SCX
          (SCX.Sno=‘200215122‘∧SCX.Cno=CX.Cno)                                                    ?SCY(SCY.Sno=Student.Sno∧                                                                   SCY.Cno= CX.Cno))

聚集函数

[例15]  查询学生所在系的数目。
         GET  W  ( COUNT(Student.Sdept) )
      COUNT函数在计数时会自动排除重复值。

[例16]  查询信息系学生的平均年龄
              GET  W  (AVG(Student.Sage):
              Student.Sdept=‘IS’  )
时间: 2024-10-13 15:16:26

数据库 - 关系演算的相关文章

2020春季数据库--&gt;关系演算安全性的理解

一.安全关系元组演算表达式 先来看一个例子,{ t | ┐( t ∈ instructor) } ,不在instructor中的元组有无限多个,且大多数这样的元组所包含的值并不在数据库中,故我们通常不希望有这样的表达式. 此时,需要对元组关系演算进行限制,引入元组关系公式P的域(domain),用dom(P)表示P所引用的所有值的集合,既包括P自身用到的值,又包括P中涉及的关系的元组中出现的所有值.P的域是P中显式出现的值及名称出现在P中的关系的所有值的集合.这里给出一个例子,dom(t∈ins

数据库复习9——关系代数和关系演算

数据库复习 CH8 关系代数 8.1 关系代数 关系代数是SQL之外还有一种描写叙述数据库操作的形式化语言,关系变量(表)是关系代数中的基本表达式 关系代数三个重要的形式化定义例如以下: σF(E):E一个表达式(基本表达式或表达式中间结果).F是关于E中属性的断言,相当于where从句中限制条件(Restrict操作) ΠA(E):E一个表达式,A是E属性的子集,相当于select从句(Projection操作) ρX(E):E一个表达式,X是E表达式结果的重命名 8.2 关系代数操作符 (1

数据库学习摘记 —— 关系代数和关系演算

关系数据结构 笛卡儿积:给定一组集合D1,D2,-,Dn,这些集合可以相同, 定义D1,D2,-,Dn 的笛卡尔积为:D1×D2×-×Dn={(d1,d2,-,dn) | di?Di,i=l,2,-,n},其中的每一个元素(d1,d2,-,dn)叫做一个n元组,元素中第i个值di叫做第i个分量. 关系:笛卡尔积D1×D2×-×Dn的任一个子集称为 D1,D2,-,Dn 上的一个关系.关系是元组的集合,亦即实 体的集合. 域:集合 D1,D2,-,Dn是关系中元组的取值范围,称为关系的域.关系中的

关系数据库元组关系演算语言ALPHA

关系演算 :以数理逻辑中的谓词演算为基础 按谓词变元不同分类 1.元组关系演算:以元组变量作为谓词变元的基本对象元组关系演算语言ALPHA2.域关系演算:以域变量作为谓词变元的基本对象域关系演算语言QBE 元组关系演算语言ALPHA (1) 简单检索(即不带条件的检索) 格式: GET 工作空间名 (表达式1) 查询所有被选修的课程号码.GET W (SC.Cno) (2) 限定的检索(即带条件的检索) 格式: GET 工作空间名(表达式1) : 操作条件 查询信息系(IS)中年龄小于20岁的学

数据库的基本常识

数据库第四版答案(王珊 萨师煊)           1 .试述数据.数据库.数据库系统.数据库管理系统的概念. 答: ( l )数据( Data ) :描述事物的符号记录称为数据.数据的种类有数字.文字.图形.图像.声音.正文等.数据与其语义是不可分的.解析在现代计算机系统中数据的概念是广义的.早期的计算机系统主要用于科学计算,处理的数据是整数.实数.浮点数等传统数学中的数据.现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂.数据与其语义是不可分的. 500 这个数字可以表

数据库期中考试题库

数据库期中考试试题 第一部分 选择题 1.要保证数据库的逻辑数据独立性,需要修改的是||A||. A: 模式与外模式之间的映射 B: 模式与内模式之间的映射 C: 模式 D: 三级模式 2.数据库系统的数据独立性体现在||B||. A: 不会因为数据的变化而影响到应用程序 B: 不会因为数据存储结构与数据逻辑结构的变化而影响应用程序 C: 不会因为存储策略的变化而影响存储结构 D: 不会因为某些存储结构的变化而影响其他的存储结构 3.关系数据模型是目前最重要的一种数据模型,它的三个要素分别是||

数据库原理

第一章 数据库系统基本概念 要求.目标: 了解和掌握数据管理技术的发展阶段,数据描述的术语,数据抽象的四个级别,数据库管理系统的功能,数据库系统的组成. 一. 数据管理技术的发展 1. 分为四个阶段:人工管理阶段.文件系统阶段.数据库阶段和高级数据库阶段. 2. 数据库阶段数据管理的特点: 1) 采用数据模型表示复杂的数据结构. 2) 有较高的数据独立性. 3) 数据库系统为用户提供了方便的用户接口. 4) 提供四方面的数据控制功能:数据库的恢复.数据库的并发控制.数据的完整性.数据安全性. 5

全国计算机等级考试 三级数据库精选填空100题

1. 用树型结构表示实体类型及实体间联系的数据模型称为(层次模型). 2. 模式/内模式映象为数据库提供了(物理)数据独立性. 3. 在层次.网状模型中,数据之间联系用(指针)实现. 4. 数据库管理技术的发展经过三个阶段(人工管理阶段),(文件系统阶段),(数据库阶段). 5. 三种主要的数据模型包括(层次模型),(网状模型),(关系模型). 6. 数据模型的三要素包括(数据结构),(数据操作),(数据完整性约束). 7. 由于数据冗余,当进行更新时,稍不谨慎,易引起(数据不一致性). 8. 

数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型

Data base: 长期存储在计算机内,有组织的,可共享的大量数据集合.基本特征:永久存储,可共享,有一定的物理和逻辑结构. Data base manage system(DBMS):用户和os之间的一层数据管理软件. 1.提供数据操纵语言DML对数据库增删改查 2.数据库的建立和维护 3.提供数据控制功能:在数据库建立,运行和维护时,DBMS管理数据的安全性,完整性,并发控制和故障的系统恢复,(也就是数据库的事务管理和运行管理) 4.与其它软件系统通信 Data base system(D