• 登入
  • 註冊網站會員
CIO Taiwan
  • 活動
  • 影音
  • 趨勢分析
  • CIO 雜誌
  • CSO精選
  • 電子報
  • 下載
  • 聯繫我們
沒有結果
查看所有結果
CIO Taiwan
沒有結果
查看所有結果
首頁 專欄

以NoSQL重構HIS資料庫(中)

2021-03-02
分類 : 專欄
2
A A
0
孫12

有人常常在談,用NoSQL根本沒有事務性交易(Transaction),也就是沒有像關聯式資料庫有ACID的特性,讓資料儲存保持完整性及單元性的概念。其實談到ACID,就要談到CAP的理論,也就是要確保資料的一致性,並不一定要在一瞬間有一致性,也就算是沒有一秒兩秒的一致性,一樣可以達到整體一致性的概念。其實我們現在各行各業的有很多資料都放在雲端,如果真的要做到ACID,坦白講,網路品質也是值得商榷的。

[ 下載 2020-21 CIO大調查報告,掌握2021年企業IT導入趨勢 ]

所以要談ACID或是CAP的概念,就要牽涉到整個資料庫日後的設計理念跟概念。如果說採用NoSQL資料庫後,卻還是用關聯式資料庫的設計概念,那一定會有很多的交易產生,也就是在新增或更新很多表格時,只要有一個失敗就要重新還原(Rollback)。

但如果以一個文檔(Document)的設計方式,所有的關聯就沒有了,文檔儲存成功就成功,失敗就失敗,就不會發生儲存多筆資料時,中間只要有一個失敗還要重新還原回去的狀況。

內容目錄 隱藏
如何從SQL轉換為NoSQL
模型轉換:以病人看診資料為例
模型設計:嵌入式或參考關聯

如何從SQL轉換為NoSQL

我們要怎麼從SQL轉換到NoSQL?以關聯式資料庫管理系統(RDBMS)轉換NoSQL的MongoDB為例。在圖一中是兩者結構的對照。左邊是關聯式資料庫,最高等就是Database。再來就是Table,每一筆資料都叫Row。因為Table要加快速度,就會有一個Index,若要JOIN什麼資料就透過Index的互相JOIN,另外,新增、刪除及修改就會用到Transaction。

圖一

對應到MongoDB,有一些名詞就會改變,Database還是Database,但是Table就改稱為Collection。每一筆資料稱為Document。兩者都有Index,但以NoSQL而言,建議儘量少用關聯資料方式,因為關聯會產生很多複雜性,還要JOIN很多Table,所以NoSQL會儘量將很多的資料變成一個文檔。

所以關聯式資料庫轉換MongoDB時,模型設計兩種方式,最常用的是以Embedded方式,將資料嵌進去文檔裡面,若Embedded進去的資料太大,則不建議Embedded進去,才改用References關聯,就跟傳統資料庫的JOIN是一樣的。其設計原則就是,若資料關聯性是一對一就直接用Embedded的方式,如果是一對多,資料量不大就可以用Embedded,資料量很大就用References,如果是多對多,可能就要個案討論。另外,早期NoSQL被詬病的地方,就是沒有Transaction,但MongoDB在4.0以後就已經有ACID的概念。最後值得大家深思的是資料的存取頻率,是存檔次數較頻繁?還是取出來查看次數較為頻繁?

[CIO都在讀: AI最常見的應用有哪些? ]
[CIO都在讀: 10個數位轉型成功案例 ]
[CIO都在讀: 所有企業都想要的12種CIO技能 ]

模型轉換:以病人看診資料為例

要從SQL轉到NoSQL,要先看整個模型的轉換。關聯式資料庫的正規化,主要是希望減少資料庫中的資料冗餘,增進資料的一致性。但正規化以後就會產生一些問題,就是上一期講的正規化以後,要反正規化,整個效能就會變得很差,可讀性也會變得很差,事務性交易也會變得更複雜,做得不好還會有 Table Lock 的情形發生。

解決前述問題的方法其實很簡單,以真實的狀況來講,「使用在一起的資料,就應該要存取在一起」,變成一個文檔。早期要把這些資料分開,是為了要節省空間,以圖二的病人的看診資料為例,首先會有病人的基本資料,然後會有這個病人到醫院來看診的紀錄及很多的病歷及醫囑資料,在關聯式資料表就需要有7個表格來互相關聯,如圖中Patient為病人基本資料表、VisitRecord為就醫紀錄表、SOARecord為病人主訴及評估表、DiagRecord、DiagBasic則為疾病診斷紀錄及名稱表、MedOrder則示記錄醫師開立醫囑資料表、以及關聯醫令代碼的醫令基本資料表MedBasic。

圖二

以MongoDB來講,如圖三所示,就是把一個病人的看診資料,包成一個文檔,我們只要抓到這個病人看診資料的文檔,就可以知道他有多少看診資料,就不必用去關聯其他的表格。這個就是Embedded的概念,在開發上非常的直覺方便,就不用JOIN。

圖三

可以再根據病人每一次的看診記錄,去查看醫師開立了那些醫令,一目瞭然的從一個文檔中,了解整個看診病歷資料,不必像關聯式資料庫像一樣還要 JOIN 7個表格才有辦法找到病人的看診病歷資料。

日後如果是要從關聯式資料庫轉成MongoDB,轉換時要思考那些是要用Embedded,那些是要用References。比如說我們有一個看診資料的文檔,記錄哪一個病人什麼時候來看診、是什麼原因及疾病來看診的,以及醫師開立了哪些醫令。而為了減少References,就直接Embedded進來,也不需要再去做JOIN,除非不適合用Embedded方式,才透過References的方式去完成資料的獨立模式。

模型設計:嵌入式或參考關聯

什麼時候應該用嵌入式(Embedded)?什麼時候應該用參考關聯(References)?以NoSQL資料庫而言,我們應該先思考,能夠儘量不做JOIN,就儘量要不做JOIN,建議是如果能夠Embedded,就儘量用Embedded,因為這樣就不需要去再作關聯了,所以在查詢速度一定會很快,尤其是經常在存取的資料,在存取時應該要做Embedded,可以減少查詢時的JOIN動作。

[ 加入 CIO Taiwan 官方LINE,與全球CIO同步獲取精華見解 ]

但文檔越大,記憶體就用得越多,所以文檔有一個限制,就是一筆文檔不能超過16Mb,如果資料會超過16Mb,會建議用References。或是這筆資料不會常常跟其他資料產生關聯,只是提供單獨存取,就會建議用References。

也就是說,單獨的資料異動很頻繁,就應該做References,不然每次存取一個大的資料,但可能只是異動某一個欄位而已。如果存放的資料會隨著時間出現爆發性的成長,也不建議用Embedded,因為一樣會有超過16Mb的限制。

在索引轉換方面,NoSQL的Index跟關聯式資料庫是很相似的。只是NoSQL有個好處,就是不一定要把它正規化以後,才可以做索引,除了內嵌式的索引,也可以在陣列式裡面去定義索引。NoSQL還有一個好處是關聯式資料庫沒有的TTL索引時效性功能,比如說可能有段時間如從2020年~2050年會很頻繁的存取某些資料,一旦超過這個時間,就不再將這個資料當索引時,就可以去指定文檔索引過期時間。

再就是它也有像關聯式資料庫,把很多欄位複合性索引,也可以做雜湊索引(Hash Index),用某個欄位的Hash值來建立索引。NoSQL也有提供一個屬於關聯式資料庫沒有的功能,就是稀疏性/部分索引/矩陣/地理空間相關的索引。

(口述/孫培然 彙整/CIO編輯室)

  • [ 以NoSQL重構HIS資料庫(上) ]
  • [ 以NoSQL重構HIS資料庫(下) ]
標籤: 孫培然醫療資訊系統
上一篇文章

Venti Technologies 為新加坡港務集團提供自動駕駛貨櫃拖車

下一篇文章

抓住5G半導體晶片市場的投資風口

相關文章

以多模態 AI 精實臨床作業流程(二)
專欄

以多模態 AI 精實臨床作業流程(二)

2025-11-28
國際量子人工智慧與生命未來研討會
專欄

藝術殿堂下的生命未來對話:亞洲大學「量子 AI 與生命未來」國際研討會的腦力激盪

2025-11-25
251120web
專欄

台灣量子電腦發展的國安級建言:從 Quantum Taiwan 2025 看見的契機與警訊

2025-11-20
下一篇文章
廖肇弘2

抓住5G半導體晶片市場的投資風口

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

追蹤我們的 Facebook

近期文章

  • 量子×超算成全球趨勢  IT 架構面臨下一波典範轉移
  • 金融監理科技 2025 高峰論壇:穩定幣與監理科技共同推進臺灣金融新架構
  • 橫掃 23 項大賞 華碩榮登台灣精品獎最大贏家
  • 趨勢科技將推出業界最完整的企業AI風險管理方案
  • 達梭 2025 SIMULIA 創新技術年會 以模擬創新技術驅動 AI 智慧研發

📈 CIO點閱文章週排行

  • I173s23webp

    優化人力與組織的 AI 轉型,7 大案例一次看明

    0 分享
    分享 0 Tweet 0
  • 個資法翻修:邁向獨立監管、統一治理

    0 分享
    分享 0 Tweet 0
  • 硬體到底要怎麼選,才能「不花冤枉錢」?

    0 分享
    分享 0 Tweet 0
  • 藝術殿堂下的生命未來對話:亞洲大學「量子 AI 與生命未來」國際研討會的腦力激盪

    0 分享
    分享 0 Tweet 0
  • 【專訪】數位發展部部長林宜敬

    0 分享
    分享 0 Tweet 0
  • 從防禦到誘敵,生成式對抗網路(GANs)驅動的資安新戰場

    0 分享
    分享 0 Tweet 0
  • 台灣量子電腦發展的國安級建言:從 Quantum Taiwan 2025 看見的契機與警訊

    0 分享
    分享 0 Tweet 0
  • 台灣邁向主權 AI 新紀元

    0 分享
    分享 0 Tweet 0
  • 【專訪】旭榮集團執行董事黃冠華

    0 分享
    分享 0 Tweet 0
  • 企業 AI 應用成熟度

    0 分享
    分享 0 Tweet 0

數位及平面

  • CIO Taiwan 網站
  • CIO 雜誌紙本
  • CIO 雜誌 HYREAD 版
  • CIO 雜誌 Zinio 版

關注社群

  • Line 加入好友
  • Facebook 粉絲頁

合作夥伴

  • CIO 協進會

關於我們

  • 公司介紹及工作機會
  • 隱私權政策

旗訊科技股份有限公司|統編:84493719|台北市 100 中正區杭州南路一段 15-1 號 19 樓|TEL: 886-2-23214335
Copyright © Flag Information Co.,Ltd. All Rights Reserved.

CIO Taiwan 歡迎你回來!

可用 使用者名稱 或 Email 登入

忘記密碼 註冊

歡迎註冊 CIO Taiwan 網站會員

請設定 Email 及 使用者名稱(使用者名稱不接受中文、將來無法更改)

欄位皆為必填 登入

找回密碼

請輸入 使用者名稱 或 Email 以重設密碼

登入
  • 登入
  • 註冊
沒有結果
查看所有結果
  • 活動
  • 影音
  • 最新文章
  • 產業速報
  • 新聞速寫
  • 風雲人物
  • CXO分享
  • 產業瞭望
  • 專欄
  • 精選文章
  • 原生現場
  • 供應商視野
  • 線上調查
  • CIO 雜誌
  • 電子報
  • 下載
  • 聯繫我們

© 2020 CIO Taiwan 版權所有

7/28 活動延期通知

因高雄市政府於7/28早上宣布全日停班停課,因此「智慧醫療研討會高雄場」活動延期舉辦。主辦單位將另行公告研討會相關訊息,歡迎報名參加!

您已閒置超過 3 分鐘了,為您推薦其他文章!點擊空白處、ESC 鍵或關閉回到網頁

I172s20

AI 結合醫療資料,Absci 引領 AI 篩選藥物浪潮

為解決傳統藥物開發流程過長的痛點,Absci 運用超過百萬筆蛋白質資料訓練 AI

I172s09

淨零的兆元商機:解析全球綠色金融

文/黃仕杰 2024 年 2 月 23 日,金管會舉辦第一屆永續金融評鑑表揚大會

12006301119

Cloudflare 故障原因 設定檔異常導致核心流量中斷

文/鄭宜芬 國際 CDN 服務提供商 Cloudflare 的網路於18 日11

I173d06

企業 AI 應用成熟度

文/洪為璽 當代企業的數位轉型已逐漸普遍,而 AI 技術正快速成為驅動變革的核心

I172s05 2

Clorox 數位轉型,重塑企業科技骨幹的挑戰與策略

從遺留系統到 AI 前沿:Clorox 案例揭示 IT 領導者必須面對的架構現代

120063011188

智慧杆示範場域 松菸以 AI 即時監測提升城市服務

文/鄭宜芬 由經濟部產業發展署指導、台北市電腦商業同業公會執行的「智慧杆產業推動

I172s07

【策略黑客術 Part 1】以提示工程瞬間跑完四大分析

年底快到了,企業策略季又來了,每逢此時都會出現團建、年度策略啟動會、策略委員會、

12006301127

台積電頒發 30 家優良供應商 建廠安全首列獨立獎項

文/鄭宜芬 台積電 25 日舉辦 2025 年供應鏈管理論壇,公布 30 家優良

I172s12

虛擬資產普及化下的資安新課題:用戶級風險管理崛起

文/蔡孟凌 長久以來,虛擬資產始終在主流金融的高牆外徘徊,而「信任」是其中最難跨

Ciotaiwan logo 600 white

文章分類

  • 產業速報
  • 專欄
  • 影音
  • 風雲人物
  • CXO分享
  • 產業瞭望
  • 原生現場
  • 精選文章
  • 趨勢分析
  • 供應商視野
  • 新聞速寫
  • 下載
  • Sponsors

熱門標籤

  • 最新文章
  • 雲端運算
  • 人工智慧
  • 數位轉型
  • 製造業
  • 物聯網
  • 資料與分析
  • 資安
  • 區塊鏈
  • 5G
  • 儲存
  • 基礎架構

活動

  • CIO價值學院 四堂課
  • 智慧醫療研討會 台北/高雄場
  • 金融科技高峰會 春季/秋季場
  • 製造業CIO論壇 台北/台中/高雄場
  • 商業服務科技論壇
  • 亞太CIO論壇
  • CISO資安學院 金融/醫療/新竹場
  • CIO Insight 調查

影音

  • 影音