首页 > 数据库 >【数据库原理、编程与性能】The Relational Model

【数据库原理、编程与性能】The Relational Model

时间:2023-06-20 15:06:25浏览次数:37  
标签:运算 编程 2.2 Relational Model 连接 select 属性


Chapter Two-The Relational Model


  • 文章目录
  • Chapter Two-The Relational Model
  • 1. CAP数据库
  • 2. Relational Algebra
  • 2.1 集合运算(Set Theoretic Operations)
  • 2.1.1 交(intersection:【数据库原理、编程与性能】The Relational Model_等值连接
  • 2.1.2 并(union:【数据库原理、编程与性能】The Relational Model_等值连接_02
  • 2.1.3 差(difference:【数据库原理、编程与性能】The Relational Model_等值连接_03
  • 2.1.4 笛卡尔积(production:【数据库原理、编程与性能】The Relational Model_等值连接_04
  • 2.2 专门的关系运算(Native Special Operations)
  • 2.2.1 投影(projection:R[] | 【数据库原理、编程与性能】The Relational Model_d3_05
  • 2.2.2 选择(select:where | 【数据库原理、编程与性能】The Relational Model_d3_06
  • 2.2.3 连接(join: JOIN | 【数据库原理、编程与性能】The Relational Model_d3_07
  • 2.2.3.1 自然连接
  • 2.2.3.2 等值连接
  • 2.2.4 除(division:DIVIDEBY | 【数据库原理、编程与性能】The Relational Model_等值连接_08
  • 3. Key


1. CAP数据库

【数据库原理、编程与性能】The Relational Model_等值连接_09

2. Relational Algebra

2.1 集合运算(Set Theoretic Operations)

传统的集合运算是二目运算,其中包括:交(intersection:【数据库原理、编程与性能】The Relational Model_等值连接_10)、并(union:【数据库原理、编程与性能】The Relational Model_d3_11)、差(difference:【数据库原理、编程与性能】The Relational Model_d3_12)、笛卡尔积(production:【数据库原理、编程与性能】The Relational Model_d3_13

下面定义两个表格,以便后续举例展示:

  • 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:【数据库原理、编程与性能】The Relational Model_d3_14

【数据库原理、编程与性能】The Relational Model_集合运算_15

则R和S的交为:

A

B

C

a1

b2

c2

a2

b2

c1

2.1.2 并(union:【数据库原理、编程与性能】The Relational Model_集合运算_16

【数据库原理、编程与性能】The Relational Model_等值连接_17

则R和S的并为:

A

B

C

a1

b1

c1

a1

b2

c2

a1

b3

c2

a2

b2

c1

2.1.3 差(difference:【数据库原理、编程与性能】The Relational Model_等值连接_18

【数据库原理、编程与性能】The Relational Model_等值连接_19

则R和S的差为:

A

B

C

a1

b1

c1

2.1.4 笛卡尔积(production:【数据库原理、编程与性能】The Relational Model_集合运算_20

【数据库原理、编程与性能】The Relational Model_d3_21

则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[] | 【数据库原理、编程与性能】The Relational Model_d3_22)、选择(select:where | 【数据库原理、编程与性能】The Relational Model_d3_23)、连接(join: JOIN | 【数据库原理、编程与性能】The Relational Model_d3_24)、除(division:DIVIDEBY | 【数据库原理、编程与性能】The Relational Model_等值连接_25

2.2.1 投影(projection:R[] | 【数据库原理、编程与性能】The Relational Model_等值连接_26

【数据库原理、编程与性能】The Relational Model_等值连接_27

显示表的某个具体属性。

如:select CUSTOMER.cname from CUSTOMER;

2.2.2 选择(select:where | 【数据库原理、编程与性能】The Relational Model_集合运算_28

【数据库原理、编程与性能】The Relational Model_等值连接_29

选择某个表中符合条件的元组构成新的结果表。

select * from ORDERS where dollars>10000;

2.2.3 连接(join: JOIN | 【数据库原理、编程与性能】The Relational Model_等值连接_30

【数据库原理、编程与性能】The Relational Model_集合运算_31

  • 自然连接一定是等值连接,但等值连接不一定是自然连接;
  • 等值连接要求分量相等,不一定是公共属性;而自然连接要求相等的分量必须是公共属性(相容);
  • 自然连接要求两个关系中进行比较的分量须是相同的属性组,且连接结果中要去掉重复的属性列;
2.2.3.1 自然连接

R和S的共同属性列相等的元组拼接。

eg:

先定义两个表:

【数据库原理、编程与性能】The Relational Model_d3_32:

ABCa1b1c1a1b2c2a2b1c2a3b2c3

【数据库原理、编程与性能】The Relational Model_集合运算_33:

BCDb1c1d1b2c2d2b1c1d3

【数据库原理、编程与性能】The Relational Model_集合运算_34为:

ABCDa1b1c1d1a1b1c1d3a1b2c2d2

2.2.3.2 等值连接

选择两个表的某个属性做为评判标准。

eg:

则规定T.B=F.B的【数据库原理、编程与性能】The Relational Model_集合运算_34为:

AT.BT.CF.BF.CDa1b1c1b1c1d1a1b1c1b1c1d3a1b2c2b2c2d2a2b1c2b1c1d1a2b1c2b1c1d3a3b2c3b2c2d2

2.2.4 除(division:DIVIDEBY | 【数据库原理、编程与性能】The Relational Model_等值连接_36

【数据库原理、编程与性能】The Relational Model_等值连接_37

通俗的讲,除法就是若R表某项的象集包含S表的所有象集,那么该项则为除法的结果。

这么讲你可能不太明白,我们来举个栗子:

先定义两个表:

【数据库原理、编程与性能】The Relational Model_d3_32:

ABCa1b1c1a1b2c2a2b1c2a3b2c3

【数据库原理、编程与性能】The Relational Model_集合运算_33:

BCDb1c1d1b2c2d2b1c1d3

如图所示,T表和F表的相同属性为B和C,则a1、a2、a3的象集分别为:

【数据库原理、编程与性能】The Relational Model_d3_40:

BCb1c1b2c2

【数据库原理、编程与性能】The Relational Model_等值连接_41:

BCb1c2

【数据库原理、编程与性能】The Relational Model_等值连接_42:

BCb2c3

F表的象集如下:

【数据库原理、编程与性能】The Relational Model_等值连接_43:

BCb1c1b2c2

如上述四个表格可以看出:只有【数据库原理、编程与性能】The Relational Model_d3_40表完全包含了【数据库原理、编程与性能】The Relational Model_等值连接_45表,即【数据库原理、编程与性能】The Relational Model_等值连接_46

3. Key

3.1 Super Key

超键是任何一个可以唯一标识元组的属性集。

3.2 Candidate Key

候选键是超键的子集,不过不包含多余的元素(去除该元素后依旧可以唯一标识元组)。

3.3 Primary Key

主键是候选键其中一个,主键不为空。


标签:运算,编程,2.2,Relational,Model,连接,select,属性
From: https://blog.51cto.com/u_16165815/6522576

相关文章