一直以来,范式是关系数据库中,最难理解的一部分,至少对我来说是这样,再加上之前,去面试,在技术面中,也常被问到范式的相关内容。今天又拿起数据库书来看了一下,现做总结如下:

(1)基本概念:

超键(Super Key):若关系中的某一属性组(记住,是组)的值能唯一地标识一个元组,则称该属性组为超键。

(比如:标识一个人,可以用 ×××号 或 ×××号 + 姓名 或 ×××号 + 姓名 + 性别 来区分,这里,前面的三种情况,都可以当超键,因为满足属性组这一要求)

候选键(Candidate Key):不含有多余属性的超键,则称为候选键。

(在前面的举例中,那么就只有 ××× 就行了,但,同时,我们知道,还有DNA可以区分一个人,这里,×××,DNA都可以当候选键)

主键(Primary Key):若一个关系有多个候选键,则选定其中一个为主键。

(在前面的 ××× 跟 DNA 中,我们任先一个 DNA 作为主键)

主属性(Primary Attribute):主键的各个属性称为主属性。

(在前面的 DNA 主键中,只有 DNA 这个属性,所以它也就是主属性了)

非主属性(Non-key Attribute):不包含在任何候选键中的属性称为非主属性。

(假如人只有 ××× 或 DNA 这两个唯一的标识人的方法,那么除了这两个属性,其他的关于人的属性,也就都是非主属性了。但注意: 主属性 U  非主属性 != 人的全部属性)

全码(All-key):在最简单的情况下,候选键只包含一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式 的候选键,称为全码。

(首先,我也不是很理解这个定义。不知,最简单的情况下,是指属性只有一个,而刚好,候选键也就是这个属性)