2024年10月15日

各种函数依赖

假设我们有一个表格存储学生成绩信息:

学生成绩表

学号 (SNo)课程号 (CNo)分数 (Score)姓名 (Name)班级 (Class)

1. 平凡依赖(Trivial Dependency)

平凡依赖指的是属性集中的某个属性依赖于自身。不需要从其他属性获得信息。

例子:

  • 在表中,对于任何属性集 {SNo, CNo, Score},平凡依赖有 {SNo} → SNo, {CNo, Score} → Score 等。

2. 非平凡依赖(Non-Trivial Dependency)

非平凡依赖是指如果 X → Y 成立并且 Y 不属于 X,这称为非平凡依赖。

例子:

  • 在学生成绩表中,{SNo, CNo} → Score 是一个非平凡依赖,因为分数 Score 不属于组合键 {SNo, CNo}。

3. 完全函数依赖(Full Functional Dependency)

完全函数依赖是指 Y 对 X 是完全依赖的,但对 X 的任何真子集都不依赖,即去掉任何一个 X 的成分,依赖关系不再成立。

例子:

  • {SNo, CNo} → Score 是完全函数依赖,因为只有通过学号和课程号的组合才能唯一确定一个分数。

4. 部分函数依赖(Partial Functional Dependency)

部分函数依赖指的是在一个复合主键中,如果有一个非主属性依赖于主键的一部分,而不是整个主键。

假设学生成绩表的主键是由“学号 (SNo)”和“课程号 (CNo)”组合而成,这样能唯一标识一条记录。

然而,“姓名 (Name)”和“班级 (Class)”只依赖于“学号 (SNo)”而非整个主键,因为一个学生会有多个课程。因此,这里有部分函数依赖:

  • 名称 (Name) 依赖于 学号 (SNo)
  • 班级 (Class) 依赖于 学号 (SNo)

5. 传递函数依赖(Transitive Dependency)

传递函数依赖是指如果存在 X → Y 和 Y → Z,那么就有 X → Z。通常在属性集合中隐含信息传递。

例子:

  • 假设我们有一个额外的表记录班级信息,比如班级代表:
 
  班级信息表
  | 班级 (Class) | 班长 (Leader) |
  |--------------|---------------|

在这种情况下,学生成绩表中的班级对班长存在传递函数依赖:{SNo} → {Class} 和 {Class} → {Leader},因此 {SNo} → {Leader} 是传递依赖。

这些不同类型的依赖关系帮助我们识别数据库设计中的冗余、异常,并指导我们进行范式化处理。

posted @ 2024-10-15 17:03 gogoy 阅读(107) 评论(0) 推荐(0) 编辑

2024年10月12日

SSE协议与HTTP协议

摘要: SSE协议的全称是“Server-Sent Events”,它是一种用于服务器向客户端单向推送数据的技术,常用于实时更新网页内容。 ChatGPT 对话框交互通常是基于 HTTP 协议的请求-响应模型。SSE(服务器推送事件,Server-Sent Events)是一种允许服务器主动向客户端推送信息 阅读全文

posted @ 2024-10-12 17:45 gogoy 阅读(586) 评论(0) 推荐(0) 编辑

2024年9月24日

操作日志

摘要: 转:如何优雅地记录操作日志? https://tech.meituan.com/2021/09/16/operational-logbook.html 操作日志几乎存在于每个系统中,而这些系统都有记录操作日志的一套 API。操作日志和系统日志不一样,操作日志必须要做到简单易懂。所以如何让操作日志不和 阅读全文

posted @ 2024-09-24 09:49 gogoy 阅读(32) 评论(0) 推荐(0) 编辑

2024年9月3日

“二清”详解:支付产品必须知道的“清结算规矩”

摘要: https://www.woshipm.com/pd/4425081.html 微信公众号:陈天宇宙 http://www.paypm.cn/h-nr--0_31_3.html 一、二清背景 经济趋势:国家大力推动“互联网+”发展的背景下,涌现了众多的互联网企业。同时,中大型企业也纷纷尝试通过自建电 阅读全文

posted @ 2024-09-03 11:41 gogoy 阅读(108) 评论(0) 推荐(0) 编辑

金融通识:国内支付清算体系CNAPS2

摘要: https://codenow.fun/zh-cn/posts/2022/financial/1110_china_payment/ https://codenow.fun/zh-tw/posts/2022/financial/1114_china_payment/ 中国现代化支付系统(CNAPS) 阅读全文

posted @ 2024-09-03 10:33 gogoy 阅读(653) 评论(0) 推荐(0) 编辑

2024年8月27日

Mockito教程(单测mock)

摘要: 1 Mockito 介绍 [3] 1.1 Mockito是什么? Mockito是mocking框架,它让你用简洁的API做测试。而且Mockito简单易学,它可读性强和验证语法简洁。 1.2 为什么需要Mock 测试驱动的开发( TDD)要求我们先写单元测试,再写实现代码。在写单元测试的过程中,我 阅读全文

posted @ 2024-08-27 14:36 gogoy 阅读(246) 评论(0) 推荐(0) 编辑

2024年8月12日

zookeeper

摘要: ZooKeeper介绍 1.什么是zookeeper ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig) 的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei 等项目中都采用到了 Zook 阅读全文

posted @ 2024-08-12 18:07 gogoy 阅读(58) 评论(0) 推荐(0) 编辑

2024年7月30日

TCP相关经典

摘要: TCP协议详解:https://segmentfault.com/a/119000001905094630张图解: TCP 重传、滑动窗口、流量控制、拥塞控制 https://www.cnblogs.com/xiaolincoding/p/12732052.htmlTCP的那些事儿(上篇):http 阅读全文

posted @ 2024-07-30 14:14 gogoy 阅读(6) 评论(0) 推荐(0) 编辑

2024年7月22日

Java常见的超时及设计

摘要: 在Java编程中,处理超时通常涉及到几种不同的场景,包括网络请求超时、线程执行超时、数据库操作超时等。合理设计超时机制可以提高程序的健壮性和用户体验。以下是一些常见超时设计的方法: 1. 网络请求超时 对于HTTP请求或任何网络IO操作,可以使用URLConnection、HttpURLConnec 阅读全文

posted @ 2024-07-22 12:01 gogoy 阅读(745) 评论(0) 推荐(0) 编辑

2024年6月18日

python函数声明(参数/返回值注释)和三个双引号用法

摘要: 1 # python的"""三个双引号两种用法:(1)多行注释 (2)定义多行字符串 2 def f1(ham: 42, eggs: int = 'spam') -> "Nothing to see here": 3 print("函数注释", f1.__annotations__) # 函数注释 阅读全文

posted @ 2024-06-18 15:24 gogoy 阅读(132) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示