论文部分内容阅读
摘 要:为实现多个应用系统之间的信息资源共享,该文介绍一种以XML作为媒介将不同的数据库联系起来的的多数据库访问方法。
关键词:应用系统 共享 多数据库访问
中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2014)05(a)-0054-02
现在各种数据库的应用很多,由于技术及时间因素,往往一个部门中并存多个应用系统,这些系统可能分散于不同的网络节点、基于不同的操作平台、使用不同种类的数据库管理系统,且这些子系统封闭运行,自成一体,这样给不同部门的大量的信息资源共享带来困难。在不改变原来系统的内部信息的前提下,为完成不同数据库系统间的数据访问、交换和处理,结合工作实际,该文探索了一种以XML作为将不同的数据库联系起来的媒介的多数据库访问方法。
1 XML的特性
XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。
2 XML文档结构
XML文档都由XML序言开始,第一行便是XML序言,。这一行代码会告诉解析器和浏览器,这个文件应该按照前面讨论过的XML规则进行解析。第二行代码,,则是文档元素(document element),它是文件中最外面的标签(我们认为元素(element)是起始标签和结束标签之间的内容)。所有其他的标签必须包含在这个标签之内来组成一个有效的XML文件。XML文件的第二行并不一定要包含文档元素;如果有注释或者其他内容,文档元素可以迟些出现。
第三行代码是注释,它与HTML中使用的注释风格是一样的。这是XML从SGML中继承的语法元素之一。
页面再往下的一些地方,可以发现标签里有一些特殊的语法。<![CDATA[ ]] >代码用于表示无需进行解析的文本,允许诸如大于号和小于号之类的特殊字符包含在文本中,而无需担心破坏XML的语法。文本必须出现在<![CDATA[和]] >之间才能合适地避免被解析。这样的文本称为Character Data Section,简称CData Section。
下面的一行就是<?page render multiple authors ?>
虽然它看上去很像XML序言,但实际上是一种称为处理指令(processing instruction)的不同类型的语法。处理指令(以下简称PI)的目的是为了给处理页面的程序(例如XML解析器)提供额外的信息。PI通常情况下是没有固定格式的,唯一的要求是紧随第一个问号必须至少有一个字母。在此之后,PI可以包含除了小于号和大于号之外的任何字符串序列。
3 XML文档的相关操作
下面用C#语言在服务器同名目录下创建XML文档为例进行说明。
首先,需要添加命名空间:using System.Xml;
其次,定义几个公共的对象,以供对XML文档进行操作时使用。
具体操作如下:
xmldoc=new XmlDocument( );
//加入XML的声明段落,<?xml version=”1.0” encoding=”gb2312”?>
XmlDeclaration xmldecl;
xmldecl=xmldoc.CreateXmlDeclaration(“1.0”,”gb2312”,null);
xmldoc.AppendChild(xmldecl);
//加入一个根元素
xmlelem=xmldoc.CreateElement (“”,“Employees”,“");
xmldoc.AppendChild(xmlelem);
//加入另外一个元素for(int i=1;i<3;i++)
XmlNode root=xmldoc.SelectSingleNode("Employees");//查找
XmlElement xe1=xmldoc.CreateElement("Node");//创建一个节点
xe1.SetAttribute(“genre”,”李计红");//设置该节点genre属性
xe1.SetAttribute(“ISBN”,”2-3631-4”);//设置该节点ISBN属性 XmlElement xesub1=xmldoc.CreateElement(“title”);
xesub1.InnerText=”CS从入门到精通";//设置文本节点xe1.AppendChild(xesub1);//添加到节点中
XmlElement xesub2=xmldoc.CreateElement("author");
xesub2.InnerText="张军";
xe1.AppendChild(xesub2);
XmlElement xesub3=xmldoc.CreateElement("price");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到节点中}
//保存创建好的XML文档
xmldoc.Save(Server.MapPath(“data.xml”));
结果:在同名目录下生成了名为data.xml的文件。
4 多数据库访问的实现
多数据库访问技术的实现,就是借助XML文档作为媒介,将两个异构的数据库联系起来,使得系统能够建立不同的数据库之间的引用关系(图1),达到跨数据库查询的目的。下面通过一个例子来说明多数据库访问的实现。
例如系统有两个数据库,其中一个数据库中Book表如表1所示。
另一个数据库中的Author表则只收录了作者的信息,如表2所示。
这是一个书店信息管理系统和书店图书查阅系统的两个表,书店信息管理系统用来录入并查看书店所有的书信息,而书店的图书查阅系统则用来为到书店买书的客户服务,让客户在电脑终端上按照作者查询书店现有的书籍信息。由于某些原因,这两套系统是在不同的时期而且是不同的软件公司开发的。书店查阅系统的功能就是根据该系统提供的作者列表,客户通过选择其中的某些作者,查出书店中该作者所著的书籍信息。由于书店已经有了书店信息管理系统,所以没必要再查询系统中再建立一个数据库来存放书籍信息,查询系统只需要根据该系统中的作者表,到书店信息管理系统中的书籍信息表(Book)中查询相关信息即可,这里就涉及到了多数据库访问的问题,系统需要在两个不同的数据库之间进行跨数据库的查询和访问。
运用该文所研究的多数据库访问技术,在书店图书查阅系统中建立一个与Author表相对应的Author.xml文档。
当用户需要通过作者的姓名(name)进行查询时,系统将数据库表Author中name字段中用户选中的值保存到Author.xml文档相应的节点中,如果用户选择一个作者,则在xml文档中保存一个作者的value值,如果用户选择了多个作者,则在相应的xml文档中保存多个作者的值,分别对应于name节点中的value1,value2等以此类推。
当书店图书查阅系统数据库Author表中的name字段的值成功保存到xml文档中时,系统会应用该文所述的异质数据库访问方法,将数据库连接切换到书店图书信息管理系统的数据库,并根据从xml文档的相应节点中取出的数据,在书店图书信息管理系统的数据库Book表中进行查询,并返回结果,结果成功返回到用户后,系统又自动将数据库连接接换回书店图书查阅系统本身的数据库。
参考文献
[1] 薛心刚.异构数据信息平台集成系统设计与实现[D].吉林大学,2011.
[2] 王智敏.公路客运异构数据集成系统研究与实现[D].大连海事大学,2011.
[3] 王彦.面向信息集成的查询转换方法的研究与实现[D].暨南大学,2011.
关键词:应用系统 共享 多数据库访问
中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2014)05(a)-0054-02
现在各种数据库的应用很多,由于技术及时间因素,往往一个部门中并存多个应用系统,这些系统可能分散于不同的网络节点、基于不同的操作平台、使用不同种类的数据库管理系统,且这些子系统封闭运行,自成一体,这样给不同部门的大量的信息资源共享带来困难。在不改变原来系统的内部信息的前提下,为完成不同数据库系统间的数据访问、交换和处理,结合工作实际,该文探索了一种以XML作为将不同的数据库联系起来的媒介的多数据库访问方法。
1 XML的特性
XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。
2 XML文档结构
XML文档都由XML序言开始,第一行便是XML序言,
第三行代码是注释,它与HTML中使用的注释风格是一样的。这是XML从SGML中继承的语法元素之一。
页面再往下的一些地方,可以发现
下面的一行就是<?page render multiple authors ?>
虽然它看上去很像XML序言,但实际上是一种称为处理指令(processing instruction)的不同类型的语法。处理指令(以下简称PI)的目的是为了给处理页面的程序(例如XML解析器)提供额外的信息。PI通常情况下是没有固定格式的,唯一的要求是紧随第一个问号必须至少有一个字母。在此之后,PI可以包含除了小于号和大于号之外的任何字符串序列。
3 XML文档的相关操作
下面用C#语言在服务器同名目录下创建XML文档为例进行说明。
首先,需要添加命名空间:using System.Xml;
其次,定义几个公共的对象,以供对XML文档进行操作时使用。
具体操作如下:
xmldoc=new XmlDocument( );
//加入XML的声明段落,<?xml version=”1.0” encoding=”gb2312”?>
XmlDeclaration xmldecl;
xmldecl=xmldoc.CreateXmlDeclaration(“1.0”,”gb2312”,null);
xmldoc.AppendChild(xmldecl);
//加入一个根元素
xmlelem=xmldoc.CreateElement (“”,“Employees”,“");
xmldoc.AppendChild(xmlelem);
//加入另外一个元素for(int i=1;i<3;i++)
XmlNode root=xmldoc.SelectSingleNode("Employees");//查找
XmlElement xe1=xmldoc.CreateElement("Node");//创建一个
xe1.SetAttribute(“genre”,”李计红");//设置该节点genre属性
xe1.SetAttribute(“ISBN”,”2-3631-4”);//设置该节点ISBN属性 XmlElement xesub1=xmldoc.CreateElement(“title”);
xesub1.InnerText=”CS从入门到精通";//设置文本节点xe1.AppendChild(xesub1);//添加到
XmlElement xesub2=xmldoc.CreateElement("author");
xesub2.InnerText="张军";
xe1.AppendChild(xesub2);
XmlElement xesub3=xmldoc.CreateElement("price");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到
//保存创建好的XML文档
xmldoc.Save(Server.MapPath(“data.xml”));
结果:在同名目录下生成了名为data.xml的文件。
4 多数据库访问的实现
多数据库访问技术的实现,就是借助XML文档作为媒介,将两个异构的数据库联系起来,使得系统能够建立不同的数据库之间的引用关系(图1),达到跨数据库查询的目的。下面通过一个例子来说明多数据库访问的实现。
例如系统有两个数据库,其中一个数据库中Book表如表1所示。
另一个数据库中的Author表则只收录了作者的信息,如表2所示。
这是一个书店信息管理系统和书店图书查阅系统的两个表,书店信息管理系统用来录入并查看书店所有的书信息,而书店的图书查阅系统则用来为到书店买书的客户服务,让客户在电脑终端上按照作者查询书店现有的书籍信息。由于某些原因,这两套系统是在不同的时期而且是不同的软件公司开发的。书店查阅系统的功能就是根据该系统提供的作者列表,客户通过选择其中的某些作者,查出书店中该作者所著的书籍信息。由于书店已经有了书店信息管理系统,所以没必要再查询系统中再建立一个数据库来存放书籍信息,查询系统只需要根据该系统中的作者表,到书店信息管理系统中的书籍信息表(Book)中查询相关信息即可,这里就涉及到了多数据库访问的问题,系统需要在两个不同的数据库之间进行跨数据库的查询和访问。
运用该文所研究的多数据库访问技术,在书店图书查阅系统中建立一个与Author表相对应的Author.xml文档。
当用户需要通过作者的姓名(name)进行查询时,系统将数据库表Author中name字段中用户选中的值保存到Author.xml文档相应的节点中,如果用户选择一个作者,则在xml文档中保存一个作者的value值,如果用户选择了多个作者,则在相应的xml文档中保存多个作者的值,分别对应于name节点中的value1,value2等以此类推。
当书店图书查阅系统数据库Author表中的name字段的值成功保存到xml文档中时,系统会应用该文所述的异质数据库访问方法,将数据库连接切换到书店图书信息管理系统的数据库,并根据从xml文档的相应节点中取出的数据,在书店图书信息管理系统的数据库Book表中进行查询,并返回结果,结果成功返回到用户后,系统又自动将数据库连接接换回书店图书查阅系统本身的数据库。
参考文献
[1] 薛心刚.异构数据信息平台集成系统设计与实现[D].吉林大学,2011.
[2] 王智敏.公路客运异构数据集成系统研究与实现[D].大连海事大学,2011.
[3] 王彦.面向信息集成的查询转换方法的研究与实现[D].暨南大学,2011.