数据库系统原理:除法运算

yumo6663个月前 (04-05)技术文章41

关系代数是实现关系操作的基本表示方法,关系代数运算按运符的不同分为传统的集合运算和专门的关系运算。专门的关系运算包括投影、选择、连接和除法运算,最后学习的运算是除法运算。

一、除法运算的定义

给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。

R与S的除运算得到一个新的关系P(X)

P是R中满足下列条件的元组在X属性列上的投影:

R中元组在X上分量值x的象集Yx包含S在Y上投影的集合,

象集:

给定一个关系R(X,Y),X和Y为属性组。定义,当t[X]=x时,x在R中的象集为:

它表示R中属性组X上值为x的诸元组在Y上各分量的集合。

如下图所示,除法运算具体实例:R是选课关系,S是课程关系,a、b、c、d四个属性分别是学号、姓名、课程号、课程名,C、D就是课程号、课程名。

如果事先不知道课程表中的数据和选课表中的数据有哪些课、有哪些选课记录,那么,R÷S的结果是选了全部课程的学生的学号和姓名。

除法运算适合表达全部的问题。

二、除法运算的实现

除法运算是组合运算,可以用其它基本关系运算实现。R÷S还可表示为

求R:S的操作步骤如下:

如下图所示将除法运算分解:

第一步:关系R做第一列到第r-s列的投影,取中间结果赋值为T;

第二步:用关系T和S做笛卡尔积,再减去关系R,得到的结果为W;

第三步:对W做第一列到第r-s列的投影,结果赋值为V;

第四步:R÷S的结果就为T-V的结果,即最终结果。

RXY)能被SY,Z)除的充分必要条件:

(1)R中包含S中的部分属性(R与S中的属性可以不同名,但必须有相同的值域);

(2)R中有一些属性不出现在S中。

例题:已知集合R和集合S,求R÷S的结果。

第一步:对于关系R做投影,对前两列的投影,它的结果是将前两列投影出来;

第二步:然后和S做笛卡尔积,其结果再减去关系R,也就是说,对A、B的投影跟C、D做一个笛卡尔积,再把R减去,得出的b、c、c、d数据就是W是值;

第三步:再对W做A、B这两列的投影,结果就是b、c,也就是V的结果;

第四步:最后再把b、c减去,得出的结果就是a、b、e、d。

相关文章

数据库系统原理:数据独立性

数据库系统的三级模式和两级映像使数据具有独立性。数据库系统三个抽象级间通过两级映像进行相互转换,使得数据库的三级模式形成一个统一整体,从而保证了数据的独立性。数据独立性是指应用程序与数据间相互独立,不...

数据库的存储原理

1. 数据存取在数据库管理系统中,数据的存取过程为:应用程序通过 DML 向 DBMS 发出存取请求,如 SELECT 语句;对命令进行语法检查,正确后检查语义和用户权限(通过数据字典 DD),并决定...

DeepSeek本地RAG知识库(17):向量数据库原理讲解(小白也能懂)

大家好!我是程序员寒山。近日很多小伙伴问,为什么要用向量数据库?它到底是怎么存储数据的?今天就给大家揭秘一下向量数据库,看看它有什么神奇的地方?一、什么是向量数据?——菜谱变"坐标"说向量数据库前,首...

数据库系统原理:外键约束

关系数据库中最重要的约束是实体完整性和参照完整性。在SQL中,参照完整性称为外键约束。学习SQL中参照完整性的实现方法。一、参照完整性定义外键约束指参照完整性检查。根据参照完整性规则,依赖关系中外键或...

数据库系统原理:聚集函数

SQL命令包括数据定义、查询、操纵和控制四大类,其中数据查询是数据库的核心操作。学习在SQL数据查询中使用聚集函数的方法。一、五种聚集函数介绍聚集函数(集合函数)→垂直方向(一个值):主要用法是在垂直...

数据库加密技术原理与实践

1、数据库加密概述数据库加密是指对存储在数据库中的敏感数据进行编码处理的过程,目的是防止未经授权的访问和数据泄露。加密后的数据即使被未授权的第三方获取,也无法理解其原始含义,从而保护数据的机密性数据库...