zoukankan      html  css  js  c++  java
  • 《数据库系统概论》 -- 6关系数据理论

    关系模式五元组

    R<U,D,DOM,F>

             R--关系名

             U--属性(组)

             D--U中的属性所来自的域

             DOM--属性到域的映射

             F--U中的数据依赖(函数依赖、多值依赖、连接依赖等)

    数据依赖不良会带来的危害

    数据冗余

    更新异常

    插入异常

    删除异常

    函数依赖

    概念         X,Y是R的子集,不存在任意两个元组在X上的取值相等,而在Y上的取值不等,称Y函数依赖于X,记作X→Y。

    关系举例         Student(Sno,Sname,Cno,Cname,Sdept,Dept_manager,Grade)

    理解         不存在同一个X有多个Y。Sno→Sdept,Sdept→Dept_manager

    分类

             平凡的函数依赖     X→Y, Y⊆X。(Sno,Sname) →Sname/*无意义,不讨论*/

             非平凡的函数依赖         X→Y, Y⊈X。Sno→Sname

             相互函数依赖         X→Y, Y→X。Sno→Sname, Sname→Sno/*适用于不允许重名的情况*/

             完全函数依赖         X→Y, Y不依赖于X的任一真子集。

             部分函数依赖         X→Y, Y亦可依赖于X的某一真子集。

             传递函数依赖         X→Y, Y不依赖于Z, Y→Z。

    候选码     对于R<U,F>,U中有子集K,且,则K为候选码

    主码         有多个候选码时,选一个作为主码

    主属性     任意一个候选码中的属性,均为主属性

    全码         U不存在子集候选码,U唯一确定自身,则为全码

    多值依赖

    定义

             对于R<U,F>,U有子集X,Y,Z,且Z=U-X-Y,如果对于给定的t(X,Z)值,对应的一组Y值的取值只与X值有关,而与Z值的变化无关,则称Y多值依赖于X,记作X→→Y

             如果Z为空值,则称平凡的多值依赖

    举例

             Teaching(Course, Teacher, Course_Book)

                       /*课程-老师-教材书*/

    理解

             一个老师可以带多门课程,一本教材可以被多个课程使用(如《数据结构》可被数学、计算机使用),解决了2NF的传递依赖

             每门课程有固定的一群老师,有固定的使用教材书,所以同一个课程,同一本教材所对应的老师组,不会因为教材而改变

    性质

             对称性:若X→→Y,则X→→Z

             传递性:若X→→Y, Y→→Z,则X→→Z-Y

             函数依赖是特殊的多值依赖

             若X→→Y,X→→Z,则X→→YZ,X→→Y∩Z,X→→Y-Z,X→→Z-Y

    1NF

    定义         R<U,F>中每一个分量必须是不可再分的数据项

    2NF

    定义         R<U,F>∈1NF,且每一个非主属性完全依赖于任何一个候选码

    理解         不能存在部分依赖于任一候选码的非主属性

    反例         S-L-C(Sno, Sdept, Cno, Cname, Grade)

    理解         候选码:(Sno,Cno)

                       因为Sno→Sdept,所以非主属性Sdept部分依赖于候选码(Sno, Cno)

    3NF

    定义         非主属性不可传递函数依赖于任一候选码

    理解         非主属性之间不可有依赖关系

    反例         S-L(Sno, Sdept, SAddress) /*SAddress为学生宿舍楼号,一个系一栋楼*/

    理解         候选码:Sno

                       因为Sno→Sdept, Sdept→SAddress,所以

    BCNF

    定义         R<U,F>∈1NF,若X→Y且Y⊈X时,X必包含候选码

    其他         由Boyce, Codd提出,在第三范式的基础上改进,故也称修正的第三范式/扩充的第三范式

    理解         所有的非平凡函数依赖的决定属性(组)必须包含候选码

    反例         STC(Student, Teacher, Course) /*每个老师教一门课,每门课由多个老师教,每个学生选多个课程*/

    理解         候选码(Student, Teacher, Course)

                       因为Teacher→Course,但是Teacher不是候选码

    4NF

    定义         R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y⊈X),X必包含候选码

    理解         所有非平凡多值依赖的决定属性(组)必须包含候选码

    反例         WSC(Warehouse, Saver, Commodity) /*仓库,保管员,商品*/

    理解         Warehouse→→Saver,但是Warehouse不是候选码

    图解

     

  • 相关阅读:
    设计模式之工厂方法3
    Orchard CMS中如何打包不带源码的模块
    Dump Checking
    认识WinDbg
    Bootstrap3.0学习第九轮(CSS补充)
    SVN版本冲突解决详解
    windbg Symbol file path
    SVN下错误集锦
    MvcMovieStore mvc5.0,EF6.01
    SQL Server中的窗口函数
  • 原文地址:https://www.cnblogs.com/yc913344706/p/7497404.html
Copyright © 2011-2022 走看看