zoukankan      html  css  js  c++  java
  • 【数据库范式】 分析题第一范式

    1、第一范式1NF

    定义:数据库表中的字段都是单一属性的,不可再分。

    简单的说,每一个属性都是原子项,不可分割。

     

    1NF是关系模式应具备的最起码的条件,如果数据库设计不能满足第一范式,就不称为关系型数据库。也就是说,只要是关系型数据库,就一定满足第一范式。

     

    我们先来看一张不符合1NF的表1-1

    CardNo

    StudentNo

    StudentName

    Sex

    Department

    CardCash

    UserID

    UserLevel

    Time

    001

    021101

    小明

    教育学院,心理系,1

    100

    Operator

    操作员

    2011/10/030900

     

    之所以说这张表不符合1NF,是因为DepartmentTime字段可以再分,所以应该更改为表1-2

    CardNo

    StudentNo

    StudentName

    Sex

    Academy

    Major

    class

    CardCash

    UserID

    UserLevel

    Date

    Time

    001

    021101

    小明

    教育学院

    心理系

    1

    100

    Operator

    操作员

    2011/10/03

    09:00

    --------------------------------

    1.第一范式(确保每列保持原子性)

    第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。

    第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式,如下表所示。

    上表所示的用户信息遵循了第一范式的要求,这样在对用户使用城市进行分类的时候就非常方便,也提高了数据库的性能。

     

     

    显然第一个表结构不但不能满足足够多物品的要求,还会在物品少时产生冗余。也是不符合第一范式的。

  • 相关阅读:
    潜入ICU的四逆汤
    经方医的视角
    黄连解毒汤治疗月经过多
    柳暗花明又一方
    PHP 相关性系数计算
    备忘-VSCODE、apache配置
    c# 基于文件系统实现的队列处理类
    notepad++ 快速运行PHP代码
    dat.gui stats.js 通用参数配置及图像统计工具
    AutoHotkey 自动化脚本工具实例
  • 原文地址:https://www.cnblogs.com/viewcozy/p/4652297.html
Copyright © 2011-2022 走看看