通常,我们在数据库中存储数据。不过,如果希望数据的可移植性更强,我们可以把数据存储XML文件中。
创建并保存XML文件
如果数据要被传送到非Windows平台上的应用程序,那么把数据保存在XML文件中是有好处的。请记住,XML有很强的跨平台可移植性,并且数据无需转换!
首先,我们将学习如何创建并保存一个XML文件。下面的这个XML文件将被命名为"testxml",并被保存在服务器上的c目录中。我们将使用ASP和微软的XMLDOM对象来创建并保存这个XML文件:
详细请查阅:>
XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。 XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。 XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。 为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。
XML数据是Web上数据交换和表达的标准形式 和关系数据库相比 XML数据可以表达具有复杂结构的数据 比如树结构的数据 正因为此 在信息集成系统中 XML数据经常被用作信息转换的标准
管理三大领域数据
基于XML数据的特点 XML数据的高效管理通常有着以下的应用
复杂数据的管理
XML可以有效地表达复杂的数据 这些复杂的数据虽然利用关系数据库也可以进行管理 但是这样会带来大量的冗余 比如说文章和作者的信息 如果利用关系数据库 需要分别用关系表达文章和作者的信息 以及这两者之间的关系 这样的表达 在文章和作者关系的关系中分别需要保存文章和作者对应的ID 如果仅仅为了表达文章和作者之间的关系 这个ID是冗余信息 在XML数据中对象之间的关系可以直接用嵌套或者ID IDREF的指向来表达 此外XML数据上的查询可以表达更加复杂的语义 比如XPath可以表达比SQL更为复杂的语义 因此利用XML对复杂数据进行管理是一项有前途的应用
互联网中数据的管理
互联网上的数据与传统的事务数据库与数据仓库都不同 其特点可以表现为模式不明显 经常有缺失信息 对象结构比较复杂 因此在和互联网相关的应用 特别是对从互联网采集和获取的信息进行管理的时候 如果使用传统的关系数据库 存在着产生过多的关系 关系中存在大量的空值等问题 而XML可以用来表达半结构数据 对模式不明显 存在缺失信息和结构复杂的数据可以非常好的表达 特别在许多web系统中 XML已经是数据交换和表达的标准形式 因此XML数据的高效管理在互联网的系统中存在着重要的应用
信息集成中的数据管理
现代信息集成系统超越了传统的联邦数据库和数据集成系统 需要集成多种多样的数据源 包括关系数据库 对象 关系数据库以及网页和文本形式存在的数据 对于这样的数据进行集成 XML这样既可以表达结构数据也可以表达半结构数据的形式成为首选 而在信息集成系统中 为了提高系统的效率 需要建立一个cache 把一部分数据放到本地 在基于XML的信息集成系统中 这个cache就是一个XML数据管理系统 因此XML数据的管理在信息集成系统中也有着重要的应用
开发难点解决之道
在实际的XML数据库以及基于XML的信息集成系统的开发过程中 笔者遇到了一些技术难点 在解决这些难点的过程中 有一些经验是值得借鉴的参考的
关系数据库中复杂查询的优化
在基于关系数据库的XML数据管理系统中 在没有建立索引的情况下 系统的性能非常低 为了提高系统的性能 我们在编码上建立了索引 经过分析 由于在系统中最常做的 *** 作是a x b y的join *** 作 最好的选择是建立二维索引 由于我们的后端数据库没有对二维索引的支持 我们选择了在x和y属性上分别建立B+树的方法 使得系统性能得到了提高 此外 我们发现 在对嵌套查询进行翻译的过程中 如果嵌套查询的结果可能过大 对嵌套查询的结果建立临时表可以提高系统的性能
经验总结 对于一个数据库应用 需要对其workload进行分析 根据workload建立索引 对于执行效率很慢的查询或查询集合 可以通过分析查询计划找出系统的瓶颈进行处理
复杂数据库系统的调试
在调试XML数据的管理系统中 多次出现了小规模数据执行准确 效率很高 而大规模数据执行错误或执行效率很低的情况 对于这种情况 我们采取了定位错误 猜测错误 继而加以解决的策略 也就是首先确定出现错误的 *** 作 使得错误的出现具有可重复性 然后通过逐步删减数据 确定数据出现在哪些数据上 这样就使得调试设计的 *** 作和数据的规模大大减小了 然后根据经验对错误进行猜测 逐步排除错误
经验总结 对于数据规模大 *** 作复杂的数据库系统的调试 首要任务是让错误可以重现 然后把次要因素逐步排除 最后发现问题的所在
复杂数据库系统的测试
由于系统需要处理各种各样的XML上的查询 为了确保系统的健壮性 需要选取多种具有代表性的查询对系统进行测试 为了选取这样的查询 我们考察了XML上影响查询的不同参数 包括查询的长度 查询中包含的关系种类 查询的选择性和查询中约束条件的选择性 根据这些参数 我们分别选择有代表性的查询对系统进行测试
lishixinzhi/Article/program/net/201311/12558
数据库技术及其应用系统经历了从层次数据库、网状数据库到关系数据库以及面向对象数据库的发展,在传统的商业和事务处理领域内逐步成熟,取代了原有的基于文件系统的数据处理方式,成为计算机信息系统中的重要基础和支柱。但随着Internet的飞速发展,Web的出现改变了人们习惯的处理方式,也给数据库技术提出了必须面对的重要问题:即如何有效地存储和管理Web上的数据(文档),使其既能被高效地 *** 作和维护,又能在Internet平台上方便地表示和交换。
XML技术自出现以来发展非常迅速,在许多领域内得到广泛的支持而有着广阔的应用前景。例如电子数据交换、电子商务等更是将XML作为一种基础性、支柱性的技术来看待。
1、数据库简史
数据库系统是随着计算机技术的不断发展,在特定的历史时期、特定的需求环境下出现的。在1946年的第一台计算机到20世纪60年代这漫长的20年里,计算机 *** 作系统主要局限于文件的 *** 作,对数据的管理也主要是通过文件系统来实现。进行计算所需要的各种数据存放在各自的文件里,使用这些数据时将文件打开,读取文件中的数据到内存中,当计算完毕后,将计算结果仍旧写入到文件中去,它的不足主要集中在无法对数据进行有效的统一管理。针对文件系统的重要缺点,人们逐步发展了以统一管理数据和共享数据为主要特征的系统,即数据库系统。1964年,美国通用电气公司开发成功了世界上的第一个数据库系统IDS(IntegratedDataStore)。IDS奠定了网状数据库的基础,并得到了广泛的发行和应用,成为数据库系统发展史上的一座丰碑。1969年,美国国际商用机器公司(IBM)也推出世界上第一个层次数据库系统IMS(InformationManagement System),同样在数据库系统发展史上占有重要的地位。
70年代初,EFCodd在总结前面的层次、网状数据库优缺点的基础上,提出了关系数据模型的概念及关系代数和关系演算。在70年代,关系数据库系统无论从理论上还是实践上都取得了丰硕的成果。在理论上确立了完整的关系模型理论、数据依赖理论和关系数据库的设计理论;在实践上,世界上出现了很多著名的关系数据库系统,比较著名的如SystemR、INGRES、Oracle等。
与文件系统相比,数据库系统有几个方面的特点:向用户提供高级的接口;向用户提供非过程化的数据库语言(即SQL语言);查询的处理和优化;并发控制;数据的完整性约束。
进入80年代之后,计算机硬件技术的飞速提高促使计算机应用不断深入,产生了许多新的应用领域,例如计算机辅助设计、计算机辅助制造、计算机辅助教学、办公自动化、智能信息处理、决策支持等。这些新的领域对数据库系统提出了新的要求。但由于应用的多元化,不能设计出一个统一的数据模型来表示这些新型的数据及其相互关系,因而出现了百家争鸣的局面,产生了演绎数据库、面向对象数据库、分布式数据库、工程数据库、时态数据库、模糊数据库等新型数据库的研究和应用。
2、XML简介
XML推荐标准10版发布于1998年2月,之后迅速在全球掀起了XML应用的浪潮。XML是一种描述型的标记语言,与HTML同为SGML(标准通用标记语言,ISO-8879国际标准)的一种应用。由于XML在可扩展性、可移植性和结构性等方面的突出优点,它的应用范围突破了HTML所达到的范围。
一篇XML文档由标记和内容组成。XML中有六种标记:元素(elements)、属性(attributes)、实体引用(entityreferences)、注释(comments)、处理指令(processinginstructions)和CDATA段(CDATAsections)。XML与HTML最显著的不同是XML文档中引入了“文档类型声明”(Document Type Declarations)。DTD使文档可以与分析器交流关于它的内容的元信息。DTD的出现,赋予了XML文档可扩展性、结构性和可验证性,使XML具备了类似于数据库的一些性质,可以利用XML来组织和管理信息;又可以与HTML一样在浏览器中方便地表示,在Internet上高效地传递和交换。考虑到与HTML的兼容,DTD并不是XML文档必需的成份。具有DTD的XML文档称作“Valid”,否则就是“Well-formed”。
目前,处理XML文档的方式主要有SAX与DOM两种。SAX(SimpleAPIforXML)是一种基于流的、以事件处理方式工作的接口。SAX 20在2000年5月发布,增强了许多功能,包括对名字空间的支持。DOM(Document Object Model)则是在对XML文档进行分析后,在内存中建立起一个完整的树结构,然后在此基础上进行各种 *** 作。简单地比较来看,SAX对系统资源要求低、速度快,但对文档的 *** 作是只读的;DOM的处理能力强大,但要求大量的系统资源,尤其是对于大的文档。而后还出现了Xpath和Xpointer用以完成XML的搜索和转换;XSL、XSLT和SOAP用以完成XML的远程对象访问,XML Query Languages的出现使XML查询语言可用于任何XML文档。
3、XML与数据库
XML文件是数据的集合,它是自描述的、可交换的,能够以树型或图形结构描述数据。XML提供了许多数据库所具备的工具:存储(XML文档)、模式(DTD,XMLschema,RE1AXNG等)、查询语言(XQuery,XPath,XQL,XML-QL,QUILT等)、编程接口(SAX,DOM,JDOM)等。但XML并不能完全替代数据库技术。XML缺少作为实用的数据库所应具备的特性:高效的存储、索引和数据修改机制;严格的数据安全控制;完整的事务和数据一致性控制;多用户访问机制;触发器、完善的并发控制等。因此,尽管在数据量小、用户少和性能要求不太高的环境下,可以将XML文档用作数据库,但却不适用于用户量大、数据集成度高以及性能要求高的作业环境。
随着Web技术的不断发展,信息共享和数据交换的范围不断扩大,传统的关系数据库也面临着挑战。数据库技术的应用是建立在数据库管理系统基础上的,各数据库管理系统之间的异构性及其所依赖 *** 作系统的异构性,严重限制了信息共享和数据交换范围;数据库技术的语义描述能力差,大多通过技术文档表示,很难实现数据语义的持久性和传递性,而数据交换和信息共享都是基于语义进行的,在异构应用数据交换时,不利于计算机基于语义自动进行正确数据的检索与应用;数据库属于高端应用,需要昂贵的价格和运行环境。而随着网络和Internet的发展,数据交换的能力已成为新的应用系统的一个重要的要求。XML的好处是数据的可交换性(portable),同时在数据应用方面还具有如下优点:(1)XML文件为纯文本文件,不受 *** 作系统、软件平台的限制;(2)XML具有基于Schema自描述语义的功能,容易描述数据的语义,这种描述能为计算机理解和自动处理;(3)XML不仅可以描述结构化数据,还可有效描述半结构化,甚至非结构化数据。
4、XML文件的存储
XML文件的存储方式有三大类:(1)将文件存储于文件系统(StoringDocumentsinthe File System);(2)将文件存储于BLOB(Storing Documents in BLOBs),利用数据库的事务管理、安全、多用户访问等优点。此外许多关系数据库提供的检索工具可以进行全文检索、近似检索、同义词检索和模糊检索。其中某些工具将会支持XML,这样就可消除将XML文件作为纯文本检索所带来的问题。(3)将文件存储于原生XML数据库(Native XML Databases,NXD)。NXD是专用于存储XML文件的数据库,支持事务管理、安全、多用户访问、编程API和查询语言等。与其它数据库的唯一区别在于其内部模型是基于XML的。其中,最重要的存储方式当属原生XML数据库。
41原生XML数据库
原生XML数据库(NativeXMLDatabases)为XML文档定义了一个(逻辑)模型,并根据该模型存取文件。这个模型至少应包括元素、属性、PCDATA和文件顺序。其例子有XPath数据模型、XMLIn-foset以及DOM所用的模型和SAX 10的事件。它以XML文件作为其基本存储单位,对底层的物理存储模型没有特殊要求。例如,它可以建在关系型、层次型或面向对象的数据库之上,或者使用专用的存储格式,比如索引或压缩文件。
NXD最适于存储以文档为中心的文件。这是由于NXD保留了文件、顺序、处理指令、注释、CDA-TA块以及实体引用等,而支持XML的数据库XED(XML-enableddatabase)无法做到。XED是在原有数据库基础上扩展了XML支持模块,完成XML数据和数据库之间的格式转换和传输。从存储粒度上,可以把整个XML文档作为RDBMS表中一行,或把XML文档进行解析后,存储到相应的表格中。为了支持W3C的一些XML *** 作标准,Xpath、XED提供一些新的原语(如Oracle9iR2增加了一些数据包来 *** 作XML数据等),并优化了XML处理模块
以上就是关于怎样使用xml文件作数据库全部的内容,包括:怎样使用xml文件作数据库、xml在JSP开发中能代替数据库吗、有XML数据库么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)