1 / 14

5.2.3 范式

5.2.3 范式. 范式:符合某种级别 ( 条件、要求 ) 的关系模式 范式种类 1NF, 2NF, 3NF, BCNF, 4NF,5NF 按级别 ( 条件、要求 ) 由低到高: 1NF  2NF  3NF  BCNF  4NF  5NF 通常称某一关系模式 R 为第几范式,记作 R  x NF. 1NF(First Normal Form). 定义:关系 R 中每个分量都是不可分割的数据项,则 R 1NF 说明: 1NF 是关系模式的基本要求 举例:

azra
Download Presentation

5.2.3 范式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5.2.3 范式 • 范式:符合某种级别(条件、要求)的关系模式 • 范式种类 • 1NF, 2NF, 3NF, BCNF, 4NF,5NF • 按级别(条件、要求)由低到高: 1NF  2NF  3NF  BCNF  4NF  5NF • 通常称某一关系模式R为第几范式,记作R xNF

  2. 1NF(First Normal Form) • 定义:关系R中每个分量都是不可分割的数据项,则R 1NF • 说明:1NF是关系模式的基本要求 • 举例: 关系模式S-L-C(学号SNO, 系SDEPT, 住处SLOC, 课程CNO, 成绩G)是1NF

  3. SDEPT SNO G CNO SLOC 5.2.4 2NF • 定义:若R  1NF, 且每个非主属性完全依赖于码,则R  2NF • 说明:不存在非主属性部分依赖于码的关系为2NF • 举例:关系模式 S-L-C(SNO, SDEPT, SLOC, CNO, G) • 函数依赖图 关系模式S-L-C是不是2NF? 不是,因为SDEPT和SLOC部分依赖于码 前面的实例是不是2NF?

  4. 不是2NF可能出现的问题 • 插入异常 • 某学生没有选课时,无法插入其系、住处等信息 • 删除异常 • 某学生所有的选课信息都删除后,其系、住处等信息也被删除 • 修改复杂(更新异常) • 学生转系时,除了修改其系名外,还需修改其住处信息;另外,若该学生选修了多门课程,则其对应的重复存储的系、住处等信息需一一修改 • 冗余 • 同系的所有学生的住处信息重复存储,同一学生选多门课程时,其系、住处信息重复存储

  5. SDEPT SNO G CNO SLOC 解决办法 • 模式分解 • 依赖关系分析 • 上例中的模式分解为下列两个模式,该模式是2NF SC(SNO, CNO, G) (SNO, CNO)G S-L(SNO, SDEPT, SLOC) SNO  SDEPT, SNO  SLOC, SDEPT  SLOC

  6. 分解说明 • 一个1NF,但非2NF的关系总是可以被分解成为一组2NF的关系 • 规范化过程中通过一组投影运算消除部分依赖,建议作如下分解(第一步分解) • 已知关系R(A,B,C,D), (A,B)为主码,即(A,B)->C, (A,B)->D,且A->D, 则将R分解成为两个投影: R1(A,D), A为主码 R2(A,B,C), (A,B)为主码,A为外码 • 这样,R可以通过R1和R2的自然连接运算得以恢复,即满足分解的无损连接性

  7. SDEPT SNO SLOC 5.2.5 3NF • 定义:若R2NF, 且它的任何一个非主属性都不传递依赖于任何候选码,则R  3NF • 说明:即不存在非主属性部分依赖和传递依赖于码的关系为3NF • 推论:不存在非主属性的模式为3NF • 上例中得到的关系模式是2NF SC(SNO, CNO, G); S-L(SNO, SDEPT, SLOC); 可能问题? 如何改造? S-L中存在传递传递依赖,故该模式不是3NF

  8. 不是3NF可能存在的问题 • 插入异常 • 只有当知道某学生的系时才能插入其住处信息 • 删除异常 • 当删除某系对应的所有学生时,有关该系学生住处的信息也被删除掉了 • 修改异常 • 一个系及其住处信息重复出现,只更新一个元组中对应的系及其住处时可能导致数据不一致 • 冗余 • 同系学生的住处重复存储

  9. SNO G CNO 解决方法 • 继续模式分解 • 如上例中的模式可分解为3NF SC(SNO, CNO, G); (SNO, CNO)  G S-D(SNO, SDEPT); SNO  SDEPT D-L(SDEPT, SLOC); SDEPT  SLOC SNO SDEPT SLOC SDEPT

  10. 分解说明 • 一个2NF,但非3NF的关系总是可以被分解成为一组3NF的关系 • 规范化过程中通过一组投影运算消除传递依赖,建议作如下分解(第二步分解) • 已知关系R(A,B,C), A为主码(A->B, A->C),且B->C, 则将R分解成为两个投影: R1(B,C), B为主码 R2(A,B), A为主码,B为外码 • 这样,R可以通过R1和R2的自然连接运算得以恢复,分解满足分解的无损连接性

  11. 3NF的进一步说明 • 在不考虑主属性对码的部分依赖和传递依赖时,可以认为是实现了彻底的分离,已消除了插入异常,删除异常,修改异常,冗余等问题 • 但是,当关系中存在两个或更多的候选码时,尤其是有几个候选码、且候选码内的属性又有部分复合或交迭时,仅仅满足3NF仍有问题,需要进一步分解成BCNF

  12. 5.2.6 BCNF (Boyce/Codd Normal Form) • 定义:若每一个决定因素都包含(或是)码,则R BCNF • 说明 • BCNF中所有的依赖都是包含码的依赖 • 一个BCNF范式必是3NF,但一个3NF范式不一定是BCNF (3NF中可能存在主属性对码的部分和传递依赖) • BCNF是在函数依赖范畴内对关系模式的彻底分离,已消除了插入和删除异常 • 通常认为BCNF是扩充的第三范式,一般数据库设计达到BCNF已足够

  13. 实例 • 例1: SJP(学生S, 课程J, 名次P) • (S,J)和(J,P) 均为候选码 • 函数依赖为(S,J)P, (J,P) S 其中,两个决定因素均包含(是)候选码 可见SJP  BCNF • 例2: STJ(学生S, 教师T, 课程J) • (S,T)和(S,J) 均为候选码 • 函数依赖为(S,J) T, (S,T) J, T J 其中,T为决定因素,但不包含任何一个候选码 可见STJ  3NF, 但STJ  BCNF

  14. SNO G CNO 例子 • 前例是3NF, 也是BCNF SC(SNO, CNO, G); (SNO, CNO)  G S-D(SNO, SDEPT); SNO  SDEPT D-L(SDEPT, SLOC); SDEPT  SLOC SNO SDEPT SLOC SDEPT

More Related