`
qq123zhz
  • 浏览: 539621 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

数据库保存大量XML文档(存着)

阅读更多

关系数据库中存储大量XML文档会导致很多问题。解决这些问题的首要步骤是深刻理解XML文档中的参数。然后正确设计合适的解决方法。解决方法可以包括:一系列的结构表将XML文档分割为小块,或者直接捆绑到数据库中的BLOB域。

    大量文档的潜在问题

    当在关系数据库中保存XML文档,尤其是保存大量的XML文档时,由于采用方法的原因,可能会产生很多问题。

    有什么可能使得一个XML文档变得非常巨大呢?经过测试发现,一个XML文档变得很大的迹象是文档不能正常启动。这可能是因为以下潜在问题造成的。

    首先是原始空间(raw space)的问题。出现的问题与XML文档的使用频率和存放空间相关,并不是因为文档大于通常情况下的状态,而是由于频繁地使用它们造成的问题。使用者必须有一个适当大小的数据分区或数据库来存放这些文档。

    在关系数据库中保存大量XML文档的解决办法

    其次,运行数据库可能会产生错误。有时候XML文档会分成多个部分,存放在代表XML文档结构的不连续的表中。但通常情况下,XML文档存放在BLOB域、文本域或者VARCHAR域中。

    除了在数据库设计上的缺欠之外,使用者还有可能碰到与数据库通信的界面方面的问题。例如,绝大多数SQL执行都限制数据为4096字节――这就意味着,当使用SQL向数据库发送10KB文档的时候,该文档将会遇到问题。在数据库存储程序中也存在类似的限制。如果没有意识到这些限制以及文档是否超出范围的,使用者在使用过程中难免会碰到这些问题。

    数据库设计

    开发人员和数据库管理人员必须清楚地理解XML文档中将要产生的操作,这样才有可能正确地设计数据库。理解将如何使用数据库也同样是相当重要的。

    如果以整块方式存储整个文档,这时有多种选择。对于非连续数据,使用者应该设计出代表XML结构的表,并将数据分开存放到独立的表中。将数据分开存放的优点是在于可索引性和可查询性,以后进行查询操作时不需要再对整个文档进行操作。

    BLOB(Binary Large Objects,大型二进制对象)域被用于存储大型的二进制格式的数据。例如,加密文件通常都用于BLOB域。BLOB域非常适合存放XML文件。不过,BLOB域不具备可索引性和可查询性,而且它不能通过标准的SQL与BLOB交换大量的数据。

    两种解决方法

    一个解决SQL限制的方法是将XML文档分割成为4KB或更小的块,这些小块再存放在表中,然后使用ID域将这些小块联系起来。

    在存储这些文档时,使用者应该将它们分割成为小块并存放在表中。当返回文档时,使用者通过特定的ID选择所有的块,然后以合适的顺序对它们进行集合。虽然比较麻烦,但这一方法对于多数据库非常有用。

    使用BLOB域可以在不分割的情况下存放大量XML文档,但是BLOB域的问题在于不能使用SQL存储和获得数据。近年来,数据库厂商都有了自己的存储和获得大型对象的方法。

    为了在一个BLOB域中存储大量的XML文档,使用者必须使用捆绑(binding)。捆绑是将程序代码中的数据与数据库中的域相互联系的过程。使用这一方法后,当改变数据库的时候,会有可能影响数据库的其他功能。

    

分享到:
评论

相关推荐

    xml 数据库教程 xml语法

    - **基于表格的映射**:将XML文档中的元素映射为数据库表中的列,属性映射为列的值。 - **关系-对象映射**:通过对象关系映射(ORM)技术将XML文档转换为对象模型,再将这些对象映射到关系型数据库中。 - **5.2 ...

    C#读取XML文件并写入数据库

    - `XDocument` 和 `XmlDocument` 都提供了一种将整个XML文档加载到内存中的方式,然后可以方便地通过LINQ查询语法操作XML数据。适合较小的XML文件。 - `XDocument` 更为推荐,因为它提供了更简洁的API,而 `Xml...

    数据库转化为xml文件

    - **生成XML文档**:使用编程语言(如Python的ElementTree库,Java的JAXB,或者.NET框架的XmlDocument)创建XML文档。根据映射规则,将查询结果转换成相应的XML结构。 - **处理复杂数据类型**:如果数据库包含复杂...

    数据库转为XML格式

    每个表可能对应一个XML文档,每条记录可能成为文档的一个节点,而字段则转换为子节点或属性。 3. 数据转换:使用编程语言(如Python、Java、PHP等)的库或工具(如XSLT)将查询结果转化为XML格式。XSLT(Extensible ...

    [VB.NET源码]数据库与XML的交互

    1. XmlDocument和XDocument:两者都是.NET中处理XML文档的主要类。XmlDocument基于DOM模型,而XDocument基于LINQ to XML,后者更简洁易用。 2. 加载XML:加载XML文件到XDocument对象。 ```vbnet Dim doc As ...

    数据库文档生成工具.zip

    然而,数据库文档的生成往往需要投入大量的时间和精力进行手动编写,这不仅耗时而且容易出错。幸运的是,如今有专门的工具应运而生,可以在几秒钟内生成全面而精确的数据库设计文档,"数据库文档生成工具.zip"就是...

    从数据库中读取数据自动生成XML

    XmlDocument 对象提供了一个强大的 XML 文档对象模型,可以读取和更新 XML 文件。 在本示例中,我们使用 XmlDocument 对象来读取 XML 文件,并使用 GetElementsByTagName 方法来获取指定元素的集合。然后,我们可以...

    数据库文档生成器支持MYSQL及Oracle

    它由Java编程语言精心编写,旨在帮助IT专业人士自动化创建数据库的详细文档,从而节省大量手动整理文档的时间,提高工作效率。 在数据库管理中,文档是至关重要的,它记录了数据库结构、表、索引、视图、存储过程等...

    delphi_xml.rar_delphi XML_delphi_xml_delphi解析xml_dephi xml数据库_xm

    `XMLDoc`类用于加载和保存XML文档,而`XMLData`类则用于处理XML数据对象。此外,`MSXML`和`IXMLDOMDocument`等组件也常被用来处理XML,它们提供更高级的功能,如XPath查询和XML Schema验证。 在Delphi中解析XML文档...

    access数据库数据转换为xml文件

    3. **XML数据结构**:Access中的表在转换为XML后,每个字段对应一个XML元素,每条记录成为XML文档的一个元素节点。主键字段通常作为XML元素的唯一标识,其他字段作为属性或子元素。 4. **注意事项**: - 数据类型...

    XML文档数据生成器V1.0版

    XML数据生成器在科研中的应用广泛,比如在软件测试中,可以生成大量XML数据作为输入,测试程序对XML文件的处理能力;在数据交换研究中,可以模拟不同格式的XML数据,探讨最佳的数据转换策略;在数据存储的研究中,...

    java XML解析方式实现自动生成word文档

    5. 替换占位符:遍历XML文档,将占位符替换为实际的数据,这可能涉及到创建`XWPFParagraph`、`XWPFRun`等对象。 6. 写入Word文档:将处理后的数据写入到`XWPFDocument`对象中。 7. 保存文档:最后,将`...

    使用ADO.NET和XML开发数据库应用程序

    ADO.NET和XML是两种强大的技术,它们在构建数据库应用中起着至关重要的作用。本文将详细讲解如何使用ADO.NET和XML来开发数据库应用程序。 **ADO.NET概述** ADO.NET是微软.NET框架的一部分,它提供了一组全面的对象...

    将数据库对象存储为xml文档

    在IT行业中,数据库对象存储为XML文档是一种常见的数据交换和持久化方法。XML(Extensible Markup Language)是一种标记语言,它的设计目标是传输和存储数据,而非显示数据,因此它非常适合用于跨平台、跨应用程序的...

    VC++中利用CMarkup类对XML文件的操作

    这个类库提供了方便的方法来操作XML文档,包括创建、读取、修改和保存XML数据。以下是关于如何利用CMarkup类进行XML文件操作的详细说明: 首先,XML文件中有一些特殊字符需要特别注意,它们不能直接出现在文本中,...

    基于XML的简易联系人备忘录

    整个联系人列表则作为一个XML文档,保存所有联系人的信息。 2. 解析与读取:程序需要解析XML文件,提取其中的联系人信息,并展示给用户。这通常通过XML解析器来完成,例如DOM(Document Object Model)或SAX(Simple...

    matlab读取XML,XML转换为matlab

    - `xmlwrite`: 使用此函数可以将Matlab结构体或cell数组转换为XML文档,并保存到文件中。这允许用户将计算结果或处理过的数据以XML格式存储或交换。 - `xmlwriteNode`: 如果只需要写入XML文档的一部分,可以使用此...

    xml主从表保存

    在XML中实现主从表保存,主要是将这两类数据结构转换为XML文档的形式,并保持它们之间的关联性。 1. **XML文档结构**:在XML中,主表和从表可以通过元素嵌套来表示这种关系。主表的数据可以作为根元素,从表的数据...

    sqlite3 xml读写

    7. **性能优化**:对于大量XML数据,考虑性能优化是必要的。这可能包括合理设计数据库表结构、缓存XML解析结果、使用适当的索引等策略。 8. **错误处理**:处理XML和SQLite3时,应充分考虑到可能出现的错误,如XML...

    js控制多个div拖拽和拖动、且能保存数据至cookie、数据库、xml

    最后,XML是一种常见的数据交换格式,可以用JavaScript的DOM(Document Object Model)API来创建和操作XML文档。将div的状态信息转换为XML结构,然后可以使用XMLHttpRequest发送到服务器进行存储,或者直接保存到...

Global site tag (gtag.js) - Google Analytics