第3章 数据库基础

3.1 数据库基础概念

本节将介绍数据库的基本概念和术语,帮助读者理解数据库的基本结构和功能。

3.1.1 数据库
  • 定义:数据库是一种有组织的数据集合,用于高效地存储、管理和检索数据。
  • 作用:通过数据库管理系统(DBMS),用户可以方便地进行数据操作和管理。
3.1.2 表
  • 定义:表是数据库中用于存储数据的基本单位,由行和列组成。
  • 组成:每个表有多个字段(列),每个字段有特定的数据类型;表中的每一行称为记录。
3.1.3 记录和字段
  • 记录:表中的一行,表示一条具体的数据项。
  • 字段:表中的一列,表示数据项的一个属性。
3.1.4 主键
  • 定义:主键是表中的一个或多个字段,其值可以唯一标识表中的每一条记录。
  • 作用:确保数据的唯一性和完整性。
3.1.5 外键
  • 定义:外键是一个表中的字段,用于建立与另一个表中主键的连接关系。
  • 作用:确保数据的参照完整性。
3.1.6 索引
  • 定义:索引是数据库中的一种结构,用于加速数据的检索。
  • 作用:提高查询效率,但会增加数据写入的时间和存储空间。

3.2 SQL语言简介

SQL(Structured Query Language,结构化查询语言)是用于管理和操作关系型数据库的标准语言。

3.2.1 SQL的基本语法
  • 数据定义语言(DDL):用于定义和管理数据库结构。

    • CREATE:创建数据库、表、视图等。
    • ALTER:修改数据库、表结构。
    • DROP:删除数据库、表、视图等。
  • 数据操作语言(DML):用于查询和修改数据。

    • SELECT:查询数据。
    • INSERT:插入数据。
    • UPDATE:更新数据。
    • DELETE:删除数据。
  • 数据控制语言(DCL):用于控制访问权限。

    • GRANT:授予权限。
    • REVOKE:撤销权限。
3.2.2 常用SQL操作
  • 查询数据

    SELECT * FROM users WHERE age > 30;
    
  • 插入数据

    INSERT INTO users (name, age) VALUES ('Bob', 25);
    
  • 更新数据

    UPDATE users SET age = 26 WHERE name = 'Bob';
    
  • 删除数据

    DELETE FROM users WHERE name = 'Bob';
    

3.3 数据库设计原则

良好的数据库设计可以提高数据的存储效率和操作性能。以下是一些基本的数据库设计原则:

3.3.1 实体-关系模型(ER模型)
  • 定义:实体-关系模型是一种用于描述数据库结构的模型,通过实体和关系来表示数据。
  • 作用:帮助设计者直观地理解和设计数据库。
3.3.2 数据库规范化
  • 定义:规范化是将数据组织成无冗余、依赖明确的表的过程。
  • 作用:减少数据冗余,提高数据一致性。
3.3.3 数据完整性
  • 定义:数据完整性是确保数据库中数据的准确性和一致性。
  • 种类
    • 实体完整性:每个表必须有一个主键,且主键值唯一。
    • 参照完整性:外键值必须引用主键值,确保关系的有效性。
    • 域完整性:字段值必须符合预定义的规则或范围。
3.3.4 数据库性能优化
  • 定义:性能优化是提高数据库查询和操作效率的方法。
  • 方法
    • 使用索引加速查询。
    • 合理设计表结构和关系。
    • 避免过多的嵌套查询。

3.4 数据库范式

数据库范式是数据库设计中用于规范化数据结构的一系列规则,目的是减少数据冗余,提高数据一致性。

3.4.1 第一范式(1NF)
  • 定义:确保每列的值都是不可分割的原子值。
  • 示例:一个表中每个字段只能包含单一值,而不能包含集合、数组等。
3.4.2 第二范式(2NF)
  • 定义:满足1NF,并且表中的每个非主属性完全依赖于主键。
  • 示例:消除部分依赖,将相关数据分拆到不同的表中。
3.4.3 第三范式(3NF)
  • 定义:满足2NF,并且每个非主属性不传递依赖于主键。
  • 示例:消除传递依赖,将相关数据进一步分拆。
3.4.4 BC范式(BCNF)
  • 定义:满足3NF,并且每个主属性都完全依赖于候选键。
  • 示例:确保所有主属性的依赖关系都是通过候选键直接建立的。