在关系数据库中选择操作是在什么视角进行的
发布网友
发布时间:2022-12-30 00:24
我来回答
共1个回答
热心网友
时间:2023-10-28 10:28
众所周知,关系数据库常见的关系操作有:查询,插入,删除,修改这四种操作,而这四种操作有可以分为两大类
数据查询:选择,投影,连接,除,并,交,差,笛卡儿积
数据更新:插入,删除,修改
在查询操作中,选择,投影,并,差,笛卡儿积是5种基本操作,其他操作可以由这几种操作导出,就比如乘法可以用加法来定义和导出一样。
在详细讲述之前,我要着重说明的是,关系模型的操作具有一个非常鲜明的特点,即它操作的对象和结果都是集合,而不像层次模型和网状模型操作的对象和结果都是一次一条记录。
下面我们来讲一下数据查询下面的一些关系运算。
传统的集合运算
1、 并(union) A并B = 在A中或者在B中
2、 差(except) A-B=在A中而不再B中
3、 交(intersection) A交B = 既在A中又在B中
4、 笛卡尔积
这里的笛卡尔积是广义的笛卡尔积,操作的基本单位为一个元组。
所谓笛卡尔积其实就是一个全排列,所有元组各种方式的组合。
专门的关系运算
专门的关系运算包括:选择、投影、连接、除运算
1、 选择(selection)
选择又称为*(restriction),它是在关系R中选择满足给定条件的诸元组。
它里面可以出现一些逻辑表达式,逻辑表达式形如:
A x B
登录后复制
这个x不是乘号,它在这里表示比较运算符,比如>,<,=等等,A和B在这里要么是常量,要么是一个属性名,亦或是简单函数。
同时多个逻辑表达式之间可以用逻辑运算符连接,比如:交、并、非
2、 投影(projection)
投影就是从一个表中选择若干属性列组成一个新的关系
比如:
学生(学号,姓名)
登录后复制
可以将它的学号投影出来,即
投影名(学号)
登录后复制
3、 连接(join)
连接是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
根据连接所选取的条件的不同,可以将连接细分成一些比较特殊的连接情况。
举个例子:假如下面的连接都是表A和表B的连接
等值连接(inner join): 选取的条件为A中某元素 = B中某元素。总之这个条件使用的比较运算符为“=”
自然连接:自然连接是一种特殊的等值连接,它要求A中和B中“=”的两边必须是同名的属性组,并且在结果中把重复的属性列去掉。
关于自然连接,又出现了几个概念:
悬浮元组:在进行自然连接的时候,有的元组