• Database: Normal form


    refer to wikipedia---

    1NF(first normal form):

    1. There's no top-to-bottom ordering to the rows.

    2. There's no left-to-right ordering to the columns.

    3. There are no duplicate rows.

    4. Every row-and-column intersection contains exactly one value from the applicable domain (and nothing else).

    5. All columns are regular [i.e. rows have no hidden components such as row IDs, object IDs, or hidden timestamps].

    2NF(second normal form):

    if and only if it is in 1NF and every non-prime attribute of the table is dependent on the whole of a candidate key.

    A non-prime attribute of a table is an attribute that is not a part of any candidate key of the table.

    Not all 2NF tables are free from update anomalies.

    A table for which there are no partial functional dependencies on the primary key is typically, but not always, in 2NF.

    3NF(third normal form):

    The relation R (table) is in 2NF

    Every non-prime attribute of R is non-transitively dependent (i.e. directly dependent) on every superkey of R.

    transitive dependency is a functional dependency in which X → Z (X determines Z) indirectly, by virtue of X → Y and Y → Z (where it is not the case that Y → X).

    Requiring existence of "the key" ensures that the table is in 1NF; requiring that non-key attributes be dependent on "the whole key" ensures 2NF; further requiring that non-key attributes be dependent on "nothing but the key" ensures 3NF.

    BCNF(3.5 normal form):

    If a relational schema is in BCNF then all redundancy based on functional dependency has been removed, although other types of redundancy may still exist. A relational schema R is in Boyce–Codd normal form if and only if for every one of its dependencies X → Y, at least one of the following conditions hold:[4]

    • X → Y is a trivial functional dependency (Y ⊆ X)
    • X is a superkey for schema R

    A 3NF table which does not have multiple overlapping candidate keys is guaranteed to be in BCNF. Depending on what its functional dependencies are, a 3NF table with two or more overlapping candidate keys may or may not be in BCNF

    3NF:只消除非主属性对主属性的传递依赖;

    BCNF:消除所有属性对主属性的传递依赖。

    4NF(forth normal form):

    Table is in 4NF if and only if, for every one of its non-trivial multivalued dependencies X 	woheadrightarrow YX is a superkey—that is, X is either a candidate key or a superset thereof.

    trivial multivalued dependency X 	woheadrightarrow Y is one where either Y is a subset of X, or X and Y together form the whole set of attributes of the relation.

  • 相关阅读:
    02-NLP-04基于统计的翻译系统-01预处理
    02-NLP-03-LDA主题模型应用
    02-NLP-03-主题模型
    02-NLP-02-从朴素贝叶斯(NB)到语言模型
    02-NLP-02-用朴素贝叶斯完成语种检测
    02-NLP-02-朴素贝叶斯与应用
    linux中安装jdk以及eclipse的安装
    python中matplotlib总结
    请求重定向和请求转发
    javaEE中错误提示 Exception starting filter BackServletFilter java.lang.ClassNotFoundException: tmall.filter.BackServletFilter提示这个错误啊
  • 原文地址:https://www.cnblogs.com/yingzhongwen/p/3366306.html
Copyright © 2020-2023  润新知