数据库系统概论第六章(关系数据理论)知识点总结(1)—— 函数依赖概念总结

本专栏收录了数据库的知识点,而从本文起,将讲述有关于关系数据理论中的第一范式、第二范式、第三范式以及BC范式有关知识点,提供给有需要的小伙伴进行学习,本专栏地址可以戳下面链接查看

🎈 数据库知识点总结(持续更新中):【数据库知识点

🔑 数据库相关练习题(持续更新中):【数据库练习题

🔥 一个提供给Java学习者的专栏:【拼图小游戏(Java)

一、前言

在解决一个具体问题时,要构造一个属于该问题的数据模式,设计一个较好的关系模式,因而我们需要学习关系数据库

二、关系模式存在问题

  • 数据冗余
  • 更新异常
  • 插入异常
  • 删除异常

光讲述这四个问题可能大家没有什么概念,那么通过一个例子带大家浏览一下关系模式存在的问题

U = {Sno,Sdept,Mname,Cno,Grade}

SnoSdeptMnameCnoGrade
S1计算机系张教授C195
S1计算机系张教授C189
S2计算机系张教授C192
S3计算机系张教授C178
S3计算机系张教授C183

语义如下:

  1. 一个系有若干学生,但一个学生只属于一个系
  2. 一个系只有一个正职负责人
  3. 一个学生可以选多门课,每门课有若干学生选修
  4. 每个学生学习每门课有一个成绩

关系模式存在的问题

  1. 数据冗余:系主任的名字重复出现
  2. 更新异常:由于数据冗余,所以一旦更换系主任后,就要修改与这个系有关的学生的每个元组
  3. 插入异常:如果有一个刚成立的系,但是没有学生,就没办法将系相关信息存入数据库
  4. 删除异常:如果某个系的学生都毕业了,那么在删除该系学生信息同时,该系及系主任发信息也就不存在了

三、函数依赖

1.引入

属性组U上的一组函数依赖F如下
F ={Sno→Sdept, Sdept→Mname, (Sno, Cno)→Grade}
在这里插入图片描述

2.定义

  • 设R(U)是一个属性集U上的关系模式,X和Y是U的子集
  • 若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作x➡y
  • X称为决定因素Y称为依赖因素
  • 函数依赖是语义范畴的概念
  • 只能根据数据的语义确定函数依赖

3.平凡函数依赖与非平凡函数依赖

  • 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
因为Sno包含于(Sno, Cno) 中,Cno包含于(Sno, Cno) 中

4.完全函数依赖和部分函数依赖

在这里插入图片描述
在这里插入图片描述

  • Sno、Cno无法单独与Grade形成依赖关系,但是(Sno、Cno)与Grade可以形成函数依赖的关系,那么(Sno、Cno)与Grade存在 完全函数依赖(F) 关系
  • Sno、Cno中的Sno可以单独与Sdept形成依赖关系,并且(Sno、Cno)与Grade不能形成函数依赖的关系,那么(Sno、Cno)与Grade存在 部分函数依赖(P) 关系

5.传递函数依赖

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alita11101_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值