CSNotesCSNotes
TODO
LeetCode
数据结构
计算机组成原理
操作系统
计算机网络
数据库
Java
SSM
React
实用工具
GitHub
TODO
LeetCode
数据结构
计算机组成原理
操作系统
计算机网络
数据库
Java
SSM
React
实用工具
GitHub
  • 第一章 SQL语法

    • 1.1 数据库
    • 1.2 MySQL 语法
    • 1.3 查询
    • 1.4 什么是 join?
    • 1.5 LIKE 操作符
    • 1.6 分组
    • 1.7 字段都有哪些属性
  • 第二章 了解 SQL

    • 2.1 数据库基础
    • 2.2 数据库范式
    • 2.3 字符集
    • 2.4 数据库概念
    • 2.5 最大行大小
  • 第三章 数据库概念

    • 3.1 一条 SQL 语句是如何执行的?
    • 3.2 InnoDB 行格式
    • 3.3 为什么数据库 VARCHAR 字段上限是 16383?
  • 第四章 数据库数据结构

    • 4.1 数据库数据结构
  • 第五章 索引

    • 5.1 索引
    • 5.2 一个 B+ 树中大概能存放多少条索引记录?
  • 第六章 范式

    • 6.1 范式
  • 第七章 日志

    • 7.1 日志
  • 第八章 事务

    • 8.1 事务简介
    • 8.2 事务
  • 第九章 InnoDB 页

    • 9.1 InnoDB 页
  • 第十章 常见面试题

    • 10.1 数据库存储索引为什么不用二叉排序树,不用红黑树,而用 B+ 树?
    • 10.2 为什么 InnoDB 中 B+ 树一个结点的页设置为 16KB

2.2 数据库范式

第一范式 1NF

确保数据库字段的原子性。

例如,假设有一个员工信息表,如果将员工的姓名、地址和电话号码存储在同一列中,则这个表不符合第一范式。正确的做法是,将员工的姓名、地址和电话号码分别存储在三个单独的列中,以确保数据的单一性。

第二范式 2NF

换句话说,如果数据库表是符合第二范式的,那么它的每一行都必须仅通过主键字段来标识。这确保了数据的独立性和可维护性,避免了错误的数据冗余。

例如,假设有一个员工信息表,如果在表中存储了员工的编号,姓名和所属部门名称,则这个表不符合第二范式。正确的做法是,将员工的编号、姓名和部门编号分别存储在三个不同的表中,以确保数据的独立性。

第三范式 3NF

编辑此页
上次更新:
Prev
2.1 数据库基础
Next
2.3 字符集