第五章 工程数据库开发及其工具
◇ 课前索引
内容简介:
数据库应用程序开发环境与工具的发展已经经历了从专用的开发工具到通用的开发平台与工具的发展,支持的工程应用也从集中式(Centralized)数据库到分布式数据库(Distributed)、多数据库(Multiple)应用的过程。本章讲解的主要内容是围绕微软开放式数据库接口(ODBC)技术的数据库开发环境及其工具:在介绍了微软的ODBC技术的原理和实现方法后,着重讲解基于ODBC
API的面向对象的数据库构件原理和方法,包括MFC对象、DAO和RDO对象、ADO对象等,最后讲解目前流行的另外两个数据库开发工具。
学习目标:
本章主要介绍数据库应用系统的开发方法及其工具,通过本章的学习和各种实例使学生掌握基于ODBC API接口技术及相应数据对象接口技术的数据库应用开发环境和方法、开发步骤及开发过程中应注意的问题。
学生要求:
1、 学生必须学完数据模型、SQL语言和数据库管理系统
2、 学生必须懂得Windows编程的基本知识,会一种编程语言如VC、VB、Delphi、Java或ASP
3、 对面向对象的技术有所了解。
学习要求:
在第二章的SQL语言章节中我们讲解了两种使用SQL语言进行数据库应用系统开发的方法:嵌入式 SQL语言和编程式应用程序接口。当然我们也可使用数据库管理系统提供的编程工具如SQL
Server的TransactSQL,Oraclede的PLSQL编写存储过程完成应用系统的功能。本章我们主要讲解数据库系统客户端基于应用程序接口(API)的方法及其工具。目前流行的各种商品化的DBMS都提供专用的API函数接口,这属于数据库管理系统学习的范畴,本章不做介绍,我们主要介绍基于微软ODBC
API技术的数据库开发环境及其支持工具(OLE DB/ADO)。在介绍数据库开发方法及其工具之前,首先讨论数据库系统结构的发展,然后按照ODBC
API、基本ODBC API 的数据库编程对象以及相应的数据库开发工具。
学习本章之前学生必须掌握SQL语言,特别是对事务、数据完整性等概念有清醒的认识。对数据库开发方法和设计过程也要有所了解。学习的顺序:先学习ODBC
API, 后学习基于ODBC API开发的各种数据库对象(控件)的基本原理和方法,最后希望学生结合具体的实例和相应的数据库开发工具(如Borland公司的Delphi或Sybase公司的PowerBuilder)的开发掌握数据库应用开发的基本技术及其过程。
所以通过本章的学习,学生必须掌握ODBC API的技术与原理,会ODBC API程序设计,理解MFC、DAO/RDO、ADO或其它基于ODBC
API对象的数据库开发工具的数据库应用开发结构,通过一个工具完成一个数据库应用系统的设计与开发。
本章导航(知识树)
学习安排
1、 ODBC API:两个学时
2、 MFC、DAO/RDO:一个学时
3、 ADO:一个学时
4、 开发工具及其应用:两个学时
总共六个学时。
参考书目:
1、《ODBC编程指南》,学宛出版社
2、《SQL Server 7.0编程指南》,机械工业出版社
◇ 第一节 引言
通过数据库系统体系结构与系统组成的讲解,使学生回顾以前学过的数据库管理系统概念,尤其是要学生了解数据库开发工具在数据库应用系统开发中的作用。在讲数据库开发方法之前先对数据库体系结构作简单回顾。
- 专用数据库开发工具
- 通用数据库开发工具
20世纪60年代刚出现数据库时,数据库系统的应用范围主要局限于为同一地点的不同应用程序提供永久、共享的数据存储和数据管理。因此只需集中式的数据库体系结构。
70年代数据库的应用进入更广泛的范围,如民航订票、企业信息管理等。因此,数据库系统需要在异地有数据处理的功能,而对数据是否集中存放则不太关心。而且随作计算机网络技术的发展,满足这种应用需求的客户/服务器结构的数据库管理系统出现了。
80年代,数据库应用领域需要处理的数据量越来越大,数据集中存放至少在效率上无法满足要求,另外随作数据库应用的增多,企业出现了各种类型的数据库系统。如何的集成这些孤立的数据库系统也成为我们研究的重点。因此出现数据分布存放的分布式数据库。
进入90年代,数据库的自治性越来越被强调,因为应用领域向复杂、多元化方向发展。异构的数据库体系成为满足应用领域要求的结果。这就是多数据库系统和联邦式数据库系统。
90年代后期,随作对象技术的成熟,人们试图将对象技术嵌入到传统的关系数据库管理系统中,出现了对象-关系数据库系统
目前流行的三大数据库Oracle公司的Oracle 9i、IBM公司的DB2 8.0和Microsoft公司的SQL Server2000都支持分布、并行数据库系统的应用开发要求。
在讲解数据库开发工具发展之前,先简要的回顾一下数据库体系结构的发展,以及与之配套的工具也跟随数据库技术和应用的需求也发生变化。
与数据库系统体系结构发展相配套的数据库应用系统的开发工具发展也分为两个主要阶段:
- 专用数据库开发工具:90年代以前,数据库应用系统的开发主要是使用数据库管理系统所提供的专用开发工具(如嵌入式SQL语言或基于API编程接口)进行开发。这样的应用程序只能运行在特定的数据库系统环境下,其适应性和可移植性较差,在用户硬件平台或操作系统发生变化时,这些应用程序需要重新编写或重新编译。所以在九十年代以前数据库应用系统的开发结构主要有以下两种形式(如图5.1):
图5.1 传统的数据库应用系统开发方法
1)基于文件的数据库应用系统开发结构:数据库开发人员通过某种编程语言使用操作系统提供的文件服务程序(如NFS)来直接读写数据库中的数据;
2)基于DBMS的数据库应用系统开发结构:数据库开发人员通过数据库管理系统提供的专用开发工具(如Oracle公司的Proc
C++、微软的DB API)开发满足某种应用需求的数据库系统。
上述两种开发的数据库系统的可移植性都不是很好,特别是对异构数据库的支持方面不能满足应用系统的需求。
- 通用数据库开发工具:90年代以后,数据库的应用向多元化方向发展,大型的应用往往涉及不同的应用领域,需要不同模型的数据库,因此产生了异构数据库组成的系统,传统的数据库管理系统提供的开发工具已经不能满足多数据库系统和联邦式数据库系统的需求。微软公司在1992年推出的开放式互连接口技术(ODBC)正好解决了上述问题:微软公司提供了一套数据库访问接口标准,各数据库管理系统供应厂商和数据库工具开发厂商根据这个标准建立相应的数据库驱动程序和数据库访问接口工具,以便不同的应用能访问各种各样的数据库。因此数据库应用系统的开发环境与结构向分布式、多层结构发展(如图5.2)。
图5.2 异构的数据库应用系统开发环境与结构
通用数据库开发工具起始于1990年出现的PowerBuider数据库开发工具。后来随作ODBC技术的出现,数据库厂家、编程语言供应商和独立软件开发商都开始提供这些通用的数据库开发工具。
◇ 第五节 异构数据库系统的开发
异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。
对于异构数据库系统,实现数据共享应当达到两点:
● 实现数据库转换
● 实现数据的透明访问
1、实现数据库转换
在转换的过程中,有时要想实现严格的等价转换是比较困难的。首先要确定两种模型中所存在的各种语法和语义上的冲突,这些冲突可能包括:
● 命名冲突:即源模型中的标识符可能是目的模型中的保留字,这时就需要重新命名。
● 格式冲突:同一种数据类型可能有不同的表示方法和语义差异,这时需要定义两种模型之间的变换函数。
● 结构冲突:如果两种数据库系统之间的数据定义模型不同,如分别为关系模型和层次模型,那么需要重新定义实体属性和联系,以防止属性或联系信息的丢失。
总之,在进行数据转换后,一方面源数据库模式中所有需要共享的信息都转换到目的数据库中,另一方面这种转换又不能包含冗余的关联信息。
2、实现数据的透明访问
在异构数据系统中实现了数据的透明访问,用户就可以将异构分布式数据库系统看成普通的分布式数据库系统,用自己熟悉的数据处理语言去访问数据库,如同访问一个数据库系统一样。但目前还没有一种广泛使用的数据定义模型和数据查询语言,实现数据的透明访问可以采用多对一转换、双向的中间件等技术。目前,有两种对数据的透明访问:
● 开放式数据库互连(Open DataBase Connectivity,简称ODBC)是一种用来在相关或不相关的数据库管理系统中存取数据的标准应用程序接口(API)。ODBC为应用程序提供了一套高层调用接口规范和基于动态链接库的运行支持环境。
● 目前,常用的数据库应用开发的前端工具如Power Builder、 Delphi等都通过开放数据库互联(ODBC)接口来连接各种数据库系统。而多数数据库管理系统(如:Oracle、Sybase、SQL
Server等)都提供了相应的ODBC驱动程序,使数据库系统具有很好的开放性。
随着Internet应用的不断普及,Internet的异构分布式信息系统正在迅速发展,Java以其平台无关性、移植性强,安全性高、稳定性好、分布式、面向对象等优点而成为Internet应用开发的首选语言。在Internet环境下,实现基于异种系统平台的数据库应用,必须提供一个独立于特定数据库管理系统的统一编程界面和一个基于
SQL的通用的数据库访问方法。Java与数据库接口规范JDBC(Java Database Connectivity)是支持基本SQL功能的一个通用的应用程序编程接口,它在不同的数据库功能模块的层次上提供了一个统一的用户界面,为对异构数据库进行直接的Web访问提供了新的解决方案。JDBC已被越来越多的数据库厂商、连接厂商、Internet服务厂商及应用程序编制者所支持。
◇ 本章小结
本章主要讲解了数据库应用的开发环境、开发接口及其开发工具。在回顾了数据库应用体系结构发展和相应的支持工具开发结构后,我们着重讲解了开放式数据库接口ODBC技术。它是现代数据库开发工具的基础。ODBC技术的出现,统一了数据库开发的平台,满足了异构数据库应用和多数据库应用系统的要求,所以一经推出,就受到数据库厂商、程序设计语言(或开发工具厂商)和用户的欢迎。所以我们在本章的第二部分介绍了一些数据库对象控件,最后介绍了两个典型的C/S模式的数据库开发工具。
异构数据库访问和ODBC技术,对开发人员和用户的好处是十分明显的。但是,用ODBC技术进行异构数据库访问还有一些不足:
● 每个DBMS都提供自己的ODBC接口,自己的数据类型、单独的SQL版本和功能。许多接口不符合标准,使得相同的代码访问不同的数据库时,结果会出现不一致;
● 使用ODBC接口机的效率会降低。
所以,从1997年开始,微软开发推广基于OLE DB的数据对象接口技术。OLE DB和ADO是MicroSoft公司为了适应网络迅速发展的趋势而开发的最新的数据访问编程接口。OLE
DB和ADO都作为SQL Server数据库管理系统的一部分提供。微软公司已经把OLE DB定位为ODBC的继承者。因为OLE
DB是在OLE技术基础上创建的,ODBC提供了一种DLL调用层接口,而ADO(Active Database Object)为OLE
DB提供了COM接口,允许从其它与OLE兼容的应用程序中调用,OLE是Microsoft的数据访问策略,是万能数据访问的基础。万能数据访问是一组通用接口,它可以用来表示任何数据源中的数据。正是OLE
DB技术使万能数据访问成为现实。
基于ODBC或OLE DB的编程对开发人员来讲都是比较繁杂的一件事。由于对象技术的特点和优势,各软件厂商纷纷推出基于ODBC或OLE
DB技术的数据库程序设计对象。微软在1993年推出ODBC API 1.5版本时,就已经在Visual C++中用Microsoft
Foundation Classes类结构对ODBC API进行了封装。在面向对象抽象的单元里,MFC 只做了些普通工作使用户从ODBC
的复杂性中解脱出来,但所做的这点已有巨大的影响。所以在重点讲解了ODBC技术后,我们重点讲解了几种面向数据库编程的数据库对象:DAO、RDO、ADO:
● DAO 接口开发用于通过MS Visual Basic 或MS Access
附带的Jet 数据库引擎来访问本地数据库。DAO 为Jet 数据库作了优化,因此,如果应用程序必须只访问SQL Server 的话它也许不是好的选择。但是,DAO能够将来自多个数据源的数据作连接,这可认为是该接口的极大优点。
● RDO 与ODBC 紧密相连,当访问SQL Server 数据库时明显比DAO
快。它开发以访问服务器而不是本地数据库。RDO 功能与DAO 相似,因此在SQL Server 应用程序中优先考虑DAO 。但是,RDO
不允许数据源连接或访问Jet 数据库。RDO 的一个重要特性是向Visual Basic 程序返回一个ODBC 句柄,于是用户有能力使用RDO
不支持的O D B C 特性。
● OLE DB 可以认为是ODBC API 的继承者或对象版本,ADO 被看作DAO
和RDO的继承者。OLE DB 和ADO 都比DAO 和RDO 要快。ADO还可被脚本语言如VBScript 所访问,这使得其成为新的工业标准。
最后简单介绍了与微软开发工具相抗衡的另外两个数据库开发工具:Borland公司的Delphi和Sybase公司的Powerbuilder。这些RAD工具允许开发者迅速设计、开发、调试和配置各种各样的数据库应用程序,并且能在性能、可扩展性和可维护性这些不断增长的需求上有所收获。当然,我们不能很透彻地掌握这两种开发工具的数据库处理能力,我们的目的是简单介绍一下他们的能力,使数据库应用编程人员能够解决问题。
注:最新的数据库开发工具象Borland公司的JBuider 7.0,IBM公司的Web Studio 5.0 等基于J2EE框架的资料请参照相关的网站
◇ 课后习题
问答题
5.1
- 数据库系统的组成与结构是什么?
- 数据库系统体系结构的发展经历了哪几个阶段,各有什么特点?
- 数据库应用系统的开发方法有几种?
- 采用数据库开发工具开发数据库应用系统有什么优点?
5.2
- 基于API数据库应用程序的运行原理是什么?
- 请比较嵌入式SQL编程和基于API的编程有什么不同?
- 什么是ODBC?使用ODBC编程有什么优点?
- 开发一个基于ODBC API应用程序包括那些步骤,用到那些句柄,各句柄有什么不同?
- 什么是数据源?如何配置数据源?数据源的主要用途是什么?
- 数据源和数据库驱动程序有什么不同?
- ODBC API是如何处理SQL语句的。
- 什么是游标?有什么用途?
- 有几种数据库驱动程序,它们之间有什么不同?
- 为什么要开发面向对象的数据库控件
5.3
- MFC对象框架中有几个数据库接口对象,其主要对象和用途是什么?
- OLE DB与ODBC相比,有什么有缺点?
- 什么是DAO、RDO?他们之间什么联系和区别?
- 什么是ADO?ADO有哪些对象,其主要用途是什么?
- 简述ADO对象之间的关系
- 在ADO中有几种数据库连接方式?各有什么特点?
- 在ADO如何控制事务?
- ADO中的记录集与传统的客户/服务器模型开发工具中记录集的方法有什么不同?
- 如何控制ADO记录集的排序和索引?
- ADO中记录集的批更新是如何管理的。
5.4
- Delphi有什么特点?支持数据库开发的工具有哪些?
- Delphi中的主要数据库访问控件有哪些?它们的功能是什么?
- Delphi中的主要数据库显示控件有哪些?它们的功能是什么?
- Powerbuilder工具有什么特点,主要的数据库构件特点是什么?
综合训练题
- 用你熟悉的数据库开发设计开发采购合同的管理的程序
- 简述你对数据库开发工具的理解及开发工具在数据库开发中的地位
◆第六章 工程数据库应用
◇ 课前索引
内容简介
本章主要介绍数据库技术在企业信息化中的典型应用。企业的信息化包括技术管理的信息化、生产经营管理的信息化和决策支持的信息化。根据数据库技术在企业的应用范围和性质,本章我们介绍数据库在企业设计部门应用的工程图档管理、用于设计/工艺/文档等技术部门的产品数据管理和企业生产经营管理中的企业资源计划管理这三种典型应用。
学习目的
本章的目的是通过对几个典型数据库工程应用的介绍,使学生了解在数据库技术应用中不但要具备计算机技术方面的知识和系统分析/设计的技术,还应该具备领域方面的知识。通过三个典型工程应用的介绍使学生今后从事企业信息化的工作打下良好的知识基础。
学生要求
学习本章需要学生有工程背景方面的知识,特别是计算机辅助设计、辅助制造和辅助管理方面的知识。所以缺少这方面知识的同学需要参看相关的参考书,也可查看有关这方面网站的科普文章
学习要求
通过本章的学习,学生要掌握数据库在企业信息化中的作用,特别是要理解人们研究满足工程需要的数据模型的重要性。另外,通过工程应用的学习,初步掌握企业信息化的内容、难点,从而进一步认识数据库系统在工程中的重要性。
难重点
本章的难点是理解工程应用。设计一个好的工程应用需要学生深入的了解用户的需求。而在与用户沟通以前,分析设计人员必须既具备计算机方面的基本知识,也必须了解领域知识。本章主要讲解领域方面的知识,需要学生理解工程图档管理、产品数据管理、资源计划管理的基本原理、功能模块和系统集成等。
另外,有关这些系统的设计和应用开发本章没有涉及,同学们可根据自己的掌握的情况,选择某个模块运用第四章和第五章所学的知识进行详细的分析、设计和实现,以加深对数据流图、实体关系图、数据库逻辑和应用开发的理解。
学习指南
在本章的开始先讨论一下数据库应用的类型:面向事务的工程应用和面向工程的应用。接着我们重点介绍数据库技术在工程领域的应用,根据从设计到制造和管理的流程分别介绍工程图档管理、产品数据管理和企业资源计划管理。
当然,学生不可能掌握所有这些知识,除了第一节学生和本章阅读的重点产品数据库管理需要阅读外,其它数据库应用可根据自己的需要选择性阅读。
知识结构图
◇ 第一节 数据库应用
随着数据库技术的发展,数据库应用已经渗透到人们生产活动的各个领域。数据库应用最成熟的领域是一般的信息管理,如民航订票系统、企业信息管理、人事档案、学校管理、银行财务等。我们称谓面向事务管理的数据库系统。现有的商品化DBMS是为事务管理方面的应用而设计的,它们主要解决数据的完整性和一致性,保证数据的共享等,而没有考虑如何的将工程应用程序数据与数据库数据有效的集成管理起来,通过数据库技术支持工程的设计与开发过程的管理、工程过程中各种应用集成的管理等特殊需求。我们称后一种数据库应用为工程数据库应用。
本章我们从企业设计、制造管理的角度讨论目前数据库技术在企业信息化中的几个典型应用:
- 工程图档管理(Engineering Data Management System,简称EDMS):主要解决企业技术部门(工程设计、产品工艺部门等)的技术文档的电子化管理。
- 产品数据管理(Product Data Management,简称PDM):以产品结构为核心,以电子仓库为支持,将企业技术部门的技术文档、工程过程和其他各种应用通过产品结构这条主线,在工作流技术的支持下集成的管理起来,并通过PDM提供的各种接口支持企业的其他应用集成。
- 企业资源计划管理(Enteprise Resource Planning,简称ERP):在技术数据电子化管理的基础上,通过物料需求计划(Material
Resource Planning,简称MRP)的原理,将企业的计划、生产、销售、采购、仓库、财务等与企业生产经营有关的物流、资金流、信息流集成的管理起来。
◇ 本章小结
本章主要介绍了数据库技术在工程中的几个典型应用。数据库技术起初用于面向事务型的信息管理,其中工程图档管理和产品数据管理是典型的工程数据库在现代企业应用的例子。企业资源计划管理的基本数据来源于这些技术数据的管理。
通过本章的学习,我们应该体会到,工程数据库除了涉及数据库技术外,还跟企业的管理思想、管理理念、企业的计算机硬件和软件环境等等有密切的管理。另外,从上面的讨论也可看出工程数据库应用还涉及到其他最新的计算机技术如网络技术、Corba技术、Web技术、J2EE技术、分布式技术等。
|