数据库思维导图

《数据库思维导图》

一、数据库概念与基础

1.1 数据与信息

  • 数据:事实的符号记录,可以被识别和存储。
  • 信息:经过处理和组织的数据,具有意义和价值。

1.2 数据库 (Database, DB)

  • 定义:长期存储在计算机内、有组织的、可共享的大量数据的集合。
  • 特点:
    • 持久性:数据长期存储。
    • 共享性:数据可以被多个用户或应用程序共享。
    • 数据独立性:数据与应用程序分离。
    • 数据完整性:数据的准确性和一致性。
    • 数据安全性:保护数据免受未经授权的访问和修改。

1.3 数据库管理系统 (Database Management System, DBMS)

  • 定义:用于管理数据库的软件系统,提供数据定义、数据操作、数据控制等功能。
  • 主要功能:
    • 数据定义:定义数据库的结构和约束。
    • 数据操作:实现数据的增删改查。
    • 数据控制:保证数据的完整性、安全性。
    • 事务管理:保证数据的并发访问和一致性。
    • 数据存储管理:负责数据的物理存储和访问。

1.4 数据库系统 (Database System, DBS)

  • 定义:由数据库、数据库管理系统、应用程序和用户组成。
  • 组成:
    • 数据库 (DB)
    • 数据库管理系统 (DBMS)
    • 应用程序 (Applications)
    • 数据库管理员 (DBA)
    • 用户 (Users)

二、数据库模型

2.1 层次模型

  • 特点:以树形结构组织数据,一个父节点可以有多个子节点,但一个子节点只能有一个父节点。
  • 优点:查询效率高,结构简单。
  • 缺点:数据冗余度高,灵活性差,不易扩展。

2.2 网状模型

  • 特点:允许一个节点有多个父节点,结构复杂。
  • 优点:可以表示复杂的数据关系,灵活性较高。
  • 缺点:实现复杂,维护困难。

2.3 关系模型

  • 特点:以关系(表)的形式组织数据,通过键(Key)建立关系。
  • 概念:
    • 关系 (Relation):二维表,由行(元组)和列(属性)组成。
    • 元组 (Tuple):表中的一行,代表一个实体。
    • 属性 (Attribute):表中的一列,代表实体的特征。
    • 键 (Key):用于唯一标识元组的属性或属性组合。
      • 主键 (Primary Key):唯一标识表中每个元组的属性或属性组合,不能为空。
      • 外键 (Foreign Key):一个表中的属性,作为另一个表的主键,用于建立表之间的联系。
    • 域 (Domain):属性的取值范围。
  • 优点:结构简单,易于理解和使用,数据独立性高,灵活性好。
  • 缺点:查询效率相对较低。

2.4 面向对象模型

  • 特点:将数据和操作封装成对象,强调对象的行为和属性。
  • 概念:
    • 对象 (Object):包含数据和操作的实体。
    • 类 (Class):对象的抽象,定义了对象的属性和方法。
    • 继承 (Inheritance):子类继承父类的属性和方法。
    • 多态 (Polymorphism):同一个方法在不同的对象上表现出不同的行为。
  • 优点:能够更好地处理复杂的数据类型和关系,代码重用性高。
  • 缺点:实现复杂,查询效率较低。

2.5 NoSQL 模型

  • 特点:非关系型数据库,通常不使用 SQL 作为查询语言。
  • 类型:
    • 键值存储 (Key-Value Store):以键值对形式存储数据,如 Redis, Memcached。
    • 文档数据库 (Document Database):以文档形式存储数据,如 MongoDB。
    • 列式数据库 (Column-Family Database):以列族形式存储数据,如 Cassandra, HBase。
    • 图数据库 (Graph Database):以图的形式存储数据,如 Neo4j。
  • 优点:高可扩展性,高可用性,灵活的数据模型。
  • 缺点:数据一致性相对较弱,缺乏标准化的查询语言。

三、关系数据库设计

3.1 需求分析

  • 了解用户的需求,确定数据库的功能和数据。

3.2 概念结构设计

  • 采用实体-关系模型 (Entity-Relationship Model, E-R Model) 描述数据库的概念结构。
  • E-R 图:
    • 实体 (Entity):现实世界中可以区分的对象,用矩形表示。
    • 属性 (Attribute):实体的特征,用椭圆形表示。
    • 关系 (Relationship):实体之间的联系,用菱形表示。
    • 联系类型:
      • 一对一 (1:1)
      • 一对多 (1:N)
      • 多对多 (M:N)

3.3 逻辑结构设计

  • 将 E-R 图转换为关系模式。
  • 关系模式:表的结构,包括表名、属性名和属性类型。
  • 范式理论:
    • 第一范式 (1NF):属性是原子性的,不可再分。
    • 第二范式 (2NF):在 1NF 的基础上,非主属性完全依赖于主键。
    • 第三范式 (3NF):在 2NF 的基础上,非主属性不传递依赖于主键。
    • BCNF (Boyce-Codd Normal Form):在 3NF 的基础上,所有属性都完全依赖于每一个候选键。
  • 规范化:通过范式分解,减少数据冗余,提高数据完整性。
  • 反规范化:为了提高查询效率,允许适度的数据冗余。

3.4 物理结构设计

  • 选择合适的存储结构和索引,优化数据库性能。
  • 索引:
    • B-Tree 索引
    • Hash 索引
    • 全文索引
  • 分区:将一个大表分割成多个小表,提高查询效率。
  • 存储引擎的选择:MySQL (InnoDB, MyISAM), SQL Server, Oracle 等。

四、SQL 语言

4.1 数据定义语言 (DDL)

  • CREATE:创建数据库、表、索引等。
  • ALTER:修改数据库、表、索引等。
  • DROP:删除数据库、表、索引等。

4.2 数据操作语言 (DML)

  • SELECT:查询数据。
  • INSERT:插入数据。
  • UPDATE:修改数据。
  • DELETE:删除数据。

4.3 数据控制语言 (DCL)

  • GRANT:授权。
  • REVOKE:取消授权。

4.4 查询语句

  • SELECT 语句的完整语法:

sql SELECT column1, column2, ... FROM table_name WHERE condition GROUP BY column1, column2, ... HAVING group_condition ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ... LIMIT offset, row_count;

  • 常用函数:
    • 聚合函数:COUNT, SUM, AVG, MAX, MIN
    • 字符串函数:SUBSTRING, CONCAT, LENGTH
    • 日期函数:NOW, DATE, YEAR, MONTH, DAY

4.5 事务

  • 定义:一组 SQL 语句,要么全部执行成功,要么全部执行失败。
  • ACID 特性:
    • 原子性 (Atomicity):事务是一个不可分割的整体。
    • 一致性 (Consistency):事务必须保证数据库从一个一致性状态到另一个一致性状态。
    • 隔离性 (Isolation):并发执行的事务之间互相隔离。
    • 持久性 (Durability):事务一旦提交,其结果将永久保存在数据库中。
  • 事务控制:
    • START TRANSACTION
    • COMMIT
    • ROLLBACK

五、数据库管理与维护

5.1 备份与恢复

  • 全量备份:备份整个数据库。
  • 增量备份:备份自上次全量备份或增量备份以来发生变化的数据。
  • 差异备份:备份自上次全量备份以来发生变化的数据。
  • 恢复:将数据库恢复到备份时的状态。

5.2 性能优化

  • 查询优化:
    • 索引优化
    • SQL 语句优化
    • 避免全表扫描
  • 硬件优化:
    • 增加内存
    • 使用 SSD
    • 优化网络

5.3 安全管理

  • 用户权限管理:
    • 创建用户
    • 授予权限
    • 回收权限
  • 数据加密:
    • 静态数据加密
    • 传输数据加密
  • 防火墙:防止未经授权的访问。

5.4 监控与维护

  • 监控数据库的性能和状态。
  • 定期维护数据库,清理垃圾数据。
  • 及时处理数据库故障。
上一个主题: 西游记思维导图 下一个主题: 驿路梨花的思维导图

相关思维导图推荐

分享思维导图