数据库系统概论第六章(关系数据理论)知识点总结(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


相关文章
|
2月前
|
存储 JSON 关系型数据库
【干货满满】解密 API 数据解析:从 JSON 到数据库存储的完整流程
本文详解电商API开发中JSON数据解析与数据库存储的全流程,涵盖数据提取、清洗、转换及优化策略,结合Python实战代码与主流数据库方案,助开发者构建高效、可靠的数据处理管道。
|
18天前
|
存储 数据管理 数据库
数据字典是什么?和数据库、数据仓库有什么关系?
在数据处理中,你是否常困惑于字段含义、指标计算或数据来源?数据字典正是解答这些问题的关键工具,它清晰定义数据的名称、类型、来源、计算方式等,服务于开发者、分析师和数据管理者。本文详解数据字典的定义、组成及其与数据库、数据仓库的关系,助你夯实数据基础。
数据字典是什么?和数据库、数据仓库有什么关系?
|
4月前
|
SQL 存储 关系型数据库
第二篇:关系型数据库的核心概念与 SQL 基础
本篇内容深入浅出地讲解了关系型数据库的核心概念与SQL基础,适合有一定计算机基础的学习者。文章涵盖数据库的基本操作(CRUD)、数据类型、表的创建与管理等内容,并通过实例解析SELECT、INSERT、UPDATE、DELETE等语句的用法。此外,还推荐了多种学习资源与实践建议,帮助读者巩固知识。学完后,你将掌握基础数据库操作,为后续高级学习铺平道路。
205 1
|
5月前
|
存储 缓存 数据库
数据库数据删除策略:硬删除vs软删除的最佳实践指南
在项目开发中,“删除”操作常见但方式多样,主要分为硬删除与软删除。硬删除直接从数据库移除数据,操作简单、高效,但不可恢复;适用于临时或敏感数据。软删除通过标记字段保留数据,支持恢复和审计,但增加查询复杂度与数据量;适合需追踪历史或可恢复的场景。两者各有优劣,实际开发中常结合使用以满足不同需求。
373 4
|
28天前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
115 0
|
3月前
|
存储 SQL Java
数据存储使用文件还是数据库,哪个更合适?
数据库和文件系统各有优劣:数据库读写性能较低、结构 rigid,但具备计算能力和数据一致性保障;文件系统灵活易管理、读写高效,但缺乏计算能力且无法保证一致性。针对仅需高效存储与灵活管理的场景,文件系统更优,但其计算短板可通过开源工具 SPL(Structured Process Language)弥补。SPL 提供独立计算语法及高性能文件格式(如集文件、组表),支持复杂计算与多源混合查询,甚至可替代数据仓库。此外,SPL 易集成、支持热切换,大幅提升开发运维效率,是后数据库时代文件存储的理想补充方案。
|
4月前
|
SQL 存储 关系型数据库
第一篇:数据库基础与概念
这篇文档面向数据库初学者,系统介绍了数据库的基础概念、类型、管理工具及实践方法。内容涵盖数据库定义、应用场景(如电商、银行系统)、数据库管理系统(DBMS)的功能与常见系统(MySQL、PostgreSQL等),以及关系型与非关系型数据库的区别。同时,文章详细解析了基本术语(表、记录、字段、主键、外键)和ER图设计,并提供了实践建议,包括创建简单数据库、学习SQL语言、使用管理工具等。最后推荐了学习资源和书籍,鼓励读者通过实际项目巩固知识,逐步掌握数据库的核心技能。
319 11
|
6月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
5月前
|
人工智能 关系型数据库 分布式数据库
让数据与AI贴得更近,阿里云瑶池数据库系列产品焕新升级
4月9日阿里云AI势能大会上,阿里云瑶池数据库发布重磅新品及一系列产品能力升级。「推理加速服务」Tair KVCache全新上线,实现KVCache动态分层存储,显著提高内存资源利用率,为大模型推理降本提速。
|
3月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
605 1

热门文章

最新文章