源本科技 | 码上会

数据库基础概念

2025/12/27
65
0

注意:学习 MySQL 之前除了需要掌握《数据库基础概念》还需要提前了解以下内容

  • SQL 知识

  • 熟悉编程概念

  • 掌握命令行技能

  • 理解关系数据库概念

  • 了解数据类型

  • 熟练使用集成开发环境


学习目标

  • 理解数据库系统的基本定义、目的与核心优势

  • 掌握数据库的三层抽象架构及其作用

  • 熟悉数据库中的关键概念,如模式、约束、实例与查询

  • 了解规范化的目的、形式与好处

  • 认识数据库系统的优缺点及实际应用中的挑战


什么是数据库系统

数据库系统是一种基于计算机的解决方案,旨在高效地进行记录保存和信息管理。它通过结构化的方式存储、组织和管理数据,以支持组织内部的决策制定。一个数据库本质上是相互关联的数据的集合,用于表示某个特定企业或组织的信息。

数据库的核心特性

  • 集中式存储:为多个应用程序提供统一的数据仓库。

  • 数据与程序分离:数据独立于访问它的程序,提升灵活性与可扩展性。

  • 标准化操作:通过通用且受控的方式安全地添加、修改和检索数据。

  • 面向未来集成:数据组织方式便于与新应用对接,适应不断变化的业务需求。


数据库的主要目的

1. 集中式数据仓库

  • 作为组织内所有应用共享的单一数据源

  • 支持关键业务操作的数据存取与修改。

2. 支持持续运营

  • 允许实时更新数据,并快速响应监控、控制和规划等任务。

  • 用户可通过查询获取洞察,辅助商业决策。

3. 克服传统文件系统的缺陷

传统文件系统将数据分散在多个文件中,每个功能需独立程序处理,导致效率低下、错误频发。

4. 解决文件系统的关键局限

问题

数据库的解决方案

数据冗余

消除跨文件的重复存储

数据不一致

保证全系统数据统一可靠

适应性差

提供灵活架构以应对业务变化

缺乏标准

强制统一格式与访问规则

安全性弱

通过集中控制加强保护

数据过时 / 错误

利用约束与验证机制保障完整性

5. 最终成果

数据库管理系统(DBMS) 实现了集中控制、数据准确性和操作效率,使组织能够无缝管理数据资产。


数据库抽象

数据库的核心目标之一是向用户仅展示所需信息,隐藏底层复杂性(如存储细节、索引结构等),让用户能安全、简便地与数据交互。

这一目标通过多层抽象模型实现:

数据库的三层抽象架构

1. 内部层(物理层)

  • 最低抽象层级,最接近硬件。

  • 描述数据在磁盘上的实际存储方式(如文件组织、索引结构、访问路径)。

  • 关注存储效率数据结构优化

2. 概念层(逻辑层)

  • 定义数据库中存储了哪些数据以及数据之间的关系

  • 使用逻辑结构描述,如表(Tables)、属性(Attributes)、主键、外键、约束等。

  • 独立于物理实现,用户无需关心数据如何存储。

3. 外部层(视图层)

  • 最高抽象层级,面向最终用户或应用程序。

  • 允许不同用户根据权限和需求看到定制化的数据视图

  • 例如:财务人员看到薪资表,HR 看到员工档案,但底层是同一数据库。


数据独立性

由于存在三层抽象,某一层的变化不应影响其他层,这种特性称为数据独立性

  • 物理数据独立性
    存储结构(如从 B+ 树改为哈希索引)改变时,逻辑模式不受影响。

  • 逻辑数据独立性
    逻辑结构(如新增字段或拆分表)变更时,用户视图可保持不变。

这种解耦设计使数据库在演进过程中无需全面重构,极大提升了可维护性与可扩展性


数据库核心概念

1. 数据库模式

Database Schema

  • 数据库的“蓝图”或结构设计。

  • 定义表、列、数据类型、主外键关系、约束等。

  • 是数据存储与访问的基础框架

2. 数据约束

Data Constraints

  • 规定每列可接受的数据类型与规则。

  • 保障数据的准确性、有效性与一致性

  • 常见约束:

    • PRIMARY KEY(主键)

    • FOREIGN KEY(外键)

    • UNIQUE(唯一)

    • NOT NULL(非空)

    • CHECK(自定义条件)

3. 数据字典

Data Dictionary / Metadata

  • 即“关于数据的数据”。

  • 自动由 DBMS 维护,记录:

    • 表结构

    • 字段属性

    • 约束定义

    • 用户权限等元信息

  • 供系统内部管理和优化使用。

4. 数据库实例

Database Instance

  • 指数据库运行时的完整操作环境

  • 包括内存结构(如缓冲池)、后台进程(如日志写入器)等。

  • 负责在运行期间高效地读写和维护物理数据文件。

5. 查询

Query

  • 用户通过查询语言(如 SQL)向数据库发出的数据请求。

  • 可执行:

    • 数据检索(SELECT

    • 插入(INSERT

    • 更新(UPDATE

    • 删除(DELETE

  • 是用户与数据库交互的主要接口

6. 数据操纵

Data Manipulation

  • 指对数据库中数据的增删改操作。

  • 通过 DML(Data Manipulation Language) 实现,如 SQL 中的 INSERTUPDATEDELETE

7. 数据引擎

Data Engine

  • DBMS 的核心组件,负责:

    • 查询解析与优化

    • 事务管理(ACID)

    • 并发控制

    • 数据检索与写入

  • 保障数据库操作的高性能与完整性


规范化

规范化是通过将大而复杂的表拆分为多个小而结构良好的表,以最小化数据冗余和依赖的过程。

目的

构建一个高效、一致、可扩展的数据库,便于长期维护与更新。

主要好处

  • 减少数据重复与不一致

  • 简化数据修改操作

  • 明确数据间逻辑关系

  • 避免插入、更新、删除异常

规范化形式

范式

要求

第一范式(1NF)

每个字段值必须是原子的(不可再分),消除重复组

第二范式(2NF)

在 1NF 基础上,所有非主属性完全依赖于整个主键(消除部分依赖)

第三范式(3NF)

在 2NF 基础上,消除非主属性间的传递依赖

BCNF(Boyce-Codd 范式)

强化 3NF:每个决定因素都必须是候选键

实际开发中,通常达到 3NF 即可满足大多数业务需求。


数据库的优势

优势

说明

减少数据冗余

集中存储,避免重复

控制数据不一致

一处修改,全局同步

促进数据共享

多用户 / 应用并发访问

强制数据标准

统一命名、格式与规则

增强安全性

通过认证、授权、权限控制保护敏感数据

保障数据完整性

利用主外键、约束确保数据正确性

提升性能效率

优化查询、缓存、索引等机制加速访问


数据库的劣势

尽管优势显著,数据库系统也面临以下挑战:

  1. 安全风险
    若访问控制不足,可能导致数据泄露或篡改。

  2. 完整性维护难度
    若约束未正确设置,数据质量可能下降。

  3. 高硬件要求
    大型数据库需要高性能服务器与充足存储空间。

  4. 性能开销
    复杂查询、高并发或海量数据可能拖慢系统响应。

  5. 系统复杂性
    DBMS 配置、调优与维护需专业数据库管理员(DBA)和开发人员。


重点总结

  • 数据库是结构化、集中化的数据管理解决方案。

  • 通过三层抽象模型(物理层、逻辑层、视图层)实现数据独立性与用户友好性。

  • 规范化是优化数据库设计、避免冗余与异常的关键技术。

  • DBMS 在提升效率的同时,也带来安全、性能与运维方面的挑战。

  • 理解模式、约束、实例、查询等核心概念是掌握数据库的基础。


思考题

  1. 为什么说“数据与程序分离”是数据库优于文件系统的重要特性?请举例说明。

  2. 如果一个数据库只满足 1NF 而未达到 2NF,可能会出现哪些数据异常?如何通过规范化解决?

  3. 在实际项目中,是否总是要将数据库设计到 BCNF?为什么?