四、设计案例 举例:下表不符合第一范式的关系 研究课题 教师代码姓名职称系电话 研究课题号研究课题名 1101王一丽教授管理系3324500管理信息 1102刘明副教授管理系3324800金融工程 1254李爱军讲师投资系3341630电子商务 由非1NF规范化为1NF: 符合第一范式的关系 教师代码姓名职称系电话研究课题号研究课题名 1101王一丽教授管理系3324500管理信息 1102刘明副教授管理系3324800金融工程 1254李爱军讲师投资系3341630电子商务 由1NF规范化为2NF: 上表中关系满足INF,但不满足2NF。在表中,“教师代码”和 “研究课题号”共同组成主关键字,“姓名”、“职称”和“研究课 题名”是非主属性。非主属性(职称、职称、研究课题名)不完全依 赖于由教师和课题代码组成的主关键字。其中,“姓名”和“职称
四、设计案例 举例:下表不符合第一范式的关系 教师代码 姓名 职称 系 电话 研究课题 研究课题号 研究课题名 1101 王一丽教授 管理系 3324 500 管理信息 1102 刘 明 副教授管理系 3324 800 金融工程 1254 李爱军讲师 投资系 3341 630 电子商务 由非 1NF 规范化为 1NF : 符合第一范式的关系 教师代码 姓名 职称 系 电话研究课题号 研究课题名 1101 王一丽教授 管理系 3324 500 管理信息 1102 刘 明 副教授管理系 3324 800 金融工程 1254 李爱军讲师 投资系 3341 630 电子商务 由 1NF 规范化为 2NF: 上表中关系满足 1NF,但不满足 2NF。在表中,“教师代码”和 “研究课题号”共同组成主关键字,“姓名”、“职称”和“研究课 题名”是非主属性。非主属性(职称、职称、研究课题名)不完全依 赖于由教师和课题代码组成的主关键字。其中,“姓名”和“职称
只依赖于主关键字的一个分量——“教师代码”,而“研究课题名” 只依赖于主关键字的另一个分量——“研究课题号”。这种关系会引 发下列问题: 数据冗余:当某个教师有多项研究课题时,必须有多条记录,而 这多条记录中,该教师的姓名和职称数据项完全相同 插入异常:当新调入一个教师时,只有教师代码、姓名、职称的 信息,没有研究课题的信息,而研究课题号是主关键字之一,缺少时 无法输入该教师信息。反之,当插入一个新的硏究课题时也往往缺少 相应的教师代码,以致无法插入。 删除异常:当删除某个教师的信息时,常常会丢失研究课题的 信息 解决的方法是将一个非2NF的关系模式分解为多个2NF的关系模 式。在本例中,可将关分解为如下三个关系: 教师关系:教师代码、姓名、职称、教师所在系、电话 课题关系:研究课题号、研究课题名; 教师与课题关系:教师代码、研究课题号。 这些关系与课题符合2NF要求 上表符合第二范式,但是不符合第三范式
只依赖于主关键字的一个分量——“教师代码”,而“研究课题名” 只依赖于主关键字的另一个分量——“研究课题号”。这种关系会引 发下列问题: 数据冗余:当某个教师有多项研究课题时,必须有多条记录,而 这多条记录中,该教师的姓名和职称数据项完全相同。 插入异常:当新调入一个教师时,只有教师代码、姓名、职称的 信息,没有研究课题的信息,而研究课题号是主关键字之一,缺少时 无法输入该教师信息。反之,当插入一个新的研究课题时也往往缺少 相应的教师代码,以致无法插入。 删除异常: 当删除某个教师的信息时,常常会丢失研究课题的 信息。 解决的方法是将一个非2NF 的关系模式分解为多个2NF 的关系模 式。在本例中,可将关分解为如下三个关系: 教师关系:教师代码、姓名、职称、教师所在系、电话; 课题关系:研究课题号、研究课题名; 教师与课题关系:教师代码、研究课题号。 这些关系与课题符合 2NF 要求。 上表符合第二范式,但是不符合第三范式
教师代码 姓名职称系电话 由2NF规范化为3NF 这样的关系同样存在着高度冗余和更新异常问题。消除传递依赖关 系的办法是将关系分解为如下几个3NF关系 教师关系:教师代码、姓名、职称、电话 课题关系:研究课题号、研究课题名; 教师与课题关系:教师代码、研究课题号 3NF消除了插入异常、删除异常、数据冗余及修改复杂等问 题,已经是比较规范的关系
教师代码 姓名 职称 系 电 话 由 2NF 规范化为 3NF: 这样的关系同样存在着高度冗余和更新异常问题。消除传递依赖关 系的办法是将关系分解为如下几个 3NF 关系: 教师关系:教师代码、姓名、职称、电话; 课题关系:研究课题号、研究课题名; 教师与课题关系:教师代码、研究课题号。 3NF 消除了插入异常、删除异常、数据冗余及修改复杂等问 题,已经是比较规范的关系