COMPUTER SCIENCE

 

JAVA

 

R

 

XML

 

LINUX

 

OTHERS

 

BIOINFORMATICS

 

BIOJAVA

 

 

BIOSQL

 

 

MICROARRAY

 

 

MOTIF FINDING

 

 

REGULATION NETWORK

 

OTHERS

 

LIFE SCIENCE

 

 

安装和使用BioSQL

David Huen 著
Last modified: 18th June 2003

本文档描述如何安装使用BioSQL。BioSQL是OBDA标准的一部分,作为支持多种语言的通用序列数据库模式由 Open Bioinformatics Foundation开发。


BioSQL在设计上采用中立立场。我基于我对它的认识编写了这个指南。我使用的是RedHat7.2系统的x86机器。

安装Postgresql

如果你没有安装的话,Postgresql可以用rpm安装:
rpm -ivh postgresql-7.2.1-5.i386.rpm postgresql-libs-7.2.1-5.i386.rpm postgresql-server-7.2.1-5.i386.rpm

通常需要Root权限(如果不需要的话,你的机器会有安全问题!)。你还需要JDBC使得Java程序可以连接到你的PostgreSQL数据库上。可以通过安装
postgresql-jdbc-7.1.3-2.i386.rpm来实现。不过我建议你从这里下载安装最新版本。你还需要将实现JDBC的jar文件添加到你的CLASSPATH中。
安装时一个叫postgresql的控制脚本会在/etc/init.d 中。当这个脚本第一次运行时,将会创建并初始化一个数据库簇(database cluster)。
这个簇被PostgreSQL用来存储数据文件。

在RedHat7.2中,默认的数据库簇安装目录在/var/lib/pgsql/下。这可能有缺点,因为通常这个/var目录很小。在这一步,你可以用连接将这个目录
指向其他一个空间足够大的目录。我强烈建议你现在就这么做。

在这一步中,你将创建一个数据库和用户名。我不建议你使用超级用户postgres取做很多工作,这个超级用户应该拿来专门做一些管理工作而不是应用
工作。讲一些题外话,PostgreSQL的认证将会影响到你能够做什么事情。PostgreSQL有很多途径能实现这点。默认的安装只允许被本地用户连接,只允
许和本地用户同名的用户连接数据库。这对于练习数据库来书足够,但对于应用,比如说你想建立BioSQL数据库,并允许很多本地用户甚至是远程用户
连接它,这样的话这个默认认证远远不够。

PostgreSQL 在它的文档中阐述了很多机制原理。认证机制在这里阐述。你可以考虑使用密码认证,当你希望认证远程用户时,请使用md5加密选项。在
RedHat7.2安装中,你需要编辑/var/lib/pgsql/data/pg_hba.conf文件实现上述选项。这个文件的位置根据不同的安装版本而不同。
在RedHat7.2初装时,PostgreSQL需要Root权限去进一步安装。这时不能以超级用户postgres登录,你可以从Root用户中执行:
创建数据库
$ su postgres -c 'createdb <insert db name here>'
创建用户
$ su postgres -c 'createuser <insert user name here>'

在本指南中,我将不会改变认证,这样数据库的名字将和你的用户名一致。用户名为gadfly,这将在数据库和用户的名字体现。另外一个变化是启动TCP/IP
连接,默认安装受Unix域套接字限制是不允许TCP/IP 连接的。如果不启动这个选项,PostgreSQL JDBC 将不能使用。
要开启TCP/IP选项,在启动脚本中加上"-i"选项。编辑/etc/init.d/postgresql 作如下改变:
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null

改成:
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -o "-i" -D $PGDATA -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null

同时/var/lib/pgsql/data/pg_hda.conf文件也需要改写,允许TCP/IP连接。将:

#host all 127.0.0.1 255.255.255.255 trust

这行解注释。
这几个操作都需要Root权限。查看建议,这样能使你拥有安全的系统环境。
在RedHat7.3中postgresql的pgsql语言没有被激活。BioSQL使用他来提高效率。你需要激活他:
su postgres -c 'createlang plpgsql template1'

安装 BioSQL

首先,PostgreSQL必须启动。查看数据库状态:

$ /etc/rc.d/postgresql status

如果没有启动:

$ /etc/rc.d/postgresql start
启动数据库。必须以Root权限完成上述操作。使用SysV初始化系统启动PostgreSQL在系统启动时。
你需要三个脚本初始化新的BioSQL数据库:

biosql-accelerators-pg.sql
biosqldb-assembly-pg.sql
biosqldb-pg.sql

这里下载

我们需要将模式添加到我们创建的数据库中。如下:

$ psql gadfly
Welcome to psql, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit

gadfly=> \i biosqldb-pg.sql
CREATE
psql:biosqldb-pg.sql:13: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'biodatabase_pkey' for table 'biodatabase'
CREATE
<rest of output snipped>
INSERT 16862 1
psql:biosqldb-pg.sql:304: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'cache_corba_support_pkey' for table 'cache_corba_support'
CREATE
gadfly=> \i biosqldb-assembly-pg.sql
<rest of output snipped>
gadfly=> \i biosql-accelerators-pg.sql
<rest of output snipped>
gadfly=> \q

$

我们看看上述过程。psql是PostgreSQL的交互Shell,我们用它来连接到PostgreSQL服务器上。连接到我们先前创建的名字叫gadfly数据库上。
psql启动并显示用户提示符。所有的psql命令以一个反斜杠开始(\)。\i 意味着psql从一个文件中读取命令。我们让psql从biosqldb-pg.sql
, biosqldb-assembly-pg.sql and biosql-accelerators-pg.sql 中读取命令。psql根据这些文件创建BioSQL数据库模式,输出他的处理过程。
最后用\q命令退出psql。至此,BioSQL数据库创建完成。

务必记住如果你在你的程序中不显式的装载JDBC驱动,你应该设置Java环境变量告诉虚拟机在哪里装载驱动。
例如:java -Djdbc.drivers=org.postgresql.Driver <whatever your java code is>

注意: 如果你使用的是新加坡模式的Biojava1.3,不要安装biosqldb-assembly-pg.sql,biosql-accelerators-pg.sql ,你只需要新版本的 biosqldb-pg.sql。如果你安装了其它的模式文件可能会有性能问题。这个提示将会根据建议不断更新

--BACT TO TOP

 

Maintainted by Wu Xin, CBI, Peking University, China, 2003