读SQL进阶教程笔记11_关系数据库基础

1. 1969年

1.1. 关系模型的创始人E.F. Codd(1923—2003)

1.1.1. 牛津大学数学专业

1.1.2. 一己之力奠定了关系模型的基础

1.2. 论文《大型数据库中关系存储的可推导性、冗余与一致性》

2. 1970年

2.1. 权威学术杂志Communications of ACM

2.2. Codd《大型共享数据库的关系模型》

2.2.1. 数据库中不再包含索引,字段间也没有顺序了

2.2.2. 第一次明确主张关系模型应该在表现层放弃指针

2.2.3. 出现了范式的概念

3. 主要贡献

3.1. 定义了关系运算(relational calculus)

3.1.1. 关系逻辑(relational logic)

3.2. 定义了关系代数(relational algebra)

3.2.1. 包含选择、投影、并、交等8种运算

3.2.2. 输入和输出都是关系

3.3. 采用谓词逻辑作为数据库操作的基础

3.3.1. 谓词逻辑已经成为了逻辑学的标准

4. 阻抗不匹配

4.1. 面向对象语言和关系数据库不一致的问题

5. 为什么叫它关系模型,而不叫它表(tabular)模型

5.1. 关系中不允许存在重复的元组(tuple),而表中可以存在

5.2. 关系是通常说的不允许存在重复元素的集合,而表是多重集合(multiset)

5.3. 关系中的元组没有从上往下的顺序,而表中的行有从上往下的顺序

5.4. 关系中的属性没有从左往右的顺序,而表中的列有从左往右的顺序

5.5. 关系中所有的属性的值都是不可分割的,而表中列的值是可以分割的

5.6. 关系中的属性满足第一范式,而表中的列不满足第一范式

6. 术语对应关系

正式的关系模型术语 非正式的日常用语
关系(relation ) 表(table )
元组(tuple ) 行(row )或记录(record )
势(cardinality ) 行数(number of rows )
属性(attribute ) 列(column )或字段(field )
度(degree ) 列数(number of columns )
定义域(domain ) 列的取值集合(pool of legal values )

6.2. 关系模型是以数学中的集合论为基础的,因此沿用了集合论的一些术语

6.3. 定义域是关系模型在诞生之际就存在的一个重要的关键词

6.4. 如果无法确定定义域的话,关系就无法确定了

6.5. SQL-92标准终于增加了定义域这一功能

7. 关系的定义

7.1. R ⊆(D1×D2×D3 · · · ×Dn)

7.1.1. 关系R是定义域D1, D2, …, Dn的笛卡儿积的子集

7.1.2. 笛卡儿积是指“使用各个属性的定义域生成的组合数最多的集合”

7.2. 关系用符号R表示,属性用符号Ai表示,属性的定义域用符号Di表示

7.3. 元组个数为0的关系也是满足定义的

8. 关系值和关系变量

8.1. 值(value)和变量(variable)是很容易混淆的概念

8.2. 一般提到“关系”这个词时,如果不加特殊说明,指的都是“关系变量”

8.3. 关系值指的是关系变量在某一时刻取的值

8.3.1. 值就是变量的时间切片(time-slice)

9. 关系的关系

9.1. 在逻辑上是可能存在的

9.2. 为此必须定义能够使定义域包含关系的谓词,而且如果再考虑对关系的量化,就需要实现二阶谓词逻辑,因此实现“关系的关系”非常困难

9.3. 包含关系的列(属性)叫作关系值属性(relation-valued attribute)

9.4. 标准SQL语言已经支持了数组类型和集合类型的变量

9.5. 关系模型正朝着能够处理复合型数据的方向发展

9.6. C.J. Date等人断言:真正的关系系统就是支持关系值等全部复合型数据的系统

10. 封闭性

10.1. closure property

10.2. 运算的输入和输出都是关系

10.3. 保证关系世界永远封闭

10.4. 关系的封闭性与UNIX中管道的概念很像

10.5. 在UNIX系统中

10.5.1. 从设备到控制台,一切都可以当作“文件”来处理

10.5.2. 设备只不过是/dev目录下的一个普通文件而已

10.5.3. 这也是UNIX系统追求文件的封闭性的结果

10.5.3.1. “泛文件主义”

10.5.3.2. “一切皆文件主义”

11. 集合类型

11.1. 群(group):对加法和减法(或者乘法和除法)封闭

11.2. 环(ring):对加法、减法、乘法封闭

11.3. 域(filed):对加法、减法、乘法、除法封闭,即可以自由进行四则运算

11.4. 这些对某种运算封闭的集合在数学上称为“代数结构”

11.5. 布尔值的集合{true, false} 也是域

11.5.1. 如果想要强调布尔型的域的特征,可以称为布尔域

11.6. 关系可以理解为“能自由进行四则运算的集合”

11.6.1. 关系支持加法(UNION)运算和减法(EXCEPT)运算,因此满足群的条件

11.6.2. 关系还支持相当于乘法运算的CROSS JOIN,所以也满足环的条件

11.6.3. 关系中没有除法运算符,所以不满足域的条件

11.6.4. 除法运算的定义是有的。因此,关系也满足域的条件

posted @ 2023-04-14 06:35  躺柒  阅读(73)  评论(0编辑  收藏  举报