如何用XML实现高效管理数据

如何用XML实现高效管理数据,第1张

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

xml:

<xml version="10" encoding="UTF-8">

<users>

<Messages>

<sendName>sendUsers</sendName>

<receiveName>snake</receiveName>

<date>2007-12-04 12:20:00</date>

<status>0</status>

<message>this is Content</message>

</Messages>

</users>

java:

package comlianxiDAO;

import javaioFile;

import javaxxmlparsersDocumentBuilder;

import javaxxmlparsersDocumentBuilderFactory;

import javaxxmltransformTransformer;

import javaxxmltransformTransformerFactory;

import javaxxmltransformdomDOMSource;

import javaxxmltransformstreamStreamResult;

import orgw3cdomDocument;

import orgw3cdomNode;

import orgw3cdomNodeList;

public class UpdateXml {

public static boolean doc2XmlFile(Document document,String filename)

{

boolean flag = true;

try

{

/ 将document中的内容写入文件中 /

TransformerFactory tFactory = TransformerFactorynewInstance();

Transformer transformer = tFactorynewTransformer();

/ 编码 /

//transformersetOutputProperty(OutputKeysENCODING, "GB2312");

DOMSource source = new DOMSource(document);

StreamResult result = new StreamResult(new File(filename));

transformertransform(source, result);

}catch(Exception ex)

{

flag = false;

exprintStackTrace();

}

return flag;

}

public static Document load(String filename)

{

Document document = null;

try

{

DocumentBuilderFactory factory = DocumentBuilderFactorynewInstance();

DocumentBuilder builder=factorynewDocumentBuilder();

document=builderparse(new File(filename));

documentnormalize();

}

catch (Exception ex){

exprintStackTrace();

}

return document;

}

/

演示修改文件的具体某个节点的值

/

public static void xmlUpdateDemo()

{

Document document = load("c://Messagexml");

Node root=documentgetDocumentElement();

/ 如果root有子元素 /

if(roothasChildNodes())

{

/ ftpnodes /

NodeList ftpnodes = rootgetChildNodes();

/ 循环取得ftp所有节点 /

for (int i=0;i<ftpnodesgetLength();i++)

{

NodeList ftplist = ftpnodesitem(i)getChildNodes();

for (int k=0;k<ftplistgetLength();k++)

{

Node subnode = ftplistitem(k);

/ 删除ftp-chn节点 /

// if (subnodegetNodeType()==NodeELEMENT_NODE&&subnodegetNodeName()=="ftp-chn")

// {

// ftpnodesitem(i)removeChild(subnode);

// }

/ 修改ftp-host的值为 19216801 /

if (subnodegetNodeType()==NodeELEMENT_NODE&&subnodegetNodeName()=="status")

{

subnodegetFirstChild()setNodeValue("1");

}

}

}

}

doc2XmlFile(document,"c://Messagexml");

}

public static void main(String args[])throws Exception

{

UpdateXmlxmlUpdateDemo();

}

}

SQL Server 使得以XML导出数据变得更加简单 但在SQL Server 中导入XML数据并对其进行处理则有些麻烦

如果你参考Books Online(BOL) 你会发现有相关的条目 包括OPENXML以及 OPENROWSET 所有的这些例子都支持将XML文本作为已经声明的变量 这对于经常处理文本的用户来说非常方便 但对于希望在开发中读取XML文件并进行相应处理的开发人员来说就不是这样了 处理这样的问题 或许最好从内到外来对其进行分析

OPENXML是一个rowset函数(即返回一个rowset) 它的工作方式类似于rowset函数OPENQUERY和 OPENROWSET 使用OPENXML可以对XML数据执行JOINs *** 作而无需首先导入数据 你还可以将其同INSERT SELECT UPDATE以及DELETE等 *** 作联合使用 然而 要使用OPENXML 你必须执行两项OPENQUERY和OPENROWSET并不需要的任务 这两项任务需要两个系统存储进程 第一个是sp_xml_preparedocument 它将读取特定的XML文本并将其内容提取到内存中 其语法如下

sp_xml_preparedocument @hdoc = OUTPUT

[ @xmltext = ]

[ @xpath_namespaces =

具体参数如下 @hdoc 指向某内存区域的句柄(从作用上看等同于一个指针) 相关数据存放在这里 注意这是一个输出变量 当该进程运行后 该变量将包含指向XML文件内容在内存地址的句柄 由于你需要在随后使用此结果 因此要确保对其进行保存; @xmltext 实际上你所希望处理的XML文本; @xml_namespaces 为了正常 *** 作你的XML数据所需要的任何名字空间索引(namespace references) 注意在这里出现的任何URL都需要用尖括号(< >)括起来; 假设所传递的这些参数都有效 并且XML文档存在 那么你的XML数据就会被存放到内存中去 现在你就可以调用 sp_xml_preparedocument 传递存放有XML文件的变量 然后执行OPENXML 语法如下

OPENXML(idocint [in] rowpatternnvarchar[in] [flag yte[in]])

[WITH (SchemaDeclaration | TableName)]

注意 在本文中没有足够的文字来描述OPENXML所接收的参数 请参阅BOL以获取更多信息 在Transact SQL Reference中查找OPENXML

现在我们已经到达了最后的步骤 所有剩下的工作就是导入一个实际的XML文件到SQL并进行处理(很奇快为什么所有的BOL示例都没有涉及到这一关键的部分) (我必须感谢我的同事Billy Pang所给予的帮助 他帮助我解决这个问题 并给出了代码——尽管出于本文需要我对代码进行了裁减 谢谢Billy!) 基本的技巧是 将文件逐行按文本读取 然后把所有读取的行连接为一个大的VARCHAR变量 最后 将变量传递给前面所说的代码

以下就是读取文件并将其内容存放到某变量的代码

DECLARE @FileName varchar( )

DECLARE @ExecCmd VARCHAR( )

DECLARE @y INT

DECLARE @x INT

DECLARE @FileContents VARCHAR( )

CREATE TABLE #tempXML(PK INT NOT NULL IDENTITY( ) ThisLine VARCHAR( ))

SET @FileName = C:\Temp\CurrentSettings xml

SET @ExecCmd = type + @FileName

SET @FileContents =

INSERT INTO #tempXML EXEC master dbo xp_cmdshell @ExecCmd

SELECT @y = count() from #tempXML

SET @x =

WHILE @x < > @y

BEGIN

SET @x = @x +

SELECT @FileContents = @FileContents + ThisLine from #tempXML WHERE PK

= @x

END

SELECT @FileContents as FileContents

DROP TABLE #tempXML

现在在变量@FileContents变量中你已经获得了文件的全部内容 所需要做的只是将变量通过@xmltext参数传递给sp_xml_preparedocument 然后再调用OPENXML

lishixinzhi/Article/program/SQLServer/201311/22101

1特别常用又很少改动的数据如省市的数据

2某个功能的配置文件这个配置文件是为某个功能使用的而这个功能又在不同的项目中使用如果使用数据库存储那就需要建立表等等比如一个上传的整套功能里面包含了缩略图,水印等配置这个功能你可能单独放在一个文件夹里在建立不同网站的时候你复制这个文件夹即可也不用考虑使用什么数据库所以使用xml反之如果你是用数据库存储你新建一个网站的时候就要建表来保存并且数据库如果不一样(mysql,access,mssql)等,你的存储sql语句还不一样

1 怎么把C盘里的文件夹移动到别的地方去

删除不需要的文件·用360等软件清理一下文件LJ··

把所有程序尽量关闭··打开MON FILES把不要的程序文件夹删除·

还有就是更改虚拟内存位置··一般虚拟内存会占1G左右空间··

方法具体如下·我的电脑 ---属性---高级---性能---设置----高级---更改---(选择D盘--自定义大小--输入与C盘相同的数值

如:1046-1505或者不懂的选择--系统管理的大小点击设置保存,然后选择C盘--选择无分页文件点击设置保存)那么你的C盘就可以节省大概1G左右的空间了··

然后移动自己平常需要的文件到D盘··

注意一下Documents and Settings里面的东西·有时候也蛮大的·适当删除下··

2 电脑里的系统C盘文件夹都是什么文件

1、Documents and Settings是什么文件?答案:是系统用户设置文件夹,包括各个用户的文档、收藏夹、上网浏览信息、配置文件等。

注意:这里面的东西不要随便删除,这保存着所有用户的文档和账户设置,如果删除就会重新启动不能登陆的情况,尤其是里面的default user、all users、administrator和以你当前登陆用户名的文件夹。2、Favorites是什么文件?答案:是收藏夹,存放你喜欢的网址。

可以在其中放网址快捷方式和文件夹快捷方式,可以新建类别(文件夹)。 3、Program Files是什么文件?答案:应用软件文件夹 装软件的默认路径一般是这里!当然里面也有些系统自身的一些应用程序4、mon Files是什么文件?答案:mon Files 这个文件夹中包含了应用程序用来共享的文件,很重要,不能乱删除 mon Files这个文件是 *** 作系统包扩系统程序和应用程序 mon Files是应用程序运行库文件数据库覆盖了大约1000多个最流行的应用程序的插件,补丁等等 文件夹mon files里很多都是系统文件,不能随意删除,除非确定知道是干什么用的,没用的可以删掉。

不过就算删掉了有用的东西,也没大的关系,顶多是某些软件用不了,不会造成系统崩溃。5、Plus Applicati是什么文件? 答案:Plus Applicati: 微软+ 组件使用的文件夹,删除后可能引起+ 组件不能运行。

(不能删除) 6、DIFX是什么文件?答案:不可以删除,已有的XML数据索引方法从实现思想上可分为两类:结构归纳法和节点定位法这两种方法都存在一定的问题,结构归纳法的缺点是索引规模较大而且难以有效支持较复杂的查询,而节点定位法的主要缺点是容易形成过多的连接 *** 作针对这些问题,提出了一种新的动态的XML索引体系DifX,它扩展了已有的动态索引方法,采用一种动态的Bisimilarity的概念,可以根据实际查询需求以及最优化的要求动态决定索引中保存的结构信息,以实现对各种形式的查询最有效的支持实验结果证明DifX是一种有效而且高效的XML索引方法,其可以获得比已有的XML索引方法更高的查询执行效率7、Inter Explorer是什么文件?答案:不用说了,肯定不能删除,IE,浏览网页的!8、Kaspersky Lab是什么文件?答案:卡巴斯基的文件包,这个是卡巴的报告,在C:\Documents and Settings\All Users\Application Data\Kaspersky Lab\AVP6\Report 的更新文件中有很多report文件很占地方的,删除了就好了。 1)、利用卡巴自带的清理功能,但不能完全清理干净。

2)、关闭自我保护,然后将report文件夹下面的文件手动删除。9、Messenger是什么文件?答案:系统自带的MSN是完全可以删除的。

相信有不少人都在使用MSN,可能有同样的经历,安装完新的MSN 后,可每每打开 MSN 首先跳出来的是旧版,而不是新版。即使在系统中删除了老版本,但过了不久也会自动恢复回来。

如果要彻底删除老版本可以点击"开始"->"运行"-> 代码: RunDll32 advpackdll,LaunchINFSection %windir%\INF\m sgsinf,BLCRemove10、microsoft frontpage是什么文件?答案:那个是系统自带的网页编辑器11、Microsoft Silverlight是什么文件?答案:Silverlight是于Adobe Flash基本相同的软件,运行在浏览器中的插件。实现交互、动画等功能。

使用XAML文件支持,支持运行库。 program files是Windows *** 作系统中所有应用程序的位置,大是正常的。

很多情况都可能造成program files创建文件夹,一般是安装应用程序后创建的。您需要提供出文件夹名称我们才可以确切的说是不是无用的文件夹。

一般情况这里的文件夹不可以删除的,如果删除会影响系统或应用程序无法运行。12、Movie Maker是什么文件?答案:movie maker是微软提供的捆绑系统的一个视频编辑软件。

我的这个文件也是空的,据猜测,应该是ghost版的系统优化掉了这个软件。 完全可以删除,不过系统总是重建这个文件夹。

可以用unlocker软件删除。 你无法删除的原因是仍然有桌面进程调用这个文件。

不解除锁定是无法删除的。13、MSBuild是什么文件?答案:没找到,应该是系统相关的,最好别删!14、MSN Gaming Zone是什么文件?答案:一些系统自带的扑克牌等小游戏,可以删除: 控制面板-〉添加或删除程序-〉添加/删除windows组件,然后在列表里面找到你要删除的outlook和msn explorer,把前面的勾去掉,就能删除了。

15、MSXML 60是什么文件?答案:msxml 指微软的xml语言解析器,用来解释xml语言的。就好像html文本下再到本地,浏览器会检查html的语法,解释html文本然后显示出来一样。

要使用xml文件就一定要用到xml parser。不过不仅仅微软有,像ibm,sun都有自己的xml parser。

16、Meeting是什么文件?答案:是Windows自带的MSN的文件,如果你不用MSN以及Outlook Express,你完全可以把它删掉。不过也占不多大地方的。

是Windows自带的MSN的文件,如果你不用MSN以及Outlook Express,你完全可以把它删掉。不过还是推荐看下网上的卸载方式,毕竟用系统自带的卸载方式比较安全。

Meeting文件夹是系统自带的有关远程控。

3 Win 7怎么把个人文件夹从C盘移到其他盘里

如何把Win7在C盘的用户文件夹转移到其他分区时间:2010-03-09 08:30来源:未知 作者:本站编辑 点击:112次欢迎您访问64位系统全攻略,访问本站请搜索:64位系统

在这儿逛的朋友一看转移系统文件夹,肯定想到了Windows7优化大师或者魔方,通过他们可以轻松的转移“收藏夹”、“我的文档”等等系统文件夹。但是,如果,要把 c:\users\ 这个文件夹彻底转移呢?下面一起跟着Win7之家我们来弄下:Windows7的用户文件夹默认所在位置是系统盘(通常是C盘)下的“\Users”目录之内。该文件夹中储存着所有的用户生成文件,比如你保存在“桌面”上的文件(实际上是保存在C:\Users\你的用户名\Desktop\目录之中),再比如你保存在“我的文档”里的文件(实际上是保存在C:、Users\Ruanmei\Documents目录之中)。 本文来自:64位系统全攻略(windows7、windows8、windows2008、Mac OS,Linux)

更多资料请访问

4 如何清理c盘空文件夹

C盘的空文件夹最好不要轻易删除。

1、因为空的文件夹有时作为临时存储使用。

2、如果知道空的文件夹属于哪个软件使用的,卸载软件后可以删除。

如果空文件夹是在安装完系统以后,又安装了其他程序才出现的,则可以删除的机会比较大。查看是否有隐藏文件,可以这样 *** 作:

打开我的电脑,在工具菜单中选择“文件夹选项”,然后选择“查看”,选择“显示所有文件和文件夹”,这样就可以查看空文件夹是否有隐藏文件或文件夹,设置为隐藏属性的文件和文件夹一般为半透明颜色。如果对系统了解较多,注意分析,一般不会出差。但是windows文件夹下面的文件绝对不可删除。program files文件夹下面的文件也要注意,没有把握的不要删除。

5 如何把C盘的用户文件夹移到D盘

1、在桌面上打开用户文件夹,可以看到如下图所示的诸如“保存的游戏”、“下载”、“链接”等文件夹,这些文件夹就是WIN7用以保存用户个人数据的文件夹;

2、任选其中一个文件夹,在其图标上点右键,选择属性,再点击位置选项卡,以桌面文件夹为例,如下图所示:

3、在 *** 作过程中我们注意到,路径中的文件都是英文的,重定义后“桌面”变成了“Desktop”,这是怎么回事呢?其实这只是我们在 *** 作时没有修改文件夹的别名的原因,修改方法是在文件夹图标上点右键,选择属性,在常规选项卡的输入栏里输入这个文件夹的别名就可以了,如下图所示:

对计算机软件的维护主要有以下几点:

1、对所有的系统软件要做备份。当遇到异常情况或某种偶然原因,可能会破坏系统软件,此时就需要重新安装软件系统,如果没有备份的系统软件,将使计算机难以恢复工作。

2、对重要的应用程序和数据也应该做备份。

3、经常注意清理磁盘上无用的文件,以有效地利用磁盘空间。

4、避免进行非法的软件复制。

5、经常检测,防止计算机传染上病毒。

6、为保证计算机正常工作,在必要时利用软件工具对系统区进行保护。

xml里面index并不需要连续。根据查询相关公开信息显示,在XML中,元素和属性都可以包含不同的子元素和属性,而这些子元素和属性的顺序是可以自由调整的,同时也可以被重复使用,甚至可以嵌套使用。在这种情况下,元素和属性的索引值是在XML文档中的位置来决定的,而不是由连续的整数值来决定的。因此,XML中的元素和属性的索引可以是不连续的,也可以不按照任何特定的顺序排列。

XML是被设计用来存储数据、携带数据和交换数据的。

通过XML,可以在不兼容的系统之间交换数据,利用XML,纯文本文件可以用来存储数据。在不使用XML时,HTML用于显示数据,数据必须存储在HTML文件之内。

XML不是为了显示数据而设计的,主要是用于交换数据,可以从HTML中分离数据,也可以用于存储数据,大量的数据可以存储到XML文件中或者数据库中,应用程序可以读写和存储数据,一般的程序可以显示数据。

通过XML可以在HTML文件之外存储数据使用,也可以充分利用数据,可以用于创建新的语言XML是WAP和WML语言的母亲。如果开发者有足够的预见性,那么将来的应用程序都应该使用XML的形式来存储数据。

以上就是关于如何用XML实现高效管理数据全部的内容,包括:如何用XML实现高效管理数据、java怎样读写和修改XML文件、SQLServer读取XML文件的做法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9555737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存