Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103563706
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563707
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563708
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563709
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563710
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563711
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563712
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563713
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563704
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563715
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563716
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563717
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563718
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563719
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563720
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563721
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563722
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563723
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563724
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563725
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563726
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563727
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563728
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563719
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563730
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563731
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563732
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563733
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563734
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563735
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563736
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563737
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563738
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563739
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563740
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563741
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563742
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563743
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563734
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563745
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563746
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563747
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563748
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563749
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563750
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563751
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563752
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563753
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563754
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563755
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563756
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks

DB2 9 应用开发(733 考试)认证指南,第 1 部分: 数据库对象与编程方法(5)-sdccf-ChinaUnix博客
  • 博客访问: 103563757
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:14:17

利用基本原理构建基础

developerWorks



基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128187) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128186) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128185) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128184) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128183) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128182) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128180) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128179) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128178) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128177) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128176) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128175) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128173) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128172) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128171) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128170) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128169) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128168) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128167) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128166) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128165) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128164) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128163) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128162) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128161) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128160) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128159) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128158) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128157) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128156) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128155) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128154) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128153) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128152) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128151) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128150) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128149) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128148) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128147) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128146) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128144) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128143) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128142) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128141) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128140) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128139) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128138) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


基于驱动程序的 API

虽然大多数数据库供应商支持嵌入式 SQL 数据库访问,但如果希望使用相同的源代码并将嵌入式 SQL 应用程序部署到多个数据库系统,则需进行一些额外的操作。必须使用不同供应商的专用预编译器预编译程序。还必须生成数据访问计划并将其绑定到目标数据库。要增强应用程序的可移植性,可考虑使用本部分介绍的基于驱动程序的解决方案

基于驱动程序的解决方案涉及与应用程序相连接的驱动程序管理器。驱动程序管理器提供了一组行业标准的应用程序编程接口 (API) 来访问数据源。编写应用程序来调用这些 API;然后编译该程序并将其与管理器的库链接起来。因为驱动程序符合该标准,所以应用程序可通过使用(或加载)正确的驱动程序轻松访问不同供应商的数据源。

在本部分中,将看到 DB2 支持的一些 API。在此系列的其他几篇教程中将了解每个 API 的详细信息。

DB2 Call Level Interface (CLI) 是面向 DB2 数据库服务器的 IBM 可调用 SQL 接口。这是用于数据库访问的 C/C++ API。正如可以使用嵌入式动态 SQL 语句编程一样,也可以使用 DB2 CLI 开发动态应用程序。在上述两种情形中,都是在运行时准备和处理 SQL 语句。只是嵌入式动态 SQL 需要预编译器,DB2 CLI 则不需要。只需简单地编译应用程序并将其链接到 DB2 CLI 驱动程序库即可。

DB2 CLI 基于 Microsoft 的 Open Database Connectivity (ODBC) 和 X/Open CLI 标准。在 ODBC 环境中,应用程序与使用 ODBC 驱动程序管理器的数据库服务器相连接。该管理器为应用程序连接到的数据库服务器动态地加载必需的驱动程序。ODBC 提供了几个级别的功能支持,DB2 CLI 目前遵从的是 ODBC 3.51。

要开发 DB2 CLI 应用程序,需要 DB2 客户机或 DB2 运行时客户机。它们包含了编译和链接 CLI 应用程序必需的所有头文件和库。另一方面,要开发 ODBC 应用程序,需要有 Microsoft 提供的 ODBC Developer's Software Kit。

图 1 为 DB2 CLI 和 ODBC 环境之间的简单比较:



DB2 CLI 与 ODBC 对比

在很多情况下,客户从软件供应商处获得或购买 ODBC/CLI 应用程序。他们只需一个运行时环境来运行 ODBC/CLI 应用程序。伴随 DB2 9 引入了一个新的驱动程序产品,即 IBM DB2 Driver for ODBC and CLI,您可以免费下载该产品。可以在 DB2 9 Information Center 找到该驱动程序的配置步骤。(参见 参考资料 中相应的链接。)





回页首


.NET 框架是可帮助实现多种应用程序的开发平台。.NET 框架中有以下三个主要组件:

  • 公共语言运行库 (CLR)
  • 框架类库
  • .NET 兼容的语言

编译 .NET 兼容的语言(如 C# .NET 和 Visual Basic .NET)时,将产生称为中间语言 (IL) 的字节码。公共语言运行库是为 IL 代码提供代码执行服务的运行时环境。因为所有 .NET 兼容的语言都会被编译成 IL,所以 CLR 可集成以各种语言编写的代码。例如,Visual Basic (VB) 方法可访问 C# 方法,而 C# 中定义的类可从 VB 进行访问。

.NET 框架库是开发人员用来构建 .NET 应用程序的类和 API。它们提供了一组通用服务,如文件 I/O 和数据源访问,允许开发人员向程序添加功能,而无需顾忌编程语言。ADO.NET 是部分 .NET 框架的编程模型示例。像 Open Database Connectivity (ODBC) 和 Object Linking and Embedding Database (OLE DB) 一样,ActiveX Data Objects .NET (ADO.NET) 是 Microsoft 提供的另一个数据访问应用程序接口。这个更新后的数据访问模型结合了其前身 ActiveX Data Objects (ADO) 以及传统数据库访问、集成的 XML 支持和断开的数据架构的优良特性。

使用 ADO.NET 从 .NET 应用程序连接到 DB2 数据库可能有三种访问方法。可使用 Microsoft ODBC .NET 数据提供程序、Microsoft OLE DB .NET 数据提供程序或 DB2 .NET 数据提供程序。DB2 数据库和 .NET 应用程序间的数据访问替代方案如图 2 所示:



DB2 支持 ADO.NET

可以看到,ODBC 和 OLE DB 选项都需要将应用程序请求从 ODBC 和 OLE DB .NET 数据提供程序翻译成 DB2 ODBC 和 OLE DB 本地驱动程序。因为驱动程序间翻译产生了更长的代码路径和限制,所以强烈建议使用本地 DB2 .NET 数据提供程序选项。DB2 .NET 数据提供程序支持 .NET 框架 1.1 和 2.0 版本。





回页首


Java 平台已流行了很久。但人们仍在进行多种努力以扩展其功能,改善其性能。访问和操作 DB2 的 Java 程序可使用 Java Database Connectivity (JDBC) API 和 Embedded SQL for Java (SQLJ) 标准。二者都是供应商中立的 SQL 接口,通过标准化的 Java 方法提供对应用程序的数据访问。

JDBC 是 事实上的 标准 Java API,它使用动态 SQL 和一个功能强大的面向对象接口来访问关系数据库。JDBC 将动态 SQL 传递给 DB2 附带的 JDBC 驱动程序。DB2 通过 JDBC API 执行 SQL 语句,并将结果传回 Java 代码。JDBC 与 DB2 CLI 的类似之处在于,无需预编译或绑定 JDBC 程序,这是由于 JDBC 使用动态 SQL。

另一方面,SQLJ 程序包含静态嵌入式 SQL 语句。准备 SQLJ 程序时需要执行类似于预编译和绑定的步骤。在编译 SQLJ 源文件之前,必须用 SQLJ 翻译器对其进行翻译,从而创建本地 Java 源代码。翻译完成后,需要使用 DB2 为 Java 配置文件定制器 (db2profc) 创建 DB2 包。本系列的第七篇教程(标题为 “Java 编程”)将完整地讨论如何构建 SQLJ 应用程序。





回页首


根据 Java 2 Platform, Enterprise Edition (J2EE) 规范,用于获得数据访问的 Java 方法和接口可包装为 JDBC 驱动程序。DB2 提供了以下两种类型的 JDBC 驱动程序:

  • 用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver
  • 用于 JDBC 和 SQLJ 的 IBM DB2 Driver(Type 2 和 type 4)

用于 Linux™、UNIX® 和 Windows® 的 DB2 JDBC Type 2 Driver 构建于本地 DB2 CLI 之上。此驱动程序已被否决并且 DB2 的后续版本将不再对其提供支持。可使用下面介绍的 JDBC 驱动程序作为替代。

用于 JDBC 和 SQLJ 的 IBM DB2 Driver 使用 DB2 家族中对所有数据库都通用的 Distributed Relational Database Architecture (DRDA) 协议。此驱动程序使用 Type 4 驱动程序架构将 Java 直接连接到 DB2 服务器。该驱动程序既包括 JDBC type 2 的行为,又包括 type 4 的行为,还包括 SQLJ 运行时支持。实现类的名称为 com.ibm.db2.jcc.DB2Driver。 图 3 中提供了对该驱动程序的说明:



用于 JDBC 和 SQLJ 的 IBM DB2 Driver




回页首


DB2 也提供 API 来支持常见的开放源码编程语言(包括 PHP、Perl 和 Python)。

PHP:Hypertext Processor (PHP) 是用于创建 Web 内容的开放源码服务器端脚本语言,并且是用于创建 Web 应用程序以访问 DB2 数据的功能强大的选择。可通过以下两种产品从 PHP 应用程序访问 DB2 数据库:

  • ibm_db2 是 IBM 为访问 DB2 数据库而编写、维护和支持的扩展。ibm_db2 扩展为执行对用户数据和数据库元数据的数据库操作提供过程 API。可使用 PHP 4 或 PHP 5 编译 ibm_db2 扩展。
  • PDO_ODBC 是 PHP Data Objects (PDO) 扩展的驱动程序,通过 PHP 5.1 中引入的面向对象的标准数据库接口提供对 DB2 数据库的访问。虽然此驱动程序的名称提到 ODBC,但可直接使用 DB2 库编译 PDO_ODBC 扩展,从而避免通信开销和 ODBC 驱动程序管理器的潜在干扰。

图 4 演示了这些产品:



DB2 的 PHP 接口

Perl 是一种功能强大、易于使用的编程语言,可以源代码或二进制形式免费获得。可使用 Perl 快速操作关系数据库中的大量数据。连接 Perl 脚本到关系数据库的标准是称作 DBI 的数据库接口模块。要从 Perl 脚本访问 DB2 数据库,需要用于 Perl 的 DB2 驱动程序。

如图 5 所示,Perl 脚本使用标准 API 与 DBI 进行通信。Perl DBI 模块只支持动态 SQL。该模块定义了一组方法、变量和约定,用来提供独立于实际所使用数据库的一致的数据库接口。对于编程人员希望使用的任何数据库,DBI 均为 API 提供了一致的接口。DBD::DB2 是允许 Perl 与 DB2 进行通信的 Perl 模块。



DB2 Perl 驱动程序

Python 是翻译过的交互式面向对象的编程语言。 编程人员无需编译应用程序中的 Python 代码;因为 Python 源代码总是被翻译成字节码,所以编译过程是自动进行的。要使用 Python 应用程序访问 DB2 数据库,只需要一个 Python DB API 即可,如图 6 所示:



DB2 的 Python DB API 2.0 接口

Python 还拥有称作 Jython 的百分之百纯 Java 实现,可用于连接到 Java 组件。





回页首


您肯定听说过可扩展标记语言,或 XML。XML 是一种非常灵活的自描述语言。可轻松地扩展或转换成其他格式。它独立于平台和供应商并且易于共享。XML 基于分层数据模型,后者是存储非结构化信息的理想模型。

现在,根据需要获取有价值的信息非常重要。随需应变的业务必须具备集成的、灵活的系统,以便更快地响应市场更改。但是,信息通常以不同格式存储在不同种类的应用程序中。首先必须通过将这些应用程序封装为服务,以便对信息进行整合。设计为使用 Service-Oriented Architecture (SOA) 方法的系统真正地简化了此整合过程。 SOA 基于 Web 服务技术,而 Web 服务的核心是 XML。XML 不仅是 Web 服务的实现技术,也是新的 Web 2.0 技术(如 Ajax、RSS、网络日志等)的实现技术。图 7 阐释了 XML 的重要性:



XML 技术

很多技术和编程语言都支持 XML。DB2 9 在支持 XML 方面取得了重大进步。DB2 9 是混合或多结构的数据服务器,既可使用关系数据,又可使用 XML 数据。它是当前惟一的提供 XML 文档的本地 XML 存储的数据服务器。要进一步了解 DB2 XML 支持,请查看 DB2 Information Center 和 IBM developerWorks(参见 参考资料 中的链接)。

阅读(128136) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~