精华内容
下载资源
问答
  • 一、函数依赖 函数依赖是数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系。 设R(U)是属性U上的一个关系模式,X和Y均为U={A1,A2,…,An}的子集,r为R的任一关系,如果...

    一、函数依赖

    函数依赖是数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系。

    设R(U)是属性U上的一个关系模式,X和Y均为U={A1,A2,…,An}的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X→Y。

    简单的说就是在属性U上有两个子集属性X,Y,由X属性可以获得一个元组,而X属性对应的Y属性获得相同的元组

    比如:
    (sno-学生ID,tno-教师ID,cno-课程ID,sname-学生姓名,tname-教师姓名,cname-课程名称,grade-成绩)
    1、sno→sname, cno→cname,(sno,cno)→grade √
    2、sname→sno, tno→cno, sno→tname × (不存在一一对应关系)

    二、平凡依赖

    如果X决定Y,而且Y属于X,也就是Y是X 的真子集,则称该依赖为平凡依赖;否则为非平凡依赖。
    简单的讲,X可以推导出自己活着自己的一部分。
    例如:
    在学生表(学号,姓名,年级)中,(学号,姓名)可以推出学号和姓名其中的任何一个,这就是平凡函数依赖.
    直白点说,就是只要Y是X的子集,Y就依赖于X

    非平凡依赖:在学生表(学号,姓名,年级)中,通过(学号,姓名)可以推出这个学生所在的年级,但年级不是(学号,姓名)的子集,这是非平凡函数依赖.((学号,姓名)就是一个x,学号或者姓名就是一个x’)。

    三、部分函数依赖和完全函数依赖

    如果X->Y且对于X的任意真子集X均不具有X->Y,则称Y对X完全函数依赖,否则称Y对X部分函数依赖。
    例如:
    完全依赖:通过{学生学号, 选修课程名}可以得到{该生本门选修课程的成绩},而通过单独的{学生学号}或者单独的{选修课程名}都无法得到该成绩,则说明{该生本门选修课程的成绩}完全依赖于{学生学号,选修课程名}

    部分函数依赖:通过{学生学号,课程号}可以得到{该生姓名},而通过单独的{学生学号}已经能够得到{该生姓名},则说明{该生姓名}部分依赖于{学生学号,课程号}; 又比如, 通过{学生学号,课程号}可以得到{课程名称},而通过单独的{课程号}已经能够得到{课程名称},则说明{课程名称}部分依赖于{学生学号,课程号}。(部分依赖会造成数据冗余及各种异常。)

    四、传递函数依赖

    在关系R(学号,宿舍,费用)中,通过{学号}可以得到{宿舍},通过{宿舍}可以得到{费用},而反之都不成立,则存在传递依赖{学号}->{费用}。(传递依赖也会造成数据冗余及各种异常。)

    微信搜一搜【梓莘】或扫描下方二维码交个朋友共同进步。文章持续更新中。在这里插入图片描述

    展开全文
  • 上回说到 已知学生的Sno就能推出学生的Sname 记做 Sno——>Sname ,Sname =f(Sno) 语义:Sno函数决定Sname,或者说是Sname依赖函数与Sno。...Y是非平凡函数依赖,反之是平凡函数依赖 例...

    上回说到 已知学生的Sno就能推出学生的Sname   记做  Sno——>Sname   ,Sname =f(Sno)    语义:Sno函数决定Sname,或者说是Sname依赖函数与Sno。

    接下来讨论如何根据属性间依赖情况来判定关系是否具有某些不合适的性质,通常按属性间依赖情况来区分关系规范化程度为第一范式1NF,2NF,3NF,BCNF

     

    下面介绍一些术语和记号:

      1.  X—>Y ,但Y不属于X,则称X->Y是非平凡的函数依赖,反之是平凡的函数依赖       例如X是Sno,Y是Sname     X能推出Y    但Y不属于X。反之

     

      2.  X—>Y   ,则称为这个函数依赖的决定属性组,也称决定因素。      例如X是Sno,Y是Sname     X能推出Y ,X就是决定因素

     

      3. X—>Y   Y—>X  记作X<— —>Y    相互都能推出相互依赖

     

      4. 如果X—>Y   对X属性组中每一个函数都依赖,称为:Y对X完全函数依赖。否之成为部分函数依赖。      例如需要(Sno,Cno)—>(grade)需要学号和课程号才能推出成绩,称为完全函数依赖,否之称为部分函数依赖

     

      5 X—>Y   但Y不属于X,Y—>Z  但Z不属于Y   则称为Z对X传递函数依赖。

      

    展开全文
  • 关系数据库的基本概念 关系模型 关系数据库的标准语言 关系数据库的逻辑设计 针对一个具体的问题,应该如何构造一个适合于她的数据模式,即应该构造几个关系,每个关系由哪些属性组成等。 问题–什么是一个好的...

    关注公众号凡花花的小窝,收获更多的考研计算机专业编程相关的资料
    6.1问题的提出
    关系数据库的基本概念
    关系模型
    关系数据库的标准语言
    关系数据库的逻辑设计
    针对一个具体的问题,应该如何构造一个适合于她的数据模式,即应该构造几个关系,每个关系由哪些属性组成等。
    问题–什么是一个好的数据库逻辑设计
    关系数据库逻辑设计
    针对具体问题,如何构造一个适合于它的数据模式
    数据库逻辑设计的工具──关系数据库的规范化理论
    一、概念回顾
    二、关系模式的形式化定义
    三、什么是数据依赖
    四、关系模式的简化定义
    五、数据依赖对关系模式影响

    一、概念回顾
    关系

    关系模式

    关系数据库

    关系数据库的模式
    一个例子
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    什么是一个好的模式
    好的模式不会发生插入异常,删除异常,更新异常,数据冗余应该尽量的减少
    由于模式中的某些数据依赖引起的
    用规范化的理论改造关系模式,消除其中的不合适的数据依赖。
    二、关系模式的形式化定义
    关系模式由五部分组成,即它是一个五元组:
    R(U, D, DOM, F)
    R: 关系名
    U: 组成该关系的属性名集合
    D: 属性组U中属性所来自的域
    DOM: 属性向域的映象集合
    F: 属性间数据的依赖关系集合

    三、什么是数据依赖在这里插入图片描述

    1. 完整性约束的表现形式
      限定属性取值范围:例如学生成绩必须在0-100之间
      定义属性值间的相互关连(主要体现于值的相等与否),
      即通过属性间值的相等与否来描述
      这就是数据依赖,它是数据库模式设计的关键

    2.数据依赖
    是通过一个关系中的属性间的值相等与否来体现出来的数据的相互关系
    是现实世界属性间相互联系的抽象
    是数据内在的性质
    是语义的体现
    类型
    函数依赖Functional Dependecy简单记为FD
    多值依赖Mutivalued Dependecy简记为NVD
    连接依赖
    。。。。
    数据依赖对关系模式的映像
    不合适的数据依赖,造成的插入异常,删除异常,更新异常,和数据冗余问题
    3.关系模式的简化表示
    关系模式R(U, D, DOM, F)
    简化为一个三元组:
    R(U, F)
    当且仅当U上的一个关系r满足F时,r称为关系模式 R(U, F)的一个关系
    当且仅当U上的一个关系r满足F的时候,r称为关系模式R(U,F)的一个关系。
    在这里插入图片描述
    [例1]建立一个描述学校教务的数据库:
    学生的学号(Sno)、所在系(Sdept)
    系主任姓名(Mname)、课程名(Cname)
    成绩(Grade)

    单一的关系模式 : Student <U、F>
    U ={ Sno, Sdept, Mname, Cname, Grade }
    属性组U上的一组函数依赖F:
    F ={ Sno → Sdept, Sdept → Mname,
    (Sno, Cname) → Grade }
    在这里插入图片描述
    关系模式Student<U, F>中存在的问题

    1. 数据冗余太大
    2. 更新异常(Update Anomalies)
    3. 插入异常(Insertion Anomalies)
    4. 删除异常(Deletion Anomalies)

    结论:
    Student关系模式不是一个好的模式。
    “好”的模式:
    不会发生插入异常、删除异常、更新异常,
    数据冗余应尽可能少
    原因:由存在于模式中的某些数据依赖引起的
    解决方法:通过分解关系模式来消除其中不合适
    的数据依赖
    把这个单一模式分成3个关系模式:
    S(Sno,Sdept,Sno → Sdept);
    SC(Sno,Cno,Grade,(Sno,Cno) → Grade);
    DEPT(Sdept,Mname,Sdept→ Mname)

    第3讲函数依赖以及范式的概念
    6.2 规范化
    规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
    6.2.1 函数依赖
    函数依赖
    平凡函数依赖与非平凡函数依赖
    完全函数依赖与部分函数依赖
    传递函数依赖
    一、函数依赖
    定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
    若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。 在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    函数依赖不是指关系模式R的某个或者某些关系实例r满足约束条件,而是指R的所有关系实例r均要满足的约束条件。
    说明
    1. 所有关系实例均要满足

    1. 语义范畴的概念

    2. 数据库设计者可以对现实世界作强制的规定
      如何确定函数依赖
      函数依赖是语义范畴的概念,只能根据数据的语义来确定函数依赖
      比如Sname->Sno的函数依赖只有在学生不允许有重名的条件下成立。
      数据库设计者可以对现实世界作强制的规定
      例如设计者可以强行规定不允许学生有崇明,因而使函数依赖,Sname->Sno,Sname->Ssex,Sname->Sdept成立
      函数依赖是指关系模式R在任何时刻的关系实例都要满足的约束条件
      不是指某个或者某些关系实例r满足的约束条件,而是指实例r均要满足的约束条件。
      2.平凡函数依赖与非平凡函数依赖
      在关系模式R(U)中,对于U的子集X和Y,
      如果X→Y,但Y  X,则称X→Y是非平凡的函数依赖
      若X→Y,但Y  X, 则称X→Y是平凡的函数依赖
      例:在关系SC(Sno, Cno, Grade)中,
      非平凡函数依赖: (Sno, Cno) → Grade
      平凡函数依赖: (Sno, Cno) → Sno
      (Sno, Cno) → Cno
      在这里插入图片描述
      在这里插入图片描述
      若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。
      若X→Y,Y→X,则记作X←→Y。
      若Y不函数依赖于X,则记作X→Y。

    在这里插入图片描述
    三、完全函数依赖与部分函数依赖
    定义6.2 在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’ Y, 则称Y对X完全函数依赖,记作
    X F Y。
    若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X P Y。

    4.传递函数依赖
    在这里插入图片描述

    [例1] 中(Sno,Cno)→Grade是完全函数依赖,
    (Sno,Cno)→Sdept是部分函数依赖
    因为Sno →Sdept成立,且Sno是(Sno,Cno)的真子集

    四、传递函数依赖
    定义6.3 在R(U)中,如果X→Y,(Y X) ,Y→X Y→Z, 则称Z对X传递函数依赖。
    记为:X → Z

    注: 如果Y→X, 即X←→Y,则Z直接依赖于X。

    例: 在关系Std(Sno, Sdept, Mname)中,有:
    Sno → Sdept,Sdept → Mname
    Mname传递函数依赖于Sno

    在这里插入图片描述
    在这里插入图片描述
    6.2.2 码
    定义6.4 设K为R<U,F>中的属性或属性组合。若K U, 则K称为R的侯选码(Candidate Key)。
    若候选码多于一个,则选定其中的一个做为主码(Primary Key)。
    在这里插入图片描述
    主属性与非主属性
    包含在任何一个候选码中的属性 ,称为主属性(Prime attribute)
    不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute)
    全码
    整个属性组是码,称为全码(All-key)
    全码整个属性组是码,称为全码,
    不包含在任何码中的属性称为非主属性,或称为非码属性
    [例2]
    关系模式S(Sno,Sdept,Sage),单个属性Sno是码,
    SC(Sno,Cno,Grade)中,(Sno,Cno)是码
    [例3]
    关系模式R(P,W,A)
    P:演奏者 W:作品 A:听众
    一个演奏者可以演奏多个作品
    某一作品可被多个演奏者演奏
    听众可以欣赏不同演奏者的不同作品
    码为(P,W,A),即All-Key
    在这里插入图片描述
    在这里插入图片描述
    包含在任何一个候选码中的属性,称为主属性
    不包含在任何码中的属性称为非主属性
    全码:整个属性组是码
    定义6.5 关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码
    如在SC(Sno,Cno,Grade)中,Sno不是码,但Sno是关系模式S(Sno,Sdept,Sage)的码,则Sno是关系模式SC的外部码
    主码与外部码一起提供了表示关系间联系的手段
    主码与外部吗一起提供了表示关系间联系的手段

    展开全文
  • 数据库复习】函数依赖

    千次阅读 2018-11-10 10:58:05
    数据库复习】函数依赖
  • 平凡/非平凡函数依赖 平凡函数依赖要求Y是X的子集,就是自己决定自己或者自己的一部分. 如果Y不属于X,那么称为非平凡函数依赖 完全依赖和部分依赖 完全依赖是指X决定Y,但是X的任意子集都不能决定Y,这就是完全...
  • 数据库原理之函数依赖、多值依赖

    万次阅读 多人点赞 2018-01-04 18:51:27
    平凡函数依赖非平凡函数依赖 设X,Y均为某关系上的属性集,且X→Y 1)若Y包含于X,则称X→Y为:平凡函数依赖; 2)若Y不包含于X,则称X→Y为:非平凡函数依赖。 Y包含于X内,W于X相交,与Y无直接交集。 则:X→Y为...
  • 针对一个具体的问题,应该如何构造一个适合于它的数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成。 由此引出了关系数据库理论,一个有问题的关系模式会...对于范式,又有了一个新的名词函数依赖 函数...
  • 平凡函数依赖

    千次阅读 2020-06-16 14:52:09
    平凡函数依赖 定义: 在Y函数依赖于X函数的基础上,即X→YX\to YX→Y时,如果Y⊂XY \subset XY⊂X,那么称X→YX\to YX→Y是平凡的函数依赖, 如果有Y⊂XY \subset XY⊂X,那么X→YX\to YX→Y一定成立 原因:因为Y⊂...
  • oracle数据库中的函数依赖

    千次阅读 2016-07-14 09:46:11
    所谓函数依赖是指关系中一个或一组属性的值...完全函数依赖:在一个关系中,若某个主属性数据项依赖于全部关键字称之为完全函数依赖。 比如:有一个表,有如下属性:学生ID,学生姓名,所修课程ID,课程名称,成
  • 平凡函数依赖非平凡函数依赖 完全函数依赖与部分函数依赖 传递函数依赖 确定函数依赖的方法 码 外部码 范式 1NF 2NF 3NF BCNF 多值依赖 4NF 如何判断R为第几范式? 已知一个关系模式的属性之间的...
  • 函数依赖是关系数据库中非常重要的概念 包括平凡依赖,完全依赖,部分依赖以及传递依赖 ,这些都是关系数据库范式的基础 函数依赖基本概念 函数依赖基本定义 简单来说就是,只要属性X的属性值一样(x1=x2) ...
  • 数据依赖指的是通过一个关系中属性间的相等与否体现出来的数据间的相互关系,其中最重要的是函数依赖和多值依赖。 2.函数依赖 设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们...
  • 定义:设一个关系为R(U),X和Y为属性集U上的子集,若X→Y且X不包含Y,则称X→Y为非平凡函数依赖,否则若XY则必有X→Y,称此X→Y为平凡函数依赖. 例如:在一个职工关系中,职工号总能函数决定它本身,记作“职工号→职工号”...
  • 数据库函数依赖——完全函数依赖、部分函数依赖、传递函数依赖【通俗易懂,博主会讲人话】 数据库函数依赖——完全函数依赖、部分函数依赖、传递函数依赖【通俗易懂,博主会讲人话】 1、函数依赖:在一个表里面,...
  • 1、函数依赖的定义设R(U)是属性集U.上的关系模式,X, Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X集合上的属性值相等,...
  • 非平凡函数依赖: ** 范式 本质有点类似通过范式的拆解,数据库的表越来越细。 ** 第一范式: 如果一个关系模式R的所有属性都是不可分的基本数据项,则R为第一范式 第二范式: 关系R属于第一范式,且每一个主...
  • 每一主属性完全函数依赖于候选键 第三范式 没有传递函数依赖 BCNF 不能有依赖于候选键的其他函数依赖 第四范式 有多值依赖,则一定依赖于候选键 1NF 第一范式 若关系模式R(U)中关系的每个分量都是不可分...
  • 1.啥是函数依赖? 设R(U)R(U)R(U)是属性集合U=A1,A2,…,AnU={A1,A2,…,An}U=A1,A2,…,An上的一个关系模式,X,YX, YX,Y是UUU上的两个子集,若对R(U)R(U)R(U)的任意一个可能的关系r, r中不可能有两个元组满足在XXX中的...
  • 基于《数据库系统概论》和《数据库系统概念》,阐述了函数依赖和范式及其相关概念、问题和用途,包括平凡与非平凡函数依赖、完全与部分函数依赖、传递函数依赖、码、第一范式、第二范式、第三范式和BC范式
  • 数据库函数依赖

    2021-04-24 15:21:27
    数据库函数依赖 @author:Jingdai @date:2021.04.24 函数依赖 设R(U)R(U)R(U)是属性集合U={A1,A2,..,An}U=\{A_1,A_2,..,A_n\}U={A1​,A2​,..,An​}上的一个关系模式,XXX、YYY是UUU上的两个子集,若对R(U)R(U)R(U)...
  • 非平凡函数依赖 X–>Y,但Y∉X,则尘=称X–>Y是非平凡函数依赖 平凡函数依赖 X–>Y,但Y∈X,则尘=称X–>Y是平凡函数依赖 完全函数依赖 若X–>Y,且对一X的任意一个真子集X’,都有X’-/->y,则...
  • 函数依赖:设R(U)是属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上得属性值相等,而在Y上的属性值不等,则称“X...平凡函数依赖非平凡函数依赖 给定关系模式R(...
  • 由于最近在看思维导图>>这本书, 其实大一就买了…刚开始看了一半没啥感觉, 最近突然想起来还有这...平凡依赖如果X→Y而且Y不是X的子集,则称X→Y是非平凡函数依赖. 例: (s#, cn) -> s#是平凡依赖, 而(s#, cn) -> aa就
  • 数据库 函数依赖

    2020-06-03 19:29:34
    函数依赖:即某些属性能够决定另一些属性,什么叫决定呢?加入存在依赖X—>Y,就是当X中属性相同时,Y中属性也对应相同 完全函数依赖:X—>Y中,去掉X中任意一个属性就会不满足了。F中全是完全函数依赖 部分...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,850
精华内容 1,540
关键字:

数据库非平凡函数依赖