admin 管理员组文章数量: 1184232
2024年3月8日发(作者:英格兰对英格兰)
维普资讯
Linux下数据库PostgreSQI 分析与应用 文苹编号:1003—5850(2006)11—0056—02 Linux下数据库PostgreSQL分析与应用 Analysis and Application of PostgreSQL Database based on Linux 陈文星 付继宗 (北方自动控制技术研究所 太原030006) 【摘 要】PostgreSQL是一种非常复杂的对象~关系型数据库管理系统(ORDBMS),也是目前功能最强大,特 性最丰富和最复杂的自由软件数据库系统。分析了PostgreSQL在体系结构,用户管理和可扩展性方面的特点, 介绍。F PostgreSQL数据库应用开发接口以及编译方法。对在Linux下使用PostgreSQL数据库进行开发的科技 人员有一定的帮助。 【关键词】PostgreSQI ,进程,权限,扩展性,接口 中图分类号:TP311.132 文献标识码:A ABSTRACT PostgreSQI is a kind of very complex object——relation database management system(ORBDMS)and a free software database system with the most powerful functions and rich and complex characteristics.The features of PostgreSQL on system structure,user management and expansibility are analyzed,and the application development interface and compile method are presented in this paper,which will provide a help for technicians in developing work with PostgreSQI based on Linux. KEYWORDS PostgreSQL,progress,authority,expansibility,interface 随着Linux操作系统性能的不断提高,Linux特 过TCP/IP网络联接通讯。应该记住的是,在客户机上 有的高效稳定、源代码开放和灵活定制的特点使它成 可以访问的文件未必能够在数据库服务器机器上访问 为支撑数据库应用的良好平台,以致于各家数据库开 (或者只能用不同的文件名进行访问)。PostgreSQL 发公司都纷纷推出基于Linux的数据库管理系统。 服务器可以处理来自客户端的多个并发请求,它为每 PostgreSQL是一种运行在Unix和Linux操作系统 个请求启动(“fork”)一个新的进程。从这个时候开始, (在NT平台借助Cygnus也可以运行)平台上的免费 客户端和新服务器进程就不再经过最初的postmaster 的开放源码的关系数据库。是一种自由的对象关系型 进程的干涉进行通讯。因此,postmaster总是在运行, 数据库管理系统,被广泛地应用于信息处理的各个领 等待着联接,而客户端和相关联的服务器进程则是起 域。 起停停。 1 PostgreSQL特点分析 1.2 PostgreSQL用户管理 一般数据库中都需要提供用户认证机制,以保护 1.1 PostgreSQL体系结构 数据的安全性。Postgres使用一套“用户认证”机制管 PostgreSQL使用一种客户端/;R务器的模式。一 理用户对数据的访问权限。在Postgres中创建用户、 次PostgreSQL会话由下列相关的进程(程序)组成: 然后将相应的访问权限赋予用户。用户只能访问权限 一个服务器进程,它管理数据库文件,接受来自客 之内的数据、只能执行权限范围之内的操作。 户端应用与数据库的联接,并且代表客户端在数据库 Postgres的用户是独立于数据库的。也就是说,用 上执行操作。数据库服务器程序叫做postmaster。 户属于Postgres系统,而不是属于某个数据库。这样 那些需要执行数据库操作的用户的客户端(前端) 可以在一个集中的地方管理对数据库系统中所有数据 应用 客户端应用可能本身就是多种多样的:它们可 库的访问权限。 以是一个字符界面的工具,也可以是一个图形界面的 如果用户数量非常多,管理单个用户可能是一件 应用,或者是一个通过访问数据库来显示网页的web 非常复杂的管理任务。Postgres提供了一种“用户组” 服务器,或者是一个特殊的数据库管理工具。一些客 机制,将用户组成用户组,然后将权限赋予用户组。这 户端应用是和PostgreSQL发布一起提供的,但绝大 样可以减少用户管理的工作量。 部分是用户开发的。 使用CREATE USER创建Postgres用户,用 和典型的客户端/;R务器应用(C/S应用)一样,这 GRANT命令为用户分配访问权限。如果需要,可以使 些客户端和服务器可以在不同的主机上。这时它们通 用ALTER USER命令修改用户信息,用DROP命令 * 2006—07—13收到,2006—09—10改回 **陈文星,女,1981年生,在读硕士,研究方向:Linux下军用软件平台研究。
维普资讯
第19卷第11期 电脑开发与应用 删除用户,用REVOKE命令撤销用户的权限。另外 Potgres还提供了一个应用程序createuser,它可以在 shell下创建用户,不过,没有修改和删除用户的shell 命令。目前还没有创建用户组的命令,必须使用 INSERT语句向Pg—group表添加用户组。 创建数据库对象后,需要为用户赋予适当的权限, 否则用户不能自动获得对数据库的访问权限。 1.3 PostgreSQL可扩展性 PostgreSQL具有开放格局的扩展性能。应用程序 通过扩展可以具有PostgreSQL系统所没有的功能, 其扩展一般通过四个方面来实现:函数、类型、运算符 和聚集函数。除了使用系统提供的函数、类型、运算符、 聚集函数外,还可以定义自己的,以满足特殊需要。 以其目前所具备的完备的数据类型为例,只要用 户需要,还可以结合自己的特殊需要根据函数规则进 行自行扩展,理论上没有种类的上限。而实际上,不仅 仅是数据类型,包括内置在SQL语句内的所有操作函 数,用户都可以进行方便的扩展,实现应用中的特殊需 要,提高操作效率。这两方面的结合,使得PostgreSQL 成为一个基础完善而又全面开放的数据库产品,成为 各种实际应用开发的理想选择。 2 PostgreSQL的数据库应用开发 2.1编程接口 绝大多数客户端应用程序都是通过客户端接口库 与后端PostgreSQL进行连接的。客户端接I2I库包含 一组标准的应用程序编程接口,这些接口负责与 PostgreSQL进行通信。虽然客户端应用程序也可以使 用TCP/IP协议直接与PostgreSQL进行交互,但利 用客户端接口库能更加便利地管理与服务器的连接。 与PostgreSQL基本软件一起发布的客户端接I2I库有 多种,最常用的一种称为libpq;另外一种常用的接口 是ODBC,在开放源代码社区可以找到多种免费的 ODBC驱动程序。为了便于客户端的程序的编写,由数 据库服务器提供了统一的客户端C接口。而不同的客 户端接口都是源自这个C接口,比如ODBC、JDBC、 Python、Perl、Tcl、c/c++、ESQL等,同时也要指出 的是,PostgreSQL对接I2I的支持也是非常丰富的,几 乎支持所有类型的数据库客户端接口。这一点也可以 说是PostgreSQL一大优点。如表1所示,这些编程接 I2I允许应用软件向PostgreSQL提交查询请求并接收 返回的结果。 2.2编译程序 对于基于C和C++语言的接口,都需要某些包 含文件和库文件来生成可执行程序。典型情况下,接口 的包含文件安装在/usr/local/pgsql/include目录中。 应该使用编译标记一I确保编译程序能够找到包含文 表1编程接口 接口名称 适用的语言 执行方式 特点 LIBPQ C 编译 本地接口 LIBPQEASY C 编译 简化的C语言 ECPG C 编译 ANSI嵌入SQL C语言 LIBPQ++ C++ 编译 面向对象的C语言 0DBC 0DBC 编译 开放数据库连接接gl JDBC Java 编译/解释 跨平台 PERL Perl 解释 文本处理 PGTCLSH TCL/TK 解释 界面、窗口 PYTH0N Python 解释 面向对象 BHP HTML 解释 动态Web面页 件,例如:一I/usr/local/pgsql/include。接口库文件安 装在/usr/IocaI/pgsqI/Iib目录中。应该使用编译标记 L,确保编译程序能够找到库文件,例如:一L/usr/ local/pgsql/lib。 编译标记一l用来使编译程序连接指定的库文 件。如果要连接libpq.a或libpq.SO,用一lpq标记。 假定需要编译的程序名为myapp,各种接I2I的编 译命令如下: LIBPQ:gcc — I/usr/local/pgsql/include — O myapp myapp.C——L/usr/local/pgsql/lib——lpq LIBPGEASY:gcc—I/usr/local/pgsql/include一0 myapp myapp.C —I /usr/local/pgsql/lib — lpgeasy ECPG:ecpg myapp.pgc gcc gcc—I/usr/local/pgsql/ include—o myapp myapp.C—L/usr/local/pgsql/ lib——lecpg LIBPQ++:gcc++一I/usr/local/pgsql/include—O myapp myapp.C--I /usr/local/pgsql/lib— lpq++ 需要注意的是,各种接口有各自的库文件。ECPG 接口要求编译前先执行ecpg预处理程序。uBPQ++ 要用不同的编译器。 3 结束语 PostgreSQL被誉为是数据库新技术的“探路者”, 商业数据库管理系统的许多技术都源自这个系统。它 提供了多版本并行控制,支持几乎所有SQL标准特性 (包括子查询、事务、用户定义类型和函数),并且有非 常广泛的开发语言支持(包括C、C++、Java、perl、tcl 及python等)。在稳定、高效、安全的核心的支持下 PostgreSQL能够满足大多数数据库应用系统的需要。 随着自由软件的发展和普及,PostgreSQL将在我国的 信息化建设中扮演越来越重要的角色。 参考文献 [1] 许宏松.PostgreSQL7数据库开发指南[M].北京: 机械工业出版社,2001. [2] 彭晓明.PostgreSQI 对象关系数据库开发[M].北 京:人民邮电出版社,2001.
版权声明:本文标题:Linux下数据库PostgreSQL分析与应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1709892712a549011.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论