关于直接函数依赖和传递函数依赖等概念问题

函数依赖,y=f(x),从函数角度来看就是一个相同的x,对应唯一一个y(其实表示圆的轨迹我们称之为方程,而不是函数,但我们一般不区分这两个概念)。。

那么z=f(y),也同理===》我们一个相同的x,对应唯一的y,而y对应唯一的z,说明相同的x,对应唯一的z.

从逻辑上看,x->z没毛病,但是为什么要搞出个传递函数依赖的新概念呢?


个人观点:我觉得传递依赖和直接函数依赖的区别在于语义上的区别:用一个例子来说明:中考结束了,高一的一个学生对应一个班级,一个班级对应一个班主任;我们将学生分到一个班级给班级分一个班主任是可以分开操作的(这句话好好想一想),而分班主任完全可能在学生录取到某个学校之前就确定好了,比如我周老师分配到1班。虽然最后的结果是一个学生必然对应一个班主任。。

我太懒了不给学生上课,虽然学生都很高兴,但是校长决定把我给炒了,然后换个认真的班主任--李萌萌,如果把(学生,班级,班主任)放到一个关系里存,那我们必须得更改所有的1班的班主任的姓名,但是如果我们分开来,(学生,班级),(班级,班主任)那么我们只需要修改(班级,班主任)里的一个元组就行了。虽然逻辑上学生确实对应一个班主任,但是如果我们建立(学生,班主任)这个关系,我们修改的数量和1班学生的个数是一样的。。。。

希望这个例子能很好地帮助你理解两个概念的区别。

另外直接依赖和传递依赖到底是不是一回事  这个链接里面也提出了这个问题,然后二楼的回答我觉得挺好的,对于应试做题来说,题目给出来的就是直接函数依赖,自己推导出来的就是传递依赖。

 

学到后面求闭包的时候就不管了,可以把直接依赖和传递依赖看成一样的了

 

你可能感兴趣的:(SQL)