精华内容
下载资源
问答
  • 数据库——范式判断

    千次阅读 2014-05-20 22:57:43
     所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由...
    1.1 第一范式(1NF)无重复的列 
          所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。 

    说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 


    1.2 第二范式(2NF)属性完全依赖于主键[消除部分子函数依赖] 
          第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。例如员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。 
            第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是属性完全依赖于主键。 


    1.3 第三范式(3NF)属性不依赖于其它非主属性[消除传递依赖]
                满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。 



    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范式的,消除了数据冗余、更新异常、插入异常和删除异常。 
    展开全文
  • 数据库——范式判断实例

    千次阅读 2020-01-03 14:46:03
    看了上篇CSDN的小伙伴们,这篇我们来具体做几个题目练习一下 明确俩个概念: ⑴ 平凡函数依赖: 当关系中属性集合Y是属性集合X的子集时,存在函数依赖X–>... 因为在做范式判断题的时候,往往在第一问当你...

    看了上篇CSDN的小伙伴们,这篇我们来具体做几个题目练习一下

    • 明确俩个概念:
      ⑴ 平凡函数依赖: 当关系中属性集合Y属性集合X的子集时,存在函数依赖X–>Y,则称这种函数依赖为平凡函数依赖;
      ⑵ 非平凡函数依赖: 当关系中属性集合Y不是属性集合X的子集时,存在函数依赖X–>Y,则称这种函数依赖为非平凡函数依赖;
      为什么要先知道这来个呢? 因为在做范式判断题的时候,往往在第一问当你判断为1NF或者2NF时,第二问常常会让你将某关系逐步分解成BCNF,所以此时我们就要用到非平凡函数依赖这个概念。因为在分解的每一步中都需要使得关系中不存在非平凡函数依赖;做这个的解题步骤,待会再讲

    • 这里在把上篇博客里解题的步骤再放一遍在这里插入图片描述

    • 例1:
      设有关系 R 和函数依赖 F: R(A,B,C,D,E),F = { ABC→DE,BC→D,D→E }。
      试求下列问题: (1)关系 R 的侯选码是什么?R 属于第几范式?并说明理由。
      (2)如果关系 R 不属于 BCNF,请将关系 R 逐步分解为 BCNF。(5 分)首先流程图我们先去找候选码,找到之后按照操作流程一步步判断就行了 这里如果有小伙伴不知道如何找候选码的话,我这里粘上我上一篇所说的找候选码的方法
      如何找候选键
      解:
      (1)关系 R 的候选码是(A,B,C),R∈1NF,因为 R 中存在非主属性 D, E 对候选码(A,B,C)的部分函数依赖。

      (2)首先消除部分函数依赖 将关系分解为: R1(A,B,C) (A,B,C)为候选码, R1 中不存在非平凡的函数依赖 R2(B,C,D,E),(B,C)为候选码, R2 的函数依赖集为:F2={(B,C)→D,D→E} 在关系 R2 中存在非主属性 E 对候选码(B,C)的传递函数依赖,所以 将 R2 进一步分解:
      R21(B,C,D) ,(B,C)为候选码, R21 的函数依赖集为:
      F21 = { (B,C)→D }
      R22(D,E) ,
      D 为候选码, R22 的函数依赖集为:F22 = { D→E } 在 R1 中已不存在非平凡的函数依赖,
      在 R21、R22 关系模式中函数依赖 的决定因素均为候选码,所以上述三个关系模式均是 BCNF。

    展开全文
  • 数据库范式判断

    千次阅读 2020-04-03 14:13:19
    第一范式(1NF) 定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。通俗点说就是每个属性(列)不能重复。 例题: 关系模式R(A、B、C、D),有函数依赖集F={B→D,AB→C},R∈__NF 解: 码是AB,D...

    第一范式(1NF)

    定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。通俗点说就是每个属性(列)不能重复。

    例题

    关系模式R(A、B、C、D),有函数依赖集F={B→D,AB→C},R∈__NF
    解:
    	码是AB,D部分依赖AB,所以是1NF
    

    第二范式(2NF)

    定义:若R∈1NF,并且每一个非主属性都完全函数依赖于R的码(候选码),则R∈2NF。

    例题

    1.关系模式R(A、B、C、D),有函数依赖集F={A→B,A→C,D→A},R∈__NF
    解:
    	码是D,D—>A—>B(A—>C),每个非主属性都完全函数依赖于D,所以是2NF。
    2. 关系模式R(A、B、C、D),有函数依赖集F={B→C,B→D,CD→A},R∈__NF
    解:
    	码是B,有B—>CD—>A,所以是2NF
    

    第三范式(3NF)

    定义:3NF指在2NF的基础上,数据表中不存在非关键字段对任一候选关键字段的传递函数依赖。简而言之,第三范式就是属性不依赖于其它非主属性。
    例子

    1.关系模式R(A、B、C、D),有函数依赖集F={BCD→A,A→C},R∈__NF
    解:
    	码是ABD或BCD,所有属性是主属性,存在主属性对码的依赖,所以是3NF
    2.关系模式R({A ,B,C} ,{(A ,C)→B,(A,B)→C,B→C})属于第__范式。
    解:
    	码是AB,AC,无非主属性,存在主属性对码的依赖,所以是3NF
    

    BC范式(BCNF)

    定义:通常认为BCNF时修正的3NF。在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖,则是BC范式。
    例子

      关系模式R(A、B、C、D),有函数依赖集F={ABD→C},R∈__NF
      解:
      	码是ABD,无部分函数依赖,无传递函数依赖,无主属性对码的依赖,所以是BCNF.
    
    展开全文
  • 数据库 范式判断

    2020-06-20 19:31:20
    1NF 如果一个关系模式R的所有属性都是不可分的基本数据项,则R为...第一范式,虽然BD- >A,但是存在B->A,存在部分函数依赖 3NF 属性不依赖于其他非主属性 例如:学生档案表(学号,姓名,年龄,生源地编号,.

    1NF

    如果一个关系模式R的所有属性都是不可分的基本数据项,则R为1NF。

    属性不可拆

    2NF

    属性间满足完全依赖,完全依赖是指不能存在仅依赖主键一部分的属性。

    例 设关系模式R(A,B,C,D),函数依赖集F={A->C,C->A,B->AC,D->AC,BD->A}.候选码是BD,确定属于第几范式?

    第一范式,虽然BD- >A,但是存在B->A,存在部分函数依赖

    3NF

    属性不依赖于其他非主属性

    例如:学生档案表(学号,姓名,年龄,生源地编号,生源地,邮政编码)

    学号->生源地编码,生源地编码->生源地,邮政编码

    那么,存在非关键字字段生源地,邮政编码对关键字学号传递函数依赖,故不符合3NF

    BCNF

    不存在任何字段对任一主键字段传递函数依赖

    比如寝室管理关系表(寝室ID,物品ID,室长ID,数量)

    但是室长ID->寝室ID,所以不符合BCNF

     

    展开全文
  • 数据库——判断范式的方法及转换 给定关系模式和FD集,判断关系模式所属范式的解题步骤: 1.求候选码(请看上一章内容),确定主属性和非主属性(包含在候选码中的属性是主属性,不包含其中的属性是非主属性); 2....
  • 数据库——范式判断类 题型、解题的套路、步骤

    千次阅读 多人点赞 2019-12-31 21:46:14
    关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式; 什么是规范化? 一个低一级范式关系模式通过模式分解,可以转换为若干个高一级的范式的关系模式的集合,这个过程就叫做规范化; 什么...
  • 数据库判断关系是第几范式

    千次阅读 2020-05-30 16:08:38
    目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF) 。满足最低要求 的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多...
  • 数据库BC范式(BCNF)判断和分解

    千次阅读 多人点赞 2020-05-13 12:33:49
    那么关系模式 dep(D,M,G,N)中D表示仓库名,M表示管理员,G表示货物名,N表示货物的数量 已知函数依赖集:D → M,M → D,(D,G)→ N 将其分为BC范式: 主属性:D,M,G 候选码:(D,G),(M,G) D → M...
  • 数据库——范式

    2017-09-27 11:04:08
    首先,我们需要判断,表3是否符合2NF的要求?根据2NF的定义,判断的依据实际上就是看数据表中是否存在非主属性对于码的部分函数依赖。若存在,则数据表最高只符合1NF的要求,若不存在,则符合2NF的要求。判断的方法...
  • 数据库范式判断及分解技巧

    万次阅读 多人点赞 2019-01-12 20:44:11
    数据库中的范式是考试中必考的重点,也是应用中比较实用的操作标准。不说废话了,下面将分段来从不同深度开始说。 【前驱知识补充】 函数依赖 简单通俗地说就是属性之间是否有确定的关系,比如:学生表(学号,姓名...
  • 假设一个关系为R=(B,O,S,Q,I,D),如果存在函数依赖集F={S→D,IS→Q,I→B,B→O},那么关系R候选码是什么?{I,S}应该是没问题的,那么{B,I,S}算不算?属性B到底属不属于主属性? 还有,I→B算不算对候选码{I,S}的部分...
  • 在查阅数据库设计理论时,发现《数据库系统概论》第5版的概念定义与网上质料有很大不同,不方便大学生做参考质料,并且有一些内容已经没有现实意义了,(如第二范式)。 二、适合阅读人群、 本文内容根据大学...
  • 判断范式的步骤: 如何确定候选键 判断3NF有两个条件,例如:X为主属性,Z为非主属性,有X→Y,Y→Z,Y→X, 则第一个条件X→Y,Y→Z满足,第二个条件Y不能推出X,不满足,所以不满足3NF。 也就是说满足X→Y,Y→Z且Y...
  • 数据库范式

    2021-06-04 13:23:29
    范式化理论就是辅助判断该问题的 相关概念 闭包(左边元素的组合)-> 所有元素 候选码 能够唯一标识元组中的一个属性或者属性集 主属性 包含在主码中的各个属性 非主属性 不包含在任何候选码中的属性 ...
  • 数据库中关于范式判断

    万次阅读 2017-06-14 17:04:25
    数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖。 在1NF的基础上,要求每个非键属性依赖于键的整体(直接或间接),而不是键的部分属性,即不允许有非平凡函数依赖的右面是非键属性,而左面是某个键的...
  • 数据库:怎样判断关系是第几范式

    万次阅读 多人点赞 2018-03-05 16:06:20
    设计范式范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式...
  • 数据库范式理解:1NF,2NF,3NF,BCNF,4NF详析

    千次阅读 多人点赞 2020-03-28 12:28:45
    数据库入门(一)最简单的范式理解引言范式种类第一范式(1NF)符合1NF的关系中的每个属性都不可再分存在问题Cohen-Sutherland代码裁剪算法基本思想Cohen-Sutherland操作步骤中点分割裁剪算法(对分法)基本思想线段...
  • 数据库函数依赖与最高范式判断练习 (1) PLAYER = ( pnum, team, name, position, address ) pnum → team pnum → name pnum → position pnum → address team → address pnum → team, pnum → name, pnum → ...
  • 一、数据库设计的目标(从合理组织数据加以存储的角度): 1).数据的冗余度小; 2).共享性高; 解决方法: 对模式进行分解,分解成一组关系模式,每一关系模式对应一个基本表;使用时,将多个关系模式进行自然...
  • 一、目的、在查阅数据库设计理论时,发现《数据库系统概论》第5版的概念定义与网上质料有很大不同,不方便大学生做参考质料,并且有一些内容已经没有现实意义了,(如第二范式)。二、适合阅读人群、本文内容根据...
  • 数据库设计三范式

    2011-06-04 19:32:00
    满足其中一个级别的范式总是在满足比他级别低的范式基础上进行判断的。一般来说数据库只需满足第三范式(1NF)就行了。在看三范式之前,先看几个定义:函数依赖、部分函数依赖、完全函数依赖、传递函数依赖。完全...
  • 数据库之关系范式

    2020-04-23 17:42:36
    判断方法: 1.所有函数依赖左边是超键。 2.若右边是非主属性则:所有的非平凡函数依赖左边是超键或者有非主属性。 易错点:如R=(A,B,C,D,E)。AB为键,AB->C,AD->E.则关系R属于3NF,AD->E这个可以看做传递...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 261
精华内容 104
关键字:

数据库判断范式