数据访问技术

2024-07-23

数据访问技术(精选12篇)

数据访问技术 篇1

一、研究背景

随着计算机的产生和计算技术的不断发展, 以及科技的进步特别是信息产业的发展, 把我们带入一个全新的信息时代。为此, 人们需要收集、加工和处理大量的信息和数据, 数据库技术是随着数据和信息管理而产生的。在所有的数据库系统中, 关系型数据库是目前应用最为广泛的数据库之一。

由于不同数据库应用程序开发工具有不同的访问方式, 而且不同的数据供应商又提供了不同的接口, 致使用户在使用开发工具进行数据库应用程序开发时, 对不同的访问方式产生了迷惑和不解, 不知道哪一种访问方式的效率和效果最好。本文, 笔者探讨了常用数据库应用程序开发工具对不同数据库的访问方式。其中, 数据库应用程序开发工具以VB、ASP为例, 数据库以Access、SQL Server和Oracle为例。

VB和ASP都是微软提供的系统开发工具。VB是微软Visual Studio集成开发工具中的一个开发工具, 它既可以开发单机结构数据库应用程序, 又可以开发C/S结构的应用系统。VB使用DAO、RDO、ADO数据库访问方式。ASP也是微软提供的一个开发工具, 主要用于开发B/S结构的应用程序, ASP使用ADO数据库访问方式。下面, 笔者分别介绍一下以上3种方式对Access、SQL Server和Oracle的访问技术。

二、数据库访问对象DAO

数据库访问对象 (Data Access Object, 简称DAO) , 它是一组以数据库引擎 (The Jet Data Base Engine) 为核心而建立起来的动态连接库 (DLLS) 。DAO支持2种不同类型的数据库环境:利用Microsoft Jet Data Base Engine, 使得DAO成为访问本地ISAM数据库的最佳手段;利用ODBC Direct, 使得DAO在访问ODBC类型数据库时拥有最小的额外开销。

1. DAO可存取的数据库。

DAO可以存取本地DAO数据库, 即Microsoft Access和ODBC数据库, 包括SQL Server、Oracle、Sybase和任何提供ODBC驱动的客户机/服务器数据库, 以及Fox Pro、Lotus、文本文件等内容。

以上每个数据库源都提供了不同的安全等级。DAO的主要目的就是将程序员从每个数据库的细节中解脱出来而向他们提供统一的API接口。

2. DAO的基本对象。

DAO中有3个最基本的对象:DBEngine、Workspce和Data Base。

(1) DBEngine。DBEngine对象用于数据库引擎指定系数参数, DBEngine中的Default Type属性用于描述缺省的Workspace类型。如果其属性设置为db Use ODBC, 则使用ODBCDitect模式。Workspace对象作为一个打开的数据库的容器。

(2) Workspace。Workspace为打开的数据库提供安全的设备环境。在创建DBEngine的同时, 程序自动创建了一个缺省的Workspace对象, 用来指定访问数据库的用户名和口令。

(3) Database。Database对象封装了数据库存储器, 并且还定义了数据库的表格、关系、存储查询及打开记录等。

三、远程数据对象RDO

远程数据对象 (Remote Data Object, 简称RDO) 是位于ODBC API之上的一个对象模型层, 它依赖ODBC API、选定的ODBC驱动程序以及后端数据库引擎来实现大部分的功能。RDO具备基本的ODBC处理方法, 所以可以直接执行大多数ODBC API函数。RDO已包含在VB4.0/5.0企业版中, 由一个动态连接库MSRDO32.DLL来实现。

1. RDO数据库接口。

RDO面向客户机/服务器程序的特殊需求提供了一组对象以辅助这种程序的开发。与DAO提供的Jet数据库引擎接口不同, RDO提供的是一个直接与ODBC API连接的面向对象的抽象层。RDO使用ODBC API和数据库服务器驱动器创建到数据库服务器的链接, 创建查询和用于浏览结果设计集的游标, 并且依赖数据库服务器执行复杂的请求过程。它不像DAO那样, 利用Jet数据库引擎进行查询的预处理和连接管理, 而是直接与数据库服务器交互, 这使得RDO特别适用于客户机/服务器型应用程序的开发。

2. RDO的基本对象。

要想正确地使用RDO, 必须要对其对象模块结构加以理解。在RDO的对象和集合中, 有很多对数据库的状态和设定进行操作的属性, 以及对数据库进行操作的方法。RDO主要包括rdo Engine对象、rdo Environment对象和rdo Connection对象。

(1) rdo Engine对象。最初调用RDO对象以及RDC (远程数据控件) 时, 系统会自动生成rdo Engine对象的附带事件。rdo Engine用于对RDO全局属性的参数和选项进行设置, 是RDO的阶层结构内最上层的对象, 包含了其他所有的对象。

(2) rdo Environment对象。DAO对象在自动创建rdo Engine对象时, 生成rdo Enviroment对象的初始值并保存为rdo Enviroments (0) 。在一般情况下, 应用程序中不必追加rdo Environment对象, 大多数只需对已有的rdo Enviroments (0) 进行操作就可以了。只有在支持1个以上事务 (Transaction) 时, 需要将用户名和口令信息分别处理, 利用rdo Create Environment方法将特定的用户名和口令值做成新的rdo Environment对象。

(3) rdo Connection对象。rdo Connection对象用于同SQL Server的连接管理, 下面是与SQL Server连接的例子。

首先用New关键字声明一个rdo Connection对象, 由此生成独立的连接对象, 这时它还不是rdo Connection集合的成员。然后在具体连接到SQL Server数据库之前, 设定rdo Connection集合的属性。

四、Active X数据对象ADO

Active X数据对象 (Active X Data Object, 简称ADO) 。API是另一种用于开发访问OLE DB数据源应用程序的API。有很多种程序设计语言都支持ADO, 包括Visual Basic、Visual C++、VBScript、Visual J++和Active Server Page等。

1. OLE DB数据库接口。

OLE DB是COM模型的数据库接口。它是一系列的接口集合, 介绍了一种通用的数据访问方法。也就是说, OLE DB并不局限于ISAM、JET甚至关系数据源, 而是能够用于处理任何类型的数据。OLE DB向应用程序提供1个统一的数据访问方法, 而不考虑它们的格式和存储方法。ADO集合了DAO和RDO的优点, 而且它不像DAO和RDO那样严格遵循对象的层次关系。这就意味着ADO对象更容易创建和操纵, 因为它们都可以直接地创建和管理。ADO更适用于开发C/S和B/S结构的应用程序。图1说明了一个典型ADO应用程序的配置。

2. ADO的基本对象。

(1) Connection对象。一个Connection对象代表1个到指定数据源的成功连接, 应用程序通过链接访问数据源, 也可以直接访问数据源, 或者通过类似Microsoft Internet Information Server的中间层间接访问数据源。链接成功后, Connection以对象的形式存在。

(2) Command对象。Command对象是对数据源执行的一系列操作的定义。使用Command对象来查询数据库并返回数据集对象形式的查询结果。Command对象指定变量和参数来完成对数据的操作, 如添加记录、删除记录和更新纪录等。

(3) Recordset对象。如果命令行指定数据以表的形式组织, 执行命令后将返回相应的数据集。通过数据集可以对记录以及组成记录的列进行各种操作, 如添加、修改和删除等操作。

数据访问技术 篇2

术研究

【中文摘要】本文研究了渤海海洋防灾减灾数据仓库构建过程中涉及到的一些关键技术,包括数据仓库设计,OLAP快速访问策略,以及序列OLAP系统设计。关于渤海海洋防灾减灾数据仓库的设计,分别进行了体系结构设计和数据模型设计。(1)数据仓库的体系结构设计:采用分层的思想,以及数据仓库和数据集市相结合的方式,设计数据仓库的体系结构,提高了大数据量数据仓库的访问速度。(2)数据仓库的数据模型设计:以防灾减灾数据仓库中的赤潮数据集市为例,从需求分析、主题提取,到概念、逻辑和物理模型设计,探讨了数据仓库的建立过程。关于OLAP快速访问策略,采用OLAP查询结果缓存技术,对内存中有限的Cache空间进行优化利用,尽量保留用户最感兴趣的临时结果,在用户下次访问相同结果时,不必要重新去数据仓库中查询,而是直接把临时结果返回,提高了数据仓库的访问速度。关于序列OLAP技术研究,针对实际应用中存在的序列数据,开展了序列OLAP系统的形式化描述、系统架构以及系统实现等方面的研究。

【英文摘要】This paper study many key technologies involved in the process of building Bohai marine disaster prevention and mitigation data warehouse, including design the Data Warehouse, OLAP quick access policy and sequence OLAP system design.Bohai marine disaster prevention and mitigation Data warehouse

design including two aspects, one is the architecture design and the other is data model design.(1)Design the architecture of Data warehouse:Adopted the idea of stratified as well as combination data warehouse with data mart to design the data warehouse architecture, and improved the access speed of the data warehouse with a large amount of data.(2)Dign the data model of Data warehouse:take the red tide data mart design as an example to illustrate the needs analysis, theme extraction, concept, logical and physical model design to discuss the process of building the Data warehouse.On the aspect of quick access policies for OLAP, which adopt OLAP query results cache technology to optimize the capacity use in a limited memory space and preserve the most interest results for the user, when the user access to the same results next time it is not to re-query the data warehouse, but returned the provisional results for the user directly, so as to save the time of accessing data warehouse.On the research of sequence OLAP technology, for the sequence data in practical application to carry out the several aspects research includes formal description of sequences OLAP systems, system architecture design and other aspects of system implementation.【关键词】数据仓库 数据集市 OLAP 序列OLAP 防灾减灾

【英文关键词】Data Warehouse Data Mart OLAP Sequence OLAP Disaster Prevention 【备注】索购全文在线加我:139938848

....同时提供论文一对一写作指导和论文发表委托服务

【目录】渤海海洋防灾减灾数据仓库的构建与快速访问技术研究摘要2-3论文选题6-8义6-78-12

Abstract3

第一章 绪论6-17

1.1

1.1.1 支撑课题61.1.2 研究目的和意1.2 相关概念和技术8-10

1.2.2 联机分

1.3.1 1.1.3 研究内容7-81.2.1 数据集市与数据仓库析处理(OLAP)10-121.3 国内外研究现状12-16海洋数据仓库研究现状12-14研究现状和发展14-1515-16

1.3.2 OLAP查询结果缓存技术

1.3.3 序列OLAP系统研究现状和发展

第二章 数据仓库体

2.2 体2.4 本章

3.1 3.1.2 1.4 论文的结构安排16-17系结构设计17-21系结构设计17-19小结20-21

2.1 防灾减灾主题域设计172.3 访问方式设计19-20

第三章 数据仓库数据模型设计21-3621-24

3.1.1 数据源21-23数据源与需求分析需求分析23-2424-35计25-3435-36

3.2 数据集市数据模型设计

3.2.2 逻辑模型设3.3 本章小结3.2.1 概念模型设计24-253.2.3 物理模型设计34-35第四章 基于缓冲技术的OLAP快速访问策略研究

36-39策略37-384.1 数据结构设计36-37

4.3 本章小结38-39

4.2 CACHE数据的替换第五章 序列OLAP系

5.2 序

5.4 6.1 全参考统研究39-485.1 序列OLAP形式化描述40-42

5.3 序列OLAP系统实现42-47第六章 全文总结与展望48-496.2 存在的问题与今后展望48-49攻读学位期间的研究成果52-53列OLAP系统架构42本章小结47-48文工作总结48文献49-5253-54

试对数据库访问技术进行研究 篇3

关键词:数据库访问技术;ADO.NET;安全性

中图分类号:TP311.13 文献标识码:A文章编号:1007-9599 (2011) 15-0000-01

Database Access Technology Research

Li Bin

(Guangdong Gaoyao People's Hospital,Zhaoqing526040,China)

Abstract:At present,along with the WWW growing,database access technology has gradually become the focus of the IT technical staff,understand and master the technology of database access,help to better the technology application.This article first elaborated the database access technology development,and based on the ADO.NET data access techniques are studied, for reference only.

Keywords:Database access technology;ADO.NET;Safety

一、数据库访问技术的发展

Web进入编程时代以前,在大部分IT人员眼里,数据访问仅仅是一个相对而言的问题,即需要使用到的所有数据都是自己事先准备好的。大多人关心的问题是如何选择性能好、价格低的数据库服务器,并且系统中涉及的全部模块必须和服务器兼容,其中客户机和服务器的应用是这种两层模型较为典型的范例。

在很短的时间内,三层系统模型发展成了Windows DNA,即Microsoft.NET服务器系统。该系统主要是利用统一的模型进行数据访问,其注重的是内容,而不是存储媒介及数据格式,具体的表达方式完全是建立在UDA的基础上的。为了提供一种通过VB方便访问OLE DB功能的途径,Microsoft设计了ADO。

ADO提供了对脱机记录集、服务器端游标和XML的支持,不仅增强了访问功能,同时还提高了访问效率。为了便于在Web环境下进行数据传输,Microsoft对ADO进行了优化。但是随着人们对可伸缩性以及协同工作能力要求的不断提高,ADO已经渐渐无法满足这一要求,ADO.NET随之出现。

二、ADO.NET数据访问技术

.NET框架是由微软公司推出的一个应用平台,在该平台中ADO.NET是Windows Forms和ASP.NET应用访问数据的标准服务,通过ADO.NET能够访问由.NET提供的不同类型的数据源。ADO.NET可以有效地从数据操作中把数据访问分解成若干个單独使用的组件。ADO.NET可以直接处理检索到的结果,或是将结果放入DataSet对象,并以特殊的方式向用户公开。

(一)ADO.NET的特点。ADO.NET是采用高度分布、松散的应用程序进行设计的,这类程序通常使用HTTP在逻辑程序连接中通信,XML便成为在该连接中交流数据的最佳选择,这是因为文本XML格式较为适合HTTP,当全部连接都处于同一网络时,XML通信提供了最大的灵活性。ADO.NET数据访问具有以下特点:1.不依赖于连续的活动连接。由于被打开的数据库连接会占用一定的系统资源,在正常情况下,数据库仅能维持少量的并发连接,并且维持这些连接会使应用程序的总体性能有所降低。而使用ADO.NET进行数据访问则是以较有节制使用连接的结构作为中心设计出来的,从而使应用程序连接到数据库的时间足以更新和获取数据。在这样的情况下,数据库未被大部分的时间空闲连接所占用,因此,能够为大量的用户提供服务。2.数据能够被缓存到数据集中。较为常见的数据任务是从数据库检索数据随后在对数据进行某些操作,例如显示及处理数据,或是将数据发给别的组件。但很多情况下,应用程序若是在每处理一条记录就返回一次数据库,显然是不切实际的,所以最佳的解决方法就是将从数据库中检索到的记录进行临时存储,然后再对该临时集进行使用,这就是数据集的概念。数据集其实是数据源检索到得记录的缓存,其工作方式好比虚拟的数据存储区。数据集里面的数据一般是数据库中内容的精简版本,可以采用和操作数据类似的方式对数据集进行操作,操作时数据集能够保持与数据库的不连接状态,从而使数据库可以自由执行其他任务。使用数据集最便利的地方在于组件能够按照需要交换数据集。因此,组件不必分别查询数据库。3.数据集独立于数据源。虽然数据集是从数据库中获取数据的缓存,但是两者之间却并没有任何实际啥关系。可以将数据集看作是一个容器,填充这个容器的主要内容是从数据适配器执行的SQL命令或存储过程。由于数据集并没有直接绑定在数据源上。因此,数据集则是来自于多个源的数据的集成点。

(二)ADO.NET数据访问技术的安全性研究。1.安全的ADO.NET连接。为了确保应用程序的安全,首要目标就是保护对数据源的访问,而要想保护对数据源的访问,就必须保持用户的密码、标识以及数据源名称等连接信息的私密性。应避免用纯文本的形式存储用户的密码和标识。因为这样做会造成严重的安全漏洞。用户的密码和标识属于源代码的一部分,如果源代码的安全受到威胁,那么用户的密码和标识则很容易遭受攻击,即便向外部源提供的代码是编译后的版本,也很有可能会被反汇编,从而导致用户的密码和标识被公开,所以说用户的密码和标识绝对不能用纯文本的形式存在于代码中。因此,在连接到Microsoft SQL Server时,可以使用集成安全性,这是因为集成安全性使用的是当前活动活动的标识,而不是传递用户的密码和标识。2.安全的ADO.NET编码。确保应用程序的安全还包括编写安全的代码,而代码则必须只公开客户端代码所需的信息和功能。通常在ADO.NET中最常见的攻击是SQL Insertion攻击,攻击者主要是通过在数据源位置插入其他的SQL语句来达到攻击的目的,这些命令不但能够破坏会修改数据源位置的信息,而且还可以检索用户的私人信息。为了防止SQL Insertion攻击,必须对来自外部源的输入进行验证,并传递列值作为参数,而不是串联这些值来创建SQL语句。

三、结论

总而言之,ADO.NET数据库访问技术具有不依赖于连续的活动连接、数据能够被缓存到数据集中和数据集独立于数据源等优点,必将得到广泛的应用。但在具体使用中必须对其安全性加以注意。只有在确保其安全的基础上,才能更好地发挥该技术的各种优点。

参考文献:

[1]吉占占.基于DataSet和ADO.NET的文献检索列表转换软件设计[J].计算机应用与软件,2009,6

[2]王丽芳.基于ADO.NET的O/R Mapping中间件的研究[N].西北工业大学学报,2010,6

数据库访问技术的探讨 篇4

在数据库应用系统的开发过程当中, 绝大多数的程序员在作数据库编程时, 都在使用ODBC (Open DataBase Connectivity, 开放式数据库连接) 数据源的方式访问数据库。在处理数据源的配置时, 常见有两种方法:

(1) 手工配置方法在应用系统使用说明书中让用户通过个人操作系统提供的ODBC数据源设置方法按步进行, 用确保配置的正确性, 常常需要终端用户有一定的数据库使用经验。这种方法对用户的要求较高, 不符合专业软件的要求;

(2) 程序代码ODBC配置程序员通过访问用户操作系统注册表, 新增、修改相关键值, 从代码角度进行配置。这种方法要编写复杂的更改操作系统注册表文件的程序, 对系统的稳定性提出更高的要求。

本文从ADO (ActiveX Data Objects) 数据访问技术入手, 介绍非ODBC (无需配置数据源) 方式下几种常用大型数据库连接方法。当然需要注意的是并非访问数据库时不需数据源, 否则就无法进行数据库的注册与联接。

二、ADO (ActiveX Data Objects) 数据访问技术

ADO是微软公司提供的最新数据库访问技术。与新的数据访问层OLE DB Provider协同工作, 提供通用数据访问UDA (U-niversal Data Access) 能力。OLE DB是一个底层的数据访问接口, 可以访问多种数据源, 既包括传统的关系型数据库、电子邮件系统等, 又支持自定义的商业对象。ADO提供了一个熟悉的、高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说, 可以把OLE DB看作ODBC驱动程序, 如同RDO对象是ODBC驱动程序接口一样, ADO对象是OLE DB的接口。根据不同的数据库系统需要各自的ODBC驱动程序, 不同的数据源也要求各自OLE DB提供者 (OLE DB Provider) 。OLE DB是一种较新的技术, 因此提供者相对较少, 但微软正积极推广该技术, 并计划用OLE DB取代ODBC。RDO今后将被以ActiveX技术为基础的ADO所替代。ADO是基于OLE DB之上的技术, 它通过内部的属性和方法提供统一的数据库访问接口。ADO的优点主要如下:

ADO具有高度的灵活性, 它可以使用相同的编程模式连接到不同的数据提供者, 而不管给定提供者的特定特性。

较低的内存占用率。

具有远程数据服务 (RDS) 功能, 通过RDS可以在一次往返过程中将数据从服务器移动到客户端应用程序或Web页, 并在客户端对数据进行处理后将更新结果返回服务器。同传统的数据对象层次 (DAO和RDO) 不同, ADO可以独立创建。可以只创建一个"Connection"对象, 然后由多个独立的"RecordSet"对象来使用它。

ODBC本身是以SQL Server、Oracle等关系数据库作为访问对象, 而OLEDB则不仅限于此, 它还可以对电子邮件、文本文件、复合文件、数据表等各种各样的数据通过统一的接口进行存取。

ADO的连接方式主要可分为OLE DB Provider方式与OLE DB Provider for ODBC方式。前者是微软公司正在大力推广的方式。比后者ODBC方式要快且所需资源更少。

三、ADO方式下数据库的联接字符串的定义形式如下:

(1) Provider

字符串表达式, 指定OLE DB数据或服务提供者的名称, 可以缺省。一般有三种提供者:数据提供者、服务提供者和服务组件。

(2) Driver

字符串表达式, 表示ODBC驱动程序的名称, 并不是ODBC驱动程序动态链接库 (DLL) 的文件名。有些驱动程序是微软公司的产品, 在安装操作系统时就已经安装好了;而有些数据库产品的驱动程序由开发数据库产品的软件公司随数据库产品一起提供, 需要在安装数据库时选择安装后, 才可以使用。如:Sybase数据库驱动程序等。

(3) Server (SRVR)

字符串表达式, 数据库服务名称。

(4) Database (DB)

字符串表达式, 指定服务器上的数据库名称。即使DSN定义已经指定了数据库, 也可以在DSN之外指定Database参数以便连接到不同的数据库。

(5) DSN (Data Source)

字符串表达式, 在此为空, 无须指定连接的ODBC数据源的名称。

(6) UID (User ID)

字符串表达式, 为ODBC数据源指定用户标识 (用户账号名) , 指定用户必须有足够的权限。

(7) PWD (Password)

字符串表达式, 为ODBC数据源指定用户口令, 必须有足够的权限。

(8) Persist Security Info

布尔类型, 为True时, 表明采用集成安全机制;若为False, 则表明不采用集成安全机制。无DSN (非DSN) 连接除了ADO所定义的参数外, 提供者不支持任何特定连接参数, 它将把任何非ADO连接参数传递给ODBC驱动程序管理器。下面介绍几种常见数据库的处理方法。

四、结论

ADO数据访问形式逐渐成为当前主流的数据库访问技术。随着这项技术的深入应用, 数据库应用系统用户操作更加便捷, 对数据库软件技术的发展产生更加深远的影响。

摘要:在数据库应用系统开发中, 采用ODBC的数据库访问形式已成惯例, 但这种方式存在的缺点不可忽视, 一则是应用系统用户必须通过手动进行ODBC数据源设置, 另则要通过烦琐的注册表程序进行更新, 极大增加了代码长度, 同时又影响系统稳定性。本文从ADO形式数据访问技术的角度, 探讨非ODBC标准方式下的数据库访问技术

关键词:ADO数据访问技术,OLEDB,ODBC数据源

参考文献

[1].林永张乐强Visual Basic6.0用户编程手册北京:人民邮电出版社2002.1

[2].邓文渊陈惠贞ASP与网络数据库技术北京:中国铁道出版社2003.5

基于本体的通用数据访问方法 篇5

基于本体的通用数据访问系统的核心在于构建出合适的统一数据描述模型,以此模型为基础,构建数据访问引擎,并通过抽取配置工具建立了数据描述模型与数据实体之间的映射关系,最终通过通用数据访问软件实现异构数据的统一访问和展现。

【关键词】异构数据 本体 描述模型 映射 通用访问

1 引言

随着近年来网络技术的快速发展,各领域之间数据共享的需求日益增强,在网络基础设施日益完善的前提下,如何对不同行业和格式的数据资源进行统一访问和集成使用就成为了关键的问题。

国内外对于异构数据库数据的集成近期提出了ETL(数据抽取、传输、加载)机制,在实现中采用XML(可扩展标记语言)实现通用的数据交换,利用全局逻辑视图或者集成的综合数据库的方式实现对各类异构数据资源的集成。

本文通过定义数据本体,设计了一种通用的数据访问方法,建立不同的数据资源与本体之间的映射,使得综合系统直接访问各个异构业务数据库,从而提高数据的使用效率,降低数据冗余。

通用数据访问面向的异构数据具有海量、多元、复杂、动态、移动、实时等特征,为了更好的解决异构数据资源的访问、集成和展现,在设计与实现通用数据访问系统时,必须提供用户对异构数据源透明、一致和实时的访问能力:

(1)透明性,是指屏蔽底层数据源的差异,从用户的角度看来,得到的数据不是来自于若干个数据源,而是一个数据源;(2)一致性,是指消除数据源之间的存在的结构异构和语义异构;(3)实时性,是指访问到的数据是最新的数据,并且对数据库中实时变化的信息能够及时地捕获与展现。

2 总体思路及架构

基于本体的通用数据访问方法面向图形化的数据展现,快速的从异构数据资源中抽取出适用的对象,对其进行统一管理,并借助地理信息系统或表单显示工具向用户提供清晰直观的数据展现。

其主要解决异构数据的统一使用问题,在避免数据格式转换带来大量工作的前提下,实现数据的动态加载,保证应用系统与底层数据资源的分离,同时具有良好的扩展性,在数据种类发生变化时,只需要通过工具界面配置,就能够快速加载新增的数据资源。

基于本体的通用数据访问方法采用分层的体系结构,下层软件给上层软件提供运行支撑或输入,共分为四层,从底到顶分别是:本体定义及管理层、元数据映射层、数据访问层和数据展现层。

2.1 本体定义及管理层

本体定义及管理层主要负责建立基于本体的统一数据描述模型,并制订出一套对该数据描述模型的访问接口规范,是整个方法实现的核心和基础。

2.2 元数据映射层

元数据映射层主要实现数据的灵活配置,通过人工界面配置的手段在数据库元数据与统一数据描述模型之间建立对应关系,并把映射关系保存为XML文件,供通用数据访问软件读取。

2.3 数据访问层

数据访问层主要完成对数据库中实际数据的读取和输出。

通用数据访问软件在实现时遵循本体定义及描述层制订的规范,内部的数据组织关系来自于元数据库映射层生成的映射关系XML文件。

2.4 数据展现层

数据展现层主要包括两种展现手段:基于地理信息的图形化显示工具和表格形式的表单显示工具。

数据展现层属于业务应用范畴,主要需要考虑的是基于地理信息系统(GIS)的数据表现以及海量数据高性能显示的问题,与通用数据访问的实现没有直接关系,因此在本文中不对这部分的实现进行讨论。

3 关键技术及实现

3.1 统一数据描述模型

统一数据描述模型的内容包括图层公共信息(本体)和特征属性族,各类异构的数据在按照统一数据描述模型表述为本体和特征属性族的过程中,消除其原有的异构性,形成统一的数据表述。

统一数据描述模型主要由图层公共信息和一组特征属性族组成。

统一数据描述模型确定种类繁多的数据信息之间存在的内在共同点,建立图层公共信息的统一描述。

图层公共信息:

其中标识属性、空间位置属性、时间属性以及符号属性,这几个属性的组合体现了数据对象在全维图形上的基本价值。

在统一数据描述模型中除了建立统一的图层公共信息描述以外,还借鉴可扩展标记语言的思想,建立了一个对象特征属性族描述方法,用来存放每类数据对象的具体属性项。

该属性族由数据对象的类型确定,其可扩展的`特性保证了每一类数据对象信息项的完整,同一类对象属性族项的数量和构成保持一致。

特征属性族定义:

3.2 数据图层映射转换

采用根据数据库中字段的取值确定图层对象的动态映射机制,并提供多种方法来规范映射,提供了语义映射机制,通过将数据库字段与统一数据描述模型中的属性建立字段映射机制;采用数据库数据到图层对象的语义映射,提供量纲映射机制,通过规范数据库中数据到图层对象的取值处理标准,提供多种量纲转换机制,如经纬度的转换机制和时间格式转换机制等等;采用字段映射机制或条件映射机制来处理图层显示属性。

如果显示属性采用字段映射机制进行配置处理,那么将使用配置字段的取值进行显示处理;如果显示属性采用条件映射机制进行配置,那么在进行显示处理时,将对这组字段的取值进行判断,符合某组合的取值,则用该组合的设置值进行显示,没有符合的条件组合就是用默认值进行显示。

4 结束语

本文的研究对象主要是针对数据库形态的数据资源,而文中提出的方法对其他形态的数据资源也同样适用,因此,后续的工作将以建立各种形态数据资源统一访问的软件系统为目标。

参考文献

[1]缪嘉嘉,邓苏,刘青宝.E T L综述计算机工程,2004(2).

[2]沈镭.基于XML的异质多数据库集成系统的设计与实现[J].河南大学学报(自然科学版),2007(9):530-532.

数据访问技术 篇6

[关键词]大数据;非均匀存储访问;线程调度

[中图分类号]C37 [文献标识码]A [文章编号]1672-5158(2013)06-0031-02

引言

在当今时代,互联网迅猛发展,各行各业数据量猛增。数据种类繁多,数据量巨大,大数据时代来临。随着大数据的来临,大数据处理成为越来越有价值的工作,而大数据的高性能处理则至关重要。

目前大数据处理大都采用多处理器系统,而多处理器系统中的非均匀存储访问架构为进行大数据高性能处理的主流体系结构之一。

1 非均匀存储访问技术特点

1.1 多处理器系统模式

在多处理器系统中,比较流行的有三种模式,即对称多处理模式、大规模并行处理模式、非均匀存储访问模式。对称多处理模式是在一个主存上连接着两个或两个以上的处理器,这些处理器共享一个主存,也被称为均匀性存储访问系统。大规模并行处理模式是分布式存储器模式,可扩展性比较好,但是需要并行编程和并行编译,在软件系统构建上比较复杂,使用不便。非均匀存储访问架构是将若干个单元通过专门的互联设备联结在一起组成分布式和共享内存系统。每一个处理器可以访问自己单元的存储器,也可以访问其他单元的存储器,所有访存有远近、时延长短之分,称为非均匀存储访问。

1.2 非均匀存储访问架构的性能优势

非均匀存储访问架构的性能优势主要体现在以下几个方面:第一,非均匀存储访问处理器访问同一单元上的内存的速度比一般对称多处理模式超出一倍。第二,非均匀存储访问的突破性技术彻底摆脱了传统的超大总线对多处理结构的束缚,它大大增强单一操作系统可管理的处理器、内存和I/O插槽。最后,非均匀存储访问系统提供内存互联的硬件结构,这种技术可以开发新型动态的分区系统。系统分区可以允许系统管理员根据用户工作负荷的要求,简单地管理和使用CPU和内存资源,从而达到最高的资源利用率和最佳的性能。正因为以上的原因,非均匀存储访问架构得到越来越广泛的应用。

2 非均匀存储访问技术线程访问时间研究

非均匀存储访问系统的基本特征是具有多个CPU模块,每个CPU模块由多个核(如6个)组成,并且具有独立的本地内存、I/O槽口等。由于其节点之间可以通过互联模块进行连接和信息交互,因此每个CPU可以访问整个系统的内存。但是线程访问远近程存储器的时间是不一样的。

我们使用的非均匀存储访问系统是四个主频为2.2GHZ的双核AMD opteron多处理器,每个处理器有2x1GB DDR400 DRAM内存。如(图1)所示。四个处理器由coherent HyperTransport(相关性超传输)总线连接,每个处理器有一条双向HyperTransport(超传输)总线和I/O连接,两条双向相关性超传输总线分别和另外两个双核处理器连接。每个双向超传输总线的数据传输带宽为4 GB/s。系统有4个节点NO,N1,N2,N3。每个节点有自己的内存控制器(MCT),连接着本节点的内存。每个节点有2个核CO,c1,两个核连接着一个系统需求接口(sRI),系统中间有一个交叉设备XBar,SRI、内存控制器、各种各样的超传输总线都和XBar连接。

在非均匀存储访问系统中,内存需要可以来自于本节点的核,也可以通过超传输总线来自于其它节点的核。前者叫做本地访问,对内存的访问要求从核到SRI,到XBAR,再到MCT;后者叫做远程访问,内存访问要求的路线是从远程节点的核通过超传输总线到达XBAR,从XBAR再到MCT。每个节点的SRI、XBAR、MCT都有缓冲区,缓冲区用来存放需要传送的数据包。

在非均匀存储访问系统里,影响应用程序处理大数据的性能主要有以下几个方面:

①远程内存访问。处理器访问远程存储器的次数多少会直接影响一个应用程序的性能。提高非均匀存储访问系统性能的策略之一就是减少远程访问的次数。要尽可能地让进程在本节点执行。

②相互连接的超传输总线带宽的影响。

③内存竞争的影响。当许多处理器在同一时刻访问一个内存单元的时候就会出现内存竞争,内存竞争会增加内存响应时间,降低程序的执行效率。恰当的数据分配策略会减少内存竞争。

④内存带宽的影响。

⑤缓冲区影响。在非均匀存储访问多处理器系统中,缓冲区在性能上发挥着重要的作用。如果处理器在本地缓冲区中没有找到需要的数据,就会访问远程的存储器。

⑥系统中各种各样缓冲区可容纳缓冲队列长度的影响。

2.1 远近程内存访问的时间差别

线程本地存储器访问和远程存储器访问时间究竟有多大的差别呢?我们先用一个例子来研究远近程内存访问的时间差别。

我们得到处理器所记录的当前时间的方法是使用时钟周期数TSC的值乘以CPU的时钟周期cycle来得到。就是在每次处理器启动的时候把TSC的值清零,然后每个时钟周期TSC的值都加1,这样要得到代码执行的周期数就在一段固定代码执行前后分别读取TSC的值即可。用下列公式可以计算代码执行时间:

T=(TSC1-TSC2)·cycle

当线程运行和访问内存都在同一个节点时,就叫做本地访问或0-跳访问。当线程运行在一个节点,访问内存却在其他节点,就叫做远程访问。在远程访问中,如果线程运行的节点和内存访问的节点是彼此直接连接的,就叫做1-跳访问。如果线程运行的节点和内存访问的节点不是直接连接的,就叫做2-跳访问。如图1中,线程在节点0运行,则其对于节点1、2、3的访问即为远程存储器访问,对节点1、2的内存访问叫做1-跳访问,对节点3的内存访问叫做2-跳访问。

我们采取了一段串行程序使用一个线程向不同节点存储区域写入5M相同大小数据量的方法来测试访问的时间,并且,每次实验我们重复了2000次。统计结果表明,本地存储区域的访问时间是最短的,平均为2166μs;而对于远程存储区域的访问则需要较长的时间,其中1、2节点的访问时间平均达2445μs,而节点3,访问距离最远,访问时间也最长,平均达3032μS。

由此实验可见,在非均匀存储访问系统中,访问远程内存的速度要慢于访问本地内存的速度。在本例中,1-跳距离的存储访问时间是本地存储访问的1.13倍,2-跳距离的存储访问时间是本地存储访问的1.4倍。访问远程数据的距离越远,付出的时间代价越高。我们在应用程序中,尽量保持数据在节点内部访问。

2.2 单线程只读和只写远近程存储器的研究

如果对内存的访问为只读或只写,本地访问和远程访问时间有什么差别呢?我们用下面的例子来研究只读和只写访问远近程存储器的影响。

我们采取一段串行程序使用一个线程向不同节点存储区域分别连续读出和写入60M相同大小数据量,读写入的大小要远远大于缓冲区大小。线程运行在节点O的C0上。并且整个系统只有这一个线程运行。线程的数据访问分为以下几种:

*线程本地访问节点0内存。(0-跳)

*线程远程访问节点1内存。(1-跳)

*线程远程访问节点2内存。(1-跳)

*线程远程访问节点3内存。(2-跳)

访问时间结果表明,随着访问距离的增加,读写访问的访问时间都增加了。每种情况,写访问的时间都大于读访问的时间,因为写操作会生产出更多的内存带宽负载。但是读写访问的访问时间都随着访问内存距离的增加而增加。

2.3 节点间和节点内线程调度访问研究

如果是多线程,通过节点调度多线程有以下几个制约因素:

*系统是否空闲,也就是系统有没有其它负载;

*多线程是否访问各自私有的数据。

*多线程是否访问共享的数据。

我们先来研究系统空闲下线程只访问本节点私有的数据。

我们使用2个线程进行写操作,每个线程都写)260M的数据,都访问本节点的内存。第一种方法是节点间调度,即一个线程在节点0的核0运行,另一个线程在节点1的核0运行;第二种方法是节点内调度,即2个线程分别在节点0的核0和核1上运行。比较两个线程运行的总时间。结果表明,节点间调度线程的执行时间比较少。

随后我们又使用8-CPU非均匀存储访问系统工作站(AMDOpteron 6168 1.9GHz processor,64G RAM,48 core,8节点,每个节点6个核)实验环境,使用6个线程进行写操作。都访问本节点内存,分上述两种情况,即第一种方法是节点间调度,每个线程分别在6个节点的核0运行,第二种方法是节点内调度,6个线程都在节点0的每个核运行。结果为,第一种情况执行时间比较少。

在非均匀存储访问系统中,在空闲执行环境下访问私有的数据,我们应尽量避免使用第二种情况来调度线程。从负载平衡的角度来说,如果某一个节点负载过多,而其他节点空闲,必然会导致一个节点内的资源产生竞争,从而影响应用程序的执行效率。

如果在空闲执行环境下,各线程之间的数据共享,我们使用2个线程和6个线程在2种环境下分别进行了测试。线程都访问本节点内存,第一种方法是节点间调度,一个线程在节点0的核0运行,另一个线程在节点1的核0运行;第二种方法是节点内调度,2个线程分别在节点0的核0和核1上运行。6个线程写60M数据的两种方法,第一种方法是节点间调度,每个线程分别在6个节点的核0运行,第二种方法是节点内调度,6个线程都在节点0的每个核运行。结果表明,在节点内调度线程的执行时间比较少。因为各线程之间数据共享,访问内存数据的距离越短,时间越少。所以我们在空闲环境下进行线程调度,各线程间数据共享,优先从节点内进行调度,一个节点调度为完毕,再从另一个节点进行调度。

对于上述实验,我们在系统有少量负载的情况下也做了相应的实验,取得了类似的结果。

由此可知,在非均匀存储访问系统中,在系统空闲的情况下,或者少量负载的情况下,对应用程序进行大数据处理提出如下建议:

*如果线程仅访问本节点私有的数据,优先从节点间调度线程;

*如果线程间数据共享,优先从节点内调度线程,一个节点饱和后再从另一个节点进行调度;

*如果线程需要访问的既有独立数据又有共享数据,但私有数据远远大于共享数据,优先从节点间调度线程。

3 结束语

当今,在互联网及各行各业都存在着大量数据需要高性能处理,本文通过实验对非均匀存储访问技术进行研究,发现了读写内存、不同访问距离等各种情况下线程内存访问的性能特点。得出了应用程序在线程调度中的重要结论,对大数据的高性能处理有重要的指导意义。

参考文献

[1]都志辉,高性能计算并行编程技术-MPI并行程序设计,清华大学出版社,2001

数据访问技术 篇7

Microsoft提供了各种各样的数据访问技术,这些数据访问模型自成一套体系,从最初的ODBC到现在最新的A-DO.NET,历经了DAO、RDO、OLE DB、ADO等过程。

1.1 ODBC(Open Database Connectivity,开放数据库互连)

ODBC是微软倡导的、被广泛接受的数据库访问编程接口(API)。ODBC有4个组件:应用程序、驱动程序管理器、驱动程序、数据源构成。ODBC依赖于数据库驱动程序。ODBC管理器把数据库访问请求传给正确的驱动程序,驱动程序再使用SQL语句指示DBMS完成数据库访问工作。当改变驱动程序时,应用程序不需重新编译或链接,只是动态加载新的驱动程序并调用其中的函数。驱动程序管理器对特定数据库各个驱动程序进行集中管理,把应用程序从具体的数据库调用中隔离开来,为访问异类的SQL数据库提供了一个共同接口,体现了ODBC的独立性和开放性。

目前大部分ODBC开发使用MFC ODBC。Visual C++中提供了MFC ODBC类,封装了ODBC API,只要了解该类的属性和方法就可以访问数据库了,无需了解ODBC API的细节,编程更方便。

ODBC基本上可用于所有的关系数据库,目前所有的关系数据库都提供了ODBC驱动程序,对象数据库及其它非关系数据库,ODBC则无能为力,要借助其它的访问方式(如OLE DB和ADO技术)。ODBC API属于底层控制操作,能完成一些其它高层数据库技术无法完成的底层功能。但ODBC的访问速度相对较慢,限制了它的一些使用。

1.2 DAO(Data Access Objects)和RDO(Remote Data Objects)

DAO是第一个面向对象接口,引入了Microsoft Jet数据库引擎,可通过ODBC直接连接到Access表。在VB 6.0之前,VB没有一种简单的方法来访问ODBC接口,必须依赖一种较高级别的数据访问模式。DAO提供通过程序代码创建和操作数据库的机制,多个DAO对象协同工作构成一个体系结构。DAO支持以下4个数据库选项:打开访问数据库文件(MDB文件)、直接打开ODBC数据源、用Jet引擎打开ISAM(索引顺序访问方法)数据源、给Access数据库附加外部表。DAO最适用于单系统或本地小范围内的分布应用程序使用,不需ODBC中驱动程序管理器中间环节,访问速度比ODBC快,直接利用Jet数据引擎提供的数据库访问对象集进行访问。当DAO使用ODBC访问非Access数据库时,Jet将解释DAO和ODBC之间的调用,这种额外的解释导致较慢的连接速度,为克服这种限制,Microsoft创建了RDO。

RDO是DAO的继承者,将DAO的易编程性与ODBC API的高效性结合在一起,使用分层的体系结构。RDO没有Jet引擎的高开销,加上与ODBC的紧密联系,在访问与ODBC兼容的数据库时,具有比DAO更高的性能,简化了ODBC的开发,同时在VB和VBA程序中发展了ODBC。与RDO紧密关联的是Remote Data控件,RDO能访问ODBC提供的全部功能,更易使用,但同时也继承了ODBC的缺点,只能支持关系数据库,不如ADO灵活。

1.3 OLE DB(Object Link and Embedding Database)

OLE DB是通过COM接口访问数据的Active X接口,具有COM模型的所有优点,如接口灵活、系统稳定、健壮性好等,同时,提高了数据库的访问速度。OLE DB是一种底层数据访问界面接口。用统一的方法来访问不同种类的数据源(包括传统的关系数据库、大型机ISAM/VSAM、分层目录结构、E-mail、文件系统、文本和图形数据等)。OLE DB将传统的数据库系统划分为以下逻辑组件:数据提供者、数据服务提供者、业务组件和数据消费者。这些组件间即相互独立又互相通信。OLE DB的特点是效率高,可以访问各种不同类型的数据源,但编程比较麻烦。VC++提供ATL模板,用于设计OLE DB数据应用程序和数据提供程序,ATL模板可将OLE DB与MFC结合起来。

OLE DB为C和C++及用其它包含C样式函数调用的语言提供绑定。有一些语言(如VB和VBScript)不提供指针数据类型(地址变量),不能使用C样式绑定,就不能直接通过OLE DB调用。在此基础上,Microsoft推出了另一个数据访问对象模型ADO。

1.4 ADO(Active X Data Object)

ADO是为适应网络数据库和瘦客户端需求而推出的跨平台远程数据库访问技术。ADO是建立在OLE DB上层的应用模型,实现了OLE DB的所有功能。通过ADO来访问OLE DB数据源。这一访问模型,可满足从较小的简单工作站进程到大型网络程序,可以完成几乎所有访问和更新数据源的动作。很多开发工具都支持这个对象,比如VB和ASP。属于数据库访问的高层接口。ADO只有很少几个对象但可以与多种方法组合,最重要的特点是其扩展性;其次可以象在IE浏览器的HTML页中和IIS上的ASP中那样使用,甚至可以在Internet上发送一批记录给客户浏览器或远端激活的COM组件。与其它访问对象(如RDO和DAO)相比,ADO含有的对象更少,更易于使用。ADO对象模型包括3个主要对象:Connection、Command和Recordset;还有4个补充对象:Error、Parameter、Field和Property。从ADO2.1开始支持XML格式,但直到ADO 2.5出现,ADO 2.1中XML的一些限制(如分层记录集对象的保持)才被取消,但也只能读取名为高级数据表图(Advanced Data TableGram,ADTG)专用架构的XML文档记录集。

2 最新数据访问模型ADO.NET

在设计.NET框架时,Microsoft根据ADO模型设计了ADO.NET。ADO.NET是最新的数据访问技术,满足了ADO无法满足的三个需求:提供了断开的数据访问模型;XML的紧密集成;.NET框架的无缝集成(能够结合来自多个数据源的数据)。ADO.NET是微软公司ADO的下代产品。基于国际互联网联盟W3C标准的程序设计模型,可用于创建分布式的、数据共享的应用程序。具有高级的应用程序编程接口,面向支持对数据进行断开连接访问的、松耦合、n层、基于Internet的应用程序,是Microsoft.NET Framework的核心组件。ADO.NET遵循更通用的原则,不专门面向数据库。集合了所有允许数据处理的类。这些类具有典型的数据库功能(如索引、排序和视图)的数据容器对象。

2.1 ADO.NET组件的结构体系

ADO.NET主要由2个核心组件组成:.NET数据提供程序(Data Providers)和数据集(Data Set)。前者实现数据操作和对数据的快速、只进、只读访问;后者代表实际的数据。两者都可以与数据使用者(Data Consumers)进行通信。

ADO.NET依靠数据提供者,对底层数据源的访问。它实现数据操作和对数据的快速、只读访问。NET的数据提供程序有:OLEDB.NET、SQLServer.NET、ODBC.NET、Oracle.NET。以上4种数据提供程序,均包含4个主要对象:Connection、Command、Data Reader和Data Adapter。Connection对象提供与数据源的连接。Command对象提供用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。Data Reader从数据源中提供高性能的数据流。Data Reader对象是提供连接Data Set对象和数据源的桥梁。Data Adapter使用Command对象在数据源中执行SQL命令,以便将数据加载到Data Set中,并使对Data Set中数据的更改与数据源保持一致。通过应用程序可以产生相应的数据集对象,同时还提供了非连接模式下的数据库访问支持。

Data Se是数据的内存驻留表示形式,代表一套包含关系表、约束和表间关联信息的完整数据结合。主要由两部分组成:Data Table Collection和Data Relation Collection。Data T-able Collection包含零个或多个Data Table对象,Data Relation Collection代表Data Set对象中表之间的关系集合,关系由Data Relation对象来表示。

由于Data Set对底层的数据源一无所知,提供了独立与任何数据源的数据访问,因此可以用于多种不同的数据源和XML数据,或用于管理应用程序本地的数据。

2.2 ADO.NET的技术优势

运用ADO.NET技术,应用程序不仅能访问关系型数据库中的数据,而且还能访问层次化的XML数据。ADO.NET为应用程序提供了2种数据访问的模式:连接模式和非连接模式。相比于传统的数据库访问模式,非连接的模式强化了应用程序的可靠性和稳定性。在该模式下,一旦应用程序从数据源中获得所需数据,就断开与原数据源连接,并将获得数据以XML的形式存放在内存中。在应用程序处理完数据后,再取得与原数据的连接并完成数据的更新工作。WEB应用程序需面对成千上万的用户,ADO.NET能够有效地避免数据库阻塞和过多的活动连接占据有限的网络资源,从而在用户数量增加的情况下,系统资源的开销却增加很少。

ADO.NET中的Data Set类是非连接模式的核心,通过实现独立于任何数据源的数据访问。在非连接情况下访问数据库应用程序接口,能很好的应用于Web应用程序的开发,通过减少与数据库连接次数使数据共享最大化。同时Data Set支持XML传送标准;可以更容易创建要通过应用层访问数据的应用程序。因引入了对XML的全面支持,因此ADO.NET具有良好的互用性和可维护性,对于Web服务的可伸缩性。比基于COM的ADO在组件间传递记录集有更高的性能。通过强类型程序设计对ADO.NET模型的对象进行操作,极大提高了程序编写速度。.NET框架允许通过COM interop在.NET应用程序中使用ADO,提供向后兼容性而无需修改ADO。以程序集形式导入ADO类型库。

从语法,风格和设计目标来看,ADO.NET和ADO显著不同。在ASP中通过ADO访问数据库,要通过以下4个步骤:(1)创建一个到数据库的链路,即ADO.Connection;(2)查询一个数据集合,即执行SQL,产生一个Recordset;(3)对数据集合进行需要的操作;(4)关闭数据链路。

在ADO.NET里,这些步骤有很大的变化。Data Set是不依赖于数据库的独立数据集合。即使断开数据链路,或者关闭数据库,Data Set依然是可用的。如果在ASP里面使用过非连接记录集合(Connectionless Recordset),那么Data Set就是这种技术的最彻底的替代品。有了Data Set,ADO.NET访问数据库的步骤就相应地改变为:(1)创建一个数据库链路;(2)请求一个记录集合;(3)把记录集合暂存到Data Set;(4)如果需要,返回第(2)步(Data Set可以容纳多个记录集合);(5)关闭数据库链路;(6)在Data Set上做所需要的操作。

3 数据库访问模型的比较和选用原则

微软数据访问模型可由图1归纳表示,从图1中可以清晰看出各种数据访问模型的体系结构及访问流程。其中,一类是基于ODBC的;一类是基于OLE DB的;还有一类是最新的ADO.NET,即松散的、多层的、用于创建分布式的、数据共享的应用程序。

模型选择:在实际的应用中,选择那一种数据访问技术,在很大程度上依赖于用户应用程序的具体情况,如性能、规模、数据源的类型、访问速度、编程效率、是否需要进行底层的控制维护以及程序开发人员技能等方面的要求。

ADO.NET在未来的数据访问技术中将成为主流技术并在.NET环境下占据统治地位。而微软的数据访问技术也将从面向组件技术发展为.NET下的面向类、接口和对象。

参考文献

[1]雷之宇,朱冰,等.C#语言实用教程[M].北京:中国铁道出版社,2004-03.

[2]求是科技,编著.Visual C++数据库开发技术与工程实践[M].北京:人民邮电出版社,2004-01.

数据库访问技术的研究 篇8

如今Web上的大部分工作都涉及读出和写入各种数据库,从论坛的用户登录到处理在线订单等,都离不开数据库的操作。因此,实现访问、显示、操纵和修改数据源中的信息是开发人员的一个必备技能[1]。ADO.NET的名称起源于ADC(ActiveX Data Objects),这是一个广泛的类组,用于在以往的Microsoft技术中访问数据。ADO.NET是在Microsoft.NET编程环境中优先使用的数据访问接口,它提供了平台互用性和可伸缩的数据访问[2]。ADO.NET引入了一些重大变化和革新,它对XML提供全面的支持,提供了新的非连接数据缓冲模型,使其在构建结构松散的、非连接的WEB应用程序上有着得天独厚的优势。而基于数据库的WEB应用程序中一个核心功能就是为用户提供可靠和高效的数据库访问,而对数据库访问性能的优劣是评价一个Web应用程序好坏的关键标准。

1 ADO.NET架构

AD(O.NET是微软新一代.NET数据库的存取结构,是应用程序和数据源之间沟通的桥梁。它允许从不同的数据源获取数据,并操作和更新得到的数据。ADO.NET架构主要包含.NET Data Provider(.NET数据提供者)和DataSet(数据集)两个部分,其中.NET数据提供者包含Connection,Command,DataReader和DataAdaper[3,4]4个核心组件。

2 ADO.NET的两种访问数据库的模式

对于不同的应用需要,ADO.NET提供了两种模式来访问数据源中的数据:使用DataReader对象进行基于连接的访问和使用DataAdapter对象进行非连接的访问。如果用command对象打开数据库,必须用DataReader对象来读取数据库中的数据;如果用DataAdapter对象来打开数据库,则用DataSet对象来读取数据库中的数据[5]。下面对这两种访问模式进行分析和比较。

2.1 基于连接的访问模式

基于连接的访问模式是基本的数据访问模式,也是实际应用开发中最常采用的模式。

2.1.1 创建连接对象

Connection对象主要是指开启程序与数据库之间的连结要在数据源和客户端应用程序之间移动数据。因此,必须首先建立连接对象,然后为此对象提供连接字符串,没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在ADO.NET的最底层,可以自己产生这个对象,或是由其他的对象自动产生[6]。

2.1.2 创建命令对象

在已经建立与数据源连接之后,可使用命令对象执行命令,从数据源返回结果。假设以要访问的数据库mydatabase为例,在要执行SQL语句前,需要在System.Data.SqlClient命令空间中创建SqlCommand类的实例。命令对象指定需要执行的SQL语句和需要使用的连接,以此来执行这些语句,并可通过命令对象来执行SQL语句或存储的过程SqlCommand cmd=new SqlCommand(select*from mydatabase,con);以上代码将命令对象cmd初始化为需要执行的SQL语句。

2.1.3 打开连接对象

已定义了连接字符串之后,需要使用Open()方法来打开连接。Open ()方法使用Connection对象的ConnectionString属性中的信息连接到数据源,建立连接con.Open()。

2.1.4 在命令对象中执行SQL语句

当只需要循序的读取数据时,可调用其方法ExecuteReader();SqlDataReader myReader=cmd.ExecuteReader();myReader.Read();SqlDataReader类使用命令对象的ExecuteReader()方法来进行初始化,该使用Read()方法从SQL Server中按行读取数据,1次读取1行,可使用循环语句逐行读取数据[7]。

2.1.5 关闭连接对象

执行了想要执行的命令之后,应关闭连接,以减少系统资源的浪费。要想关闭数据库的连接可以使用连接对象中的Close()方法来关闭con.Close()。

2.2 非连接的访问模式

ADO.NET通过DataAdaper对象建立、初始化数据表,与DataSet对象结合起来在内存中存放数据[8]。非连接的访问模式是以Dataset为中心的数据访问模式,DataSet是一个非连接的、与数据源无关的类。其实DataSet也是一个数据库,只不过是它所访问的数据库在内存中的一个副本,是由程序根据需要临时产生并放在内存中的,因此也可以形象地说它是真实数据库在内存中一个影像,故常被称为内存数据库[9]。DataSet本质是内存中缓存区,用于缓存关系型数据,不论DataSet中包含的数据是来自于XML文档、关系型数据库还是通过用户接口以编程方式输入的,数据的表示方式均相同。通过DataAdapter对象对数据源中的数据进行过滤,将需要的数据导人到DataSet中,在DataSet中,数据表格可以单独存放,也可以通过DataRelation对象在表格之间建立关联,增加了数据处理的灵活性。DataSet对象的创建将同时导致多个子对象,包括DataTable,DataRow,DataColumn及作为这些子对象的容器的集合对象的创建[10]。程序就可以只针对这个临时的数据库进行各种操作,就像面对一个真实的数据库,并且操作的同时,到真实数据库的连接是可以断开的,这就大大提高了性能。

3 结语

由于这两种模式的设计目的不同,所以在应用程序开发中应该根据实际需要,选择合适的数据库访问模式,以发挥出ADO.NET的最佳性能。这对于提升应用程序性能有着非常重要的意义。ADO.NET具有执行速度快,编程方式灵活等优点,断开连接的访问方式具有占用资源少等优点,其使用将更加广泛,但是在使用时应合理选择最合适的连接方式。

参考文献

[1]徐谡,徐立.ASP.NET应用与开发案例教程[M].北京:清华大学出版社,2005.

[2]吉喆,董智勇,王炜,等.基于DataSet和ADO.NET的文献检索列表转换软件设计[J].情报杂志,2009,28(6): 116-121.

[3]吴清涛.基于ADO.NET的数据访问模型研究[J].武夷学院学报,2009,28(5):67-70.

[4]张振国,谈恩燕.ADO.NET在农业信息网上的应用研究[J].安徽农业科学,2006,34(3):603-605.

[5]蒋忠仁.ASP.NET应用与开发技术教程[M].北京:人民邮电出版社,2009.

[6]宋杨,黄智.ADO.NET中的五个主要对象的浅析[J].科技信息,2009(34):357.

[7]周晓娟.基于ADO.NET的数据库访问技术研究[J].现代商贸工业,2009(24):292-293,

[8]王宝详.基于ADO.NET的数据库访问技术研究[J].计算机应用与软件,2004,21(2):120-122.

[9]徐照兴,王斌.ADO.NET访问数据库的方法及步骤[J].中国科技信息,2009(22):105-132.

浅谈ASP中的数据访问技术 篇9

ADO是ASP数据库技术的核心之一, 它集中体现了ASP技术丰富而灵活的数据库访问功能。ADO设计了许多环环相扣的继承对象, 让Web数据库开发人员可以方便地操纵数据库, 在ADO运行时继承子对象之间是互相影响的。用ADO访问数据库类似于编写数据库应用程序, ADO把绝大部分的数据库操作封装在七个对象中, 在ASP页面中编程时可以直接调用这些对象执行相应的数据库操作。

ADO基本和核心的对象有三个:Connection连接对象、Command命令对象和Recordset记录集对象。注意这三个对象的逻辑关系, Connection连接对象用于建立ASP程序与数据库的连接, 连接之后, Command命令对象对数据库进行存储、更新、删除和查询操作, Recordset记录集对象记录查询结果。

二、ADO内置组件的使用

一个典型的ADO应用是使用Connection对象与服务器建立连接, 通过Command对象执行访问数据库的操作, 最后由Recordset对象处理操作结果集。

1. Connection对象的应用

ASP使用ADO对各种数据源进行各种操作, 其中, Connection对象是必不可少的, Connection对象可以用来在应用程序和数据库中建立一条数据传输连线, 在这个基础之上可以使用Command对象及Recordset对象来对Connection对象所连接的数据库进行插入、删除、更新和查询等操作。同拨打电话一样, 建立一个Connection对象就像是拿起话筒, 打开一个Connection对象类似与拨号, 而使用Command对象及Recordse对象已经是在用这条线路通话了。

完成数据库的连接后, 可用Connection对象的Execute方法来执行结构化查询语言 (SQL) 来操作数据库并检索结果。建立Connection连接是所有数据库操作的第一个步骤, 仅仅依靠Connection连接无法实现有效的数据库应用, 我们还要结合其他的对象来实现Connection的应用。

2. Recordset对象的应用

Recordset对象的作用是由数据库返回记录集。根据查询结果返回一个包含所查询数据的记录集, 然后显示在页面上。因为删除、更新、添加操作不需要返回记录集, 因此可以直接使用连接对象或是命令对象的Exexut方法, 但是利用记录集对象有时会更简单, 此外, 通过记录集对象能够实现比较复杂的数据库管理任务, 比如要采用分页显示记录就必须使用记录集对象。

Recordset对象可以用来代表表中的记录, 可以把记录集看成是一张虚拟的表格, 包含一条或多条记录 (行) , 每条记录包含一个或多个字段, 但任何时候只有一条记录为当前记录。

可以在非显式建立连接对象的情况下, 直接打开一个带有查询的记录集, 或是对命令对象的查询返回一个记录集。ADO提供这种灵活性, 可以用最简单的方式指明一个字符串来说明连接方式, 从而得到数据库的查询结果, ADO会自动创建所需要的连接对象。当然也可以显式创建连接对象和命令对象, 这样可以获得更多的灵活性, 实现更为强大的功能。

要使用一个Recordset对象, 我们必须首先设置一个数据源, 并且使用Server.Create Object () 方法来创建一个Recordset对象。然后使用Recordset对象的Open方法来发送SQL语句、游标类型 (Cursor Type) 参数和指针锁定类型 (Lock Type) 参数。

为了简介各个对象的具体应用, 以student.mdb数据库, 在student.mdb中建立一个“学生”表, 表中的字段有ID、name、sex、old、class。

示例功能:建立Connection连接, 执行一条查询语句并返回数据显示。

代码如下:

<%set conn=server.Create Object ("adodb.connection")

connstr="driver={microsoft access driver (*.mdb) };dbq="

&server.Map Path ("student.mdb")

conn.open connstr

set rs=conn.execute ("select*from学生")

do while not rs.eof

response.Write rs ("name") &"
"

rs.movenext

loop%>

3. Command对象的应用

Command命令对象负责对数据库提供请求, 传递SQL命令, 可以对数据库进行数据查询、添加、删除、更新等操作。它有强大的数据库访问功能, 即可以完成对数据库的插入、删除等无须返回结果的操作, 也可以使用查询语句返回一个记录集。它介于连接对象与记录集对象之间, 先通过连接对象与数据库连接, 然后通过命令对象发出SQL的操作命令, 再把得到的结果返回给记录集对象。Command对象对数据库的操作一般采用SQL语句。

相比较而言, 由于使用连接对象也可以对数据库进行数据查询、添加、删除、更新, 因此Command命令对象应用不多。

三、结语

掌握了Connection连接对象、Command命令对象和Recordset记录集对象的应用, 可以轻松实现网络数据库的动态访问, 实现用户的交互。对于要学习ASP动态网站开发的技术人员, 在学习ASP访问数据的技术时, 关键是要学习掌握这三个对象的灵活使用, 做到能够显示数据、添加数据、修改数据、删除数据、查找数据。

摘要:ASP作为一种动态网站开发技术, 得到了广泛的应用, 尤其是数据库访问技术。本文介绍了在ASP中如何使用ADO组件访问数据库。包括ADO概述以及ADO的Connection对象、Reordset对象、Command对象的应用, 并且通过一个具体实例, 演示了对数据库的各种操作。

关键词:ASP,ADO,数据库

参考文献

数据访问技术 篇10

随着大数据的飞速发展和技术的不断革新,基于大数据的数据挖掘、机器学习以及人工智能等技术深深地影响和改变着人们的生活。另一方面,“云”概念在飞速发展的计算机领域和网络技术领域中被广泛推广和应用,云计算是一种借助互联网实现的动态扩展数据交付、数据使用、资源分享的一种模式。云计算是在当今高度发达的计算机和网络技术的基础上发展出来的,因此二者的结合也是必然的。从2013年开始,大数据和云计算开始“联姻”,二者的关系越来越密切,庞大的数据和云处理技术相互依赖,云处理技术为大数据提供了数据存储、数据交付、数据扩展的基本平台,也是目前增加、产生、存储、交付庞大数据的一种重要平台。

在这样的大背景下,数据泄露的不和谐事件不断涌现。根据相关研究机构的一份研究报告,未来几年,数据泄露事件的增长率可能会达到100%,要想遏制类似事件的发生,必须让数据在其源头就能够得到安全保障。未来,随着云数据模型的不断扩展,云数据被攻击的可能性会越来越大,因此,所有涉及互联网的企业和用户,无论身处何地,无论从事何种行业,也不论规模大小,都需要重新认真思考大数据环境下云数据的安全问题。

1 访问控制原理

访问控制,顾名思义,就是对访问主机数据的用户的合法身份进行判断,通过特定的方式准许或者限制用户对主机系统上的数据的访问能力和访问范围,从而控制关键数据被访问的情况,阻止了不合法用户的入侵或破坏行为的发生。相比较而言,今天,在大数据环境下云数据访问控制的宗旨是依据数据访问控制技术对用户的数据访问权限和范围进行维护和控制,防止非法入侵者对数据系统进行数据的窃取或清空。综上,访问控制的主要作用是:防止系统的数据资源被非法用户访问;允许系统的数据自愿被合法用户访问;防止系统的数据资源被合法的用户超范围访问。在今天大数据环境下的云数据访问控制技术依然要实现这三个主要的作用。

1.1 传统技术

传统计算模式下的访问控制技术发展时间长,技术相对完善,到目前为止,主要有三种形式:

(1)自主访问控制形式,这种访问控制形式是主体对客体进行管理,由数据管理的主体自己决定某一访问数据的客体是否可以具备这一访问权力,然后对客体的访问权限进行允许范围内的部分授权或全部授权,给予主体对客体访问数据的充分自主选择权;

(2)强制性访问控制,这种形式的数据访问控制一般遵循两大原则,即“不上读”和“不下写”。一般来说,应用访问控制方式的数据信息机密性比较强,这样进行强制性客体进入数据系统的防护措施技术能够避免低级别的客体进入到高级别数据系统中对高级别数据进行查看;

(3)角色访问控制形式,见图1,在这种访问控制形式中,用户的访问权限是和其角色息息相关的,管理员对数据系统的不同角色授予不同的访问权限,用户通过申请成为不同的角色从而享受不同角色所具有的访问权限。

传统的数据访问控制技术遵循上述三种办法对数据平台的信息进行访问权限的控制和防护,以维护用户的数据安全。

1.2 遇到的问题

传统的数据访问控制技术相对完善,基本可以达到保护数据资源不被非法访问的目的,可是随着计算机和网络技术的发展,如今云计算时代到来,大数据环境的形成,数据的计算模式和存储模式都发生了翻天覆地的变化,这些变化主要包括:在大数据环境下,数据资源量大,分布分散,数据资源不再受用户的控制;云数据存储在云端,也就是各个云平台上,由于商业环境和技术的原因,用户对大数据的云平台缺少足够的信任;云数据分散给各个云端,基于一个点或者几个点设定的安全域,可以被数据的迁移技术轻松攻破,导致数据的安全域改变;对数据的访问量急剧增大,多租户技术的发展,迫使对数据的访问主体开展新的自定义;在虚拟化技术的高速发展下,极易对在云处理技术下的大数据进行窃取。

如何有效地将数据访问控制技术应用到大数据环境下的云数据安全维护是如今云计算发展的重要项目。为了对这一课题进行重点探讨,本文着重从访问控制模型、ABE密码机制和多用户访问控制等方面对大数据环境下云数据的访问控制进行研究。

2 云数据的访问控制技术

本文设计提出的大数据环境下云数据访问控制体系框图,如图2所示。云数据访问体系包括三大主体:用户,云平台,网络基础设施。云数据平台以及用户使用访问控制模型对数据进行访问以及维护,云数据和基础设施之间采用访问控制规则,另外,在云数据中,虚拟设备之间的访问控制基于虚拟访问控制和基于密码学的访问控制。

2.1 访问控制模型

本文提出的大数据环境下云数据访问控制的模型是基于属性的访问控制模型,该模型可以很好地适用于目前复杂的大数据信息系统,将实体属性的概念贯穿运用在整体的数据访问控制流程中,访问控制模型的整个过程利用机制、分控制策略以及控制模型对大环境数据的数据访问客体、主体、大数据环境等进行建模,对数据访问的权限进行一定条件的限制和适当授权。提升了数据用户访问控制的灵活性。

利用集合对其原理进行描述则是,RBAC包含于ABAC,用集合的观点说,RBAC含在ABAC的集合内,ABAC的集合特征是可以对不同的类对象进行分别的授权,支持对用户的级别进行不同的访问控制和权限授权。可以说,RBAC是ABAC集合中一个用户属性。当今,基于大数据环境下的云数据访问控制模型就是将RBAC和ABAC两个集合结合于一体,为数据用户提供高隐私且又可以支持云数据的访问控制。

相对来说,大数据环境具备3种属性,分别为U-云数据的使用者、R-云数据、E-大数据环境,将云数据的属性通过访问控制模型进行访问控制,在此基础上开展访问控制系统的开发设计,该数据访问控制系统的关键模块是在ABAC的集合内新增RBAC子元素,借助分层的数据办法将两者融合:上层是标准的RBAC,验证和查询审核数据模型;下层则是数据安全的基础信息,以进行策略的生成;最后步骤则是利用属性策略执行系统内的RBAC集合的控制维护,这样一来,就可以十分容易地兼顾二者的优点。

2.2 ABE密码机制

在大数据环境下云数据的访问控制之所以要采用密码体制,是因为存储云数据的云处理平台存储大量的用户数据,云平台是否可信则直接影响用户数据是否足够隐私性和完整。所以,用户数据选择可靠且使用密码机制的数据存储技术,可以保证数据用户将隐私的数据上传到云端数据存储平台中,数据用户则采取密码机制对自己的数据进行加密式的控制和保护。本文提出设计的大数据环境下云数据的访问控制体系中,选择使用ABE(属性基加密)的密码机制。

ABE密码体制在大数据环境下的模型,如图3所示,它主要包括提供者、授信中心、数据用户以及云存储服务器等四个参与主体。ABE密码体制的主要流程分为四步:一是数据用户在授信中心设置是否公开数据或加密,系统把钥匙提供给数据提供者;二是数据供给者收到系统的公钥后,自行设置数据加密参数,完成数据正式上传到云端中;第三,当云端新用户进入系统且将自己数据上传到可授信中心时,公钥和数据一同生成,系统传给用户,用户则可以根据公钥密码对数据进行访问;第四是有公钥和密码的用户可自行到云服务器进行数据的访问请求,通过后,数据提供者上传到云端的数据则可供给有公钥的数据用户自行下载或浏览,反之数据访问失败。

2.3 多用户访问控制

在大数据环境下云数据的访问频次十分高,在同一时间、同一服务器出现多个租户同时访问数据资源的情况十分常见,但是在同一个云服务器的不同应用和计算资源是有限的,为了避免多个用户同时访问而导致访问控制失败情况的发生,这就涉及到大数据环境下云数据访问的多用户访问控制技术。故将访问控制技术回归至模型的研究,将多租户访问技术与RBAC模型相融合,使其衍生出新的访问控制模型,如此便可有效地加强租户对数据的访问控制。将多租户认证系统(MTAS)与RBAC模型相结合,最终成为管理多租户认证系统模型。首先,在多租户认证系统的基础上添加信任的条件,然后对多租户之间的信任进行形式化分析,最后可以对角色的用户进行不同角色的高层级访问或低层级访问权限的区分,也可以对租户进行访问权限的控制管理,方便对云服务器的数据进行隔离,维护了大数据环境下云端用户数据的隐私和完整性。

3 结语

在大数据和云计算迅速发展的大背景下,数据泄露的不和谐事件不断涌现,云数据被攻击的可能性会越来越大。传统的数据访问控制技术相对完善,基本可以达到保护数据资源不被非法访问的目的,可是随着计算机和网络技术的发展,云计算时代的到来,大数据环境的形成,数据的计算模式和存储模式都发生了翻天覆地的变化。怎样有效地将数据访问控制技术应用到大数据环境下的云数据安全维护是如今云计算的发展方向。本文着重从访问控制模型、ABE密码机制和多用户访问控制等方面对大数据环境下云数据的访问控制进行研究,研究成果值得借鉴。

摘要:传统的数据访问控制技术相对完善,基本可以达到保护数据资源不被非法访问的目的,可是随着计算机和网络技术的发展,云计算时代到来,数据的计算模式和存储模式都发生了翻天覆地的变化。有效地将数据访问控制技术应用到大数据环境下的云数据安全维护是如今云计算发展的重要项目。面对这个挑战,着重从访问控制模型、ABE密码机制和多用户访问控制等方面对大数据环境下云数据的访问控制进行研究。

关键词:大数据,云数据,访问控制,安全维护

参考文献

[1]王于丁,杨家海,徐聪,等.云计算访问控制技术研究综述[J].软件学报,2015(5):1129-1150.

[2]李凤华,苏芒,史国振,等.访问控制模型研究进展及发展趋势[J].电子学报,2012,40(4):805-813.

[3]王小威,赵一鸣.一种基于任务角色的云计算访问控制模型[J].计算机工程,2012,38(24):9-13.

[4]黄毅,李肯立.一种面向云计算的任务-角色访问控制模型[J].计算机应用研究,2013,30(12):3735-3737.

[5]初晓博,秦宇.一种基于可信计算的分布式使用控制系统[J].计算机学报,2010,33(1):93-102.

[6]林果园,贺珊,黄皓,等.基于行为的云计算访问控制安全模型[J].通信学报,2012,33(3):59-66.

[7]孙国梓,董宇,李云.基于CP-ABE算法的云存储数据访问控制[J].通信学报,2011,32(7):146-152.

[8]洪澄,张敏,冯登国.AB-ACCS:一种云存储密文访问控制方法[J].计算机研究与发展,2010(47):259-265.

[9]李晓峰,冯登国,陈朝武,等.基于属性的访问控制模型[J].通信学报,2008,29(4):90-98.

基于C/S的数据库访问技术 篇11

关键词:C/S;数据库访问技术

中图分类号:TP311.13 文献标识码:A文章编号:1007-9599 (2010) 09-0000-02

Database Access Technology Based on C/S

Deng Yanzhi

(Yangtze University,College of Technology&Engineering,Jingzhou434020,China)

Abstract:This paper introduces four kinds of c/s mode of database access technology,functions and features,and Visual Basic development tools,for example,introduced a C/S mode of database access methods and applications.

Keywords:C/S;Database Access Technology

一、前言

使用C/S模式是当今数据库开发的主流。C/S模式是从模块化程序设计的基础上发展起来的,它允许模块可以不在同一存储空间中运行。在这种体系结构中,调用模块就成为客户机的一个请求,而被调用的模块就成为服务器提供的服务。C/S系统特点主要有:

(一)客户程序和服务器各自运行于相应的硬件和软件平台上,它们各负其责,相互协同地为同一个应用服务。

(二)数据库的前台程序放在客户机上,后台数据库管理放在服务器上。

(三)前台程序用于管理整个系统的用户接口,检查用户输入数据有效性并向后台服务器发送请求。

(四)后台程序接受客户端的请求,执行数据库的查询和更新等操作,集中管理数据,并对客户端的请求及时地作出响应。

二、数据库访问技术

随着数据库产品和技术的发展,数据库访问技术也经过了一个不断发展完善的过程,主要的数据库访问技术有:

(一)ODBC

ODBC技术为访问不同的SQL 数据库提供了一个共同的接口。ODBC使用SQL作为访问数据的标准。这一接口提供了最大限度的互操作性:一个应用程序可以通过共同的一组代码访问不同的 SQL 数据库管理系统(DBMS)。开发人员可以添加数据库驱动程序,将应用程序与用户所选的 DBMS 联系起来。驱动程序管理器提供应用程序与数据库之间的中间链接。ODBC 接口包含一系列功能,由每个DBMS的驱动程序实现。当应用程序改变它的DBMS时,开发人员只使用新的DBMS驱动程序替代旧的驱动程序,并且应用程序可以无需修改代码照常运行。

(二)DAO & RDO

DAO Data Access Object是建立在 Microsoft Jet Microsoft Access的数据库引擎基础之上的。Jet是第一个连接到Access的面向对象的接口。使用Access的应用程序可以用DAO直接访问数据库。由于DAO是严格按照Access建模的,因此,使用DAO是连接Access数据库最快速、最有效的方法。DAO也可以连接到非Access数据库,例如,SQL Server和Oracle。DAO使用ODBC,但是由于DAO是专门设计用来与Jet引擎对话的,Jet将解释DAO和ODBC之间的调用。使用除Access之外的数据库时,这种额外的解释步骤导致较慢的连接速度。

RDO(Remote Data Object)提供一个抽象的层面,可以通过ODBC底层存取功能来灵活机动地存取数据库中的数据,同时还可以访问具有存储过程和复杂结果集的更多和更复杂的对象、属性和方法。它比较适合于C/S服务器方式。

(三)OLEDB

OLEDB建立于ODBC之上,并将此技术扩展为提供更高级数据访问接口的组件结构。此结构对企业中及Internet上的SQL、非SQL和非结构化数据源提供一致的访问。(实际上,在访问基于SQL的数据时,OLEDB仍使用ODBC,因为对于SQL它是最优结构。)OLEDB由三个组件构成:数据使用者(例如,一个应用程序);包含并公开数据的数据提供程序以及处理并传输数据的服务组件(例如,查询处理器、游标引擎)。OLE DB 是一个针对SQL数据源和非SQL数据源(例如,邮件和目录)进行操作的API。

(四)ADO

ADO采用基于DAO和RDO的对象,并提供比DAO和RDO更简单的对象模型,使程序员能够编写通过OLEDB提供者对在数据库服务器中的数据进行访问和操作的应用程序。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ADO支持用于建立基于客户端/服务器和Web的应用程序的主要功能。

三、VB数据库访问方法

下面以Visual Basic6.0程序为例介绍C/S模式程序中数据库访问的方法与技术。Visual Basic是一种用来开发客户机/服务器数据库应用程序的理想工具,随着版本的提高,其在数据库方面的功能越来越强,它既可以作为数据库开发平台,也可以作为数据库的前端。

Visual Basic提供了多种访问数据库信息的方法,包括:

(一)Microsoft可视化数据工具

“可视化数据库管理器”是Visual Basic6.0中一款界面友好的易于操作的数据库管理工具,是VB提供的用于访问和管理SQL SERVER和ORACLE系统的工具,通过它可以很方便地创建多种类型数据库并进行各种数据库的管理操作,具备查看、操作表、视图和存储过程等功能。

(二)数据环境设计器(DataEnvironment Designer)

数据环境设计器为创建应用程序时数据访问提供了一个交互的设计环境。在设计时,可以设置Connect和Command对象有属性值、编写代码响应ADO对象事件、执行Command对象、创建合计和层次结构,也可以将DataEnvironment对象直接拖动到窗体或报表中来创建数据绑定控件[1]。

(三)中间层部件MTS

微软为其Windows NT操作系统推出的一个中间件产品,其屏蔽了底层实现的复杂性,极大地简化了這类应用的开发,程序员可以将精力集中在业务逻辑上,因而有效地提高了软件的开发效率。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。

(四)数据库控件

VB提供了几种数据源控件来访问数据库,这些控件都是图形设计器,允许用户快速创建数据库连接和命令来访问数据库,主要有Data控件、ADO控件等。

(五)数据库访问对象

要在VB中访问数据库,需要通过数据访问对象进行,VB中主要有三种数据访问对象:

1.DAO(Data Access Object):数据访问对象。是VB最早使用的数据访问方式,它能用于两类不同的数据库环境:单一索引序列的数据库和C/S服务器型的ODBC数据库,比较适用于单系统应用程序或小范围的本地分布系统。其提供两种类型来支持数据库。

2.RDO(Remote Data Object):远程数据对象。提供一个抽象的层面,直接与ODBCDirect接口相连。

3.ADO(ActiveXData Object):ActiveX数据对象。是最新的一种数据访问对象,它扩展了DAO和RDO所使用的对象模型。它对数据源的访问是通过OLE DB实现的,它是一种面向对象、与语言无关的应用程序编程接口,很多程序都支持ADO。

四、结束语

数据库访问技术从最早的ODBC、DAO发展到ADO和ADO.net,究其原因旨在简化用户开发数据库软件的步骤,以达到提高数据库软件的开发效率以及数据库访问效率的目的。

参考文献:

[1]王志梅.Visual Basic数据库应用,科学出版社.2003,8

Web数据库访问技术的研究 篇12

关键词:web数据库,ASP,JSP

随着Internet规模和用户的不断增加,Internet上的各种应用进一步得到开拓。Internet成为资源共享、数据通讯和信息查询的重要手段。数据库技术经过几十年的发展也日益成熟起来,丰富的数据模型和强大的数据管理功能,支持各类新的应用要求。Internet用户对信息的实时性、交互式、动态访问的需求日益增长。解决这一问题的方法之一就是将Web技术与数据库技术相互渗透,相互结合。

1 Web数据库体系结构

Web数据库系统是建立在浏览器/服务器(B/S)模型之上的。该模式在TCP/IP的支持下,以HTT P为传输协议,客户端通过Browse r访问WE B服务器以及与之相连的后台数据库。WWW浏览器负责信息显示与向服务器发送HTTP请求。Web服务器介于W eb浏览器与数据库服务器之间,负责接收用户服务,并作出响应。服务器将数据传送至要被处理的脚本或应用程序,并在数据库中查询数据或将数据投递到数据库中。最后,服务器将返回结果插入到HTML页面,传送至客户端以响应用户。从而实现在Internet的环境下对数据库的访问操作。使得Internet中的信息更丰富、使用更简便。其体系结构如图1所示。

2 Web数据库访问技术

一般有三种方法:一种是基于Web的中间件技术,在这种结构下,有许多中间件方案可以选择,公共网关接口(CGI),Web应用程序编程接口(Web API),ASP,JSP,Java Servlet等。这种方法是采用Web服务器端提供中间件来连接Web服务器与数据库服务器,中间件完成对数据库的访问,结果再由Web服务器返回给客户端的浏览器。其工作流程如图2所示。

另一种是把应用程序下载到客户端并在客户端直接访问数据库,访问Web数据库的客户端方法主要包括:Java Applet,ActiveX,Plug-in等,其中最典型的就是Java Applet。其工作流程如图3所示。

第三种方式综合了以上两种方法,既在服务器端提供中间件,同时又将应用程序的一部分下载到客户端并在客户端通过Web服务器及中间件访问数据库。

以下将逐一介绍和分析Web环境下的数据库访问技术,并对其性能做比较。

2.1 基于Web的中间件技术

2.1.1 C G I的方法

CGI(Common Gateway Interface,通用网关接口)。CGI是Web服务器与外部应用程序之间的标准接口。CGI是最早的Web数据库连接技术,几乎所有的Web服务器都支持CGI。可以用任何语言编写CGI程序,如C、C++、Delphi、Java、VB、Perl等。CGI程序的主要作用在于扩展Web服务器的功能,实现Web服务器与数据库服务器的连接,充当Web服务器与数据库服务器之间的网关,通过Web发来的操作转化为对数据库的操作,然后将结果以Web浏览器可以识别的形式返回。完成和浏览器进行交互作用。

如一个CGI程序可从某数据库服务器中获取数据,转换成HTML文档后发送给浏览器,也可将由浏览器获得的数据存储到数据库服务器中。这样客户端用户就可以方便地和Web服务器进行交互,实现数据处理。

CGI的缺点:CGI的应用程序一般都是一个独立的可执行程序,与Web服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。每当有一个用户请求,就会激活一个CGI进程。当用户请求数量非常多时,大量的CGI程序就会大量挤占系统的资源,如内存、CPU时间等,造成CGI运行效率低下。CGI不提供状态管理功能,因而在Web服务器访问数据库过程中浏览器的每一次请求,都需要一个连接的建立与释放的过程,效率较低。极大的浪费服务器资源。另外CGI的功能有限、开发较为复杂,且不具备事务处理功能,这在一定程度上限制了它的应用。

2.1.2 基于服务器扩展的API

为了解决CGI的局限性,出现的另一种中间件解决方案是基于服务器扩展API的结构。专用服务器API方式中,最著名Microsof的ISAPI和Netscape公司NSAPI。服务器API方式以DLL(动态链接库)的形式存在,可以在被用户请求激活后长驻内存,等待用户的另一个请求,也可以在一个DLL里设置多个用户请求函数。此外,DLL应用程序与WWW服务器软件处于同一地址空间,每次调用时是在内存中运行相应的程序段,而不是像CGI那样需要启动新的进程,因此运行效率要高于CGI程序。是驻留在WWW服务器中的程序代码,其扩展WWW服务器的功能与CGI相同。

与CGI相比,API在性能上得到了很大提高,API应用程序与Web服务器结合得更加紧密,占用的系统资源也相对较少,而运行效率显著提高,但开发API程序比开发CGI程序要复杂得多。由于API与其相应的WWW服务器紧密结合的特性,这些API只能工作在专用Web服务器和操作系统上。

2.1.3 ASP(Active Server Pages)

ASP既不是一种语言,也不是一种开发工具,而是一种技术框架,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。

ASP属于ActiveX技术中的Server端技术。与在Client端的Script命令是由浏览器来解释执行实现动态网页的技术(如JavaApplet、VBScript、JavaScript等)不同,ASP中的命令和Script语句都是由服务器来解释执行的,执行结果产生动态生成的Web页面并送到浏览器。

当浏览器向WebServer请求调用ASP文件时,就启动了ASP。Web Server开始调用ASP,将被请求的.asp文件从头读到底,执行每一个命令,然后动态生成一个HTML页面并送到浏览器。通过ASP内置的对象、服务器组件(Server Component)可以完成非常复杂的任务,而且用户还可以自己开发或利用别人开发的服务器组件完成专门的任务。

由于ASP是在服务器端解释执行,可以不必考虑浏览器是否支持ASP;同时由于它在服务器端执行,开发者也不必担心别人下载程序从而窃取编程逻辑。

2.1.4 JSP(Java Server Page)

JSP是建立在Java体系上的,具有独立于平台,独立于服务器的特点。

Ja va是S un公司推出的一种面向对象的、分布式、移植性强、安全性高、稳定性好的程序设计语言,支持多线程控制,独立于平台的软件技术。

JDBC技术是Java Database Connectivity的缩写,它是JavaSoft公司设计的Java语言的数据库访问API。程序设计人员通过它可以方便的建立与数据库的连接,操纵数据库。

JS P综合了中间件和J av a的优点:前者的优点在于可以使程序访问异构的数据库,而不必对应用程序作出改动,后者的优点在于具有平台无关行,不需要为不同平台编写不同的应用程序。

JSP的工作方式为:客户端浏览器首先访问Web服务器,从Web服务器上下载Java小程序Applet的字节码文件,以及相关类和JDBC接口的字节码文件。然后和Web服务器脱离,Applet根据数据库服务器的地址、端口号、帐号和数据库服务器连接,进行交互操作。由于JSP技术有可操作性、可维护性、安全性、高效性等一系列优良特性,因此和其他中间件技术相比,有很大的优势。

2.1.5 Java Servlets

Jav a动态W eb技术的另一个重要分支是Java Servlets。Java Servlets是运行于Web服务器端的程序,能够象CGI脚本一样扩展Web服务器功能。它在初始化时装入Web服务器的存储空间,并成为服务器的一个组成部分。其工作过程是:当浏览器向服务器发出请求时,服务器将该请求传递给一个Servlet,该Servlet通过JDBC向数据库发出SQL请求并构造响应结果,然后通过服务器将结果传递回浏览器。

2.2 把应用程序下载到客户端在客户端直接访问数据库的方式

2.2.1 Java Applet

Java Applet,它的实现方式是通过Web浏览器把应用下载到客户端运行,在客户端直接访问数据库。其工作过程是:当Web浏览器从服务器上下载了包含有Java Applet的HTML页面时,如其中的JavaApplet调用了JDBC,则浏览器运行的Java Applet直接与指定的数据库建立连接,并向其提交SQL语句,Applet从数据库接受返回的结果并进行处理,将最后结果显示在浏览器上。

在客户机上运行Java Applet通过JDBC技术可以绕过Web服务器直接和数据库服务器连接,并直接把带有结果的HTML页返回客户机浏览器。

Ja va Ap ple t优点:体系结构中立,与平台和操作系统无关。动态运行,无须在用户端预先安装。当服务器端的Java Applet更新后,客户机端总是可以使用最新的版本。

2.2.2 Plug-in

Plug-in是由NetScape提出的标准,是一种接入浏览器程序的动态链接库(DLL),它采用了DLL方式,可以很好地解决与浏览器程序间的相互调用问题。

Plug-in作为网络能力的一种扩展,将大部分负荷加在浏览器程序上,这样就能正确地浏览很多数据类型,在浏览器端完成信息显示。特点是操作速度快,服务器和网络传输的负担轻。服务器仅需提供数据服务,网络只需将数据一次性传输。服务器的任务很少,网络传输的负担轻。

缺点:需要事先安装。用户如想使用,必须下载安装Plug-in程序。Plug-in与平台相关。不同的操作系统需要不同Plug-in。对于不同的Web浏览器,同样需要用相对应的Plug-in。如果用户准备使用多种数据类型,必须安装多个Plug-in程序。势必对管理带来压力。同时也占用占用客户端机器磁盘空间。更新困难。升级时,需要重新下载安装。

2.2.3 ActiveX

ActiveX是Microsoft为适应互联网而发展的标准。是为扩展Microsoft Web浏览器Internet Explore的功能而提供的公共框架。

ActiveX能被支持OLE标准的任何程序语言或应用系统所使用。IE浏览器可以作为容器,任何符合ActiveX标准的控件都可以嵌入到网页中,在浏览器中显示。

工作原理:Web浏览器发出请求;Web服务器接受到用户的请求,进行处理,并将用户所要的数据和ActiveX控件(第一次浏览时)传送给Web浏览器;ActiveX控件负责向Web服务器请求数据,并对数据进行处理,完成操作。

ActiveX控件安装的前提是必须经过用户的同意及确认。它具有Plug-in模式的所有优点。同时,ActiveX能被支持OLE标准的任何程序语言或应用系统使用,比Plug-in模式更灵活,使用更方便。

缺点:需要下载,占用客户端机器的磁盘空间。与平台相关,对不同的平台,必须提供不同的ActiveX控件。与浏览器相关ActiveX控件最初只适用于Microsoft Web浏览器。在其他浏览器使用时,须增加特殊的Pulg-in予以支持。存在信息安全隐患ActiveX具有访问客户端本地文件系统的能力,使得ActiveX可以具有强大的功能,但存在信息安全隐患。

3 结语

通过上面的介绍我们对不同的Web数据库技术实现方式和特点的了解。

则采用CGI方式服务器的负担重效率低,增加了网络传输的负担,但对各种平台兼容性好。

专用服务器API方式的优点是执行效率高,但其缺点就是与平台有关,一种专用服务器API程序只能在该种Web服务器上运行。

ASP由于是在服务器端解释执行,支持所有浏览器,编程逻辑不易被窃取。但是效率较低,且基本上只能运行于Microsoft的Windows系列平台之上,又限制了它的发展。

JSP与平台无关具有移植性强、安全性高、稳定性好、等众多优点。

Java Applet、Plug-in、ActiveX把应用程序下载到客户端并执行的方式,占用服务器的资源较少,服务器和网络传输的负担轻。但也有各自缺点,Plug-in与平台相关,移植性差。ActiveX控件体积过于庞大,用户浏览时进行下载速度较慢。支持ActiveX的平台还只限于Windows系列。

以上各种WEB数据库访问技术各有优缺点和适用领域。因此,在设计Web数据库应用方案时,应该根据实际环境要求选择合适的方法。

参考文献

[1]邵佩英.分布式数据库系统及其应用[M].北京:科学出版社,2009:283~295.

[2]葛平升.Web数据库技术应用研究与实现[D].西安:西北工业大学,2002:27~43.

[3]皇祯平,王万诚.对几种Web数据库访问技术的分析与研究[J].控制工程,2003,10(3):230~232.

[4]徐琨,刘志镜,来琳涵.Web数据库访问的中间件技术分析与研究[J].计算机工程与科学,2002,24(4):55~56.

[5]催政.三种常用Web数据库技术应用对比分析[J].中国科技信息,2005(17):9.

上一篇:舞蹈表演的审美下一篇:平台课程群