`

范式应用实例剖析

阅读更多

II、范式应用实例剖析

 


        下面以一个学校的学生系统为例分析说明,这几个范式的应用。首先第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型 构成,包括整型、实数、字符型、逻辑型、日期型等。在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些 DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。
首先我们确定一下要设计的内容包括那些。学号、学生姓名、年龄、性别、课程、课程学分、系别、学科成绩,系办地址、系办电话等信息。为了简单我们暂时只考虑这些字段信息。我们对于这些信息,说关心的问题有如下几个方面。
  • 学生有那些基本信息
  • 学生选了那些课,成绩是什么
  • 每个课的学分是多少
  • 学生属于那个系,系的基本信息是什么。

 

2.1 第二范式(2NF)实例分析

 

 
      首先我们考虑,把所有这些信息放到一个表中(学号,学生姓名、年龄、性别、课程、课程学分、系别、学科成绩,系办地址、系办电话)下面存在如下的依赖关系。
        (学号)→ (姓名, 年龄,性别,系别,系办地址、系办电话)
         (课程名称) → (学分)
        (学号,课程)→ (学科成绩)

 

2.1.1 问题分析

 

 
      因此不满足第二范式的要求,会产生如下问题 

 


        数据冗余: 同一门课程由n个学生选修,"学分"就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次。

        更新异常:
             1)若调整了某门课程的学分,数据表中所有行的"学分"值都要更新,否则会出现同一门课程学分不同的情况。
            2)假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有"学号"关键字,课程名称和学分也无法记录入数据库。

       删除异常 : 假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。但是,与此同时,课程名称和学分信息也被删除了。很显然,这也会导致插入异常。

 

2.1.2 解决方案

 

 
      把选课关系表SelectCourse改为如下三个表:
  • 学生:Student(学号,姓名, 年龄,性别,系别,系办地址、系办电话);
  • 课程:Course(课程名称, 学分);
  • 选课关系:SelectCourse(学号, 课程名称, 成绩)。

 

2.2 第三范式(3NF)实例分析

 


        接着看上面的学生表Student(学号,姓名, 年龄,性别,系别,系办地址、系办电话),关键字为单一关键字"学号",因为存在如下决定关系:

       (学号)→ (姓名, 年龄,性别,系别,系办地址、系办电话)
        但是还存在下面的决定关系 
       (学号) → (所在学院)→(学院地点, 学院电话)
        即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。 
        它也会存在数据冗余、更新异常、插入异常和删除异常的情况。 (數據的更新,刪除異常這里就不分析了,可以參照2.1.1進行分析)

        根据第三范式把学生关系表分为如下两个表就可以滿足第三范式了:

        学生:(学号, 姓名, 年龄, 性别,系别);
        系别:(系别, 系办地址、系办电话)。

 

总结


       上面的数据库表就是符合I,II,III范式的,消除了数据冗余、更新异常、插入异常和删除异常。

分享到:
评论

相关推荐

    数据库设计三大范式应用实例剖析.pdf

    ### 数据库设计三大范式应用实例剖析 #### 引言 数据库的设计范式是指一系列用于指导数据库设计的规范化准则,其目的是确保数据的完整性、减少数据冗余,并提高数据库的操作效率。遵循这些范式可以避免在数据库...

    数据库设计三大范式应用实例剖析

    数据库设计三大范式应用实例剖析 数据库设计是软件开发中的一个重要步骤,它直接关系到软件系统的性能和可维护性。数据库设计的质量如何?关键就在于是否满足数据库设计的范式。数据库设计范式是数据库设计所需要...

    数据库设计三大范式应用实例剖析.doc

    "数据库设计三大范式应用实例剖析" 数据库设计是数据库系统的核心部分,直接影响着数据库的性能、安全性和可维护性。数据库设计的目的是为了使数据库系统满足某些标准,使得数据库系统更加简洁、明晰、易于维护和...

    简洁、明晰!数据库设计三大范式应用实例剖析

    ### 数据库设计三大范式应用实例剖析 #### 引言 数据库设计的规范性对于确保数据的完整性和一致性至关重要。数据库设计范式是一系列规则,它们帮助开发者创建出既高效又易于维护的数据模型。遵循这些规范能有效...

    计算机等考三级数据库基础:数据库设计三大范式应用实例剖析.docx

    【计算机等考三级数据库基础:数据库设计三大范式应用实例剖析】 数据库设计是构建高效、稳定、易维护的信息系统的基础,而三大范式——第一范式(1NF)、第二范式(2NF)和第三范式(3NF)是确保数据库设计规范的...

    数据库设计三大范式应用实例剖析(doc)

    这三个范式分别是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 **第一范式(1NF)**要求数据库表中的每个字段都是单一属性,不可再分。这意味着每个字段的数据类型是基本的,如整型、字符串、日期等。例如...

    数据库设计三大范式应用实例剖析1

    数据库设计的三大范式——第一范式(1NF)、第二范式(2NF)和第三范式(3NF)——是构建高效、无冗余、易于维护的数据库的基础。它们确保了数据的一致性和完整性,避免了数据异常,如插入异常、删除异常和更新异常...

    数据库范式(实例分析)

    数据库范式(实例分析) 数据库范式是关系数据库设计中的一种规范化方法,旨在消除数据冗余,减少数据之间的依赖关系,提高数据的一致性和完整性。在本文中,我们将通过一个“交易订单”实例来分析范式的概念和作用...

    数据库设计的第一范式第二范式第三范式描述和实例

    数据库设计三大范式的应用实例剖析,数据库设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。...

    数据库设计第三范式详解

    本文将深入探讨第三范式,并通过具体的案例分析来帮助理解其应用。 第三范式(3NF)是由艾尔弗雷德·诺尔(E.F. Codd)在1971年提出的,它是基于关系数据库模型的一种规范化形式。3NF的主要目标是消除非主属性对...

    数据库的设计范式实例剖析.doc

    这些范式主要包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及更高层次的鲍依斯-科得范式(BCNF)。以下是对这些范式的详细解释: **第一范式(1NF)**: 1NF要求数据库表的每个字段都是不可再分的单一...

    社会学的一种新研究范式及应用

    工业经济结构的演化是社会演化的重要组成部分,对其细致的分析能够充分展示新研究范式的应用价值。通过对工业经济结构的演化过程和分形生长特征的分析,不仅能够验证新研究范式的科学性和合理性,也能够为我们理解和...

    分布式水文模拟方案构建范式应用研究.pdf

    在本文中,研究者以东江流域为案例,展示了分布式水文模拟方案构建范式在实际应用中的有效性。通过实证研究,证明了该方法在洪水预报中的应用价值。东江流域DEM的分析及与模拟河网分布的比较,为流域空间分析提供了...

    数据库范式以及范式的级别

    数据库范式是数据库设计中...这些文档可能包含了范式的详细解释、实例分析以及个人见解,对面试准备和实际工作都有极大的帮助。通过学习和实践,你可以更好地掌握数据库设计的核心原则,为你的职业生涯打下坚实的基础。

    斯坦福大学编程范式资源

    在"讲义"文件夹中,可能包含了课件、案例分析和习题解答,这些都是深入理解和掌握编程范式的关键。通过阅读和实践,学生可以学习到如何在实际项目中应用各种编程范式,例如使用函数式编程实现无副作用的计算,通过...

Global site tag (gtag.js) - Google Analytics