• 登入
  • 註冊網站會員
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 的全勝之道

2026-04-21
資料安全清理與資料盤點定位及管理組織保有資料
專欄

資料安全清理與資料盤點定位及管理組織保有資料

2026-04-20
台達永續平台 SustainX 初探
供應商視野

台達永續平台 SustainX 初探

2026-04-20
下一篇文章
發掘後疫情時代的數位投資商機

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

發佈留言 取消回覆

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

2026 Elite Vendor

追蹤我們的 Facebook

近期文章

  • 龍珠在握:掌握主權 AI 的全勝之道
  • AMD攜手法國政府推動法國AI創新、研究及開放產業體系發展
  • 施耐德電機旗下 Motivair 發表全新 CDU 系列 回應 HPC 與 AI 工作負載持續攀升的散熱挑戰
  • 買車十年只見一次面?傳統車商如何用數據賣出上萬台新車!
  • 物流中斷的資安壓力測試 零日攻擊下的營運韌性

📈 CIO點閱文章週排行

  • 告別「AI 高成本、低回報」窘境,昕力助企業打造可持續的高 ROI 運營模式

    告別「AI 高成本、低回報」窘境,昕力助企業打造可持續的高 ROI 運營模式

    0 分享
    分享 0 Tweet 0
  • 【完整名單】醫療版「0050」頒獎 臺灣 SMART on FHIR 邁向國際

    0 分享
    分享 0 Tweet 0
  • 從 Anthropic 事件看 AI 產業發展

    0 分享
    分享 0 Tweet 0
  • 【專訪】高雄醫學大學人工智慧生醫研究院院長盧鴻興

    0 分享
    分享 0 Tweet 0
  • 資策會MIC發布2026年十大重點科技趨勢

    0 分享
    分享 0 Tweet 0
  • 解碼「AI 工廠」:從個人桌面到跨國企業的數位生產線革命

    0 分享
    分享 0 Tweet 0
  • 【專訪】和泰汽車 MaaS 先進策略本部長韓志剛

    0 分享
    分享 0 Tweet 0
  • 鎖定 AI 身分新邊界,智慧資安科技攜手 Delinea 共築韌性防線

    0 分享
    分享 0 Tweet 0
  • 智慧車電 ×AI 系統整合 移動產業邁向平台化競爭新階段

    0 分享
    分享 0 Tweet 0
  • 物流中斷的資安壓力測試 零日攻擊下的營運韌性

    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 以重設密碼

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

© 2020 CIO Taiwan 版權所有

7/28 活動延期通知

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

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

金管會推保險資金導入五大信賴產業 權數機制牽動資產配置決策

文/鄭宜芬 金融監督管理委員會訂定「鼓勵保險業辦理五大信賴暨六大核心戰略產業、基

萬事達卡攜手星展銀行 完成第一筆在台代理式 AI 支付交易

文/鄭宜芬 萬事達卡宣布攜手星展銀行(台灣),於萬事達卡 Agent Pay 安

獲客成本飆升下的品牌轉型  AI 重構企業成長模型

文/鄭宜芬 根據國際數據權威 HubSpot Report 2026 警示,全球

布局主權 AI  政府資料開放升級戰略資產

文/鄭宜芬 數位發展部 1 日舉辦「114 年政府資料開放頒獎典禮」,表揚中央與

1200630

推動金融 AI 基礎建設 政大聚焦主權AI模型、AI Agent應用與風控聯防

文/鄭宜芬 生成式 AI 加速進入金融核心業務,資料主權、模型可信度與合規風控成

建立 Vibe Coding 的防護機制:導入 AI 輔助開發成熟度模型

從混亂到治理由架構師主導的五階段轉型,確保 AI 生成不成為技術債的溫床 202

【簡報包】經濟部 A+ 佈局次世代通訊 瞄準 6G、衛星通訊、全光通訊

文/鄭宜芬 經濟部 13 日公告「A+ 企業創新研發淬鍊計畫-次世代通訊計畫」2

從區塊鏈到監理科技 RWA 重塑金融體系

文/鄭宜芬 在全球金融體系邁向數位化與制度創新的關鍵階段,現實世界資產代幣化(R

AI 是企業大腦,區塊鏈是記憶:下一代 IT 架構正在成形

文/蔡孟凌 過去幾年,企業在談 AI 時,多半聚焦在效率:客服自動化、文件整理、

文章分類

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

熱門標籤

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

活動

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

影音

  • 影音