软件设计师 - 函数依赖 和 范式

文章目录

  • 1.函数依赖:
    • 1.0.前提范例:
    • 1.1.函数依赖定义:
    • 1.2. 部分依赖
    • 1.3. 完全依赖
  • 2.范式
    • 2.1. 码、候选码、主码
    • 2.2.主属性和非主属性
    • 2.3.第一范式(1NF)
    • 2.4.第二范式(2NF)
    • 2.5.第三范式(3NF)
    • 2.6.BC范式(BCNF)
  • 3.函数依赖推导规则(todo,没看懂)

1.函数依赖:

1.0.前提范例:

教育局管理系统中学生表:

学生表(学生id,身份证号,姓名,性别,学号,学校id,学校名称)

学生id,可以唯一确定一条学生信息;
身份证号,可以唯一确定一条学生信息;
学号+学校id,可以唯一确定一条学生信息(同一学校内的学号是唯一的);

1.1.函数依赖定义:

函数 y = f(m),如果每个x都有唯一y值与之对应,
那么称:m决定y,或y依赖于m,
写作:m -> y,画作:
在这里插入图片描述

例如:
1.函数 :y = m2,每个m取值,y都有唯一值与之对应,所以:
m决定 yy 依赖于 m, 记做: m -> y
2. 对应0.全局例子中:学生id -> 姓名(姓名依赖于学生id),身份证号->姓名

1.2. 部分依赖

对于1.1.函数依赖定义中:单独一个m,就可以唯一确定y的值,那么用另一个无关变量n和m的组合值,必定也可以唯一确定y的值。
那么称:(m,n)决定y,或y部分依赖于m,
写作:(m,n) -> y,画作:
在这里插入图片描述
例如:
1.函数 :y = m2,每个m取值,y都有唯一值与之对应,此时还有另一个函数 z = n2,那么每个唯一的m和n,y也有唯一值与之对应,所以:
(m,n)决定 yy 部分依赖于(m,n), 记做: (m,n) -> y
2. 对应0.全局例子中:(身份证号,性别) -> 姓名(姓名部分依赖于身份证号和性别)

1.3. 完全依赖

函数 y = f(m,n),如果确定的m和n,都有唯一y值与之对应,
那么称:(m,n)决定y,或y完全依赖于(m,n),
写作:(m,n) -> y ,画作:
在这里插入图片描述
例如:
1.函数 :y = m2+n2,单独一个m或n的值,不能唯一确定y的值,但是(m,n)的组合值可以唯一确定y的值。
(m,n) 决定 yy 完全依赖于 (m,n), 记做: (m,n) -> y
2. 对应0.全局例子中:(学校id,学号) -> 姓名(姓名部分完全于学校id和学号)。

2.范式

在这里插入图片描述

2.1. 码、候选码、主码

码、候选码、主码的说明
对应在数据库中的每一条数据中:
:能唯一确定一条数据的一个属性或一组属性(可以包含冗余属性);
候选码:能唯一确定一条数据的一个属性或一组属性(消除冗余属性);
主码:主码是唯一的,从候选码中选出一个作为主码;

2.2.主属性和非主属性

主属性:在候选码中的属性;
非主属性:不在候选码中的属性;

2.3.第一范式(1NF)

每个属性都是不可分割的原子值;

2.4.第二范式(2NF)

消除非主属性对候选键的部分依赖;

学生表(学生id,身份证号,姓名,性别,学号,学校id,学校名称)

问题:学生表中,(学校id,学号)是一个候选键,但是 ,学校名称部份依赖(学校id,学号),所以就不符合2NF。
解决方法:把(学校id,学校名称)单独抽取成一个学校表,就符合2NF了。

学生表(学生id,身份证号,姓名,性别,学号,学校id)
学校表(学校id,学校名称)

2.5.第三范式(3NF)

消除非主属性对候选键的传递依赖

学生表(学生id,姓名,性别,学校id,学校名称)

问题:学生表中,学生id 是一个候选键,有学校姓名 传递依赖 学生id,不符合3NF

学生id-> 学校id  (学校id 依赖 学生id)
学校id -> 学校名称 (学校姓名 依赖 学校id)
所以: 学校姓名 传递依赖 学生id

解决方法:把(学校id,学校名称)单独抽取成一个学校表,就符合3NF了。

学生表(学生id,姓名,性别,学校id)
学校表(学校id,学校名称)

2.6.BC范式(BCNF)

消除主属性对候选键的传递依赖(列出关系中所有的函数依赖,依赖左侧都是候选键)

3.函数依赖推导规则(todo,没看懂)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 自定义线程池

文章目录一、自定义线程池1. yml配置2. 线程池配置属性类3. 开启异步线程支持4. 创建自定义线程池配置类5. service逻辑层6. controller控制层7. 效果图二、配置默认线程池2.1. yml2.2.线程池配置属性类2.3. 开启异步线程支持2.4. 装配线程池2.5. service逻辑层2.6. controller…

可用性SLA还不懂?看完这个故事就懂了

大家好,我是小编云BliBli, 这些天 领导问了我一个暴击我灵魂的问题: 什么是SLA?那么多9到底是什么意思? (瓦特??我怎么知道????&#…

如何通过 Serverless 轻松识别验证码?

来源 | Serverless责编 | 晋兆雨头图 | 付费下载于视觉中国前言Serverless 概念自被提出就倍受关注,尤其是近些年来 Serverless 焕发出了前所未有的活力,各领域的工程师都在试图将 Serverless 架构与自身工作相结合,以获取到 Serverless 架构…

怀里橘猫柴犬,掌上代码江湖——对话阿里云MVP郭旭东

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 跟郭旭东聊过之后,我对程序员的敬佩又多一分。这个92年的开发者,难能可贵地兼备朝气…

防止重复提交 最佳实践

文章目录一、方案评估1. 前端2. 后端方案二、代码实战2.1. 依赖2.2. yml配置2.2. 相关配置类2.3. 实体类2.4. 相关工具类2.5. 操作消息提醒2.6. 过滤器2.2. 拦截器2.7.重复提交测试2.8. 效果图一、方案评估 1. 前端 提交后屏蔽提交按钮 2. 后端方案 实现原理 1.自定义重复提…

java实现 - 树的层序遍历

树: 树实体结构: Data public class Tree {//树的data值private String dataStr;//树的第一个孩子节点private Tree firstChild;//树的下一个孩子节点private Tree nextBrother; }代码实现: public class TreeTraversal {//队列&#xff…

金山云发布全新Serverless产品 云原生基础设施再升级

随着企业数字化转型的深入,云计算正全面步入2.0时代,即为云而生的阶段。以云原生为代表的理念,已经成为进一步释放云计算价值的核心推动力。 1月6日,金山云举行了云原生媒体沟通会,金山云副总裁、合伙人钱一峰在会上正…

如何提升微服务的幸福感

前言 随着微服务的流行,越来越多公司使用了微服务框架,微服务以其的高内聚、低耦合等特性,提供了更好的容错性,也更适应业务的快速迭代,为开发人员带来了很多的便利性。但是随着业务的发展,微服务拆分越来…

nacos未授权访问漏洞【原理扫描】

解决方案 vim /nacos/conf/application.properties添加 #开启认证配置 nacos.core.auth.enabledtrue

求AOE图的 拓扑排序 及关键路径长度(java实现)

文章目录1.AOE图:2.AOE图邻接链表存储结构:3.代码实现3.1.实体及参数初始化3.2.代码实现3.3.输出1.AOE图: 2.AOE图邻接链表存储结构: 3.代码实现 3.1.实体及参数初始化 //邻接表的链表节点 Data public class LinkedNode {//邻接…

陈旸:清华博士的模型信仰

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 陈旸是典型的天才学霸。10岁开始编程,亚洲奖、国奖拿到手软;创业做新媒体&#xff…

创业公司用 Serverless,到底香不香?

来源 | Serverless责编 | 晋兆雨头图 | 付费下载于视觉中国在过去的 5 年里,使用云厂商处理应用后台的流行程度大幅飙升。其一,初创企业主采用 Serverless 方式,以节省基础设施成本,并随用随付。随着公司规模的扩大,依…

Too many files with unapproved license: 2 See RAT report

解决方案 mvn -Prelease-nacos -Dmaven.test.skiptrue -Dpmd.skiptrue -Dcheckstyle.skiptrue -Drat.numUnapprovedLicenses100 clean install -U或者 mvn -Prelease-nacos -Dmaven.test.skiptrue -Drat.numUnapprovedLicenses100 clean install -U

高速公路智能化转型,阿里云高速云控平台如何赋能?

目前我国高速公路通车里程位居世界第一,但"高速路不高速"却时常发生,每逢出行高峰期,高速公路的拥堵状况会愈发严重。我国高速出行主要面临的痛点是安全和拥堵,主要是由路网利用不均衡、数据价值挖掘不够、协同管理平台…

2021 云原生开门红,金山云发布全新云原生全景图

据云原生计算基金会(CNCF)数据显示,当前企业已经在广泛使用云原生技术,容器应用已成常态, 2019 年 84% 的公司在生产中使用容器,而 2016 年仅为 3%。据阿里达摩院最新2021年科技趋势…

阿里云峰会 | 深化城市计算场景能力,为企业数智化建设提供助推力

在2020阿里云峰会上,阿里云边缘计算技术负责人杨敬宇表示:边缘计算将成为企业数智化进程中重要助推力,而构建城市计算是阿里云边缘计算的核心方向。在会上,杨敬宇还首次公开了智慧高速、云游戏、驾驶辅助等基于城市场景&#xff0…

nacos 适配达梦、人大金仓数据库

文章目录一、准备工作1. 阅读官网文档2. 下载源码,按官网更详细3. 下载达梦、人大金仓数据库驱动二、修改nacos源码2.1. 引入驱动依赖2.2. 引用数据库2.3. 修改配置2.4. 添加属性2.5. 指定驱动名称三、构建3.1. 进入源代码目录3.2. 执行构建3.3. 查看构建包3.4. 最后…

阿里云峰会 | 高并发扛不住、复杂查询慢、数据存不下?

阿里云峰会直播地址 2020年6月9日,“全速重构”2020阿里云线上峰会即将隆重召开。在此次峰会上,阿里云数据库重磅发布云原生分布式数据库 PolarDB-X 、云原生数据仓库AnalyticDB、数据库自治服务DAS、云数据库专属集群、图数据库GDB、云数据库Cassandra版…

软件设计师 - 超键、无损连接、函数依赖

1.闭包 在函数依赖集F下由α函数确定的所有属性的集合为F下α的闭包,记为α 。 闭包算法: result:α; while(result发生变化)dofor each 函数依赖β→γ in F dobeginif β∈result then result:result∪γ;end2.超键 方法一:函数依赖集F下…

赛题解析|初赛赛道三:服务网格控制面分治体系构建

首届云原生编程挑战赛正在报名中,初赛共有三个赛道,题目如下: 赛道一:实现一个分布式统计和过滤的链路追踪 赛道二:实现规模化容器静态布局和动态迁移 赛道三:服务网格控制面分治体系构建 立即报名&#…