数据库关系模型之基本概念
关系模型简述
最早由E.F.Codd在1970年提出
是从表(Table)及表的处理方式中抽象出来的, 是在对传统表及其操作进行数学化严格定义基础上,引入集合理论与逻辑学理论提出的。
是数据库的三大经典数据模型之一, 也是现在大多数商品化数据库系统所仍然使用的数据模型。
标准的数据库语言(SQL语言)是建立在关系模型基础之上的, 数据库领域的众多理论也都是建立在关系模型基础之上的。
关系模型研究什么
形象地说,一个关系(relation)就是一个Table。
关系模型就是处理Table的,它由三个部分组成:
描述DB各种数据的基本结构形式(Table/Relation)
描述Table与Table之间所可能发生的各种操作(关系运算)
描述这些操作所应遵循的约束条件(完整性约束)
关系模型的三个要素简述
基本结构:Relation/Table
基本操作:Relation Operator
完整性约束:实体完整性、参照完整性和用户自定义的完整性
关系和表
关系的数学定义
“表”的基本构成要素
“表”的严格定义–关系
首先定义“列”的取值范围“域(Domain)”。
再定义“元组”及所有可能组合成的元组:笛卡尔积。
元组(d1 , d2 , … , dn)的每一个值di叫做一个分量(component)。
元组(d1 , d2 , … , dn)是从每一个域任取一个值所形成的一种组合,笛卡尔积是所有这种可能组合的集合, 即:笛卡尔积是由n个域形成的所有可能的n元组的集合。
笛卡尔积中的所有元组并不都是有意义的。
关系
一组域D1 , D2 ,…, Dn的笛卡尔积的子集。
笛卡尔积中具有某一方面意义的那些元组被称作一个关系。
由于关系的不同列可能来自同一个域,为区分,需要为每一列起一个名字,该名字即为属性名。
关系模式与关系
同一关系模式下,可有很多的关系
关系模式是关系的结构, 关系是关系模式在某一时刻的数据
关系模式是稳定的;而关系是某一时刻的值,是随时间可能变化的
关系的特性及相关的概念
列是同质:即每一列中的分量来自同一域,是同一类型的数据。
理论上,关系的任意两个元组不能完全相同。(集合的要求:集合内不能有相同的两个元素);现实应用中,表可能并不完全遵守此特性。
关系的特性
候选码(Candidate Key)/候选键
关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。
主码(Primary Key)/主键
当有多个候选码时,可以选定一个作为主码。
DBMS以主码为主要线索管理关系中的各个元组。
主属性与非主属性
包含在任何一个候选码中的属性被称作主属性,而其他属性被称作非主属性。
外码(ForeignKey)/外键
关系R中的一个属性组,它不是R 的候选码,但它与另一个关系S 的候选码相对应,则称这个属性组为R 的外码或外键。
关系模型中的完整性
笔记整理自中国大学MOOC。