日期:2013-04-18  浏览次数:20542 次


 一、前言
  很多人认为,数据库编程是一个颇具诱惑力的任务,这诱惑力来自于数据库使用的巨大市场需求。计算机使用有科学计算、数据处理与过程控制三大次要领域,而数据处理是其中所占比重最大的一个领域,包括如今最流行的客户机/服务器模式(C/S)、Internet模式(B/S)使用从广义上讲都可以归入此使用领域。正是由于市场需求巨大,数据库编程前景被人看好,有意步入编程殿堂的你,对此能否有些心动呢?

  二、数据库使用及编程原理
  1.数据库使用的发展
  数据库系统是在文件系统的基础之上发展而来的,经历了层次数据库——网状数据库——关系数据库三个阶段。由于关系型数据库采用人们比较容易理解和接受的二维表格来组织数据,发展迅速,已成为数据库产品的主流。我们这里引见的数据库知识都是指的关系数据库。
  2.基本概念
  数据库(DataBase,简称DB) 是按一定组织方式存储在计算机存储器中、互相关联的数据集合,数据库的建立独立于程序。所谓关系数据库 就是将数据表示为表的集合,通过建立简单表之间的关系来定义结构的一种数据库。
  数据库管理系统(DBMS)是一个管理数据库的软件系统,为用户提供了描述数据库、操纵数据库和维护数据库的方法和命令,并且能自动控制数据库的安全以及数据完整。如今的Oracle、Sybase、Microsoft SQL Server等数据库都是数据库管理系统。
  数据库系统(DBS)是一个具有管理数据库功用的计算机系统,它包括使用软件、数据库(DB)、数据库管理系统(DBMS)和数据库管理人员(DBA)几部分。我们今天讲的数据库编程普通就是指开发数据库系统,即通过编制数据库使用程序来操纵数据库,实现数据无效的管理。
  我们以一幅结构图来直观地了解数据库编程的架构如下:



  当然,数据库管理人员普通是针对大型的数据库使用而言的,小型数据库使用没有专门的数据库管理人员。可能有些读者会误以为数据库编程就是编写数据库使用程序,其实还应包括数据库的设计,如编制一个工资管理系统,如何将人员信息、工资信息合理组织,设计数据结构,也是数据库编程应该考虑的任务。而DBMS是数据库本人的功用,不用我们考虑,我们只需与其接口打交道就行了(如当代开发工具普通都提供ODBC用于连接数据库)。不管表在数据库文件中的物理存储方式如何,它都可以看作一组行和列,与电子表格Excel的行和列类似。在关系数据库中,行被称为记录,而列则被称为字段。下面是一个员工工资表的例子。

员工号    姓名    年龄    职称     任务时间    基本工资
1    乔锋    32    高级工程师     1990/07/01    1000.00
7    张无忌    25    工程师     1997/08/01    800.00

  我们可以看到,此表中每一行描述了公司一个特定员工的信息,称为一个记录;而每个记录则包含了相反类型和数量的字段。由此表我们引出如下定义:
  表 是一种按行与列陈列的相关信息的逻辑组,如上面的公司员工表。
  字段 数据库表中的每一列称作一个字段。表结构是由其包含的各种字段定义的,每个字段描述了它的一个属性值。字段可包含各种字符、数字甚至图形(如保存员工的照片)。
  记录 存放在表的行,被称为记录。同一个数据表中任意两个记录都不能完全相反。
  键 键就是表中的某个(或多个)字段,键可以是独一的,也可以是非独一的。独一键可以指定为主键,用来独一标识表的每行。例如,在员工表中,员工号是表的主键,由于它独一地标识了一个员工(这里我们不能用姓名做主键,由于姓名不能独一标识一个员工,可能会有重名的情况)。
  关系 关系就是表与有之间的联系。数据库可以由多个表组成,表与表之间可以以不同的方式互相关联。例如,员工数据库还可以有一个包含某个员工其他信息的表,这些表通过员工号与员工表相关连。

  三、SQL言语
  说到数据库编程,就不能不提SQL言语。SQL言语的英文全称是Structured Query Language,意为结构化查询言语。SQL言语的次要功用就是同各种数据库建立联系,进行沟通,用来执行各种各样的操作,例如更新数据库中的数据、从数据库中提取数据等。SQL已被ANSI(美国国家标准协会)和国际标准化组织(ISO)定为关系型数据库管理系统的标准言语。目前,绝大多数流行的关系型数据库管理系统,如Oracle、Sybase、Microsoft SQL Server、DB2等都遵照SQL言语标准。
  工欲善其事,必先利其器,接下来的任务就是选择一个比较好的数据库开发工具了。

  四、几种数据库开发工具的比较
  目前包括一些专无数据库厂商都提供了数据库编程工具,如Oracle的Developer 2000、Sybase的Power++等,但比较流行的还是Delphi、VB、PowerBuilder等言语,这几个开发工具各有所长、各具优势。如VB采用的是BASIC言语,简单易学,与微软产品有很强的结合力;Delphi有出色的组件技术、编译速度快,采用面向对象的Pascal言语有极高的编译效率与直观易读的语法;PowerBuilder拥有作为SYBASE公司专利的强大的数据窗口技术、提供与大型数据库的公用接口。VFP在中国也有大量的用户基础,但微软宣布从VFP6后不再推出新的版本,不少以前的FOX程序员已转向其他开发工具。对于初学者,可以依据本人的需求加以选择。我这里向大家引见数据库开发利器PowerBuilder,它是数据库编程“短平快”的好手。

  五、PowerBuilder数据库编程简介
  PowerBuilder(以下简称PB)是Sybase公司的独资子公司PowerSoft推出的使用于客户机/服务器体系结构下使用程序开发的一种面向对象的图形化交互式开发工具。PB以其简约高效的集成开发环境、 强大的数据窗口技术、几乎无所不能的数据库访问能力和敌对的用户界面,越来越遭到编程人员的青睐。PB6.5是目前使用最多的版本,PB7推出了很久,但好像不断不够稳定,PB8也在开发之中,是一款值得我们期待的产品,我们这里以PB6.5为例作简介。
  PB数据库使用程序普通包括用户程序、数据库引擎和数据库三个部分。数据库引擎是PB提供的与各类数据库的接口,有了数据库引擎,我们可以不去了解访问数据库的技术细节,而把精力放在数据库的设计和用户程序的编写上。
  PB开发环境由一系列集成的画笔(Painter)组成。所谓画笔实际上就是完成一定功用的工具,比如窗口画笔用于定义窗口对象、数据窗口画笔定义数据窗口对象、库画笔完成使用库的增删改等,使用开发人员通过简单的鼠标操作就能设计、建立、测试客户/服务器使用程序。
  PB把一个处理实际问题的使用程序叫做Application,即使用对象。使用对象是进入到使用库中其它对象的入口点,通过在Application级编写代码,可以展开一个程序框架。PB使用对象保存在PBL文件中。
  如果我们要开发一个管理系统,除了编写代码外,还需求选好数据库。PB自带的Sybase SQL Anywhere 5.0是一个小型关系数据库,体积虽小但功用强大,支持多平台,几乎拥有其它大型关系型数据库的所有功用,建议初学时就只使用它。
  如在一个窗体中放入了一个数据窗口控件并让它关联上一个数据窗口对象,如果我们想在窗口打开时让数据窗口控件显示数据,可以在该数据窗口控件的constructor(结构)事件中加入如下代码:
  this.SetTransObject(sqlca)
  this.Retrieve()
  用PB编写一个简单的数据库使用程序实现输入、修正、删除纪录非常简单,甚至可以不用一条SQL命令。这要归功于数据窗口的强大功用,但SQL言语对于PB数据库编程还是必需的,很多情况下我们仍要借助它。所以要想作为专业的数据库开发人员,仍然需求掌握SQL。
  六、资源放送
  1.好书推荐:
  (1)书名:《PowerBuilder7编程基础》
  出版:清华大学出版社
  作者:李国民 张磊
  简介:一本入门的好书,PB数据库编程基本概念、SQL、PowerScript、窗口、数据窗口等引见很详细。
  (2)书名:《PowerBuilder6.0使用与开发》
  出版:清华大学出版社
  作者:吴洁明
  简介:一本相当不错的PB工具书(可惜我没找到PB7版的,5、6版都有),系统地引见