精华内容
下载资源
问答
  • 函数依赖

    千次阅读 多人点赞 2019-04-11 20:01:18
    知识点一:函数依赖可分为完全函数依赖、部分函数依赖、传递函数依赖 完全函数依赖:关系R中,X、Y是属性集,X决定Y的值(X→Y),且任何一个X(子)都没办法决定Y的值 设一个学生选课信息的关系模式SC: SNO CNO...

    知识点一:函数依赖可分为完全函数依赖、部分函数依赖、传递函数依赖

    完全函数依赖:关系R中,X、Y是属性集,X决定Y的值(XY),且任何一个X(子)都没办法决定Y的值

       设一个学生选课信息的关系模式SC:

    SNO CNO CTITLE INAME IPLACE GRADE
    学号 课程编号 课程名 授课老师 老师办公地址 成绩

    在此关系中,(学号,课程编号)决定成绩为完全依赖。即其中的单个属性(无论是学号还是课程编号)都无法决定成绩

     

    部分函数依赖:关系R中,X、Y是属性集,X决定Y的值(XY),且X其中一个子集满足X(子)决定Y的值

       设一个学生住宿登记关系S1:

    SNO SNAME SSEX SROOM
    学号 姓名 性别 宿舍

    在此关系中,存在函数依赖(学号,姓名)决定性别,但其中

    学号就已经决定了性别,所以函数依赖(学号,姓名)决定性别就是部分依赖

     

    传递函数依赖:关系R中,X、Y、Z是属性集,X决定Y的值(XY),Y不决定X,Y决定Z的值(Y→Z),则有X决定Z(X→Z) 称Z传递函数依赖于X

       设一个图书的关系模式BOOKS

    BNO PNAME PADDRESS
    图书编号 出版社名 出版社地址

    在此关系中一个图书编号对应一个出版社名,但一个出版社可能对应多个图书编号(一个出版社可出版多本图书),一个出版社只有一个地址,所以一个图书编号对应一个出版社地址,则有出版社地址对图书编号的传递函数依赖。

    关键字:在关系R中,U是所有关系的集合,X完全依赖U,则X为R的一个候选关键字。

      在学生选课的关系模式SC中,属性集(学号、课程编号)为候选关键字,于是学号和课程编号为主属性。

    展开全文
  • 数据库部分函数依赖 完全函数依赖 传递函数依赖 第一范式、第二范式、第三范式、BCNF范式区别 在理解函数依赖之前,先来看一下函数依赖分析: 在关系中,包括在任何候选码中的属性称为主属性;不包括在任何候选...

    数据库 部分函数依赖 完全函数依赖  传递函数依赖  第一范式、第二范式、第三范式、BCNF范式区别

     

    在理解函数依赖之前,先来看一下函数依赖分析:

    在关系中,包括在任何候选码中的属性称为主属性;不包括在任何候选码中的属性称为非主属性

    函数依赖只分析关系中的非主属性对主属性之间的依赖关系,并不分析主属性对主键(码)的依赖关系。

     

    具体关于部分函数依赖和完全函数依赖的定义,网上有很多,但大多都是概念,这里我从例子入手来分析,使大家更好的掌握部分函数依赖、完全函数依赖和传递函数依赖。

     

    假设存在关系:

    R(学号,姓名,性别,班级,班主任,课程号,课程名,学时数,成绩)

    主键:学号+课程号

    主属性:{学号,课程号}

    非主属性有:{姓名,性别,班级,班主任,课程名,学时数,成绩}

     

    完全函数依赖分析

    成绩依赖于学号和课程号两个字段的组合;但只知道学号无法确定成绩,同理只知道课程号也无法确定成绩;只有学号和课程号组合在一起才能标识哪个学生哪门课程的成绩;

    因此(学号,课程号)---->成绩  是“完全函数依赖”。

     


    部分函数依赖分析

    姓名、性别和班级三个属性只依赖于主键中的学号,与“课程号”无关。

    因此(学号,课程号)---->姓名是“部分函数依赖”

    (学号,课程号)---->性别是“部分函数依赖”

    (学号,课程号)----->班级是“部分函数依赖”

    课程名和学时数只依赖于课程号,

    因此(学号,课程号)----->课程名是“部分函数依赖”

     

    传递函数依赖分析

    班主任依赖于班级,与学号无关,与课程号也无关

    又因班级依赖于学号所以班主任间接依赖于学号

    因此,(学号,课程号)----->班主任是传递函数依赖

     

    范式这里就不说课本、网上那些晦涩难懂的概念了。

    1NF:无重复的列(数据库表中的每一列都是不可分割的基本数据项)

    2NF:满足1NF且非主键列都完全函数依赖于主键。

    3NF:满足2NF且非主属性列都不传递依赖于主键。

    BCNF:满足3NF且不允许主键的一部分被另一部分或其它部分所决定(即满足3范式,并且主属性之间没有依赖关系)。

     

    展开全文
  • 一、函数依赖 函数依赖是数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系。 设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(学号,宿舍,费用)中,通过{学号}可以得到{宿舍},通过{宿舍}可以得到{费用},而反之都不成立,则存在传递依赖{学号}->{费用}。(传递依赖也会造成数据冗余及各种异常。)

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

    展开全文
  • 书中将“部分函数依赖”和“完全函数依赖”归分为“直接函数依赖”,而“传递函数依赖”则是“间接函数依赖”。 在上述前提下,后文又写有: R∈1NF,且它的任一非主属性都完全依赖于任一候选关键字,则称R...
  • 数据库函数依赖——完全函数依赖、部分函数依赖、传递函数依赖【通俗易懂,博主会讲人话】 数据库函数依赖——完全函数依赖、部分函数依赖、传递函数依赖【通俗易懂,博主会讲人话】 1、函数依赖:在一个表里面,...

    1、函数依赖:在一个表里面,属性X可以映射到属性Y,也就是说知道了X就能确定Y,称X为决定因素。

    举栗子🌰:有一个关系模式S(Sno,Sname,Sage)

    如果知道了一个学生的学号Sno,那我就能确定他的姓名Sname和年龄Sage。
    函数依赖

    当然,如果你强制规定学生姓名不能重复。那么,知道了一个学生的姓名也是可以确定其他属性的,这也是满足函数依赖关系的。

    注:平凡函数依赖和非平凡函数依赖在这里不做解释

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

    直接举栗子🌰:有一个关系模式S(Sno,Sname,Cno,Grade)

    完全函数依赖:如果我想知道某位学生的某一门课的成绩Grade,那我必须得同时知道他的学号Sno和课程号Cno。
    但如果我只知道一部分信息,比如他的Sno或者Cno可以吗?答案是不行的!此时称Y[Grade]完全依赖于X[Sno,Cno]。
    完全函数依赖
    部分函数依赖:如果我想知道某位学生的姓名Sname,那我知道他的学号Sno就可以了。也就是说Y[Sname]只函数依赖于X[Sno,Cno]中的子集x[Sno],此时称Y部分函数依赖于X。
    部分函数依赖

    3、传递函数依赖

    直接讲人话🌰:有一个关系模式S(Sno,Sdept,Mname)

    如果我知道了一个学生的学号Sno,那我就能知道他所在的系Sdept。(因为理论上一个学生只属于一个系)
    如果我知道了某一个系Sdept,那么我就能知道这个系的系主任的姓名Mname。(一个系只有一个正的系主任,别杠,你赢了。)
    也就是说,我知道了一个学生的学号Sno,其实我就知道了他所在系的系主任的姓名Mname。但这个过程中,他们是不存在直接函数依赖的,我需要通过系名称Sdept作为一个桥梁去把二者联系起来的。
    传递函数依赖

    -------------------------------------END------------------------------------

    学习完数据库的函数依赖,可以继续学习数据库码的概念

    展开全文
  • 函数依赖:  简单来说就是一种决定关系,学生编号x决定学生姓名y,则称学生姓名y函数依赖于学生编号x,记做x->y。 部分函数依赖:  表达一种冗余的依赖关系,设U{A1,A2,…,An}是属性集合,R(U)为某关系...
  • 数据库,部分函数依赖,传递函数依赖,完全函数依赖,三种范式的区别
  • 这里写自定义目录标题完全函数依赖、部分函数依赖和传递函数依赖举例1. 完全依赖:2. 部分函数依赖:传递函数依赖: 完全函数依赖、部分函数依赖和传递函数依赖举例 1. 完全依赖: 通过{学生学号, 选修课程名}可以...
  • 完全函数依赖和部分函数依赖

    万次阅读 多人点赞 2017-08-21 19:55:26
    完全函数依赖 {学号,课号}-->成绩  学号+课号 可以决定 成绩 但只有学号or只有课号无法决定成绩    部分函数依赖  {学号,课号}-->姓名  只有学号就能决定姓名 (课号是冗余的) ...
  • 首先,什么是函数依赖?通俗来说,函数依赖指的是在数据库中,各种不同属性(或者属性集合)关系间的一种“约束”,也可以看作属性之间的一种映射,也是一种“依赖性”,存在“当且仅当”的前提。给定一个属性集U上的...
  • 部分函数依赖: 设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 **eg:**学生基本信息表R中(学号,身份证号,姓名)当然学号属性取值是唯一的,在R关系中,(学号,...
  • 范式 函数依赖 多值依赖

    千次阅读 2020-12-30 22:11:33
    第一范式、第二范式、第三范式、第四范式、第五范式、扩展第三范式、函数依赖、完全函数依赖、部分函数依赖、传递函数依赖、平凡函数依赖、多值依赖,定义、举例、图解、关系
  • 是部分函数依赖还是完全函数依赖,决定于是否有冗余条件来确定一个属性。 图的来源以及其他函数依赖和范式内容,见此链接
  • 数据依赖指的是通过一个关系中属性间的相等与否体现出来的数据间的相互关系,其中最重要的是函数依赖和多值依赖。 2.函数依赖 设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们...
  • 反过来说,当 X → Y,而又存在(X’ 为 X 的某一个真子集)X’ → Y 时,这时我们称其为 部分函数依赖。当 Y 部分函数依赖于 X 时,即根据 X 中的“部分”属性就可以确定对 Y 的关联,从数据依赖的观点看,X 中存在...
  • 数据库 函数依赖

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,676
精华内容 11,470
关键字:

函数依赖