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

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

     

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

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

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

     

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

     

    假设存在关系:

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

    主键:学号+课程号

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

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

     

    完全函数依赖分析

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

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

     


    部分函数依赖分析

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

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

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

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

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

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

     

    传递函数依赖分析

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

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

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

     

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

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

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

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

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

     

    展开全文
  • 数据依赖指的是通过一个关系中属性间的相等与否体现出来的数据间的相互关系,其中最重要的是函数依赖和多值依赖。 2.函数依赖 设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们...
     
    

    1.数据依赖

    数据依赖指的是通过一个关系中属性间的相等与否体现出来的数据间的相互关系,其中最重要的是函数依赖和多值依赖。

    2.函数依赖

    设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们的Y属性值也相同,则称X函数决定Y,或Y函数依赖于X。

    3.平凡函数依赖

    当关系中属性集合Y是属性集合X的子集时(Y?X),存在函数依赖X→Y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。

    4.非平凡函数依赖

    当关系中属性集合Y不是属性集合X的子集时,存在函数依赖X→Y,则称这种函数依赖为非平凡函数依赖。

    5.完全函数依赖

    设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。

    6.部分函数依赖

    设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。

    7.传递函数依赖

    设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。

    函数依赖 
    设R(U)是一个属性集U上的关系模式,X和Y是U的子集。 
    若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。 
    X称为这个函数依赖的决定属性集(Determinant)。 
    Y=f(x) 
    说明: 
    1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 
    2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 
    例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立 
    3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。 
    例: Student(Sno, Sname, Ssex, Sage, Sdept) 
    假设不允许重名,则有: 
    Sno → Ssex, Sno → Sage , Sno → Sdept, 
    Sno ←→ Sname, Sname → Ssex, Sname → Sage 
    Sname → Sdept 
    但Ssex -\→Sage 
    若X→Y,并且Y→X, 则记为X←→Y。 
    若Y不函数依赖于X, 则记为X-\→Y。 
    在关系模式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的真子集x1,使得x1->y,则 y部分依赖于 x。 
    完全函数依赖:若x->y并且,对于x的任何一个真子集x1,都不存在x1->y 则称y完全依赖于x。 


    逻辑蕴含 举个例子: 
    y=f(x) 
    省=f(城市) 
    只要给出一个具体的城市值,就会有唯一一个省值和它对应,如"武汉市"在"湖北省".这里的"城市"是自变量x,"省"是因变量或函数值y.把x函数决定y,或y函数依赖于x表示为:x→y 
    设有关系模型R(A1,A2,...An),X和Y均为{A1,A2,..An}的子集,r是R的任一具体关系,t1,t2是r中的任意两个元祖.如果由t1[X]=t2[X]可以推导出t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y.

    你所问的码是说主码与候选码么?

    主码 
    我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。当然,其它字段可以辅助我们在执行这些操作时消除共享冲突,不过就不在这里讨论了。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。所以数据库在设计时,主键起到了很重要的作用。 
    常见的数据库主键选取方式有: 
    自动增长字段 
    手动增长字段 
    UniqueIdentifier 
    “COMB”类型
    候选码:除了主码,全码里面剩下的码!

    展开全文
  • 数据库,部分函数依赖,传递函数依赖,完全函数依赖,三种范式的区别

    要讲清楚范式,就先讲讲几个名词的含义吧:

    部分函数依赖:X,Y是关系R的两个属性集合,存在X→Y,若X’X的真子集,存在X’→Y,则称Y部分函数依赖于X

    举个例子:学生基本信息表R中(学号,身份证号,姓名)当然学号属性取值是唯一的,在R关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖与(学号,身份证号);


    完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。

    例子:学生基本信息表R(学号,班级,姓名)假设不同的班级学号有相同的,班级内学号不能相同,在R关系中,(学号,班级)->(姓名),但是(学号)->(姓名)不成立,(班级)->(姓名)不成立,所以姓名完全函数依赖与(学号,班级);


    传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。

    例子:在关系R(学号 ,宿舍, 费用)中,(学号)->(宿舍),宿舍!=学号,(宿舍)->(费用),费用!=宿舍,所以符合传递函数的要求;

     

     1 、第一范式(1NF)

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

      所谓第一范式(1NF)是指数据库表的每一列(即每个属性)都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。简而言之,第一范式就是无重复的列。

      2、 第二范式(2NF)

      第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是唯一的,因此每个员工可以被唯一区分。这个唯一属性列被称为主关键字或主键、主码。

      第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是非主属性依赖于主关键字。

      3 、第三范式(3NF)

      满足第三范式(3NF)必须先满足第二范式(2NF)。在满足第二范式的基础上,切不存在传递函数依赖,那么就是第三范式。简而言之,第三范式就是属性不依赖于其它非主属性。

    最后简单的总结一下:

    1第一范式(1NF):一个关系模式R的所有属性都是不可分的基本数据项。 

    2第二范式(2NF):关系模式R属于第一范式,且每个非主属性都完全函数依赖于键码。 

    3第三范式(3NF):关系模式R属于第一范式,且每个非主属性都不伟递领带于键码。 

    4 BC范式(BCNF):关系模式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------------------------------------

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

    展开全文
  • 一、函数依赖 函数依赖是数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系。 设R(U)是属性U上的一个关系模式,X和Y均为U={A1,A2,…,An}的子集,r为R的任一关系,如果...
  • 部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 举个例子:学生基本信息表R中(学号,身份证号,姓名)当然学号属性取值是唯一的,在R关系中,(学号...
  • 传递函数依赖 确定函数依赖的方法 码 外部码 范式 1NF 2NF 3NF BCNF 多值依赖 4NF 如何判断R为第几范式? 已知一个关系模式的属性之间的语义,也就是相互依赖的关系,如何判断该模式满足第几范式? 1、...
  • 数据库 函数依赖

    2020-06-03 19:29:34
    同样,对于F中的所有依赖,可以向左部添加额外元素,就得到了部分函数依赖 传递函数依赖:(学号,课程号)—>成绩,成绩—>等级,从这两个依赖我们可以推出:(学号,课程号)—>等级,这就是一个传递函数依赖...
  • 文章目录1 函数依赖1.1 函数依赖1.2 平凡与非平凡函数依赖1.3 完全函数依赖和部分函数依赖1.4 传递函数依赖2 范式2.1 第一范式(1NF)--- 码2.2 第二范式(2NF)--- 全部是码2.3 第三范式(3NF)--- 仅仅是码2.4 ...
  • 文章目录函数依赖概述什么是函数依赖函数依赖的特性非平凡的函数依赖其他特性函数依赖分析举例完全函数依赖与传递函数依赖完全函数依赖传递函数依赖其他概念候选键外来键逻辑蕴涵闭包小结 仿佛回到了被离散数学支配...
  • 关系数据库的基本概念 关系模型 关系数据库的标准语言 关系数据库的逻辑设计 针对一个具体的问题,应该如何构造一个适合于她的数据模式,即应该构造几个关系,每个关系由哪些属性组成等。 问题–什么是一个好的...
  • 函数依赖是关系数据库中非常重要的概念 包括平凡依赖,完全依赖,部分依赖以及传递依赖 ,这些都是关系数据库范式的基础 函数依赖基本概念 函数依赖基本定义 简单来说就是,只要属性X的属性值一样(x1=x2) ...
  • 数据库中的函数依赖 X ->Y的含义 X函数决定Y,或者Y函数依赖于X函数 平凡/非平凡的函数依赖 平凡的函数依赖要求Y是X的子集,就是自己决定自己或者自己的一部分. 如果Y不属于X,那么称为非平凡的函数依赖 完全依赖和...
  • 一、部分函数依赖: 设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。...三、传递函数依赖 设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,
  • 传递函数依赖4. 与函数依赖相关的概念(1). 候选键(2). 主键(3). 主属性(4). 外来键(5). 逻辑蕴含(6). 闭包二、函数依赖的 Armstrong 公理及其引理1. 函数依赖的 Armstrong 公理(1). 自反律(2). 增广律(3). 传递律2....
  • 基于《数据库系统概论》和《数据库系统概念》,阐述了函数依赖和范式及其相关概念、问题和用途,包括平凡与非平凡函数依赖、完全与部分函数依赖、传递函数依赖、码、第一范式、第二范式、第三范式和BC范式
  • 数据库的部分依赖、完全依赖传递依赖

    万次阅读 多人点赞 2018-12-06 13:40:59
    一、部分函数依赖: 设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 例如:通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB。 二、完全函数...
  • 传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全...
  • 部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 举个例子:通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB。 完全函数依赖:...
  • 数据库(笔记)——函数依赖

    千次阅读 多人点赞 2020-08-15 10:01:01
    函数依赖函数依赖的定义函数依赖的逻辑蕴涵逻辑蕴涵闭包函数依赖的推导规则完全函数依赖与部分函数依赖完全函数依赖部分函数依赖传递函数依赖候选键在函数依赖中的定义总结 函数依赖的定义 定义 函数依赖是关系模式...
  • 数据库 14---函数依赖

    2018-04-02 17:40:13
    导读1.概念 2.完全函数依赖与传递函数依赖 3.函数依赖的几个重要概念 4.关于函数依赖的公理
  • 函数依赖 函数依赖定义 R(U)是属性集U上的关系模式,X,Y是U的一个子集,r是R(U)中的任意给定的关系,对于r中的任意两个元组s和t,当s【X】=t【x】时,一定有s【y】=t【y】,称为Y函数依赖于X 记为 x->y x被...
  • 函数依赖及其公理定理(1NF ...没有传递函数依赖 BCNF 不能有依赖于非候选键的其他函数依赖 第四范式 有多值依赖,则一定依赖于候选键 1NF 第一范式 若关系模式R(U)中关系的每个分量都是不可分的 数据项(值、原子
  • 数据库中的函数依赖、键和范式

    千次阅读 2018-05-27 21:07:35
    1.函数依赖X→Y,表示Y依赖于X;X→Y,且Y→X不成立,Y→Z,则X→Z,表示Z传递依赖于X。2.键主属性:表示在候选键中的属性;超键:是指能够唯一标识一个元组的属性集;候选键:能够唯一标识一个元组,且不含多属性;...
  • 函数依赖:给定r®的一个实例,r®为一个关系实例。其中R为他的所有属性的集合。若存在a,b都是R的子集(a!=b),当a属性集合唯一确定的时候,就可以确定b属性集合。 平凡函数依赖: ...传递函数依赖: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 632
精华内容 252
关键字:

数据库传递函数依赖