数据库集合运算与关系代数
一:域:具有一组相同类型的数据集合。
D1=姓名集合(NAME)={yang,li}
D2=年龄集合(AGE)={17,18}
二:笛卡尔积:域上定义的一种集合运算,就是将每个域中的元素与其它域中的元素分别去组合,组合得到的笛卡尔积中每一个元素叫做一个元组。如图,是D1和D2的笛卡尔积。
NAME | AGE |
---|---|
yang | 17 |
yang | 18 |
li | 17 |
li | 18 |
三:关系:在笛卡尔积中取出一个子集,可以构成关系。关系中的每个元素是关系中的元组,关系是笛卡尔积的真子集。
在D1XD2中取出来一个关系如下所示,关系才是有意义的。
NAME | AGE |
---|---|
yang | 17 |
li | 18 |
四:键
- 候选键:某个能唯一标识一个元组的属性值或者域称为候选键。
- 主键:从候选键中选出一个键成为主键。
- 全键:所有的属性组或者域是这个元组的候选键,我们叫全键。
- 外键:Y是R关系中的属性组,但不是R关系中的主键,但是是S关系中的主键,此时Y就叫做R关系的外键。
五:数据库的三条完整性规则
(1):实体完整性:若属性A是关系R的主属性,则A不能取空值。
学生(学号,姓名,性别,专业号) 学号为主键,则学号一定不能为空。
(2):参照完整性:回忆外键的定义,若F是关系R的外键,它与关系S主键相对应,对于R中的每个元组在F上的取值,要么等于S中的主键值,要么为空 。
学生(学号,姓名,性别,专业号) 主键:学号 专业(专业号,专业名) 主键:专业号 这里的专业号是学生的外键,它与专业的主键相对应,因此学生专业号就有两种取值,一是其专业对应中的专业号,二是空,表示此学生目前没有被分配专业。
(3):用户定义的完整性:任何数据库都应该支持实体完整性和参照完整性,并且对于不同的应用我们应该加一些别的约束条件。
六:关系代数
1:并,差,交
按照我们普通的集合运算的方式理解就好了。
2:笛卡尔积也是这样的一种操作,m元关系就是有m个域。m元关系和n元关系进行笛卡尔积得到(m+n)元关系。
3:选择:选出在关系R中满足给定条件的诸元组。
4:投影:选出列组成新的关系,会指定选择的列号和集合名称。
5:连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
自然连接:自然连接是特殊的等值连接,它会去掉相同的属性组。
等值连接:条件是从R和S的笛卡尔积中选取A,B属性值相等的元组。
外连接:把应该舍弃的全部保留下来,在其他对应属性上用null。
6:除:对于两个关系R(X,Y)和S(Y,Z),R/S得到的是R在X上满足下面条件的投影,条件是:元素在X分量上x的象集包括S在Y投影上的集合。有关象集的定义在下面:
R:
A | B | C |
---|---|---|
a1 | b1 | c2 |
a2 | b1 | c2 |
a3 | b4 | c6 |
a1 | b2 | c1 |
a4 | b6 | c6 |
a2 | b2 | c1 |
S:
B | C | D |
---|---|---|
b1 | c2 | d1 |
b2 | c1 | d1 |
X的象集是针对R中x的每一个取值而言的:实际上就是对应Y关系上的取值,X关系是A,Y关系是B和C。
a1的象集:(b1,c2)(b2,c1)
a2的象集:(b1,c2)(b2,c1)
a3的象集:(b4,c6)
a4的象集:(b6,c6)
找到了X分量上x的象集,我们继续找S在Y投影上的集和,在S关系中,S在Y关系上(也就是B和C关系上)的投影为:
(b1,c2)(b2,c1)
下面我们只用x的象集和S在Y关系上的投影({(b1,c2)(b2,c1)})进行对比就行了,发现只有a1和a2的象集包含这个投影,也就是R/S= {a1,a2}
现在我们会计算除法了,它到底有什么意义:除的意义在于查询全部,就像我们的a的象集中完全包括S在Y关系上的投影的a的值才能被选出来,它们是完全符合S元素的。
数据库集合运算与关系代数相关推荐
- 【数据库概论】关系代数(传统集合运算和专门关系运算)
一.前言 概念:关系代数是一种抽象的查询语言,它用对关系的运算来表达查询. 关系代数的运算按运算符不同可分为传统的集合运算和专门关系运算两类. 如下图 关系代数中的一些符号 二.集合运算符 传统的集合 ...
- alin的学习之路(数据库篇:三)(多表查询,子查询,集合运算,数据处理)
alin的学习之路(数据库篇:三)(多表查询,子查询,集合运算,数据处理) 1. 多表查询 1.1 笛卡儿积 笛卡尔积就是两个集合的乘积计算 . 如果多个表进行联合查询, 得到结果是一个笛卡尔积, 举 ...
- 数据库的传统集合运算(并、差、交、笛卡尔积)和专门的关系运算(选择、投影、连接、除运算)
转载:https://blog.csdn.net/zgcr654321/article/details/82077809 正文如下: 各种运算符如下: 数据库中每行就是一个元组,每列就是一个属性. 数 ...
- Oracle数据库之集合运算
集合运算符 集合运算符查询组合两个组件查询的结果到一个结果,包含集合运算符的查询称为复合查询.SQL集合运算符如下: 集合运算符 UNION:All distinct rows selected by ...
- 关系代数:集合运算和关系运算部分详解
小插曲:小编在学习计算机二级的时候,苦于关系代数的关系运算理解,在网上百度很多的资源,大都是概念,而且是文本形式呈现的.个人喜好图文形式的理解,因此将做的比较好的ppt做成帖子供大家参考,如有错误,请 ...
- mysql关系运算_数据库关系运算
前言 前面已经说了数据系统的概述了,关系模型是目前用得最多的数据模型,其中一个优点就是:有严格的数学理论根据.本文就是来讲解数据库中的各种关系运算的!本文不做数学概念的深入,只要理解相关的概念即可! ...
- 【数据库】测试题二 关系代数
测试题二 关系代数 问题 1 得 2 分,满分 2 分 对关系R进行投影运算后,得到关系S,则( ). 所选答案: C. 关系R的元组数大于或等于关系S的元组数 答案: A. 关系R的 ...
- 5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算
1 Oracle基于用户的管理方案 2 DDL语句可以管理数据库的对象有:视图 索引 序列 同义词 约束 3 创建一个表,有2个条件(1 有权限:2有表空间) Oracle给你提 ...
- Task04:集合运算-表的加减法和join等-天池龙珠计划SQL训练营
4.1表的加减法 4.1.1 什么是集合运算 集合在数学领域表示"各种各样的事物的总和", 在数据库领域表示记录的集合. 具体来说,表.视图和查询的执行结果都是记录的集合, 其中的 ...
最新文章
- 11g新特性:X$DBGALERTEXT一个很酷的内部视图
- Multithreading in Java
- HTMLCanvasElement.toDataURL()
- 一个面试官对JVM面试问题的分析
- Linux mount 修改文件系统的读写属性
- linux命令date的功能,Linux 命令date
- javascript框架比较(一)
- Laravel 中使用事务
- 递推+高精度——蜜蜂路线(洛谷 P2437)
- Abp框架默认表中如何添加字段
- 再倒入项目的时候,为什么要转为maven项目?
- Nginx 学习笔记(十)介绍HTTP / 2服务器推送(译)
- AJAX问题:如果SESSION丢失,会直接报错。
- lomboz连接mysql数据库_Lomboz如何配置Tomcat数据库连接池
- texi2html 安装,texi2html 源码编译
- 计算机开不了机怎么用u盘解决,电脑开不了机怎么重装系统实测操作
- iOS开发人员必看的精品资料(100个)——下载目录
- Cerebral Cortex:基因和环境对大脑功能连接的影响
- matlab中将数据保存为txt文件_matlab中将数据输出保存为txt格式文件的方式
- pta——出生年,查验身份证(c语言)
热门文章
- 旷野徒奔-Java底层篇(1.4)
- 拼出爱心图案的c语言,抖音用猪头云朵和爱心微信表情拼成的表白图的口诀表...
- 2017秋招第一面--阿里巴巴
- Windows更新策略配置
- 春运火车票开抢,最强攻略请注意查收
- 2022已加载100%,请查收!
- 误删除Linux下/etc/shadow文件,linux修改密码出现Authentication token manipulation error的解决办法
- 计算机组成原理--计算机的运算方法
- 转型经验分享|我为什么放弃做VC投资,去做自媒体?
- 功率器件-功率晶体管 GTR