avatar

数据库管理工具

Navicat 是一款广受欢迎的数据库管理和开发工具,支持多种数据库系统,包括 MySQL、MariaDB、MongoDB、SQL Server、PostgreSQL、Oracle 和 SQLite 等。它提供了直观的图形化界面,使用户可以方便地管理数据库、执行 SQL 查询、设计数据表、管理用户权限和备份数据。

Navicat下载

Navicat Premium 12破解方法

注册机5.1激活教程

MySQL数据库

MySQL下载

安装教程

连接参考教程

只有5.6以前的版本才有在线安装(install msi),5.7之后都是zip压缩版,解压后需要正确配置才能使用。

注意事项:

  1. 安装mysql5.7.32-debug-test压缩包zip解压后配置环境变量,但是cmd无法识别mysql相关命令,重新换成没有debug-test后缀的解压,配置环境变量就可以了。具体原因尚未清楚。

  2. 使用mysqld –initialize命令前,不要自己创建data目录,否则无法正常生成全部data目录文件,已经手动创建的需要删除后重新执行命令:

    1
    2
    # mysql数据库初始化
    mysqld --initialize --user=root --console

注意事项是对安装教程的补充。

用户名和密码分别为root和root;又新建了一个用户名和密码为pyk和pyk;因为root是超级用户,具有最高权限,考虑安全因素,可以授权pyk用户来使用。

Oracle 数据库

下载地址: Oracle 11g 安装

什么是 Oracle 数据库

Oracle 数据库是一款功能强大的关系型数据库管理系统(RDBMS),由 Oracle 公司开发。它被广泛应用于企业级应用、数据仓库、电子商务等领域,用于存储、管理和分析大量数据。

Oracle 数据库的特点

  • 可靠性高: 经过多年的发展,Oracle 数据库在可靠性方面表现出色,能够保证数据的完整性和一致性。
  • 性能优异: Oracle 数据库拥有强大的优化器,能够高效地执行复杂的SQL查询,处理大量数据。
  • 安全性强: 提供了多种安全机制,如用户认证、权限管理、数据加密等,保护数据安全。
  • 扩展性好: 可以随着数据量的增长而扩展,支持大规模的数据存储和处理。
  • 功能丰富: 提供了丰富的功能,包括事务处理、存储过程、触发器、序列等,满足各种应用需求。
  • 可移植性好: 可以运行在多种操作系统和硬件平台上。

华为高斯数据库

1. 核心特点对比

维度 GaussDB(华为) Oracle 数据库
架构类型 - 分布式架构(支持存算分离、弹性扩展)。
- 专为大数据和高并发设计。
- 集中式架构(单机或 RAC 集群)。
- 强事务一致性和高吞吐量,适合关键任务场景。
适用场景 - 云原生场景,适合高并发、分布式事务、大数据存储与分析。
- 支持 OLTP 和 OLAP。
- 企业级关键任务(金融、电信等)。
- 强事务一致性、高可靠性场景。
多模支持 - 支持关系型、时序型和图数据库。 - 主要是关系型数据库,也提供 JSON、XML 存储支持。
兼容性 - 兼容 PostgreSQL 和主流数据库语法(部分支持 Oracle 迁移)。 - 自成生态,语法独特,兼容性较差,迁移到其他数据库难度大。
扩展性 - 横向扩展性强,分布式存储,轻松应对海量数据增长。 - 通过 RAC 实现扩展,但横向扩展能力有限,扩展成本较高。
智能化功能 - AI 驱动,自动调优、索引推荐、资源优化。 - 提供自动调优工具,但更依赖 DBA 的手动管理和经验。
安全性 - 符合中国信息安全标准(如等保 2.0)。 - 拥有全球通用的企业级安全特性(如加密、审计)。

2. SQL 语法对比

(1)相同点

  • 基本查询语法 :两者均遵循标准 SQL(如 SELECT、INSERT、UPDATE)。
  • 事务控制 :都支持事务一致性(如 COMMIT、ROLLBACK)。

(2)不同点

SQL 特性 GaussDB Oracle 数据库
自增列 使用 SERIALGENERATED AS IDENTITY(PostgreSQL 兼容)。 使用 SEQUENCE,需要单独创建。
分区表 支持 RANGE、LIST、HASH 等多种分区方式,语法类似 PostgreSQL。 支持 RANGE、LIST、HASH,但语法与 Oracle 独特(如 PARTITION BY)。
窗口函数 完全兼容 PostgreSQL 窗口函数(如 ROW_NUMBER()RANK())。 同样支持窗口函数,但部分实现细节可能不同。
JSON 操作 使用 PostgreSQL 风格的 JSON 操作符(如 ->->>)。 使用 Oracle 提供的 JSON 操作函数(如 JSON_TABLEJSON_QUERY)。
连接语法 兼容标准 SQL 连接语法(如 INNER JOIN、OUTER JOIN)。 Oracle 使用的连接语法有时较复杂,如旧式 WHERE连接方式。
存储过程/函数 支持 PL/pgSQL,语法接近 PostgreSQL。 使用 PL/SQL,语法独特,需要针对 Oracle 特性编写。
MERGE 语句 基本兼容标准 SQL 的 MERGE 语法。 Oracle 的 MERGE 语法更丰富,支持复杂的条件更新和插入操作。

(3)迁移难度

  • GaussDB 提供工具帮助从 Oracle 数据库迁移,部分 SQL 和存储过程可以自动翻译为 GaussDB 兼容的语法。
  • 对于复杂的 Oracle PL/SQL 存储过程,可能需要手动调整。

3. 性能对比

(1)事务处理性能

  • GaussDB
  • 分布式事务支持良好,事务处理能力强。
  • 在海量数据、高并发的分布式场景下性能表现更优。
  • 对于小型事务负载,性能接近 PostgreSQL。
  • Oracle 数据库
  • 单节点事务处理性能更强。
  • 在金融级关键任务场景中,Oracle 的 ACID 事务一致性表现卓越。

(2)扩展能力

  • GaussDB
  • 基于分布式架构,支持弹性横向扩展,能够处理 PB 级数据增长。
  • 更适合现代云原生、大规模数据场景。
  • Oracle 数据库
  • 通过 RAC 集群实现扩展,但扩展成本高且复杂。
  • 在集中式架构中,性能表现出色,但扩展性相对受限。

(3)查询优化

  • GaussDB
  • 通过 AI 优化 SQL 查询,提供自动索引推荐和执行计划优化。
  • 适合数据量大、复杂查询场景。
  • Oracle 数据库
  • 拥有强大的优化器,能够对复杂查询进行深入优化。
  • 更依赖 DBA 的手动调优。

4. 选择建议

  • 选择 GaussDB 的场景
  • 云原生架构,海量数据分布式存储。
  • 对中国信息安全和合规要求较高的行业(如政府、电信)。
  • 希望降低数据库授权费用的企业。
  • 选择 Oracle 数据库的场景
  • 金融、电信等需要超高事务一致性和可靠性的行业。
  • 已有 Oracle 数据库部署,迁移成本较高。
  • 数据库生态依赖 PL/SQL 或特定的 Oracle 工具。

数据库分类

为了更清晰地理解它们之间的关系,先用一个整体的框架图来展示,然后再逐一详解。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
flowchart TD
A[数据库分类] --> B["按模型划分: 关系型 vs. 非关系型(NoSQL)"]
A --> C["按架构划分: 集中式 vs. 分布式"]

B --> B1[关系型数据库<br>RDBMS]
B --> B2[非关系型数据库<br>NoSQL]

B2 --> B2_1["键值型 (Key-Value)<br>Redis, DynamoDB"]
B2 --> B2_2["文档型 (Document)<br>MongoDB, Couchbase"]
B2 --> B2_3["列族式 (Wide-Column)<br>Cassandra, HBase"]
B2 --> B2_4["图数据库 (Graph)<br>Neo4j, JanusGraph"]

C --> C1[集中式数据库]
C --> C2[分布式数据库]

C1 --> C1_1["单机关系型<br>MySQL, PostgreSQL, Oracle"]
C1 --> C1_2["单机NoSQL<br>(较少)"]

C2 --> C2_1["分布式关系型<br>OceanBase, TiDB, CockroachDB"]
C2 --> C2_2["分布式NoSQL<br>Cassandra, MongoDB集群, Redis集群"]

%% 关联关系
B1 -.-> C1_1
B1 -.-> C2_1
B2 -.-> C2_2

一、关系型数据库 (RDBMS)

这是最传统、最常用的数据库类型,遵循“关系模型”。

  • 核心特征

    • 结构化数据:数据必须遵循预定义的表结构(Schema),包括字段名、数据类型等。
    • SQL操作:使用标准化的结构化查询语言(SQL)进行数据的增删改查。
    • ACID事务:支持原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),保证数据的一致性。
    • 表与关系:数据存储在二维表中,表与表之间通过外键建立关系。
  • 举例

    • MySQL: 世界上最流行的开源关系型数据库,广泛应用于Web应用。
    • PostgreSQL: 功能更强大的开源关系型数据库,支持JSON、地理空间数据等高级特性。
    • Oracle Database: 商业数据库的霸主,功能极其强大、稳定可靠,常用于大型企业核心系统(如银行),但费用昂贵。
    • Microsoft SQL Server: 微软旗下的商业数据库,与.NET生态系统紧密集成。

二、分布式关系型数据库

它首先是“关系型”的,其次是“分布式”的。 你可以把它理解为具备了分布式架构能力的关系型数据库

  • 核心特征

    • 具备上述关系型数据库的所有特征(SQL、ACID、表关系)。
    • 其底层架构是分布式的,数据自动分片(Sharding) 并存储在多台机器上。
    • 通常具备强大的分布式事务能力,保证跨节点的数据一致性。
    • 核心目标是解决单机关系型数据库的扩展性瓶颈问题,使其能处理海量数据和高并发请求。
  • 举例

    • OceanBase: 阿里自研的原生分布式关系型数据库,在支付宝核心系统经受考验,兼容MySQL/Oracle模式。
    • TiDB: PingCAP开源的分布式关系型数据库,兼容MySQL协议,被誉为“分布式版的MySQL”。
    • CockroachDB: 一个兼容PostgreSQL协议的开源分布式数据库。
    • TDSQL: 腾讯推出的分布式数据库产品,同样兼容MySQL协议。

三、非关系型数据库 (NoSQL)

这是一个非常宽泛的类别,泛指所有不遵循传统关系模型的数据库。它们的出现主要是为了解决关系型数据库在某些场景下的不足(如扩展性、灵活性)。

  • 核心特征
    • 灵活的模式:很多NoSQL数据库是“无模式”或“模式灵活”的,存储的数据结构可以随时变化。
    • 高可扩展性:通常为分布式架构而生,易于水平扩展(通过添加更多普通服务器)。
    • 最终一致性:许多NoSQL数据库为追求高性能和高可用,会放宽对“强一致性”的要求。
    • 不使用SQL:拥有自己特有的数据操作API和查询语言。

NoSQL数据库根据其数据模型,又可分为以下几类:

  1. 键值型数据库 (Key-Value Store)

    • 模型:最简单的NoSQL模型,像一个大Map,通过唯一的Key来查询Value。
    • 举例
      • Redis: 最流行的内存键值数据库,也支持持久化。常用于缓存、会话存储、消息队列。你在项目中用的就是它
      • DynamoDB: AWS推出的托管式键值/文档数据库。
  2. 文档型数据库 (Document Store)

    • 模型:Value是结构化的文档,如JSON、XML。数据库可以理解文档内部的结构。
    • 举例
      • MongoDB: 最著名的文档数据库,非常适合存储非结构化的数据,如博客文章、用户配置文件。
  3. 列族式数据库 (Wide-Column Store)

    • 模型:数据按列族存储,而不是按行。非常适合进行大规模数据的聚合查询。
    • 举例
      • Cassandra: 高可用的分布式列族数据库,由Facebook开发。
      • HBase: 基于Hadoop的列族数据库,适用于大数据平台。
  4. 图数据库 (Graph Database)

    • 模型:专门用于存储实体(节点)和它们之间的关系(边)。擅长处理复杂的关系网络。
    • 举例
      • Neo4j: 最主流的图数据库,用于社交网络、推荐系统、欺诈检测等。

总结与对比

特性 关系型数据库 (MySQL/Oracle) 分布式关系型数据库 (OceanBase/TiDB) 非关系型数据库 (Redis/MongoDB)
数据模型 表、行、列 表、行、列 键值、文档、图等
Schema 强约束,固定 强约束,固定 灵活或无模式
查询语言 SQL SQL 专用API
事务 强ACID 分布式强ACID 通常支持简单事务,多为最终一致性
扩展方式 垂直扩展(升级硬件) 水平扩展(增加节点) 水平扩展(增加节点)
主要优势 事务一致性、复杂查询 事务一致性+海量数据扩展性 灵活性、极致的性能与扩展性
典型场景 核心交易系统、ERP 新核心交易、海量数据业务 缓存、内容管理、社交网络、大数据
文章作者: PanXiaoKang
文章链接: http://example.com/2024/11/02/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 向阳榆木
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论