什么是数据库管理系统(DBMS)?RDBMS和NoSQL又是什么?

发布于:2025-09-03 ⋅ 阅读:(23) ⋅ 点赞:(0)

什么是DBMS?
什么是RDBMS?
什么是NoSQL?
今天我们一起来了解一下关于数据库方面的小知识。

一、数据库管理系统(DBMS)的概念

数据库管理系统(Database Management System, DBMS),简称 数据库,是用于管理和操作数据库的软件系统,是现代信息系统的核心组成部分 。它通过统一的机制实现数据的存储、查询、更新、维护和安全控制,广泛应用于企业、政府、科研、互联网等领域。

二、DBMS的核心功能

DBMS的核心功能可概括为以下几个方面:

1. 数据定义(Data Definition)

  • 数据定义语言(DDL):用于创建、修改和删除数据库对象(如表、视图、索引等)。
    • 示例操作
      • CREATE TABLE employees (id INT, name VARCHAR(20));
      • ALTER TABLE employees ADD COLUMN age INT;
      • DROP TABLE employees;
    • 作用:定义数据库的逻辑结构(如字段类型、约束条件、主键/外键等),并存储在数据字典中。

2. 数据操作(Data Manipulation)

  • 数据操作语言(DML):用于对数据库中的数据进行查询、插入、更新和删除。
    • 示例操作
      • SELECT * FROM employees WHERE age > 30;
      • INSERT INTO employees (id, name) VALUES (1, 'Alice');
      • UPDATE employees SET age = 35 WHERE id = 1;
      • DELETE FROM employees WHERE id = 1;
    • 作用:实现对数据的灵活操作,满足业务需求。

3. 数据控制(Data Control)

  • 数据控制语言(DCL):通过用户角色和权限分配,控制数据的访问和操作。
    • 示例操作
      • GRANT SELECT ON employees TO user1;
      • REVOKE DELETE ON employees FROM user1;
  • 安全性控制:通过加密、认证(如用户名/密码)等技术保护数据安全。

4. 数据库运行管理

  • 并发控制:通过锁机制(共享锁、排他锁)和事务管理(ACID特性)确保多用户同时访问时的数据一致性。
  • 故障恢复:通过日志记录和备份机制(如全备份、增量备份)实现数据的自动恢复。
  • 完整性约束:通过主键、外键、唯一性约束等规则保证数据的逻辑一致性。

5. 数据组织与存储

  • 物理存储优化:通过B树、哈希表等数据结构提高存储效率。
  • 索引管理:创建索引加速查询速度(如CREATE INDEX idx_name ON employees(name);)。
  • 缓冲区管理:通过内存缓存减少磁盘I/O操作。

三、DBMS的结构与工作模式

DBMS的结构通常分为层次结构功能模块两种视角:

1. 层次结构

  • 应用层

    • 提供用户接口(如SQL命令行、图形界面)或应用程序接口(API)。
    • 处理用户请求(如查询、事务提交)。
  • 语言处理层

    • 解析SQL语句(词法分析、语法分析、语义分析)。
    • 生成可执行代码(如查询优化器选择最优执行计划)。
  • 数据存取层

    • 将逻辑操作转换为物理操作(如将SELECT语句转换为磁盘读取操作)。
    • 实现并发控制(如锁管理)和事务日志记录。
  • 数据存储层

    • 管理数据的物理存储(如文件管理器、缓冲区管理器)。
    • 负责数据的页面存储、内外存交换等底层操作。

2. 功能模块

  • 数据定义模块:处理DDL语句,定义数据库框架。
  • 数据操作模块:执行DML语句,完成数据的增删改查。
  • 运行管理模块:控制并发访问、事务管理和故障恢复。
  • 数据组织与存储模块:管理数据的存储结构(如索引、文件)和存取路径。

四、DBMS的关键技术点

  1. 数据结构化

    • 数据以表(二维表)、视图等结构化形式存储,支持复杂的数据关系(如实体-关系模型)。
    • 通过数据模型(如关系模型、文档模型)描述数据之间的联系。
  2. 数据共享与独立性

    • 物理独立性:数据的存储方式(如磁盘布局)变化不影响应用程序。
    • 逻辑独立性:数据的逻辑结构(如表结构调整)变化不影响应用程序。
  3. 高可靠性

    • 事务管理:通过ACID特性(原子性、一致性、隔离性、持久性)确保数据操作的可靠性。
    • 备份与恢复:支持定期备份和日志恢复,防止数据丢失。
  4. 高效性

    • 通过查询优化器(如动态执行计划选择)提高查询效率。
    • 使用索引、缓存等技术加速数据访问。
  5. 安全性

    • 提供细粒度的权限控制(如行级/列级权限)。
    • 支持数据加密(如SSL传输加密、字段加密)。

五、DBMS的发展历史

  1. 文件系统阶段(20世纪50-60年代)

    • 数据以文件形式存储,缺乏统一管理和共享能力,导致数据冗余和一致性问题。
  2. 数据库系统阶段(20世纪60年代后)

    • 引入层次模型(如IBM的IMS)、网状模型(CODASYL),实现数据的结构化管理。
  3. 关系型数据库(20世纪70年代)

    • E.F. Codd提出关系模型,SQL成为标准化语言,代表系统包括Oracle、MySQL、PostgreSQL等。
  4. 现代数据库技术(20世纪90年代至今)

    • NoSQL数据库:支持非结构化数据(如文档、键值、图数据),解决大规模分布式存储问题。
    • NewSQL数据库:结合关系型数据库的ACID特性和NoSQL的水平扩展能力。
    • 云数据库:提供托管服务(如AWS RDS、Google Cloud SQL),降低运维成本。

六、DBMS的常见分类

1. 关系型数据库管理系统(RDBMS)

  • 数据模型:基于关系模型,数据以二维表的形式存储,表由行(记录)和列(字段)组成。
  • 核心特点
    • 结构化数据:数据通过表定义,字段类型和约束严格。
    • SQL支持:使用 结构化查询语言(SQL) 进行数据操作和管理。
    • 事务管理:支持ACID特性(原子性、一致性、隔离性、持久性),适合复杂业务场景。
    • 数据一致性:通过主键、外键和约束条件保证数据完整性。
  • 优点
    • 成熟稳定,理论基础扎实。
    • 适合需要强一致性和复杂查询的场景(如金融系统、ERP)。
  • 缺点
    • 灵活性较低,难以适应非结构化数据。
    • 水平扩展能力有限。
  • 典型应用
    • 银行账户管理、库存系统、医疗记录。
  • 常见系统
    • Oracle、MySQL、PostgreSQL、SQL Server、MariaDB。

2. 非关系型数据库管理系统(NoSQL)

NoSQL数据库不依赖传统关系模型,支持灵活的数据结构,适合大规模数据和高并发场景。主要分为以下子类:

(1) 文档型数据库

  • 数据模型:数据以文档形式存储,通常为JSON/BSON格式。
  • 特点
    • 灵活的数据结构,允许不同文档字段不一致。
    • 支持嵌套数据,减少多表关联需求。
  • 优点
    • 适合半结构化和非结构化数据(如日志、社交媒体数据)。
    • 高水平扩展性。
  • 缺点
    • 缺乏强一致性(通常采用最终一致性)。
  • 典型应用
    • 内容管理系统、电商商品信息存储。
  • 常见系统
    • MongoDB、Couchbase、CouchDB。

(2) 键值型数据库

  • 数据模型:数据以键值对形式存储,键唯一标识值。
  • 特点
    • 极高的读写性能,适合简单查询。
    • 数据模型简单,易于水平扩展。
  • 优点
    • 适用于缓存、会话存储和实时数据处理。
  • 缺点
    • 不支持复杂查询和事务。
  • 典型应用
    • 缓存系统(如Redis)、购物车状态管理。
  • 常见系统
    • Redis、Amazon DynamoDB、RocksDB。

(3) 列族型数据库

  • 数据模型:数据按 列族 存储,同一列族内的列存储在一起。
  • 特点
    • 高效处理大规模数据分析(如日志、时间序列数据)。
    • 支持稀疏数据存储。
  • 优点
    • 适合读写密集型场景(如大数据分析)。
    • 高压缩率和快速聚合查询。
  • 缺点
    • 复杂查询能力有限。
  • 典型应用
    • 分布式日志存储、推荐系统。
  • 常见系统
    • Apache Cassandra、HBase、Google Bigtable。

(4) 图型数据库

  • 数据模型:数据以节点和边表示,节点代表实体,边代表关系。
  • 特点
    • 专注于复杂关系查询(如社交网络、路径分析)。
    • 直接遍历关系,无需复杂连接操作。
  • 优点
    • 高效处理多跳关系查询(如好友推荐、欺诈检测)。
  • 缺点
    • 不适合非关系型数据分析。
  • 典型应用
    • 社交网络、知识图谱、物流网络优化。
  • 常见系统
    • Neo4j、Amazon Neptune、ArangoDB。

3. 面向对象数据库管理系统(OODBMS)

  • 数据模型:结合面向对象编程思想,数据以对象的形式存储。
  • 特点
    • 支持对象的属性和方法直接存储。
    • 避免了对象-关系映射(ORM)的复杂性。
  • 优点
    • 适合复杂数据结构(如多媒体、地理信息数据)。
    • 支持多态性和继承。
  • 缺点
    • 标准化程度低,市场接受度有限。
  • 典型应用
    • CAD系统、科学计算、工程设计。
  • 常见系统
    • Gemfire、ObjectDB、db4o。

4. 分布式数据库管理系统(DDBMS)

  • 数据模型:数据分布在多个物理节点,通过网络集成。
  • 特点
    • 支持跨地域数据存储和访问。
    • 提高可用性和容错性。
  • 优点
    • 适合大规模分布式场景(如跨国企业、物联网)。
  • 缺点
    • 数据一致性管理复杂(需权衡CAP定理)。
  • 典型应用
    • 云计算平台、全球供应链管理。
  • 常见系统
    • OceanBase、Google Spanner、TiDB。

5. 时序数据库管理系统(TSDB)

  • 数据模型:专为时间序列数据设计(如传感器数据、监控指标)。
  • 特点
    • 高效存储和查询时间戳关联的数据。
    • 支持高频写入和范围查询。
  • 优点
    • 适合物联网、金融交易日志、系统监控。
  • 缺点
    • 不适合通用数据存储。
  • 典型应用
    • 服务器性能监控、股票市场分析。
  • 常见系统
    • InfluxDB、TimescaleDB、OpenTSDB。

6. 层次型与网状型数据库

  • 层次型数据库
    • 数据以树形结构存储(如IBM的IMS)。
    • 适合父子关系明确的场景(如文件系统)。
  • 网状型数据库
    • 数据以图结构存储(如CODASYL的DBTG系统)。
    • 支持多对多关系,但复杂度高。
  • 现状
    • 已被关系型数据库取代,仅在特定遗留系统中使用。

七、DBMS常见分类总结

类型 适用场景 典型系统
关系型(RDBMS) 金融、ERP、医疗 MySQL、Oracle、PostgreSQL
NoSQL(文档型) 电商、内容管理 MongoDB、Couchbase
NoSQL(键值型) 缓存、会话存储 Redis、DynamoDB
NoSQL(列族型) 大数据分析、日志存储 HBase、Cassandra
NoSQL(图型) 社交网络、推荐系统 Neo4j、Amazon Neptune
面向对象(OODBMS) 科学计算、多媒体数据 Gemfire、ObjectDB、db4o
分布式(DDBMS) 云计算、物联网 OceanBase、Google Spanner、TiDB
时序型(TSDB) 物联网、监控系统 InfluxDB、TimescaleDB

总结

关系型数据库(RDBMS)市场占有率很高,一般会配合NoSQL数据库一起使用。随着AI的崛起,国内大搞信创上云、软件国产化操作,国产分布式数据库OceanBase、PolarDB、TiDB、GaussDB、TDSQL、达梦等正在高速占有国内市场,大家快学起来吧。


网站公告

今日签到

点亮在社区的每一天
去签到