• 登入
  • 註冊網站會員
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半導體晶片市場的投資風口

相關文章

Owennini1200
專欄

醫學工程跨域整合成功案例

2026-02-01
myLLM Studio:AI Agent 雲地整合系統核心模組
專欄

授人以魚不如授人以漁:企業 IT 的自主開發革命

2026-01-31
AI 智能代理邁進實際部署漫長之路
專欄

AI 智能代理邁進實際部署漫長之路

2026-01-21
下一篇文章
廖肇弘2

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

發佈留言 取消回覆

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

2026 Elite Vendor

追蹤我們的 Facebook

近期文章

  • 數位黑市、生技濫用 2026《國際人工智慧安全報告》示警 6 類變革與新風險
  • Arm Flexible Access 擴大升級 驅動更多企業加速晶片開發
  • 洛克威爾自動化以前瞻自主化發展五階段 助在地企業掌握製造新動能
  • 華碩號召百家 ISV 夥伴結盟 強化一站式商用解決方案布局
  • AI 需求擴大 聯發科持續布局資料中心 ASIC、Wi-Fi 8 與車用

📈 CIO點閱文章週排行

  • 3413351

    【專訪】秀傳醫療體系副資訊長鐘苡菱

    0 分享
    分享 0 Tweet 0
  • AI 基本法通過後應知道的要事

    0 分享
    分享 0 Tweet 0
  • 北醫與勤業眾信布局 BioBridge+ 支持生醫新創成果轉譯

    0 分享
    分享 0 Tweet 0
  • CIO Taiwan 揭曉 2026 Elite Vendor 台灣企業最信賴的科技夥伴名單公布

    0 分享
    分享 0 Tweet 0
  • Lightmatter 發表 Guide 光源引擎 以 VLSP 技術升級 AI CPO 雷射架構

    0 分享
    分享 0 Tweet 0
  • 【專訪】和碩聯合科技新產品發展事業處暨人工智慧發展處副總經理蕭安助

    0 分享
    分享 0 Tweet 0
  • 以提示工程生成策略執行戰術(平衡計分卡使用)

    0 分享
    分享 0 Tweet 0
  • 強化資安、數位監理與創新 金管會 2026 年金融數位治理布局

    0 分享
    分享 0 Tweet 0
  • 屏科大打造全台首座 AI 畜牧場 以企業級運算平台開啟養殖經驗數位傳承新模式

    0 分享
    分享 0 Tweet 0
  • IT 治理真空的四種致命陷阱

    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 鍵或關閉回到網頁

Owennini1200

醫學工程跨域整合成功案例

文/林宏文 日前我訪問北榮耳鼻喉頭頸醫學部耳科主任廖文輝,談到他從一位臨床醫生(

打造臺灣 AI 競爭力的十大關鍵軟體技術

文/王義智 最近拜訪某家臺灣製造業龍頭,針對 AI 轉型進行請益與深度討論。會議

12006301536

【編輯室札記】迎接 AI 推理時代到來

總主筆/施鑫澤 新的一年,萬象更新,AI 迎來新的轉折,卻也讓企業在落實 AI

AI 智能代理邁進實際部署漫長之路

文/張瑞雄(資訊系教授、台北商業大學前校長) 人工智能代理本應成為 2025 企

1200x630i163s11

台灣健康網路平台揭牌,啟動「主權 AI」與 DaaS 新紀元

從硬體代工邁向數據強國 2026年1月9日,台灣科技與醫療產業迎來了數位轉型的關

46343645635

全球 AI 監管制度成形 企業風險分類與資安治理新考驗

AI 時代的風險治理挑戰與契機 文/鄭宜芬 AI 科技的導入可能改變產業競爭態勢

5643645

北醫與勤業眾信布局 BioBridge+ 支持生醫新創成果轉譯

文/鄭宜芬 為呼應政府加速布局台灣大健康產業,臺北醫學大學攜手勤業眾信聯合會計師

啟動現代化引擎 ─ 架構現代化與數位韌性

現代化架構就像是為企業蓋了一座「數位化的高鐵系統」。舊有的單體式系統是地方支線火

以提示工程生成策略執行戰術(平衡計分卡使用)

策略黑客術 Part 2 本次 GenAI 實戰,將以生成符合企業的平衡計分卡。

Ciotaiwan logo 600 white

文章分類

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

熱門標籤

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

活動

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

影音

  • 影音