張建莉 高欣

摘要:關(guān)系數(shù)據(jù)模型是以集合論中的關(guān)系概念為基礎發(fā)展起來的,是數(shù)據(jù)庫領域中常用的邏輯模型,根據(jù)用戶要求,開發(fā)滿足特定管理需求的數(shù)據(jù)庫的過程稱為數(shù)據(jù)庫設計。如何在開發(fā)實際業(yè)務信息系統(tǒng)中收集和組織業(yè)務中所涉及的數(shù)據(jù),以及按一定的組織結(jié)構(gòu)將這些數(shù)據(jù)裝入數(shù)據(jù)庫中,本文以小型“門診管理系統(tǒng)”數(shù)據(jù)庫的設計為例,根據(jù)具體任務的需求和關(guān)系數(shù)據(jù)庫管理系統(tǒng)提供的功能進行了數(shù)據(jù)庫設計。
關(guān)鍵詞:關(guān)系數(shù)據(jù)模型;數(shù)據(jù)庫設計;門診管理系統(tǒng);關(guān)系
中圖分類號:TP315? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)16-0001-02
開放科學(資源服務)標識碼(OSID):
1 引言
數(shù)據(jù)邏輯模型是數(shù)據(jù)庫系統(tǒng)設計的核心,它既要規(guī)范數(shù)據(jù)庫中數(shù)據(jù)的組織形式,同時要表示數(shù)據(jù)及數(shù)據(jù)之間的聯(lián)系,邏輯模型構(gòu)建得好壞直接影響數(shù)據(jù)庫的性能。關(guān)系模型(Relational Model)是數(shù)據(jù)庫領域中常用的邏輯模型,它是以集合論中的關(guān)系概念為基礎發(fā)展起來的,有嚴格的數(shù)學基礎,抽象級別比較高,而且簡單清晰,特別是在描述事物間的關(guān)系方面更加簡潔合理,便于理解和使用,現(xiàn)已為絕大多數(shù)數(shù)據(jù)庫設計所用。
使用數(shù)據(jù)庫技術(shù)解決來自客觀世界的各種管理問題、開發(fā)實際業(yè)務信息系統(tǒng),首先碰到的問題是如何收集和組織業(yè)務中所涉及的數(shù)據(jù),以及按什么樣的組織結(jié)構(gòu)將這些數(shù)據(jù)裝入數(shù)據(jù)庫中,也就是要根據(jù)具體任務的需求和數(shù)據(jù)庫管理系統(tǒng)提供的功能進行數(shù)據(jù)庫設計。本文以小型“門診管理系統(tǒng)”數(shù)據(jù)庫的設計為例進行了數(shù)據(jù)庫設計。
2數(shù)據(jù)庫設計步驟
根據(jù)用戶要求,開發(fā)滿足特定管理需求的數(shù)據(jù)庫的過程稱為數(shù)據(jù)庫設計。通常設計分成以下四步。
需求分析:按照用戶的需求和系統(tǒng)功能要求,確定新建數(shù)據(jù)庫所需要完成任務的目的。
確定所需要的表:根據(jù)信息管理的需求確定要創(chuàng)建的表,每個表應該只包含一個主題的信息,而且各個表不應該包含重復的信息。
確定所需要的字段:一個表包含一個主題的信息,表中的各個字段都是該主題的各個組成部分。每個字段應直接與表的主題相關(guān);字段盡可能不是推導或計算出的數(shù)據(jù);字段是不可分割的數(shù)據(jù)單位。
定義主關(guān)鍵字:為了連接保存在不同表中的數(shù)據(jù),為了唯一地確定一條記錄,需要為每個表定義一個主關(guān)鍵字。
優(yōu)化設計:在初步設計數(shù)據(jù)庫的表、字段及表的關(guān)系后,還需要對所做的設計進一步分析,檢查可能存在的缺陷和需要改進的地方,使得設計更合理、更符合用戶和輸出信息的需要,便于數(shù)據(jù)的使用和維護。
3門診管理系統(tǒng)數(shù)據(jù)庫設計
3.1需求分析
對“門診管理系統(tǒng)”進行業(yè)務分析后,“門診管理系統(tǒng)”信息系統(tǒng)所要包括的基本功能:需要管理醫(yī)生、科室、藥品、病人的基本信息,需要管理處方,需要管理處方明細,包括處方的錄入、修改、查詢、刪除等功能;在使用過程中有時需要打印報表,所以還得有打印的功能;如果該系統(tǒng)規(guī)定專人負責,還需要規(guī)定用戶名和登錄密碼,體現(xiàn)保密性等等。即“門診管理系統(tǒng)”基本功能包括:系統(tǒng)管理(界面管理、退出系統(tǒng))、基本信息管理(輸入數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)、刪除數(shù)據(jù))、信息輸出處理(輸出一般數(shù)據(jù)、輸出統(tǒng)計數(shù)據(jù))。
3.2確定所需要的表
根據(jù)“門診管理系統(tǒng)”系統(tǒng)的需求,不難發(fā)現(xiàn)數(shù)據(jù)庫中包含了4類信息:一是藥品基本信息,如藥品編號、藥品名稱藥品規(guī)格等;二是醫(yī)生、病人、科室的基本信息,如醫(yī)生工號、病人ID等;三是處方信息,如處方號、病人ID、開出日期、臨床診斷等;四是單據(jù)信息,如掛號單號、掛號費、收費單號、金額等。如果將這些信息放在一個表中,必然出現(xiàn)大量的重復,不符合信息分類的原則。因此,根據(jù)已確定的“門診管理系統(tǒng)”數(shù)據(jù)庫應完成的任務以及信息分類原則,初步擬定該數(shù)據(jù)庫應包含8個數(shù)據(jù)表,即科室表、病人表、醫(yī)生表、藥品表、處方表、掛號單表、收費單表、處方明細表等。
3.3確定所需要的字段
對于上面已經(jīng)確定的每一個表,還要設計它的結(jié)構(gòu),即要確定每個表應包含哪些字段。為了使保存在不同表中的數(shù)據(jù)產(chǎn)生聯(lián)系,數(shù)據(jù)庫中的每個表必須有主關(guān)鍵字能唯一標識每條記錄,主關(guān)鍵字可以是一個字段,也可以是多個字段的組合。
關(guān)系數(shù)據(jù)庫利用主關(guān)鍵字迅速關(guān)聯(lián)多個表中的數(shù)據(jù),不允許在主關(guān)鍵字字段中有重復值或空值。常使用唯一的標識作為這樣的字段,例如,在“門診管理系統(tǒng)”數(shù)據(jù)庫中,可以將科室號、病人ID、醫(yī)生工號、藥品編號、處方號、掛號單號、收費單號分別作為科室表、病人表、醫(yī)生表、藥品表、處方表、掛號單表、收費單表的主關(guān)鍵字字段,處方號和藥品編號這兩個字段組合作為處方明細表的主關(guān)鍵字。
3.4確定表之間的關(guān)系
在數(shù)據(jù)庫中,每個表不是完全孤立的部分,表與表之間有可能存在著相互的聯(lián)系。例如,前面創(chuàng)建的“門診管理系統(tǒng)”數(shù)據(jù)庫中有8個表,不同表中有相同的字段名,如科室表中有“科室號”,醫(yī)生表中也有“科室號”,通過這個字段,就可以建立起這兩個表之間的關(guān)系。
確定關(guān)系的目的是使表的結(jié)構(gòu)合理,不僅存儲了所需要的實體信息,并且反映出實體之間客觀存在的關(guān)聯(lián)。前面各個步驟已經(jīng)把數(shù)據(jù)分配到了各個表中。因為有些輸出需要從幾個表中得到信息,為了能夠?qū)⑦@些表中的內(nèi)容重新組合,得到有意義的信息,就需要確定外部關(guān)鍵字。例如,在“門診管理系統(tǒng)”數(shù)據(jù)庫中,病人ID是病人表中的主關(guān)鍵字,也是處方表中的一個字段。處方表中的病人ID字段稱為“外部關(guān)鍵字”,因為它是另外一個表即病人表的主關(guān)鍵字。
如果表中沒有可作為主關(guān)鍵字的字段,可以在表中增加一個字段,該字段的值為序列號,以此來標識不同記錄。主鍵是用于將表聯(lián)系到其他表的外部關(guān)鍵字上,從而使不同表中的信息發(fā)生聯(lián)系。如前所述,表之間的聯(lián)系可以歸結(jié)為一對一、一對多、多對多三種類型。
在“門診管理系統(tǒng)”數(shù)據(jù)庫中,科室表和醫(yī)生表之間就是一對多的關(guān)系,因為一個科室可以有多位醫(yī)生。
而在多對多聯(lián)系中,應將多對多關(guān)系分解成兩個一對多關(guān)系,其方法就是在具有多對多關(guān)系的兩個表之間創(chuàng)建第3個表,即紐帶表。紐帶表不一定需要自己的主關(guān)鍵字,如果需要,可以將它所聯(lián)系的兩個表的主關(guān)鍵字作為組合關(guān)鍵字指定為主關(guān)鍵字。在“門診管理系統(tǒng)”數(shù)據(jù)庫中,處方表和藥品表之間就是多對多的關(guān)系。一個處方可以包含多種藥品,同樣一種藥品也可以出現(xiàn)在多個處方中。因此設置一個處方明細表,該表作為處方表和藥品表之間的紐帶表,應將處方表的主關(guān)鍵字“處方號”和藥品表的主關(guān)鍵字“藥品編號”放入其中。
根據(jù)上述考慮,這樣,在“門診管理系統(tǒng)”數(shù)據(jù)庫中各個表之間的關(guān)系如圖1所示。
3.5完善數(shù)據(jù)庫
在設計數(shù)據(jù)庫時,信息復雜和情況變化會造成考慮不周,如有些表沒有包含屬于自己主題的全部字段,或者包含了不屬于自己的主題字段,或者沒有很好地滿足實際應用中的需要。此外,數(shù)據(jù)庫中常存在著多種復雜交叉關(guān)系,而這些關(guān)系又是實現(xiàn)數(shù)據(jù)庫動態(tài)、有效管理的重要線索。因此,在初步確定了數(shù)據(jù)庫需要包含哪些表、每個表包含哪些字段以及各個表之間的關(guān)系以后,還要重新研究一下設計方案,檢查可能存在的缺陷,并進行相應的修改。只有通過反復修改,才能設計出一個完善的數(shù)據(jù)庫系統(tǒng)。
在信息社會里,信息都是儲存在計算機系統(tǒng)中的,它們的組織形式多為數(shù)據(jù)庫。門診管理系統(tǒng)數(shù)據(jù)庫案例分析與設計,以實例的形式講解了信息的組織方法,在此基礎上可根據(jù)實際應用需要進行豐富和完善,并綜合數(shù)據(jù)庫管理系統(tǒng)提供的其他功能構(gòu)建一個數(shù)據(jù)庫應用系統(tǒng)。
參考文獻:
[1] 趙丹青,雷虎,涂小琴. Access數(shù)據(jù)庫技術(shù)與應用教程[J]. 電子科技大學出版社,2016(1).
[2] 王軍委. Access數(shù)據(jù)庫應用基礎教程[J]. 清華大學出版社,2014(4).
【通聯(lián)編輯:王力】