20321关系数据库理论基础 (8)

•          候选码可能有多个。如果有多个候选码,则它们的地位是平等的,任何一个都可以被设置为主码。在应用当中,一般是根据实际需要来将某一个候选码设置为主码。

 

 

 

     定理2.1    在关系模式R(U)中,对任意A, B ⊆U且A ∪ B = U,如果A     B,则有A 

20321关系数据库理论基础

U,从而A是关系模式R(U)的一个候选码。

  【例2.5】 考虑如表2.16所示的学生成绩关系模式,其中U = {学号, 姓名,系别,成绩}。对于属性“学号”,容易验证:学号 

20321关系数据库理论基础

 {姓名,系别,成绩},而{学号}∪{姓名,系别,成绩} = U。根据定理2.1,“学号”是学生成绩关系模式的一个候选码。

 

 

•          2.4.3 函数依赖的性质(Armstrong公理系统)

Ø 1974年Armstrong首次提出了这样的一套推理规则,由此构成的系统就是著名的Armstrong公理系统。

Ø 在关系模式R(U)中,假设A, B, C, D为U的任意子集。在Armstrong公理系统中,基于函数依赖集F的推理规则可以归结为以下3条:

ü 自反律:若C ⊆ B,则B→C为F所蕴含(平凡函数依赖)。

ü 增广律:若B → C为F所蕴含,则B∪D→C∪D为F所蕴含。

ü 传递律:若B→C且C→D为F所蕴含,则B→D为F所蕴含。

 

 

Ø 基于上述的推理规则,进一步得到下列的推理规则:

ü 自合规则:B→B。

ü 合并规则:若B→C且B→D,则B→C∪D。

ü 分解规则:若B→C∪D,则B→C且B→D。

ü 符合规则:若A→B且C→D,则A∪C→B∪D。

ü 伪传递规则:由B→C,A∪C→D,有A∪B→D。

 

 定理2.2   在关系模式R(U)中,B及B1, B2,…, Bn是U的子集,则B→B1∪B2∪…∪Bn成立的充分必要条件是B→Bi成立,其中i = 1,2,…,n。

 

 

 

2.5 关系模式的范式

Ø  范式一共分为六个等级,从低到高依次是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)和第五范式(5NF)。

Ø  高等级范式是在低等级范式的基础上增加一些约束条件而形成的,等级越高,范式的约束条件就越多,要求就越严格。各种范式之间的包含关系可以描述如下:

                               5NF ⊆ 4NF ⊆ BCNF ⊆ 3NF ⊆ 2NF ⊆ 1NF

Ø  通过模式分解,可以将一个低级别的范式转化为若干个高一级的范式,而这种转化过程称为规范化。

 

•         2.5.1 第一范式(1NF)

    定义2.8  设R(U)是一个关系模式,U是关系R的属性集,若U中的每一个属性a的值域只包含原子项,即不可分割的数据项,则称R(U)属于第一范式,记为R(U)∈1NF。

  【例子】表2.17所示。该数据表所对应的关系模式不属于第一范式,因为其中每个元组在“学生人数”属性上的属性值都不是原子项,它们都可以再分,实际上它们都是由两个原子项复合而成。为将其转化为第一范式,需要将复合项(非原子项)分解为原子项即可,结果如表2.18所示。

 

20321关系数据库理论基础

 

 

 

  【例2.6】假设有一个研究生信息管理系统,该系统涉及的信息主要包括导师信息、研究生信息以及所选课程信息(supervisor, student, course)等。设计了如下的一个关系模式:  SSC(学号, 姓名, 系别, 导师工号, 导师姓名, 导师职称, 课程名称, 课程成绩) 。

     根据常识可以知道:

•             一位研究生只有一位导师(不含副导师),但一位导师可以指导多位研究生;

•             一位研究生可以选修多门课程,一门课程也可以被多位研究生选修;

•             一位研究生选修一门课程后有且仅有一个成绩;

•             不同的课程,课程名是不相同的,即课程名是唯一。

  

基于以上语义信息可以知道:

•   学号→{姓名, 系别}

•   学号→导师工号

•   导师工号→{导师姓名, 导师职称}

•   {学号, 课程名称}→课程成绩

Ø根据Armstrong公理及定理2.2可以推知:

  {学号, 课程名称}→{学号, 姓名, 系别, 导师工号, 导师姓名, 导师职称, 课程名称, 课程成绩}

Ø且可以进一步推知:

  {学号, 课程名称}     {学号, 姓名, 系别, 导师工号, 导师姓名, 导师职称, 课程名称, 课程成绩}

Ø根据定义2.7,{学号, 课程名称}是关系模式SSC的候选码,实际上是唯一的候选码,所以故只能选择它为模式的主码。

 

 

 

关系模式SSC存在的缺点:

•      数据冗余

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygszg.html