数据库概念

  • 数据库 (Database - DB):

它就像是图书馆里,书架上存放的所有书籍和资料。从技术上讲,数据库就是按照一定数据模型组织、描述和储存起来的、可以被各种用户共享的结构化数据的集合。它就是我们最终要存取的核心——信息本身。

  • 数据库管理系统 (Database Management System - DBMS):

它就像是整个图书馆的管理系统,包括图书的分类编目规则、借阅归还流程、安全检查系统等等。从技术上讲,DBMS 是一种大型软件,比如我们常用的 MySQL、Oracle、PostgreSQL 软件。它的核心职责是科学地组织和存储数据、高效地获取和维护数据;为我们屏蔽了底层文件操作的复杂性,提供了一套标准接口(如 SQL)来操纵数据,并负责并发控制、事务管理、权限控制等复杂问题。

  • 数据库系统 (Database System - DBS):

它就是整个正常运转的图书馆。这是一个更大的概念,不仅包括书(DB)和管理系统(DBMS),还包括了硬件、应用和使用的人。

  • 数据库管理员 (Database Administrator - DBA ):

他就是图书馆的馆长,负责整个数据库系统正常运行。他的职责非常广泛,包括数据库的设计、安装、监控、性能调优、备份与恢复、安全管理等等,确保整个系统的稳定、高效和安全。

Db 和 Dbms 我们通常会搞混,这里再简单提一下:通常我们说“用 Mysql 数据库”,其实是用 Mysql(Dbms)来管理一个或多个数据库(Db)。

关系型数据库

  • 除了我们最常用的关系型数据库(RDBMS),比如 MySQL(开源首选)、PostgreSQL(功能最全)、Oracle(企业级),它们基于严格的表结构和 SQL,非常适合结构化数据和需要事务保证的场景,例如银行交易、订单系统。近年来,为了应对互联网应用带来的海量数据、高并发和多样化数据结构的需求,涌现出了一大批 NoSQL 和 NewSQL 数据库。

NoSQL 数据库

  • NoSQL 数据库它们的共同特点是为了极致的性能和水平扩展能力,在某些方面(通常是事务)做了妥协。
  1. 键值数据库,代表是 Redis。特点: 数据模型极其简单,就是一个巨大的 Map,通过 Key 来存取 Value。内存操作,性能极高。适用场景: 非常适合做缓存、会话存储、计数器等对读写性能要求极高的场景。
  2. 文档数据库,代表是 MongoDB。特点: 它存储的是半结构化的文档(比如 JSON/BSON),结构灵活,不需要预先定义表结构。适用场景: 特别适合那些数据结构多变、快速迭代的业务,比如用户画像、内容管理系统、日志存储等。
  3. 列式数据库,代表是 HBase, Cassandra。特点: 数据是按列族而不是按行来存储的。这使得它在对大量行进行少量列的读取时,性能极高。适用场景: 专为海量数据存储和分析设计,非常适合做大数据分析、监控数据存储、推荐系统等需要高吞吐量写入和范围扫描的场景。
  4. 图形数据库,代表是 Neo4j。特点: 数据模型是节点(Nodes)和边(Edges),专门用来存储和查询实体之间的复杂关系。适用场景: 在社交网络(好友关系)、推荐引擎(用户-商品关系)、知识图谱、欺诈检测(资金流动关系)等场景下,表现远超关系型数据库。

NewSQL 数据库

  • 由于 NoSQL 不支持事务,很多对于数据安全要去非常高的系统(比如财务系统、订单系统、交易系统)就不太适合使用了。不过,这类系统往往有存储大量数据的需求。这些系统往往只能通过购买性能更强大的计算机,或者通过数据库中间件来提高存储能力。不过,前者的金钱成本太高,后者的开发成本太高。于是,NewSQL 就来了!

  • 简单来说,NewSQL 就是:分布式存储+SQL+事务 。NewSQL 不仅具有 NoSQL 对海量数据的存储管理能力,还保持了传统数据库支持 ACID 和 SQL 等特性。因此,NewSQL 也可以称为 分布式关系型数据库。

  • NewSQL 数据库代表:Google 的 F1/Spanner、阿里的 OceanBase、PingCAP 的 TiDB 。


著作权归JavaGuide(javaguide.cn)所有
基于MIT协议
原文链接:https://javaguide.cn/database/basis.html

posted @ 2026-01-07 17:55  JAVA从零开始  阅读(1)  评论(0)    收藏  举报