按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
有了数据和数据库,还要进行数据库的管理,不仅可以科学地组织这些数据并将其存储
在数据库中,而且还能高效地处理这些数据 。数据库管理系统(Database Management System ,
简称 DBMS )是位于用户和操作系统之间的一层数据管理软件。数据库在建立、运用和维护
时由数据库管理系统统一管理、统一控制。数据库管理系统使用户能方便的定义数据和操纵
数据,并能够保证数据的安全性、完整性、多用户对数据并发使用以及发生故障后的系统恢
复。
在很多情况下,人们所说的数据库实际上指的是数据库系统。数据库系统(Database
System,简称 DBS )是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库
管理系统(及其开发工具 )、应用系统、数据库管理员和用户构成。
设计数据库的核心问题就是数据模型的选择,常用的数据模型有层次数据模型、网状数
据模型、关系数据模型、实体联系数据模型和面向对象数据模型。现在常用的数据库有 SQL
Server、Oracle、DB2 、Sybase、MySQL 、Access 、FoxPro 等。
…………………………………………………………Page 341……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
12。1。2 数据库相关技术介绍
不管是功能简单的数据库,还是复杂的大型数据库系统,Visual C++都提供了一些编程
接口。一般来说,编程接口主要有以下 5 种:
1.ODBC API
ODBC 的全称是 Open DataBase Connectivity,即开放数据库互连。ODBC 是为了能让同
一应用程序访问不同的数据库管理系统而设计的,它实际上是一个不同类型数据库的通用接
口,用这些 API 编写的应用程序独立于 DBMS ,实现同一应用程序对不同 DBMS 的共享。
应用程序对数据库的操作是通过和各种 DBMS 相对应的 ODBC 驱动程序(Drive )来进行的,
对于不同的 DBMS ,用户只需安装相应的驱动程序,而不必更改应用程序本身。ODBC 为
SQL Server、ACCESS 、FoxPro 等都提供了驱动程序,使得用户可以使用 SQL 语句对数据库
进行直接的底层功能操作 。在使用 ODBC API 时,用户需引入的头文件为“sql。h ”、“sqlext。h ”
和“sqltypes。h ”。
作为一种数据库连接的标准技术,ODBC 主要有以下几个特点。
o ODBC 是一种使用 SQL 的程序设计接口。
o ODBC 的设计是建立在客户机/服务器体系结构基础之上的。
o ODBC 使应用程序避免了与数据源连接的复杂性。
o ODBC 的结构允许多个应用程序访问多个数据源,即应用程序与数据源的关系是多对
多的。
2 .MFC 的 ODBC 类
直接用 ODBC API 进行数据库开发是一件很繁琐的事情,因此在 MFC 1。5 后的版本里引
入了封装 ODBC 功能的类。通过这些类提供的与 ODBC 的接口,程序员可以不必理会 ODBC
API 中的繁杂处理而进行数据库操作。主要的 MFC ODBC 类有如下 5 个。
o CDatabase 类:一个 CDatabase 对象表示到数据源的连接,通过它可以操作数据源。要
用 CDatabase 类,首先要建立一个 CDatabase 对象,然后调用它的 OpenEx()函数建立
和数据源的连接。当结束对数据库的操作时,调用 Close()函数关闭连接。
o CRecordSet 类:一个 CRecordSet 对象就是一个记录集,它表示一个从数据源选择的一
组纪录的集合。
o CrecordView 类:提供了一个表单视图与某个记录集直接相连,利用对话框数据交换
机制(DDX )在记录集与表单视图的控件之间传输数据。
o CFieldExchange 类:支持记录字段数据交换(DDX ),即记录集字段数据成员与相应
数据库的表的字段之间的数据交换。
o CDBException 类:当发生错误时,许多 MFC ODBC 调用并不返回错误码,而是返回
一个 CDBException 对象。
3 .MFC 的 DAO 类
DAO 是 Database Access Object (数据访问对象)的简称。与MFC ODBC 类很类似,DAO
中几个主要的类分别为 CDaoDatabase、CDaoRecordSet、CDaoRecordView、CDaoFieldExchange
·330 ·
…………………………………………………………Page 342……………………………………………………………
第 12 章 数据库开发
和 CDaoException 。除了上面 5 个类以外,DAO 类还包括下面 3 个比较重要的类。
o CDaoWorkSpace :管理一个用户和数据库的会话。
o CDaoQueryDef :代表一个查询定义。
o CDaoTableDef :代表一个基本表或附加表所储存的定义,负责管理数据库中表的结构。
可以看到,DAO 的类名和 ODBC 的很相似,只是多了 D 、a、o 这 3 个字母,并且所有
的 DAO 的类都有前缀 Dao 。
通过 DAO 访问数据库和通过 ODBC 访问数据库是不同的,利用 ODBC 访问数据库是通
过各种 DBMS 相对应的 ODBC 驱动程序来实现的,而利用 DAO 访问数据库是通过微软公司
的 Jet 数据库引擎来实现的。
DAO 支持以下 4 个数据库选项:打开一个 Access 数据库(mdb 文件),直接打开一个
ODBC 数据源,通过 Jet 引擎打开一个 ISAM 类型的数据源,把外部表附属到 Access 数据库。
4 .MFC 的 OLE/DB
OLE/DB 是系统级的编程接口,它定义了一组 接口。这组接口封装了各种数据系
统的访问操作,同时也为数据使用方和数据提供方建立了标准。OLE/DB 还提供了一组标准
的服务组件,用于提供查询、缓存、数据更新、事务处理等操作,因此,数据提供方只需实
现一些简单的数据操作,在使用方就可以获得全部的数据控制能力。
OLE/DB 框架定义了应用的 3 个基本类:
o 数据提供程序 Data Provider :拥有自己的数据并以表格形式显示数据的应用程序。
o 使用者 Consumers :使用 OLE/DB 接口对存储在数据提供程序中的数据进行控制的应
用程序。
o 服务提供程序 Service Provider:数据提供程序和使用者的结合。
OLE/DB 虽然增加了操作的灵活性,但是有的时候这种灵活会使操作变得复杂。并且对
于初学者来说,OLE/DB 里面数十个密密麻麻的接口还是有些恐怖的。
5 .ADO 技术
相比前面 4 种技术,ADO 技术显得方便易学,这也是本章的重点,将在本章 12。4~12。6
节详细介绍。
12。1。3 数据库应用程序的开发步骤
数据库应用程序就是为用户提供一个可以满足其长期需求的软件产品 。成功地开发一个
数据库应用程序的关键之一就是要详细地定义用户的需求,然后再围绕用户的需求进行开发。
数据库应用程序的开发一般分如下 3 个步骤。
1.系统设计
系统设计阶段应当根据用户的需求,明确地描述数据库(数据库服务器端 )和应用界面
(客户机端)实现的功能,即决定哪些功能由服务器端实现,哪些功能由客户端实现。然后选
择合适的开发工具,比如 Visual C++ 、Delphi 、Power Builder 等。
·331 ·
…………………………………………………………Page 343……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
2 .系统实现
系统实现阶段的主要任务是使用某种开发工具(本书用 Visual C++ 6。0 )实现系统设计阶
段的思想,并进行调试。在系统设计阶段,通常要对数据库进行备份,以免破坏原来的数据
库。
3 .系统运行和维护
一个应用系统性能的优劣和效率的高低应当由用户来作出判断。应用程序在运行过程
中,用户会提出一些新的要求和建议,根据用户需求的变化,对原来程序进行一定的修改,
使其进一步得到完善和提高。
12。1。4 选择数据库管理系统的原则
当今数据库管理系统多种多样,可遵循一定的原则进行选择。
1.构造数据库的难易程度
需要分析数据库管理系统有没有范式要求,即是否必须按照系统所规定的数据模型分析
现实世界,建立相应的模型;数据库管理语句是否符合国际标准;有没有面向用户的易用的
开发工具;所支持的数据库容量,数据库的容量特性决定了数据库管理系统的使用范围。
2 .程序开发的难易程度
有无计算机辅助软件工程工具 CASE—计算机辅助软件工程工具可以帮助程序员根据
软件工程的方法提供各开发阶段的维护、编码环境,便于复杂软件的开发、维护。有无第 4
代语言的开发平台—第 4 代语言具有非过程语言的设计方法,不需要编写复杂的过程性代
码,易学、易懂、易维护。有无面向对象的设计平台—面向对象的设计思想与人类的逻辑
思维方式十分接近,便于开发和维护。对多媒体数据类型的支持—多媒体数据需求是今后
发展的趋势,支持多媒体数据类型的数据库管理系统必将减少应用程序的开发和维护工作。
3 .数据库管理系统的性能分析
包括对性能评估(响应时间、数据单位时间吞吐量)、性能监控(内外存使用情况、系
统输入/输出速率、SQL 语句的执行、数据库元组控制 )和性能管理(参数设定与调整)的分
析。
4 .对分布式应用的支持
包括数据透明与网络透明程度 。数据透明是指用户在应用程序中不需要指出数据在网络
中节点上的位置,数据库管理系统可以自动搜索网络,提取所需数据。网络透明是指用户在
应用中无需指出网络所采用的协议,数据库管理系统自动将数据包转换成相应的协议数据。
5 .并行处理能力
支持多 CPU 模式的系统(SMP、CLUSTER、MPP )、负载的分配形式、并行处理的颗粒
·332 ·
…………………………………………………………Page 344……………………………………………………………
第 12 章 数据库开发
度和范围。
6 .可移植性和可扩展性