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

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

按谓词变元不同分类

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

时间: 2024-10-12 10:54:08

关系数据库元组关系演算语言ALPHA的相关文章

关系数据库域关系演算语言QBE

QBE: Query By Example? 基于屏幕表格的查询语言? 查询要求:以填写表格的方式构造查询? 用示例元素(域变量)来表示查询结果可能的情况? 查询结果:以表格形式显示 QBE操作框架 构造查询的几个要素 示例元素: 即域变量, 一定要加下划线 示例元素是这个域中可能的一个值, 它不必是查询结果中的元素 打印操作符P.: 指定查询结果所含属性列 查询条件: 不用加下划线 可使用比较运算符>, ≥,<, ≤,=和≠  其中=可以省略 排序要求 条件查询 常用集函数: 函 数 名 功

DBMS-形式化关系查询语言:关系代数、元组关系演算、域关系演算

关系代数 关系代数(relational algebra):一种过程化查询语言.包括一个运算的集合,集合中运算以一个或两个关系为输入,产生一个新的关系作为结果. 关系代数的基本运算包括:选择.投影.并.集合差.笛卡尔积.更名. 其他运算:集合交.自然连接.赋值,可用基本运算来定义. 关系运算的结果自身也是一个关系,可用一个关系运算表达式作为另一个关系运算的参数,因此可以把多个关系代数运算组合成一个关系代数表达式(relational-algebra expression). 关系代数定义了一套在

数据库 - 关系演算

关系演算 以数理逻辑中的谓词演算为基础 按谓词变元不同 进行分类 1.元组关系演算: 以元组变量作为谓词变元的基本对象 元组关系演算语言ALPHA 2.域关系演算: 以域变量作为谓词变元的基本对象 域关系演算语言QBE 由E.F.Codd提出 INGRES所用的QUEL语言是参照ALPHA语言研制的 语句 检索语句 GET 更新语句 PUT,HOLD,UPDATE,DELETE,DROP 检索操作 语句格式: GET 工作空间名 [(定额)](表达式1) [:操作条件] [DOWN/UP 表达式

关系数据库(ch.2)

2.1.1 关系 域 笛卡儿积 关系 candiate key 如果一组属性值可以唯一的标识一个元祖,但是他的子集不行,那么这是一个候选码 关系可以由三种类型 基本关系 查询关系 视图 为关系附加如下两条定义 无限关系是无意义的, 通过为关系附加一个属性名的方式取消 关系的有序性 基本关系有如下6条性质 列是同质的 不同的列可以取自同一个域 行的顺序无所谓 任意两个元祖的候选码不可以相同 分量必须是原子化的 2.1.2 关系模式 关系模式可以形式化的表现为 R(U,D,ROM,F) U 是 组成

名校计算机科学与技术专业培养方案

PS:清华大学计算机科学与技术专业本科生培养方案 计算机科学与技术(0812) 一.研究方向 1.通信软件工程 2.网络技术与应用 3.分布计算理论与技术 4.信息安全与多媒体技术 二.课程设置 类别 课程编号 课程名称 学时 学分 学期 学位课 公共必修课 512.8*704 自然辩证法概论 54 2 秋 521.8*300 科学社会主义理论与实践 36 1 春 534.8*445 英语 144 4 秋/春 基础理论课(至少选1门) 813.8*279 近世代数及其应用 54 3 秋 513.

DataBaseSystem:Relational Data Structure

本篇内容来自<数据库系统概论(第五版)>(王珊 萨师煊),主要是整理数据库的基本概念,供自己复习查阅. 关系数据库 关系数据库就是基于关系模型的数据库系统.关系模型包含三部分:关系数据结构.关系操作集合.关系完整性约束. 关系数据结构 关系数据结构只包含一种数据结构--关系,从逻辑结构上看,关系就是一张二维表.前面提到,关系模型是基于严格的数学概念形成的数据模型,而关系的基础就是集合论.故需要从集合论角度理解关系数据结构的形式化定义. 域(domain) 域是一组具有相同数据类型的值的集合.如

关系数据库

本节要点: 关系数据结构 关系 关系模式 关系数据库 关系操作 关系的完整性约束 关系数据库系统是支持关系模型的数据库系统,关系数据库应用数学方法来处理数据库中的数据.按照数据模型的3个要素,关系模型由关系数据结构.关系操作集合和关系完整性约束3个部分组成. 1          关系数据结构 1.1          关系 关系模型是建立在集合代数的基础上的,这里从集合论角度给出关系数据结构的形式化定义. 1)         域(Domain) 域是一组具有相同数据类型的值的集合.例:整数.

数据库 - 关系数据库

关系数据库 提出关系模型的是美国IBM公司的E.F.Codd (Edgar Frank Codd,1923-2003) , "关系数据库之父" 1970年提出关系数据模型 E.F.Codd, "A Relational Model of Data for Large Shared Data Banks", <Communication of the ACM>,1970 E.F.Codd 1923年出生在英格兰多塞特郡波特兰市的一个大家庭中.他曾经就读于牛

关系数据库的部分问答

1 .试述关系模型的三个组成部分.答:关系模型由关系数据结构.关系操作集合和关系完整性约束三部分组成. 2 .试述关系数据语言的特点和分类. 答:关系数据语言可以分为三类: 关系代数语言. 关系演算语言:元组关系演算语言和域关系演算语言. SQL:具有关系代数和关系演算双重特点的语言. 这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用. 3.试述关系模型的完整性规则.在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空