范式(上)-第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、可用关系模式

一、范式的作用

根据关系模式间属性的数据依赖来评价关系模式的好坏

以下我们将基于函数依赖的范围内来讨论范式

二、范式的定义

1、数据依赖满足一定约束关系模式是范式

2、范式是符合某一级别的关系模式的集合,关系模式R为第几范式可记为R\in xNF

三、第一范式(1NF)

1、定义:

对于关系模式R,当且仅当R中的每个属性对应的域是原子的,则该关系模式R属于第一范式,即R\in 1NF

2、正面的例子:

有关系模式R,学生学号和课程编号共同组成R的主键

R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)

每个属性对应的域都是原子的,满足第一范式的条件,因此关系模式R属于第一范式,即R\in 1NF

3、反面的例子

有关系模式R

R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)

其所在系属性为复合属性或者其成绩属性为多值属性,则

该关系模式R不属于第一范式

4、分析

对于关系模式R:

R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)属于第一范式,但是依旧存在着数据冗余、更新异常、数据不一致三个问题

四、 第二范式(2NF)

1、定义

对于关系模式R,当且仅当R\in 1NF,且R中的每一个非主属性都完全依赖于候选键时,该关系模式R属于第二范式,即R\in 2NF

2、反面例子

对于关系模式R:

R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)

由于

所以

R\notin 2NF

2、正面例子

由于

 成绩完全依赖于候选键(学生学号,课程编号),而

学生姓名完全依赖于学生学号,所在系完全依赖于学生学号,系主任完全依赖于学生学号,

则将关系模式R分解为两个关系模式

R1(学生学号,课程编号,成绩)

R2 (学生学号,学生姓名,所在系,系主任)

则这两个关系模式均属于第二范式,即R1\in 2NFR2\in 2NF

消除了关系模式R中“非主属性对候选键的部分函数依赖”,解决了部分数据冗余问题部分数据更新异常问题

4、结论:

满足2NF的关系模式要比满足1NF的关系模式要好

五、第三范式(3NF)

1、定义

对于关系模式R,当且仅当R\in 2NF,且R中所有非主属性都不传递函数依赖于候选键时,该关

系模式R属于第三范式,记作 R\in 3NF

2、正面的例子

关系模式R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)和

关系模式R1(学生学号,课程编号,成绩)都符合第三范式的条件,记为R\in 3NFR1\in 3NF

3、反面的例子

关系模式R2 (学生学号,学生姓名,所在系,系主任)中系主任传递函数依赖于学生学号

R2\notin 3NF

可通过将R2分解为

关系模式R3(学生学号,学生姓名,所在系)和

关系模式R4(所在系,系主任)

使得R3\in 3NFR4\in 3NF

消除了“非主属性对候选键”的传递函数依赖”,进一步消除了关系模式存在的数据冗余、更新异常和数据不一致问题

4、结论:

(1)满足3NF的关系模式要比满足2NF的关系模式要好

(2)3NF是一个可用的关系模式应该满足的最低范式要求

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

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

相关文章

APP渗透、WIFI近源渗透之透明代理下的流量分析与嗅探

APP渗透、WIFI近源渗透之透明代理下的流量分析与嗅探 原文链接:https://xz.aliyun.com/t/14864 前言 在攻防中对APP进行渗透时可能会遇到代理及VPN的检测,以及在近源渗透时可能会有WIFI钓鱼的需求,而透明代理是一个很好的解决方案&#xf…

Autodesk Inventor 机械三维设计软件下载安装,Inventor 专业的三维制图软件

Inventor,它的一大亮点在于能够将三维尺寸、标注以及尺寸公差直接融入三维模型中,使得这些关键信息能够无缝对接下游应用,极大地提升了设计流程中的连贯性和一致性。 谈及Inventor的尺寸公差功能,更是让人赞不绝口。在复杂的设计过…

【html】用html5+css3+JavaScript制作一个计数器

目录 简介: 效果图: 源码: html: CSS: JS: 源码解析: 简介: 在日常生活当中很多事情都需要用到计数器特别是在体育运动当中,可以我们那么我们可不可以通过网页来制作一个计数器呢答案是肯定的我们需要利…

WPF Prism框架搭建

WPF Prism框架搭建 1.引入Prism框架 在Nuget包管理器中搜索Prism&#xff0c;并添加到项目中 2.在项目中使用prism框架 2.1 修改app.xaml 删除项目中自带的StartupUri 修改Application节点为prism:PrismApplication 引入prism命名空间 <prism:PrismApplication x:C…

Java工具-实现无损png转换jpg格式

目录 1、背景说明 2、通过代码实现格式转换 3、无损转化 4、说明 读取 PNG 图像&#xff1a; 创建空的 JPG 图像&#xff1a; 绘制 PNG 图像到 JPG 图像&#xff1a; 设置 JPG 图片压缩质量&#xff1a; 写入 JPG 文件并关闭流&#xff1a; 5、jpg转png 1、背景说明 …

最新开源:英伟达Nemotron-4 340B,哔哩哔哩Index-1.9B,谷歌RecurrentGemma-9B...

文章目录 1. 英伟达开源Nemotron-4 340B2. 哔哩哔哩开源轻量级模型 Index-1.9B3. 微软开源混合模型 Samba4. 谷歌开源 RecurrentGemma-9B&#xff0c;性能与Gemma相同5. Stable Diffusion 3 Medium&#xff1a;“最强文生图开源 AI 模型” 1. 英伟达开源Nemotron-4 340B 当地时…

C++初学者指南第一步---6.枚举和枚举类

C初学者指南第一步—6.枚举和枚举类 文章目录 C初学者指南第一步---6.枚举和枚举类1.作用域的枚举(enum class类型&#xff09;&#xff08;C11&#xff09;2.无作用域的枚举(enum类型)3.枚举类的基础类型4.自定义枚举类映射5.和基础类型的互相转换 1.作用域的枚举(enum class类…

Python武器库开发-武器库篇之链接提取器(六十)

Python武器库开发-武器库篇之链接提取器&#xff08;六十&#xff09; 链接提取器介绍 链接提取器&#xff08;Link Extractor&#xff09;是一种用于从网页中提取链接的工具。它可以从网页的源代码中识别出所有的链接&#xff0c;并将这些链接提取出来。链接提取器可以用于各…

Python第二语言(十二、SQL入门和实战)

目录 1. Python中使用MySQL 1.1 pymysql第三方库使用MySQL 1.2 连接MySQL 1.3 操作数据库&#xff0c;创建表 1.4 执行查询数据库语句 2. python中MySQL的插入语句 2.1 commit提交 2.2 自动提交 3. pymysql案例 3.1 数据内容 3.2 DDL定义 3.3 实现步骤 3.4 文件操…

用python克隆了前男友的声音

声音克隆开源项目推荐&#xff1a;MockingBird 项目简介 MockingBird 是一个由开源社区开发的声音克隆项目&#xff0c;托管在 GitHub 上。该项目旨在通过深度学习技术实现高质量的声音克隆&#xff0c;使用户能够合成任意人的声音&#xff0c;并生成自然、流畅的语音输出。M…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 单词大师(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

010-基于Sklearn的机器学习入门:聚类(上)

本节及后续章节将介绍深度学习中的几种聚类算法&#xff0c;所选方法都在Sklearn库中聚类模块有具体实现。本节为上篇&#xff0c;将介绍几种相对基础的聚类算法&#xff0c;包括K-均值算法和均值漂移算法。 目录 10.1 聚类概述 10.1.1 聚类的种类 10.1.2 Sklearn聚类子模…

搭建zookeeper、Kafka集群

搭建zookeeper、Kafka集群 1、绘制kafka的存储结构、副本机制2、搭建zookeeper集群3、搭建kafka集群4、使用kafka创建名为自己姓名汉语拼音的topic5、查看topic的分区和副本策略 1、绘制kafka的存储结构、副本机制 2、搭建zookeeper集群 实验环境准备&#xff1a; 3台服务器&…

npm install cnpm -g 报错4048

npm install cnpm -g 报错4048 设置淘宝镜像&#xff1a; 报错如下&#xff1a; 其他博主提供的方法都尝试了&#xff0c;比如管理员权限打开终端&#xff0c;删除.npmrc文件&#xff0c;清除缓存npm cache clean -f等都试了无效&#xff0c;最后怀疑是npm和cnpm版本不对应&…

JSP之原理剖析

什么是JSP&#xff1a; java Server Pages: java服务端页面,也和Servlet一样&#xff0c;用于动态Web技术&#xff1f; 最大特点&#xff1a; 写jsp就像在写HTML区别&#xff1a; HTML只给用户提供静态的数据JSP页面中可以嵌入Java代码&#xff0c;为用户提供动态数据 JSP原…

基于STM32和人工智能的智能四轴飞行器系统

目录 引言环境准备智能四轴飞行器系统基础代码实现&#xff1a;实现智能四轴飞行器系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统4.4 用户界面与数据可视化应用场景&#xff1a;智能飞行器管理与优化问题解决方案与优化收尾与总结 1. 引言 随着无人机技术的发展&…

群晖NAS部署在线PS工具Potopea并实现浏览器远程访问处理图片

文章目录 前言1. 部署Photopea2. 运行Photopea3. 群晖安装Cpolar4. 配置公网地址5. 公网访问测试6. 固定公网地址 前言 本文主要介绍如何在群晖NAS本地部署Potopea在线图片PS编辑工具&#xff0c;并结合cpolar内网穿透实现公网环境远程访问本地部署的Potopea处理图片. Photop…

【CT】LeetCode手撕—103. 二叉树的锯齿形层序遍历

目录 题目1- 思路2- 实现⭐103. 二叉树的锯齿形层序遍历——题解思路 2- ACM实现 题目 原题连接&#xff1a;103. 二叉树的锯齿形层序遍历 1- 思路 二叉树的层序遍历&#xff0c;遇到奇数时&#xff0c;利用 Collections.reverse() 翻转即可 2- 实现 ⭐103. 二叉树的锯齿形层…

【第17章】Vue实战篇之注册界面

文章目录 前言一、搭建界面二、数据绑定1.定义响应数据2.绑定数据 三、数据校验1. 定义校验规则2. 表单校验3. 展示 四、注册接口调用1. user.js2. Login.vue 五、展示总结 前言 本章内容主要包含&#xff1a; 注册界面搭建数据绑定表单校验调用后端接口 一、搭建界面 <s…

Java23种设计模式(二)

1、单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有…