MFC 数据库编程 odbc.docx

上传人:b****1 文档编号:2403491 上传时间:2022-10-29 格式:DOCX 页数:102 大小:1.38MB
下载 相关 举报
MFC 数据库编程 odbc.docx_第1页
第1页 / 共102页
MFC 数据库编程 odbc.docx_第2页
第2页 / 共102页
MFC 数据库编程 odbc.docx_第3页
第3页 / 共102页
MFC 数据库编程 odbc.docx_第4页
第4页 / 共102页
MFC 数据库编程 odbc.docx_第5页
第5页 / 共102页
点击查看更多>>
下载资源
资源描述

MFC 数据库编程 odbc.docx

《MFC 数据库编程 odbc.docx》由会员分享,可在线阅读,更多相关《MFC 数据库编程 odbc.docx(102页珍藏版)》请在冰豆网上搜索。

MFC 数据库编程 odbc.docx

MFC数据库编程odbc

第12章数据库编程

数据库(database)是存储在计算机里的结构化数据的集合,可以分为关系、层次和网络三种类型,通常由数据库管理系统(DBMS=DataBaseManagementSystem)软件(如Oracle、DB2、SQLServer等)对数据库进行管理,应用程序通过(标准)编程接口(如ODBC/JDBC、DAO/ADO.NET、DOM/SAX等)来访问数据库,参见图12-1。

图12-1数据库应用系统结构

VisualStudio为程序员提供了多种数据库编程的接口和类库,传统上是采用VC的MFC进行ODBC、DAO和ADO编程,现在则一般采用C#和VB进行ADO.NET的Web应用编程。

12.1数据库与编程接口

关系型数据库可以视为结构变量的集合,有专用的系统RDBMS进行管理,通过标准的查询语言SQL进行操作。

微软平台中有多种数据库编程接口可供使用,早期常用ODBC和DAO,现在则多为ADO.NET。

12.1.1数据库与DBMS

数据库(DataBase,DB)是一种记录(record)或数据的集合。

数据库的结构按一定的数据模型来组织,最常用的是关系模型(relationalmodel),其它还有层次模型(hierarchicalmodel)和网络模型(networkmodel)。

DBMS(DataBaseManagementSystem,数据库管理系统)是用来维护数据库的软件。

数据库模型决定访问数据库的查询语言。

但是,DBMS的大量内部操作则是独立于数据模型的,它们取决于诸如性能(performance)、并发性(concurrency)、完整性(integrity)和从硬件故障中恢复等管理因素。

在这些方面,不同的产品之间存在很大差异。

早期的计算机数据存储在穿孔卡片和磁带上,后来有了磁盘的文件系统,然后才是数据库管理系统。

DBMS所用的各种数据库模型中,最初是网络和层次型数据库的强势,后来是关系数据库一统天下,然后又时兴面向对象的数据库,现在热门的则是XML这种层次型数据库。

最早的DBMS出现在1960年代,先驱者之一是(图灵奖获得者)CharlesBachman,他设计了首批DBMS之一IDS(IntegratedDataStore,集成数据存储,1960年通用电气GE公司)及其后续版本IDMS(IntegratedDatabaseManagementSystem,集成数据库管理系统,1971年推出,可在IBM大型机上运行),因其高性能,曾被业界广泛使用。

1.三种数据库模型

依据数据组织的方式,可以将数据库划分成如下三种模型:

●网络型——典型的网络数据库模型是(COBOL语言的开发者)CODASYL(ConferenceonDataSystemsLanguages,数据系统语言协会)下属的DBTG(DataBaseTaskGroup,数据库工作组),在CharlesBachman思想的基础上开发的,于1969年发布了网络数据库模型语言规范——通常称为Codasyl数据模型。

上面提到的IDS和IDMS就是网络型数据库管理系统。

●层次型——层次模型将数据组织成

(一)父(多)子关系的树状结构,IBM公司于1968年推出的IMS(InformationManagementSystem,信息管理系统,由VernWatts主持开发)就是一种层次型数据库管理系统,它在1970~1980年代占DBMS的统治地位。

现在十分热门的XML数据库也属于层次模型。

●关系型——关系数据库模型(relationaldatabasemodel)最早由IBM公司的EdgarF.Codd于1969年提出,但最初并没有受到足够的重视,例如IBM于1970年代开发的SystemR也只是一个研究原型。

只是到了1980年代后,关系数据库才异军突起,并迅速独霸天下。

主流的商用关系数据库管理系统(RDBMS=RelationalDBMS)有Oracle、DB2、SQLServer和MySQL等。

网络模型可真实反映现实世界中,事物之间所存在的错综复杂的网状相互关系(如人际关系)。

层次模型可以看成是网络模型的子集或特例(如家族谱系),多个层次模型可以组成一个网路模型。

关系模型反映的则是事物间的链接或二元关系(如父子关系、夫妻关系等),简单且高效。

层次和网络模型可以用多个二元关系来表示。

2.关系数据库模型

关系数据库由表示二元关系的实体——表(table)所组成,表中的列(column)称为字段(field)、行(row)称为记录(record)。

如:

表12-1学生信息表

元数据→

学号

姓名

性别

年龄

身高

电话

记录

001

张三

20

1.80

12345678

002

李四

18

1.61

23456789

003

王五

21

1.72

34567890

字段

以程序员的观点,可以将关系数据库看成是特定结构变量的数组,数据库中的字段或列对应于结构中的字段,而数据库中的记录或行则可以看成是结构变量的一个个具体取值。

如:

typedefstruct{

intnum;//?

wchar_tname[5];

wchar_tsex;

intage;

floatstature;

intphone;//?

}StInfo;

StInfost;

st.num=004;

st.name[0]=L'马';

st.name[1]=L'六';

st.name[2]=0;

st.sex=L'男';

st.age=19;

st.stature=1.68;

st.phone=45678901;

在编程中还用游标(cursor)来表示表中的当前记录、用事务(transaction)来表示封装在一起的一组表的变化(可以解决数据库的完整性问题)。

虽然用户可以自己编写程序来控制数据库文件的访问,但RDBMS能给我们带来许多便利,如:

●使用标准的文件格式——如含单个表的dBASE/Xbase的DBF(DataBaseFile数据库文件)、单个文件可含数据库的所有表和索引的MicrosoftAccess的MDB(Microsoft[Access]DataBase微软[访问]数据库)文件

●索引文件访问——所有DBMS都包含非常高效的索引访问例程,避免(为了使用关键字来访问记录)用户自己编写二叉树等文件访问程序的麻烦

●数据完整性保护——专业DBMS大多含有对数据的保护例程,如在对含一系列变化的事务处理过程中,若不能处理整个事务,则会回滚以恢复事务处理前的原始状态

●多用户访问控制——大多数DBMS都提供记录加锁机制,以防止多个用户同时使用时的相互干扰。

一些多用户DBMS采用C/S模型,其他采用P2P模式,都可以控制对共享文件的访问

3.商用RDBMS

最早的商用关系型数据库管理系统是甲骨文(Oracle)公司于1979年推出的Oracle(神谕,预言)和IBM公司于1983年推出的DB2。

首个成功的微机(包括PC)上的RDBMS是C.WayneRatliff于1978年在(美国)国家航空和宇宙航行局NASA的喷气推进实验室JPL开发的dBase,它在DOS时代占统治地位。

它最初叫Vulcan,1980年代初被Ashton-Tate公司购买后,才改名为dBase。

1991年Ashton-Tate公司被Borland公司收购。

dBase有许多变种,如狐狸软件公司于1984年推出的FoxBASE,后来改名为FoxPro。

1992年被微软公司合并后,又改名为VisualFoxPro。

其它变种还有Arago、Force、dbFast、dbXL、Quicksilver、Clipper、Xbase++、FlagShip、Recital、CodeBase、MultiBase和Harbour/xHarbour等,它们一般被统称xBase。

PC上的另一个出名的RDBMS是AnsaSoftware公司的RichardSchwartz和RobertShostak于1985年开发的Paradox(悖论),1987年9月被Borland公司收购,1992年推出了其Windows版。

Corel公司于1990年代中从Borland公司获得了Paradox,并于1997年发布了CorelParadox8,它还将Paradox集成到其WordPerfectOffice专业版套件中。

曾经重要的大型关系数据库还有Informix软件公司于1985年推出的Informix(2001年4月被IBM收购)和Sybase公司于1987年开发的SQLServer(1988年它与微软合作为IBM开发SQLServerforOS/2,1993年在合作协议终止后,微软推出了自己的SQLServertoWindowsNT)。

现在非常热门的开源Web数据库MySQL也是一种RDBMS,它是由瑞典的MySQLAB公司于1995年5月23日开始推出的,2008年2月26日MySQLAB成为Sun的子公司。

目前绝大多数数据库都为关系型数据库,对应的管理软件为关系型数据库管理系统RDBMS。

目前主流的RDBMS有:

●甲骨文公司的Oracle

●IBM公司的DB2(和Informix)

●微软公司的SQLServer(和VisualFoxPro、Access、Excel)

●MySQLAB公司的MySQL

常用数据库文件的扩展名见表12-2:

表12-2数据库文件的扩展名

Access

dBase

Excel

FoxPro

Paradox

SQLServer

*.mdb

*.dbf

*.xls

*.dbf

*.db

*.mdf、*.sdf

4.SQL

SQL(StructuredQueryLanguage,结构化查询语言)(官方读作[ɛskju:

'ɛl],也读作['si:

kwəl])为关系数据库的通用查询语言,最初是由IBM公司SanJose实验室的DonaldD.Chamberlin和RaymondF.Boyce于1972年为SystemR关系数据库设计的。

1)标准

SQL于1986年和1987年分别成为美国国家标准学会ANSI和国际标准化组织ISO标准——SQL-86(SQL-87),在1989年、1992年、1999年、2003年和2006年又多次对其进行了修订——SQL-89、SQL-92(SQL2)、SQL:

1999(SQL3)、SQL:

2003和SQL:

2006(ISO/IEC9075)。

下面是当前最新的ISO/IEC9075标准系列:

●ISO/IEC9075-1:

2003(Ed.2)Informationtechnology--Databaselanguages--SQL--Part1:

Framework(SQL/Framework),信息科学——数据库语言——SQL——第1部分:

框架(SQL/框架)

●ISO/IEC9075-2:

2003(Ed.2)Informationtechnology--Databaselanguages--SQL--Part2:

Foundation(SQL/Foundation),信息科学——数据库语言——SQL——第2部分:

基础(SQL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1