7

我知道这不是一个非常简单的问题,但是您将如何设计一个 SQL 数据库来存储来自 XML 文件的数据?,(您没有 XML 模式,只有一个具有许多不同标记名、属性和嵌套元素)。

这比技术更概念化。我们如何从分层数据模型 (XML) 到关系模型 (SQL)。

4

3 回答 3

2

如果您没有架构,并且想使用传统的关系型数据库管理系统(RDBMS),那么您基本上就完蛋了。

但是您可以选择所有主要数据库系统中都存在的 XML 数据类型(在Oracle (>9i)、MS SQL (>2005)、PostgresDB2中)。这允许您使用 XPath 表达式来处理 XML 内容,这非常简洁。

还推荐阅读:

或者,您可以跳过将层次模型转换为关系模型的步骤,因为这似乎是NoSQL DB(如CassandraMongoDB )的完美用例。

(最初作为评论发布,但我认为它可能值得成为一个答案......)

于 2012-10-30T08:31:20.453 回答
1

嗯,有什么问题?将树表示为关系很简单。

NODE ( id, tag-name, text )
ATTR ( id, attr-name, attr-value )
NODEATRR ( node-id, attr-id )
NODENODE ( node-id, child-node-id )

我希望,关系之间的关键和联系是显而易见的。当然,它很丑而且是字符串类型的,但是如果你想存储任意XML,那就是你得到的。

于 2012-10-30T08:35:33.667 回答
0

SQL中有一些巧妙的树编码方案。同样,即使是聪明的树编码也不如正确设计的数据库模式。

于 2012-10-31T17:02:30.280 回答