⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

SQL 数据库范式 — 1NF/2NF/3NF

数据库规范化:第一范式1NF(原子性)、第二范式2NF(消除部分依赖)、第三范式3NF(消除传递依赖)、反规范化的权衡、BCNF范式 · 难度:入门 · +10XP

SQL 数据库范式 —— 1NF、2NF、3NF

数据库范式是设计表结构的指导原则。遵循范式可以减少数据冗余、避免更新异常。前三范式(1NF、2NF、3NF)是实际开发中最常用的。

第一范式 1NF:原子性

每个字段只存一个值,不能有重复组。

-- 违反1NF:tags存了多个值
CREATE TABLE articles (id INT, tags VARCHAR(200)); -- tags='SQL,MySQL,数据库'
-- 符合1NF:拆分为关联表
CREATE TABLE article_tags (article_id INT, tag VARCHAR(50));

第二范式 2NF:消除部分依赖

非主键字段必须完全依赖于主键(不能只依赖部分主键)。

第三范式 3NF:消除传递依赖

非主键字段不能依赖其他非主键字段。

-- 违反3NF:city_name依赖city_id,而非直接依赖主键
CREATE TABLE users (id INT, city_id INT, city_name VARCHAR(50));
-- 符合3NF:city_name放在cities表中

动手练习

  1. 基础练习:检查你的表设计是否满足1NF。
  2. 进阶应用:识别并修复一个违反2NF的表设计。
  3. 项目实战:审计项目数据库,找出违反3NF的地方并评估是否值得修改。
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 146 篇
0 完成
🔥 0