zoukankan      html  css  js  c++  java
  • SQL基础(巧记范式)

    第一范式介绍:

    如果关系模式R中的所有属性都是基本属性,即每个属性都是不可分的,那么R属于第一范式
    例:表中的高级职称人数(含有“教授”和“副教授”这两个基本属性组成),所以它不是基本属性,所有不属于第一范式。

    第二范式简介:

    如果R属于第一范式,且每个非主属性完全依赖于主码,就属于第二范式

    例:score表中的(sno,cno,grade),主键由sno,cno 共同组成,grade完全依赖于主键,所以score表属于第二范式

    S-L-C(sno,sname,ssex,sdept,sloc,cno,grade) 由于sname依赖于sno 而不是依赖于sno和cno的联合主键,所以S-L-C表不符合第二范式

    分解主键,然后将只有主键构成的子集删除

    S-L-C(sno,sname,ssex,sdept,sloc,cno,grade)
    分解:
    (sno,sname,ssex,sdept,sloc)
    (cno)
    (sno,cno,grade)

    去除只有主键的子集
    得:
    (sno,sname,ssex,sdept,sloc)
    (sno,cno,grade)

    第三范式简介:

    如果关系模型属于第二范式,且每个非主属性都不传递依赖于主码 ,则该关系模型R属于第三范式
    例如:S-L(sno,sname,ssex,sdept,sloc)
    其中 sdept依赖于sno,sloc依赖于sdept,所以存在传递依赖
    固进行分解:
    (sno,sname,ssex,sdept)
    (sdept,sloc)
    (sno,cno,grade)

    BC范式简介:

    这是一种为了解决第三范式的冗余性问题和更新的问题提出的


    例子:
    csz(city,street,zip)
    城市,街道,邮编
    zip依赖于(city、street)
    city依赖于zip
    所以进行分解
    ZC(zip,city)
    SZ(street,city)

  • 相关阅读:
    Zero Copy
    内核态(Kernel Mode)与用户态(User Mode)
    Netty端口被占用问题
    AsyncHttpClient的连接池使用逻辑
    HashMap 与 ConcurrentHashMap
    Java NIO Test Case
    Netty writeAndFlush() 流程与异步
    Java 文件路径相关
    代理的匿名程度
    Netty堆外内存泄露排查与总结
  • 原文地址:https://www.cnblogs.com/Stakes-ds/p/8443341.html
Copyright © 2011-2022 走看看