zoukankan      html  css  js  c++  java
  • 数据库三个范式

    Why one grouping of attributes into a relation schema may be better than another

    two levels we can discuss the goodness of relation schemas.

    logical(conceptual) level - how users interpret the relation schemas and the meaning of their attributes.
    implementation (physical storage) level - how the tuples in a base relation are stored and updated.

    Top-down design approach and as such is more appropriate when performing design of database by analysis and decomposition of sets of attributes

    Relational database design ultimately produces a set of relations. The implicit goals of the design activity are information preservation and minimum redundancy.

    Minimizing redundancy = minimize redundant storage of same information + reduce the need for multiple updates to maintain consistency across multiple copies of the same information.

    functional dependency: a formal constraint among attributes that is the main tool for formally measuring the appropriateness of attribute groupings into relation schemas.

    normalization 与 functional dependency的关系:
    the process of normalization using functional dependencies.

    1NF: 列的原子性,即列不能够再分成其他几列 联系电话包括: 家庭电话 和 公司电话, 需要拆分为两列在表里进行储存
    2NF: 完全依赖主键 OrderID 和 ProductID 也就是说, 2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖。
    3NF: 任何非主属性不依赖于其它非主属性。第三范式(3NF)是第二范式(2NF)的一个子集,即满足第三范式(3NF)必须满足第二范式(2NF)。

    Update Anomaly(更新异常): 修改一个列会 影响到其它的列 主要包括 insertion anomalies, deletion anomalies, and modification anomalies
    EMP_PROJ(Emp#, Proj#, Ename, Pname, No_hours) Update Anomaly: change the name of project number P1 from "Billing" to "Customer-Accounting" may cause this update to be made for all 100 employees working on project P1

    Insert Anomaly(插入异常): Can not insert a project unless an employee is assigned to it. 混在一起, 必须要处理不同的信息

    Delete Anomaly(删除异常): When a project is deleted, it will result in deleting all the employees who work on the project 会有多个行存一条Project信息
    改变Entity 的状态: 不应该受到影响

    Modification Anomaly(修改异常):

    Guidelines:
    非异常的情况: Design a schema that does not suffer from the insertion, deletion and update anomalies
    Relations should be designed such that their tuples will have as few NULL values as possible
    The relations should be designed to satisfy the losslee join condition:

    Candidate Key: 表中的一个属性或属性组,若除K之外的所有属性都完全依赖于K

    • 如何判断一个Relation 是否符合2NF?
    1. 数据表中所有的candidate key
    2. 根据candidate key, 找出主属性
    3. 找到所有的非主属性
    4. 查看是否存在非主属性对码的部分函数依赖

    完全函数依赖: 在一张表中,如果有X -> Y, 那么对于X的任何一个真子集, X' -> Y都不成立, 则Y对于X完全函数依赖。 也就是说X当中少了任何一个attribute都不能够唯一确定Y

    部分函数依赖: 是完全函数依赖的取反, X当中的部分的属性就可以确定Y

    传递函数依赖: Z函数依赖于Y, 且Y函数依赖于X,那么我们就称Z传递函数依赖于X

    NULL值用在什么地方?

    1. not applicable or invalid
    2. Attribute value unknown
    3. Value known to exist, but unavailable

    Closure of Attributes
    Given a relation, FD, a set of attributes A, find all B such that A -> B

  • 相关阅读:
    “终身幼儿园”:学习是一个创造的过程
    我对ERP实质的理解(陈启申)
    Java学习记录1java并发编程之synchronized初学
    谈谈你对Spring的理解
    java中的==与equals的区别
    Windows下编译安装perl Module
    win系统用virtualBox安装Ubuntu虚拟机,如何共享数据
    Windows下emacsw3m设置代理
    自我介绍
    document 对象
  • 原文地址:https://www.cnblogs.com/kong-xy/p/10036492.html
Copyright © 2011-2022 走看看