HI,欢迎来到学术之家股权代码  102064
0
首页 精品范文 关系数据库

关系数据库

时间:2022-03-24 11:45:51

开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇关系数据库,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。

关系数据库

第1篇

全球多家研究机构统计数据显示,大数据产业将迎来发展黄金期,IDC预计,大数据和分析市场将从2016年的1300亿美元增长到2020年的2030亿美元以上,中国报告大厅的大数据行业报告数据也说明,自2017年起,未来2-3年的市场规模增长率将保持在35%左右。大数据像空气一样,随处可见,日积月累的海量数据不得不让人们重新考虑大数据的存储和管理。

2传统关系数据库面临的挑战

基于二维关系模型的数据库在数据管理的发展历程中是一个标志性的时期,数据结构化存储,冗余较低、程序和数据具有一定的独立性、易扩充等特点。随着Internet技术的发展,涌现出半结构化、非结构化数据,对这些结构复杂的大数据的高效实时多维分析的需求越来越多。传统的关系数据库从70年展至今,虽然应用范围较广技术较成熟,但在处理海量数据方面还存在许多不足。(1)关系模型结构制约了快速访问大数据的能力。在二维关系表中,依据属性的值来检索相应的元组,受这种方式的束缚,在检索数据过程中,将耗费一定的时间,从而使访问数据的时间较慢。在存储对象设计上虽然可以使用分区的方法,提高数据访问冲突,但在大量数据的前提下,分区技术改善的性能较微弱。(2)处理大数据的灵活性不足。在应用系统中,用户的各种查询需求经常发生变化,不受时间和操作对象的约束,用户希望随时随地都能快速得到反馈结果。关系型数据库需要专门的数据库维护人员对用户的查询要求进行优化处理,不能及时的反馈给用户查询结果,这使得使用关系数据库存储数据的企业不具备对大数据的快速响应能力。(3)处理复杂结构数据能力较弱。关系型数据库对现实数据的处理常见类型为字符、数值等,对于半结构化和非结构化数据的处理只限于二进制代码文件的存储,而现今用户对复杂结构数据的要求上升为识别、检索和多维分析,如何处理占总数据量85%的非结构化数据,是许多关系数据库产品需要解决的问题。(4)存储维护管理PB级数据导致成本不断增加。数据量递增使得企业在硬件存储上投资不断增加,虽然存储设备的投入成本在逐步降低,但总成本却在逐步提高。此外,大量复杂结构的数据维护工作也给数据库管理员增加了很多负担。

3大数据库技术

随着大数据技术的日趋完善,各大公司及开源社区都陆续了一系列新型数据库来解决海量数据的组织、存储及管理问题。目前,工业界主流的处理海量数据的数据库有四种,分别是列式数据库、内存数据库、键值数据库及流式数据库。

3.1列式数据库

采用列族存储数据,将经常被使用的数据放到一个列族中,例如,经常会查询学生的学号和姓名,而不是专业,这样把学号和姓名放到一个列族中,专业放到另一个列族中,该数据库通常用来存储分布式大数据,HBase是列式数据库的典型代表。

3.2内存数据库

对数据库中所有数据的操作都在内存中完成,一般数据库也有一定的缓存机制,对大部分数据的操作都包含从外存到内存的读取,这一过程在很大程度上降低了系统的性能。由于在内存中的读/写是以纳秒为单位的,所以内存数据库的性能极高,Spark是内存数据库的典型代表。

3.3键值数据库

该数据库主要借助哈希表的结构,使用一个特定的键和一个指向特定数据的指针,利用键来完成对数据库中数据的添加、删除和查询操作,这种结构具有很好的扩展性,使系统具有较高的性能,Memcached、Redis、MemcacheDB都是键值数据库的典型代表。

3.4流式数据库

基本理念是数据的价值会随着时间的流逝而不断减少,因此,需要使式数据库来实现流式计算。流式计算处理模式是将源源不断的数据视为数据流,它总是尽可能快速地分析最新的数据,并给出分析结果,也就是尽可能实现实时计算。典型流式数据库:SparkStreaming、Storm。

4大数据SQL

大数据查询分析是基于互联网的相关服务的增加、使用和交互模式中的核心问题。由ApacheLucene的创始人DoungCutting使用GFS、Map-Reduce技术支持创建的ApacheHadoop,是一个能够对大量数据进行分布式处理的软件框架。Hadoop技术无处不在,其发展得益于Google发表的关于GFS和MapReduce的论文。在开源世界,ApacheHadoop的分布式文件系统HDFS和HadoopMapReduce完全是谷歌文件系统GFS和MapReduce的开源实现。Hadoop项目已经发展成为一个生态圈,触及了大数据领域的各个方面。由Google的BigTable和Amazon的Dynamo使用的NoSQL数据库,提倡使用非关系型的数据存储,这一全新的思维的注入,打破了关系型数据库管理系统在商用数据库领域几十年的统治性地位。

第2篇

一般认为SaaS是由提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房、招聘IT人员,即可通过互联网使用信息系统。就像打开自来水龙头就能用水一样,企业根据实际需要,从SaaS提供商租赁软件服务。

目前世界上许多跨国信息技术行业的公司都在开发基于SaaS的产品和服务,为未来互联网的发展提供技术平台,而电子商务是近年来互联网应用最受瞩目的领域。因此SaaS模式的普及必将对电子商务的发展产生深刻的影响。

正如10Gen工程副总裁Geir Magnusson所指出那样,在未来我们将很难找到关系数据库的影子,这是因为关系数据库不适用于分布式环境。SaaS的普及要求我们必须重新审视我们做事的方式。

时下的许多新型数据库,包括Google的Bigtable,Amazon的SimpleDB,10Gen的Mongo,AppJet的AppJet数据库以及甲骨文开源BerkelyDB。这些数据库没有一个是关系型的。而这些数据库具有一些共同特征,就是都特别适用于服务云计算式的应用。它们中的大多数可以在分布式环境中运行,这意味着他们可以分布在多个地点的多台服务器上。它们本质上都不是事务性的,并且都牺牲了一些高级查询能力以换取更好的性能。在很多情况下,这些数据库可以通过对象调用来检索,而不用SQL。

尽管大型关系数据库已经被应用在很多数据处理中心,但SaaS需要一种不同的设置来充分发挥其潜力。试想,在跨越地理空间距离之间执行复杂查询以便减少响应时间、设计和维护支持不同位置的相关数据备份、在一个点瘫痪时能保证该数据同步、维护和运行这样的体系并非易事。因此,数据库组成部分在不同位置的分散对SaaS很必要,这也是SaaS产生的原因。更重要的是SaaS体系结构具有不同于目前使用的关系型结构的属性,在SaaS体系结构里,关系不复存在,人们以群集形式看待数据。

目前用户所使用的传统数据库开发软件系统本质应该叫数据库软件系统,是一个数据库系统,开发这样的系统非常简单,成本也非常低廉,只要根据需求先设计好数据表结构,然后,设计编写大量SQL语句,虽然也使用JAVA/PHP/.NET等语言,但实际上这些语言只是将SQL送往数据库执行的运输工,没有什么价值和地位。所以,这样的系统运行在互联网环境下,主要负载就集中在数据库的SQL运行上,也就是说:整个软件系统性能关键点就集中在数据库上了,数据库是性能的主要承担者,尽管用户使用的有可能是Websphere/weblogic等应用服务器,但是由于Java只是运输工,所以起不到性能上分散负载的作用。

正是由于以上种种原因,有专家认为SaaS的普及对关系型数据库的应用将产生巨大的影响,而绝大多数电子商务系统所使用的数据库还是基于关系型的数据库,未来随着云计算的大量应用,势必对电子商务数据库的构建产生影响,进而影响整个电子商务技术的发展。

第3篇

关键词:对象关系数据库;面向对象;AMOS II

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)34-2016-02

A New Generation of Object-Relational Database: AMOSII

LIU Yan-hong1,2

(1.Nanjing Institute of Industry Technology Information Engineering, Nanjing 210046, China; 2.Nanjing University of Aeronautics and AstronauticsCollege of Information Science and Technology,Nanjing210016,China)

Abstract: Object-relational database can be combined with a single relational database system and a single object-oriented database system. It overcomes their limitations and is a new direction for research and discussion. AMOS II is the latest generation of object-relational database and has powerful object-oriented features. It provides the features and functions that a large number of next-generation database should have. The case of AMOS II fully reflects the advanced nature of the relational database.

Key words: object-relational database; object oriented; AMOS II

1 引言

随着数据库技术的发展,原有的数据库系统很难适应新的应用领域中的复杂对象和这些对象的复杂行为的需求。新的应用需求推动了数据库技术的研究, 其中最重要的研究方向之一就是使用一种与人们认识客观事物的过程一致的方法, 这就是面向对象的方法。这种方法大大提高软件开发的效率。对象关系数据库是面向对象技术与数据库技术相结合的产物。

2 对象-关系数据库

对象关系数据库兼有关系数据库和面向对象的数据库两方面的特征。即它除了具有原来关系数据库的种种特点外,还应该提供以下特点:

1) 允许用户扩充基本数据类型。即允许用户根据应用需求自己定义数据类型、函数和操作符,而且一经定义,这些新的数据类型、函数和操作符将存放在数据库管理系统核心中,可供所有用户公用。

2) 能够在SQL中支持复杂对象。由多种基本类型或用户定义的类型构成的对象。能够支持子类对超类的各种特性的继承,支持数据继承和函数继承,支持多重继承,支持函数重载。能够提供功能强大的通用规则系统,而且规则系统与其他的对象-关系能力是集成为一体的。

3 新一代对象关系数据库的优势

3.1 传统的关系数据库的缺陷

传统的关系数据库局限性为:

1) 面向机器的语法数据结构,数据模型单一,数据类型简单、固定。

2) 不能依据某一类型的数据类型来扩展数据类型。

3) 结构与行为完全分离。

4) 存储管理的对象有限,事物处理能力较差。

3.2 新一代对象关系数据库的特征和功能

1) 数据库应支持复杂的数据类型,并能存储和处理复杂对象。还要具备支持用户自定类型和可扩展能力。

2) 数据库必须对其它系统开放。

3) 系统必须具有可移植性,可连接性,可扩展性和可互操作性。实现程序设计语言和数据库语言的无缝的集成。

4 AMOS II应用案例分析

AMOS II是最新一代的对象关系数据库,它充分体现了对象关系数据库的强大功能。

4.1 学生课程成绩查询案例

有若干学生,学生信息包括学号,姓名,班级。有若干选修课程,课程信息包括课程号,课程名,成绩。实现功能:1、通过查询语句,可以查看所有的学生信息和课程信息。2、输入学生信息如姓名,可以查看到他所选课程的相关内容。3、输入课程名称可以查看到选这门课的学生姓名。4、输入学生姓名,可以统计出该生选的所有课程名称和课程数。

4.2 案例设计与分析

1) AMOS II具有面向对象数据库的特点。

在OODB中, 用类来描述对象的结构特征和行为特征。它有下面的定义形式:

class < 类名> [ (参数表) ]properties

{类的特征}

在本案例中课程和学生类设计如下:

create type kecheng properties(

sid charstring,//课程号//

sname charstring,//课程名//

scoreinteger //期末成绩//

);

create type student properties(

tidcharstring,//学生号//

tname charstring,//学生姓名//

banjicharstring //班级//

);

创建kecheng的对象并且赋值用以下命令:

create kecheng(sid, sname,score) instances

:s1("01","Chinese",91),:s2("02","English",90),

…;

创建student的对象并且赋值用以下命令:

create student (tid, tname, banji) instances

:t1("08001","zhangsan","3ban"),

:t2("08002","lisi", "4ban"),

…;

函数设计举例如下:

create function o_derect(student nonkey)-> as stored;

//输入参数student类,返回该学生所选课程的元组//

create function sname(kecheng nonkey)->charstring as stored;

create function tname(student nonkey)->charstring as stored;

create function tid(student nonkey)->charstring as stored;

…;

以上定义的源代码保存在文件lyh.amosql中。AMOSQL类似于SQL语言。例如用下面命令对学生信息进行查询:

select tin (x), tname(x), from student (x);

在AMOS II中运行并得出结果,如图1。

这些类、对象、属性和函数的设计,充分体现了面向对象技术的特点。

2) AMOS II具有强大的可扩充功能。

AMOS II提供的Java函数的接口。在AMOS II中可以调用用户自定义的Java函数。

本案例用Java语言定义函数tongji()并保存在名为lyh.java的文件中。该函数的功能是接受输入参数为学生名,输出该学生所选择的课程名并统计出课程个数。

为了能在AMOS II调用该函数,需要在javademo.osql文件中添加下面的语句:

create function tongji(charstring)->charstring as foreign "JAVA:lyh/tongji";

运行后如图2所示。

这充分体现了AMOS II允许用户根据应用需求自己定义数据类型、函数,具有强大的可扩展功能。

5 总结和展望

综上,对象―关系数据库是面向对象技术与数据库技术相结合的产物。AMOS II是最新的一代对象关系数据库,具有强大的面向对象的功能。从学生课程成绩查询案例,可以看到AMOS II具有面向对象数据库的特点,允许用户根据应用需求自己定义数据类型、函数和操作符,具有强大的可扩展功能,体现了对象关系数据库的先进性。本文用具体案例介绍了在AMOS II中如何定义类,对象和函数,和如何调用Java自定义函数,实现统计函数的功能。

对象―关系数据库技术还处于研究发展阶段,在很多方面它还面临很多的挑战,例如对象―关系数据库还可以从面向对象数据库那里吸收养分和研究成果,如路径索引、对象聚集等。相信对象―关系数据库有着美好的发展前景。

参考文献:

[1] 赵志升,许素文,杨小姝.对象――关系数据库管理系统及其特性与实现[J].电脑开发与应用,2002,15(8):47-48.

[2] 王治.对象―关系数据库技术及其发展[J].九江师专学报:自然科学版,2003,22(5):86-88.

第4篇

关键词:XML;DOM;关系数据库;转换

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)13-2988-03

The Data Transformation Methods for XML Documents to Relational Databases Based on DOM

ZHU Xing-tong

(School of Computer and Electronics Information, Guangdong University of Petrochemical Technology, Maoming 525000, China)

Abstract: With the popularity of Internet and the rapid development of Web technology, XML is quickly becoming the standards for data representation and exchange, the emergence of a large number of XML data in order to achieve fast query and efficient exchange of data, you need to transform from XML document to a relational database. This article describes the data transformation methods for XML documents to relational databases based on DOM.

Key words: XML; DOM; relational database; transform

1 XML技术

XML[1]是eXtensible Markup Language的缩写,称为可扩展标记语言。1998年2月W3C正式推出了XML(XML1.0)。XML的前身是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,它可以标记任何一种事物。XML的跨平台型,它提供了一种不同的应用程序之间进行数据库交换的公共标准,是一种公共的交互平台。XML文件是由标记以及它所包含的内容构成的文本文件,这些标记可自由定义,其目的是使得XML文件能够很好地体现数据的结构和含义。W3C推出XML的主要目的是使得Internet网络上的数据相互交流更方便,让文件的内容更加显而易懂。

W3C XML1.0规范给出一种XML通用数据模型。XML文档定义为具有一个名字和根元素。一个XML文档有一棵树组成。一棵XML文档树是一个节点的集合,其中每个节点至少有一个父节点,并可以有多个有序的孩子节点。一个XML文档存在六种类型的节点:

1)声名节点。包括XML声明信息和DTD声明信息。

2)元素节点。每个元素节点有一个名字、一个父节点、一个属性节点集、一个有序的由元素节点、字符数据节点和注释节点组成的孩子集。其中根元素节点没有父元素,而且每个文档只有一个根元素节点,它引用整个XML文档资源。

3)字符数据节点。文档中的字符数据字符串,包括CDAT段。

4)属性节点。每个属性节点有一个元素父节点、一个属性名和一个属性值。多值属性例如IDREFS,分成多个节点。

5)注释节点。由一个该文注释组成。

6)处理指令节点。由一个目标和数据组成。

下面给出一个XML文档例子。

XML实用教程

范立锋

24

人民邮电出版社

智能计算

曾黄麟

28

重庆大学出版社

2 文档对象模型(DOM)

XML解析器是XML和应用程序之间的一个软件组织,为应用程序从XML文件中解析出所需要的数据,XML解析模型如图1所示。

文档对象模型(Document Object Model,DOM)提供了一种从其他的应用程序中调用或管理XML数据的方法。处理方法是将一个XML文档看作一个对象,通过固定的方法和属性对XML文档的不同标记进行读写。DOM规范的核心就是树模型,对于要解析的XML文档,解析器会把XML文档加载到内存中,在内存中为XML文件建立逻辑形式的树,上面XML文档例子对于的DOM树图2所示。DOM就是XML文档的一个结构化的视图,它将一个XML文档看作是一棵节点树,而其中的每一个节点代表一个可以与其进行交互的对象。树的节点是一个个的对象,通过操作这棵树和这些对象就可以完成对XML文档的操作,为处理文档的所有方面提供了一个完美的概念性框架。通过DOM解析器处理XML文件效率高,但是,十分消耗系统的资源,比较适合复杂但相对较小的文件。DOM解析器解析XML文件需要下列几个步骤:

1)建立一个DOM解析工厂;

2)通过解析工厂创建DOM解析器;

3)解析指定的XML文件;

4)根据标记名称获得node标记列表;

5)遍历每一个node节点;

6)获得标记内容。

3 XML文档到关系数据库的数据转换

XML文件和关系数据库有很多相似之处,关系数据库采用二维表方式存储数据,XML文件通过标记之间的关系来描述数据。关系数据库提供了对于大批量数据的有效存储管理和快速信息检索、查询的功能。XML文件是基于标记的文本文件,兼容性好,便于组织、解析和交换数据。某个系统获得一个XML文件后,可能需要将XML中的某些标记包含的文本内容转化为数据库中表的一条记录,以便发挥关系数据库在管理数据方面的优势;另一方面,一个应用系统可能需要将关系数据库表中的某些记录转化为一个XML文件,以便与其他系统交互数据,发挥XML文件在数据交换上的优势。

要把XML文件中数据写入关系数据库中,首先需要利用解析器解析出XML文件中的数据,再利用某种技术获得数据库的连接,把数据写进数据库。Sun 公司制定了 JAXP(Java API for XML Processing) 规范,用于在 Java 程序中以一种标准的方式对 XML 文档进行处理。将XML中的某些标记中的内容转化为数据库中表的一条记录,主要步骤如下[5-6]:

1)使用DOM解析器获取标记中的数据;

2)连接数据库,将获取的文本数据作为一条记录添加到数据库。

下面给出使用Java语言开发的基于DOM的XML文档到SQL Server2000数据库的数据转换的实例,实现把上面XML文档例子的数据写入SQL Server2000数据库中books表中,主要代码如下。

public class XMLToDatabase{

public static void main(String args[]){

Connection con=null;

Statement sql=null;

ResultSet rs=null;

try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(Exception e){

System.out.println(""+e);

}try { con=DriverManager.getConnection("jdbc:odbc:books","","");

sql=con.createStatement();

DocumentBuilderFactory factory=

DocumentBuilderFactory.newInstance();

factory.setIgnoringElementContentWhitespace(true); //忽略缩进空白

DocumentBuilder domPaser=factory.newDocumentBuilder();

Document document=domPaser.parse(new File("books.xml")) ;

Element root=document.getDocumentElement();

NodeList list1=root.getElementsByTagName("title");

NodeList list2=root.getElementsByTagName("author");

NodeList list3=root.getElementsByTagName("price");

NodeList list4=root.getElementsByTagName("publisher");

int size=list1.getLength();

String [] title=new String[30];

String [] author=new String[20];

double [] price=new double[4];

String [] publisher=new String[30];

for(int k=0;k

Node titleNode=list1.item(k);

Node authorNode=list2.item(k);

Node priceNode=list3.item(k);

Node publisherNode=list4.item(k);

title[k]= titleNode.getTextContent().trim();

author[k]=authorNode.getTextContent().trim();

String str=priceNode.getTextContent().trim();

price[k]=Double.parseDouble(str);

publisher[k]=publisherNode.getTextContent().trim();

String insertData="INSERT INTO books VALUES('"

+ title[k]+"','"+ author[k]+"','"+ price[k]+"',"+publisher[k]+")";

sql.executeUpdate(insertData);

}con.close();

}catch(Exception e){ System.out.println(e); }

}}

运行上面的程序将前面的XML文档例子中的数据转换到SQL Server2000数据库中,books表中的数据如图3所示。

4 结束语

关系数据库系统相当成熟,把XML文档数据转换到关系数据库中,可以发挥关系数据库在管理数据方面的优势.本文介绍的利用Java语言实现基于DOM的XML文档到SQL Server2000数据库的数据转换方法,经实例验证是正确可行的。利用Java语言与DOM相结合来解析XML文档,需要把XML文档全部加载到内存中。如果XML文档非常庞大,以及解析器耗尽内存,就会造成内存溢出异常。

参考文献:

[1] W3C.Extensible Markup Language (XML) 1.0 (Fifth Edition)[EB/OL]./TR/2008/REC-xml-20081126/.

[2] 朱珊娜,李书琴,安福定.XML文档到关系数据库的转换研究[J].计算机工程与设计,2008,29(21):5507-5509.

[3] 林耀进.基于实现XML文档与关系数据库转换的方法[J].计算机与现代化,2007(6):43-45.

[4] 蔚晓娟,冉静,李爱华,等.基于DOM的XML解析与应用[J].计算机技术与发展,2207,17(4):86-88.

[5] 范立锋.XML实用教程[M].北京:人民邮电出版社,2009.

第5篇

在计算机网络设计活动中,关系数据库技术是一种辅助手段,为计算机网络设计活动提供数据支持。在计算机网络设计活动中,关系数据库的巨大容量和包含数据信息种类的多元性,为计算机网络设计活动提供了充分的数据资源支持。在关系数据库的运用活动中,使用者只需要在关系数据库中进行数据的赋值就可以进行关系数据的存取和调用活动,让网络设计活动中遇到的数据和数值问题能够得到及时、有效的解决。而在传统的数据库运行活动中,数据库的录入和调用需要借助人工操作来完成,这种数据库运行模式不仅极大的浪费了人力资源,而且在数据运行的效率和质量上也有很大的缺陷,经常会导致数据的输入、输出环节出现错误,甚至会极大的拖延网络设计活动的进程。当采用关系数据库以后,数据库以网络设计活动为服务对象,对内部的数据信息内容进行了关联化的处理,让数据库由过去的数据堆积体衍变成为一种数据的有机管理主体,内部的网络设计数据与常用的数据关系连接起来,并采用基于可扩展语言设计了数据库与使用者之间的信息交互界面,让关系数据库可以与使用者进行数据关系形式的交流,并根据使用者的数据要求对内部数据信息进行整理、关联。实现了计算机网络设计活动数据管理的智能化。

2关系数据库技术在计算机网络设计中的基本原理

在计算机网络技术发展的过程中,数据库技术存在着众多的种类,其中根据数据库模型的运行模式可以分为:网状模型数据库技术、层次模型数据库技术以及关系数据模型数据库技术。这些数据库技术在不同的计算机网络设计活动中有各自的优势,其中关系数据模型数据库技术,以其完美的数据连结技术和高度的数据模型适应性,成为计算机网络设计活动中通用的一种数据库技术。其在运行过程中展示出的完善的数据连结性,能够在计算机网络设计活动中,对任何相关的计算机网络数据进行关联,并能够在一定数据基础上对多种数据进行综合性的关系链接。这种数据信息服务的全面性和数据链接服务形式的多样性,能够极大的满足计算机网络设计活动中多样化的数据信息需求,所以在具体的计算机网络设计活动中成为使用者首选的数据库类型,被广泛的应用于计算机网络设计中。计算机网络设计活动是一个复杂、系统的工程性活动,在其运行活动中要求下属的各个模块都要最大程度上的兼具数据信息服务的全面性和便捷性。在关系数据库中这一系统要求被很好的体现了出来,关系数据库拥有自己管理信息交互平台,能够基于C语言等网络编程语言与使用者进行数据库信息的交流,提高了数据库使用的便捷性和全面性。在计算机数据库软件系统结构中包含着两个数据库访问系统,一个是开放数据库连接性(ODBC),一个是数据访问对象(DAO),这两个数据库访问系统相互独立,能够单独向用户提供数据信息服务。其中ODBC不仅能够基于SQL语言与使用者进行数据信息交互,而且对C语言和SQL数据库之间的访问机制进行了定义,让使用者可以通过C语言这样一种计算机网络设计活动中常见的语言形式与数据库进行信息交互,保证了关系数据库对计算机网络设计活动数据信息交互,让计算机网络设计人员能够通过其最常用的信息交互方式与关系数据库进行交流,保证了关系数据库与计算机网络设计活动积极、有效的互动。DAO为计算机网络设计提供了数据库机制,这一机制是从关系数据库的整体出发对关系数据库内部组成部分和内容的一种规范。当一个关系数据库体系结构由多个DAO构成时,DAO自身的数据库管理机制就会发挥作用,从DAO自身的数据资源特点出发,对关系数据库整体进行协同管理,保证整个关系数据库的数据信息服务的高效进行。DAO的这种自我管理机制和其自身的数据访问对象本质是相互分离的,在具体的管理活动中自我管理机制和数据访问对象能够进行各自独立的管理,让每一个DAO都可以在保证自身数据访问对象性质的基础上,同时实现自身和DAO群体的管理,这种各自独立的数据访问对象管理和运行管理,在保证DAO数据服务对象专业性的同时,也方便了自身的升级改造。而且在关系数据库运行活动中,DAO可以链接相应的网络数据库,实现数据资源的网络化共享和管理。

3关系数据库在计算机网络设计中的优势

关系数据库在计算机网络设计中具有强大的数据存储功能,以及简便的数据转换功能等强大的优势,以下将对关系数据库在计算机网络设计中的优势进行详细的阐述。

3.1强大的数据存储功能

强大的数据存储功能,是关系数据库在计算机网络设计活动中运用的主要优势。随着计算机网络设计应用范围的不断扩大,计算机网络设计活动的内容含量越来越大,内容的组成形式也变得越来越复杂,面对计算机网络设计活动这样一种发展趋势,相应的关系数据库的数据储存能力和数据管理能力变得极为重要。关系数据库的应用,不仅能够对计算机网络设计活动中需求和产生的大量计算机网络设计数据进行及时的存储,而且能够借助内部管理机制的帮助,对这些数据进行有效、准确的规划和管理。关系数据库的应用让计算机网络设计活动的数据管理环节,成为计算机网络设计环节的一个效率增长点。在具体的操作活动中计算机网络设计人员,可以利用数据库强大的数据存储功能将设备参数输入到网络拓扑结构中,进而借助网络拓扑结构对关系数据库进行高效、快捷的操作。如果不能有效的利用关系数据库的辅助作用,有效管理复杂的数据信息,那么计算机网络设计势必会陷入困境中。

3.2简便的数据转换功能

关系数据库在计算机网络设计活动中的优势,还体现在不同数据之间的转换功能。在计算机网络设计活动中,因为设计活动本身可能会涉及到社会经济的各个领域,自身的设计形式也会因为网络设计目标的不同而大相径庭,在计算机网络设计活动中,计算机网络设计的数据从呈现形式和传递方式上都是有本质上的不同的,所以在对计算机网络设计数据进行管理的时候,不同数据之间的转换是一个关键性的问题,只有解决了计算机网络设计活动中的数据转换和数据转换效率的问题,才能促进计算机网络设计活动高效进行。关系数据库在计算机网络设计活动中的应用在一定程度上解决了这一关键性问题,因为关系数据库本身存在的关联性,就是要从两组不同数据中寻找共同点,并基于这些共同点建立二者之间的普遍联系,关系数据库的这种工作机制,在不同形式的数据之间的转换活动中也有积极的作用。数据的两种不同呈现形式本质上也是两种不同数据之间联系的一种体现,二者之间本质内容和内在逻辑的联系是普遍存在的。关系数据库可以根据这一特点,结合自身的工作机制,对二者进行本质上的联系,这样一种在计算机网络设计活动中复杂无比的问题,在关系数据库的参与下立刻变得可实现、可操作。关系数据库的存在只是解决了计算机网络设计活动数据转化能力的有无问题,只有强化计算机网络设计活动中数据转化能力的效率和便捷性,才能在网络设计的实际工作中起到更加积极的效果。所以在关系数据库的建立健全活动中,对其自身的数据转换能力的强化,是关系数据库发展完善的未来方向。这一改进必须要将关系数据库的数据转化能力与关系数据库的信息交互系统结合起来,保证使用者对关系数据库的数据转换能力有更加直接的参与和应用,同时要结合计算机网络设计活动发展的实际,对网络设计活动中可能会涉及到的数据呈现形式进行系统、详细的统计,并在关系数据库中对这些数据的呈现形式进行广泛的应用。具体而言,就是要在关系数据库中,对计算机网络设计活动中可能会涉及到的数据呈现形式进行定义,并设置相应的数据转化机制,在对数据信息进行存储时,尽量选择应用范围最广的数据呈现形式进行存储,以最大限度的保证计算机网络设计活动的数据需求,同时也要定义好各种数据呈现形式的转化机制,在使用者产生特殊的数据呈现形式需求时,能够运用相应的数据转换机制,进行数据呈现形式的转换,以保证计算机网络设计活动的高效进行。

4结束

第6篇

[关键词]关系数据库SQL查询对策

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1210080-01

在各类大型应用软件的数据库中,都存在大量的数据信息和记录,经常要对它们进行各种数据操作。SQL(Structrued Query Language)作为结构化查询语言,是大型计算机操作关系数据库的标准查询语言,同时也广泛地应用到小型计算机的数据库管理系统中。它是一种高度非过程化的语言,即只要用户按其语法规则写出符合操作要求的语句,而并不需要告诉系统应如何执行SQL语句,就可得到所要求的结果。随着数据库技术的广泛应用,在数据库程序的开发过程中,大量的工作是要进行数据查询和检索处理。本文从SQL查询语句执行的过程入手,对其执行效率进行分析,并给出参考性建议和优化策略。

一、SQL语句执行过程解析

在平时书写SQL查询语句时,虽然每个人的写法不尽相同,而且有时个别子句顺序并不影响操作结果,但是在各种数据库管理系统中,标准的SQL的解析顺序为:

1.FROM子句,组装来自不同数据源的数据;

2.WHERE子句,基于指定的条件对记录进行筛选;

3.GROUP BY子句,将数据划分为多个分组;

4.使用聚合函数进行计算;

5.使用HAVING子句筛选分组;

6.计算所有的表达式;

7.使用ORDER BY对结果集进行排序。

通过以上SQL语句的解析过程,我们可以对SQL查询语句进行优化处理。SQL查询语句的核心结构是SELECT…FROM…WHERE,了解了这个基本结构,我们可以从以下几个方面对其进行优化处理。

二、效率分析及优化对策

(一)从From子句入手

From子句后面接单表或者多表,通常情况下接受来自不同数据源的多表。如果是单表,一般情况下对表进行快速全表扫描。如果是多表的情况,查询设计优化器将采取自右向左的顺序依次读取数据表。如以下语句:“From table1,table2,table3”,优化器将优先读取table3表,然后是table2表,最后是table1表。在进行From子句的多表连接时,就需要结合条件子句WHERE进行分析,需要遵循下面的规则:1. 当WHERE后面接的条件能够一次性过滤某个表的大量记录时,应优先处理该表。2. 如果WHERE后面接的条件不能过滤掉大量记录时应该优先考虑处理记录数最少或者索引关键值最少的表。

(二)从条件子句WHERE入手

WHERE子句后面通常接过滤条件,对表的记录进行筛选,筛选出符合条件的记录。如果SELECT查询语句没有WHERE子句,则无须对表记录进行过滤。若后面接单个表,则通常顺序扫描全表。若后接多表或者大量记录表时,则可以考虑用索引来减少查询的时间。所以在查询前可对各个表建立比较的索引。对WHERE子句中出现的条件,可以依据以下原则首先来驱动查询。

(1)建立索引字段的列比没有建立索引的要快;(2)主索引要比普通索引快;(3)单索引要比符合索引快;(4)有条件约束要比没有条件约束要快。

此外,WHERE子句通常采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。根据以上原则,我们可以判断出以下四个语句中哪个选项语句效率最高。

Select * Frommobilewhere (mobileno='13775637677') andbegINtime>

{^2009-1-308:20:11} andbegintime

B) SELECT*Frommobilewhere(mobileno='13775637677' )andbegINtime

{^2009-1-30 8:20:11} andbegintime>{^2009-1-30 8:20:11}

C) SELECT*Frommobilewherebegintime

{^2009-1-308:20:11}and(mobileno='13775637677' )

很显然,综合以上原则C选项效率最高。

(三)从GROUP BY和HAVING子句入手

在SELECT语句中,GROUP BY语句的作用是对记录进行分组(划分成较小的组),使用聚合函数返回每一个组的汇总信息,而HAVING子句限制返回的结果集。在一个SQL语句中可以有WHERE子句和HAVING子句。HAVING与WHERE子句类似,均用于设置限定条件。WHERE子句的作用是在对查询结果进行分组前,将不符合WHERE条件的记录过滤掉,而HAVING子句的作用是筛选满足条件的组,即在分组之后过滤数据,但它不能单独使用,只能配合GROUP By语句使用,该条件中经常包含聚组函数,使用HAVING条件显示特定的组,也可以使用多个分组标准进行分组。虽然HAVING子句可以起到过滤的作用,但是要尽量避免使用HAVING子句,HAVING只会在检索出所有记录之后才对结果集进行过滤。这个处理需要排序,总计等操作。如果能通过WHERE子句限制记录的数目,而且能尽早地把不满足条件的记录过滤掉,那就能减少这方面的开销。

(四)从谓词等方面入手

在SELECT语句中,由于实际需要,查询语句会经常出现谓词。常用的谓词有EXIST,NOT EXSIT,IN,NOT IN等,巧用谓词也会提高SQL语句的执行效率,可参考以下原则编写SQL语句。

1.Where子句中尽量不要使用IS NULL或IS NOT NULL的语句,因为它们不会使用索引。

2.WHERE子句尽量不要将通配符(%)放在搜寻词首出现,通配符(%)在搜寻词首出现不会使用索引。

3.用EXISTS代替IN。在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下,使用EXISTS(或NOT EXISTS)通常将提高查询的效率。

4.用表连接代替EXISTS。通常来说,采用表连接的方式比EXISTS更有效率。

5.用EXISTS代替DISTINCT。当提交一个包含一对多表信息(比如班级表和学生表)的查询时,避免在SELECT子句中使用DISTINCT。一般可以考虑用EXIST替换。

6.WHERE子句尽量少使用NOT或是,应该成OR来实行,使用OR时应该把结果集小的条件放在前面。

7.UNION改用UNION ALL,UNION要对合并的结果进行排序,UNION ALL不排序。

8.ORDER BY子句中尽量不要使用非索引列。

三、结语

通过对SQL查询语句执行过程的分析,可以从以上几个方面对其进行优化改进,从而提高了数据库查询和检索的效率。当然,具体的查询语句还要根据具体需要,并结合具体的数据库系统而定。只有多总结多积累才能写出高质量高效率的查询语句,当然这只是提高数据检索的一个方面,在其他方面的设计也要进行优化,如对表建立必要的索引,减少表之间的连接,或尽量在索引属性列上建立连接等。总之,通过以上几个方面的综合优化,一定会使数据库查询与检索效率有很大的提高。

参考文献:

[1]王振辉、吴广茂,SQL查询语句优化研究[J].计算机应用,2005,25(12).

[2]徐凤梅,关系数据库中SQL查询语言的优化策略[J].广西轻工业,2009,126(5).

[3]邓文艳,基于关系数据库的查询优化技术[J].太原科技,2007(12).

[4]杨克昌,Visual FoxPro程序设计教程[M].长沙:湖南科学技术出版社,2004.

[5]李莹、代勤,关系代数运算与SQL查询的对应关系[J].内蒙古农业大学学报(自然科学版),2003,24(3).

第7篇

【摘 要 题】信息资源建设

.

【关 键 词】非结构化WEB数据库/多媒体/信息资源/组织利用/关系数据库

【 正 文】

1 非结构化WEB数据库简介

非结构化WEB数据库,是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的基于INTERNET、INTRANET的数据库,用它不仅可以处理结构化数据(如数字、符号等信息)而且更适合处理非结构化数据(全文文本、图象、声音、影视、超媒体等信息)并在互联网上。非结构化WEB数据库主要是针对非结构化数据而产生的,与以往流行的关系数据库相比,其最大区别在于它突破了关系数据库结构定义不易改变和数据定长的限制,支持重复字段、子字段以及变长字段并实现了对变长数据和重复字段进行处理和数据项的变长存储管理,在处理连续信息(包括全文信息)和非结构化信息(包括各种多媒体信息)中有着传统关系型数据库所无法比拟的优势。

2 图书馆多媒体信息资源的特点及组织利用中的技术要求

2.1 图书馆多媒体信息的数据量非常大,象馆藏影视资料和各种多媒体教育资料,其动态图象信号,每秒可达数兆字节,一段几分钟的MP3音乐也有几兆字节,即使经过压缩、也十分巨大。如何对多媒体海量数据进行有效地组织、存储并构成WEB数据库提供给用户网上使用,技术要求很高。

2.2 馆藏多媒体信息的数据类型很多,包括各种图文数据、声音数据、影视数据、超媒体数据、多种格式的随书光盘等等,其数据长度不固定,结构上的差异大,使得处理这些数据十分困难,要求数据库既能够处理可变长度字段又能够处理可重复的子字段。

2.3 多媒体信息处理在时间上要求很高,多媒体信息中的声音和动态图像对时间特别敏感,在使用这些信息时,必须保证其时间上的要求,否则将会使这些信息失真甚至变得毫无意义。

2.4 开发利用馆藏多媒体信息资源经常要多种信息集成描述,比如某种多媒体,既有图像,又有声音,还有文字说明,这样就会改变传统的数据库操作形式和数据库接口,尤其对图文并茂的数据库的建立和查询,需要统一语义描述。

基于多媒体信息资源的上述特点,要想使馆藏丰富的多媒体信息资源得到充分利用,满足信息用户不断增长的信息需求,对多媒体信息处理提出了不同于普通信息处理技术的新要求:

(1) 多媒体数据库元数据存储技术要求

我们知道音频、图象、视频等多媒体信息数据是非结构化的,它们不能用简单的数字解析式表示,多媒体数据库必须取得基于这些媒体对象内容及信息特征的解释,才能完成存储及应用,这些解释就称为元数据,通过对元数据的归类、整理、实现标准化的存储是多媒体信息资源组织利用的关键。多媒体数据库元数据存储技术要求包括:文本元数据的存取,语音元数据的存取,图象元数据的存取,视频元数据的存取等方面的技术要求。

(2) 多媒体数据库结构字段设计与数据记录处理方面的要求

a.允许可变长字段、可重复字段、子字段和MARC字段。

b.数据库记录的数目与记录长度,字段数目与字段长度,字段可重复次数不应受到限制。

c.允许建立可以快速存取的倒排文件和多媒体、多语言记录表。

d.数据库可自动接受和产生MARC和ISO2709记录格式的文件,并且满足对MEDADATA数据模式的支持功能。

(3) 基于WEB的多媒体信息检索与信息的技术要求

随着用户对于信息需求的大量增加,以及对于多媒体信息的实效性要求,基于WEB的数据库信息存储的检索越来越倾向于多媒体全文信息检索的查询语言,并且对于检索结果的需求也侧重于多媒体全文信息的获取。与此同时,WEB数据库的信息形式开始更多地过渡到通过网络浏览器以多媒体电子文档的方式(B/S)传输给网上用户。也要求利用多媒体WEB传输技术,向用户提供主动的特定多媒体信息的推送服务。

3 非结构化WEB数据库的特点及其在组织与利用多媒体信息资源中的作用

3.1 丰富的数据类型与灵活的数据结构,满足多种类型馆藏多媒体数据结构组织

根据非结构化多媒体数据信息的特殊性,非结构化WEB数据库在进行存储和管理多媒体信息时,整个数据库的管理机制摈弃了传统结构化关系数据库对于信息采取定长和结构化定义和管理的局限,它从多媒体数据模型入手,采用子字段、多值字段以及变长字段的机制,允许创建许多不同类型的非结构化或任意格式的字段,从而突破了关系数据库非常严格的表结构,解决了关系数据库模型过于简单,不便于表达复杂嵌套的问题。非结构化WEB数据库在数据类型上不仅支持字符型、数值型数据,而且由于具有很强的外部文件支持功能,使其可以支持如超长文本、图像、声音、动画等多种多媒体扩展数据类型。与传统关系数据库相同之处是非结构化WEB数据库的数据结构也是建立在二维表的基础之上的,但它与关系数据库不同的是:(1)非结构化WEB数据库二维表的属性长度是不可变的,在列的维度上可以随意扩展,这就能较好地满足多媒体数据处理时,需要灵活的可变长字段的要求。(2)非结构化WEB数据库由于支持重复字段、子字段,使其可以在数据库记录中实现二维嵌套,解决了非结构化多媒体数据结构复杂、可能存在重复字段和多个嵌套子字段的问题。(3)非结构化WEB数据库一个字段可以存放关系数据库的一张表,它可以在一张表中压缩关系数据库中一对多的关系,因此利用非结构化WEB数据库能很好地实现多种多媒体数据库的集中组织与管理。转贴于

3.2 基于广域网的图书馆海量多媒体数据库存储管理机制的实现

图书馆多媒体信息资源数据库是海量数据库,支持基于广域网的海量多媒体信息存储和管理是非结构化WEB数据库管理系统的主要功能之一,不仅存储数据量大,而且存取速度快,同时检索功能强、检索速度快,在检索速度方面一般不受信息量大的影响。以IBASE非结构化数据库为例,每个数据库最大的记录数可达到1000万条,每条记录的最大长度可达64000字节。每个数据库最多可有800个字段。

第8篇

关键词:结构化数据源;关系数据库;本体建模;组织业务;优化

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)25-5822-03

Ontology Modeling and Organization of Business Optimization Based on Structured Data Source

ZHU Qiang-sheng1, ZHU Xiao-juan2 , LUO Yu-xin1

(1.College of Information Engineering, Nanjing University of Finance and Economics, Nanjing 210046, China;2.College of Electronic & Photoelectric Technology,Nanjing University of Science and Technology,Nanjing 210094, China)

Abstract:This paper studies the ontology modeling method based on structured data source, puts forward ontology modeling and optimization method from the relation database, to achieve the business purpose of simplified optimization and ontology modeling .

Key words:structured data source; relational database; ontology modeling; organization of business; optimization

1 概述

随着经济的飞速发展和企业不断壮大,现代企业的中心已经从组织转变到流程,对流程的分析优化已经成为主要问题。传统的业务优化大都采用人工优化,需要对企业现有的业务流程、组织结构等信息进行分析,且需要时刻了解当前的业务流程,适时提出调整。国外的研究学者们提出企业业务流程重组(Business Process Reengineering,BPR)[1],主要分为两类,一类是在现有的业务基础上进行改造;另一类是重新考虑业务,零起点设计业务。

本体,作为一种“共享概念模型的形式化规范说明”,能够很好的描述业务特征与业务之间的关系,及业务特征与业务特征之间的关系,已经广泛用于现代信息系统。目前,在许多领域中,本体的构建大多为手工构建。这种方式费时费力,同时还需要领域专家及时参与。该文从企业数据库出发,通过数据库逆向工程,构建企业组织业务的本体模型,通过分析模型其中的活动、目标、角色、信息资源等流程的基本要素,在确保活动都能实现的前提下,精简流程,提高效率。

2 结构化数据源的本体建模方法

本体的质量决定了基于本体构建的应用的质量,所以选择合适的数据源并从其出发构建高质量的本体模型是很重要的[2],当前万维网上大量的数据资源主要就是以关系数据库的方式存储[3]。在企业中,企业的人员、机构等信息基本是存入数据库。数据源(数据库、XML文档、Web表格等)的结构化程度有所不同,但是均能够构建高质量的本体模型。

通过已有的数据库,我们可以获取数据库模式信息,根据设计好的映射规则,完成RDM到OWL本体的转换[4],示意图如图1。

图1 RDM到OWL示意图

2.1 关系数据库数据模型的抽取

目前,网络上大量的数据仍然主要以关系数据库的方式存储,其中,我们通过构建关系数据库模式和本体间映射来解决数据库与本体之间的数据互操作性。该文使用Power Designer[5]这个工具,并通过使用其具有的数据库逆向功能,来抽取数据库中的逻辑数据模型以及概念数据模型。

在软件工程界,作为一个比较新兴的领域,逆向工程已经得到广泛的应用。在本文中,我们使用的Power Designer是Sybase公司的CASE工具集,使用它可以方便的对管理信息系统进行分析,它几乎包括了数据模型设计的全过程。可以将目前所有流行的后端数据库(包括Sybase、DB2、Oracle等)的结构信息通过逆向工程加入到Power Designer的物理数据模型和概念数据模型中,包括表、索引、触发器、视图等。

2.2 关系数据库的本体构建规则

利用Power Designer的逆向工程特性,可以直接得到关系数据库的逻辑数据模型和概念数据模型,从而可以得到基本的E-R图。根据我们定义的规则[6],将我们通过逆向工程得到的概念数据模型中的各种关系模式可以映射到本体,得到OWL本体概念或关系。

关系数据模型中的规范关系,我们定义的主要映射规则如下。

R1:如果数据库中有表T1,那么,我们将T1映射到OWL本体模型中,且本体模型中得到的映射类具有相同的名字。T1中的描述转换为同名类的中说明。

R2:如果数据库中有两个表T1,T2,且两表之间具有“父子”关系(T2为T1孩子),那么,我们则将表T1、T2分别映射到OWL本体模型中,分别为作为父类和子类。

R3:如果数据库中表T1存在字段A,且该字段不是外键,那么我们将该字段映射到OWL本体模型中,作为同名数据类型的属性。其中,属性的定义域和值域分别为数据库中表T1对应的类、字段A的数据类型,同时,字段A的描述对应的映射为属性的说明。

R4:如果数据库表T1存在字段A,且字段A为非空、非外键,那么对应于该字段所的数据类型的属性,其基数(cardinality)限制的值是“1”。

如果A的值可以为空,那么对应于该字段所的数据类型的属性,其基数限制(MaxCardinality)的值是“1”。

R5:如果数据库表T1存在字段A不可以为空,且A为外键,那么对于该字段所对应对象,其属性的基数限制(MinCardinality)的值是“1”。

如果字段A的取值可以为空,那么对于该字段所对应的对象,其属性的基数限制(MinCardinality)的值是“0”。

R6:如果关系数据库中有表T1,该表的主键为Aa 与Ab,且字段Aa与Ab 均为外键,Aa 与Ab分别是表Ta与Tb的主键,且该表仅包含主键字段,那么把字段Aa与Bb映射为同名对象的属性,同时存在逆向的(inverse-of)关系。

2.3 关系数据库的本体构建方法

1) 搜集现有的企业关系数据库,或根据企业的需求关系创建自己的关系数据库。由于该数据库已经包含了企业中的各种关系和行业的信息,对于缺乏领域专家或者专家参与不足这样的问题,可以在一定程度上得到解决。

2) 使用Power Designer的逆向功能。从数据库出发,我们将数据库中的索引、表、视图等各种关于数据库结构的信息,通过使用Power Designer的逆向功能,生成物理数据模型(PDM)。通过分析物理数据模型,我们可以得出各个表的主键、外键关系,同时,删除无用的状态属性、冗余表以及扩展属性等,然后对实体表进行合并,获得概念模型,最终获得E-R模型。

3) 定义概念模型到OWL模型的转换规则。根据已定义的转换规则,我们可以将概念模型中的各个表及其数据类型、表-表的关系、属性等模式转换为OWL本体中相对应的模式。

4) 有效性的检验。当用OWL语言描述领域本体模型以后,我们需要评估和检验来判断创建的本体模型的有效性。

方法的流程图如图2所示。

3 基于本体的组织业务优化方法

从企业的关系数据库出发,由概念模型到本体模型转化,建立领域本体,实现领域内知识概念或术语的一致性描述,得到的领域本体模型,该本体模型其反映了企业的组织关系及业务流程可视化的本体模型,可以直观的反映组织业务流程,有利于删除、简化、重排、合并组织业务,但对于结构庞大、处理过程复杂的系统,很难全部人工来实现流程的优化。我们从本体出发,采用U/C矩阵研究组织业务的优化[7]。

3.1U/C矩阵

对于过程和数据之间的关系,我们可以用U/C矩阵来表达,其中,矩阵的行表示数据类,矩阵的列表示功能。在矩阵中,我们用大写字母U(User)来表示数据的使用,字母C(Cerate)来表示数据的产生。U/C矩阵作为一种重要的工具,在管理信息系统(MIS)开发的系统分析阶段得到了重要的应用。U/C矩阵的形式是一张表格,我们可以存在数据库中,这样我们可以通过对数据库的操作,来对其进行操作,分析其正确性。同时,可以利用分析的结果,对U/C矩阵进行子系统的划分。

3.2 利用U/C矩阵研究组织业务优化

1) 根据企业信息系统的业务流程,绘制业务流程图,明确业务数据流向。同时,根据数据流向,确定关系数据库E-R模型中各个实体之间的数据流向,明确时序。

2) 由E-R模型到本体模型的转换。

3) 结合数据流程图和数据流图,建立U/C表,检验U/C矩阵的正确性。我们可以从三个方面来检验U/C矩阵的正确性:完备性、一致性、无冗余性。通过这三个方面的检验,我们可以整理U/C矩阵,对矩阵中行或列的进行移动,使字母“C”尽可能的靠近矩阵对角线,这样我们得到一个新的矩阵排列。

4) 根据得到的新U/C矩阵,划分子系统。

5) 生成通过U/C矩阵优化后的模型,生成新的本体。

3.3结论

1) 对根据企业流程所建立的U/C矩阵,可以对矩阵进行正确性检验和分析。通过检验和分析,其前段调查工作和分析工作中各种疏漏和冗余,可以及时的被我们发现,进而分析出新的改革方案。

2) 通过对U/C矩阵的求解过程,获得子系统的划分。这样,可以降低业务流程的耦合性。

3) 子系统划分完成后,由于各个子系统之间的数据产生和使用相对独立,我们可以根据这个划分结果,对目前组织机构的设置、业务流程的规划进行评价。这样,我们可以改进组织机构设置、完善精简业务流程,进而提高企业的管理质量,降低企业成本。

4 结束语

本文分析了结构化数据源到本体模型的对应关系,这种形式化对应关系包括数据库的结构模型与本体概念框架模型之间的转换关系。给出了一个从概念数据模型到OWL本体模型的转换规则,给出了一种基于结构化数据源的本体建模方法。最后,利用U/C矩阵的相关特性,研究了组织业务优化的方法。

本文仅对基于结构化数据源的本体建模问题进行了研究,同时对利用U/C矩阵来进行组织业务优化的问题进行了探索,设计完善的转换规则和更好组织业务优化方法等工作需要进一步研究。

参考文献:

[1] Hamer M, Champy J.Reengineering the Corporation: A Manifesto for Business Revolution[M].New York:Nicholas Brealey,1993:113-115.

[2] CHANG K C,HE Bin LI Cheng-kai,et al.Structured databases on the Web:observations and implications [J].ACM SIGMOD Record,2004,33(3):61-70.

[3] 车成逸,马宗民,焦晓龙.基于结构化信息源的本体构建方法综述[J].计算机应用研究,2012(7).

[4] 余霞,刘强,叶丹.基于规则的关系数据库到本体的转换方法[J].计算机应用研究,2008,25(3):767-770,785.

[5] 顾平.数据库设计工具Power Designer的研究与实践[J].计算机应用与软件,2004,11(12).

第9篇

关键词:ORM;持久化;实体;事务;映射

前言

Hibernate框架最初是由一个名字为Gavin King的程序员,在2001年根据自己对ORM思想的理解,构建出来的一个Java持久化应用。在推出第一版后,很快得到了编程界的广泛关注,并随后被JBoss公司收购,从此Hibernate框架不断推陈出新,在Java EE持久化领域独占熬头。

1 Hibernate框架应用

Hibernate作为一个持久化框架,其底层对JDBC的API进行了封装,并在上层把自身的API暴露给应用程序业务层的一种全自动类型的持久化框架。其之所以能风靡编程界,与其自身的特性密切相关。

(1)Hibernate框架提供多个级别的缓存来加快数据的读写速度,如:一级的Session缓存、二级的插拔缓存。

(2)Hibernate框架的API及HQL语句具有开发性,能够在不同的关系型数据库中通用,可以实现一次编写,随处运行的思想。

(3)Hibernate框架的实体类中,只要求有对应的set、get方法,而无须引入其它类,因而它是一种非入侵的开发方式。

2 ORM原理与实现

ORM也叫对象关系映射(Object Relation Mapping),是面向对象语言操作持久层的一种有力工具。因面向对象语言与关系数据数据库的交互存在一定的障碍,作为ORM的职责就是在它们中间建立一个交互的渠道,以方便程序与数据层的通信。

ORM的实现方式有很多种,Hibernate是其中的一种开源实现方式,具体实现过程如图1所示。通过ORM插件的映射API及XML映射规则,面向对象语言域模型中的业务实体最终变成关系数据库中的数据表,对象将成为表中记录,属性将映射成表中的字段。应用程序将通过Hibernate框架的HQL语句及实体对象与ORM插件模块进行通信,而关系数据库则通过SQL语句及数据关系与ORM插件模块交互。

3 Hibernate框架组件

Hibernate框架的ORM运作机制以及跨数据库平台执行能力是通过五大核心组件支撑起来,如图2所示。

Configuration接口:从配置文件hibernate.cfg.xml与实体映射文件*.hbm.xml文件中读取相应的配置信息,负责程序运行环境初始化,并构建BeanFatory实例。

SessionFatory接口:代表关系数据库中的逻辑数据源,为重量级组件,一个实例代表一个逻辑库,不能随意创建及销毁。

Session接口:代表关系数据库的连接,轻量级组件,从SessionFatory接口中可取得此实例,该实例中有对关系数据库增、删、改、查的操作API。

Query接口:框架中所有通过HQL语句去操作关系数据库时,都必须通过此组件来实现,从Session接口中取得该实例。

Transaction接口:框架的事务管理接口,所有对关系数据库的写操作都必须在框架中开启事务,否则不会提交到数据库存储层。

4 Hibernate对象管理

当应用程序通过Hibernate API与关系数据库交互时,持久化框架内的实体对象存在着如图3所示生命周期管理过程。

当业务实体对象被通过new的方式刚刚创建时,这时实体对象还未与任何持久化机制发生关联,与普通的JavaBean对象完成一模一样,此时实体对象的状态称之为临时状态,也叫瞬时状态。

当实体对象进入Hibernate的Session缓存时,此时的对象已经跟持久化机制发生关联,实体对象则处于持久化状态。

当实体对象已经变成关系数据库数据表中的某条记录时,且已不存在Session中,此时则称实体对象处于游离状态或脱管状态。

实体对象的状态可以通过框架API的中方法,在三种状态中进行相互的转换。在临时状态下,通过save方法可以使对象变成持久化状态,在持久化状态下则可以通过delete方法,使对象重新返回到临时状态中。在持久化状态下,则可以通过close、clear等方法使对象变成游离状态,反过来,通过lock、update等方法则可以使对象的状态从游离形式返回到持久化形式。在游离状态下,还可以通过delete方法,直接使对象返回到临时状态。

5 结束语

Hibernate框架是一个持久层的优秀框架,同时也是一个主流的ORM工具,其可以让开发人员以对象思维操作关系型数据库,让编码过程变得更加简洁、高效。但其也存在一定不足,如,稻菘馓匦怨δ鼙荒ㄉ保不支持批量操作等,以上是可以进一步完善的方面。

参考文献

[1]张少应,程传旭.基于Hibernate的对象关系映射研究[J].电子设计工程,2016,24(6):128-130.

[2]宫生文,王宁.Hibernate作为J2EE数据持久层的分析和研究[J].计算机与信息技术,2006(4):36-38.

[3]卞林,郑中华,唐晓新.一种基于Hibernate的并行查询方法[J].电子技术与软件工程,2016(7):181-183.

第10篇

关键词:XML; .Net; 领域对象; 设计模式; 数据传输对象

中图分类号:TP311.132.4; TP311.132.3

文献标志码: A

Implementation of adaptive mechanism of domain object and XML data extension using .Net

WANG Xiang

(Graduate School,Chinese Academy of Sci.,Beijing 100049,China)

Abstract:To facilitate the complexity of the business logic and business data characteristics,the appropriate implementation pattern can be chosen for business logic according to the requirements by introducing adaptive mechanism. With the hierarchy characteristics of XML,business objects can invoke relational database as well as XML data using the expansion provided by XPath and XSLT. The tests demonstrate that with the adaptive mechanism client program can remain stable even when data model is changed. With special XML technologies,the adaptive mechanism can also apply to XML data.

Key words:XML; .Net; domain object; design pattern; data transfer object

0 引 言

在领域驱动设计中,实现业务逻辑层主要有3种模式[1]:Transaction Script,Domain Module和Table Module(见图1).

图 1 实现所需工作量与业务逻辑复杂度的关系

随着业务逻辑复杂程度的增加,采用各模式实现的工作量变化趋势有所不同;根据应用特点,3种模式各有优势.

(1)Transaction Script:业务逻辑直接用SQL脚本与数据库交互,实现简单,但是限于SQL面向过程化的特点,完成复杂业务逻辑时工作量较大.

(2)Domain Module:将业务数据封装为业务对象,适于业务逻辑复杂的应用,但需要O/R映射的支持.

(3)Table Module:将业务数据组织成数据表方式,虽然对象化特征不如Domain Module明显,但适于展现层使用.

应用建设初期选择的实现模式随着业务需求和历史数据量的变化需要进行调整,此时要增加1个适应性机制,保证在尽量不影响客户程序的前提下,选择合适的实现模式.随着XML数据使用日趋广泛,须借助XPath,XQuery和XSL为层次型数据增加专门的扩展机制,使得基于XML数据源的业务逻辑也可以采用上述3种模式实现.

1 概要设计

1.1 整体逻辑结构

总体适配机制见图2.

图 2 总体实现结构

为业务服务增加抽象接口IDomainService,客户程序通过DomainServiceFactory获得该抽象接口,这样客户程序不依赖于具体的业务服务实体类,仅依赖于抽象的服务接口,当下层实现模式调整时,不影响客户程序;为了让框架可以同时适应关系数据库和XML数据,增加抽象接口IDataSource,代表不同的数据源对象;IDataMapper负责根据不同的数据源完成关系数据或XML数据与业务对象的映射;为了减少DomainServiceFactory对具体业务服务对象产生的依赖性,增加配置管理对象ConfigManager,由它获取指定的业务服务实体类名称,并通过反射机制动态生成目标实例.1.2 性能改进

由于业务实体经常会对应到具有Master-Detail关系的多个表,而且有些复杂业务实体本身包含1组或几组其他业务实体,出于性能考虑,为了避免IDataMapper在映射过程中频繁调用数据源逐个生成子业务实体,需要在IDataMapper与数据源之间增加1个DTO(Data Transfer Object)对象IDataTransferObject,通过将调用打包的办法,减少频繁的远程调用(见图3).图 3 借助DTO和Domain Module对象间接访问数据源

2 详细设计

2.1 面向关系数据库的业务服务设计

为了将业务实体纳入适配机制管理,依据依赖倒置原则,对各模式实现的业务实体进行抽象(见图4).

图 4 关系数据库方式下的适配机制

为每种模式实现的业务对象抽象独立接口,并编写对应的关系数据库实现类;Domain Module需要调度数据映射和DTO进行关系数据与业务实体的映射;增加抽象基类DomainModuleBase,通过调用IDataMapper和IDataTransferObject完成数据提取和映射工作.关系数据库下3种模式的执行特征见 表1.

2.2 面向XML数据的扩展设计

由于XML的层次特征[2],3种模式的实现技术与关系数据库不同(见表2),XML数据方式下的适配机制见图5.

图 5 XML数据方式下的适配机制

2.3 配置机制设计

通过增加服务接口工厂类的方式隔离客户程序与具体业务服务实体类间的依赖,工厂类通过配置管理ConfigManager获得每个目标服务接口对应的实体类名称,借助反射动态包装目标服务接口.静态结构和执行过程见图6和7.

图 6 配置管理机制

图 7 客户程序获得业务服务接口的时序关系

3 实验环境准备及实验结果分析

3.1 测试业务对象

为了比较3种模式实现特点的不同,测试中设计2个具有Master-Detail特征的业务实体:Customer和Order,两者之间也存在1:N的关系,对应的关系数据库和XML数据实现见图8~10.

图 8 业务实体

图 9 关系数据库方式下业务实体实现

图 10 XML数据方式下业务实体实现

目标服务是1个根据客户名称,返回其所有订单明细项小计之和的接口.

3.2 测试内容准备

针对关系数据库和XML数据方式的不同,业务逻辑如表3.表中,为了计算简单,XML数据的Transaction Script模式增加1个采用XSTL生成 “客户名称―订单项明细小计”的中间过程,见图11.

图 11 XML Transaction Script方式下生成中间结果的XSLT

3.3 测试数据和测试代码

测试数据见表4.

测试代码如下:

IDomainService service =

new DomainServiceFactory().Create();

Summary summary = service.GetSummary("joe");

Trace.WriteLine(summary.Name);

Trace.WriteLine(summary.Total);3.4 测试结果及分析

通过修改ConfigManager中实现业务服务的实体类名称,结合数据库调用监控获得数据见表5.

测试结果分析如下:

(1)借助适配机制,在目标实现模式甚至数据模型修改时,客户程序保持稳定,修改内容控制在配置文件部分,不影响客户程序的业务逻辑;

(2)使用不同模式设计完成的业务对象,借助适配机制和XML数据扩展机制,在关系数据库和XML数据方式下,可完成同样的服务功能;

(3)通过DTO组件的调用打包作用,可以将包括2份订单、4项订单明细的信息一次性提取,将多次调用打包为1次调用,减少网络往复.

4 结束语

依据引入适配机制可以从一定程度上减少客户程序与业务逻辑的耦合程度,在部署、运行环境变化时,可通过调整配置选择合适的业务逻辑实现模式,并且不需要客户程序联动修改;DTO对象的加入可以减少分布式调用中的往复次数,有利于提升应用性能.

实际工程中,由于业务逻辑实体往往需要被多个客户程序调用,需要有效的并发机制配合[3],后续研究中将着重对并发能力进行调整.

参考文献:

[1] FOWLER M,RICE D,FOEMMEL M,et al. Patterns of enterprise application architecture[M]. USA:Addison Wesley,2002.

第11篇

[关键词]多媒体数据库;数据模型;面向对象;分布式数据库

1多媒体数据模型

多媒体数据模型主要采用文件系统管理方式、扩充关系数据库的方式和面向对象数据库的方式。

1.1文件系统管理方式

多媒体资料是以文件的形式在计算机上存储的,所以用各种操作系统的文件管理功能就可以实现存储管理。Windows的文件管理器或资源管理器不仅能实现文件的存储管理,而且还能实现有些图文资料的修改,演播一些影像资料。为了方便用户浏览多媒体资料,出现很多的图形、图象浏览工具软件。有些在Windows95下的浏览软件还和资源管理器结合起来,如ACDSee工具软件不仅可浏览BMP、GIF、JPEG、PCX、Photo-CD、PNG、TGA、TIFF and WMF 格式的图像,而且还具备资源管理器的查询、删除、复制等功能。如多功能影像处理及管理软件ImagePals,是在Windows 上影像工具软件,ImagePals提供了电子相簿(Album)、影像编辑(Image Editor)和屏幕捕捉(Screen Capture)等功能,此外还具有视窗及CD浏览器等。电子相薄(Album)是一个很具特色的应用程序,能对文件进行迅速、可视性的管理。文件系统方式存储简单,当多媒体资料较少时,浏览查询还能接受,但演播的资料格式受到限制,最主要的是当多媒体资料的数量和种类相当多时,查询和演播就不方便了。

1.2扩充关系数据库的方式

数据库的出现是为了解决文件管理数据的不足,同样,为了解决管理多媒体数据,人们很容易地会想到使用数据库。传统的关系数据模型建立在严格的关系代数的基础上的,解决了数据管理的许多问题,目前基于关系模型的数据库管理系统仍然是主流技术。但是平坦化的数据类型不适于表达复杂的多媒体信息,文本、声音、图像这些非格式化的数据是关系模型无法处理的;简单化的关系也会破坏媒体实体的复杂联系,丰富的语义性超过了关系模型的表示能力。出于保护原有投资和市场的考虑,全球几家大的数据库公司都已将原有的关系数据库产品加以扩充,使之在一定程度上能支持多媒体的应用。用关系数据库存储多媒体资料的方法一般是:

1.2.1用专用字段存放全部多媒体文件;

1.2.2多媒体资料分段存放在不同字段中,播放时再重新构建;

1.2.3文件系统与数据库相结合,多媒体资料以文件系统存放,用关系数据库存放媒体类型、应用程序名、媒体属性、关键词等。

1.3面向对象数据库的方式

关系数据库在事物管理方面获得了巨大的成功,它主要是处理格式化的数据及文本信息。由于多媒体信息是非格式化的数据,多媒体数据具有对象复杂、存储分散和时空同步等特点,所以尽管关系数据库非常简单有效,但用其管理多媒体资料仍不太尽如人意。而面向对象数据库是指对象的集合、对象的行为、状态和联系是以面向数据模型来定义的。面向对象的概念是新一代数据库应用所需的强有力的数据模型的良好基础。面向对象的方法最适合于描述复杂对象,通过引入封装、继承、对象、类等概念,可以有效地描述各种对象及其内部结构和联系。多媒体资料可以自然地用面向对象方法所描述,面向对象数据库的复杂对象管理能力正好对处理非格式多媒体数据有益;根据对象的标识符的导航存取能力有利于对相关信息的快速存取;封装和面向对象编程概念又为高效软件的开发提供了支持。面向对象数据库方法是将面向对象程序设计语言与数据库技术有机地结合起来,是开发的多媒体数据库系统的主要方向。

为高效管理多媒体数据,基于关系数据库的应用系统逐渐演变到多媒体数据库管理系统用面向对象的概念扩充关系数据库。用面向对象的高级语言扩展基本关系类型,使其支持复杂对象,并对关系模型提供的操作加以扩充,利用关系数据库的优势管理多媒体资料。

2 数据的压缩和解压缩

由于多媒体信息,如声音、图像目前国际上的压缩标准有:

JPEG(Joint Photographic Experts Group),是由国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的。适合于连续色调、多级灰度、彩色或单色静止图像的国际标准。转贴于

MPEG(Moving Picture Experts Group),是ISO/IEC委员会的第11172号标准草案,包括MPEG视频、MPEG音频和MPEG系统三部分。MPEG要考虑到音频和视频的同步,联合压缩后产生一个电视质量的视频和音频、压缩形式的位速为1.5Mbps的单一流。

P×64,是CCITT的H.261号建议,P为可变参数,取值范围是1~30。该标准的目标是可视电话和电视会议,它可以覆盖整个ISDN(综合业务数字网)信道。当P=1或2时,只支持每秒帧数较少的视频电话,P>6时可支持电视会议。

P×64标准和MPEG标准的数据压缩技术有许多共同之处,但P×64标准是为适应各种通道容量的传输,而MPEG标准是用狭窄的频带实现高质量的图像画面和高保真的声音传送。

3 多媒体数据的存储管理和存取方法

如何有效地按照多媒体数据的特性去存取多媒体数据呢?利用常规关系数据库管理系统来管理多媒体数据已经不能适应了,基于内容的多媒体信息检索研究应运而生。它支持其他多媒体信息技术,如超媒体技术、虚拟现实技术、多媒体通信网络技术等。多媒体内容的处理分为三大部分:内容获取、内容描述和内容操纵。也可将其看成是内容处理的三个步骤,即先对原始媒体进行处理,提取内容,然后用标准形式对它们进行描述,以支持各种内容的操纵。

内容获取(Populating) 通过对各种内容的分析和处理而获得媒体内容的过程。多媒体数据具有时空特性,内容的一个重要成分是空间和时间结构。内容的结构化(Structuring)就是分割(Segmenting)出图像对象、视频的时间结构、运动对象,以及这些对象之间的关系。特征抽取(Extraction)就是提取显著的区分特征和人的视觉(Visual)、听觉(Auditory)方面的感知特征来表示媒体和媒体对象的性质。

----内容描述(Description) 描述在以上过程中获取的内容。目前,MPEG-7专家组正在制定多媒体内容描述标准。该标准主要采用描述子(Descriptor) 和描述模式(Scheme) 来分别描述媒体的特性及其关系。

----内容操纵(Manipulating) 针对内容的用户操作和应用。有许多这方面的名词和术语。查询(Query)是面向用户的术语,多用于数据库操作。检索 (Retrieval) 是在索引(Index)支持下的快速信息获取方式。搜索(Search)常用于Internet的搜索引擎,含有搜寻的意思,又有在大规模信息库中搜寻信息的含义。

摘要(Summarization, Excerpt)对多媒体中的时基媒体(如视频和音频)是一种特殊的操作。我们熟知文献摘要的含义,在内容技术支持下,也可以对视频和音频媒体进行摘要,获得一目了然的全局视图和概要。同样,用户可以通过浏览(Browsing) 操作,线性或非线性地存取结构化的内容。另外,基于内容的技术不仅仅用在多媒体信息的检索和搜索方面,检索仅仅是信息存取的一个方面。过滤(Filtering)就是与检索相反的一种信息存取方式。用过滤技术可以实现个人化的信息服务。

4 分布式数据库技术

分布式数据库系统是在集中式数据库系统的基础上发展起来的,是数据库技术与计算机网络技术的产物。分布式数据库系统是具有管理分布数据库功能的计算机系统。一个分布式数据库是由分布于计算机网络上的多个逻辑相关的数据库组成的集合,网络中的每个结(一般在系统中的每一台计算机称为结点node)具有独立处理的能力(称为本地自治),可执行局部应用,同时,每个结点通过网络通讯系统也能执行全局应用。所谓局部应用即仅对本结点的数据库执行某些应用。所谓全局应用(或分布应用)是指对两个以上结点的数据库执行某些应用。支持全局应用的系统才能称为分布式数据库系统。对用户来说,一个分布式数据库系统逻辑上看如同集中式数据库系统一样,用户可在任何一个场地执行全局应用。分布式数据库具有如下特点:

4.1本地自治(Local Autonomy);

4.2不依靠一个中心站点;

4.3能连续操作;它也是数据库技术的一个发展方向。

第12篇

关键词:Struts;Hibernate;MVC;ORM

1 引言

基于网络的教学答疑系统可以使学生与教师之间的沟通更加及时、深入,从而增加学生学习兴趣并提高学习质量。本系统基于Struts与Hibernate的J2EE框架,Struts实现MVC架构,Hibernate完成J2EE中的对象持久层。

2 基于MVC的Struts实现机制

MVC是Model-View-Controller的简称,即模型-视图-控制器。MVC是一种设计模式,它把应用程序分成三个核心模块:模型、视图和控制器。Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。Struts实质上就是在JSP Model2的基础上实现的一个MVC框架。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件构成。图1显示了Struts实现的MVC框架[1]。

Struts工作流程:首先由客户端浏览器向Web服务器发出HTTP请求,JSP容器中控制器ActionServlet根据配置文件struts-config.xml决定将请求交给相应的Action来处理。Action实现业务逻辑的处理,实现模型中业务数据的更新及程序的流程控制。当Action处理结束后,控制器根据Action返回结果调用相应的JSP文件,并将执行结果返回给客户端浏览器。

3 数据持久化与Hibernate实现机制

在J2EE应用中编程操作采用的是面向对象模型,而后台数据库通常是关系模型,为解决关系型数据库与对象型编程语言之间的不一致提出了数据持久化。数据持久化完成了O/R Mapping(Object/Relation Mapping,ORM,对象关系映射),从而实现了对象与关系数据库之间的映射。Hibernate是一个开源的ORM框架,它提供了强大的对象和关系数据库映射与查询功能,并大幅度减少开发过程中使用SQL与JDBC处理数据的时间。Hibernate实现机制如图2所示[2]。

Hibernate是Java应用系统和关系数据库之间的ORM中间件,它完成Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用系统提供了面向对象的数据访问API[3]。Hibernate的配置文件hibernate.properties包含了数据库连接的有关信息,XML Mapping文件包含了对象和关系数据库之间的映射。

4 教学答疑系统的设计与实现

教学答疑系统实现了教师与学生之间基于网络的信息交流与沟通。系统的用户主要有三种:学生、教师和系统管理员,学生和教师要先注册才能使用本系统。系统主要由5个模块构成:

(1)注册模块:学生和教师可以以不同的角色进行注册。

(2)登录模块:学生和教师以注册的角色进行登录。

(3)问题提交模块:学生登录后可以提出问题,并可以选择相应的任课教师回答。

(4)问题回答模块:教师登录后对没有回答的问题进行回答。

(5)管理模块:管理员登录后可以对问题和答案进行管理。

教学答疑系统使用Struts框架进行设计与实现,显示层使用JSP页面实现,控制层由ActionServlet和Action实现,模型层的业务数据由Hibernate框架实现数据的持久化。

4.1 Struts框架的实现

在基于Struts框架的系统中控制器ActionServlet根据Struts的配置文件struts-config.xml来实现客户端数据的输入、处理及输出的映射。运行用户注册页面register.jsp,用户将表单中的注册信息提交给控制器后,控制器根据上面配置文件创建一个JavaBean文件RegisterForm.java,即MVC中的业务模型。对业务模型的处理则由RegisterAction.java来完成,当注册成功后调用login.jsp页面进行登录,失败则调用register.jsp重新注册。

在RegisterAction.java文件中,方法public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)接收用户表单中的信息,并根据信息创建业务模型对象RegisterForm,从而实现对业务数据的访问,还可以根据业务数据的信息决定程序执行的流程。

4.2 Hibernate框架的实现

Hibernate的配置文件hibernate.cfg.xml中设置了数据库的连接信息:数据库的驱动程序、用户名和密码。UserInf.hbm.xml是对象/关系映射文件,实现了UserInf.java对象文件与数据库表userinf的映射。

对数据库的操作如查询、修改、删除和增加等操作则封装在UserInfManager.java文件中:

该方法在实现时首先创建Session对象,Session s=Sessionfactory.getSession(); 然后执行各种数据库操作,执行完毕后将Session对象关闭。

5 结语

基于Struts与Hibernate教学答疑系统实现了教师与学生之间信息交流的即时性,提高了学生的学习质量与学习兴趣;同时基于Struts与Hibernate框架的设计与实现提高了系统的开发效率,增强了系统的可维护性,并提供系统更好的性能。

参考文献

[1]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2005:13-14.

[2]石志国.JSP网络开发详解[M].北京:电子工业出版社,2007:291-294.

[3]孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社,2005.