基于ASP.NET 2.0的金属材料性能数据库检索系统设计

时间:2022-09-01 07:35:41

基于ASP.NET 2.0的金属材料性能数据库检索系统设计

摘 要:材料性能数据库检索系统的研究与开发是工业现代化的重要方面。介绍了一个针对金属材料性能试验数据的特性,综合运用 2.0技术、软件的三层框架理论和设计模式的网络数据库检索系统设计。重点讨论数据库的结构,分析系统软件采用的基于 2.0的三层(数据层、业务逻辑层、表现层)架构模式的特点,并对应用设计模式的实现过程和绘制曲线图功能进行阐述。该系统在.NET平台下采用企业级易于扩展的Web数据库集成与实现模式,且具有操作简单,运行效率高,易维护的特点。

关键词:数据库; 2.0;三层架构;设计模式

中图分类号:TP393文献标识码:B

文章编号:1004-373X(2009)10-005-03

Design of Query System of Material Property Database Based on 2.0

SHEN Jun,ZHU Yigang

(Institute of Aeronautical Materials,Beijing,100095,China)

Abstract:Scientific researchers worked on the mechanical properties of materials always need to work with data.According to the characteristics of the metal material performance test data,a network database system has been developed based on 2.0,design patterns in multiplayer architecture.The database logical relations and the physical structure design thoroughly are analyzed firstly.Multiplayer architecture have been investigated.The application of design patterns in data layer and curve diagram drawing functions is discussed in detail.Using the model,a web database publishing model is proposed,which is oriented for corporations and enterprises.This system has very flexible and exerciables.

Keywords:database; 2.0;multiplayer architecture;design pattern

0 引 言

在现代飞机研制中,一项优秀的设计方案应该建立在先进的设计思想、精确的计算和雄厚的数据基础上。结构分析、疲劳分析和计算流体动态分析等项工作必须依赖大量的材料性能数据。材料数据库技术是以存取材料性能数据为主要内容的数值数据库。计算机化的材料性能数据库具有一系列优点:如存贮信息量大,存取速度快,查询方便,使用灵活。此外它还具有多种功能:如图形表达及数据分析等。目前已获得广泛应用,并可以与工程软件配套使用。

1 系统总体方案设计

金属材料性能数据库检索系统是为满足材料研究和设计人员的需要而设计的。它采用B/S结构实现数据库的访问。考虑到通用性、运行效果及实现成本的因素,系统开发平台依托建立企业级网络数据库系统的开发平台,即微软公司.NET Framework 2.0和IIS+ 2.0的网络数据库解决方案来实现,开发工具采用Visual Studio 2005,编程语言采用C#。数据库管理系统通过SQL Server 2000构建。

2.0是的最新版本,它在1.0的基础上有了很大改进,主要技术特性体现在控件、页面框架、服务三个部分。在控件部分新增了数据控件(数据源控件和数据绑定控件)、登录控件、站点导航控件等,用于提高开发效率。在页面框架部分新增了母版页、主题和皮肤,用于统一Web网站页面风格。在服务部分新增了成员资格管理、角色管理等,用于保障Web站点的安全[1,2]。

2 数据库的设计

数据库设计主要根据金属材料性能数据的特点,针对静力性能、疲劳/耐久性能、损伤容限性能、腐蚀环境性能和特殊载荷谱下的性能试验数据特点,结合关系型数据库结构的要求,采用实体关系E-R数据模型的设计方法,对数据库进行概念设计,以减少数据冗余,以及以符合数据库的范为目的进行物理设计,最终建立规范的关系型数据库。对于本材料性能数据库,主要包括的数据是材料背景及相应的试验数据。

数据库的实体关系(E-R模型)由材料、试验任务、试验数据三类实体构成。材料产品实体包括进行试验的材料产品方面的属性(如材料牌号、材料品种、材料批次、状态、生产厂等)。试验任务实体包括试样属性(如取样方向等)和试验条件属性(如试验温度、试验环境参数等),不同性能试验的试验任务实体通常具有不同的试验条件。试验数据实体描述通过对每个试样个体按照试验任务的要求进行性能试验后得到的试验数据信息。材料实体和试验任务、试验任务和试验数据实体之间是一对多的关系。E-R模型如图1所示。

表结构设计主要是根据E-R模型,把数据切分成逻辑上相互关联、结构上相互独立的表结构[3]。为保证数据库各表间,数据的完整性和一致性,还设定了实体完整性约束、域完整性和参考完整性。根据表结构编写了相应的SQL数据库脚本,在SQL Server 2000中实现了计算机数据库的物理设计[4,5]。表结构由材料信息表、力学性能的试验任务表和试验数据表组成。在设计时把整个试验任务实体按15种性能种类进行分解,包括拉伸、压缩、冲击、剪切、扭转、硬度、疲劳、裂纹扩展、断裂韧度、持久、蠕变、应力腐蚀、谱载疲劳、谱载裂纹扩展、细节疲劳额定强度。材料信息表的材料序号字段为主键,各个性能试验任务表的试验序号字段为主键、外键是材料序号字段,试验数据表的试样序号字段为主键、外键是试验序号字段。

3 应用软件的设计

3.1 体系结构设计

采用 2.0技术在.NET平台可以快速方便地实现系统三层架构,其中表现层放在ASP页面中,数据库操作和逻辑层用组件来实现。在 2.0中典型的三层架构包括:Web 表示层、业务逻辑层、数据访问层[6-8]。

数据访问层是访问数据库可重用的接口,由数据访问逻辑组件和业务实体组成。其中,数据访问逻辑组件包括业务实体方法和数据访问助手;业务实体方法处理实体数据,数据访问助手处理与数据库的相关操作。业务实体用于映射关系型数据库中的数据,即使用对象的形式表现数据库中的表,实现了将数据转化为对象的功能。数据访问层从业务逻辑层接收请求,并执行从数据库获取数据或向数据库发送数据的功能。

业务逻辑层把数据转换成了符合业务规则的有意义信息,即数据检索的规则放在这一层。系统的业务规则从表现层接受请求,根据编码的业务规则处理请求,从数据访问层获取数据或将数据发送到数据访问层,将处理结果传递回表现层。

表现层把信息转换成对用户有意义的内容,它是指在应用程序中实现的客户端。显示层放在页面中,管理Web页的呈现和行为,向业务逻辑层发送用户输入,从业务逻辑层接收结果等。该系统采用了三层结构,提供了清晰的分离结构和代码封装,使程序内聚程度高,耦合低,易于扩展、维护和重用[9-11]。三层架构如图2所示。

3.2 功能设计

系统流程分为三个阶段,即材料筛选导航、选择性能、定位相应试验数据,最终获得查询结果。相应的性能数据检索主要由条件选择和试验数据呈现两大模块构成。在条件模块选择部分,用户按材料牌号、品种、状态、规格的顺序依次选择检索条件。系统根据用户选定的条件显示材料信息表,用户选定相应的材料信息,系统显示该材料信息涵盖的性能种类信息表,用户选定要检索的性能种类。在试验数据呈现部分,显示该性能种类下试验信息表,用户选定相应的试验条件,系统显示相应的试验结果表,并具备导出到Excel的功能,另外高周疲劳显示应力(Y值)与循环周数(X值)的散点图,裂纹扩展显示da/dn与ΔK的散点图,拉伸显示平均应力应变曲线,应变疲劳显示(Δε/2)-2Nf曲线。

3.3 代码的设计

3.3.1 三层架构应用设计模式

(1) 设计模式。

设计模式是一套被反复使用、经过分类编目、代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性[12]。根据完成工作的不同设计模式,可以分为创建型模式、结构型模式、行为型模式三大类。这些模式刻画了在运行时刻难以跟踪的复杂控制流。其中,创建型模式与对象的创建有关,即描述怎样创建一个对象,它隐藏对象创建的具体细节,使程序代码不依赖具体的对象。

(2) 简单工厂模式在数据访问层的应用。

抽象工厂模式是一种创建型的模式,用于当需要返回一系列相关类中的某一个,而每个类都能根据需要返回不同的对象。简单工厂模式是其简化版,只需调用工厂类中的方法,就可以创建相关的产品类实例。这种面向接口的编程技术,为创建不同产品实例提供很大方便。

该系统软件的数据访问层应用简单工厂模式,包括工厂类、抽象产品接口、具体产品类、实体类、数据访问辅助项目。业务逻辑层调用工厂类,创建抽象产品接口,然后调用这个接口的方法返回业务实体类的实例。具体过程如下:

工厂类采用依赖注入,根据数据存储来配置应用程序,使用配置文件结合反射技术。将应用程序依赖的组件在运行时注入给应用中,针对SQL Server数据库,并可以扩展加载Oracle数据库。抽象产品接口将对象的定义与实现分离,在接口中声明了成员方法,但不包括具体实现内容。具体产品类调用数据访问辅助类(微软公司提供的公共模块),实现抽象产品接口中定义的方法。业务实体就是把数据表结合业务规则抽象为类,数据表中的字段都抽象为类的属性。工厂类代码举例如下:

namespace DALFactory

{ public sealed class DataAccess

{ private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];

public static IDAL.IDALChartInfo CreateChartInfo()

{ string className = path + ".DALChartXYInfo";

return(IDAL.IDALChartInfo)Assembly.Load(path).CreateInstance(className);}

3.3.2 曲线作图模块的设计

有一个内建的图形工具库,即system.drawing名称空间的gdi+,不过它属于低级的api,算不上绘制图表的引擎。因此采用优秀的服务器端图表引擎Office 2003 Web 组件,即OWC 11作为曲线绘制模块的基础,它具有与Excel同样强大的图表绘制能力,能在服务器上动态创建图表。

曲线作图模块的具体设计方案是将曲线图所需的数据表的数据填充到基于Office 2003 自建的曲线作图类,然后将曲线图以gif图形的形式保存在服务器上,用Image控件显示该图。这种图形实现技术对客户端没有特殊的要求,只要能够显示gif图形就可以显示曲线图。

在自建的曲线作图类中,主要是创建一个图形容器对象,在图形容器中增加图形对象。以散点图为例,将图形的类型设置为散点图,添加一个series,给定x,y值,设置刻度,使用Microsoft.Office.Interop.Owc11.ChartSpace类ExportPicture方法输出图形文件。核心代码如下:

using Microsoft.Office.Interop.Owc11;

ChartSpace ThisChart = new ChartSpaceClass();

ChChart ThisChChart=ThisChart.Charts.Add(0);

ChSeries ThisChSeries = ThisChChart.SeriesCollection.Add(0);

//指定为散点图

ThisChChart.Type=ChartChartTypeEnum.chChartTypeScatterMarkers

//给定series的名字

ThisChSeries.SetData(ChartDimensionsEnum.chDimSeriesNames,ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),m_SeriesName);

{ //数据表的第0列即属性m_Category为y,第1列即属性m_Value为x

ThisChSeries.SetData(ChartDimensionsEnum.chDimXValues,(int)ChartSpecialDataSourcesEnum.chDataLiteral,m_Value);

ThisChSeries.SetData(ChartDimensionsEnum.chDimYValues,(int)ChartSpecialDataSourcesEnum.chDataLiteral,m_Category);

//刻度设置,x轴设为对数刻度。

ThisChChart.Axes[1].Scaling.Type =

ChartScaleTypeEnum.chScaleTypeLogarithmic;

//对数主刻度的主单位

ThisChChart.Axes[1].Scaling.LogBase = 10;}

4 结 语

基于 2.0技术,采用三层架构和B/S体系,建立的金属材料性能数据库检索系统是一个操作简单,运行效率高,易维护的系统。它是按材料性能的特点建立的,将材料研究工程中产生的科学数据通过电子化数据库方式有效保存,实现资源的共享,并为相关的材料研究单位、飞机设计单位提供检索最新材料性能试验数据的途径,提高了性能数据的利用效能。

参考文献

[1]郝刚 2.0开发指南[M].北京:人民邮电出版社,2006.

[2]陈冠军.精通 2.0企业级项目开发[M].北京:人民邮电出版社,2007.

[3]羊海棠,杨瑞成,袁晓波,等.耐磨料磨损材料数据库的设计与实现[J].材料科学与工艺,2006,14(4):345-348.

[4]易当祥,吕国志,姚磊江,等.陶瓷基复合材料数据库系统的实现与应用[J].机械工程材料,2005,29(7):68-70.

[5]姚磊江,童小燕,吕胜利,等.C/SiC复合材料数据库的逻辑结构设计[J].西北工业大学学报,2005,23(4):426-429.

[6]曾广平,宋中山.数据库进化设计的敏捷实施[J].微计算机信息,2006,22(11):201-203.

[7]王敏丽.用C/S与B/S技术进行N层体系架构的实现方法研究[J].浙江理工大学学报,2006,23(3):331-335.

[8]张慧翔,张新家.一种业务逻辑可重构的三层应用服务器设计与实现[J].计算机应用,2006,26(4):853-856.

[9]易宝林,谭支鹏,冯丹.数据库访问柔性中间件的设计与实现[J].微电子学与计算机,2006,23(11):166-169.

[10]胡顺.三层结构在.NET中的应用[J].中国科技信息,2005,23(4):426-429.

[11]徐绘宏,潘懋,宋扬,等.一种构建3D GIS应用的三层结构方法探讨[J].计算机工程与应用,2005(8):196-200.

[12]肖统民.基于设计模式的可重用Web数据库应用软件的研究[J].计算机与现代化,2006(7):100-103.

上一篇:基于改进型单纯式加速法变步长MPPT控制算法 下一篇:一种新的分数阶混沌系统研究