试论广东省基础水文数据库表结构升级实现技术探讨.doc

上传人:99****p 文档编号:2031753 上传时间:2019-03-29 格式:DOC 页数:7 大小:27.50KB
下载 相关 举报
试论广东省基础水文数据库表结构升级实现技术探讨.doc_第1页
第1页 / 共7页
试论广东省基础水文数据库表结构升级实现技术探讨.doc_第2页
第2页 / 共7页
试论广东省基础水文数据库表结构升级实现技术探讨.doc_第3页
第3页 / 共7页
试论广东省基础水文数据库表结构升级实现技术探讨.doc_第4页
第4页 / 共7页
试论广东省基础水文数据库表结构升级实现技术探讨.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、试论广东省基础水文数据库表结构升级实现技术探讨论文关键词:水文数据库 表结构 升级 论文摘要:该文概述了广东省水文数据库现状,讨论了水文数据库表结构 3. 0与 4. 0的主要差异,针对水文数据库由表结构升级所要解决的问题,提出了具体的工作流程与解决方法,并用以对表结构 3. 0进行优化、调整、补充,完成了表结构到 4, 0的升级。 1 我省水文数据库现状概述 水文资料是水利工程的基础,为了达到准确快速地提供水文资料,资料的科学存储是个关键问题。当前水文资料主要包括:降雨量、蒸发量、水位、流量、含沙量等内容。数据库是现今企业数据存储的主要方式,应用数据库技术来存储水文观测资料就形成了水文数据库

2、。在水文数据库中数据以表的形式存储,这些表的名称、表中每列的名称、数据类型等称为表结构。 广东省水文数据库由 1991年开始建设,到 1998年建成验收,至今每年都加人新的整编数据。水文数据库的建立改变了水文资料以纸介质存储数据的方式,使资料的存储进人磁介质的时代,以电子版本的方式提供数据极大方便了数据的查询和使用,为水情专用数据库、三防指挥系统、流域水信息与管理等许多水利信息化项目提供了方便,在实际生产应用中发挥了重要作用。 水文数据库使用 SQL SERVER 2000做数据库管理系统,表结构经历了由 1. 0版本到 3. 0版本的演变过程。3. 0版本是一个比较成熟的版本,历经十年的应用

3、,在水文数据存储的标准化方面做出了重要贡献,但在长期的应用中 3. 0版本也发现了一些不足之处,于是部水文局组织有关专家在 3. 0的基础上修订形成了 4. 0版本。从而使我省水文数据库从 3, 0版本到 4. 0版本的升级成为现实需要解决的问题。 2 水文数据库表结构 3. 0与 4. 0的对比 水文数据库表结构 3. 0主要存在的问题有:时间维的处理不合理;一些表表列数太多;一些有用数据没有建表存储;没有字典表。 表结构 4. 0针对以上缺点做了改善,首先使用时间数据类型( DT类型)统一时间维的表示,如:逐日平均水位表 3. 0表结构如表 1;逐日平均水位表 4. 0表结构如表 2。 对

4、比表 1、表 2可见日平均水位 3. 0表结构有 66列,而 4. 0表结构只有 4列,3. 0表结构的时间维中年份、月份、各日在列中表示,4. 0表结构中的时间维统一在一列中表示,这样极大方便了 SQL语句的编写,而且时间集中到一列上表示有利于随后的数据分析工作。其次,一个表包含太多的列时,说明这个表缺乏内聚,它试图存放来自几类实体的数据,使用垂直分割将一些列移到另一个表中,可以减少表的规模,改善性能。如:表结构 3. 0把月、旬、年的数据放在同一表中,导致一个表中有上百的表列,而 4. 0把月、旬、年的数据分开到三个表中存放,改善了性能。再次表结构 4. 0增加和修改了一些表,使得存储的内

5、容得到扩充,存储更加合理高效。如增加了关系线表来存储水位流量关系,修改了实测大断面表等。最后表结构 4. 0增加了字典表类,这样有利于元数据的描述和使用。 3 表结构升级实现技术 3.1 表结构升级转换需要解决的问题 表结构的升级可能会涉及很多问题,主要要解决的问题有: 1)新表的建立。新表的建立主要讨论新表结构的合理性,确保新表的设立是正确的。 2)数据质量控制,要控制从旧库到新库转移数据时出现的数据转换错误。新库中错误的数据可能来自于旧库中的错误,也可能来自于转换程序的错误或考虑不周。应该确保新库的数据质量比旧库有所提高。 3)功能恢复,主要是参照完整性、方法(存储过程、存储函数、触发器)

6、、外部程序的恢复。水文数据库是多应用数据库,有许多外部程序对其进行访问,数据库升级人员对这些程序几乎是不能控制的,在这种情况下数据库的修改必然对外部访问系统造成影响,解决的方法有二:一是进行功能恢复,升级人员与应用程序开发者协作,修改应用程序使其能适应新的数据库表结构;二是设立过渡期,在这其间使新老数据库同时运行,原来的应用程序继续使用老库,新应用使用新库。通常会结合使用上述两种方法,即进行部分功能恢复同时设立过渡期。 4)数据加载策略,由于水文数据量较大,而且每年都有新增数据,所以数据加载要有增量加载功能。同时,在过渡期间如果数据的增、删、改比较频繁,应该保持新旧库内容的同步。 3. 2 升

7、级转换的过程 在生产环境中安全的数据库升级转换流程如图 1: 验证数据库是否需要升级转换是综合考虑转化所获得的价值与投人之比,以确定是否需要这样的转换,是否开销过大。水文部门的数据源很多,如基础水文数据库、水情专用数据库等。升级人员要确定各种数据所放的位置才能引用。数据库的转换是一个重复的过程,每次形成一个新表都要经过建表、编写数据转换加载及同步代码、数据加载、结果测试这样一个过程,只有测试无误了才进人下一个新表的建立,这种采取每次一小步的办法容易降低实现程序的复杂性,容易发现转换错误所在。所有新表测试通过后才可以发布使用。 3. 3 实现方法 首先对 SL324-2005基础水文数据库表结构

8、及标识符标准(即表结构 4. 0 )进行分析以验证转化的必要性,由于存放测验数据的表类是常用的表类,而且测验数据格式比较固定,表结构比较完善,所以优先转换该类表,方法如下: 使用 SQL SERVER企业管理器创建新表结构,如图 2。 使用 T一 SQL语言编写数据转换与加载程序,如:使用语句(Insert into HY YRZ F select STCD, YR,YRAVZ,YRAVR,YRMXZ,YRMXR,YRMXMD,YRMNZ,YRMNR , YRMNMD from ZMYST where YR = 2007)就可以把表结构 3. 0水位月年统计表中 2007年的数据增量加载到 4

9、. 0的年水位表中。 如果转换过程中有类型转化、数据格式检测等质量控制要求,则需要用比较复杂的程序段来完成。如:降雨量摘录表的 T一 SQL转换程序如下: 声明变量sled , yr , and , bghrmt , edhrmt , p , prm 存储查询数据 声明变量 bgdt, eddt 存储转换后的时间数据 创建游标 my_ cursorl关联到降雨量摘录表 prex 通过游标读一条记录到变童sled , yr , and , bghrmt,edhrmt,P,prm 中 WHILEfetch status=0) Begin 处理降雨量结束时间、 ifedhrmt=2400) begi

10、n 处理降雨结束时间为 24:00的情况 end else ifedhrmtbghrmt) begin 处理摘录时段跨日的情况 end else 摘录时段无跨日的情况 处理降雨量开始时间、 插人数据、 insert into hy_prex_ b values(sled,bgdt,eddt,P,prm ) 取下一条记录 end另外,可使用触发器保持旧表和新表的同步增删,这样当数据加人到旧表或从旧表中删除数据的时候就通过触发器在新表中作相应的修改,如:对 3. 0中降雨量摘录表写插人触发器,插人相应记录的 T一 SQL程序如下: Create trigger prex insert On PRE

11、X For insert as 同时写删除触发器,删除相应记录的 T一 SQL程序如下: Create trigger prex delete On PREX For delete as 这样就维护了旧表到新表的同步更新。 3. 4 成果 应用以上技术笔者完成了广东省水文数据库表结构 3. 0到 4. 0数值表类的转化,并通过触发器同步技术使每年新增资料的转换过程自动化。通过表结构 4. 0的转换及向用户提供数据表明,新表结构使用方便,提供的数据格式更为科学合理。而且由于在升级转换过程中严格数据质量控制,改正了旧库中许多错误,统一了数据表达方式,使新库数据质量得到了提升。 4 结语 对于规模较大的数据库表结构,由于不可能一次设计完美,数据库升级是必要的和常见的。企业数据库升级是一个复杂的系统过程,需要协调考虑各方面的问题才能较好地完成任务。水文数据库表结构由 3. 0升级到 4. 0提升了数据库的性能,为水文资料使用用户提供了更优质的服务。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。