Skip to content

第七章|数据定义与约束 ​

本章目标 ​

学习数据库模式设计,掌握 DDL 操作、约束类型、范式化原则,理解如何设计高质量的数据库结构。

从 CREATE TABLE 开始,理解数据类型的选择,学会使用各种约束保证数据完整性,掌握范式化理论,最后学习数据迁移的最佳实践。

学习路径 ​

按顺序阅读以下文章,每篇包含讲解、示例和练习:

  1. DDL 基础:CREATE、ALTER、DROP
    掌握表和数据库的创建、修改、删除操作。

  2. 数据类型:选择合适的类型
    理解常用数据类型及其适用场景。

  3. 约束:PRIMARY KEY、FOREIGN KEY、CHECK
    使用约束保证数据完整性。

  4. 范式化:1NF、2NF、3NF、BCNF
    理解范式化理论,设计良好的数据库结构。

关键概念 ​

DDL 定义数据结构 ​

sql
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email VARCHAR(255) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

约束保证数据完整性 ​

  • PRIMARY KEY:唯一标识
  • FOREIGN KEY:引用完整性
  • UNIQUE:唯一性
  • NOT NULL:非空
  • CHECK:自定义规则

范式化减少冗余 ​

非范式化:

text
orders: id, user_name, user_email, product, amount

范式化:

text
users: id, name, email
orders: id, user_id, product, amount

前置知识 ​

  • 掌握基本 SQL 语法
  • 理解关系数据库概念
  • 了解数据建模基础

练习答案 ​

本章所有练习的答案和详细解释:第七章练习答案

深入阅读 ​

为什么需要约束? ​

约束在数据库层面保证数据完整性,比应用层验证更可靠:

  • 多个应用访问同一数据库
  • 直接 SQL 操作绕过应用逻辑
  • 数据库自动拒绝无效数据

范式化 vs 反范式化 ​

范式化:减少冗余,保证一致性
反范式化:提高查询性能,允许冗余

选择取决于读写比例:

  • 读多写少 → 反范式化(加快查询)
  • 写多读少 → 范式化(保证一致性)

返回SQL 学习路线 · 开始第一节

用心记录每一步成长