首页 > 数据库 >MySQL三大范式

MySQL三大范式

时间:2024-01-20 17:23:19浏览次数:31  
标签:范式 MySQL 依赖于 表中 主键 三大

MySQL三大范式

数据库设计的三范式(Normal Form)是一组关于关系数据库设计的规范,目的是为了减少冗余数据、提高数据存储的效率,并确保数据的一致性。三范式分为以下三个层次:

第一范式(1NF): 表中每列的属性不可再分
数据表中的每一列都是不可再分的基本数据项,而且在每个记录中的每一列都只包含一个值。简而言之,每个字段都是原子性的,不可再分。

第二范式(2NF): 在第一范式的基础上,表里的非主键列必须都依赖于主键(联合主键)
在1NF的基础上,要求非主键列完全依赖于主键,而不是部分依赖。也就是说,表中的非主键列不能依赖于主键的一部分。

第三范式(3NF): 在第二范式的基础上,表中的非主属性不可以存在依赖关
在2NF的基础上,要求非主键列之间不存在传递依赖。如果非主键列 A 依赖于主键列 B,而非主键列 C 也依赖于主键列 B,那么非主键列 A 和 C 之间不能有直接的依赖关系。

通过遵循三范式,可以避免数据存储中的冗余和不一致,确保数据库的结构合理、高效,并减少数据更新时的异常情况。然而,在实际设计中,有时会根据具体情况违反三范式的规则,以提高某些查询的性能。这就是在设计数据库时需要权衡的一点。

标签:范式,MySQL,依赖于,表中,主键,三大
From: https://www.cnblogs.com/hld123/p/17976772

相关文章

  • 【MySQL 8+】CRUD等操作修改数据库的表后,数据库中表相关信息与数据库工具所展示的信息
    相关转载:①mysql8.0数据库中表的行数不显示,大小也不显示_-CSDN问答②MySQL8.0存储表的行数和修改日期不自动更新的问题_mysql表插入数据,但是修改日期无值-CSDN博客=============================================================个人总结:本人一开始上手的就是MySQL8+的版......
  • 盘点编写 sql 上的那些骚操作(针对mysql而言)
    前言咋说呢,最近交接了一个XXX统计系统到我手上,点进去系统主页,看了下实现了哪些功能,页面看着很简单就那么几个统计模块,本来想着就那么几张报表的crud来着,看了下代码也还好体量也不大,于是乎美滋滋的随波逐流了,后来出现了一个bug说什么数据统计的不对,想着快速给他改掉,顺着控制层,一路摸......
  • MYSQL-数据表基本
    1、创建表createtable表名(列名类型是否可以为空,列名类型是否可以为空)ENGINE=InnoDBDEFAULTCHARSET=utf82、删除表droptable表名3、清空表deletefrom表名truncatetable表名4、修改表添加列:altertable表名add列名类型删除列:alter......
  • MySQL 视图
    视图(View)是一种虚拟存在的表,视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。创建CREATE[......
  • MYSQL自增步长
    1、对于自增列,必须是索引(含主键)。2、对于自增可以设置步长和起始值基于会话级别:showsessionvariableslike'auto_inc%';查看全局变量setsessionauto_increment_increment=2;设置会话步长#setsessio......
  • MySQL中的加密函数
    本文简单介绍MySQL中的加密函数。MySQL提供了多种加密函数,以下是一些常用的:PASSWORD(str):用于密码加密,通常用于创建用户时对密码进行加密。MD5(str):生成一个128位的加密串,返回一个32位的16进制数。SHA1(str):生成一个160位的加密串,返回一个40位的16进制数。ENCODE(str......
  • MySQL连接池最大连接数设置
    默认连接数的选择应该基于你的应用程序的需求以及数据库服务器的性能和配置。 对于大多数小型和中型应用程序来说,10个连接可能是一个合理的起点。然而,如果你的应用程序具有较高的并发性或处理大量数据库操作,你可能需要增加连接数。否则,在高负载时,连接池中的连接可能会快速耗尽......
  • k8s之构建Mysql和Wordpress集群
    一、实验目的基于Kubernetes集群实现多负载的WordPress应用。将WordPress数据存储在后端Mysql,Mysql实现主从复制读写分离功能。1、准备Kubernetes集群环境root@k8s-master01:~#kubectlgetnodesNAMESTATUSROLESAGEVERSIONk8s-master01Re......
  • Linux离线安装MySQL
    在Linux上离线安装MySQL,可以按照以下步骤进行操作:下载MySQL安装包:去MySQL官网下载适合Linux系统的MySQL安装包,选择一个合适的版本和文件格式进行下载。根据gclib安装对应的版本和架构进行选择。将安装包复制到Linux系统中:将下载的MySQL安装包复制到Linux系统中的一个合适的目录,例......
  • 面向对象的三大特征
    面向对象的三大特性封装packagecom.zzl.oop2.Demo1.Demo4;//类private:私有publicclassStudent1{//名字privateStringname;//学号privateintid;//性别privateStringsex;privateintage;//提供一些可以操作属性的方法......