日期:2013-10-15  浏览次数:20622 次


数据访问接口体系及数据对 

 

数据访问接口体系及数据对象模型探讨(Beat 1.0)

                         81_RedStar81@163.com

 TomHornson.student@www.sina.com.cn

团体文集:

http://www.csdn.net/develop/author/netauthor/RedStar81/

 

 

 

文章索引:

预:概念

序文:回首历史

一、 数据访问接口体系探讨

1.       Open Client/Open Server

2.       ODBC(Open DataBase Connectivity : 开放数据库连接)

3.       OLE DB(Object Link and Embedding DataBase)

4.  JDBC(Java DataBase Connectivity : Java数据库连接)

二、数据对象模型探讨(待续)
附录:美国著名数据库产品记事(参考)

           

 

研讨数据库理论是为了设计更好的数据库系统。弄清数据访问接口体系及数据对象模型的发展、特征、互相之间的区别有助于开发更好的数据使用系统。

预:概念

 

数据库: 满足一个或多个组织、多个用户的信息要求的集成数据存储库.(定义了一组数据库要素:集成、共享、存储、信息)

数据库管理系统(DBMS): 目标为处理所有用户对数据库存取要求的软件系统(它有两个次要的部分:数据库控制子系统和数据库存储子系统)

数据库系统: 以数据库使用为基础的软硬件系统的总和.(次要包含数据库、DBMS、<非DBMS软件>::、<集成数据库管理软件>::)

<非DBMS软件>:: = 与DBMS协同任务但是不属于DBMS的功用部件.次要包含:操作系统、程序设计言语及相应的编译系统、数据通信系统、各种使用程序(与数据库管理系 统交互以服务于用户). 

   <集成数据管理软件>:: = 辅助和配合DBMS任务的功用部件,普通不独立使用,总是与DBMS集成, 在DBMS的基础上开发的.譬如自动报表生成程序、数据库使用开发 程序、 数据库测试程序、数据库辅助设 计程序、数据转换设备等等.

分布式数据库系统: 数据库被划分成逻辑关联而物理地分散于不同场地的数据子集,并提供了充分操作这些子集 的数据存取能力的数据库系统.

 

序文:回首历史

 

80年代初, Vulcan(dBaseII的前身)成为第一个在微机上实现的数据库系统而且广为流行.随后的著名的Xbase家族(dBase系列、FoxBase系列、低版本FoxPro等) 、Paradox、Clipper从某种意义上说属于低级的数据库系统(从语义上讲,此处用数据库系统来表达是合适的.然而从功用、系统的设计来讲用数据库管理系统来描述更合适.那时的数据库管理系统更像是为管理大量信息而研发的"使用级"程序).而Oracle、DB2等此时髦没有微机版本.这时的系统远不及现代数据库系统的复杂.当然这是由系统的目标或者说是用户需求决定的.用户对数据库的操作基于XBase及其它一些非标准的各数据库系统本人的数据操纵言语(最后虽然它们亦拥有函数库等程序设计言语的特征但它们更像操作命令.直到这些系统提供了编译或伪编译能力<注1::>才真正可看作一种言语).

      注1::= 从下面的记事表来看,关于编译的问题在各数据库系统中有不同的表现,关键在于它们基于的数据库交互言语:能否为SQL.另一方面在于数据库系统的定位.团体认为:XBase、Paradox、Clipper等系列产品一定程度上实现了分布式但不断都未实现C/S结构而更多的局限于本地数据库的使用与Oracle、Sybase SQL Server、Sybase System、DB2、Informix等数据库系统的定位是不同的.它们秉承了先前的设计理念,还有更重要的一点是:C/S结构的出现自然导致了较现代(当然目前的商业使用开发模式应说是多层分布式)的数据系统开发模式(以当时客户端开发工具PowerBuilder、Visual Basic、Dephil及辅助设计软件产品的出现为见证)同时DBMS的功用明细而以前的数据库系统的外围软件产品可以在客户端任务甚至集成于客户端开发工具之中.以前的终端-服务器(HOST系统)数据库系统结束.可以"篡夺"数据服务器系统诸多能力的客户端出现.这当中数据系统使用程序的出现应是关键,它使数据的使用、表现、甚至是数据库的管理等起了巨大的变化.而XBase、Paradox等系统自从实现不同程度的编译能力更看出它们集本地数据库管理、设计和数据系统使用程序开发等于一身,它们作为DBMS体现的功用并不同实现C/S体系结构的DBMS.还是那句话秉承了先前的设计理念.

 

   虽然我们探讨的数据访问接口体系应该是针对C/S结构和更先进的数据库系统体系结构,然而我先前曾经提到这篇文章的最终目标是协助程序设计者设计更好的数据使用系统.这样我们有必要关注一下早先的数据库管理系统与其它的言语(汇编,C,Cobol,Pascal,Fortran等)交互的情况.前前后后(92年以前,详见下面<<美国著名数据库产品记事>>),各著名数据库系统产品依据本人的结构体系和定位都实现了SQL(当中的实现情况自然各有不同.XBase家族、Parodox等添加了SQL交互界面且实现了XBase言语和SQL的混合使用.而Oracle、Sybase、Informix等系统把SQL依据各自系统的需求扩展构成了本人的数据操纵言语)和编译或伪编译或预编译能力或调用库.上面所述的两种能力的实现对数据库系统和使用程序的交互起了很大的影响.但那时的交互不同于如今程序设计者认识中使用程序与数据库系统的关系.总体来说那时数据库系统与使用程序交互可能有几种情况:一,数据库管理系统提供访问使用程序的途径以加强数据库管理系统的功用. 二,使用程序利用格式转化后的数据库文件.当然也可以通过其它的方法访问未经转化的数据库文件. 三,数据操纵言语嵌入其它的程序设计言语(称为宿主言语).其实早在1969年实现的IBM-IMS数据库系统(数据操纵言语为DL/I)中曾经具有这种功用.自然系统需求提供预编译接口. 四,在使用程序中使用数据库系统提供的调用库(如Oracle的OCI Library,值得一提的是OCI Library在最新的接口体系中还使用着).再从如今数据系统程序设计者的角度看,在你的程序中可以利用的无非是数据库文件.在利用数据库文件的两条途径中,一条是不需求你掌握数据库文件格式结构的.自然,上面列出的四种情况是从不同的数据库系统归纳出来的.

对于数据库系统本身特别对于数据系统程序的设计还对于很多方面,C/S结构提出的意义是影响严重的.由于它使当前的"世界"不同了.

总体来说,C/S结构出现之前,数据使用相关的几乎全部任务由驻无数据库管理系统的主机完成,晚期的数据表现基本也是在主机上完成.而且数据库系统与外界的交互很无限.虽然,分布式、HOST系统及其它的一些技术对上述情况有所改变.

晚期,C/S结构的核心思想是任务分解,体现客户端请求和服务器应对的计算模式.它具有多种模式:SC/SS、MC/SS、SC/MS、L C/S,而基本的结构又可构成复杂的结构.

下面图示C/S的基本结构.自然C/S结构中,客户端与服务器交互,必须起桥梁作用的两头件(数据访问接口).而它正是我们的主题-数据访问接口(数据对象模型的概念此时髦未出现).这里有关两头件和数据服务器体系结构的知识我们不作扩展探讨.我们把重点放在为C