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


相关文章
|
5月前
|
存储 JSON 关系型数据库
【干货满满】解密 API 数据解析:从 JSON 到数据库存储的完整流程
本文详解电商API开发中JSON数据解析与数据库存储的全流程,涵盖数据提取、清洗、转换及优化策略,结合Python实战代码与主流数据库方案,助开发者构建高效、可靠的数据处理管道。
|
3月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
3月前
|
人工智能 Java 关系型数据库
使用数据连接池进行数据库操作
使用数据连接池进行数据库操作
120 11
|
4月前
|
存储 数据管理 数据库
数据字典是什么?和数据库、数据仓库有什么关系?
在数据处理中,你是否常困惑于字段含义、指标计算或数据来源?数据字典正是解答这些问题的关键工具,它清晰定义数据的名称、类型、来源、计算方式等,服务于开发者、分析师和数据管理者。本文详解数据字典的定义、组成及其与数据库、数据仓库的关系,助你夯实数据基础。
数据字典是什么?和数据库、数据仓库有什么关系?
|
4月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
345 0
|
6月前
|
存储 SQL Java
数据存储使用文件还是数据库,哪个更合适?
数据库和文件系统各有优劣:数据库读写性能较低、结构 rigid,但具备计算能力和数据一致性保障;文件系统灵活易管理、读写高效,但缺乏计算能力且无法保证一致性。针对仅需高效存储与灵活管理的场景,文件系统更优,但其计算短板可通过开源工具 SPL(Structured Process Language)弥补。SPL 提供独立计算语法及高性能文件格式(如集文件、组表),支持复杂计算与多源混合查询,甚至可替代数据仓库。此外,SPL 易集成、支持热切换,大幅提升开发运维效率,是后数据库时代文件存储的理想补充方案。
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
141 3
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。

热门文章

最新文章