MySQL数据库学习资料(三)

第三章:关系数据库理论

目录

第三章:关系数据库理论

一、关系数据库

1.1 关系模型

1.2 关系模型的三个要素

1.3 简单理解‘表’

二、笛卡儿积

三、列属性

四、关系模式与关系

五、候选码和外码

六、关系代数、元组演算、域运算


一、关系数据库

关系数据库(一个由很多表组成的数据库,表的每一列是一个属性,表的第一行是各个属性名,往下每一行代表一个对象所具有的各个属性)

标准的数据库语言(SQL语言)是建立在关系模型基础之上的, 数据库领域的众多理论也都是建立在关系模型基础之上的。

1.1 关系模型

形象地说,一个关系(relation)就是一个Table 

关系模型就是处理Table的,它由三个部分组成:

    描述DB各种数据的基本结构形式(Table/Relation) 

    描述Table与Table之间所可能发生的各种操作(关系运算) 

    描述这些操作所应遵循的约束条件(完整性约束)

1.2 关系模型的三个要素

关系模型的三个要素:基本结构、基本操作、完整性约束

基本结构:Relation/Table 

基本操作:Relation Operator

基本的:(并, UNION)、 (差, DIFFERENCE) 、(广义积, PRODUCT)、(选择, SELECTION)、(投影, PROJECTION)

扩展的:(交, INTERSECTION)、(连接, JOIN)、(除, DIVISION)运算

完整性约束:实体完整性、参照完整性和用户自定义的完整性

1.3 简单理解‘表’

从数学角度详细定义了什么是“表”。

每一列都有列名、或者是关系

每一行是一个记录,或者是元组

列的取值范围叫做域(Domain)

域(Domain) 就是一组值的集合,这组值具有相同的数据类型,

如整数的集合、字符串的集合、全体学生的集合

再如, 由8位数字组成的数字串的集合,由0到100组成的整数集合

集合中元素的个数称为域的基数(Cardinality)

MySQL数据库学习资料(三)_第1张图片

二、笛卡儿积

定义“元组”及所有可能组合成的元组:笛卡尔积

笛卡尔积在数据库当中的实际意义:根据各个字段的域,组成所有可能的记录的集合

从笛卡尔积中,抽出一个合理的组合,构成关系。换句话说,关系是笛卡尔积的一个子集

MySQL数据库学习资料(三)_第2张图片

MySQL数据库学习资料(三)_第3张图片

MySQL数据库学习资料(三)_第4张图片

三、列属性

列属性的数据类型必须相同。

同上一节中提到的知识:不同的属性可能来自同一个域。

列位置可以互换,换句话说:列之间无序。

行位置可以互换,换句话书:行之间无序。

关系是以内容(名字或值)来区分的,而不是属性在关系的位置来区分

任意两个元组不能完全相同

列属性不可再分,或者说属性中不能包含多个不同属性

四、关系模式与关系

同一关系模式下,可有很多的关系

关系模式是关系的结构, 关系是关系模式在某一时刻的数据

关系模式是稳定的;而关系是某一时刻的值,是随时间可能变化的

列是同质:即每一列中的分量来自同一域,是同一类型的数据

MySQL数据库学习资料(三)_第5张图片

五、候选码和外码

候选码能唯一标识一个元组。

一个典型的候选码是学生学号,大家在网上冲浪时注册的账号,也是典型的候选码,如果你注册的昵称、账号被别人使用了,就不能重复注册。

候选码的性质:一个关系中、可以存在多个属性满足候选码条件。

同时,候选码也可以由多个属性构成,如学号属性+姓名属性作为一个候选码

外码用于连接多个关系的纽带。

MySQL数据库学习资料(三)_第6张图片

六、关系代数、元组演算、域运算

关系代数:基于集合的运算(集合之间的的操作,得到的结果也是一个集合)

元组演算:基于逻辑的运算(运算符包括与、或、非、存在、包含等)

域运算:基于示例的运算(与元组演算使用的运算符相同,但意义不一样)

MySQL数据库学习资料(三)_第7张图片

关系代数

MySQL数据库学习资料(三)_第8张图片

并相容性的意思可以简单理解为:两个表的列数相同,各个列的属性相同。

并操作要主以重复的元素只取一个。R+S=S+R

差操作性质 R-S != S-R

★选择操作:从关系/表中选择符合条件的“行”

★投影操作:从关系/表中选择指定的"列"

连接操作:对多个表之间的操作(可以理解为把两个表”横着“拼起来)

连接操作步骤(每一种连接操作都是这个步骤):

1. 对两个表进行广义笛卡尔积 

2. 从广义笛卡尔积中选出符合条件的元组 

3. 投影操作获得指定列的结果。

等值连接 :取两个关系中指定属性值相等的元组

★自然连接:等值连接的特殊情况,操作前提是两个表中存在相同的属性或属性组

你可能感兴趣的:(python小白,mysql,big,data,数据库)