
在理解数据库逻辑结构的时候,首先要理解数据库集群(Database Cluster)。一个数据库集群是一系列数据库的集合,它由一个统一的数据库集群实例管理。一个数据库集群实例由initdb命令初始化后,就对应着唯一一个postmaster进程,一个data目录以及一个端口号。我们可以在一台数据库服务器上通过initdb命令初始化多个数据库集群实例,但他们对应着不同的postmaster进程,不同的data目录以及不同的端口号。
一个数据库可以包含多个模式(schema),模式是一组数据库对象的集合。在一个模式中,我们可以建立多个表,视图,索引,函数等多种数据库对象。模式和用户并不是一一对应的,一个用户可以对应多个模式。
在Postgres中,任何一个数据库对象都有一个所有者(Owner),它具有该对象的所有权限,我们把他称作用户(User)或角色(Role)。用户(User)或角色(Role)是属于整个数据库集群的,独立于数据库之外。
另外一个独立于数据库之外的对象便是表空间(Tablespace),表空间是对数据库物理文件位置的规划,他允许我们将数据文件放到指定的位置。EDB在安装时创建了默认的表空间:pg_default(指向PGDATA/base)和pg_global(指向PGDATA/ global)。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21778816/viewspace-694101/ ,如需转载,请注明出处,否则将追究法律责任。