MySQL数据库基础知识必知会(一)

1.范式化设计

1.1.什么是范式

范式来自英文Normal Form,简称NF。

实际上你可以把它粗略地理解为 一张数据表的表结构所符合的某种设计标准的级别 。就像家里装修买建材,最环保的是E0级,其次是E1级,还有E2级等等

目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式5NF,又称完美范式)。

满足最低要求的范式是第一范式(1NF),在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。

1.2.第一范式(1NF)

定义: 属于第一范式关系的所有属性都不可再分,即数据项不可分。

理解:第一范式强调数据表的原子性,是其他范式的基础。一张表有一个name-age列,这个列具有两个属性,一个name,一个 age,所以不符合第一范式,我们把它拆分成两列name和age,这张表就符合第一范式关系。

你在关系型数据库管理系统(RDBMS),例如SQL Server,Oracle,MySQL中创建数据表的时候,1NF是所有关系型数据库设计的最基本要求。

第一范式详细的要求如下:

1、每一列属性都是不可再分的属性值,确保每一列的原子性;

2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据;

3、单一属性的列为基本数据类型构成;

4、设计出来的表都是简单的二维表。

1.2.第二范式(2NF)

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。

第二范式(2NF)要求实体的属性完全依赖于主关键字。

以上这张表不符合第二范式(2NF),虽然有主键,但是实体的属性不完全依赖于主关键字。

所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。

设计成两张表,主键分别是id和op_id,这样就符合第二范式

相关推荐

  1. mysql 数据库基础知识

    2024-07-12 14:20:07       59 阅读
  2. Mysql数据库基础知识1

    2024-07-12 14:20:07       39 阅读
  3. Mysql数据库基础知识(2)

    2024-07-12 14:20:07       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 14:20:07       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 14:20:07       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 14:20:07       58 阅读
  4. Python语言-面向对象

    2024-07-12 14:20:07       69 阅读

热门阅读

  1. OpenJudge | 比饭量

    2024-07-12 14:20:07       19 阅读
  2. 离线安装pip包

    2024-07-12 14:20:07       23 阅读
  3. 【MySQL】7.MySQL 的内置函数

    2024-07-12 14:20:07       20 阅读
  4. Spring 的核心注解

    2024-07-12 14:20:07       21 阅读
  5. 29. 一道简单背包题

    2024-07-12 14:20:07       22 阅读
  6. Tomcat

    2024-07-12 14:20:07       22 阅读
  7. C++语法提高B-hook机制

    2024-07-12 14:20:07       22 阅读
  8. 移动应用安全需求分析与安全保护工程

    2024-07-12 14:20:07       19 阅读
  9. Django 表单

    2024-07-12 14:20:07       22 阅读