标签:使用 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