美文网首页
COMP9311 Database Systems WEEK9

COMP9311 Database Systems WEEK9

作者: Sisyphus235 | 来源:发表于2017-09-21 11:58 被阅读0次

    1. Relational Design Theory

    1.1 Relation model introduction

    在ER model之外,最流行的数据模型是relation model,它大大简化了传统网络模型/层次模型的coding工作量。同时能够评估schema的优劣,使得数据存储更加简洁,关系更加清晰。

    一个好的database应该使用最小的存储空间体现所有的必要attributes,规避数据冗余。数据冗余最直接的弊端就是难以操作数据库,任何一个点的数据update,都要找到所有重复该数据的位置进行更新。所以database的design要尽可能减少tables之间的overlap,同时一个table实现一个功能,不要复合在一起。通常一个table只能含有一个entity。
    相比于ER model,relation model能够保证minimal redundancy,它可以深入到non-key的relation进行设计,但是ER model做不到。

    1.2 Notation/Terminology

    Relation schemas: upper-case letters, denoting set of all attributes (e.g. R, S, P, Q )
    Relation instances: lower-case letter corresponding to schema (e.g. r(R), s(S), p(P), q(Q) )
    Tuples: lower-case letters (e.g. t, t', t1, u, v )
    Attributes: upper-case letters from start of alphabet (e.g. A, B, C, D )
    Sets of attributes: simple concatenation of attribute names (e.g. X=ABCD, Y=EFG )
    Attributes in tuples: tuple[attrSet] (e.g. t[ABCD], t[X])

    重要概念:functional dependencies are constraints between attributes within a relation.
    A relation instance r(R) satisfies a dependency X → Y if
    --for any t,u ∈ r, t[X]=u[X] → t[Y]=u[Y]
    Y is functionally dependent on X, OR X determines Y
    schema-based dependency:
    --for any t, u ∈ any r(R), t[X] = u[X] → t[Y] = u[Y]

    Inference Rules:
    -Reflexivity, X -> X
    -Augmentation, X -> Y --> XZ -> YZ
    -Transitivity, X -> Y, Y -> Z --> X -> Z
    -Additivity, X -> Y, X -> Z --> X -> YZ
    -Projectivity, X -> YZ --> X -> Y, X -> Z
    -Pseudotransitivity, X -> Y, YZ -> W --> XZ -> W

    重要概念:Closures - The largest collection of dependencies that can be derived from F is called the closure of F and is denoted F+.

    1.3 Normalization

    Normalization是为了减少data/relation redundancy。共有6个normal forms(NF): 1NF, 2NF, 3NF, BCNF, 4NF, 5NF,前述顺序是redundancy从大到小。
    (1)1NF
    要求所有的attribute都是atomic的,所以任何composite的attribute都要把最细节的信息当做attribute,比如name中必须把所有first, middle, last放在attribute中,不能放入一个name作为attribute,而实际上name又分为first, middle, last。
    (2)2NF
    所有的非primary key都要完全depend on primary key,没有partial dependencies。
    (3)3NF
    所有的non-key attributes不能determine other non-key attributes。
    (4)BCNF
    所有的non-key attributes不能反过来决定primary key。
    4NF和5NF极少使用,因为redundancy的减少往往要以牺牲performance为代价,最常用的是3NF和BCNF。

    相关文章

      网友评论

          本文标题:COMP9311 Database Systems WEEK9

          本文链接:https://www.haomeiwen.com/subject/xdszsxtx.html