****** 二十四 ******、软设笔记【数据库】-数据模型-关系模型、基本概念、规范化理论、范式

数据模型
    一、关系模型
        在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
        用表格结构表达实体集,用外键(外码)表示实体间的联系。

        *优点:
            >建立在严格的数学概念基础上
            >概念单一,结构简单、清晰,用户易懂易用
            >存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作。
        *缺点:由于存储路径透明,查询效率往往不如非关系数据模型。

    二、基本概念
        1.域
            是一组具有相同数据类型的值的集合。
                >整数
                >实数
                >{‘男’, ‘女’}
                >.............

        2.笛卡尔积
            给定一组域D1,D2,...,Dn,这些域中可以有相同的。
                D1,D2,...,Dn的笛卡尔积为:
                D1 x D2 x ... x Dn = {(d1, d2, ... dn) | di 属于 Di, i= 1,2,..., n}

            *所有域的所有取值的一个组合
            *不能重复

        3.关系
            D1 x D2 x ... x Dn的子集叫做在域D1,D2,...,Dn上的关系,表示为
                R(D1 x D2 x ... x Dn)

            R:关系名
            n:关系的目或度(Degree)

        1.关系的表示
                关系也是一个二维表,表单每行对应一个元组,表的每列对应一个域

        2.属性
            关系中不同列可以对应相同的域
            为了加以区分,必须对每列起一个名字,称为属性(Attribute)
            n目关系必有n个属性

        3.候选码(Candidate key)
                若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码

        4.主码(Primary key)
                若一个关系有多个候选码,则选定其中一个为主码

    基本关系具有以下6个性质:
        (1)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域,
        (2)不同的列可出自同一域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
        (3)列的顺序无所谓,即列的次序可以任意交换。
        (4)任意两个元组不能完全相同。
            但多数实际关系数据库产品中,例如Oracle等,如果用户没有定义有关的约束条件,它们都允许关系表中存在两个完全相同的元组,
        (5)行的顺序无所谓,即行的次序可以任意交换。
        (6)分量必须取原子值,即每一个分量都必须是不可分的数据项。

    关系的描述称为关系模式,关系模式是一个五元组,形式化地表示为:
        R(U,D,DOM,F)
        R  关系名
        U  组成该关系的属性名集合
        D  属性组U中属性所来自的域
        DOM  属性向域的映象集合
        F  属性间的数据依赖关系集合

    通常简记为R(A1,A2,...,An)。R为关系名,A1,A2...为属性名。


    三、规范化理论
        设有一个关系模式R(SNAME, CNAME, TNAME, TADDRESS),其属性分别表示学生姓名、课程名、任课教师姓名和任课老师地址。
        这个模式存在下列存储异常的问题。
            (1)数据冗余
            (2)修改异常
            (3)插入异常
            (4)删除异常

        把R分解成下列三个关系模式:R1(SNAME,CNAME)和R2(CNAME,TNAME),R3(TNAME, TADDRESS),则能消除上述的存储异常现象。

        模式设计强调“每个联系单独表达”是一条重要的设计原则

    四、范式
        (1)第一范式(1NF)
            如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式,r是规范化的关系。

            说明:在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。

        (2)第二范式(2NF)
            若关系模式R是1NF,且每个非住属性完全函数依赖于候选键,那么称R是2NF模式。
            简单的说,是表中的属性必须完全依赖于全部主键,而不是部分主键。所以只有一个主键的表如果符合第一范式,那一定是第二范式。
            例如员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是唯一的,因此每个员工可以被唯一区分。

        (3)第三范式(3NF)
            如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码,则称R是3NF。
            例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。
            那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。

        (4)BC范式(BCNF)
            若关系R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF模式。
            相对于第三范式,BC范式的要求更加严格。第三范式只是要求R为第二范式且非主属性不传递依赖于R的候选键,而BC范式则是对R的每个属性都做要求。
            在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。
            每一个教师只教一门课。没门课由一名教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称:(S,J)=> T,(S,T) => J, T => J

        





posted @ 2018-05-13 21:34  CHANGEMAX  阅读(68)  评论(0编辑  收藏  举报