当非素数属性在功能上依赖于候选键的一部分时,就会发生部分依赖。
第二范式(2NF)消除了部分依赖性。
让我们看一个例子-
<StudentProject>
学生卡 | 项目编号 | 学生姓名 | 项目名 |
S01 | 199 | 凯蒂 | 地理位置 |
S02 | 120 | 奥利 | 集群探索 |
在上表中,我们有部分依赖关系;让我们看看-
主键属性是StudentID 和ProjectNo,以及
StudentID =学生的唯一ID StudentName =学生的名称 ProjectNo =项目的 唯一ID ProjectName =项目的名称 |
如前 ,非素数属性(即StudentName 和ProjectName) 在功能上应依赖于候选键的一部分,才能部分依赖。
该StudentName 可由下式确定StudentID,这使得关系偏相关。
的项目名 可由下式确定ProjectNo,这使得关系偏相关。
因此,<StudentProject>关系在规范化中违反了2NF,被认为是错误的数据库设计。
要删除对2NF的部分依赖和违规,请分解表-
< StudentInfo >
学生卡 | 项目编号 | 学生姓名 |
S01 | 199 | 凯蒂 |
S02 | 120 | 奥利 |
<ProjectInfo>
项目编号 | 项目名 |
199 | 地理位置 |
120 | 集群探索 |
现在,该关系为数据库规范化的第二范式。