本站小編為你精心準(zhǔn)備了醫(yī)學(xué)文檔管理系統(tǒng)的數(shù)據(jù)庫設(shè)計參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
[摘要]
目的提高對醫(yī)學(xué)實驗文檔、原始數(shù)據(jù)尤其是大文件的管理效率,增強(qiáng)安全性和保密性。方法在數(shù)據(jù)庫管理軟件平臺下遵循數(shù)據(jù)庫規(guī)范化設(shè)計方法,利用跨平臺的面向?qū)ο蟮某绦蛟O(shè)計語言(Java)開發(fā)醫(yī)學(xué)實驗文檔管理系統(tǒng)數(shù)據(jù)庫。結(jié)果利用該系統(tǒng)實現(xiàn)了對醫(yī)學(xué)實驗文檔及原始數(shù)據(jù)進(jìn)行上傳、下載及權(quán)限管理和自動備份等管理功能。結(jié)論本研究所采用的方法是將實驗研究過程中的原始數(shù)據(jù)和文件直接以二進(jìn)制的形式保存到數(shù)據(jù)庫,有效地保證了數(shù)據(jù)的安全性和保密性。
[關(guān)鍵詞]
醫(yī)學(xué)文檔管理系統(tǒng);SQLserver數(shù)據(jù)庫;Java程序語言;醫(yī)學(xué)實驗文檔
近年來,隨著多媒體技術(shù)和計算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,數(shù)據(jù)庫系統(tǒng)的發(fā)展十分迅速,應(yīng)用領(lǐng)域愈來愈廣。良好的數(shù)據(jù)庫設(shè)計不僅能夠節(jié)省數(shù)據(jù)的存儲空間,保證數(shù)據(jù)的完整性,而且還能夠方便地進(jìn)行數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)與管理[1]。醫(yī)學(xué)實驗文檔管理系統(tǒng)的數(shù)據(jù)庫主要是管理用戶以及在醫(yī)學(xué)項目的實驗研究過程中生成的所有文件,包括原始記錄文件、臨時文件以及最終的結(jié)果文件。這些文件的類型主要包括PPT、Word、Excel、PDF、tiff文件及各種類型的圖片和專用文件。對于上述文件的管理,一般采取的方法是將上述文件保存在服務(wù)器的某個硬盤中的文件夾下面,而將文件的路徑保存在數(shù)據(jù)庫中。采取這種方式的優(yōu)點(diǎn)是能減輕數(shù)據(jù)庫的壓力,在上傳和下載文件時速度快。缺點(diǎn)是文件的安全性和保密性不夠好,尤其是當(dāng)服務(wù)器出現(xiàn)問題時,文件很容易丟失,而且無法恢復(fù)。本研究所采用的方法是將實驗研究過程中的原始數(shù)據(jù)和文件直接以二進(jìn)制的形式保存到數(shù)據(jù)庫中,而不是保存在服務(wù)器的硬盤中。本文采用的是SQLserver2008數(shù)據(jù)庫,數(shù)據(jù)庫的安全性比較高,而且在設(shè)計數(shù)據(jù)庫時實行數(shù)據(jù)庫自動備份,因此數(shù)據(jù)不易丟失。此外,還對實驗數(shù)據(jù)的上傳、查詢以及下載進(jìn)行權(quán)限設(shè)置,根據(jù)用戶的不同權(quán)限提供不同的功能,有效地保證了數(shù)據(jù)的安全性和保密性。
1需求分析
1.1功能需求分析醫(yī)學(xué)實驗文檔管理系統(tǒng)是依據(jù)醫(yī)學(xué)實驗研究的需要而建立的輔助化信息管理系統(tǒng)。該系統(tǒng)是以醫(yī)學(xué)實驗項目為核心,對實驗項目相關(guān)的各種數(shù)據(jù)文檔以及涉及的用戶進(jìn)行有效的管理,旨在提高管理效率的同時增強(qiáng)信息的安全性和可靠性。醫(yī)學(xué)實驗文檔管理系統(tǒng)的功能需求因各個實驗室的具體情況而有所不同,本研究以首都醫(yī)科大學(xué)的實驗室為例,經(jīng)過調(diào)查分析其功能需求如下[2-3]:(1)用戶管理?;谙到y(tǒng)安全性、共享性以及高效的管理性考慮,要求系統(tǒng)根據(jù)用戶不同的操作需求,為各類用戶提供相應(yīng)的操作權(quán)限。用戶管理主要的功能:①添加用戶,只有添加到該系統(tǒng)中的用戶才能訪問該系統(tǒng);②設(shè)置用戶的權(quán)限,可以將用戶的權(quán)限設(shè)置為普通用戶、實驗的設(shè)計者、實驗負(fù)責(zé)人以及項目主管其中之一或者這些權(quán)限的組合;③刪除用戶,當(dāng)用戶不在該系統(tǒng)中時,主管要刪除該用戶,使得該用戶無法再登錄到該系統(tǒng),從而保證系統(tǒng)的安全性與可靠性;④修改用戶密碼,當(dāng)用戶忘記自己的密碼時,可以通過向主管申請,由主管來將該用戶的密碼重置為系統(tǒng)默認(rèn)的密碼,然后用戶登錄到系統(tǒng)后再修改自己的密碼。(2)項目管理。其主要功能是:①創(chuàng)建項目以及項目下的子項目,當(dāng)主管接到一個新的項目時,可在該系統(tǒng)中創(chuàng)建該項目,以及該項目下的若干個子項目;②分配項目及其子項目,在新建項目時,主管要指定該項目的負(fù)責(zé)人,然后由該項目的負(fù)責(zé)人將該項目的所有子項目分配到具體的實驗的設(shè)計者手中;③修改項目狀態(tài),當(dāng)項目結(jié)束時,主管要將項目的狀態(tài)改為“完成”,此時該項目的所有參與者(主管除外)都不能再對該項目做任何修改,也不能下載該項目的任何信息;④修改項目權(quán)限,該系統(tǒng)中的用戶需要參考系統(tǒng)中的其他項目時,此用戶需要向主管提出申請并得到授權(quán)后,此項目中的相應(yīng)子項目才對該用戶開放并自動地記錄此用戶的個人信息及查看的項目信息。在該用戶參考完畢后,再由主管將開放的項目關(guān)閉。(3)上傳實驗文檔。其主要功能是:實驗的設(shè)計者在做項目實驗的過程中會得到實驗相關(guān)的一系列原始數(shù)據(jù)(條件優(yōu)化、過程記錄、結(jié)果分析和結(jié)論),它們會以PPT、Word、Excel、tiff文件、圖片或者專用文件的形式存儲,實驗的設(shè)計者需要及時將這些文檔上傳到該數(shù)據(jù)庫中,以防止數(shù)據(jù)的丟失和泄露。同時,在設(shè)計者負(fù)責(zé)的子項目完成之前,其他的所有用戶對該子項目均不可見,直到該子項目實驗完成后,相應(yīng)的項目負(fù)責(zé)人或者主管才能對該子項目進(jìn)行相應(yīng)的操作,進(jìn)而防止實驗結(jié)果被篡改。(4)查詢。其主要功能是:①查詢項目文檔,經(jīng)主管授權(quán)哪些項目對哪些用戶開放后,那些用戶便可以在該系統(tǒng)中查詢到相應(yīng)開放的項目的詳細(xì)信息,如項目名稱,項目中開放的所有子項目,每個子項目下的所有文件名等等;②下載項目文檔,當(dāng)用戶查詢到自己需要的文檔時,既可以單個文檔進(jìn)行下載,也可以批量的進(jìn)行下載。在下載的同時該系統(tǒng)會記錄用戶的個人信息、下載的文件及下載的具體時間,能有效提升系統(tǒng)對所有文檔的安全性和保密性管理。
1.2數(shù)據(jù)需求分析根據(jù)功能分析,醫(yī)學(xué)實驗文檔管理系統(tǒng)的數(shù)據(jù)信息主要有:①用戶信息;②實驗項目信息;③項目原始數(shù)據(jù)及文檔信息;④項目權(quán)限及用戶下載信息。系統(tǒng)內(nèi)所有的數(shù)據(jù)均由數(shù)據(jù)庫統(tǒng)一管理,數(shù)據(jù)的共享與交換由各個功能模塊通過數(shù)據(jù)訪問技術(shù)來實現(xiàn),以此來滿足系統(tǒng)的數(shù)據(jù)功能需求[4-5]。
2數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計是醫(yī)學(xué)實驗文檔管理系統(tǒng)的核心,其設(shè)計合理與否直接影響數(shù)據(jù)庫應(yīng)用系統(tǒng)的軟件架構(gòu)及數(shù)據(jù)處理的效率。在對系統(tǒng)的總體功能分析的基礎(chǔ)上,本文利用SQLserver2008數(shù)據(jù)庫進(jìn)行該系統(tǒng)的數(shù)據(jù)庫設(shè)計。下面主要從數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計和數(shù)據(jù)表及完整性的設(shè)計與實現(xiàn)三方面進(jìn)行介紹。
2.1概念結(jié)構(gòu)設(shè)計經(jīng)過上述的需求分析后,先將需求分析得到的結(jié)果抽象為用戶觀點(diǎn)的概念模型并用實體關(guān)系(E-R)圖進(jìn)行表示。根據(jù)需求分析,可以抽象出用戶信息、實驗項目信息、項目文檔信息、項目權(quán)限、下載信息等5類實體,各個實體之間的具體聯(lián)系。
2.2邏輯結(jié)構(gòu)設(shè)計上述的E-R模型是用戶的模型,獨(dú)立于任何一個具體的數(shù)據(jù)庫管理系統(tǒng),而數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計的任務(wù)是根據(jù)概念結(jié)構(gòu)的E-R關(guān)系圖,按照一定的轉(zhuǎn)換規(guī)則將其轉(zhuǎn)換成數(shù)據(jù)模型的過程,即在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,將所有的實體和相應(yīng)的聯(lián)系轉(zhuǎn)化為一系列的關(guān)系模型。醫(yī)學(xué)實驗文檔管理系統(tǒng)的關(guān)系模型轉(zhuǎn)換如下。①用戶信息(用戶姓名、用戶ID、用戶密碼、用戶類別);②實驗項目信息(項目名稱、項目編號、子項目名稱、子項目編號、項目負(fù)責(zé)人ID、子項目負(fù)責(zé)人ID、項目開始時間、項目完成時間、子項目開始時間、子項目完成時間);③項目文檔信息(文件編號、子項目編號、文件名稱、文件類型、文件二進(jìn)制流、上傳時間);④項目權(quán)限(項目編號、子項目編號、開啟時間、關(guān)閉時間、開放對象ID、開放狀態(tài));⑤下載信息(下載者ID、文件編號、下載時間、下載次數(shù))。在規(guī)范化理論的基礎(chǔ)上對上述所有關(guān)系模式進(jìn)行分析,得出上述關(guān)系模式中沒有多余的函數(shù)依賴,是規(guī)范程度很高的關(guān)系模式[6]。
2.3數(shù)據(jù)表及完整性的設(shè)計與實現(xiàn)數(shù)據(jù)表是數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ),是數(shù)據(jù)庫中所有數(shù)據(jù)的載體,數(shù)據(jù)表設(shè)計的合理與否直接關(guān)系到數(shù)據(jù)庫管理系統(tǒng)性能的優(yōu)劣,因此數(shù)據(jù)表的設(shè)計對數(shù)據(jù)庫管理系統(tǒng)的設(shè)計至關(guān)重要。本文對用戶信息表、實驗項目信息、項目文檔信息表、項目權(quán)限信息表、下載信息表進(jìn)行介紹。(1)用戶信息表(Table_user)的結(jié)構(gòu)及其完整性設(shè)計。用戶信息表的字段及類型為:用戶ID、用戶姓名、密碼、用戶類別。該表記錄系統(tǒng)中的所有用戶,表中的用戶ID及用戶姓名都具有唯一性,用戶在系統(tǒng)中進(jìn)行相應(yīng)的操作時,系統(tǒng)只憑借用戶ID及其用戶類別為用戶提供相應(yīng)的功能。在實驗項目信息表、項目權(quán)限信息表及下載信息表的相應(yīng)字段中將用戶ID作為其外鍵進(jìn)行字段約束,以提高數(shù)據(jù)庫的完整性。(2)實驗項目信息表的結(jié)構(gòu)及其完整性設(shè)計。實驗項目信息表的字段及類型為:子項目編號、子項目名稱、項目名稱、項目編號、項目負(fù)責(zé)人ID、子項目負(fù)責(zé)人ID、項目開始時間、項目完成時間、子項目開始時間、子項目完成時間。該表記錄系統(tǒng)中所有項目的詳細(xì)信息,其中子項目編號是系統(tǒng)識別最小項目的唯一憑據(jù),在項目文檔信息表、項目權(quán)限表的相應(yīng)字段中將該字段作為其外鍵進(jìn)行字段約束,確保子項目的唯一性。(3)項目文檔信息表的結(jié)構(gòu)及其完整性設(shè)計。項目文檔信息表的字段及類型為:文件編號、子項目編號、文件名稱、文件類型、文件二進(jìn)制流、上傳時間。該表記錄系統(tǒng)中所有醫(yī)學(xué)實驗文檔的具體信息,其中文件編號為主鍵,子項目編號是實驗項目信息表中子項目編號的外鍵,文件二進(jìn)制流是實驗文檔具體內(nèi)容的二進(jìn)制形式,下載轉(zhuǎn)換后可恢復(fù)為原來的文件。(4)項目權(quán)限信息表的結(jié)構(gòu)及其完整性設(shè)計。項目權(quán)限信息表的字段及類型為:項目編號、子項目編號、開啟時間、關(guān)閉時間、開放對象ID、開放狀態(tài)。該表記錄系統(tǒng)中項目的開放情況,開放狀態(tài)字段的約束為用戶定義完整性約束,該字段內(nèi)容為0時表示該項目對該開放對象不可見,反之則表示可見。只有在該表中記錄的項目及其相應(yīng)的用戶且開放狀態(tài)為1時,相應(yīng)的用戶才能對相應(yīng)的項目信息進(jìn)行查詢下載。(5)下載信息表的結(jié)構(gòu)及其完整性設(shè)計。下載信息表的字段及類型為:下載者ID、文件編號、下載時間、下載次數(shù)。該表記錄用戶下載文檔的次數(shù)及時間,更全面地保證系統(tǒng)數(shù)據(jù)的安全性。上述表間的關(guān)聯(lián)關(guān)系圖(圖3),清晰地表述了數(shù)據(jù)庫中各表結(jié)構(gòu)、表間關(guān)聯(lián)關(guān)系及完整性的設(shè)計與實現(xiàn)。
3關(guān)鍵技術(shù)
在數(shù)據(jù)庫中寫入項目名稱、子項目名稱以及用戶姓名這類數(shù)據(jù)時,由于數(shù)據(jù)很小,寫入的過程中不會出錯。但將實驗的文檔寫入到數(shù)據(jù)庫中時,對于幾十兆甚至上百兆的大文件在寫入的過程中容易出錯,原因是SQLserver2008數(shù)據(jù)庫在每執(zhí)行一條結(jié)構(gòu)化查詢語言(SQL)語句時有時間限制,當(dāng)一次寫入數(shù)據(jù)的時間超過該時間時,SQLserver2008數(shù)據(jù)庫就會顯示一條日志已滿的錯誤信息,表示此次上傳數(shù)據(jù)失敗。該段代碼執(zhí)行的功能是:每次只讀取文件中的length個單位(字符/字節(jié))。如果文件是第一次寫入到數(shù)據(jù)庫中,則利用insertinto語句直接將讀取的語句寫入到數(shù)據(jù)庫中;如果該文件不是第一次被讀取,因為set文件語句中Write的@offset的值為null,所以會將本次讀取的length個單位(字符/字節(jié))的數(shù)據(jù)添加到上次添加的數(shù)據(jù)的末尾。以此類推,當(dāng)文件的所有數(shù)據(jù)都被寫入到數(shù)據(jù)庫中時,結(jié)束本次的上傳行為。通過上述方法,能夠有效地保證無論多大的文件都能成功的保存到數(shù)據(jù)庫中。
4結(jié)論
在對醫(yī)學(xué)實驗文檔管理系統(tǒng)進(jìn)行功能需求分析及用戶數(shù)據(jù)需求分析的基礎(chǔ)上,先利用數(shù)據(jù)庫規(guī)范化設(shè)計方法對醫(yī)學(xué)實驗文檔管理系統(tǒng)的數(shù)據(jù)庫及其完整性進(jìn)行設(shè)計[7-8],并在SQLserver2008平臺下得以實現(xiàn),再采用跨平臺編程語言JVAV進(jìn)行系統(tǒng)控制程序的編制,進(jìn)而完成了該系統(tǒng)的開發(fā)。本文不僅實現(xiàn)了小文件在SQLserver2008數(shù)據(jù)庫中的上傳與下載,而且解決了在SQLserver2008中上傳與下載大文件易出錯的問題,有效地提高了醫(yī)學(xué)實驗文檔管理的效率、原始數(shù)據(jù)與文檔的信息安全及保密性。
作者:代元平 鄭君芳 單位:首都醫(yī)科大學(xué) 基礎(chǔ)醫(yī)學(xué)院 生物化學(xué)與分子生物學(xué)系