




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目目 录录 1 引言 1 1 1 课题背景 1 1 2 国内外研究现状 1 1 2 1 数据转换服务 1 1 2 2 数据转换工具及软件 1 1 3 本课题研究的意义 2 1 4 本课题的研究方法 3 1 5 数据库的选择 3 1 6 关键技术 4 1 6 1 异构数据库 4 1 6 2 WebService 6 2 需求分析 8 2 1 功能需求 8 2 2 性能需求 9 2 2 1 时间特性 9 2 2 2 适应性 10 2 2 3 独立性 10 2 3 运行需求 10 2 3 1 用户界面 10 2 3 2 硬件接口 10 2 3 3 软件接口 10 3 系统设计 11 3 1 设计方案 11 3 2 数据源的采集设计 13 3 3 数据处理设计 13 3 4 XML 数据文件设计 15 3 5 数据导出设计 17 4 系统实现 18 4 1 开发环境 18 4 2 部分编码详解 18 5 测试 27 5 1 测试方法 27 5 2 测试结果 27 6 结论 28 7 参考文献 30 8 致谢 31 基于 Web Services 的异构数据库的检索系统 1 1 1 引言引言 1 11 1 课题背景课题背景 随着 Internet 的飞速发展 网络迅速成为一种重要的信息传播和交换的手段 数据资源的共享成为一个热门话题 如何获取网络上自治 异构 分布的数据并加 以综合利用 即数据集成 1 成为一个引起广泛关注的研究领域 数据集成的概念是把不同来源 格式 特点性质的数据在逻辑上或物理上有机 地集中 实现分布的 异构的 自治的数据共享的主要技术 数据集成一般还应满 足用户数据访问的实时性和安全性等方面的要求 数据集成的核心任务是要将互相关联的分布式异构数据源集成到一起 使用户 能够以透明的方式访问这些数据源 而不用关心数据源的存储位置和存储方式 数据集成的数据源 包括结构化的数据 如关系数据库 半结构化数据 如 XML 文档 已经存在的文件系统等 2 1 21 2 国内外研究现状国内外研究现状 目前 数据库的数据转换方法很多 例如微软公司的 SQL Server 数据库 就有 导入和导出数据的服务 它可以启动数据转换服务 Data Transform Service 简 称 DTS 来完成各类异构数据库的转换 同时国内也存在一些数据转换工具和软 件 比如 Beeload 等 1 2 11 2 1 数据转换服务数据转换服务 数据可能以各种格式保存并分布在不同的位置 3 数据转换服务 DTS 通过提 供一组工具 可以将来自完全不同的源的数据析取 转换和合并到 DTS 所支持的单 个或多个目标数据库以满足需求 通过 DTS 工具图形化地生成 DTS 包或使用 DTS 对 象模型编制包 可创建适合自己需要的自定义数据移动解决方案 此服务以向导的 形式引导使用者实现 DTS 的功能 如数据和对象的导入 导出 验证以及在异类 OLEDB 和 ODBC 数据源之间的转换 1 2 21 2 2 数据转换工具及软件数据转换工具及软件 Beeload 是第一款国产 ETL Extract Transform Load 工具 它不仅支持 Oracle MS SQL Sybase 等主流数据库的数据抽取及装载 而且还支持文本文件的 抽取备份 此外 Beeload 内置了大量的 API 函数 提供强大的数据转换功能 通 西南石油大学本科毕业设计 论文 2 过直观的图形操作界面 使用户通过简单的拖拽动作即可实现 ETL 规则的定义 使 得元数据管理变得相当容易 同时 Beeload 也是一种数据整合软件 可对企业经营过程中所产生的各类业务 数据进行抽取 转换和汇总 为数据仓库提供高质量的数据 它还集成了元数据管 理 工作流管理及作业调度等功能 除提供直观的图形化操作方式外 还提供强大 的脚本解释功能 既适合一般用户 又可充分满足高级用户需要的产品 Beeload 数据转换流程图如图 1 1 所示 可用数据源 Oracle MySQL MS SQL DB2 Access FoxPro FlatFile InterBase Beeload 数据仓库 定时采集 定时刷新 定时抽取 操作型系统 图图1 1 1 1 Beeload 数数据据转转换换流流程程图图 1 31 3 本课题研究的意义本课题研究的意义 在 Internet 这样一个动态环境中 各种数据库不断的加入或去除 数据库中的 数据也在不断变化 而现在的绝大多数应用是建立在这些分离的数据库基础之上 因而 为了实现信息资源的共享和交流 不同数据库间相互操作和协作不可避免 这样随着时间的推移和技术的进步 这些由不同核心技术构建的信息系统就像一个 个 信息孤岛 各自有着不同的处理对象 操作方法和专用客户端 在各个环节之 间存在着数据交流和部门协同的问题 这些情况都表明 在现代信息化进程中 不同 数据库联合使用的要求是非常迫切并会长期存在下去的 并且往往还伴随着一个复 杂的分布异构环境 这种分布异构性表现为 场地分布 由 LAN 或 WAN 支撑 存在多 种网络协议 数据分布 各种形式的数据分散在各节点 以各种形式存在 硬件平台 多样化 从台式机 工作站到大型主机等 操作系统多样化 如 Windows Netware 各种 UNIX 以及 VMS 等 应用平台多样化 包括来自不同开发组织的各种应用软件 基于 Web Services 的异构数据库的检索系统 3 中间件和开发工具 然而 要求用户面对所有这些复杂的分布异构特性 并指望他 学会操作每一种数据库是不现实的 在使用中也不方便 对于用户而言 希望屏蔽 掉各种层次的异构特性 他们不必知道各个物理数据库系统的分布 不必知道各个 物理数据库的机构组成和操作方法 不必自己去进行数据转换和结果汇总 只需通 过简单的全局访问就可以得到结果 这正是异构数据库集成技术的主要研究内容 也是其意义所在 1 41 4 本课题的研究方法本课题的研究方法 本系统的主要功能是实现跨平台的异构数据库系统之间的数据转换 所以结合 当前所具备条件提出以下研究方法 1 通过数据库接口软件与不同的数据库直接连接 如 ODBC 和 JDBC 等 在同时 检索的数据库数量较少时 使用此技术可在一定程度上解决异构检索问题 但数据 库达到一定数量时 处理速度很难保证 这种方式仅适用于对属于本单位的少量异 构数据库进行统一检索 2 不同数据库间的格式转换 4 主要是利用数据库产品本身提供访问异构数据 库的功能 以实现在异构环境下建立具有较高性能的分布式数据系统 现在一些图 书馆制作的学科导航系统就此利用此方法设计的 其利用一些程序将各种异构数据 库的部分数据导入一个数据库系统中 以方便读者访问 但是收录的数据库数量不 能太多 此外还涉及版权问题 3 运用元搜索引擎的基本原理 利用数据库的 Web 客户端 进行统一检索 元搜 索引擎主要运用在网页信息的搜索方面 但现有各种电子资源数据库都提供相应的 客户端接口 因此可利用元搜索引擎的原理对各个异构数据库进行统一检索 这种 方法的缺点在于需要对各个数据库的 Web 处理接口进行详尽分析 各个数据库的 Web 处理接口如发生改变则需重新设计 接口的稳定性较差 1 51 5 数据库的选择数据库的选择 数据库有许多种 桌面的数据库 Access 以及大型的关系型数据库 SQL Server Oracle 等 1 Access 数据库 Access 数据库虽然使用比较简单灵活 但功能并不强大 一些数据库的维护功 能不强 另外 Access 是文件形式的 安全性极低 西南石油大学本科毕业设计 论文 4 2 Oracle 数据库 Oracle 数据库是比较大型的数据库 适合在大项目中使用 特点如下 1 支持大数据量 多用户的高性能的事务处理 Oracle 支持的最大数据量可以达到几百千兆 并可充分利用硬件设备资源 支 持多用户同时在同一数据上执行各种数据应用 并保证数据一致性 系统维护具有 高的性能 Oracle 可持续工作 正常的系统操作 后备或个别计算机系统故障 不 会中断数据库的使用 可控制数据库数据的可用性 可在数据库级或在子数据库级 上控制 2 支持分布式数据库和分布处理 Oracle 为了充分利用计算机系统和网络 允许将处理分为数据库服务器和客户 应用程序 所有共享的数据管理由数据库管理系统的计算机处理 而运行数据库应 用的工作站集中于解释和显示数据 通过网络连接的计算机环境 Oracle 将存放在 多台计算机上的数据组合成一个逻辑数据库 可被全部网络用户存取 分布式系统 像集中式数据库一样具有透明性和数据一致性 3 具有可移植性 可兼容性和可连接性 由于 Oracle 软件可在许多不同的操作系统上运行 以致 Oracle 上所开发的应 用可移植到任何操作系统 只需很少修改或不需修改 Oracle 软件同工业标准相兼 容 包括许多工业标准的操作系统 所开发应用系统可在任何操作系统上运行 可 连接性是指 Oracle 允许不同类型的计算机和操作系统通过网络可共享信息 3 SQL Server 数据库 SQL Server 是基于服务器端的中型的数据库 可以适合大容量数据的应用 在 功能管理上也比较强大 在处理海量数据的效率 后台开发的灵活性 可扩展性等 方面强大 因为现在数据库都使用标准的 SQL 语言对数据库进行管理 所以如果是 标准 SQL 语言 两者基本上都可以通用的 SQL Server 还有更多的扩展 可以用存 储过程 数据库大小无极限限制 由上可知 SQL Server 和 Oracle 这两个数据库比较适合作为数据检索系统的数 据库 1 61 6 关键技术关键技术 1 6 11 6 1 异构数据库异构数据库 异构数据库系统是相关的多个数据库系统的集合 5 可以实现数据的共享和透 基于 Web Services 的异构数据库的检索系统 5 明访问 每个数据库系统在加入异构数据库系统之前本身就已经存在 拥有自己的 DBMS Database Management System 异构数据库的各个组成部分具有自身的自治 性 实现数据共享的同时 每个数据库系统仍保有自己的应用特性 完整性控制和 安全性控制 异构数据库系统的异构性主要体现在以下几个方面 1 计算机体系结构的异构 各个参与的数据库可以分别运行在大型机 小型机 工作站 PC 或嵌入式系统 中 2 基础操作系统的异构 各个数据库系统的基础操作系统可以是 Unix Windows NT Linux 等 3 DBMS 本身的异构 可以是同为关系型数据库系统的 Oracle SQL Server 等 也可以是不同数据 模型的数据库 如关系 模式 层次 网络 面向对象 函数型数据库共同组成一 个异构数据库系统 异构数据库系统的目标在于实现不同数据库之间的数据信息资源 硬件设备资 源和人力资源的合并和共享 其中关键的一点就是以局部数据库模式为基础 建立 全局的数据模式或全局外视图 这种全局模式对于建立高级的决策支持系统尤为重 要 大型机构在许多地点都有分支机构 每个子机构的数据库中都有着自己的信息 数据 而决策制订人员一般只关心宏观的 为全局模式所描述的信息 建立在数据 仓库技术基础上的异构数据库全局模式的描述是一种好的解决方案 数据仓库可以 从异构数据库系统中的多个数据库中收集信息 并建立统一的全局模式 同时收集 的数据还支持对历史数据的访问 用户通过数据仓库提供的统一的数据接口进行决 策支持的查询 对于异构数据库系统 实现数据共享应当达到两点 一是实现数据转换 二是 实现数据的透明访问 在转换的过程中 有时要想实现严格的等价转换是比较困难的 首先要确定两 种模型中所存在的各种语法和语义上的冲突 这些冲突可能包括 1 命名冲突 即源模型中的标识符可能是目的模型中的保留字 这时就需要 重新命名 2 结构冲突 如果两种数据库系统之间的数据定义模型不同 如分别为关系 模型和层次模型 那么需要重新定义实体属性和联系 以防止属性或联系 西南石油大学本科毕业设计 论文 6 信息的丢失 总之 在进行数据转换后 一方面源数据库模式中所有需要共享的信息都转换 到目的数据库中 另一方面这种转换又不能包含冗余的关联信息 数据库转换工具可以实现不同数据库系统之间的数据模型转换 需要进一步研 究的问题是 如果数据库转换同时进行数据定义模式转换和数据转换 就可能引起 同一数据集合在异构数据库系统中存在多个副本 因此需要引入新的访问控制机制 在保证各个参与数据库自治 维护其完整性 安全性的基础上 对于异构数据库系 统提供全局的访问控制 并发机制和安全控制 数据的透明访问 在异构数据系统中实现了数据的透明访问 用户就可以将异 构分布式数据库系统看成普通的分布式数据库系统 用自己熟悉的数据处理语言去 访问数据库 如同访问一个数据库系统一样 但目前还没有一种广泛使用的数据定 义模型和数据查询语言 实现数据的透明访问可以采用多对一转换 双向的中间件 等技术 开放式数据库互连 Open DataBase Connectivity 简称 ODBC 是一种用 来在相关或不相关的数据库管理系统中存取数据的标准应用程序接口 API ODBC 为应用程序提供了一套高层调用接口规范和基于动态链接库的运行支持环境 目前 常用的数据库应用开发的前端工具如 Power Builder Delphi 等都通过开放数据库 互联 ODBC 接口来连接各种数据库系统 而多数数据库管理系统 如 Oracle Sybase SQL Server 等 都提供了相应的 ODBC 驱动程序 使数据库系统 具有很好的开放性 ODBC 接口的最大优点是其互操作能力 理想情况下 每个驱动 程序和数据源应支持完全相同的 ODBC 函数调用和 SQL 语句 使得 ODBC 应用程序可 以操作所有的数据库系统 1 6 21 6 2 WebServiceWebService Web Service Web 服务 6 是构建应用程序的普遍模型 可以在任何支持网络 通信的操作系统中实施运行 它是一种新的 Web 应用程序分支 是自包含 自描述 模块化的应用 可以发布 定位 通过 Web 调用 Web Service 是一个应用组件 它逻辑性的为其他应用程序提供数据与服务 各应用程序通过网络协议和规定的 一些标准数据格式 Http XML Soap 来访问 Web Service 通过 Web Service 内部执行得到所需结果 Web Service 可以执行从简单的请求到复杂商务处理的任 何功能 一旦部署以后 其他 Web Service 应用程序可以发现并调用它部署的服务 Web Service 是一种应用程序 它可以使用标准的互联网协议 像超文本传输 基于 Web Services 的异构数据库的检索系统 7 协议 HTTP 和 XML 将功能纲领性地体现在互联网和企业内部网上 可将 Web 服务 视作 Web 上的组件编程 Web Service 的一个主要思想 就是未来的应用将由一组应用了网络的服务组 合而成 只要两个等同的服务使用统一标准和中性的方法在网络上宣传自己 那么 从理论上说 一个应用程序就可以根据价格或者性能的标准 从两个彼此竞争的服 务之中选出一个 除此之外 一些服务允许在机器之间复制 因而可以通过把有用 的服务复制到本地储存库 来提高允许运行在特定的计算机 群 上的应用程序的性 能 8 Web Service 系统包括以下相关技术规范 SOAP 即简单对象访问协议 Simple Object Access Protocol 它是用于交 换 XML 编码信息的轻量级协议 5 它有三个主要方面 XML envelope 为描述信息内 容和如何处理内容定义了框架 将程序对象编码成为 XML 对象的规则 执行远程过程 调用 RPC 的约定 SOAP 可以运行在任何其它传输协议上 例如 用户可以使用 SMTP 即电子邮件协议来传递 SOAP 消息 在传输层之间的头是不同的 但 XML 有效 负载保持相同 WSDL 是用来描述网络 network 服务或终端 endpoint 的一种 XML 语言 它用 于定义 Web Services 以及如何调用它们 描述 Web 服务的属性 例如它做什么 它位于哪里和怎样调用它 WSDL 文档可用于动态发布 WebService 查找已发布 的 Web Services 以及绑定 Web Service UDDI 即 Universal Description Discovery and Integration 6 它提供了在 Web 上描述并发现商业服务的框架 UDDI 通过服务注册 以及使用 SOAP 访问这些 注册信息的约定来实现上述目标 实际上 WebService 的主要目标是跨平台的可互操作性 为了达到这一目标 WebService 完全基于 XML 可扩展标记语言 XSD XMLSchema 等独立于平台 独 立于软件供应商的标准 是创建可互操作的 分布式应用程序的新平台 由此可以 看出 在以下四种情况下 使用 WebService 会带来极大的好处 跨防火墙的通信 应用程序集成 B2B 的集成 软件和数据的重用 西南石油大学本科毕业设计 论文 8 2 2 需求分析需求分析 需求分析是指理解用户需求 就软件功能与客户达成一致 估计软件风险和评 估项目代价 最终形成开发计划的一个复杂过程 在这个过程中 用户的确是处在 主导地位 需求分析工程师和项目经理要负责整理用户需求 为之后的软件设计打 下基础 需求分析之所以重要 就因为它具有决策性 方向性 策略性的作用 它在软件开 发的过程中具有举足轻重的地位 我们一定要对需求分析具有足够的重视 在一个大 型软件系统的开发中 它的作用要远远大于程序设计 2 12 1 功能需求功能需求 本系统启动以后 在输入连接 SQL Server 和 Oracle 数据库相应的连接字符确 认连接成功 选择目标数据库 并且查看数据库相应的表和其字段 在选择中意的 表后对其进行默认规则的合并 保存成具有描述表基本特征的 XML 文件至用户本地 对合并后的 XML 文件进行检索并将其结果输出 数据流图 Data Flow Diagram 简称 DFD 是一种最常用的结构化分析工具 它从数据传递和加工角度 以图形的方式刻画系统内的数据运动情况 本系统的顶层 DFD 图共有三个外部项 分别是用户 系统后台管理员 数据转 换规则系统 用户主要是把将要转换的源数据库中的数据从表中读出来 并且将数据传递给 多个数据库之间的数据转换功能的实现 该实现主要是对数据的数据类型转换的处 理 这是系统默认的转换方式 当处理完数据后 如果数据处理成功 转换系统就 会把该数据以 XML 形式导出到用户本地 图 2 1 为用户的实现顶层 DFD 图 读取数据处理数据 导出数据 处理失败异常 图图 2 12 1 用户的实现顶层用户的实现顶层 DFD 图图 系统后台管理员主要是发布数据采集用的 WebService 在数据源发生变化时候 发布变化后的数据源的采集 WebService 图 2 2 为系统后台管理员的实现顶层 DFD 基于 Web Services 的异构数据库的检索系统 9 图 系统后台管理员发布数据采集的 WebService 图图 2 22 2 系统后台管理员的实现顶层系统后台管理员的实现顶层 DFD 图图 数据库转换规则系统主要是把默认的转换规则 默认的转换规则主要是进行数 据保持不变的转换 用户主要是对数据进行检索操作 以便符合用户的要求 通过 调用转换规则 就可以调用相应的转换程序 转换程序也分为默认的转换程序和用 户自定义的转换程序 系统默认的转换程序主要是指两个不同的数据库之间进行保 持数据不变的操作 也就是跨数据库的信息传递 而用户自定义的转换程序是指数 据从源数据库中读出来之后 需要进行一些操作 比如说计算或者数据类型的转换 然后再把新的数据传递给目标数据库 下图 2 3 为多个数据库之间的数据转换功能 的实现顶层 DFD 图 图图 2 32 3 数数据据转转换换功功能能的的实实现现顶顶层层DFD 图图 2 22 2 性能需求性能需求 2 2 12 2 1 时间特性时间特性 修改规则 数据转换与传输和运行时间受到网络个人操作设备的影响会对具体 的操作有不同的反应 且随着系统的不断更新 版本的升级 在硬件设备允许的条 件下 会有所提高 数据转换规则 用户 数据转换 系统后台 管理员 制定规则 现有规则 待处理数据 西南石油大学本科毕业设计 论文 10 2 2 22 2 2 适应性适应性 当数据源发生某些变化时 数据转换规则定制的操作方式 数据转换规则结构 运行环境基本不会发生变化 变化只是将对应的发布的 WebService 改变即可 2 2 32 2 3 独立性独立性 这里的独立性是指合并结果是独立于源数据 所以对于检索的结果用户可以随 意处理而不会影响任何源数据 2 32 3 运行需求运行需求 2 3 12 3 1 用户界面用户界面 本系统通过微机进行运行 操作 输出 输入的相对时间将由微机本身的处理 速度来决定 其使用操作界面要求美观 方便 简洁 2 3 22 3 2 硬件接口硬件接口 本系统不需要特定的硬件或硬件接口进行支撑 2 3 32 3 3 软件接口软件接口 本系统的软件接口由编程操作系统以及 IIS 发布的 WebService 组成 基于 Web Services 的异构数据库的检索系统 11 3 3 系统设计系统设计 系统设计主要就是把需求分析得到的需求抽象为信息结构 由于本系统涉及到 了两个不同的数据库管理系统 所以首先必须对它们进行概要设计 我在定制规则 中用到了 2 个数据库管理系统 包括 Oracle9i SQL Server2000 并对它们的数据 类型和表结构之间的差异进行了研究 由此定制出数据库之间的默认转换规则 本 系统包括两种系统默认的数据转换规则 前台用户界面是使用基于 C S 结构的 C 语 言开发的 并将合并得到的数据文件以 XML 格式文件保存 由于 XML 的自定义性及 可扩展性 立足以表达各种类型的数据 作为独立于平台和设备的结构化数据表达 方式 它有效地实现了计算机之间的对话 此外 随着 WWW 的风行 几乎所有的数 据最终都是通过终端客户的浏览器发布的 所以 XML 不可避免地成为后台数据库 与外界进行交互的一个最合适的窗口 这一段将介绍两个数据库之间数据转换的实 现的设计方案 实现步骤设计图 检索具备的前提条件 3 13 1 设计方案设计方案 本系统主要设计同时对两个数据库的使用 它们分别是 Oracle 和 SQL Server 由 于数据库之间结构上存在一定差异 所以设计以下步骤来实现系统功能 如图 3 1 所示 图图3 3 1 1 系系统统实实现现步步骤骤设设计计图图 采集数据 操作数据 检索数据 导出数据 西南石油大学本科毕业设计 论文 12 1 通过 WebService 采集异地数据库的数据 2 定制出进行数据转换的异构数据库系统 Oracle9i SQL Server2000 之间的 转换规则 包括系统默认转换规则 以实现对数据库中表中数据和表的关联的合并 转换 3 合并转换结果以 XML 文件格式存储在客户端 以随时方便使用者检索数 据 4 在客户端使用转换后的 XML 文件进行其检索并对其导出 具体实现步骤请见图 3 2 SQLServer 数据库Oracle 数据库 分布式 WebService 数据采集服务 保存为 XML 文件 是否符合默认合并规则 检索筛选结果 输出成为 Excel 文件 查看数据库信息 以及表 字段信息 数据合并 编辑数据 采集数据操作数据导出数据检索数据 N Y 图图3 3 2 2 系系统统具具体体实实现现步步骤骤设设计计图图 基于 Web Services 的异构数据库的检索系统 13 3 23 2 数据源的采集设计数据源的采集设计 由于是对异地的数据库进行操作 本系统采集的数据是以 XML 的形式传播的 因此可以在本地数据库上建立 Web Service 代理来解决这些问题 访问结果以 XML 的形式返回给客户端 另外 服务端提供的 Web Service 是由 net 实现则可以以 DataSet 来实现 DataSet 是以 XML 为内容的数据实体 它可以成为 Web Service 的 返回结果被客户端直接使用 如果是其他平台则直接返回 XML 数据 并在客户端可 以将它封装成 DataSet 形式 对于用户的写操作则可以接收用户的操作语句 然后 用 SqlCommand 来代理执行 这样服务端将远程客户访问本地数据的工作在本地执行 既能很好的管理共享数据 又能减少客户端程序远程访问的工作量 如图 3 3 所示 图图 3 33 3 数据源采集步骤设计图数据源采集步骤设计图 3 33 3 数据处理设计数据处理设计 对于数据的处理本着不改变原数据库里数据的数据类型和长度 如表 3 1 以及 表 3 2 所示 在其基础上结合本系统所要达到的效果 即本身系统检索是要达到模 糊查询的效果 此设计也是为了检索功能的通用性 对于其数据类型的处理采取了 折中转换的形式 将 SQLServer2000 和 Oracel9i 里所有的数据类型在通过此系统合 并之后 全部处理为本系统里的数据类型 System String 此转化的效果即达到了 系统检索的要求 同时也不会破坏原数据的完整性 这是因为 System String 是字 符串类型 字符串是 Unicode 字符的有序集合 用于表示文本 String 对象是 System Char 对象的有序集合 用于表示字符串 String 对象的值是该有序集合的 内容 并且该值是不可变的 表表 3 13 1 SQLServerSQLServer 数据类型对应本系统数据类型数据类型对应本系统数据类型 西南石油大学本科毕业设计 论文 14 SQLServer 数据库里常用数据类型本系统数据类型 boolSystem Boolean charSystem Char byteSystem Byte sbyteSystem Byte ushortSystem UInt16 uintSystem UInt32 ulongSystem UInt64 shortSystem Int16 intSystem Int32 longSystem Int64 floatSystem Single doubleSystem Double textSystem String 表表 3 23 2 OracleOracle 数据类型对应本系统数据类型数据类型对应本系统数据类型 Oracle 数据库里常用数据类型本系统数据类型 char System Char varchar2System String ncharSystem String nvarchar2System String dateSystem String longSystem Int64 rawSystem Int32 blobSystem Int32 clobSystem Int32 nclobSystem String bfileSystem String rowidSystem String intrgerSystem Int32 floatSystem Single realSystem String 基于 Web Services 的异构数据库的检索系统 15 3 43 4 XMLXML 数据文件设计数据文件设计 使用 XML 格式数据是消除异构的关键之处 所以一个常见的问题是如何将 XML 映射到数据库 这种映射常常作为在 XML 文档和数据库特别是关系数据库之间转 换数据的软件的基础 在这个领域 一个重要的特点是映射是双向的 就是说可以 把数据从 XML 文档转化到数据库 也可以从数据库转化到 XML 文档 即使数据库 没有自称支持 XML 特性 也可以在关系数据库中存储和检索 XML 文档 这样做需 要一个框架来连接关系数据库和 XML 文档流 本系统将通过 Microsoft Netl l 框 架下的 DataSet 的 WriteXML 创建具有数据库特征的 XML 文件 下面是一段本系统所 创建并使用的 XML 数据库文件 通过模型图 3 4 可以很容易地理解数据从 XML 模型 到 XML 文档的转换 该模型图中的数据的类型和结构与前面定义的 schema 示例一致 TempTemp Temp TESTID TESTNAME TESTDES TESTID TESTNAME TESTDES TESTID TESTNAME TESTDES TEST 001 校园 青春 002 大学 象牙塔 003 毕业设计 实验 图图 3 43 4 XML 数据模型数据模型 西南石油大学本科毕业设计 论文 16 001 校园 青春 002 大学 象牙塔 003 毕业设计 实验 由以上 XML 数据所示 可以发现此 XML 很好的描述了数据库中表的基本特征 你会注意到它包含了标准的 XML 头 这表示 schema 自己 就是一个 XML 文档 而任何 schema 的根元素都必须是 schema 它有一个或者多个 说明自己的属性 在这种情况下 schema 的 namespace 定义属性 xmlns 会定义 名称空间为 xs 它将用作文档中所有元素的根名称空间 我们的 schema 示例中 接下来的元素是 annotation 它的作用是代表同其父元素有关的文档 annotation 可以包含两个子元素之一 或者是 documentation 或者是 appinfo 或者两者都包 含进去 前者用于可读的文档 而后者则用来保存供应用程序处理的指令 接下来我定义了两个主要的元素 根元素 Temp 及其子元素 TESTID TESTNAME TESTDES 它们用在书目文档内 后者采用了两个 element 元 素 这些元素都包含了定义名字的属性和各个元素准许的内容 在此 Temp 表示表 的名称 TESTID TESTNAME TESTDES 分别表示字段的名称 基于 Web Services 的异构数据库的检索系统 17 3 53 5 数据导出设计数据导出设计 对于数据的导出后的保存形式 有至少三种方案可以选择 1 XML 文本格式 2 保 存至数据库服务器 3 Excel 文件 三种方案各有优势 但是本着一切以用户的使用感受 以方便各级用户随时使 用检索后的数据 同时 也因为微软也为 C 操作 Excel 提供了完备的接口 用 Excel 来实现 优点在于页面布局设计灵活 使用代码来操作数据要更灵活 更精 确 所以选择将导出后的数据以保存为 Excel 文件 数据导出保存为 Excel 文件的具体实现 调用了 Interop Excel dll 类文件 通过它将 DataGrid 中的数据导入 Excel 中 并显示 Excel 应用程序 注意调用该方 法必须有安装 Excel2003 应用程序 并且假定 DataGrid 中绑定的是一 DataSet 至 此可以完整导出数据至 Excel 西南石油大学本科毕业设计 论文 18 4 4 系统实现系统实现 4 14 1 开发环境开发环境 本系统全部的开发工作都在 Microsoft Netl l 开发环境上完成 Microsoft Netl l 是稳定的 Net 框架程序 具有极好的安全性 并能在 Windows 系 统操作系统上达到跨平台的效果 未来 Microsoft 还将支持 Linux 操作系统 可以 说是当前最好的运行平台 该平台可以在 WIN7 VISTA XP Windows98 2000 2003 系列操作系统上安装 一旦安装完成就和原来的操作系统无关 更为重要的是对于 被检索的数据完全是基于 XML 的 NET 封装了大量 DOM 操作类 提高了对 XML 的开 发速度 同时 NET 也提供了非常高效的 WEB 服务开发平台 另外 传统的数据库集 成工具都要单独开发数据包装器用于数据库数据和 XML 之间的相互转化 而 NET 环 境内置了 DATAADAPTER 对象能够非常高效的在数据库和 XML 之间转化数据 这也是 本系统选择 NET 开发环境的一个重要原因 4 24 2 部分编码详解部分编码详解 本系统所引用系统类如图 4 1 所示 图图 4 14 1 引用系统类视图引用系统类视图 基于 Web Services 的异构数据库的检索系统 19 图图 4 24 2 检索系统登陆界面检索系统登陆界面 执行代码 在登陆界面分别对 SQL Server 和 Oracle 进行登陆 如图 4 2 所示 代码 如下 protected object GetBasename string server string name string password string connectionstring server server database master Provider SQLOLED B uid name pwd password System Data OleDb OleDbConnection myconnection new System Data OleDb OleDbConnection connectionstring try myconnection Open catch System Exception ee MessageBox Show 连接不上服务器 n 请确保参数的正确 return null System Data OleDb OleDbDataAdapter myAdapter new System Data OleDb OleDbDataAdapter Select name from sysdatabases where dbid 6 myconnection 西南石油大学本科毕业设计 论文 20 System Data DataSet myset new DataSet myAdapter Fill myset System Text StringBuilder mybuilder new System Text StringBuilder foreach System Data DataRow myrow in myset Tables 0 Rows mybuilder Append myrow 0 return mybuilder ToString Substring 0 mybuilder ToString Length 1 Split new char 此方法为连接 SQL Server 数据库的方法 当点击同步数据库的下拉列表时 就 进行判定是否已经连接上 SQL Server 数据库 若连接上 则查找出用户所建的数据 库 不会显示系统数据库 若未连接上 则弹出提示框 连接不上服务器 请确保 参数的正确 如图 4 3 所示 基于 Web Services 的异构数据库的检索系统 21 图图4 4 3 3 S SQ QL L S Se er rv ve er r 数数据据库库连连接接不不上上界界面面 protected object GetTableSpace string server string name string password System Data OracleClient Oracle Connectionconnn new OracleConnection connn ConnectionString User ID name pwd password Data Source server try connn Open catch System Exception ee MessageBox Show 连接不上服务器 n 请确保参数的正确 return null OracleDataAdapter oad new OracleDataAdapter select distinct TABLESPACE NAME from dba free space connn 获取所有表空间的名称 System Data DataSet myset new DataSet oad Fill myset System Text StringBuilder mybuilder new System Text StringBuilder 西南石油大学本科毕业设计 论文 22 foreach System Data DataRow myrow in myset Tables 0 Rows mybuilder Append myrow 0 return mybuilder ToString Substring 0 mybuilder ToString Length 1 Split new char 此方法为连接 Oracle 数据库的方法 当点击数据表空间的下拉列表时 就进行 判定是否已经连接上 Oracle 数据库 若连接上 则查找出所有的数据表空间 显示 在下拉列表框中 若未连接上 则弹出提示框 连接不上服务器 请确保参数的正 确 如图 4 4 所示 图图4 4 4 4 O Or ra ac cl le e 数数据据库库连连接接不不上上界界面面 基于 Web Services 的异构数据库的检索系统 23 图图4 4 5 5 字字段段信信息息界界面面 分别用 SQL 语句读取相应的系统表 获取指定表的字段信息 如图 4 5 所示 此方法是用 SQL 语句分别对 SQL Server 数据库和 Oracle 数据库进行查询 因 为两个数据库都是采用标准化 SQL 语句 所以不存在冲突 同时 获取的表信息不 是表的内容 而是设计表时的字段规则 可以令用户很好的明白当前表的结构 图图4 4 6 6 合合并并后后的的临临时时数数据据 西南石油大学本科毕业设计 论文 24 图图4 4 7 7 类类关关系系视视图图 合并指定表 效果见图4 7 类关系视图见图4 8 代码如下 合并表数据 private static void OracleAndSQLServer SQLServerConn OracleConn uniteDs oraDs Copy foreach DataRow dr in sqlDs Tables 0 Rows object no dr ItemArray 动态加载 无视列的数目 uniteDs Tables 0 Rows Add no ReData uniteDs Tables 0 uniteDs Tables 0 AcceptChanges 此方法为对查询出来的SQL Server表和Oracle数据表进行合并 动态加载行和 列 不受原数据表中行列数目的限制 此时查询出来的不再是表的字段规则 而是 表中的具体内容 进行合并保存为XML文档 消除了两个数据库的异构情况 保存在 基于 Web Services 的异构数据库的检索系统 25 指定的目标文件夹中 图图4 4 9 9 合合并并后后的的临临时时数数据据 本系统对于所有生成的 XML 文件进行选择后检索信息 对于检索的结果导出 主要导出形式是以 Excel 表现的 如图 4 9 所示 代码如下 private void btnSearch Click object sender System EventArgs e try if this XMLShow SelectedItem null DataSet ds new DataSet ds ReadXml file XmlReadMode ReadSchema DataSet ds1 new DataSet ds1 ds Clone foreach DataRow row in ds Tables 0 Rows string temp for int n 0 n ds Tables 0 Columns Count n temp row n ToString if temp IndexOf this txtSearchContent Text Trim 1 不等于 1 则temp里有包括的其值 西南石油大学本科毕业设计 论文 26 object asd row ItemArray ds1 Tables 0 Rows Add asd this dgResult DataSource ds1 Tables 0 DefaultView XMLDs ds1 Copy else common showwindow 请选择xml文件 catch common showwindow xml文件读取异常或其他 此方法为对已保存的 XML 文件进行数据检索 从目标文件夹中选取所需的 XML 文件进行检索 若存在 则显示出存在该信息字段的行所有内容 若不存在 则显 示检索内容为空 N N Y Y 用户登录 登录 SQLServer 数据 库 检索系统用户开始 登录 Oracle 数据库 是否登录成功 选择数据库 是否登录成功 选择数据表空 间 选择数据表选择数据表 基于 Web Services 的异构数据库的检索系统 27 N N Y Y Y Y N 图图4 4 1 10 0 检检索索系系统统操操作作流流程程图图 5 5 测试测试 在需求分析和系统设计之后 编码基本完成了 就要开始测试了 测试是为了 发现系统运行时的错误 下面就要介绍测试方法 5 15 1 测试方法测试方法 软件测试的方法和技术是多种多样的 对于软件测试技术 可以从不同的角度 加以分类 从是否需要执行被测软件的角度 可分为静态测试和动态测试 从测试是否针对系统的内部结构和具体实现算法的角度来看 可分为白盒测试 和黑盒测试 以下是用例测试的方法 1 获取 WebService 测试 1 调用连接数据库公用方法 connect 2 Debug 公用方法 connect 查看 Debug 参数中 connection 的值 3 当 connection 不为 null 时 则表示连接成功 否则连接失败 获得数据表字 段 获得数据表字 段 是否符合默认 合并规则 数据合并 编辑数据 保存为 XML 文件 选择 XML 文件检索数 据 是否存在检索 信息 输出为 Excel 文档 结束 西南石油大学本科毕业设计 论文 28 2 读取 XML 文件测试 1 调用读取 XML 文件方法 ReadXML 2 判断返回值 vector 是否为 null 3 当 vector 不为 null 时 则读取 xml 文件成功 否则读取 xml 文件失败 3 检索 XML 文件测试 1 在读取 XML 文件成功的情况下调用检索 XML 文件方法 btnSearch Click 2 判断 txtSearchContent Text Trim 是否为 1 3 当 txtSearchContent Text Trim 不为 1 时 则 temp 中有包括的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省武汉市青山区5月2026届九年级化学第一学期期中质量检测试题含解析
- 2026届三门峡市重点中学化学九年级第一学期期中联考试题含解析
- 2026届四川省绵阳市绵阳外国语学校英语九年级第一学期期末经典试题含解析
- 离婚协议范本:财产分割、子女抚养及债务偿还方案
- 高端商务楼宇物业管理与客户关系维护合同
- 竞业禁止协议赔偿金额界定与劳动者权益保障
- 跨界融合的私立学校校长聘用与管理合同
- 税务筹划与税收筹划培训顾问服务协议
- 离婚时共同房产处置及居住权分配协议公证模板
- 离婚债务承担与财产分割及子女抚养费用分担协议
- JJG 207-2025气象用玻璃液体温度表检定规程
- 化工企业安全操作规程管理制度
- 【公开课】角的平分线+第2课时 角平分线的判定课件++2025-2026学年+人教版八年级数学上册
- 妇产科疾病编码培训课件
- 除湿转轮培训
- 2023版押品考试题库含答案
- 种植农具介绍课件
- 物业保密制度管理制度
- plm考试试题及答案
- 液压爬升模板工程技术标准 JGJ-T 195-2018 知识培训
- 培训机构十项管理制度
评论
0/150
提交评论