问题标签 [xml-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
86 浏览

oracle - 使用 XQuery(在 XQJ 代码中)从数据库表中的列访问 XML

我在本地安装的 Oracle 数据库中创建了下表:-

它为 4 行,主键为 1、2、3 和 4。

现在我编写了以下 Java 代码来访问“WAREHOUSE_SPEC”列(其中包含每一行的 XML 文件):-

这里,“mydb”是数据库模式,“WAREHOUSES”是表名。

该代码应返回 2 行,主键为 1 和 2,但它无法找到该表,并给出以下错误:-

我在这里做错什么了吗?

0 投票
1 回答
439 浏览

xml - XQuery 和 idref

一个真正的 XQuery 初学者问题,但我似乎无法解决我的问题。

我有一个 XML 数据库 videos.xml,其中演员和电影存储为节点(我认为?)

演员都有单独的 ID,但它们不是作为属性存储的,而是作为其他东西存储的(可能有一些 ID 的内置属性吗?)。电影都有一个或多个actorRef 属性引用actor-ID。

我现在要查询的是所有引用某个演员 ID 的电影。假设 Keanu Reeves 的 ID 为“001”,那么我们想要找到所有引用此 ID 的电影 -> 例如 Matrix 和 The Devil's Advocate。是否有一些内置功能?

0 投票
0 回答
340 浏览

f# - F# 数据类型 + SQL-Server 持久性(使用 No-SQL 技术)

我的 F# 应用程序有一个非常好的 F# 模型,充分利用了 F# 类型系统(联合、记录、元组和原始类型)。我试图找出将这些数据类型保存到 SQL-Server DB 的最佳方法。

让我们做以下假设:

  • 我要坚持的中心实体是一个有区别的联合,Task称为表实现起来很繁琐

  • 我希望每周多次不断地改进这些模型,CI 将在提交后立即将我的应用程序部署到生产环境中。同样,使用常规表格会使ALTER TABLE语句减慢我的开发和部署速度,并增加相当多的认知超载,任何新开发人员在此系统上都会发现具有挑战性

  • 在模型进化时,我应该能够轻松地使用后台进程在线升级我的旧模型,或者从数据库中获取,停机时间接近于 0

  • 我应该能够以任意深度查询这些模型,而且我已经有将近一百万行要处理,而且还会继续增长。查询应该很快,最多百毫秒级

  • 我需要使用 SQL Server,因为这个应用程序是更大系统的一小部分,我希望任何数据库操作都参与任何正在进行的数据库事务


序列化为TaskJSON

这是我的第一次尝试——使用 SQL Server 2016 的新 JSON 函数将所有内容存储为 JSON,识别可查询值,将它们存储在索引表中。SQL Server 中的 JSON 函数非常快,但是对这些查询进行索引需要我使用持久+计算+索引列或索引视图。

痛点:

  • 很难进化模型,特别是如果我想进化所有类型 X 的实例,对于不同的联合情况,它可能出现在不同的深度。没有标准化的语言来说明这些演变

  • JSON 不区分十进制/浮点数/数字,这有时很难处理,我需要自定义格式化程序。小问题,没什么大不了的。

  • 查询语言在任意深度上都有些原始,并且这些查询没有索引,因此新查询几乎总是需要我创建一个计算列或更改我的索引视图。

  • 将新的索引列添加到索引视图不是 ONLINE 操作,会导致停机,并且在 CI 中很难自动化

  • 在同一个表中使用 PERSISTED COLUMNS 有时会导致 SQL Server 在搜索/选择时没有真正使用这些,而是​​从头开始重新计算值(因为它在其查询计划器中不能很好地准确计算此操作的成本)


序列化为TaskXML

这是我目前的实现。

  • 我编写了自己的自定义 XML 序列化程序,使我可以很容易地使用 XQuery 和 SQL Server 的 xml 数据类型列查询数据库

  • 使用极其强大的 XSLT,模型演变轻而易举

问题:

  • 即使添加了所有可能的 XML 索引,查询也很慢——大约需要 5 秒(在 Azure P6 SQL 实例中)
  • 再加上对不同持久模型版本的稍微不同的查询,这使得它变得更加昂贵
  • 非索引 XML 函数非常慢,构建索引表/持久列需要很长时间,所以我不能真正使用它。

我对我的 XML 解决方案非常满意——我只需要一种方法来加快我的 XML 查询,我认为此时我已经达到了 SQL Server 所能提供的极限。

是否还有其他我错过的方法是 F# 社区试图能够持久化非常丰富的 F# 数据模型?

0 投票
1 回答
170 浏览

robotframework - RobotFramework:查询 xml 数据库:无法对结果集进行验证

当我对 xml 数据库进行查询并将查询结果作为[('Testing',)]. 我想对这个值做一个简单的检查,以确保它与通过 UI 输入的相同。

但我收到一个错误[('Testing',)] != Testing

知道我在这里做错了什么。有没有办法从所有这些符号中去除价值( , ' , ??

0 投票
1 回答
164 浏览

xml - 在 XML 中存储具有共同索引节点的树的最有效方法

我正在挑选我的一个旧项目,其中有效性和效率是关键。我解析了 100 GB 的 XML 数据。对于每个 XML 树(数以百万计),都使用一些 XML 属性,从中扣除模式。不过,对于这个问题,我将大大简化事情 - 但重要的是要记住有大量数据,快速处理以及以 XML 格式整齐地存储结果很重要。此外,还需要遍历生成的 XML 树。事实上,它将作为BaseX中使用的自定义索引机制,但我稍后会谈到这一点。

从每棵树(及其子树,但现在不重要)创建一个基于根节点的直接子节点的模式。作为一个基本示例,采用以下 XML 树:

该模式是通过获取所有孩子的字母属性并将它们排序并连接它们来创建的。在这种情况下,模式将是ABCD

对于每棵树,还生成所有可能的子树(顺序不重要,最小组合 2),即所有可能的子树组合,并生成它们的模式。我不包括组合树的 XML,但除了 之外,可能的模式ABCD将是:

在层次结构中,它们看起来像这样(注意终端节点中的重复)。

模式树视图

此外,我们开始的完整模式应该在生成的 XML 中以某种方式指示,以表明它是树中的“主要”模式。最终,我想恢复从给定模式派生的所有模式(参见稍后)并将这些模式过滤为仅作为“主要”模式的模式。

从查询的角度来看,您可以argue that I am doing a bottom-up look-up. If I am looking for a generalized pattern, e.g. AB, the more specific patterns should also be found becauseABCD is part of。因此,如果我要使用上面的数据寻找模式AB,我会想找到

很明显,这里有两个步骤。首先,概括一个级别:AB -> ABC,ABD然后ABC->ABCDABD->ABDC当然,每个结果应该只找到一次)。中间步骤对我来说ABCABD很重要,而不仅仅是最终ABCD结果。

我面临的问题是如何有效地存储一棵树,例如图像中呈现的树,以便它 1. 以我讨论的方式易于查询;2.尽可能稀疏而不丢失任何节点;3.高效搭建。后一点对于这个问题不太重要,因为我将自己实现构建脚本——这将在 Python 3.6 中完成。

到目前为止,我的想法是拥有一个相当扁平的结构,通过“coindexing”直接父节点来工作。它看起来像这样:

通过这样做,我想可以得到所有链接在一起的模式。例如,如果我现在要查找 AB,我希望到达该节点 children ( parentnode) 并获取这些索引并使用这些索引来查找直接父节点。然后应该重复该过程,直到没有元素留下协索引(例如ABCD在这种情况下)。

想象一下,有成千上万个这样的 XML 元素,主要的元素用isMain. 请注意,这isMain不一定是没有父节点子节点的模式!结果是所有原始 XML 树的累积。这意味着在某些情况下,一种模式可能是主要模式,而在其他情况下,它可能是组合的一部分。在这种情况下,node 表示,isMain因为在原始 XML 中有“某些树以这种模式作为其主要模式”。

到目前为止,这只是我的想法,但我不确定是否有更好的方法,或者更重要的是,是否可以在 BaseX 中轻松查询。基本上,对于给定的输入AB,我想pattern通过使用索引来检索所有相关的 s(ABC、ABD、ABCD),然后通过仅检索 where 来过滤这些结果isMain="true"。我期待看到更好的想法,以及在 BaseX 中查询它们的方法。如果我的想法不错,那么我希望看到一种在单个 xquery 表达式中捕获查询的好方法。

0 投票
0 回答
27 浏览

xml - 我什么时候应该在数据库上使用 XML 文件?如果在 XML 文件中存储大数据效率低下,那么 XML 数据库能解决这个问题吗?

我还读到解析 XML 文件是一个痛苦的过程,为什么会这样?

据我所知,Java提供了DOM和SAX等解析库。使用这些库有什么难的?是导致问题的 XML 文件的大小吗?

0 投票
1 回答
122 浏览

xml - How to optimize XQuery fn:count() in FLWOR (Parallelize)?

I'm using BaseX XML database and have a lot of XML data, approximately 50 000 files of various size. However, one of my local functions I have implemented are to computational heavy. Unfortunately it is very crucial in my work.

Let us assume I have 50 000 files for every Student, and every Student has an attribute called friend. I want to find out for each Student, how many friends the Student has.

Here are some example code:

This code works fine for one single student. For 1000 students, it takes approximately 5 minutes. Imagine for 50 000 students. It either crashes or gets timeout, I cannot debug it. Left it to calculate overnight and came back, nothing happened.

Is there a way to optimize this? Since using @friend = $studentName it makes use of attribute index (it is enabled). Having taken a parallel course in university, my first thought was to parallelize the count and flwor statement into chunks, similar to OpenMP. But after some research it does not seem to support parallelized queries.

Anyone have any idea on how to approach this problem?

Thanks!

EDIT: Example of XML structure

0 投票
1 回答
46 浏览

c# - 如何删除 Datagridview、XML 数据库中的最后一行?

当我尝试删除 Datagridview 和 XML 数据库的最后一行时,我无法删除。我可以正常删除所有项目,但不能删除最后一行。

这是我的删除按钮: