From 485242c7947d5b73b25203768a3b921e9fb66e9d Mon Sep 17 00:00:00 2001 From: yamonc Date: Fri, 6 Aug 2021 15:30:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0mysql.md=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=95=B0=E6=8D=AE=E8=8C=83=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/database/MySQL.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/database/MySQL.md b/docs/database/MySQL.md index 0190605a..d5ab04da 100644 --- a/docs/database/MySQL.md +++ b/docs/database/MySQL.md @@ -55,6 +55,26 @@ ## 常见问题总结 +### 关系型数据库的设计范式? + +**范式**是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”,可以粗略的理解为**一张数据表的表结构所符合的某种设计标准的级别**。 + +- **第一范式**(1NF):符合1NF的关系中的每个属性不可再分。另外第一范式是所有关系型数据库的最基本要求。 + + 第一范式的存在的问题:数据冗余过大、插入异常、删除异常、修改异常等问题。 + +- **第二范式(2NF)**:在符合1NF的基础上,消除了非主属性对于码的部分函数依赖。 + + 第二范式存在的问题: 有可能会出现非主属性对码的传递依赖。 + +- **第三范式(3NF):** 在符合2NF的基础上,消除了非主属性对码的传递函数依赖。也就是说,如果存在非主属性对于码的传递函数依赖,则不符合第三范式的要求。 + + 第三范式存在的问题:存在着**主属性**对于码的部分函数依赖与传递函数依赖。 + +- **BC范式(BCNF)**: 在符合3NF 的基础上消除了主属性对码的部分函数依赖和传递函数依赖。 + +摘自这篇文章[《如何理解关系型数据库的常见设计范式?》](https://www.zhihu.com/question/24696366/answer/29189700) + ### 什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是**3306**。