本書以醫藥案例貫穿其中,強化理論與應用開發的結合,重視知識的實用,面向數據庫原理與實際應用。本書共11章,組織結構分兩部分。第一部分為原理篇,從第1~6章,以藥學數據庫為案例,采用SQL Server 2008講解數據庫原理,從基本操作到數據庫的系統設計;第二部分為應用篇,從第7~11章,采用Oracle 11g介紹數據庫的安全性、事務管理與恢復、數據庫系統應用,以及數據庫系統新技術,并介紹一個社區醫療的應用案例。
本書適合作為高等醫藥院校本科相關專業數據庫課程的教學用書,也可作為從事計算機專業的科研人員、工程人員的技術參考書。
廣東醫學院信息工程學院
原 理 篇
第1章 數據庫系統概論
1.1 數據庫技術的發展
1.2 數據庫系統概述
1.2.1 數據、數據庫、數據庫管理系統、數據庫系統
1.2.2 數據管理技術的三個階段
1.3 數據模型
1.3.1 概念數據模型
1.3.2 邏輯數據模型
1.4 數據庫系統結構
1.5 醫學數據庫發展的一些研究熱點
本章小結
問題討論
第2章 關系數據庫
2.1 關系模型和關系數據結構 原 理 篇
第1章 數據庫系統概論
1.1 數據庫技術的發展
1.2 數據庫系統概述
1.2.1 數據、數據庫、數據庫管理系統、數據庫系統
1.2.2 數據管理技術的三個階段
1.3 數據模型
1.3.1 概念數據模型
1.3.2 邏輯數據模型
1.4 數據庫系統結構
1.5 醫學數據庫發展的一些研究熱點
本章小結
問題討論
第2章 關系數據庫
2.1 關系模型和關系數據結構
2.1.1 關系模型的三個組成部分
2.1.2 關系數據結構的形式化定義
2.1.3 碼
2.2 關系的三類完整性約束
2.2.1 實體完整性約束
2.2.2 參照完整性約束
2.2.3 用戶定義完整性約束
2.3 關系代數
2.3.1 集合運算
2.3.2 關系運算
2.3.3 關系代數應用舉例
本章小結
問題討論
第3章 關系數據庫標準語言
3.1 SQL語言的基本概念和特點
3.1.1 SQL語言的發展
3.1.2 SQL語言的特點
3.1.3 SQL語言的基本概念
3.2 SQL數據定義
3.2.1 數據庫的定義
3.2.2 基本表的定義
3.2.3 索引的定義
3.2.4 實例數據庫與表的SQL完整定義
3.3 SQL數據查詢
3.3.1 單表查詢
3.3.2 連接查詢
3.3.3 嵌套查詢
3.3.4 集合查詢
3.4 SQL數據更新
3.4.1 插入數據
3.4.2 更新數據
3.4.3 刪除數據
3.5 視圖
3.5.1 視圖的定義
3.5.2 視圖的查詢
3.5.3 視圖的更新
3.5.4 視圖的作用
本章小結
問題討論
第4章 數據庫編程
4.1 T-SQL語法要素
4.1.1 Transact-SQL語言與SQL語言
4.1.2 Transact-SQL語言類型
4.2 T-SQL運算符
4.3 T-SQL表達式
4.3.1 數據類型
4.3.2 常量
4.3.3 變量
4.3.4 函數
4.4 T-SQL流程控制語句
4.4.1 批處理與腳本
4.4.2 IF…ELSE語句
4.4.3 CASE表達式
4.4.4 WHILE語句
4.5 游標
4.5.1 游標的概述
4.5.2 游標的操作(聲明、打開、讀取和釋放)
4.6 存儲過程
4.6.1 存儲過程綜述
4.6.2 存儲過程的創建、修改、刪除和執行(包括有參和無參)
思考題:利用觸發器實現完整性約束
4.7 觸發器
4.7.1 觸發器概述
4.7.2 創建觸發器
4.7.3 修改觸發器
4.7.4 刪除觸發器
4.7.5 禁用/啟用觸發器
本章小結
問題討論
第5章 關系數據庫設計理論
5.1 基本概念
5.1.1 函數依賴
5.1.2 范式
5.2 規范化
5.2.1 第一范式
5.2.2 第二范式
5.2.3 第三范式
5.2.4 BCNF范式
5.3 *多值依賴與第四范式(選講)
5.4 *數據依賴的公理系統(選講)
案例4:分析和優化藥庫管理系統中的關系模式
本章小結
問題討論
第6章 數據庫系統設計
6.1 數據庫設計概述
6.1.1 數據庫設計的任務、內容和特點
6.1.2 數據庫設計方法
6.1.3 數據庫設計的步驟
6.2 需求分析
6.2.1 需求分析的任務
6.2.2 需求分析的過程
6.2.3 需求分析的方法
6.2.4 數據流圖
6.2.5 數據字典
6.3 概念模型設計
6.3.1 概念模型設計的必要性
6.3.2 概念模型設計的方法
6.3.3 概念模型設計的基本任務與步驟
6.3.4 用PowerDesigner設計概念模型
6.4 邏輯結構設計
6.4.1 E-R模型向關系模型的轉換
6.4.2 采用PowerDesigner轉換邏輯模型
6.5 數據庫物理設計
6.5.1 索引存取方法
6.5.2 采用PowerDesigner生成物理模型
6.1 數據庫的實施和維護
6.6.1 數據庫的實施
6.6.2 數據庫的維護
6.7 數據庫系統的實現案例
6.7.1 系統需求
6.7.2 系統概念模型設計
6.7.3 系統邏輯設計
6.7.4 數據庫物理設計
本章小結
問題討論
第7章 Oracle基礎
7.1 Oracle概述
7.1.1 Oracle 11g網格模型
7.1.2 Oracle數據庫結構
7.1.3 Oracle的網絡結構
7.2 Oracle的常用工具
7.2.1 企業管理器
7.2.2 SQL Plus
7.2.3 SQL Developer
7.3 Oracle數據庫的創建和管理
7.3.1 數據庫的創建
7.3.2 數據庫的啟動
7.3.3 數據庫的關閉
7.3.4 數據庫的刪除
7.3.5 啟動和關閉數據庫服務
7.4 Oracle數據庫結構的管理
7.4.1 表空間
7.4.2 數據文件
7.4.3 控制文件
7.4.4 重做日志文件
7.4.5 數據字典
7.5 Oracle數據庫對象的創建與管理
7.5.1 模式
7.5.2 表
7.5.3 索引
7.5.4 視圖
7.5.5 序列
7.5.6 同義詞
7.6 PL/SQL
7.6.1 PL/SQL的特點
7.6.2 PL/SQL的塊結構和組成元素
7.6.3 PL/SQL的流程控制
7.6.4 游標
7.6.5 存儲過程與函數
7.6.6 PL/SQL的子程序和包
7.6.7 觸發器
7.7 Oracle與高級語言
7.7.1 ADO.NET簡介
7.7.2 用C#寫一個連接數據庫程序示例
本章小結
問題討論
第8章 數據庫的安全性
8.1 數據庫的安全性概述
8.2 Oracle數據庫的安全控制
8.2.1 Oracle身份認證方法
8.2.2 Oracle數據庫的安全策略
8.3 數據庫的安全控制
8.3.1 用戶管理
8.3.2 權限管理
8.3.3 角色管理
8.4 藥庫管理系統的安全控制實例
8.4.1 藥庫管理系統的安全控制背景介紹
8.4.2 藥庫管理系統的安全控制實現過程
本章小結
問題討論
第9章 事務管理與恢復
9.1 數據庫的事務管理
9.1.1 事務的概念
9.1.2 事務處理控制語句
9.1.3 事務的ACID特性
9.2 Oracle數據庫的事務管理
9.3 Oracle數據庫的恢復
9.3.1 故障分類及恢復策略
9.3.2 備份與介質故障恢復
9.3.3 基于日志的故障恢復
9.3.4 檢查點
9.4 封鎖
9.4.1 鎖
9.4.2 基于封鎖的協議
9.4.3 兩段封鎖協議
9.5 Oracle數據庫的并發控制
本章小結
問題討論
第10章 社區衛生信息系統開發
10.1 社區衛生信息系統概述
10.2 系統需求分析
10.2.1 各類用戶需求
10.2.2 社區衛生信息系統的功能設計
10.2.3 數據流分析
10.3 概念模型設計
10.4 邏輯結構設計
10.4.1 E-R模型向關系模型的轉換
10.4.2 社區系統主要表格
10.5 數據庫物理設計
10.5.1 表空間存儲結構分離
10.5.2 合理規劃索引
10.6 數據庫系統的實現
10.6.1 居民健康檔案
10.6.2 家庭健康檔案
10.6.3 OracleHelper
本章小結
問題討論
第11章 數據庫技術在醫學中的新發展
11.1 Web數據庫
11.2 分布式數據庫
11.2.1 分布式數據庫的基本概念
11.2.2 分布式數據庫管理系統的體系結構
11.2.3 分布式數據庫系統的目標
11.3 面向對象數據庫技術
11.3.1 面向對象數據庫的特點
11.3.2 面向對象技術在數據庫中的實現
11.4 XML數據庫技術
11.4.1 關系數據庫與XML之間的映射
11.4.2 XML數據庫存取技術
11.5 數據倉庫與數據挖掘
11.5.1 數據倉庫的特點
11.5.2 數據倉庫的組成
11.5.3 數據挖掘概述
11.5.4 數據挖掘常用的方法
11.5.5 數據挖掘的功能
11.5.6 數據挖掘的流程
11.5.7 數據挖掘和數據倉庫
11.5.8 數據挖掘和在線分析處理
11.5.9 數據挖掘、機器學習和統計
11.5.10 數據挖掘技術在醫學領域中的應用特點及現狀
11.6 大數據管理與云計算技術
11.6.1 大數據的基本概念與應用
11.6.2 云計算
11.6.3 醫療行業大數據挖掘的應用
本章小結
問題討論
附錄A SQL Server2008實驗
附錄B Oracle 11g R2實驗
參考文獻
索引
序
當今世界社會與經濟發展已經開始全方位進入信息化、數字化時代,伴隨著物聯網、大數據、云計算概念的出現,對醫藥行業信息技術應用也提出了更廣泛的需求和更高層次的要求。《2013年中國醫衛行業信息化建設與IT應用趨勢研究報告》的研究結果顯示,2012年中國醫衛行業IT投入達185.6億元,較2011年同比增長22.6%;2013年醫衛行業信息化建設投入繼續保持理性狀態,呈現平穩增長趨勢,其IT投資規模約為225.5億元人民幣,較2012年同比增長21.5%。大量資金投入的背景下,醫藥信息整合與有效利用的態勢越來越明顯。比如,醫療機構間的協同和信息交換、醫院內部科室間的信息交換、醫院和病人之間信息交換的需求越來越迫切;整合來自不同廠商HIS、LIS、RIS、CIS、ERP等的數據,以實現信息共享、流程協同變得越來越重要;醫藥企業產品的全過程質量控制、管理與質量信息可追溯要求和商業智能化應用,也給業界提出了醫藥信息技術應用水平提升的新的要求。
為了適應當前國內外信息技術飛速發展的形勢,以滿足業界對這些新理論、新技術、新方法的應用需求,同時也為了更好地貫徹落實教育部、財政部《關于實施高等學校本科教學質量與教學改革工程的意見》和教育部2012年3月頒布的“教育信息化十年發展規劃(2011-2020年)”的精神和要求,在電子工業出版社的積極支持下,2013年年初,全國19所醫學院校的51位老師會聚南京,共同商討編寫一套“全國高等醫藥院校醫藥信息技術應用學科規劃教材”,以加強全國高等醫藥院校醫藥信息技術應用學科的教材建設來滿足新條件下對人才培養的需求。
“全國高等醫藥院校醫藥信息技術應用學科規劃教材”共6本教材,包括廣東藥學院周怡教授和新疆醫科大學趙小龍教授共同主編的《醫藥信息分析與決策》,南京中醫藥大學施誠教授主編的《醫院信息系統分析與設計》,南京中醫藥大學周金海教授主編的《醫藥物聯網概論》,江西中醫藥大學章新友教授主編的《醫藥信息資源管理》,沈陽藥科大學陳玉文教授主編的《醫藥企業資源計劃》,廣東醫學院馮天亮教授主編的《數據庫原理及其醫學應用》。在電子工業出版社及各參編單位領導的支持下,全體參編人員通過一年的努力, “全國高等醫藥院校醫藥信息技術應用學科規劃教材”終于出版面市了。
“全國高等醫藥院校醫藥信息技術應用學科規劃教材”既可以作為高等醫藥院校醫藥信息技術應用學科本、專科學生和研究生相關課程的教材,也可以作為廣大在職醫務和護理人員信息技術繼續教育的教材,同時也可以作為從事各類醫學信息技術開發工作技術人員的參考書。
我們期望這套教材的出版及使用,能夠給中國醫藥行業信息化人才培養帶來新的貢獻,對高等醫藥院校醫藥信息技術應用學科教學水平的提高有所幫助。但是,醫藥行業信息技術發展速度之快,要求所有教材編寫實時跟進變化,是不太容易做到的。加之編寫時間及編寫水平有限,使得新教材在內容編寫上難免存在不足,甚至錯誤,在此,我們衷心希望在該套教材出版后,能夠得到業內相關專家和讀者的反饋意見,懇請使用本系列教材的教師及學生能夠不吝賜教,幫助作者繼續努力提高教材編寫質量,共同為高等醫藥院校醫藥信息技術應用學科教育的發展做出更大貢獻。
中國醫藥信息學會(CMIA)
醫學信息學理論與教育專委會主任
施誠
2014年1月1日
前 言
數據庫技術產生于20世紀60年代末,經過40多年的迅猛發展,已經形成了完整的理論與技術體系,并成為計算機科學技術中的一個重要分支。數據庫技術是計算機科學技術中發展最快的領域之一,也是應用最廣泛的技術之一,它已成為計算機信息管理系統與應用系統的核心技術和重要基礎。
隨著信息技術的迅猛發展,計算機科學技術在醫學領域的應用也越來越廣泛,因此很多醫藥院校開設了醫藥信息技術應用類本科專業,如醫學信息工程學、信息管理與信息系統和計算機科學等,這些專業都把數據庫技術列為專業的核心課程,專業在開設初期基本采用理工類教材,沒有很好地融入醫學特色。隨著辦學規模的擴大,如何辦出具有醫學特色的IT人才,除了做好課程體系設置外,教材建設也是很重要的一個環節。為了編好《數據庫原理及其醫學應用》一書,本書編委會由醫藥院校具有豐富數據庫教學及實踐經驗的專家組成,他們共同研討教材編寫思路,制定教材大綱,匯聚了集體的智慧。
本書以醫藥案例貫穿其中,強化理論與應用開發的結合,重視知識的實用,面向數據庫原理與實際應用。本書共11章,組織結構分兩部分。第一部分為原理篇,從第1~6章,包括數據庫基礎知識和關系數據庫設計,遵從傳統的教學模式,采用SQL Server 2008來講解數據庫原理,以藥學數據庫為案例,從基本操作到數據庫系統設計進行介紹,以滿足醫藥院校教學的基本需要。第二部分為應用篇,從第7~11章,包括數據庫安全、事務管理與恢復、數據庫系統應用,以及數據庫系統新技術,采用Oracle 11g介紹數據庫的安全性、事務管理與恢復,充分體現Oracle在這方面的優越性能,并使用一個社區醫療的應用案例,以便學生掌握企業廣泛采用的Oracle數據庫系統,以提升學生適應社會的能力。因此,本書設計了兩個案例數據庫,一個是針對SQL server 2008數據庫理論的藥品信息處理數據庫,一個是采用Oracle 11g構建的為社區衛生信息系統所設計的數據庫,這些案例便于醫藥類學生加深醫藥學知識與數據庫相關知識的融合,使其既能掌握SQL server 2008數據庫技術,又能熟悉企業應用廣泛的Oracle 11g數據庫技術,解決了目前大多數數據庫教材使用單一數據庫來講述的弊端。本書以附錄的形式分別提供了SQL server 2008和Oracle 11g的實驗內容。
本書由廣東醫學院馮天亮擔任主編。第1章由趙越、崔笑宇編寫,第2章由孫靜編寫,第3章由李志敏編寫,第4章由孫艷秋、燕燕編寫,第5章由蘇傳琦編寫,第6章由鄭先容編寫,第7章由趙云、吳應江編寫,第8章由彭柳芬編寫,第9章由張錦編寫,第10章由向函、馮天亮編寫,第11章由趙越、王之瓊編寫,附錄A由林加論編寫,附錄B由丘文峰編寫。
本書編寫過程中查閱了國內外大量數據庫研發成果和文獻,力求把數據庫領域的新理論、新技術和新方法納入本書,使之既包括數據庫系統的基本理論、概念和技術,也能夠反映數據庫應用領域的最新進展,但是由于學識有限,時間緊迫,不足之處在所難免,真心希望使用本書的老師和同學不吝指教。
編 者