Chapter Two-The Relational Model
- 文章目录
- Chapter Two-The Relational Model
- 1. CAP数据库
- 2. Relational Algebra
- 2.1 集合运算(Set Theoretic Operations)
- 2.1.1 交(intersection:)
- 2.1.2 并(union:)
- 2.1.3 差(difference:)
- 2.1.4 笛卡尔积(production:)
- 2.2 专门的关系运算(Native Special Operations)
- 2.2.1 投影(projection:R[] | )
- 2.2.2 选择(select:where | )
- 2.2.3 连接(join: JOIN | )
- 2.2.3.1 自然连接
- 2.2.3.2 等值连接
- 2.2.4 除(division:DIVIDEBY | )
- 3. Key
1. CAP数据库
2. Relational Algebra
2.1 集合运算(Set Theoretic Operations)
传统的集合运算是二目运算,其中包括:交(intersection:)、并(union:)、差(difference:)、笛卡尔积(production:)
下面定义两个表格,以便后续举例展示:
- R
A | B | C |
a1 | b1 | c1 |
a1 | b2 | c2 |
a2 | b2 | c1 |
- S
A | B | C |
a1 | b2 | c2 |
a1 | b3 | c2 |
a2 | b2 | c1 |
2.1.1 交(intersection:)
则R和S的交为:
A | B | C |
a1 | b2 | c2 |
a2 | b2 | c1 |
2.1.2 并(union:)
则R和S的并为:
A | B | C |
a1 | b1 | c1 |
a1 | b2 | c2 |
a1 | b3 | c2 |
a2 | b2 | c1 |
2.1.3 差(difference:)
则R和S的差为:
A | B | C |
a1 | b1 | c1 |
2.1.4 笛卡尔积(production:)
则R和S的笛卡尔积为:
R.a | R.b | R.c | S.a | S.b | S.c |
a1 | b1 | c1 | a1 | b2 | c2 |
a1 | b1 | c1 | a1 | b3 | c2 |
a1 | b1 | c1 | a2 | b2 | c1 |
a1 | b2 | c2 | a1 | b2 | c2 |
a1 | b2 | c2 | a1 | b3 | c2 |
a1 | b2 | c2 | a2 | b2 | c1 |
a2 | b2 | c1 | a1 | b2 | c2 |
a2 | b2 | c1 | a1 | b3 | c2 |
a2 | b2 | c1 | a2 | b2 | c1 |
2.2 专门的关系运算(Native Special Operations)
专门的关系运算包括:投影(projection:R[] | )、选择(select:where | )、连接(join: JOIN | )、除(division:DIVIDEBY | )
2.2.1 投影(projection:R[] | )
显示表的某个具体属性。
如:select CUSTOMER.cname from CUSTOMER;
2.2.2 选择(select:where | )
选择某个表中符合条件的元组构成新的结果表。
select * from ORDERS where dollars>10000;
2.2.3 连接(join: JOIN | )
- 自然连接一定是等值连接,但等值连接不一定是自然连接;
- 等值连接要求分量相等,不一定是公共属性;而自然连接要求相等的分量必须是公共属性(相容);
- 自然连接要求两个关系中进行比较的分量须是相同的属性组,且连接结果中要去掉重复的属性列;
2.2.3.1 自然连接
R和S的共同属性列相等的元组拼接。
eg:
先定义两个表:
:
ABCa1b1c1a1b2c2a2b1c2a3b2c3
:
BCDb1c1d1b2c2d2b1c1d3
则为:
ABCDa1b1c1d1a1b1c1d3a1b2c2d2
2.2.3.2 等值连接
选择两个表的某个属性做为评判标准。
eg:
则规定T.B=F.B的为:
AT.BT.CF.BF.CDa1b1c1b1c1d1a1b1c1b1c1d3a1b2c2b2c2d2a2b1c2b1c1d1a2b1c2b1c1d3a3b2c3b2c2d2
2.2.4 除(division:DIVIDEBY | )
通俗的讲,除法就是若R表某项的象集包含S表的所有象集,那么该项则为除法的结果。
这么讲你可能不太明白,我们来举个栗子:
先定义两个表:
:
ABCa1b1c1a1b2c2a2b1c2a3b2c3
:
BCDb1c1d1b2c2d2b1c1d3
如图所示,T表和F表的相同属性为B和C,则a1、a2、a3的象集分别为:
:
BCb1c1b2c2
:
BCb1c2
:
BCb2c3
F表的象集如下:
:
BCb1c1b2c2
如上述四个表格可以看出:只有表完全包含了表,即。
3. Key
3.1 Super Key
超键是任何一个可以唯一标识元组的属性集。
3.2 Candidate Key
候选键是超键的子集,不过不包含多余的元素(去除该元素后依旧可以唯一标识元组)。
3.3 Primary Key
主键是候选键其中一个,主键不为空。