xml数据库,对以下内容有好处吗?

时间:2011-12-02 15:58:04

标签: c# wpf xml database

我正在使用xml文件作为当前正在开发的数据库。

xml文件将由网络上的多个用户修改。(不是在服务器上,而是在我的计算机上,他们可以通过网络访问)

我知道为此使用xml是一个坏主意,但xml的结构更好/更清洁/我喜欢的东西。

想知道,我的选择是什么?因为我可以继续使用一些奇怪的背景自定义连接xml? (这将验证所有必要的细节,以允许我从xml写入/读取没有问题)

还是我坚持使用一些SQL类型的数据库?如果我坚持使用它会有某种类似于XML的数据库......

编辑:喜欢xml的原因。 为眼睛轻松分组。

<SomeDocument name="Something">
   <URL>bbbb</URL>
   <Something>2342</Soemthing>
   <Something_That_would_of_been_in_another_database>derp</...>

而不是将3-4张桌子连在一起......

4 个答案:

答案 0 :(得分:2)

有一些基于XML的数据库的例子支持多用户环境。一个是Microsoft OneNote使用的OneNote修订文件格式。虽然有一个非常详细的文档,但支持多个用户编辑单个文件非常复杂。基本上可以说,当您需要多用户支持时,基于XML的存储不是可行的选择。

如果您坚持使用XML文件,您可以查看OneNote文件格式,但它不是传统的XML格式,因为它还使用“二进制包装器”,这意味着实际内容是在XML数据中定义的在二进制文件中,但事务/修订/空闲块表示为二进制。这是必要的,因为您必须分配文件的特定部分供用户写入,同时打开文件。

如果您不想使用专用服务器软件,可以使用各种基于文件的数据库,如SQL CE或SQLite。

答案 1 :(得分:1)

如果您使用了多个用户可以访问的文件,则需要处理并发问题。需要保证一个用户不会覆盖同一时间内其他用户的更改。

我的建议是使用适当的数据库(例如SQL Server)来处理这些问题。

答案 2 :(得分:1)

我不熟悉C#soultions,但是对于我们的java应用程序,我们使用eXist-db并使用xquery进行查询。我对它不太熟悉,但有些人使用markLogic。还有更多使用Berkley db

答案 3 :(得分:1)

是否使用本机XML数据库,支持XML的数据库,所谓的NoSQL数据库或任何更传统的方法的问题可以依赖于多种因素。仅举两个:

  • 最重要的是,您是否拥有XML数据,并且希望保持这种方式吗?如果是这样,请使用支持XML的解决方案。
  • 您是否需要可扩展性或性能?如果是这样,您将需要一个可以解决这个问题的解决方案。有很多NoSQL和XML数据库能够很好地处理它。

至于并发性:任何数据库都应该本地处理它。

已经提到了许多数据库。为了说明一些,MarkLogic Server(www.marklogic.com)可以扩展和执行高达太字节(甚至更高),并且具有Java和.Net等连接器。 28毫秒(基于Zorba的www.28msec.com)的解决方案在云端运行,也应该扩展。

但最值得一提的是这些数据库通常通过HTTP / REST接口使用。这允许从任何编程语言轻松集成,并使交换更容易。