二目关系属于4nf_数据库关系模型之关系代数

0d45cf4406a978c183c4769e27011f05.png

MySQL基础-关系代数

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。 任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的结果。所以运算对象、运算符、运算结果是运算的三大要素。 按运算符的不同分为传统的集合运算和专门的关系运算两类: 传统的集合运算包括:并(∪)、差(−)、交(∩)、笛卡尔积(×)。  专门的关系运算包括:选择(σ)、投影(π)、连接(⋈)、除运算(÷)。

关系集合R和关系集合S

73b3227377cb01b949f23daee98c54dc.png
044aa14efa65a4ccd98a340c0a76b135.png

MySQL基础-传统的集合运算

 传统的集合运算是二目运算,并(∪)、差(−)、交(∩)、笛卡尔积(×)四种运算。 设关系 R 和关系 S 具有相同的目 n(即两个关系都有 n 个属性),且相应的的属性取自同一个域,t 是元组变量,t∈R 表示 t 是 R 的一个元组。

并运算

关系 R 与关系 S 的并由属于 R 或属于 S 的元组组成。其结果关系仍为 n 目关系R ∪ S = { t | t ∈ R ∨ t ∈ S }select * from `r` union select * from `s`;
d7cd27e652e6f8711c41d551a42d6b6c.png

交运算

关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系R ∩ S = { t | t ∈ R ∧ t ∈ S }select * from `r` intersect select * from `s`MySQL版本不支持以上SQL,则用下面替代select * from `r` where name in (select name from `s`)
d2f9e4a2c29fc81d0aa0b46bda8d64b3.png

差运算

关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系R-S = { t | t ∈ R ∧ t /∈ S }select * from `r` except select * from `s`MySQL版本不支持以上SQL,则用下面替代select * from `r` where name not in (select name from `s`)
900f74ce63cfea3f211b12bb8f138d43.png

笛卡尔积

两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组R × S = { tr ts | tr ∈ R ∧ ts ∈ S }select * from r,s或select * from r inner join s
423cec485646fd0ce455650f4ea0bccb.png

MySQL基础-专门的关系运算

专门的关系运算包括选择、投影、连接、除等

投影

是从R中选择出若干属性列组成新的关系 π A (R )= { t [A ] | t ∈ R }π1,2(R)或者πno,name(R)关系R上的投影是从R中选择出若干属性列组成新的关系select name,password from r
6cce10f6e5aee6e98013624c68bdcbf0.png

选择

是在关系R中选择满足给定条件的诸元组б F (R )= { t | t ∈ R ∧ F(t ) = '条件' }б 1=1(R)或者no=1(R)select * from r where id=2
5e2c882d6f0496aa0d3441d37ae114fb.png

连接

是从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组形成一个新的连接R ⋈ Sselect * from r,s where r.id=s.id
53daa1581c0cdcf3a0e02525c2513e21.png
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页