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

简介: 删除异常:如果某个系的学生都毕业了,那么在删除该系学生信息同时,该系及系主任发信息也就不存在了

一、前言


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


二、关系模式存在问题


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


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


U = {Sno,Sdept,Mname,Cno,Grade}
Sno Sdept Mname Cno Grade
S1 计算机系 张教授 C1 95
S1 计算机系 张教授 C1 89
S2 计算机系 张教授 C1 92
S3 计算机系 张教授 C1 78
S3 计算机系 张教授 C1 83


语义如下:


1.一个系有若干学生,但一个学生只属于一个系

2.一个系只有一个正职负责人

3.一个学生可以选多门课,每门课有若干学生选修

4.每个学生学习每门课有一个成绩


关系模式存在的问题


1.数据冗余:系主任的名字重复出现

2.更新异常:由于数据冗余,所以一旦更换系主任后,就要修改与这个系有关的学生的每个元组

3.插入异常:如果有一个刚成立的系,但是没有学生,就没办法将系相关信息存入数据库

4.删除异常:如果某个系的学生都毕业了,那么在删除该系学生信息同时,该系及系主任发信息也就不存在了


三、函数依赖


1.引入


属性组U上的一组函数依赖F如下


F ={Sno→Sdept, Sdept→Mname, (Sno, Cno)→Grade}

30dbb243f0ec467fb590c038072b402e.png


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.完全函数依赖和部分函数依赖


ce2cec78a7c3463194f4d09b4d582041.png

30dbb243f0ec467fb590c038072b402e.png


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


5.传递函数依赖


cb1732ffc07948ec9930754c348de5e8.png

68711e06e67845a4baddb70c4ad584f6.png


相关文章
|
16天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
18天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
58 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
15天前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
23天前
|
人工智能 Cloud Native 容灾
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?
|
1月前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
86 3
|
1月前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
1月前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
|
24天前
|
NoSQL 前端开发 MongoDB
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。
|
7天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
23 1
|
9天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
24 4