zoukankan      html  css  js  c++  java
  • 数据库三大范式最通俗解释

    第一范式

    • 列不能够再分

    这是不符合第一范式的(红色代表主键)——地址列可以再分

    学生表

    id 姓名 性别 地址
    001 闪客sun 中国,吉林,长春

    这是符合第一范式的

    学生表

    id 姓名 性别 国家 省份 城市
    001 闪客sun 中国 吉林 长春

    第二范式

    • 首先要符合第一范式
    • 表必须有主键
    • 非主键列不能只依赖于主键的一部分 

    这是不符合第二范式的(红色代表主键)---商品名称依赖了主键的一部分商品ID

    订单表

    订单ID 商品ID 商品名称
    001 251 直升机

    这是符合第二范式的

    订单表

    订单ID 商品ID
    001 251

    商品表

    商品ID 商品名称
    251 直升机

    第三范式

    • 首先满足第二范式
    • 非主键列必须直接依赖于主键,不能存在传递依赖

    这是不符合第一范式的(红色代表主键)——学校描述没有直接依赖于主键,而是直接依赖于学校,学校直接依赖于主键,所以存在传递依赖

    学生表

    id 姓名 学校 学校描述
    001 闪客sun 氢化大学 中国最牛逼的学校

    这是符合第一范式的

    学生表

    id 姓名 学校id
    001 闪客sun 001

    学校表

    id 名称 描述
    001 氢化大学 中国最牛逼的学校

    PS:本文仅帮助你理解三大范式,深入了解还需要咬定义和具体例子

  • 相关阅读:
    Codeforces round 493 Convert to Ones
    石子合并系列问题【区间dp,环形,四边不等式优化】
    UVa 10635
    选课【树形dp】
    JSOI2016病毒感染
    加分二叉树【树形dp】
    人为什么活着__稻盛和夫的哲学
    213. House Robber II
    安装 error: Microsoft Visual C++ 14.0 is required 解决方案
    ImportError:no mudle named 'cv2'
  • 原文地址:https://www.cnblogs.com/flashsun/p/9254880.html
Copyright © 2011-2022 走看看