zoukankan      html  css  js  c++  java
  • 规范化与范式

    在关系数据库的设计过程中,对于同一个问题,选用不同的关系模式,其性能的优劣是大不相同的,为了区分关系模式的优劣,人们常常把关系模式分为各种不同等级的范式。

    一个低一级范式的关系模式,通过分解可以转换为若干个高一级范式的关系模式,这种过程称为关系的规范化
    关系的规范化主要目的是解决数据库中数据冗余插入异常删除异常更新异常等数据存储问题。
    关系规范化的基本方法是逐步消除关系模式中不合适的数据依赖,使模式达到某种程度的分离。

    范式(Normal  Form)是符合某一种级别的关系模式的集合。

    关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。

    目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。

    满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。

    一般说来,数据库只需满足第三范式(3NF)就可以了。

    第一范式:主属性(主键)不为空且不重复,字段不可再分(存在非主属性对主属性的部分依赖)。

    第二范式:如果关系模式是第一范式,每个非主属性都没有对主键的部分依赖

    第三范式:如果关系模式是第二范式,没有非主属性对主键的传递依赖部分依赖

    BCNF范式:所有属性都不传递依赖于关系的任何候选键。

    ——————————

    例题1:

    定义学生、教师和课程的关系模式STC(SNO,SN,SA,TN,CN,G),其中的六个属性分别为学生的学号、姓名、年龄、教师的姓名、课程名以及学生的成绩,则该关系为(  )。

    解析:候选键为学号+教师姓名或者学号+课程名,主键为其中之一,非主属性部分依赖于主键,所以为第一范式。

  • 相关阅读:
    sock编程
    Exceptional c++
    sort
    实现UDP高效接收/响应
    Iterator invalidation(迭代器失效)
    php 判断一个点是否在一个多边形区域内
    PHP 如何在txt里查找包含某个字符串的那一行?
    php 实现栈与队列
    微信支付 接口
    文章添加,删除,修改,分页列表
  • 原文地址:https://www.cnblogs.com/CKhomepage/p/10656942.html
Copyright © 2011-2022 走看看