码迷,mamicode.com
首页 > 其他好文 > 详细

第三讲-关系模型与关系代数

时间:2021-04-26 13:28:24      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:使用   tab   产生   条件   联系   load   数字   基础   scl   

技术图片

 1、关系模型的提出:

关系模型是在对表以及表上进行的操作研究时所提出,是在对传统表及其操作进行数学化严格定义基础上,引入集合理论与逻辑学理论提出的。

2、研究关系模型时需要注意哪些方面?一是如何描述表的结构,二是表之间的操作如何定义、如何进行,三是表的操作应当满足何种约束条件,据此,关系模型的三要素分别是

基本结构:relation\table

基本操作:投影、连接、选择、并、交、差、外连接、除

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

 

3、先看关系的第二要素:基本操作,也即关系运算

关系运算也即关系代数与关系演算,关系演算又包含元组演算和域演算

1、关系代数:基于集合的演算——每一次操作的输入和输出都是集合

技术图片

 

 

 2、元组演算:基于逻辑的运算

技术图片

 

 

 3、域演算:基于示例的运算

技术图片

 

 

 注意到这里的“域”和后面马上要提到的关系定义里的域有所不同

 

4、关系如何去定义?关系和表是完全一样的吗?关系都有哪些特性?

1、先定义“列”的取值范围“域”

域是具有相同数据类型的值的集合,集合中值的个数为域的基数

技术图片

 

 

 2、再定义元组所有可能的集合

笛卡尔积

技术图片

 

 

 di称为一个n-元组的第i分量

笛卡儿积中n元组的个数称为笛卡尔积的基数

3、最后定义什么是关系

笛卡尔积是n个域(集合)的积,它包含了所有可能,但并非所有的n元组都是有意义的。因此关系是笛卡尔积的一个具有某方面意义的一个子集。

表是许多数据库操作系统所使用的名称,它与关系的联系在于,表是实际应用中所提出的概念,关系是基于集合论、逻辑代数等数学基础上发展出的严格定义,本质是一个集合的概念。于是,在大多数情况下它们可以等同,但比如一种例外,表可能允许重复元组,但关系则绝对不可以。

另外,关系的不同字段可能来自同一个域(例如男人女人都是人),因此需要给不同的列取别名。另外,取别名也符合关系的某一方面意义(在家庭关系中,男人是丈夫,女人为妻子)。这样的别名在关系中称为属性名,在同一个表内,属性名不重复。

技术图片

 

 

 技术图片

 

 

 4、关系的特性

关系中每一列的各个值必须来自于同一个域,不允许不同的类型的数据放在同一列

关系的不同列可以来自同一个域,因此列需要起别名,也即属性名,同一个表的各列属性名不可以重复

关系的行和列都具有可互换性,也即区分某一个元组并非是知道它是哪一行,而是通过元组中各分量的具体值,定位一个列也不是看它第几列,而是通过属性名进行区分

关系中不允许出现多值属性或者复合属性,这个特性又被称作关系的第一范式

关系不允许出现相同的元组

 

4、关系上的一些重要概念

1、候选码,又称候选键

关系中的属性或属性组,可以唯一标志一个元组

技术图片

 

 

 2、主码

当候选码较多时,选择其中一个作为主码,选择的原则是主码应该尽量简单,例如上面的例子可以选S#作为主键

3、主属性与非主属性

主属性是指某个候选码中的属性,非主属性是不出现在任何候选码中的属性,例如S# Sname Saddress是主属性,Sage Sclass是非主属性

4、外键

在关系S中,属性S.A不是主键,却与关系R的R.C对应,而R.C是R的主键,在S中,S.A称为外键,它体现的是R和S间的联系

技术图片

 

 

 

5、完整性约束

主要含实体性约束,是说一个关系的主键不可以为空,当关系的一些元组的某些字段值为空,也即不确定,或者不知道时,会对表的操作产生影响,一般会采用默认值代替。参照性约束讲的是关系(S)中的外键(S.A)不可以出现与原作为主键(R.C)的关系(R)所没有的值,这里S.A可以出现空。

用户自定义完整性主要是指,例如要求学号是11位数字串,年龄在150之内等等

 

第三讲-关系模型与关系代数

标签:使用   tab   产生   条件   联系   load   数字   基础   scl   

原文地址:https://www.cnblogs.com/rainbowriver/p/14698748.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!