2.3 关系代数

关系代数是关系型数据库查询的核心,它基于集合运算,包括查询、插入、删除和修改等操作。关系的查询主要是通过关系代数来实现,运算包括传统的集合运算如并、交、差和笛卡尔积,以及选择、投影、连接和除等专门的关系运算。关系是笛卡尔积的有限子集,每个关系都有一个名字和特定的目。通过对这些运算符的组合使用,可以构造出复杂的数据库查询表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关系代数

关系型数据库是基于集合的数据库,数据库中的关系均为集合,所有针对关系的操作都是针对集合的操作,操作对象和操作结果都是关系,即若干元组的集合。关系模型中常用的关系操作包括查询(Query)、插入(Insert)、删除(Delete)、修改(Update)。其中,关系的查询表达能力很强,是关系操作中最主要的部分。关系的运算在符合集合运算规则的基础上围绕数据的查询展开,也就是进行数据的查询。把对关系的运算称为关系代数,通过关系代数对关系进行抽象的查询操作。

与所有的运算相一致,关系的运算也由运算数、运算符和运算结果构成。运算数和运算结果都为集合,运算符是针对集合的运算符。根据运算符的不同,关系代数可以分成传统的集合运算和专门的关系运算。

域是一组具有相同数据类型的值的集合。

笛卡尔积

设D1,D2,…,Dn为任意集合,定义笛卡尔积为:
D1×D2×…×Dn = {(d1,d2,…,dn) | di∈Di,i=1,2,…,n }

其中每一个元素(d1,d2,…,dn)称为一个n元组,简称元组。元组中每一个di称为是一个分量。

若Di(i=1,2,……,n)为有限集,其基数mi(i=1,2,……,n),则D1×D2×……×Dn的基数为:M=∏i=1nmi\displaystyle M=\prod_{i=1}^{n}m_iM=i=1nmi

笛卡儿乘积示例
设:
D1={计算机软件专业,信息科学专业}
D2={张珊,李海,王宏}
D3={男,女}
则D1×D2×D3笛卡尔积为:

D1×D2×D3={(计算机软件专业,张珊,男),(计算机软件专业,张珊,女),(计算机软件专业,李海,男),(计算机软件专业,李海,女),(计算机软件专业,王宏,男),(计算机软件专业,王宏,女),(信息科学专业,张珊,男),(信息科学专业,张珊,女),(信息科学专业,李海,男),(信息科学专业,李海,女),(信息科学专业,王宏,男),(信息科学专业,王宏,女)}

笛卡尔积实际上就是一个二维表

关系
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)

这里 R 表示关系的名字,n 是关系的目或度(Degree);

当 n=1 时,称该关系为单目关系(Unary relation);

当 n=2 时,称该关系为二目关系(Binary relation)。

关系是笛卡儿积的有限子集,所以关系也是一个二维表。

关系代数中使用的运算符包括 4 类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符。

传统的集合运算符:传统的集合运算是二目运算,

  • 并运算(∪)(Union)
  • 交运算(∩)(Intersection)
  • 差运算(-)(Difference)
  • 广义笛卡尔积(×)(Cartesian Product)

专门的关系运算符:

(1)选择(Selection)

(2)投影(Projection)

(3)连接(Join)

(4)除 (Division)

逻辑运算符:(与、或、非:∧、∨、¬)

比较运算(关系运算)符:(=,>,<,≥,≤,≠)

左箭头←为赋值操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值