zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    Quicksum -SilverN
    uva 140 bandwidth (好题) ——yhx
    uva 129 krypton factors ——yhx
    uva 524 prime ring problem——yhx
    uva 10976 fractions again(水题)——yhx
    uva 11059 maximum product(水题)——yhx
    uva 725 division(水题)——yhx
    uva 11853 paintball(好题)——yhx
    uva 1599 ideal path(好题)——yhx
    uva 1572 self-assembly ——yhx
  • 原文地址:https://www.cnblogs.com/yingzhongwen/p/3366306.html
Copyright © 2011-2022 走看看