Archive for January 18, 2006

学习PostgreSQL

      今天翻到一本讲PostgreSQL的电子书,就拿起来看。数据库的东西学过不少,SQLServer、Oracle、MySQL等,不知道PostgreSQL有什么特别的,以前看新闻,总看到国外的很多尖端领域会采用MySQL、PostgreSQL等开源产品,比如最近美国国务院就跟MySQL签署了一笔合同,将在国防部、国务院等政府和军事部门的系统中采用MySQL的数据库服务产品。

继承(Inherits)
      新建表时,Postgre支持从其他表继承表结构,比如表city代表城市的一些属性,另外创建一个表capital表示城市里面的首都,capital就可以从city继承,当然也可以直接在city里面加入一个字段来实现,但使用继承方式可以分离数据,使得数据的原子性更高,也避免了表结构的臃肿和庞杂。
      在查询时,可以对表的继承树下的所有表进行查询,比如上面的city和capital,可以直接用city*来表示查询city的所有子表。

数组(Array)
      Postgre支持表字段的数组形式,即字段可以被定义成数组形式,比如表city有字段邮编、区号,本来可以用两个字段来表示,但简便起见,可以把他们融合到一起成一个字段。

几何类型
      几何类型的数据用来表示2D平面,Postgre支持的几何类型有point、line、lseg、box、path、polygon、circle,同时,Postgre提供很多内置函数来处理这些几何类型的数据,如求直径、线段长度、中心等,还有内置的几何操作符来对几何数据进行运算,如平移、伸缩、垂直、水平、相交、重叠等

      PostgreSQL在启动和访问时,对用户权限的限定很严格,如果启动用户没有被定义成root,那么即使作为最高权限的root用户也无法启动postmaster,而数据库的访问也是有相应权限控制的,可以用createuser来增加用户,而在这之前,你先应该在linux/unix下建立该用户的帐号,否则仍然无法访问PostgreSQL服务。

Leave a Comment