数据库复习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)基本算符

F断言中能够有逻辑运算符(与或非:∧、∨、?)以及关系运算符(=,>,<,≥,≤,≠)

有集合运算符(并、交、差、笛卡尔乘积):∪,∩,?,×

左箭头←为赋值操作

(2)Join操作

定义关系模式R(A,B,C,D)和S(E,B,D)的实例r、s的自然连接为:

r?s=Πr.A,r.B,r.C,r.D,s.E(ρr.B=s.B∧r.D=s.D(r×s))

(3)除操作

定义关系模式R(A1,...,Am,B1,...,Bn)和S(B1,...,Bn)的实例r、s的除法结果(商)为:

R?S={A1,...,Am}r÷s={t|t∈ΠR?S(r)∧?u∈s(tu∈r)}

用全然的关系代数表示为:

r÷s=ΠR?S(r)?ΠR?S(ΠR?S(r)×s?ΠR?S,S(r))

(4)聚合操作

聚合函数定义如SQL。包含了avg、min、max、sum、count等,形式化的关系代数聚合操作为:

G1,G2,...,GngF1(A1),...,Fm(Am)(E)

当中G1,G2,...,Gn是能够为空的group by。Fi是作用在属性Ai上的聚合函数

8.3 关系代数数据库改动

(1)删除

删除操作的形式化定义为r←r?E,当中r是关系实例,E是关系代数查询表达式

(2)插入

插入操作的形式化定义为r←r∪E,当中r是关系实例,E是关系代数查询表达式或者常量元组集合

(3)更新

更新用Projection操作赋值给关系变量就可以


CH9 关系演算

9.1 关系演算

关系演算是SQL、关系代数之外的又一种描写叙述数据库操作的形式化语言,关系演算基本操作对象是范围变量(Range Variable,是关系变量/表的逻辑表达的别称)

关系演算基本的语法为:

1.范围变量定义
<Range var definition>::=
RANGEVAR <range var name> RANGES OVER <relational exp commlist>

2.范围属性定义
<range attr reference>::=
<range var name>.<attr reference> [ AS <atrr name> ]

3.布尔表达式
<boolean exp>::= ... all the usual possibilities, together with: | <quantified boolean exp>

4.量化布尔表达式(存在和全部)
<quantified boolean exp>::=
EXISTS <range var name>(<boolean exp>)|
FORALL <range var name>(boolean exp>)

5.关系操作
<relational operation>::= <proto tuple>[WHERE <boolean exp>]

6.元组表达式
<proto tuple> ::= <tuple exp>

须要特别注意的是量化布尔表达式

  • EXISTS v(P(v))仅仅要有一个P(v)为真,即为真
  • FORALL v(P(v))须要全部P(v)为真,才为真
  • FORALL v(P(v))等价于NOT EXISTS v(NOT P(v))

9.2 元组演算

关系演算中元组演算就是对元组的操作。简单的元组演算和SQL十分类似:

// Find supplier numbers and status for suppliers in Paris with status >20

// Define a range variable
RANGEVAR sx RANGES OVER S;

// Where clause implement Restriction&Projection
(sx.s#, sx.status) WHERE sx.city=‘paris‘ AND sx.status>20

较为复杂的元组演算引入量化布尔表达式:

// Find supplier names for suppliers who supply all parts.

sx.sname WHERE FORALL px(EXISTS spx(spx.s# = sx.s# AND spx.p# = px.p#))

9.3 其它操作

关系演算其它操作,如聚合函数、集合操作等都和SQL较为类似,略

时间: 2024-09-29 22:24:11

数据库复习9——关系代数和关系演算的相关文章

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

关系数据结构 笛卡儿积:给定一组集合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是关系中元组的取值范围,称为关系的域.关系中的

数据库复习11——关系模式与范式

数据库复习 CH11 关系模式与范式 11.1 关系模式的设计 数据库模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,关系型数据库的模式又叫关系模式,我所理解的关系模式就是数据库中表结构的定义以及多张表之间的逻辑联系 关系模式的设计就是根据一个具体的应用,把现实世界中的关系用表的形式来表示的逻辑设计过程,不规范的关系模式设计会带来以下的问题: 数据冗余 更新异常 插入异常 删除异常 举ppt中例子说明四种问题,如下表中描述了老师信息(一个老师一个地址,可以教多门课,一门课只有一名老

数据库复习5——安全性

数据库复习 CH7 安全性 7.1 数据库安全性介绍 如果说完整性是针对授权用户的数据库保护措施,那么安全性就是针对非授权用户的数据库保护措施 安全性问题涉及的层面很多,非法用户可以从以下各层面对数据库的窃取或篡改: 层面 窃取或篡改行为 应对措施 数据库系统 获取高级用户数据库权限 身份验证,权限和可获取数据对等 操作系统 获取操作系统root权限想干啥就能干啥,不仅仅限于对数据库的操作了 提升操作系统安全级别 网络 通过网络窃听和身份伪装也能窃取线上机密数据 身份验证和加密传输 物理 物理上

数据库复习6——事务

数据库复习 CH13 事务 13.1 事务的概念 事务是作为单个逻辑工作单元执行的一系列数据库操作,这些操作可能会修改多个表中的多个元组 事务正常执行的结构是: begin; SQL execution 1 SQL execution 2 ... SQL execution N commit; begin标志开始一个事务,多个SQL语句就是事务逻辑工作单元,commit(提交)是结束当前事务并提交事务内数据变更,让其生效 数据库一致性在事务上表现的比较特殊,具体来说:事务执行的过程中可以让数据库

数据库复习4——视图

数据库复习 CH6 视图 6.1 视图的概念 视图是从一个或多个表(或视图)导出的虚表,DBMS仅在数据字典中存放视图的定义,而视图的数据仍然实际存储于导出它的基表中 Tutorial D中定义视图的基本语句如下: VAR <view_name> VIEW (<relational_condition>) {<property_list>}; 那么视图有什么作用呢? 为hidden data提供安全性,即屏蔽某些不希望外界用户看到的机密数据 提供一种简写的方式,有了视图

数据库复习1——数据库体系结构和关系系统

数据库复习 CH2 数据库体系结构 2.1 数据库体系结构层次 数据库体系结构可以分成3个层次: 外部层次 概念层次 内部层次 外部层次是指每个用户用不同的高级语言来访问数据库所面对的接口,概念层次数据库信息的表示以及模的式定义(包括安全性和完整性约束等等),而内部层次就是的存储表示(非物理记录也非机器相关),数据库的设计需要保证这三个层次之间的独立性: 概念层和内部层之间物理数据的独立性 外部层和概念层之间逻辑数据的独立性 2.2 DBA和DBMS DBA(数据库管理员)必须很好的了解企业的数

数据库复习2——SQL基础

数据库复习 CH4 SQL SQL(Structured Query Language,结构化查询语言)是通用的关系数据库系统操作语言,下面从几个方面来复习SQL基础 4.1 DDL SQL语句可根据其操作性质分成三类: DDL(Data Definition Language) DCL(Data Constraint Language) DML(Data Manipulation Language) DCL完成完整性和安全性的约束,也可以看作从属于DDL,下面介绍DCL除外的DDL部分SQL语

数据库复习3——数据库完整性

数据库复习 CH5 完整性 5.1 完整性约束 数据库完整性是指数据库中数据在逻辑上的一致性.正确性.有效性和相容性,那么完整性约束就是指用户插入.修改和删除操作时,DBMS为了保证数据库逻辑上的一致性.正确性.有效性和相容性所必需要检查的约束条件 C.J.Date在<An Introduction to Database Systems>一书中描述了四种完整性约束: 类型约束 属性约束 关系变量约束 数据库约束 C.J.Date提出的理论多半是建立在他自创的Tutorial D这个概念型数据

数据库复习7——恢复

数据库复习 CH14 恢复 13.1 恢复的概念 数据库系统中恢复是指让数据库从发生某些"失败"后的不一致的状态恢复到正常的一致状态的行为,恢复的基础是冗余(物理上冗余,非逻辑上) 这些失败包括了: 事务失败:包括逻辑错误(事务不满足某些条件不能执行)和系统错误(DBMS强制终止事务,如事务发生死锁) 系统崩溃:断电.物理硬件损坏.软件系统(如OS)崩溃,本章假设系统崩溃不会改变非易失存储器 磁盘失败:磁盘存储发生错误,本章假设可利用检查和监测磁盘失败 大体上,恢复策略分成两个步骤: