`

数据库的几个范式

阅读更多
1. 1NF

   实体的属性是不可再分的数据项。

2. 2NF

   满足1NF且每一个非主属性完全依赖于码。

   比如说:
 
   学生(学号,所在系, 住址,课程号,成绩),约定为每个系的学生住同一个地方。

   这里码为(学号, 课程号),函数依赖有:
  
   (学号, 课程号) --> 成绩 【完全依赖】
   (学号) --> 所在系, (学号, 课程号) --> 所在系 【部分依赖】
   (学号) --> 住址,   (学号, 课程号) --> 住址   【部分依赖】

   这个关系部属于2NF,就会产生以下几个问题:
   (1) 插入异常。假如插入一个学生:学号=001, 所在系="计算机, 住址="成都",但该学生还没选课,
即这个学生没有课程号,所以无法插入数据库。因为码值是(学号,课程号),课程号为空,所以学生
固有信息无法插入。

   (2) 删除异常。如果删除一门课程,学生的固有信息也被删除了,造成删除异常。

   (3) 修改复杂。 如果学生从计算机系转入到数学系,则除了修改所在系信息,还要修改住处。因为
对该关系来说,学生转系时住处也会相应改变。另外,如果学生选修了k门课程,则该学生系和
住址重复存储了k次,造成修改的复杂化。

   所以,该关系要重新拆分,拆分如下:
   (学号,课程号,成绩)
   (学号,所在系,住址)

3. 3NF

   满足2NF且每一个非主属性既不部门依赖于码也不传递依赖于码。
  
   比如:在(学号,所在系,住址)关系中:
   学号->所在系
   学号->住址
   所在系->住址 (因为约定每个系的学生住同一个地方)

   所以该关系有传递依赖。所以要重新拆分:
   (学号,所在系)
   (所在系,住址)

4. BCNF
  
  满足3NF且每一个决定因素都包含码。有三层意思
  (1) 所有的非主属性对每一个码都是完全函数依赖。
  (2) 所有的主属性对每一个不包含它的码,也是完全函数依赖。
  (3) 没有任何属性会完全依赖于非码的任何一组属性。

  比如:
  S(学号,姓名,所在系,年龄)
  假定姓名也具有唯一性,那么S就有两个码,这两个码由单个属性组成,彼此不相交。其他属性不存在对码的部分依赖于传递依赖,
所以属于3NF,同时,S中除学号外,姓名并没有其他决定因素,所以S也属于BCNF。

  在比如:
  C(课程号,课程名称,课时)
  C只有一个码,且课程号是唯一的决定因素,没有任何属性对课程号部分依赖或传递依赖,所以C属于BCNF。
  


  

  
 
  
分享到:
评论
1 楼 keketrtr 2010-05-27  
讲的很透彻……

相关推荐

    数据库设计三范式

    关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四... 在你设计数据库之时,若能符合这几个范式,你就是数据库设计的高手

    数据库考试-范式分解

    ### 数据库考试-范式分解 #### 范式的分解:如何把其他范式分解成第三范式(3NF) 在数据库设计过程中,确保数据结构的规范化是非常重要的一步,这有助于减少数据冗余并提高数据的一致性。第三范式(3NF)是一种...

    通俗易懂,实例讲解数据库范式,三范式,六范式

    在深入探讨数据库范式之前,我们需要先了解几个基础概念。 ##### 实体(Entity) 实体是指现实世界中客观存在的、可以被区别的事物。例如:“一个学生”、“一本书”、“一门课程”等。需要注意的是,这里的“事物”...

    数据库三个范式的理解.docx

    下面以一个学校的学生系统为例分析说明这几个范式的应用。首先我们确定一下要设计的内容包括那些。学号、姓名、年龄、性别、电话、系别、系办地址、系办电话、课程、学分、成绩,等信息。 第一范式举例1 / 3在当前...

    关于数据库DBA_范式

    根据给定的部分内容,我们可以详细探讨数据库设计中的几个主要范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及布尔科斯范式(BCNF)。 ### 第一范式(1NF) 第一范式是最基础的范式,它要求表中的每一列都具有...

    自考数据库系统原理3范式例题汇总

    以下是对题目中给出的几个例子的详细解释: 1. 关系模式 R(S#,C#,GRADE,TNAME,TADDR) - 基本FD:(S#, C#)→GRADE, C#→TNAME, TNAME→TADDR - 候选键:(S#, C#) - R不是2NF,因为(S#, C#)→(TNAME, TADDR)...

    数据库范式详解+实例

    函数依赖是理解范式的基础,包括以下几类: 1. **单值函数依赖**:如果对于关系R中的属性集X和Y,如果X确定Y的值,则称X->Y为函数依赖。 2. **完全函数依赖**:如果对于关系R中的属性集X和Y,如果X确定Y的值,并且...

    数据库范式解析,看了秒懂

    本文将深入解析数据库的几个主要范式,包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及BCNF(Boyce-Codd范式),并结合具体实例进行讲解。 首先,第一范式(1NF)是最基础的范式,要求数据库中的每一列...

    数据库三范式(六范式)--通俗易懂

    在正式介绍范式之前,我们需要了解几个关键术语: 1. **关系数据库**:通过二维表格的形式存储数据的数据库类型。 2. **实体**:现实中可区分的对象或事物,如学生、书籍等。 3. **属性**:实体的特性,例如学生的...

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

    在实际工程中,数据库设计三大范式的应用可以分为以下几个步骤: 1. 确定数据库的基本结构和字段类型。 2. 确定候选关键字和关键字。 3. 应用第一范式、第二范式和第三范式来消除数据冗余和异常。 4. 应用鲍依斯-科...

    数据库设计教程系列 数据库范式.docx

    目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,也称完美范式)。 第一范式(1NF)是指每一列的值的原子性、不可分割性...

    经典SQL语句大全,sql基础培训资料,数据库设计三范式

    数据库设计的三范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。它们是确保数据库逻辑结构合理、减少数据冗余和异常的关键原则。 11. **事务处理** 事务是一系列数据库操作的集合,具有原子性、一致...

    数据库范式的详细讲解

    主关键字达到以下几个条件:1. 主关键字段在表中是唯一的;2. 主关键字段中没有复本;3. 主关键字段不能存在空值;4. 每条记录都必须有一个主关键字;5. 主关键字是关键字的最小子集。 然而,满足 1NF 的关系模式有...

    数据库范式介绍

    在深入探讨数据库范式之前,我们先来了解一下几个重要的基本概念。 **实体(Entity)**: 实体指的是现实世界中能够被区分和独立存在的对象或事物。例如,“学生”、“课程”等都是具体的实体。 **属性(Attribute...

    数据库范式练习题.doc

    并完成下题:已知教学关系,教学(学号,姓名,年龄,性别,系名,系主任,课程名,成绩),试问该关系的主键是什么,属于第几范式,为什么?如果它不属于 3NF,请把它规范到 3NF。 答案:教学关系的主键是学号,该...

    数据库关系模式的范式(详细解说)

    ### 数据库关系模式的范式详解 #### 一、引言 在数据库设计领域,确保数据的合理组织和存储至关重要。关系模式的范式是一种重要的理论框架,用于指导数据库的设计和优化,以减少数据冗余并提高数据一致性。本文将...

    通用(oracle DB2 )数据库设计范式

    - 同一种型号的配件可以分放在几个仓库中。 **问题:** - 部分依赖:`QNT`部分依赖于`(WNO, PNO)`。 - 传递依赖:`ENO`通过`(WNO, PNO)`间接依赖于`PNO`。 **解决方案:** 可以将表分解为`WP(WNO, PNO, ENO)` 和 `...

    [数据库原理]关系范式总结(自用)

    本文将对关系范式的几个关键点进行总结,包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及更高级别的BCNF范式。 #### 二、第一范式(1NF) 1. **定义**:一个关系模式如果满足以下两个条件,则认为该...

    (精品word)数据库范式练习题.doc

    并完成下题:已知教学关系,教学(学号,姓名,年龄,性别,系名,系主任,课程名,成绩),试问该关系的主键是什么,属于第几范式,为什么?如果它不属于 3NF,请把它规范到 3NF。 解答:该关系的主键是学号,属于...

    关系型数据库---第一范式

    第一范式(1NF)是关系型数据库设计理论中的一种规则,要求每个字段都是原子型的,表格没有多值项目和重复组,并且每个字段都有一个关键字(key)。 在关系型数据库中,第一范式的应用是非常重要的,因为它可以确保...

Global site tag (gtag.js) - Google Analytics