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.第一范式(确保每列保持原子性)

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

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

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

     

     

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

  • 相关阅读:
    python2.7打印中文乱码的问题解决
    Tesseract5.0训练字库,提高OCR特殊场景识别率(一)
    git比较重要但是又容易忘记的操作
    ntp局域网时间同步操作
    Flask使用原生sql语句
    Linux的tail命令查看文件
    使用gitlab的webhook进行前端自动部署
    通过queue实现前端的被动接收
    互动interactive与多行输出
    复习
  • 原文地址:https://www.cnblogs.com/viewcozy/p/4652297.html
Copyright © 2011-2022 走看看