【MySQL】范式

一、范式

  在数据库中,关于数据表设计的基本原则就称为范式。目前关系型数据库有六种范式,按照范式级别,从低到高为:第一范式、第二范式、第三范式、巴斯科德范式、第四范式以及第五范式。范式的级别越高,其冗余度就越低,且高阶的范式一定符合低阶范式的规范。

1.1、键和相关属性的概念

  • 超键:能唯一标识元组的属性集叫做超键
  • 候选键:如果超键不包含多余的属性,此时这个超键就是候选键。
  • 主键:用户可以从候选键中选择一个作为主键
  • 外键:如果一张表中的属性集为另一张数据表的主键,则该属性集为这张表的外键
  • 主属性:包含在任一候选键中的属性称为主属性
  • 非主属性:指不包含在任何一个候选键中的属性。

1.2、范式

第一范式
  第一范式主要是确保数据表中的每个字段的值具有原子性,即每个字段的值不可拆分。

第二范式
  在第一范式基础上,满足数据表中的每一条数据记录,都是可以唯一标识的,并且所有非主键字段,都必须完全依赖主键而不是主键的一部分。
  例如,在成绩表(学号,课程号,成绩)关系中,通过(学号,课程号)可以决定成绩,而反过来则不行,所以(学号,课程号)->成绩的这个关系就是完全依赖关系

第三范式
  在第二范式的基础上,数据表中所有非主键字段不能依赖于其他非主键字段。即非主键属性之间相互独立,不能有依赖关系。

总结
  一范式要求列不可再分,二范式要求不能部分依赖,三范式要求不能传递依赖,要直接依赖主键。

二、反范式化

  如果数据库中的数据量较大时,如果数据表完全按照三大范式进行设计的话会产生大量的关联查询。在一定程度上影响了数据库的读性能。此时反范式化可以作为一种优化思路,通过增加冗余字段来提高数据库的读效率。

2.1、反范式化带来的问题

  • 存储空间变大
  • 不同表中的相同字段需要同步修改,否则会导致数据不一致
  • 如果采用存储过程来支持数据的操作,在更新频繁的情况下,非常消耗系统资源
  • 在数据量小的情况下,反范式化不仅不能优化性能,而且使数据库的设计更加复杂。

三、BCNF(巴斯范式)

  BCNF是修正的第三范式,若一个关系达到了第三范式,并且只有一个候选键,或者每个候选键都是单属性,这就是巴斯范式。
  简单来说,就是主属性之间不能相互依赖,非主属性之间也不能相互依赖

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

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

相关文章

第2篇【Docker项目实战】使用Docker部署Raneto知识库平台(转载)

【Docker项目实战】使用Docker部署Raneto知识库平台 一、Raneto介绍 1.1 Raneto简介 Raneto是一个免费、开放、简单的 Markdown 支持的 Node.js 知识库。 1.2 知识库介绍 知识库 知识库是指存储和组织知识的系统或库,它包括了各种类型的信息和知识,如…

【Excel】合并复杂单元格

描述: Excel中可能遇到,合并相同内容的单元格,这种单元格不止几行,不太好操作; 或者一行内容结果在合并的单元格中显示。 解决办法: 参考 https://www.zhihu.com/question/65905892 单元格合并和拆分 点击…

数据分析实战-Python实现博客评论数据的情感分析

数据分析实战-Python实现博客评论数据的情感分析 学习建议SnowNLP基础什么是SnowNLP?SnowNLP情感分析 SnowNLP使用SnowNLP安装情感分析中文分词关键词提取拼音、词性标准 SnowNLP实战-博客评论数据的情感分析数据准备数据获取数据分析 总结 学习建议 现在很多网站、…

技术面试最重要的是什么?

技术面试最重要的是什么? 最重要的当然是实力,然而实力之外,也有一些基本原则。 1 让面试官听懂你在做什么 牛逼的人都是能把最复杂的事情讲简单的。 如果面试官听不懂你讲的东西,他就无法判断你的水平。如果这个面试官不是你…

面向IoT物联网的时间序列引擎

1、背景 随着近年来业务的发展,尤其是机器产生的数据占比越来越高的趋势下,时序数据因为其业务价值越来越被更多地关注,也因而催生了专用的时间序列数据库,简称时序数据库(TimeSeries Database,TSDB&#x…

String、StringBuilder和StringBuffer的区别以及应用场景

主要从以下几个角度来讨论区别和应用场景: 一、底层存储方面 String:是一个只读字符串,底层是final修饰的数组,不可被继承,存储在字符串常量池中。每次进行拼接操作时,底层会隐式new一个 StringBuilder对…

密码解密 C卷(100%用例)(JavaPythonC++Node.jsC语言)

给定一段“密文“字符串s,其中字符都是经过"密码本”映射的,现需要将"密文"解密并且输出 映射的规则(a-i)分别用(1-9)表示;(j-z")分别用(10-"26”)表示 约束:映射始终唯一 输入描述: “密文”字符串 输出描述: 明文字符串 补充说明: 翻译后的文本…

flutter选择国家或地区的电话号码区号

1.国家区号列表(带字母索引侧边栏) import package:generated/l10n.dart; import package:widget/login/area_index_bar_widget.dart; import package:flutter/material.dart; import package:flutter_screenutil/flutter_screenutil.dart;class LoginA…

实现更高能效的汽车级低边驱动器NRVB140ESFT1G 带温度和电流限制 自保护低压侧驱动器

一起去了解关于汽车电子AEC Q101车规认证!!! 是一种针对分立半导体的可靠性测试认证程序,由汽车电子协会发布。这个认证程序主要是为了确保汽车电子产品在各种严苛的条件下能够正常工作和可靠运行。它包括了对分立半导体的可靠性、环境适应性…

(2022级)成都工业学院Java程序设计(JAVA)实验一:编写一个简单的Java程序

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、代码仅提供参考 3、如果代码不满足你的要求,请寻求其他的途径 运行环境 window11家庭版 IntelliJ IDEA 2023.2.2 jdk17.0.6 实验要求 1、 控制台菜单。要求如下: 1)…

Docker容器化技术(互联机制实现便捷互访)

容器的互联是一种让多个容器中的应用进行快速交互的方式。它会在源和接收容器之间创建连接关系,接收容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。 1.自定义容器命名 连接系统依据容器的名称来执行。因此,首先需要自定义一…

DataFunSummit 2023因果推断在线峰会:解码数据与因果,引领智能决策新篇章(附大会核心PPT下载)

在数据驱动的时代,因果推断作为数据科学领域的重要分支,正日益受到业界的广泛关注。DataFunSummit 2023年因果推断在线峰会,汇聚了国内外顶尖的因果推断领域专家、学者及业界精英,共同探讨因果推断的最新进展、应用与挑战。本文将…

人工智能的迷惑行为:一场技术与期望的较量

目录 写在开头1. 人工智能迷惑行为的现象1.1 智能助手的理解误区1.2 自动翻译的奇妙旅程1.3 在线客服的困惑回答1.4 图像识别的惊奇误会1.5 自动作文生成器的创意外溢1.6 生成式绘画AI的“艺术创作”1.7 音乐创作AI的奇特旋律1.8 自动生成的小说情节1.9 生成式AI写诗 2 导致迷惑…

天星数科立足专业,持续深化金融科技赋能产业

党的二十大报告提出“建设现代化产业体系”,要求“坚持把发展经济的着力点放在实体经济上”。这是站在改革开放40多年发展实践基础上,实现第二个百年奋斗目标作出的战略部署。天星数科作为深耕金融服务多年的科技公司,聚焦主业、立足于专业&a…

Python基础学习(6)函数基础与函数参数

文章目录 一.认识参数1.特点2.优点 二.定义函数三,函数参数1.必备参数2.默认参数3.不定长参数①不定长参数1②不定长参数2 四,返回值(return)五,文档字符串1.**作用**:2.**语法格式:**3.输出方式: Python基础学习(1)基本知识 Python基础学习(2)序列类型方法与数据类型转换 Pyth…

数字媒体专业AR增强现实仿真模拟实训

增强现实技术是一种利用计算机生成的图像、声音、传感器数据等多媒体信息,实时地与用户所处的真实环境相结合,为用户提供一种身临其境的体验。这种技术广泛应用于游戏、娱乐、旅游等领域,现在也逐渐在教育领域崭露头角。 二、数字媒体专业运用…

[MYSQL数据库]--表内操作(CURD)

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、表的 Cre…

Sklearn线性回归

Scikit-learn 中的线性回归是一个用于监督学习的算法,它用于拟合数据集中的特征和目标变量之间的线性关系。以下是使用 Scikit-learn 实现线性回归的基本步骤: 1. 导入所需库 首先,你需要导入所需的库和模块。 import numpy as np import …

蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛

一、题目 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? 请填写他开始过生日party的年龄数。 注意&…

Mybatis的XML配置文件

Xml文件中写SQL 为什么要学? 学习了Mybatis中XML配置文件的开发方式了,大家可能会存在一个疑问:到底是使用注解方式开发还是使用XML方式开发? 官方说明:https://mybatis.net.cn/getting-started.html 结论:使用Myba…