目录
关系型数据库,即使用关系模型的数据库,由数据表和数据表之间的关联组成。
关系数据库的特点在于,它将每一个具有相同属性的数据独立地存在一个表中。对任何一个表而言,用户可以新增、删除和修改表中的数据,而不会影响表中的其他数据。
关系型数据库的基本术语
基本术语 | 解释 |
键码(Key) | 在关系中用来标识行的一列或多列。 |
主关键字(Primary Key) | 是被挑选出来,作为表行的唯一标识的候选关键字,一个表中只有一个主关键字,主关键字又称为主键。 |
候选关键字(Candidate Key) | 是唯一标识表中的一行而又不含多余属性的一个属性集。 |
公共关键字(Common Key) | 在关系数据库中,关系之间的联系是通过相容或相同的属性或属性组来表示的。如果两个关系中具有相容 或相同的属性或属性组,那么这个属性或这个属性组被称为这两个关系的公共关键字。 |
外关键字(Foreign Key) | 在有关联的两个数据表中,如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个 关系的外关键字,也就是外键。由此可见,外关键字表示了两个关系之间 |
关系型数据库完整性规则
关系模型提供了三类完整性规则:实体完整性规则、参照完整性规则 和 用户定义的完整性规则。其中实体完整性规则和参照完整性规则是关系模型必须满足的完整性的约束条件,称为关系完整性规则。
- 实体完整性
实体完整性在指关系的主属性(主键的组成部分)不能是空值。现实世界中的实体是可区分的,即它们具有某种惟-性标识。相应地关系模型中以主键作为惟一一性标识,主键中的属性即主属性不能取空值(“不知道”或“无意义”的值)。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的环境相矛盾,因此这个实体一定不是一个完整的实体。
- 参照完整性
参照完整性如果关系的外键R1与关系R2中的主键相符,那么外键的每个值必须在关系R2中主键的值中找到或者是空值。
- 用户定义完整性
是针对某一具体的实际数据库的约束条件。它由应用环境所决定,反映某一具体应用所涉及的数据必须满足的要求。关系模型提供定义和检验这类完整性的机制,以便用统一的系统的方法处理,而不必由应用程序承担这一功能。
关系模型的核心理论 ---- 范式理论
对于普通的学习者来说,只需将数据库符合前三个范式,就能满足我们数据存储的要求。
范式理论是逐级递增的过程,只有满足了最低级的范式,才回去判断数据表是否满足后面的范式。
第一范式
第一范式是指数据库表的每一列都是不可分隔的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。第一范式包括下列指导原则:
- 数组的每个属性只能包含一个值
- 关系中的每个数组必须包含相同数量的值
- 关系中的每个数组一定不能相同
此表的姓名、性别、入学时间,出现了不是唯一的数据项,这里的数据项可以分解,如:姓名可分解为姓和名;性别可分解为男和女。理论上来说此表不符合第一范式,但在项目中并不会按理论这样如此严谨,所以说此表还是符合第一范式的。
第二范式
如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段,那么该数据表满足第二范式,即2NF。
上表中的负责人部门是不依赖于主键字段 -- 项目编号的,所以此表不满足第二范式,需做如图所述的修改,即下表满足第二范式。
第三范式
如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数据值之间不存在函数函数信赖关系,那么该数据表满足第三范式,即3NF。
此表中的工资和奖金存在函数依赖关系,即奖金数额与工资存在某种函数关系,通过工资可以计算出奖金。故此表需去掉奖金一项,以满足第三范式。