zoukankan      html  css  js  c++  java
  • 函数依赖概念理解与判断

    函数依赖概念理解与判断

    函数依赖:

    符号表示:X→Y

    定义:6.1设R(U)是属性集U.上的关系模式,X, Y是U的子集。若对于R(U)的任意
    一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,
    则称X函数确定Y或Y函数依赖于X,记作X→Y。

    理解定义:设X,Y为两个集合,对于集合X中的所有元素,在Y中都能得到对应。

    ①当X值不同时:X既可以对应Y的相同元素,也能对应不同元素。

    ②当X值相同时:X只能对应Y中的相同元素。

    判断是否是函数依赖:

    当然,偶认认真真读了几遍概念还是一脸懵逼QAQ但总不能不会,毕竟要还要应用,所以下面结合了比较容易理解的属性间的关系来使用它,也就是通过一对一、一对多、多对一、多对多的关系来判断两个集合是否存在依赖关系。

    首先来死背下面3条关系:

    1.X和Y是一对一的关系,则X→Y,Y→X

    2.X和Y是多对一的关系,则X→Y

    3.X和Y是多对多或是一对多的关系,则X与Y不存在依赖关系~

    实例:对于表Student(sno,sname,ssex,cno,scourse,grade),先说明一个大前提,这里没有任何规定,因此默认姓名、课程名、分数和性别在表中允许存在相同的值,学号和课程号都不允许存在相同的值。

    判断下列依赖关系是否正确:

    ①sno→sname ②sno→ssex ③(sno,sname)→scourse ④(sno,cno)→grade

    ①sno→sname:一个姓名可以决定多个学号,一个学号只能决定一个姓名,这里不要懵哇,想想,2个同名的人是不是有两个学号!!因此学号和姓名是多对一的关系,所以有sno→sname

    ②sno→ssex:一个性别可以决定多个学号,一个学号只能决定一个性别,所以有sno→ssex

    ③(sno,sname)→scourse:一个姓名和一个学号可以决定多门课程,一门课程决定多个学号和姓名选修,因为一个学生能够选修多门课程嘛,一门课程也能被多个学生选修,所以学号和姓名二者跟课程是多对多的关系,不存在函数依赖,不能得出(sno,sname)→scourse

    ④(sno,cno)→grade:一个姓名和一个课号可以决定一个分数,一个分数可以决定多个姓名和课号,因为一个学生选修一门课考完试当然只有一个成绩啦,一个分数能够有很多人考到,比如100分就特别多(干巴爹!你就是其中一个!),因此学号和课号二者跟分数是多对一的关系,因此可以得出,(sno,cno)→grade

    so懂了叭还不懂偶也莫得了xddd

    非平凡函数依赖:

    符号表示:X→Y,Y⊊X

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

    理解定义:理解了函数依赖就好理解这个了,X决定Y,而Y不是X的子集。

    实例:选择题:在关系SC(Sno,Cno,Grade)中,非平凡函数依赖包括()。

    A.(Sno,Cno)→Sno

    B.(Sno,Cno)→Cno

    C.(Sno,Cno)→Grade

    D.(Sno,Grade)→Cno

    先看AB,虽然AB的依赖关系都是正确的,但是A中Sno作为Y,(Sno,Cno)作为X,Sno存在(Sno,Cno)中,也就是X→Y,Y⊆X,因此属于平凡函数依赖,B同理~,C的依赖关系也是正确的,还不懂咋判断依赖关系往上看哇233,Grade也不在(Sno,Cno)中,所以有X→Y,Y⊊X,故选C,再看D,一个学号和一个分数可以决定多个课号,一门课号可以决定多个学号和分数,比如偶的数据结构考了80分,会计学基础考了80分(滑稽,好吧严肃点把会计学当然程序设计语言吧,毕竟偶只是计算机专业),数据结构可以有很多名学生的考试成绩,因此,(Sno,Grade)与Cno是多对多的关系,不存在依赖关系,本身式子纠错啦233

    平凡函数依赖:

    定义:X→Y,但Y⊆x,则称X→Y是平凡的函数依赖。对于任一 关系模式,平凡函数依赖
    都是必然成立的,它不反映新的语义。若不特别声明,总是讨论非平凡的函数依赖。

    偷懒:这里就不一一理解啦,跟非平凡依赖差不多相反的啦der~~

    完全函数依赖:

    书上讲得好哇哈哈哈哈哈

    1587650366550

    部分函数依赖:

    讲得好哇蛤蛤哈

    1587650395192

    完全函数依赖和部分函数依赖的判断:

    对于表Student(sno,cno,Grade,Sdept),默认分数和系别在表中允许存在相同的值,学号和课程号都不允许存在相同的值。

    1587651560254

    (字丑该挨打

    传递函数依赖:

    1587651850199

    对于表Student(sno,cno,Grade,Sdept),默认分数和系别在表中允许存在相同的值,学号和课程号都不允许存在相同的值。

    1587652137584

  • 相关阅读:
    使用UIImagePickerController时3DTouch引起的Crash问题的解决--备用
    阿帕奇证书配置
    终端编写c程序
    native2ascii 在 Mac终端的转码
    mac 下 配置 阿帕奇
    苹果电脑的坑
    iOS证书快要过期怎么办?
    An unspecified error occurred!
    一个苹果证书怎么多次使用
    多媒体开发之---live555的多线程支持,原本只是单线程,单通道
  • 原文地址:https://www.cnblogs.com/lightice/p/12764797.html
Copyright © 2011-2022 走看看