Postgresql体系架构(三)-逻辑结构

Postgresql体系架构(三)-逻辑结构

  1. 逻辑概览

逻辑存储结构是内部的组织和管理数据的方式;主要包括数据库集群(Database Cluster)、数据库(Database)、表空间(Table Spaces)、数据库(Databases)、表(Tables)、索引(Indexes)等。

        所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在pg_database,pg_class表中。

        

  1. 1. 数据库集群-Database Cluster

        也叫数据库集簇。它是指有单个PostgreSQL服务器实例管理的数据库集合,组成数据库集群的这些数据库使用相同的全局配置文件和监听端口、共用进程和内存结构。一个DataBase Cluster可以包括:多个DataBase、多个User、以及Database中的所有对象。

  1. 2. 数据库-Database

        数据库是数据库对象的集合。在关系数据库理论中,数据库对象是一种用于存储或引用数据的数据结构。(堆)表是一个典型的例子,还有许多其他的例子,如索引、序列、视图、函数。 在 PostgreSQL 中,数据库本身也是数据库对象,在逻辑上彼此分离。所有其他数据库对象 (如表、索引等)都属于各自的数据库。

        

        数据库初始化之后自动会创建postgres、template0、template1三个数据库。

        postgres数据库:这是默认的管理数据库,用于管理 PostgreSQL 服务器和用户角色。它包含了用于管理服务器和用户的系统表,例如 pg_roles、pg_database 等。通常不建议用于存储实际数据,而仅用于管理目的。

        template0数据库:是一个不可修改的数据库,它是PostgreSQL的原始模板,包含了数据库的初始设置和结构。任何时候都不应对template0进行修改,因为它是一个干净的模板,用于在需要时创建一个新的、干净的数据库副本使用template0创建数据库时,可以指定字符集和本地化设置。例如,可以指定编码为UTF-8collatectype属性为特定的区域设置template0主要用于在数据库损坏或需要恢复原始状态时使用。由于它是一个不可修改的模板,可以确保新创建的数据库始终基于一个干净的状态

        template1数据库:PostgreSQL中的一个模板数据库,可用于创建其他数据库的模板,在创建新数据库时提供基础设置和数据结构。与 template0 类似,也是一个模板数据库。但与template0 不同的是,template1 是可以被修改的,比如修改模版字符集、或者可以在其中创建用户自定义的对象,例如函数、表等。默认情况,我们新创建database会以template1库为模板进行创建。使用template1创建数据库时,不能指定新的字符集和本地化设置,只能使用与template1相同的设置template0不能连接,而template1可以连接并创建对象

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值