(计算机软件与理论专业论文)通用数据库管理工具.pdf_第1页
(计算机软件与理论专业论文)通用数据库管理工具.pdf_第2页
(计算机软件与理论专业论文)通用数据库管理工具.pdf_第3页
(计算机软件与理论专业论文)通用数据库管理工具.pdf_第4页
(计算机软件与理论专业论文)通用数据库管理工具.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

(计算机软件与理论专业论文)通用数据库管理工具.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 数据库在各行各业使用越来越广泛,随着信息化的不断深入,不同的商业数 据库也造成了数据库异构的问题。这给数据库管理员带来很多不方便,他们需要 熟悉多种数据库管理管理系统。开发一个通用数据库管理工具,屏蔽底层的异构 数据库,为数据库管理员提供一个统一的平台管理和使用不同数据库有一定的实 用价值意义。 本文针对数据库异构的问题开发了一种c s 架构的通用数据库管理工具,该 工具可以对数据库进行基本管理,对数据进行备份恢复和移植,提供了基本的权 限管理功能,此外还为用户提供报表输出功能。软件具有较强的数据访问能力, 在运行过程中能热切换服务器。 通用数据库管理工具中,最频繁的操作是数据访问,因此,开发通用数据库 管理工具的一个关键技术是设计一种通用数据访问组件,该组件能屏蔽底层的异 构数据库,提供统一的数据访问接口。本文结合设计模式对a d o n e t 进行扩展设 计,提出了一种通用数据访问组件模型和实现方法。该组件为程序员提供了更加 简洁实用的接口,程序员也不必关心后台数据库类型,只需修改软件的配置文件 就能实现软件移植到不同的数据库平台上。 通用数据库管理工具中,s q l 语句操作是人机交互过程中最重要的一环,能 快捷高效地管理数据库。本文深入研究微软的技术规范r i c ht e x tf o r m a t s p e c i f i c a t i o n ( v 1 7 1 ,设计了一种带有语法高亮显示和智能感知提示的富文本控件 框,用于实现s q l 语句操作窗口。能为用户高亮显示s q l 的保留关键字,能在用 户输入关键字时给予智能提示并自动完成输入,实现友好人机交互。 通用数据库管理工具不仅实现了对异构的数据库的使用和维护,而且为其开 发的通用数据访问组件和具有智能感知提示的文本控件具有良好的重用性。 关键词:通用数据库管理工具,通用数据访问技术,设计模式,a d o n e t 。 a b s t r a c t a b s t r a c t d a t a b a s ei su s e dm o r ea n dm o r ee x t e n s i v e l yi nt h ev a r i o u st r a d e sa n do c c u p a t i o n s a l o n gw i t he v o l u t i o no fi n f o r m a t i o n ,t h e s ed i f f e r e n tc o m m e r c i a ld a t a b a s e sh a v ea l s o c r e a t e dap r o b l e mo fi s o m e r o u sd a t a b a s e i ti sn o tc o n v e n i e n tf o rt h ed a t a b a s e a d m i n i s 仃a t o ra n du s e r , t h e yn e e dt ob ef a m i l i a rw i t hm a n yk i n d so fd a t a b a s e m a n a g e m e n ts y s t e mt om a n a g ea n du s ed a t a b a s ei nm a n yk i n d so fd a t a b a s e m a n a g e m e n tp l a t f o r m i ti sv e r yu s e f u lt od e v e l o pau n i v e r s a ld a t a b a s em a n a g e m e n t t o o lw h i c hm a s k st h ei s o m e r i s md a t as o u r c ea n dp r o v i d e sau n i v e r s a lm a n a g e m e n t p l a t f o r mf o rt h ed a t a b a s ea d m i n i s t r a t o ra n du s e r t h i sd i s s e r t a t i o nh a ss t u d i e dt h er e l a t i o n a ld a t a b a s em a n a g e m e n ts y s t e m b a s e do n t h ed e m a n do fau n i v e r s a ld a t a b a s em a n a g e m e n tt o o l ,t h i sd i s s e r t a t i o na p p l i s e s a d o n e tt oc o n s t r u c tau n i v e r s a ld a t a b a s em a n a g e m e n tt o o lb a s e do n n e t f r a m e w o r k t h et o o lc a nm a n a g ea n du s ei s o m e r o u sd a t aa n dc a nm i g r a t ed a t ab e t w e e n d a t a b a s e s d a t aa c c e s so ft h et o o l i sp o w e r f u l a n di tc a nh o ts w i t c hd a t a b a s es e r v e r a c c e s s i n gd a t a b a s ei st h em o s tf r e q u e n to p e r a t i o ni nt h ed a t a b a s em a n a g e m e n t s y s t e m t h e r e f o r e t h ek e yt e c h n o l o g yo fd e v e l o p i n gau n i v e r s a ld a t a b a s em a n a g e m e n t t o o li st od e s i g nau n i v e r s a ld a t aa c c e s sc o m p o n e n t t h i sc o m p o n e n tc a nm a s k i s o m e r i s md a t a b a s e a n dp r o v i d eau n i v e r s a li n t e r f a c eo fd a t aa c c e s s t h i sd i s s e r t a t i o n d e e p l ys t u d ym i c r o s o f t l su n i v e r s a ld a t aa c c e s st e c h n o l o g y , a n dp r o p o s eas o l u t i o no f u n i v e r s a ld a t aa c c e s sm o d e l ,a n di m p l e m e n tt h es o l u t i o nb ya p p l y i n gd e s i g np a t t e r n s i nt h ed a t a b a s em a n a g e m e n ts y s t e m i ti sv e r yi m p o r t a n tt oe d i ta n de x e c u t es o l s t a t e m e n t sf o ra d m i n i s t r a t o ra n du s e r s t u d i n gm i c r o s o f t st e c h n o l o g ys p e c i f i c a t i o n “砌c h1 x tf o r m a ts p e c i f i c a t i o n ( v1 7 ) ”,t h i sd i s s e r t a t i o nd e s i g n e dar i c ht e x tb o x c o n t r o l ,n o to n l yp r i n t i n gr e s e r v e dk e y w o r d sw i t hs y n t a xh i g h l i 曲tb u ta l s op r o m p t i n g t h ek e y w o r d sa v a i l a b l eb yt h ei n t e l l i s e n c e 靴l e nt h el a s e rt y p eal e t t e rw h i c hak e y w o r d s t a r tw i t h ,t h ec o n t r o lc a np r o v i d ek e y w o r d sa v a i l a b l ea n dc a nh e l pt h eu s e rt oc o m p l e t e t ot y p ea u t o m a t i c a l l yt h eb e s tk e y w o r dw h i c hi sp r o m p t e db yt h ei n t e l l i s e n c e t h eu n i v e r s a ld a t a b a s em a n a g e m e n tt o o lc a nm a n a g ea n du s ei s o m e r o u sd a t a s o u r c ew i t hu n i v e r s a li n t e r f a c e d u r i n gd e v e l o p i n gt h eu n i v e r s a ld a t a b a s em a n a g e m e n t t o o l ,as y n t a xh i g h l i g l l tr i c ht e x tc o n t r o lw i t hi n t e l l i s e n e ea n dau n i v e r s a ld a t aa c c e s s c o m p o n e n tw e r ed e s i g n e da n di m p l e m e n t e d b o t ho ft h e mc a l lb er e u s e di nt h e d e v e l o p m e n to fs o f t w a r eb a s e do n n e tf r a m e w o r k k e y w o r d : u n i v e r s a ld a t a b a s em a n a g e m e n tt o o l ,u n i v e r s a ld a t aa c c e s s , d e s i g np a t t e r n s ,a d o n e t 主要术语表 主要术语表 图索弓 图索引 图卜10 d b c 体系结构3 图卜2a d o o l ed b 体系结构5 图2 一l 通用数据库接口9 图2 2a d o n e t 体系结构1 4 图2 - 3a d o n e t 数据提供程序对象模型1 5 图2 7d a t a s e t 对象模型1 9 图4 - 1u d m t 功能模块图3 2 图4 2u d m t 逻辑层次图3 5 图4 3 网络物理结构图3 8 图4 4 子项目模型3 9 图5 1 数据提供序对象层次图一4 2 图5 2 数据访问组件类继承关系一4 3 图5 3 程序集产生具体工厂4 6 图5 4 程序配置文件4 6 图5 5 声明具体工厂类4 7 图5 - 6 资源管理器业务逻辑4 8 图5 7 修改连接字符串伪代码4 9 图5 8 资源管理器业务接口5 0 图5 - 9 切换数据库伪代码5 0 图5 1 0 资源管理器5 l 图5 一l l 智能感知算法流程图5 2 图5 1 2 语法高亮算法流程图5 3 图5 1 3 撤销恢复算法流程图5 4 图5 一1 4 智能感知文本控件类关系图5 6 图5 1 5 高亮类型枚举5 7 图5 1 6 高亮描述符识别模式5 7 i 蛩5 1 7 乡毫h i g h li g h t d e s c r i p t o r 。5 8 图5 1 8 类h i g h li g h t d e s c r i p t o r c 0 1 1 e c t i o n 5 8 图5 一l9 类s e p e r a t o r c o l l e c t i o n 5 8 图5 2 0 文本分析算法5 9 图5 - 2 1 切换数据库一6 l 图5 2 2s q l 操作子窗体图6 2 图6 - 1 登录s q l s e r v e r 服务器6 6 图6 r 1 2s q l s e r v e r 服务器6 6 图6 - 3 断开服务器6 7 图6 4 登录a c c e s s 数据库6 7 图6 - 5a c c e s s 数据库6 8 图6 - 6 数据库管理6 9 图6 - 7s q l 语句操作一7 0 图6 - 8 数据报表7 0 图6 9 权限管理7 l v i 表索弓 表索引 表2 - 1 n e tf r a m e w o r k 数据提供程序核心对象1 6 表2 - 2 n e tf r a m e w o r k 数据提供程序1 7 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:二堑龃日期:纱吮年歹月歹日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 第一章绪论 1 1 课题研究背景及意义 第一章绪论 数据库是指长期储存在计算机内的,有组织的、可共享的数据集合。数据库 为了保证存储在其中的数据的安全和一致,必须有一组软件来完成相应的管理任 务,这组软件就是数据库管理系统,简称d b m s 。d b m s 对数据库进行统一的管 理和控制,以保证数据库的安全性和完整性。用户通过d b m s 访问数据库中的数 据,数据库管理员和数据库用户也通过d b m s 进行数据库的维护工作。d b m s 提 供多种功能,可使多个应用程序和用户用不同的方法去建立,修改和询问数据库。 它使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用 户下的并发控制和恢复数据库。 自从有了数据库后,数据库系统在各行各业得到广泛的应用,由于历史上种 种原因,不同的部门采用了不同的商业数据库及d b m s 。随着部门的扩大和网络 的发展,要求不同的部门联网,进行信息交流共享,这种异构数据库平台的现象 越来越突出,不仅是给编程人员开发应用程序带来了很大的挑战,而且给数据库 管理员和数据库用户在管理和维护数据库时带来了不便利。维护异构数据库平台 需要数据库管理员和数据库用户熟悉多种数据库管理系统,而且数据管理员很难 直接在不同数据源之间进行数据迁移。因此开发出适用于不同的数据库产品的通 用数据管理工具具有广泛的实用意义。开发通用数据库管理工具存在众多的技术 难点,最主要集中在以下几个方面: 1 s q l 语言集。各种不同的数据库产品所选择的s q l 语言集都不尽相同, 虽然主流的关系数据库产品如o r a c l e 、s q ls e v e r 、s y b a s e 等都兼容了s q l 9 2 标 准,然而他们都按自己的特点对s q l 语言集进行了扩展。这就使得不同的数据库 产品间的s q l 用法在某些特定的地方并不兼容。 2 实现数据库的关键技术。不同的数据产品采用的技术不同,比如在物理数 据存储策略,数据库结构,事务处理,事务回滚机制,临时表策略等很多方面都 有着很大的差异。这给异构数据源之间的数据迁移工作带来很大的困难。 3 数据库特有的功能。即不同的数据库产品存在不能对称转换的功能。 本课题针对异构数据库不便于管理和维护的现状,提出开发通用数据库管理工 电子科技大学硕七学位论文 具( u n i v e r s a ld a t a b a s em a n a g e m e n tt o o l ,简称u d m t ) 。通用数据库管理工具用来 屏蔽底层的异构数据源,对异构数据库提供一致的管理界面,实现数据库管理系 统的一些基本功能。数据库管理员通过u d m t 对不同的关系数据库实现跨平台的 管理和维护。 实现u d m t 一个基本难点是对异构数据源的通用访问。在开发应用程序过程 中如何实现对异构数据源方便一致的访问,一直是数据库领域的研究热点。各软 件公司纷纷推出了通用数据访问技术,其中微软先后推出了多种通用数据访问 ( u n i v e r s a ld a t aa c c e s s ) 技术,使应用程序通过一致的接口来访问各种各样的数 据源。本文深入研究了微软通用数据库访问技术,利用n e t 框架的a d o n e t 技 术构建了更加简洁实用的通用数据库访问组件,实现通用数据管理工具u d m t 。 数据管理人员可以利用u d m t 提供的一致的图形界面来管理和维护不同的数据 库系统,这对于减轻数据库管理员和数据库用户的劳动复杂程度具有一定的实用 价值,并且在实现u d m t 过程中开发出来的通用数据访问组件,提供了更加简洁 实用数据库访问接口,程序开发者无须关注后台数据库类型,这对开发数据库应 用程序有广泛的实用价值。 1 2 国内外研究现状 目前主流的商业数据库有d b 2 ,s q ls e r v e r ,o r a c l e ,s y b a s e 等,这些数据库 产品都有自己的数据库管理系统d b m s ,它们都凭借自身的特色各自占有一定的 市场份额,没有形成某种数据库产品一统天下的格局。面对众多的数据库产品, 给软件开发员带来很大挑战,他们需要熟悉不同数据的应用软件编程接口a p i 。因 此一些数据库厂商和软件公司纷纷研究通用数据访问技术,为程序开发提供友好 的编程接口,如o d b c ,a d o ,o l ed b ,j d b c ,a d o n e t 等。 一开放式数据库连接( o d b c ) o d b c ( o p e nd a t a b a s ec o n n e c t i v i t y ) 是由微软公司提出的一个用于访问数 据库的统一接1 2 i 标准,它基于o p e ng r o u p 和i s o i e c 为数据库应用编程接口制 定的调用层接口规范( c l i ) ,并且用s q l 作为数据访问语言。o d b c 基本思想是 提供独立程序来提取数据信息,并具有向应用程序输入数据的方法。由于有许多 可行的通信方法、数据协议和d b m s 能力,所以o d b c 方案可以通过定义标准接 口来允许使用不同的技术,这种方案导致了数据库驱动程序的新概念动态链 2 第一章绪论 接库d l l 5 1 。应用程序可按请求启动动态链接库,通过特定通信方法访问特定数 掘源,同时o d b c 提供了标准接口,允许应用程序编写者和数据库提供程序在应 用程序和数据源之间交换数据。随着客户机n 务器体系结构在各业务领域广泛应 用,多种数据库之间的互连访问成为一个突出的问题,而o d b c 成为目前一个强 有力的解决方案。o d b c 之所以能够操作众多的数据库,是由于当前大部分数据 库全部或部分地遵从关系数据库概念,o d b c 是基于结构化查询语言s q l ,使用 s q l 可大大简化其应用程序设计接口a p i ,由于o d b c 思想上的先进性,而且没 有同类标准或产品与之竞争,因而受到众多厂家和用户的青睐。目前,o d b c 已 经成为客户机朋艮务器系统中的一个重要支持技术。为了保证标准性和开放性, o d b c 的结构分为四层:应用程序、驱动程序管理器、驱动程序、数据源。驱动 程序管理器与驱动程序对于应用程序来说都表现为一个单元,它处理o d b c 函数 调用,见图1 - 1 所示【5 】【9 1 图卜10 d b c 体系结构 1 应用程序( a p p l i c a t i o n ) 应用程序本身不直接与数据库打交道,主要通过 调用o d b c 函数提交s q l 请求获取结果并负责数据处理。 2 驱动程序管理器( d r i v e rm a n a g e r ) 驱动程序管理器是一个带有输入程序 的动态链接库( d l l ) ,主要目的是为应用程序加载和卸载驱动程序,处理o d b c 调 用的初始化调用,提供o d b c 调用的参数有效性和序列有效性。 3 驱动程序( d r i v e r ) 驱动程序主要是处理o d b c 函数调用,把s q l 请求 提交到指定的数据库获取结果。甚至会修改s q l 语句,使s q l 语句符合d b m s 电子科技大学硕十学位论文 所支持的语法。 4 数据源( d a t as o u r c e ) 包括用户想访问的数据以及与其相关的操作系统、 d b m s 和用于访问d b m s 的网络平台。o d b c 接口的优势之一为互操作性,程计 员可以在不指定特定数据源情况下创建o d b c 应用程序。从应用程序角度方面, 为了使每个驱动程序和数据源都支持相同的o d b c 函数调用和s q l 语句集, o d b c 接口定义了一致性级别,即o d b c a p i 一致性和o d b cs q l 语法一致性, 一致性级别通过建立标准功能集来帮助应用程序和驱动程序的开发者,应用程序 可以很容易地确定驱动程序是否提供了所需的功能,驱动程序可被开发以支持应 用程序选项,而不用考虑每个应用程序的特定请求。 二通用数据访问技术( o l ed b a d o ) 随着网络技术和数据库技术的不断发展,应用系统对数据集成的要求越来越 高,这些数据有可能分布在不同的地方,并且使用不同的格式,例如关系型数据 库、操作系统中的文件、电子表格、电子邮件、多媒体数据、目录服务信急等等。 传统的解决方案是使用大型的数据库系统,把所有这些数据都移到数据库系统中, 然后按照操作数据库的办法对这些数据进行访问,但这种访问方式带来了很多问 题,比如数据更新不及时、空间资源冗余、访问效率低等。m i c r o s o f t1 9 9 6 年推出 了通用数据访问技术u d a ,为关系型或非关系型数据访问提供了一致的访问 接口,它使应用可通过一致的接口来访问各种各样的数据,而不管数据存储在何 处,在实现分布式的同时也带来了高效率【6 】。u d a 技术在统一数据访问接口的同 时,它的多层结构使数据使用方有了更多的选择机会,而它强大的扩展能力也给 数据提供方留下了更多的扩展余地,这种开放型的软件结构使它具有极强的生命 力,u d a 技术是标准接口o d b c 之后的变革性的数据访问技术【7 1 。 通用数据访问包括两个层次的应用编程接口,分别为a d o ( a c t i v e xd a t a o b j e c t s ) 和o l ed b ( o b j e c tl i n k e de m b e d e dd a t a b a s e ) 。a d o 与o l ed b 实际上是 同思想在两个层次上的技术应用。a d o 是应用编程级的a p i ,o l ed b 是系统 级的a p i 。o l ed b 基于c o m 提供数据的低级连接,是面向调用的a p i 。而a d o 对o l ed b 进行了封装,提供一个对象模型,简化应用程序中用o l ed b 检索数 据的过程,是面向对象的a p i 。因此,应用程序既可以通过a d o 访问数据也可 以直接通过o l ed b 访问数据,而a d o 则通过o l ed b 访问底层数据。a d o 和 o l ed b 体系结构见图1 - 2 6 1 。 4 第一章绪论 二二:二i 芝二二= = 二:二二 图卜2a d o o l ed b 体系结构 尽管a d o 提供了较好的访问接口,但是a d o 对象只能定位在w i n d o w s 平台 上。a d o 的记录集很难在一个分布式、异构平台构成的环境中使用。 三j a v a 数据库连接( j d b c ) j d b c 是s u n 公司制定的j a v a 语言连接数据库的接口规范,j d b c 定义了一个 支持标准s q l 功能的通用低层的a p i ,它由j a v a 语言编写的类和接口组成,旨在 让各数据库开发商为j a v a 程序员提供标准的数据库a p i 。j d b ca p i 定义了若干 j a v a 中的类,表示数据库连接、s q l 指令、结果集、数据库元数据等。它允许j a v a 程序员发送s q l 指令并处理结果。通过驱动程序管理器,j d b c a p i 可利用不同的 驱动程序连接不同的数据库系统。 文献【1 1 中介绍了j a v a 应用程序通过j d b c 接1 3 访问数据库的4 种驱动模式: 1 j d b c o d b c 桥。它提供了经由一种或多种o d b c 驱动进行访问的j d b c 接口。这种情况下,客户端必须安装o d b c 驱动。s u n 的j d b c 0 d b c 桥驱动程 序的i a v a s q l d r i v e r 接1 2 1 实现封装在s u n j d b c o d b c j d b c o d b c d r i v e r 类中。 2 部分用j a v a 来编写的本地a p i 驱动程序。类似于j d b c o d b c 桥接器, 需要加载到客户机,却是一个部分用j a v a 实现的驱动接口。它将j d b c 调用转换 为对数据库o r a c l e ,s y b a s e ,d b 2 等客户端接口的调用。 3 j d b c 网络纯j a v a 驱动。这种驱动程序将j d b c 调用转换为与d b m s 无关 的中间网络协议,之后这种协议又被某个特定的数据库服务器转换为一种d b m s 协议。这种网络服务器中间件能够将它的纯j a v a 客户机连接到许多类型的数据库 电子科技大学硕十学位论文 上,所用的具体协议取决于提供者,因而是最灵活的j d b c 模式。 4 本地协议纯j a v a 驱动程序。这种类型的驱动程序将j d b c 调用直接转换为 d b m s 所使用的网络协议。这将允许从客户机上直接调用d b m s 服务器。由于许 多这样的协议都是专用的,因此数据库产品提供者本身将是这种驱动程序的主要 来源。 不同的应用需要不同模式的j d b c 接口,正确选择合适的模式,使之符合于 数据库程序的设计,是提高访问速度必须考虑的一个方面。 模式1 的优点是因为多数r d b m s 平台都支持o d b c 驱动程序,所以使用 j d b c o d b c 桥能与大量o d b c 驱动程序协同工作;缺点是用户受底层o d b c 驱动 程序的功能限制。由于模式l 需要首先把j d b c 操作翻译成对应的o d b c 调用, 然后这些调用又被传递给o d b c 驱动程序,最后才执行数据库的相关操作,所以 它的性能要降低。 模式2 的优点是不需要转换成o d b c 调用。它利用多层结构,上层用j a v a 实 现,利于跨平台应用和支持多数据库,但底层却改为本地代码,加速执行速度。 这种开放和高性能的特征得到了肯定,因而被主要的数据库厂商强烈推荐。尽管 它需要用户下载本地代码库到客户机,但它提高了访问数据库的速度。 模式3 的优势在于对多种数据库的支持,体现了其灵活性。它广泛适用于 i n t e r n e t i n t r a n e t 的开发,安全性和性能都十分显著:缺点是进行数据库操作时,需 要花费较长的时间。在大型的企业级的软件应用中,后台数据库往往不是一个, 而且是由不同的厂商支持的。不过,模式3 的j d b c 驱动往往提供许多企业级的 特征,因而会对用户特殊的用途有很大的帮助。对该模式的选用,在于用户对扩 展应用是否有需求以及对多d b m s 的支持。 模式4 的优势在于和数据库本身结合比较紧密,而且是纯j a v a 的实现,所以 性能很高,在企业级的软件应用中,应该是首选。一般说来,d b m s 的提供商往 往会为数据库提供一个j d b c 接口。 这些通用数据访问技术专注于为程序员提供编程接口,程序员根据不同的数 据库调用相关的数据访问类来开发应用程序。对于整合数据库管理系统使其成为 通用数据库平台的目前业界工作做的较少,一方面是不同数据库有不同的s q l 语 言集,在实现数据库的核心技术上不相同,整合平台难以发挥不同数据库自身的 特色;另一方面出于商业竞争,数据库厂商往往更加关注完善自身产品。 本课题研究已有的通用数据访问技术,利用不同数据库管理系统都兼容的 s q l 9 2 作为查询语言,以微软最新的通用数据访问引擎a d o n e t 为技术基础, 6 第一章绪论 设计并实现了一种c s 架构的通用数据管理工具软件。该软件在客户端屏蔽了底 层数据库异构性提供了一个通用数据库管理工具,克服了商业数据库管理系统的 专用性,在数据库管理的基本功能上实现了通用性,而且软件能在运行过程中实 现热切换数据库服务器,即不需重启软件就能切换到不同的服务器。该软件还吸 取了现代软件开发工具的智能感知的优点,为用户的s q l 操作提供智能感知并自 动完成输入的功能,减轻了对关键字和命令的记忆,较商业数据库更加体现的以 人为本的软件开发理念。在开发通用数据库管理工具的过程中,本文研究分析了 已有的通用数据访问技术,以a d o n e t 为基础作扩展性的设计,实现了一种通用 数据访问组件,该组件较已有的通用数据访问技术更简洁实用,能透明访问后台 数据库库,程序员无需关注后台数据库类型。此外,本文开发的通用数据库管理 工具在商业数据库管理系统的基础上增添了一些实用功能如报表的制作和打印等 功能。 1 3 课题简介 本课题是四川省科技厅基金项目,要求以跨平台通用性为基础,吸收传统数据 库管理软件的优点,实现在统一平台下对异构的关系型数据库进行基本的管理。 具体要求如下: 1 安全管理。能对主流的关系数据库如s q ls e r v e r , o r a g l e ,a c c e s s 等访问连 接,并对管理员提供基本权限管理,能对数库、表进行权限控制。 2 数据库管理。包括新建、删除、修改数据库及数据库对象。 3 提供s q l 语句操作。提供带智能感知提示框具有语法高亮的功能的s q l 语句操作窗口。 4 数据备份及恢复。具有对数据库进行数据备份及数据恢复的功能恢复。 5 数据迁移。能实现数据导入导出,跨数据库平台的数据迁移。 6 报表制作。能提供报表的制作打印。 1 4 论文内容及组织结构 本文主要研究了以下内容: 1 关系数据库的数据库管理系统d b m s 、关系数据库的标准查询s q l 及通 用数据访问技术。 7 电子科技大学硕十学位论文 2 微软最新的通用数据访问引擎a d o n e t 。 3 通用数据库管理工具u d m t 的总体设计。 4 通用数据库管理工具u d m t 关键技术的设计和实现。 在论文的组织结构上,全文分为7 章,简述如下: 第1 章绪论。本章介绍了课题背景、研究的目的和意义及本文的研究内容和 组织结构。 第2 章通用数据访问引擎a d o 。n e t 。本章分析了微软通用数据访问引擎 a d o n e t ,为实现u d m t 的关键技术通用数据访问组件做好技术分析。 第3 章需求分析。本章重点分析了u d m t 的功能上的需求,技术上的可行 性。 第4 章u d m t 系统总体设计。本章对u d m t 作了总体设计和规划,把具体 u d m t 功能需求规划成不同的功能模块,设计了u d m t 的体系架构,按功能划分 不同的逻辑层。 第5 章u d m t 系统关键技术的设计与实现。本章介绍了实现u d m t 的一些 关键技术,设计和实现了通用数据访问模型,智能感知文本编辑控件,s q l 语句 编辑操作窗口。 第6 章运行使用。本章介绍了u d m t 运行环境及一些功能的使用。 第7 章结论与展望。总结了本课题的研究成果,分析了研究工作中的不足, 展望了进一步的研究内容和方向。 第二章通用数据访问技术 第二章通用数据访问技术 各数据库厂商生产的数据库系统都有一套自己的数据库管理系统d b m s 及相 应的编程应用程序接口( a p i ,a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) 。由于种种原因不 同的部门采用了不同的数据库系统,随着计算机使用日益普及,不同的数据库系 统间需要互连进行信息交流的问题也随之而来,这就要求应用程序能访问不同的 d b m s 。为了得到一个统一的数据库编程接口,数据库厂商和软件公司进行了很多 努力,为此产生了通用数据库访问技术,它通过提供客户端访问接1 2 ,使得应用 程序能够访问任何具有不同d b m s 的数据库中的数据。当前供应商提供的数据库 访问接口分为专用和通用两种。专用数据库访问接口局限性较大,没有统一的调 用界面;而通用接口提供了统一接口,可以和不同类型、异构的数据库系统进行 通信,利用这种接口编写的客户代码,可以实现对多种不同类型的数据库的复杂 操作,因而得到广泛的应用。其基本原理及体系结构见图2 1 。 j 一三 亘匦巨 一巨 2 1a d o n e t 概述 图2 1 通用数据库接口 n e t 框架是微软公司推出的一个基于x m l 技术的开发分布式应用的平台。 在n e t 框架中,a d o n e t 是a s r n e t 和w i n d o w sf o r m s 应用访i g 各种数据( 如 r d b m sx m l 文档) 的标准服务,可以使用a d o n e t 访问那些使用。n e t 数据提 供程序的各种不同类型的数据源。 a d o n e t 支持不同的开发需求,例如前端数据库客户和由应用程序、工具、 语言或i n t e r n e t 浏览器使用的中间业务对象等。a d o n e t 提供对m i c r o s o f ts q l 9 电子科技大学硕十学位论文 s e r v e r 等数据源以及支持o l ed b 和x m l 的数据源的一致访问。数据共享使用者 应用程序可以使用a d o n e t 来连接到这些数据源,并检索、操作和更新数据。 a d o n e t 有效地从数据操作中将数据访问分解为多个可以单独使用或一前一 后使用的不连续组件。a d o n e t 包含用于连接到数据库、执行命令和检索结果 的n e t f r a m e w o r k 数据提供程序。可以直接处理检索到的结果,或将其放入 a d o n e t 的d a t a s e t 对象,以便与来自多个源的数据或在层之间进行远程处理的 数据组合在一起,以特殊方式向用户公开。a d o n e t 的d a t a s e t 对象也可以独立 于n e tf r a m e w o r k 数据提供程序使用,以管理应用程序本地的数据或源自x m l 的数据。 a d o n e t 是为松散的、高度分布式的应用程序而设计的,这类应用程序一般 使用h t t p 在逻辑应用程序连接中通信。这样,x m l 就成为在该连接中交流数据 的最佳选择,因为基于文本的x m l 格式非常适合于h t t p ,而二进制数据格式则 不适合。当所有的连接都在同一个网络中时,二进制格式从性能上看是首选的, 而x m l 通信提供了更大的灵活性。a d o n e t 有如下特点: 1 a d o n e t 非连接模式 打开的数据库连接占用宝贵的系统资源。在大多数情况下,数据库只可以维持 少量的并发连接。维持这些连接的系统开销将降低应用程序的总体性能。 在w e b 应用程序中,组件彼此之间本来就是不连接的。浏览器从服务器请求 一页,在服务器完成处理并发送该页后,服务器即不再与浏览器有任何连接,直 到下一次请求为止。在这些情况下,维持打开的数据库连接是不可行的,因为没 有办法知道客户端是否需要进一步的数据访问。 基于始终连接数据的模型可能使得使用连接结构在应用程序和组织边界之间 交换数据变得困难且不实际。如果两个组件需要共享相同的数据,则二者均必须 连接,或者必须为这两个组件设计一种方式以相互传递数据。 出于所有这些原因,使用a d o n e t 进行数据访问是以有节制使用连接的结构 为中心进行设计的。应用程序连接到数据库的时间仅足够获取或更新数据。因为 数据库并未被大部分时间空闲的连接占用,所以它可以为更多用户提供服务。 使用数据命令执行数据库交互,若要在数据库中执行操作,应执行s q l 语句 或存储过程。使用s q l 语句或存储过程读写行并执行聚合函数,例如添加或求平 均值,还使用s q l 语句或存储过程创建或修改表或列、执行事务等。 在a d o n e t 中,使用数据命令打包s q l 语句或存储过程。例如,如果想要 1 0 第二章通刚数据访问技术 从数据库读取一组行,则创建个数据命令并用s q ls e l e c t 语句的文本或获取记 录的存储过程的名称配置它。若要获取这些行,需执行以下操作: 打开一个连接; 调用命令的执行方法; 执行该命令引用的s q l 语句或存储过程; 然后关闭连接。连接保持打开的时间仅足够执行语句或存储过程; 在调用命令的执行方法后,它将返回一个值。更新数据库的命令返回所影响的 行数;其他类型的命令返回一个错误代码。 如果需要执行多个操作( 例如,读取一些行,然后更新它们) ,则可以使用多个 数据命令,每个操作一个命令,每一操作分别执行。例如,要读取多行,应打开 连接,读取这些行,然后关闭该连接。如果需要更新数据,再次打开连接,执行 更新,然后再次关闭该连接。 2 数据集缓存数据 最常见数据任务是从数据库检索数据并对数据进行某些操作,如显示数据、处 理数据或将数据发送给另一个组件。在许多情况下,每次应用程序需要处理下一 条记录时都返回到数据库是不切实际的。因此解决方案就是临时存储从数据库检 索的记录,然后使用该临时集。这便是数据集的概念。数据集是从数据源检索的 记录的缓存。它的工作方式如同虚拟的数据存储区:数据集包含一个或多个表, 并且它可以包含有关这些表之间的关系和对表可包含数据的约束的信息。 数据集内的数据通常是数据库中内容的非常精简的版本,可以用与操作实际数 据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论