关系模型研究什么
形象的说,一个关系就是一个Table,关系模型就是处理Table的,他有三个部分组成:
(1)描述DB各种数据的基本结构形式(即描述这个Table)——数据结构
(2)描述Table和Table之间所可能发生的各种操作(关系运算)——数据操作
(3)描述这些操作所应遵循的约束条件(完整性约束)——完整性约束
关系模型三要素:
关系模型与关系数据库语言的关系
关系运算:关系代数和关系演算
关系演算:元组演算和域演算
关系代数示例:基于集合的运算
即:操作的对象以及结果都是集合,是一次集合
的操作,而非关系型的数据操作通常是一次一记录的操作。
元组演算示例:基于逻辑的运算
域演算示例:基于示例的运算
什么是关系
为什么把“表”称为关系?怎样严格定义一个“表”?”表“和”关系“有什么异同?
”表“的基本构成要素
”表“的严格定义——关系
(1)首先定义”列“的取值范围”域“
(2)再定义”元组”以及所有可能组合成的元组:笛卡尔积
(3)最后来看什么是关系?
我们可以知道笛卡尔积中的所有元组并不是都有意义的,所以...
把有某种意义的这些摘出来,称为关系。例如从上面的笛卡尔积的所有元组中抽出来家庭这个关系
这个表里面的数据都是有家庭关系的。
关系:`
- 一组域D1,D2,...,Dn的笛卡尔积的子集
- 笛卡尔积中具有某一方面意义的那些元组被称为一个关系
- 由于关系的不同列可能来自同一个域,为区分,需要为每一列起一个名字,该名字即为
属性名
关系特性
(1)列是同质:每一列中的分量来自同一域,是同一类型的数据;
(2)不同列可以来自同一个域,称其中每一列为一个属性,不同的属性要给予不同的属性名;
(3)列位置互换性:区分哪一列是靠列名;
(4)行位置互换性:区分哪一行是靠某一或某几列的值;
(5)基于(3)和(4),可以知道关系是以内容来区分的,而不是属性在关系的位置来区分。
(6)属性不可再分特性(
关系第一范式
)属性再分:复合属性和多值属性
关系上的一些重要概念
候选码/候选键
主码/主键
(1)当有多个候选码时,可以选定一个作为主码;
(2)DBMS以主码为主要线索管理关系中的各个元组;
主属性与非主属性
包含在任何一个候选码中的属性被称为主属性,而其他属性则被称为非主属性。
所有属性构成一个关系的候选码,称为全码关系。
外码/外键
关系R中的一个属性组,他不是R的候选码。但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键。
表可以有重复元组,关系是集合的定义,不能有重复。