2011-02-27 158 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中的數據應該簡化整個數據導入過程,並允許您查詢半結構化數據。