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 数据库
自增列 使用 SERIAL或 GENERATED AS IDENTITY(PostgreSQL 兼容)。 使用 SEQUENCE,需要单独创建。
分区表 支持 RANGE、LIST、HASH 等多种分区方式,语法类似 PostgreSQL。 支持 RANGE、LIST、HASH,但语法与 Oracle 独特(如 PARTITION BY)。
窗口函数 完全兼容 PostgreSQL 窗口函数(如 ROW_NUMBER()、RANK())。 同样支持窗口函数,但部分实现细节可能不同。
JSON 操作 使用 PostgreSQL 风格的 JSON 操作符(如 ->和 ->>)。 使用 Oracle 提供的 JSON 操作函数(如 JSON_TABLE和 JSON_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 许可协议。转载请注明来自 向阳榆木!
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论
繁