2011-02-27 80 views
1

我已经搜索了网络,似乎找不到合适的例子,所以我想我会问... (顺便说一下,这对我来说很新颖 - 不是)将嵌套字典/ xml转换为平面文件的sqlite

问题:试图将pubmed引用数据的bio/python嵌套字典(或xml)转换为平坦(规范化)结构,例如sqlite。引用数据是使用biopython从pubmed获取的,并被解析为字典,但如果需要也可以检索为xml。

并非所有引用都包含所有字段/键,并非所有字段/键都会具有相同数量的项目(作者,网格术语,参考等等),并且明白这是正常化过程的一部分。

这是关于我的实际理解结束的地方。

这就是说,我认为这个过程应该是这样的:首先删除/规范化所有独特的领域(那些每篇论文有1个,例如标题,摘要,日期,引文等等,但不要说从属关系因为这将与第一作者相关)。没有摘要的论文可以填写为null?

然后继续前进,比如说作者,并使用PMID作为fk重新创建一个单独的表格,然后对不同的表格中的各个其他字段/键/项目执行相同的操作,例如网格标题,EC编号,ref等...

有没有办法做到这一点,从主字典中删除(弹出?)键/项目,以便我可以直观地看到做了什么/需要做什么(显然离开PMID)?

再说一次,如果我向启动者提出一个非常明显的问题,并且我明白你无法将一个嵌套结构嵌入到一个平坦的空间中 - 只是寻找最不发达的方式这并希望能够让我确保一切都被恰当地捕获。

非常感谢, 克里斯

回答

0

一个快速的问题 - 如果你已经在XML数据,你为什么它归到一个SQL格式?为什么不使用原始XML? Berkeley DB XML是链接到您的应用程序的库(如SQLite)。没有单独的服务器来安装或维护。该库允许您使用XPath or XQuery存储和查询XML数据。速度非常快,占地面积小。是交易性的,可收回的和高度可靠的。它也具有HA功能,如果这是必需的。

保持XML中的数据应该简化整个数据导入过程,并允许您查询半结构化数据。