技术开发 频道

行式数据库PostgreSQL 9.04版本评测

  二、PostgreSQL功能简介

  1. 几个概念

  数据库集群

  在你做任何事情之前,你必须初始化磁盘上的数据库的存储区间。 这称为数据库集群。一个数据库集群是一系列数据库的集合,这些数据库可以通过单个数据库服务器的实例管理。在初始化后,一个数据库集群将包含一个叫template1的数据库。这个数据库将作为随后创建的数据库的模版;在实际工作中不应该使用这个库。

  用文件系统的术语来说,一个数据库集群将是一个目录,所有数据都将存放在这个目录中。 我们把它称做数据目录或数据区。在哪里存放数据完全是你的选择,我们没有缺省值,尽管 /usr/local/pgsql/data 或 /var/lib/pgsql/data 这样的目录很常用。 要初始化一个数据库集群,可以使用命令 initdb。

  注意这里的数据库集群和其他数据库管理系统的集群不同,它是单个实例,运行在一台服务器中。

  数据库用户

  数据库用户从概念上与操作系统用户是完全无关的。 在实际使用中把它们对应起来可能比较方便,但不是必须的。 数据库用户名在整个数据库集群中是全局的(而不是每个库不同)。要创建一个用户,使用 SQL 命令 CREATE USER:

  CREATE USER name;

  name 遵循 SQL 标识的规则: 要么完全没有特殊字符,要么用双引号引起。 要删除一个现有用户,使用类似的命令 DROP USER:

  DROP USER name;

  为了能初创数据库系统,新建立的数据库总是包含一个预定义的用户。 这个用户将有固定的 ID 1, 并且缺省时(除非在运行 initdb 时更改过)他将和初始化该数据库集群的用户有相同的名称。通常,这个用户叫postgres。 为了创建更多用户,你必须首先以这个初始用户身份联接。

  组

  和 Unix 里一样,组是一个逻辑上对用户分组,进而简化权限管理的方法:权限可以赋予整个组,也可以对整个组撤除。要创建一个组,使用 SQL 命令 CREATE GROUP:

  CREATE GROUP name;

  要向组中增加用户或删除用户,用 SQL 命令 ALTER GROUP:

  ALTER GROUP name ADD USER uname1, ... ;

  ALTER GROUP name DROP USER uname1, ... ;

  要删除一个阻,使用 DROP GROUP:

  DROP GROUP name;

  这样只会删除组,不删除成员用户。

  模式

  一个数据库包含一个或多个命名的 模式, 模式又包含表。模式还包含其它命名的对象,包括数据类型,函数, 以及操作符。同一个对象名可以在不同的模式里使用而不会导致冲突;比如,schema1 和 myschema 都可以包含叫做 mytable 的表。和数据库不同,模式不是严格分离的: 一个用户可以访问他所连接的数据库中的任意模式中的对象, 只要他有权限。

  模式的用途:

  允许多个用户使用一个数据库而不会干扰其它用户。

  把数据库对象组织成逻辑组,让它们更便于管理。

  第三方的应用可以放在不同的模式中, 这样它们就不会和其它对象的名字冲突。

  模式类似于操作系统层次的目录,只不过模式不能嵌套。

  PostgreSQL是一款面向对象数据库,支持表的继承(INHERITS)、还有一些独有的运算符和数据类型,比如::类型转换符,数组类型,这里不一一介绍,请参阅文档。

0