ChinaUnix.net 首页 | 博客 | Linux | 论坛 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 沙龙 | 搜索
Linux首页 | Linux论坛 | 论坛精华 | 开源新闻 | 技术文章 | 专题专栏 | 新手指南 | 迁移方案 | 产品方案 | 开源项目 | 开源图书 | 软件下载 | 人才招聘 | Linux博客
  搜索

  产品与方案
·中科红旗全面打造现代化邮政体系
·红旗助力“网上审批服务” 推动电子政务
·红旗正版化开创呼和浩特网吧建设新起点
·红旗Linux助信息产业部邮件服务器“快跑”
·中标普华Linux 为电子政务信息化保驾护航
·中标普华Linux助力基金产业
·中标普华Office率先支持UOF标准
·中标普华邮件系统助力西藏政府信息化建设
·红旗Linux助力国库集中支付系统改革
·红旗助中信卫星 掀起GIS通信应用风暴
·红旗软件助力烟草总局 全面建设“数字烟草”
·红旗助力“信访阳光工程”打造畅通信访渠道
·红帽联合FIS发布下一代实时核心银行平台
·红旗助力金盾 打造全无忧出入境信息系统
·红旗Linux全力打造中国邮政总局名址信息库
·爱尔兰证交所从Unix迁移到红帽企业Linux
·一流的意大利银行选择使用红帽企业Linux
·PLUS Finanzservice选择使用红帽企业Linux
·红帽助力TransACT Communications 公司
·法国零售业巨头Lapeyre采用Redhat Linux
·旅游预订网站选择使用红帽企业Linux
·马哈拉施特拉邦政府的红帽解决之道
·美国联邦政府案例
·红帽为慕尼黑展览会提供现代化集群系统
·Yuba郡用开源软件和红帽产品提高了效率
·红帽企业Linux助印度理工建立高性能计算中心
·采用红帽Linux 将系统维护时间缩短了65%
·从UNIX迁移到Linux使Peñoles公司获益非浅
·Hikal公司用红帽企业Linux开展任务关键的ERP项目
·KDE3.5.4新版本发布
·芝加哥商业交易所从Unix向Linux迁移
·南方基金管理有限公司成功案例 Red Hat Linux
·广东北电通讯设备有限公司成功案例
·挪威国家石油公司从UNIX迁移到红帽Linux,成本减半
·中央电视台CCTV动画部案例 Red Hat Linux

  图书

鸟哥的Linux私房菜基础学..


Linux程序设计.第3版


Linux设备驱动开发详解


  下载
·Endian Firewall
·linux kernel(Linux 内核)
·CentOS
·Fedora Core 6
·Scientific Linux
·Slackware 11.0
·Gentoo Linux
·ubuntu-6.10-i386服务器版本
·ubuntu-6.10-amd64服务器版
·ubuntu-6.10-i386桌面版
·ubuntu-6.10-amd64桌面版
·Engarde Linux
您的位置: Linux时代 > 技术文档 > 数据库 >

DB2与PostgreSQL开发的异同

日期:2008-01-03 作者:ITPUB 来自:linux.chinaunix.net


  最近用了用DB2,写了点区别。不一定完全正确。不过可以看看两者区别。

  1,数据定义语言(DDL)以及外围工具:db2与postgresql的区别几乎为0,具体区别是:

  a、db2 varchar 在没有设置特殊表空间的话,上限为32K,postgresql的varchar没有这个限制;

  b、db2的二进制大对象类型blob,在postgresql里用bytea类型代替;

  c、db2的文本大对象类型clob、long varchar,在postgresql里用text类型代替;

  d、db2中generated by default 或者 generated always 类型键字在postgresql中用serial或者bigserial代替;(这个区别是最大的)

  e、db2中没有序列(sequence对象),postgresql中有,因而更加灵活;

  f、db2中的自增主键的值重置需要alter table,而postgresql里可以用setval()系列函数设置序列,更简单;

  g、db2中不支持空间数据类型(点、线、面),postgresql支持;

  h、db2中事务隔离级别定义与SQL标准不够兼容,postgresql完全兼容SQL标准;

  i、db2中JDBC type4驱动不支持GBK的数据库编码,postgresql没有这个问题;

  j,db2的数据库编码转换非常搞笑且复杂,postgresql很简单,只需要 set client_encoding to xxx;

  k,目前db2 8.1还不支持UNICODE后台编码,postgresql支持,因此可以支持多内码;

  l,db2 8.1的触发器无法读取被触发的数据表,postgresql没有这个限制;

  m,db2 8.1 的触发器不能执行存储过程,postgresql没有这个限制;

  n,postgresql 中有bit(位)、bitstring(位串)类型,db2没有;

  o,db2的客户端db2/db2cmd执行sql脚本需要指定分隔符,比如@;postgresql的客户端缺省就是分号;

  p,db2的客户端db2/db2cmd没有命令历史功能,postgresql的客户端有,可以编辑历史命令;

  q,db2无法在同一机器上安装不同数据库版本,postgresql可以;

  r,db2有联邦数据库的概念,postgresql没有;

  s,db2 II可以进行异构数据库复制,postgresql需要自己开发软件;

  t,db2 8.1没有很好的办法将整个数据库备份成文本脚本,postgresql很容易;

  u,db2 8.1的java存储过程重载需要重启数据库,postgresql不需要;

  v,db2 的客户端db2/db2cmd中的SQL命令缺省下无法使用折行,postgresql的可以;

  w,db2没有中文文档,postgresql有,并且很完整;

  x,db2有比较完整的错误码,postgresql目前不够完整;

  y,db2中调用函数需要:select func() from sysibm.sysdummy1,postgresql 中只需要:select func(); 即可

  z,db2中返回结果集的存储过程或者函数书写非常复杂,需要使用额外的tablet存储结果集,postgresql中只是增加了RETURN NEXT语句;

  A,db2 中存储过程没有ROWTYPE/RECORD类型的概念,postgresql中有;

  2,数据操作语言(DML):

  在基本数据操作上几乎没有区别。SQL标准的函数定义也完全相同。但是postgresql的类型转换函数 CAST 是 SQL 标准,db2中略有区别,考虑到db2中只能进行有限的类型转换,所以,postgresql实际上是解放了db2开发人员。大部分postgrsql的函数类似oracle,与db2提供的函数有些区别。

  其它基本相同。

  3,客户端接口

  C接口肯定差距巨大,这个不用说了。

  ODBC是标准,postgresql提供足够的ODBC支持。

  JDBC是标准,不过postgresql只提供类型4的,db2似乎更喜欢用类型2的。

  JDBC连接建立的区别是:

  db2的类路径是:COM.ibm.db2.jdbc.app.DB2Driver (type2),com.ibm.db2.jcc.DB2Driver(type4),

  postgresql的类路径是:org.postgresql.Driver。

本文被浏览



 相关新闻

用RAMDISK来提高PostgreSQL访问速度2008-01-03 15:36:38
PostgreSQL的昨天今天和明天2008-01-03 11:43:27
Oracle和MySQL、PostgreSQL特性对比2008-01-03 11:32:12
观点:不选择PostgreSQL的五个反驳理由2008-01-03 11:09:03
PostgreSQL:开源易得 服务难求2007-04-10 13:50:02
开源数据库PostgreSQL 8.2全新发布2007-01-26 17:13:43


 相关评论
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 免费注册

Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们

京ICP证041476号