From a0a35b868d80afec2796805cf0fc0c41a1bc917d Mon Sep 17 00:00:00 2001 From: zhouzhongping Date: Wed, 20 Sep 2023 17:50:53 +0800 Subject: [PATCH] =?UTF-8?q?Postgresql:=20=E6=A6=82=E8=BF=B0=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wiki/database-system/PostgreSQL/概述.md | 121 +++++++++++++++++- .../{基础理论 => 基础}/_category_.json | 4 +- .../{基础理论 => 基础}/关系型数据库.md | 0 .../{基础理论 => 基础}/数据库概述.md | 0 .../{基础理论 => 基础}/非关系型数据库.md | 0 5 files changed, 122 insertions(+), 3 deletions(-) rename wiki/database-system/{基础理论 => 基础}/_category_.json (55%) rename wiki/database-system/{基础理论 => 基础}/关系型数据库.md (100%) rename wiki/database-system/{基础理论 => 基础}/数据库概述.md (100%) rename wiki/database-system/{基础理论 => 基础}/非关系型数据库.md (100%) diff --git a/wiki/database-system/PostgreSQL/概述.md b/wiki/database-system/PostgreSQL/概述.md index bdd2fbec..2d1f8f8b 100644 --- a/wiki/database-system/PostgreSQL/概述.md +++ b/wiki/database-system/PostgreSQL/概述.md @@ -36,6 +36,116 @@ PostgreSQL 的发展历程反映了其对技术创新和社区驱动的承诺: 与其他关系数据库相比,**PostgreSQL 一直强调其对开放性、扩展性和标准的遵循**。与 MySQL、Oracle 和 SQL Server 等数据库相比,它被视为一个功能丰富但需要一定学习投入的选择。 +## 架构 + +```mermaid +graph LR; + A[PostgreSQL 数据库服务] --> B1[数据库集簇 A]; + A[PostgreSQL 数据库服务] --> B2[数据库集簇 B]; + B1 --> C1[单一实例]; + B2 --> C2[单一实例]; + C1 --> D1[数据库 A]; + C1 --> D2[数据库 B]; + C2 --> D3[数据库 C]; + D1 --> E1[数据表1]; + D1 --> E2[数据表2]; + D1 --> F1[视图]; + D1 --> F2[函数]; + D1 --> F3[触发器]; + E1 --> G1[列]; + E1 --> G2[索引]; + E1 --> G3[主键]; + E1 --> G4[外键]; + E1 --> G9[约束]; + E2 --> G5[列]; + E2 --> G6[索引]; + E2 --> G7[主键]; + E2 --> G8[外键]; + E2 --> G10[约束]; + A --> H1[事务和并发控制]; + A --> H2[备份和恢复]; + A --> H3[安全性和权限管理]; + + A --> I[进程管理器]; + A --> J[SQL 解析器]; + A --> K[查询优化器]; + A --> L[查询执行器]; + + I --> M[后台进程]; + I --> N[自动清理进程]; + I --> O[后台工作进程]; + + L --> P[存储管理器]; + P --> Q[缓冲区管理]; + P --> R[磁盘空间管理]; + P --> S[事务管理]; + P --> X[日志管理]; + + Q --> T[共享缓冲区]; + Q --> U[WAL 预写日志]; + + S --> V[事务日志]; + S --> W[多版本并发控制 MVCC]; + + H1 --> Y[锁管理]; + H2 --> Z1[物理备份]; + H2 --> Z2[逻辑备份]; + H3 --> Z3[角色和权限管理]; + H3 --> Z4[加密和认证]; + + K --> Z5[统计信息]; + + style A fill:#f9d,stroke:#333,stroke-width:2px; + style B1 fill:#fc9,stroke:#333,stroke-width:2px; + style B2 fill:#fc9,stroke:#333,stroke-width:2px; + style C1 fill:#9cf,stroke:#333,stroke-width:2px; + style C2 fill:#9cf,stroke:#333,stroke-width:2px; + style D1 fill:#9fc,stroke:#333,stroke-width:2px; + style D2 fill:#9fc,stroke:#333,stroke-width:2px; + style D3 fill:#9fc,stroke:#333,stroke-width:2px; + style E1 fill:#c9f,stroke:#333,stroke-width:2px; + style E2 fill:#c9f,stroke:#333,stroke-width:2px; + style F1 fill:#ccf,stroke:#333,stroke-width:2px; + style F2 fill:#ccf,stroke:#333,stroke-width:2px; + style F3 fill:#ccf,stroke:#333,stroke-width:2px; + style G1 fill:#fcc,stroke:#333,stroke-width:2px; + style G2 fill:#fcc,stroke:#333,stroke-width:2px; + style G3 fill:#fcc,stroke:#333,stroke-width:2px; + style G4 fill:#fcc,stroke:#333,stroke-width:2px; + style G5 fill:#fcc,stroke:#333,stroke-width:2px; + style G6 fill:#fcc,stroke:#333,stroke-width:2px; + style G7 fill:#fcc,stroke:#333,stroke-width:2px; + style G8 fill:#fcc,stroke:#333,stroke-width:2px; + style G9 fill:#fcc,stroke:#333,stroke-width:2px; + style G10 fill:#fcc,stroke:#333,stroke-width:2px; + style H1 fill:#ccc,stroke:#333,stroke-width:2px; + style H2 fill:#ccc,stroke:#333,stroke-width:2px; + style H3 fill:#ccc,stroke:#333,stroke-width:2px; + style I fill:#9cf,stroke:#333,stroke-width:2px; + style J fill:#9cf,stroke:#333,stroke-width:2px; + style K fill:#9cf,stroke:#333,stroke-width:2px; + style L fill:#9cf,stroke:#333,stroke-width:2px; + style M fill:#cfc,stroke:#333,stroke-width:2px; + style N fill:#cfc,stroke:#333,stroke-width:2px; + style O fill:#cfc,stroke:#333,stroke-width:2px; + style P fill:#ccf,stroke:#333,stroke-width:2px; + style Q fill:#ccf,stroke:#333,stroke-width:2px; + style R fill:#ccf,stroke:#333,stroke-width:2px; + style S fill:#ccf,stroke:#333,stroke-width:2px; + style T fill:#fcc,stroke:#333,stroke-width:2px; + style U fill:#fcc,stroke:#333,stroke-width:2px; + style V fill:#fcc,stroke:#333,stroke-width:2px; + style W fill:#fcc,stroke:#333,stroke-width:2px; + style X fill:#ccf,stroke:#333,stroke-width:2px; + style Y fill:#ccc,stroke:#333,stroke-width:2px; + style Z1 fill:#ccc,stroke:#333,stroke-width:2px; + style Z2 fill:#ccc,stroke:#333,stroke-width:2px; + style Z3 fill:#ccc,stroke:#333,stroke-width:2px; + style Z4 fill:#ccc,stroke:#333,stroke-width:2px; + style Z5 fill:#9cf,stroke:#333,stroke-width:2px; + +``` + ## 特点 作为世界上最先进的开源关系数据库,PostgreSQL 具有以下显著特点: @@ -70,6 +180,14 @@ PostgreSQL 通常每年发布一次主要版本,并根据需要发布小的补 ```mermaid graph LR + style A fill:#f9d,stroke:#333,stroke-width:2px; + style B fill:#9cf,stroke:#333,stroke-width:2px; + style C fill:#9cf,stroke:#333,stroke-width:2px; + style D fill:#ccf,stroke:#333,stroke-width:2px; + style E fill:#ccf,stroke:#333,stroke-width:2px; + style F fill:#ccf,stroke:#333,stroke-width:2px; + style G fill:#ccf,stroke:#333,stroke-width:2px; + A[PostgreSQL 发布规则] B[小版本发布] C[主要版本发布] @@ -87,10 +205,11 @@ graph LR C --> H D[每个季度至少发布一次小版本] - F[目标日期:每年的 2 月、5 月、8 月和 11 月的第二个星期四] + F[目标日期: 每年的 2 月, 5 月, 8 月和 11 月的第二个星期四] E[每年一次发布一次主要版本] G[计划在 2023 年第三季度发布 16 版本] H[主要版本提供 5 年技术支持] + ``` ## 文化 diff --git a/wiki/database-system/基础理论/_category_.json b/wiki/database-system/基础/_category_.json similarity index 55% rename from wiki/database-system/基础理论/_category_.json rename to wiki/database-system/基础/_category_.json index f40ba523..be9d437e 100644 --- a/wiki/database-system/基础理论/_category_.json +++ b/wiki/database-system/基础/_category_.json @@ -1,8 +1,8 @@ { - "label": "基础理论", + "label": "基础", "position": 1, "link": { "type": "generated-index", - "title": "基础理论" + "title": "基础" } } \ No newline at end of file diff --git a/wiki/database-system/基础理论/关系型数据库.md b/wiki/database-system/基础/关系型数据库.md similarity index 100% rename from wiki/database-system/基础理论/关系型数据库.md rename to wiki/database-system/基础/关系型数据库.md diff --git a/wiki/database-system/基础理论/数据库概述.md b/wiki/database-system/基础/数据库概述.md similarity index 100% rename from wiki/database-system/基础理论/数据库概述.md rename to wiki/database-system/基础/数据库概述.md diff --git a/wiki/database-system/基础理论/非关系型数据库.md b/wiki/database-system/基础/非关系型数据库.md similarity index 100% rename from wiki/database-system/基础理论/非关系型数据库.md rename to wiki/database-system/基础/非关系型数据库.md