2本科毕业设计说明书论文.docx
《2本科毕业设计说明书论文.docx》由会员分享,可在线阅读,更多相关《2本科毕业设计说明书论文.docx(51页珍藏版)》请在冰豆网上搜索。
2本科毕业设计说明书论文
本科毕业设计说明书(论文)
(2010届)
题目:
面向对象数据库Xindice的应用系统
学生姓名韩文杰
指导教师王奔
专业班级软件工程2008(2+2)2班
所在学院计算机科学与技术学院
提交日期2010年6月
面向对象数据库Xindice的应用系统
摘要
XML文档是以文本形式来描述的,它的自描述性使之非常适用于不同应用间的数据交换。
为了交换XML的业务数据,就必须把XML文档存储在数据库中,并且把它和应用程序结合起来。
XML一开始就建构在Unicode之上,具有世界通用性,本地化的XML数据处理具有广阔的发展前景。
论文中提到的演示系统是指校园信息管理系统。
它是基于Browser/Server(浏览器/服务器)架构的。
系统采用的数据库是用于存储XML文档的典型开放源码数据库Xindice;采用了XML数据库查询技术Xpath,XML数据库更新技术Xupdate,XML文档转换技术XLST,以及JSP、SERVLET技术等;以TOMCAT作为web服务器。
系统实现了校园信息管理中的常见功能,系统管理员可以对学生信息、教师信息、班级信息进行管理,也可以进行课程设置。
系统使用者——学生可以查看个人信息,可以进入选课系统进行选课,也可以修改个人账户。
系统使用者——教师可以查看个人信息,可以修改个人账户,也可以申请开设课程。
演示系统实现了校园信息管理中的简单操作,系统利用面向对象数据库Xindice以集合的方式来管理XML文档,而校园信息就存储于XML文档中;系统将我们常见的表之间的关系映射到XML的描述文档结构中,实现了面向对象数据库中的数据的级联删除操作。
随着XML技术的发展,XML同数据库的结合将会实现更强大的功能,本应用系统具有一定的参考价值。
关键字:
xindice,xml,xpath,xupdate,xlst
APPLICATIONSYSTEMBASEDONOBJECT-ORIENTEDDATABASEXINDICE
ABSTRACT
XMLisafileformatwhichisdescribedintextformat.Itisself-descriptiveandverysuitablefordataexchangeamongdifferentapplications.ToexchangeXMLbusinessdata,XMLdatashouldbestoredindatabase,andtheyareoftencombinedwithapplications.XMLdocumentisbasedonUnicode,whichisworld-universal.XMLdataprocessingonrelationshipisapromisingapproach.
ThedemosystemforcampusinformationmanagementisbasedonBrowser/Server(B/S)structure.ThedatabaseofthecampusinformationsystemisatypicalopensourcedatabasethatisusedtostoreXMLdocument;XMLdatabasequerytechnology-Xpath,XMLdatabaseupdatetechnology-Xupdate,XMLdocumentsconversiontechnology–XLST,JSPandSERVLETtechnologyareimplementedinthemanagementsystem;andthesystemishostedonTOMCATastheapplicationserver.
Thesystemhasrealizedcommonfeaturesforthemanagementofcampusinformation.Thesystemadministratorcanmanagestudentinformation,teacherinformationandclassinformation,courseinformationaswell.Student,onetypeofsystemusers,isabletoviewpersonalinformationandenterintotheelectivesystemofcourseselectiontodosomeoperationsuchasselectcourseoperation.Thestudentcanalsomodifyindividualaccount.Teacher,anothertypeofsystemusers,canretrievepersonalinformationandmodifyindividualaccountsandcanalsoapplyforanewcourse.
Themanagesystemhasalsorealizedsomesimpleoperationinthecampusinformationmanagement.TheXindicedatabaseisappliedinthemanagementsystemtostoreandmanagethexmldocumentinthewayofcollectionandcampusinformationisstoredinthexmldocument.Thesystemrealizesmappingoftherelationsbetweentablesandxmldocumentstructureandrealizetheoperationofcascadeofdatadeletionintheobject-orienteddatabase.WiththedevelopmentofXMLtechnology,thecombinationbetweenXMLanddatabasewillbeachievedwithmorepowerfulfeatures,thisapplicationhassomereferencevalue.
KeyWords:
xindice,xml,xpath,xupdate,xlst
第一章绪论
1.1项目背景
面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。
为了解决这个不匹配的现象,对象关系映射技术应运而生。
对象关系映射(ObjectRelationalMapping,简称ORM[1])是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中。
本质上就是将数据从一种形式转换到另外一种形,这也同时暗示着额外的执行开销。
目前流行的ORM产品有ApacheOJB[2]、Hibernate等。
随着现代社会的发展,许多新的复杂的结构开始涌现如生物高分子等,关系数据库在处理这类复杂结构时已显得非常吃力,XML就非常适合处理这类复杂的结构。
因为XML的最大优点是它对数据描述和数据传送能力,具备很强的开放性[3]。
ApacheXindice[4]是一种本地XML数据库,可以在该数据库中保存、查询和修改XML文档。
与关系数据库相比,本地数据库的优点是无须将XML映射到SQL。
该数据库使用Xpath查询Xindice数据库,使用XML:
DBXupdate来更新数据库。
Xindice实现了JavaXML:
DBAPI,用于在Xindice数据库中添加、查询和更新XML文档。
Xindice数据库中的XML文档保存在集合中;一个集合可以包含一个或多个XML文档。
Xindice还提供一种命令行工具,该工具具有与XML:
DBAPI相同的功能。
利用XML文档存储结构化的数据,在Xindice中以集合的方式存储XML文档,可以实现一个小型的应用系统。
演示系统中没有用到常见的关系数据库如:
SQLSERVER、Oracle,而是用到了XML数据库Xindice,它直接存储XML文档,不存在映射的问题。
由于使用了XML,又增强了数据表现力。
1.2研究现状
目前XML数据库产品主要有DB29,BaseX,Ozone,MyXmldb,Exist,Xindice。
IBMDB29作为第一个混合型的数据库服务器,它可以处理关系型数据同时也可以处理XML数据。
特别是对XML数据的支持,可以说是数据库发展史上的一个重要里程碑;DB29混合型数据库引擎可为在数据库中同时存储关系数据和XML数据提供灵活性和高性能,因为数据库管理系统在每一个层面(从客户端到引擎,再到磁盘)都能很好的了解和支持这两种数据模式。
XML数据继承了DB2为关系数据提供的相同的备份与恢复、优化、可伸缩性和高可用性。
DB29对XML独特支持,保证了XML数据与生俱来的层次结构和灵活性模式,大大增强了企业适应信息变化的能力,提高了企业随需应变的水平。
关系型与层次型数据的混合处理能力使企业信息的无缝集成成为可能。
通过一个访问请求就可以同时支持关系型数据以及XML数据,从而大大提高生产效率。
BaseX是一个XML数据库,用来存储紧缩的XML数据。
它提供了高效的Xpath和XQuery的实现,还包括一个前端操作界面。
BaseX6.0实现了完整的XQueryUpdate规范、100%达到W3C的测试要求。
引入一个增强的客户端服务器的体系架构,基于ACID安全事务、用户和密码管理、事务日志等。
扩展了XQuery的全文特性、支持TF/IDF排名、停止词列表和模糊查询。
使用固定内存来提升了索引创建过程,改进了索引的结构和迭代查询处理。
Ozone是一个面向对象的数据库管理系统,完全用Java实现Ozone项目的目的是让开发者可以构建一个纯面向对象、纯Java的数据库应用程序。
Ozone可以用来存储XML文档,可以用任一个XML工具来访问这些数据。
MyXmldb是一个在MySQL上实现的XML数据库。
它以BLOB形式存储文档,可以多达256M大小的文档。
它支持Xpath和XQuery,并提供了XML的Java实现XML:
DBAPI,具有图形用户界面。
Exist是一个开源的nativeXML数据库。
它有依据索引的XQuery处理程序,可以自动进行索引,扩展的全文本搜索,Xupdate支持并且它与现存的XML开发工具可以紧密的结合在一起。
Exist-db支持很多网络技术标准,使它成为开发WEB应用程序的优秀平台。
它支持XQuery1.0、Xpath2.0、XSLT1.0(usingApacheXalan)和XSLT2.0。
Xindice数据库起源于DBXML数据库。
DBXML数据库是第一个开放源码的native-XML数据库。
该项目在1999年7月启动,由TomBradford发起,KimbroStaken负责管理。
在2001年并入Apache开放软件联盟并更名为Xindice,现今Xindice数据库已是世界上最广泛使用的数据库之一[5]。
现在Xindice官方发布的稳定版本为V1.1,V1.2是一个开发中的版本。
Xindice是Native-XML数据库。
文档分为以数据为中心的文档和以文档为中心的文档[6]。
Native-XML数据库的观点认为在数据库中应当以XML原始的格式存取XML文档,数据库内部的数据模型是依据XML特性建立的[7]。
Native-XML数据库是一种专门的保存、检索和处理文档的数据库,它支持文档的结构,因此能保留它们的数据层次结构和意义[8]。
当前XML文档的基本存储方式[9]可分为3类:
文件系统、存储管理器和数据库管理系统。
第3种更有效的存储方式是使用数据库管理系统来管理XML数据。
根据数据库管理系统的不同,这种存储方式又可以分为基于关系的XML数据库系统、面向对象的XML数据库系统和“原生(native)”的XML[10]。
Xindice数据库既是面向对象数据库,又是原生XML数据库。
当前XML主要应用领域体现在4个方面:
企业间电子商务,知识管理,文档管理,实现企业的自动化处理[11]。
XML具有如此广泛的应用,而Xindice又是用于存储和管理XML文档的面向对象数据库,Xindice必将有良好的发展前景。
集成XQuery功能的Xindice数据库[12]在近几年也被设计出来,使用Xindice数据库来查询XML数据变得更加容易。
1.3研究开发的目标和基本内容
1.3.1研究开发的目标
在当前互联网络和XML技术如此发达的基础上,本系统拟在研究类似应用系统的设计实现上,提出自己的设计实现。
作为数据表示的一个开放标准,XML语言给Web应用乃至网络计算注入了新的活力[13]。
网络发展的同时,XML技术也在发展。
基于XML/Web服务的跨平台的分布式技术给电子商务的系统构建、系统部署以及数据集成等带来了许多新的思路和挑战[14]。
用于处理XML的数据库技术也显得尤为重要。
Xpath是一门在XML文档中查找信息的语言。
Xpath可用来在XML文档中对元素和属性进行遍历。
Xpath是W3CXSLT标准的主要元素,并且XQuery和XPointer同时被构建于Xpath表达之上[15]。
因此,Xpath是很多高级XML应用的基础。
XSLT指XSL转换(XSLTransformations),它使用Xpath在XML文档中进行导航。
XSLT是XSL中最重要的部分。
XSLT用于将一种XML文档转换为另外一种XML文档,或者可被浏览器识别的其他类型的文档,比如HTML和XHTML。
通常,XSLT是通过把每个XML元素转换为(X)HTML元素来完成这项工作的。
通过XSLT,可以向输出文件中添加或移除元素和属性,也可以重新排列元素,执行测试并决定隐藏或显示哪个元素,等等。
描述转化过程的一种通常的说法是,XSLT把XML源树转换为XML结果树[16]。
Native-XML数据库是一种专门的保存、检索和处理XML文档的数据库,它支持XML文档的结构。
Xindice是一个Java公开源代码的Native-XML数据库[17],它支持XML文档结构,能够保存XML数据的层次结构和意义。
本应用系统的研究目标定位于利用XML一些常用技术和Xindice数据库来实现一个小型的演示系统;将存储系统信息的XML文档存于Xindice数据库中;应用XML中的一些关键技术如XLST、Xpath、Xupdate来对XML文档进行操作;将系统中对象之间的关系映射到XML文档结构中,即通过文档节点中的相关信息进行关联;利用XLST对同一个XML文档进行多种显示;对XML文档的查询结果进行排序显示;通过Xpath查询XML文档获得系统重要数据信息、验证重要节点的存在,通过Xupdate来更新XML文档节点,包括对节点的增加、修改和删除操作,利用相关信息节点的匹配来实现关系数据库下的数据级联删除操作。
整个演示系统的使用就如使用关系数据库那样,能够很方便地对数据进行操作。
此信息管理系统的开发,是为了探讨一种新的解决问题的方法,为将来的研究开发做铺垫。
1.3.2研究开发的基本内容
⏹Xindice数据库的搭建
◆搭建前的准备工作
◆Xindice数据库的搭建步骤
◆搭建完后的数据库测试
⏹XML信息文档的创建和数据库的导入
◆系统对象的提取及关系抽取
◆将对象之间的关系映射到XML的描述结构中
◆将XML文档导入Xindice数据库
⏹查看Xindice数据库中的XML文档数据
◆Xpath的应用
◆Xindice数据库中Xpath的调用接口
◆Xpath查询语句的研究
◆Xpath查询结果的应用
⏹Xupdate的应用
◆Xindice数据库中Xupdate的调用接口
◆Xupdate的应用分类
◆利用Xupdate更新Xindice数据库中的XML文档数据
⏹XLST的应用
◆XLST的转换过程
◆利用XLST动态生成HTML
1.4论文概要说明
第一章绪论。
主要介绍研究的背景、研究现状以及研究的目标和意义。
对象关系映射(ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
使用ORM技术将带来额外的执行开销。
关系数据库在处理复杂的高分子结构时已显得非常吃力。
目前XML数据库产品主要有DB29,BaseX,ozone,MyXmldb,Exist,Xindice。
信息管理系统的开发,是为了探讨一种新的解决问题的方法,为将来的发展做铺垫。
研究开发的基本内容是Xindice数据库的使用和各种XML技术。
第二章应用技术概论。
主要介绍了演示系统实现过程中用到的关键技术,如系统后台使用的数据库Xindice、XML查询技术Xpath、XML更新技术Xupdate和XML转换技术XLST。
第三章演示系统介绍。
主要介绍了演示系统的整体架构、数据存储和数据流程。
系统整体架构使用三个角色:
管理员、学生、教师的用例图来展示。
系统数据存储详细讲到了怎样用XML描述文档来存储关系数据库中的表。
第四章技术应用。
详细介绍了演示系统中用到的关键技术,包括各种技术在演示系统中是如何使用的以及为了使用这种技术所做的准备工作。
第五章总结。
对整个毕业设计的完成过程做了总结,包括系统中用到技术的介绍和系统存在的不足。
第二章应用技术概论
本章主要介绍了Xindice数据库、ApacheTomcat服务器和XML的处理技术,包括Xpath、Xupdate、XLST等XML处理技术的介绍。
2.1Xindice数据库
2.1.1Xindice数据库简介
Xindice数据库起源于DBXML数据库。
DBXML数据库是第一个开放源码的Native-XML数据库。
该项目在1999年7月启动,由TomBradford发起,KimbroStaken负责管理。
在2001年并入Apache开放软件联盟并更名为Xindice,现今Xindice数据库已是世界上最广泛使用的数据库之一。
Xindice数据库有以下特点:
文档集合(DocumentCollections):
文档被存储在可以被作为整体来查询的集合中。
在数据库中可以创建只包含相同类型文档的集合,也可以创建一个集合来存储所有的文档。
Xpath查询引擎:
要查询文档集合,可以使用W3C定义的Xpath。
这提供了相当灵活性的机制,通过定位和限制返回结果树来查询文档。
XML索引:
为了提高在大量文档上的查询性能,可以定义关于元素和属性值的索引。
这可以极大的加速查询响应时间。
XML:
DBXupdate实现:
当存储XML到数据库时,或许需要能够在不检索整个文档的情况下改变数据。
Xupdate是当需要做服务器端的数据更新时使用的机制。
这是一种基于XML的语言,确定XML修改并允许这些修改像应用到单个文档一样应用于整个文档集合。
JavaXML:
DBAPI实现:
对于Java程序员Xindice提供了一个XML:
DBAPI实现。
这个API将给XML数据库应用带来可移植性,就像JDBC相对于关系数据库一样。
大部分基于Xindice开发的应用将使用XML:
DBAPI。
命令行管理工具:
为了帮助系统管理员,Xindice提供了一全套命令行驱动的管理工具。
所有可以通过XML:
DBAPI做的事情,也可以从命令行搞定。
Xindice的主要特色为小型、实用。
作为一个小型的XML文档管理数据库,其主要功能都已俱备,如XML文档的存取、索引、查询、修改、API等。
但同非常完善的大型关系数据库相比,它还缺乏强有力的事务处理、并发操作、安全机制等功能[5]。
2.1.2Xindice系统结构
Xindice服务器是设计用来存储XML文档集合的。
集合可以按照层次结构来安排,与典型的UNIX或Windows文件系统相似。
在Xindice中,数据存储基于一个亦可当文档集合使用的数据库实例。
此数据库实例可以包含任意数目的子集合。
在Xindice的缺省安装情况下,此数据库实例称为“db”,而所有的集合路径以/db开始。
如果想要重命名这个数据库实例也是可以的,虽然没有必要这样做。
Xindice数据库服务器可分为三层,分别为核心层、服务层和接口层,如图2.1所示。
表2.1Xindice数据库系统结构图
接口层
CommandtoolXML:
DBAPICORBA
服务层
DOMJAXPSAXSERVER
核心层
StoreIndexerObjectQueryFilerXupdateXpath
在表2.1中,核心层实现数据库的基本功能,包括数据类型、B+树索引、对象管理、Xpath查询、Xupdate数据修改等。
服务层实现作为XML数据库服务器应该具有的一些功能,如:
DOM、JAXP、SAX、服务器组件等。
接口层实现外界与Xindice数据库进行数据交换和控制的接口,支持CORBA、XML:
DBAPI、XML-RPC、HTTP、命令行管理等。
系统还未实现图形用户界面下的数据库管理操作。
2.1.3Xindice存储实现方案
Xindice数据库存储的基本概念是集合和资源。
资源通常指XML文档,但也可以是一般文本或一段二进制代码。
集合是包含资源的容器。
这两个概念类似于关系数据库的表和记录,多个记录组成一张表,多个文档组成一个集合,多个表形成一个数据库,多个集合也构成一个数据库。
但有两点不同,其一在于同一张表中的记录格式均一样,但同一集合中可以包含完全不同的文档;其二表与表是平等的,但集合可以是层次结构配置。
集合的层次结构配置是指母集合下可有数个子集合,子集合下可有孙集合,这类似于文件系统。
文档以压缩方式存入集合,集合以文件形式写入磁盘。
对集合中的文档存取采用两种方式,一种是按名存取,另一种是按索引存取,即对元素和属性索引后,查询到该元素或属性后,将整个文档取出[5]。
从外部可用两种方式对数据库进行操作,一种是命令行语言,另一种是XML:
DBAPI,即应用程序接口。
2.2ApacheTomcat服务器
Apache是世界上使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上。
因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。
Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用[18]。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,是Sun公司的JSP/Servlet的官方实现。
它本身也可以作为独立万维网服务器使用,但它不以处理静态文件见长,所以一般都当作一个JSP/Servlet引擎与其他Web服务器软件配合使用[19]。
因为T