醫(yī)藥銷售管理及數(shù)據(jù)庫管理知識(shí)分析原理_第1頁
醫(yī)藥銷售管理及數(shù)據(jù)庫管理知識(shí)分析原理_第2頁
醫(yī)藥銷售管理及數(shù)據(jù)庫管理知識(shí)分析原理_第3頁
醫(yī)藥銷售管理及數(shù)據(jù)庫管理知識(shí)分析原理_第4頁
醫(yī)藥銷售管理及數(shù)據(jù)庫管理知識(shí)分析原理_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計(jì)設(shè)計(jì)題目醫(yī)藥銷售管理系統(tǒng)設(shè)計(jì)時(shí)間 2011.12.29至 2012.1.4 學(xué)生姓名學(xué)生學(xué)號(hào)所在班級(jí)指導(dǎo)教師摘 要根據(jù)醫(yī)藥管理系統(tǒng)的需求分析結(jié)果總結(jié)系統(tǒng)內(nèi)實(shí)體及聯(lián)系并繪制系統(tǒng)的局部ER圖然后畫出全局ER圖。結(jié)合需求分析與概念結(jié)構(gòu)設(shè)計(jì)把設(shè)計(jì)好的ER圖轉(zhuǎn)換為DBMS所支持的數(shù)據(jù)模型所符合的邏輯結(jié)構(gòu),運(yùn)用SQL數(shù)據(jù)庫管理系統(tǒng)建好表和相關(guān)約束。關(guān)鍵詞: 醫(yī)藥管理系統(tǒng);ER圖;DBMS;數(shù)據(jù)模型;SQL目 錄TOC o 1-3 h z u HYPERLINK l _Toc280984691 1課題描述 PAGEREF _Toc280984691 h 3 HYPERLINK l _

2、Toc280984692 2設(shè)計(jì)過程 PAGEREF _Toc280984692 h 4 HYPERLINK l _Toc280984693 2.1 需求分析 PAGEREF _Toc280984693 h 4 HYPERLINK l _Toc280984694 2.1.1 系統(tǒng)目標(biāo)與要求 PAGEREF _Toc280984694 h 4 HYPERLINK l _Toc280984695 2.1.2 系統(tǒng)分析 PAGEREF _Toc280984695 h 4 HYPERLINK l _Toc280984696 2.1.3 業(yè)務(wù)流程圖 PAGEREF _Toc280984696 h 4 H

3、YPERLINK l _Toc280984697 2.2 系統(tǒng)邏輯方案 PAGEREF _Toc280984697 h 5 HYPERLINK l _Toc280984698 2.2.1 數(shù)據(jù)流程圖(DFD): PAGEREF _Toc280984698 h 5 HYPERLINK l _Toc280984699 2.2.2 數(shù)據(jù)字典(簡稱DD) PAGEREF _Toc280984699 h 6 HYPERLINK l _Toc280984700 2.3系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc280984700 h 7 HYPERLINK l _Toc280984701 2.3.1軟件系統(tǒng)

4、總體結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc280984701 h 7 HYPERLINK l _Toc280984702 2.3.2數(shù)據(jù)存儲(chǔ)的總體設(shè)計(jì) PAGEREF _Toc280984702 h 7 HYPERLINK l _Toc280984703 2.3.3系統(tǒng)功能模塊設(shè)計(jì) PAGEREF _Toc280984703 h 7 HYPERLINK l _Toc280984704 2.4數(shù)據(jù)庫詳細(xì)設(shè)計(jì) PAGEREF _Toc280984704 h 8 HYPERLINK l _Toc280984705 2.4.1數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc280984705 h 8 HYPERLIN

5、K l _Toc280984706 2.4.2 數(shù)據(jù)庫的完整性和安全性 PAGEREF _Toc280984706 h 12 HYPERLINK l _Toc280984707 2.5 數(shù)據(jù)庫操作(SQL Server2000語句完成) PAGEREF _Toc280984707 h 一三 HYPERLINK l _Toc280984708 2.5.1創(chuàng)建醫(yī)藥銷售管理系統(tǒng) PAGEREF _Toc280984708 h 一三 HYPERLINK l _Toc280984709 2.5.2創(chuàng)建藥品類別索引信息表 PAGEREF _Toc280984709 h 一三 HYPERLINK l _To

6、c280984710 2.5.3建立存儲(chǔ)過程向表中插入、修改、刪除數(shù)據(jù) PAGEREF _Toc280984710 h 14 HYPERLINK l _Toc280984711 2.5.4建立存儲(chǔ)過程實(shí)現(xiàn)單表查詢 PAGEREF _Toc280984711 h 一五 HYPERLINK l _Toc280984712 2.5.5視圖建立 PAGEREF _Toc280984712 h 17 HYPERLINK l _Toc2809847一三 2.5.6建立INSERT觸發(fā)器 PAGEREF _Toc2809847一三 h 17 HYPERLINK l _Toc280984714 2.5.7建立

7、DELETE觸發(fā)器 PAGEREF _Toc280984714 h 17 HYPERLINK l _Toc2809847一五 2.5.8建立UPDATE觸發(fā)器 PAGEREF _Toc2809847一五 h 17 HYPERLINK l _Toc280984716 總結(jié) PAGEREF _Toc280984716 h 19 HYPERLINK l _Toc280984717 參考文獻(xiàn) PAGEREF _Toc280984717 h 201課題描述近年來,中國醫(yī)藥行業(yè)迅速發(fā)展,藥店企業(yè)多業(yè)態(tài)經(jīng)營,倉儲(chǔ)式大型超市、中等規(guī)模超市、便利連鎖綜合發(fā)展。隨著規(guī)模的擴(kuò)大,傳統(tǒng)的醫(yī)藥管理已經(jīng)不能適應(yīng)發(fā)展的需要

8、,很難在激烈的競爭中生存。通過對(duì)從事醫(yī)藥產(chǎn)品的零售、批發(fā)等工作企業(yè)的深入調(diào)查,發(fā)現(xiàn)其業(yè)務(wù)主要包括企業(yè)藥品銷售、出入庫管理、企業(yè)的財(cái)務(wù)、人事管理等。醫(yī)藥管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作。手工進(jìn)行企業(yè)日常的藥品銷售、出入庫的工作,容易出現(xiàn)“開空單”的現(xiàn)象,且呆賬、錯(cuò)賬時(shí)有發(fā)生,而且費(fèi)時(shí)費(fèi)力。本系統(tǒng)在設(shè)計(jì)中考慮和克服了上述問題,實(shí)現(xiàn)了企業(yè)管理工作的系統(tǒng)化、規(guī)范化和自動(dòng)化。開發(fā)環(huán)境:CPU:Intel Pentium4 2GHz內(nèi)存:1G操作系統(tǒng):Microsoft Windows XP后臺(tái)數(shù)據(jù)庫在Microsoft SQL Server 20002設(shè)計(jì)過程本系統(tǒng)進(jìn)行了建立數(shù)據(jù)庫的必要性和可行性

9、的分析,需求分析,數(shù)據(jù)庫的概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)和數(shù)據(jù)庫的實(shí)現(xiàn)、運(yùn)行、維護(hù)以及相應(yīng)的前臺(tái)的主要功能模塊的開發(fā)。2.1 需求分析2.1.1 系統(tǒng)目標(biāo)與要求要求本系統(tǒng)能夠投入實(shí)際的使用并且滿足基本的功能要求。要求具有較高的可靠性、安全性和易維護(hù)性,具有較高的可移植性。本系統(tǒng)實(shí)現(xiàn)了以下的功能:基本信息模塊:包括藥品信息、員工信息、客戶信息、供應(yīng)商信息四個(gè)子模塊。(1)進(jìn)貨管理模塊:包括入庫登記、入庫登記查詢二個(gè)子模塊。(2)庫房管理模塊:包括庫存查詢、庫存盤點(diǎn)、退貨處理三個(gè)子模塊。(3)銷售管理模塊:包括銷售登記、銷售退貨、銷售報(bào)表查詢?nèi)齻€(gè)子模塊。(4)財(cái)務(wù)統(tǒng)計(jì)模塊:包括當(dāng)日統(tǒng)計(jì)、當(dāng)月統(tǒng)計(jì)二個(gè)

10、子模塊。(5)系統(tǒng)維護(hù)模塊:包括數(shù)據(jù)安全管理、操作員管理、權(quán)限設(shè)置三個(gè)模塊。說明:根據(jù)對(duì)現(xiàn)實(shí)中醫(yī)藥銷售管理業(yè)務(wù),將用戶分為二類超級(jí)管理員(經(jīng)理)、普通管理員(操作員)。2.1.2 系統(tǒng)分析用戶活動(dòng)及活動(dòng)圖(1)經(jīng)理主要參與活動(dòng)有: 查詢銷售情況和財(cái)務(wù)狀況以便了解本企業(yè)的經(jīng)營狀況,作出相應(yīng)的決策; 管理員工,了解不同員工的上班時(shí)間和他的相關(guān)的業(yè)績; 客戶的管理,了解客戶的數(shù)量,注銷有問題的客戶; 供應(yīng)商的管理,了解供應(yīng)信息,選擇最合適的供應(yīng)商。(2)營業(yè)員主要活動(dòng)有: = 1 * GB3 醫(yī)藥銷售管理是指對(duì)藥品信息的錄入、更新、修改和刪除; = 2 * GB3 查詢藥品信息,以了解是否有該藥品和

11、庫存等信息; = 3 * GB3 銷售藥品,出庫記錄; = 4 * GB3 退還藥品,入庫記錄; = 5 * GB3 現(xiàn)金收支是指對(duì)進(jìn)出帳目的記錄統(tǒng)計(jì)。(3)顧客主要活動(dòng):查詢藥品信息;選購藥品。2.1.3 業(yè)務(wù)流程圖2.2 系統(tǒng)邏輯方案系統(tǒng)分析的主要成果是系統(tǒng)的邏輯模型。本系統(tǒng)的邏輯模型主要是以系統(tǒng)的數(shù)據(jù)流圖和數(shù)據(jù)字典為主要描述工具。即在無紙化網(wǎng)絡(luò)考試系統(tǒng)管理方式和業(yè)務(wù)流程進(jìn)行認(rèn)真分析和研究的基礎(chǔ)上,排除現(xiàn)有組織機(jī)構(gòu)和業(yè)務(wù)分工所造成的信息障礙。2.2.1 數(shù)據(jù)流程圖(DFD):數(shù)據(jù)流圖是組織中信息運(yùn)動(dòng)的抽象。是在調(diào)研的基礎(chǔ)上,從系統(tǒng)的科學(xué)性、管理的合理性、實(shí)際運(yùn)動(dòng)的可行性角度出發(fā)。將信息處理

12、功能和彼此之間的聯(lián)系自頂向下,逐層分解,從邏輯上精確地描述系統(tǒng)應(yīng)具有的數(shù)據(jù)加工功能、數(shù)據(jù)輸入、數(shù)據(jù)輸出、數(shù)據(jù)存儲(chǔ)及數(shù)據(jù)來源和去向(外部實(shí)體)等項(xiàng)目。在數(shù)據(jù)流程圖中可以很清楚的看到數(shù)據(jù)的流向,藥品信息的數(shù)據(jù)分別能夠流向經(jīng)理、員工和顧客。藥品銷售信息的信息也流經(jīng)理。藥品銷售信息記錄的是藥品銷售和退還的信息。顧客表信息從顧客流出又可以流回到顧客和員工、經(jīng)理。2.2.2 數(shù)據(jù)字典(簡稱DD)繪制DFD,只是對(duì)數(shù)據(jù)處理和彼此之間的聯(lián)系進(jìn)行了說明。為進(jìn)一步明確數(shù)據(jù)的詳細(xì)內(nèi)容和數(shù)據(jù)加工過程,應(yīng)將數(shù)據(jù)流圖中的全部數(shù)據(jù)流及其組成部分的數(shù)據(jù)元素,數(shù)據(jù)存儲(chǔ),數(shù)據(jù)加工,通過數(shù)據(jù)字典描述清楚,以便于此后系統(tǒng)設(shè)計(jì)的進(jìn)行。

13、這就需要開發(fā)人員編寫詳細(xì)的數(shù)據(jù)字典,來描述系統(tǒng)開發(fā)過程的細(xì)節(jié)。下面列出本系統(tǒng)中的數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、加工處理和數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)字典。數(shù)據(jù)字典可采用圖表格式或較緊湊的記錄格式描述,本文采用的是圖表格式。數(shù)據(jù)項(xiàng)的DD表列舉如下:表2.1 藥品編號(hào)的數(shù)據(jù)字典 數(shù) 據(jù) 項(xiàng)系統(tǒng)名:醫(yī)藥銷售管理系統(tǒng) 編號(hào):I001 名稱:藥品編碼 別名: 數(shù)據(jù)項(xiàng)值: 類型:字符型 長度:6個(gè)字節(jié) 取值范圍:簡述:每種藥品都具有唯一的編號(hào),它是某種藥品的唯一標(biāo)識(shí)符,每種藥品都有唯一的編號(hào),如“011976”通常用前兩位數(shù)字表示入庫的年份,中間兩位表示類別,最后兩位表示該藥的序號(hào)。如果該類藥數(shù)超過100種時(shí),可用“011

14、9A0”表示第100種藥。修改記錄:編寫日期審核日期表2.2 藥品名稱 數(shù) 據(jù) 項(xiàng)系統(tǒng)名:醫(yī)藥銷售管理系統(tǒng) 編號(hào):I002 名稱:藥品名稱 別名:數(shù)據(jù)項(xiàng)值: 類型:字符型 長度:32個(gè)字節(jié) 取值范圍:簡述:每種藥品都具有唯一藥品標(biāo)識(shí)。修改記錄:編寫日期審核日期表2.3 密碼 數(shù) 據(jù) 項(xiàng)系統(tǒng)名:醫(yī)藥銷售管理系統(tǒng) 編號(hào):I003 名稱:售價(jià) 別名:數(shù)據(jù)項(xiàng)值: 類型:數(shù)值型 長度:8個(gè)字節(jié) 取值范圍:簡述:每種藥品都要設(shè)置一個(gè)銷售價(jià)格。修改記錄:編寫日期審核日期2.3系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)2.3.1軟件系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)軟件系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)的主要任務(wù)就是將整個(gè)系統(tǒng)合理的劃分成各個(gè)功能模塊,正確處理模塊之間與

15、模塊內(nèi)部的聯(lián)系及它們之間的調(diào)用關(guān)系和數(shù)據(jù)聯(lián)系,定義各模塊的內(nèi)部結(jié)構(gòu)等,本系統(tǒng)的軟件總體結(jié)構(gòu)按分解協(xié)調(diào)的原則,信息隱蔽抽象的原則,自頂向下的原則,一致性原則,面向用戶的原則進(jìn)行設(shè)計(jì)。2.3.2數(shù)據(jù)存儲(chǔ)的總體設(shè)計(jì) 按用途分類可把本系統(tǒng)文件分成以下幾種:主文件:系統(tǒng)中的主文件是最重要的共享文件,主要存放具有固定值屬性的數(shù)據(jù)。它需要長期保存,并不斷更新。處理文件:處理文件包含下一次更新文件所需要的全部記錄,本系統(tǒng)中的處理文件如新聞登錄日志文件、待審核項(xiàng)目信息文件。2.3.3系統(tǒng)功能模塊設(shè)計(jì)通過對(duì)系統(tǒng)的數(shù)據(jù)流圖進(jìn)行分析,進(jìn)一步進(jìn)行功能分解,直到分解成含義明確,功能單一的功能模塊,從而得到系統(tǒng)的功能模塊結(jié)

16、構(gòu)圖。2.4數(shù)據(jù)庫詳細(xì)設(shè)計(jì)2.4.1數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫的設(shè)計(jì)是指對(duì)一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),滿足各種用戶需求。作為信息資源開發(fā)、管理和服務(wù)的一種有效的手段,數(shù)據(jù)庫技術(shù)的應(yīng)用已越來越廣泛,從小型的單項(xiàng)事務(wù)處理系統(tǒng)到大型的信息系統(tǒng)大都用先進(jìn)的數(shù)據(jù)庫技術(shù)來保持系統(tǒng)數(shù)據(jù)的安全性、完整性和共享性。對(duì)一個(gè)實(shí)際的系統(tǒng)來說,數(shù)據(jù)庫表的設(shè)計(jì)在遵循數(shù)據(jù)庫理論的同時(shí),必須能用開發(fā)工具來實(shí)現(xiàn)用戶在各方面提出的功能要求。 = 1 * GB2 E-R圖:在系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)中,先要對(duì)系統(tǒng)分析得到的數(shù)據(jù)字典中的數(shù)據(jù)存儲(chǔ)進(jìn)行分析,分析各數(shù)據(jù)存儲(chǔ)之間的關(guān)系,然后才能得出系統(tǒng)的關(guān)系模式??梢圆捎肊-

17、R圖的方法來進(jìn)行數(shù)據(jù)結(jié)構(gòu)分析,E-R設(shè)計(jì)方法是一種通過E-R圖來描述現(xiàn)實(shí)世界信息結(jié)構(gòu)的DB設(shè)計(jì)方法。E-R圖由實(shí)體、屬性、聯(lián)系三部分組成。各分E-R圖說明如下: = 1 * GB3 經(jīng)理E-R圖: = 2 * GB3 供應(yīng)商E-R圖: = 3 * GB3 員工E-R圖: = 4 * GB3 藥品銷售清單E-R圖: = 5 * GB3 客戶E-R圖: = 6 * GB3 藥品E-R圖: = 7 * GB3 整體E-R圖: = 2 * GB2 關(guān)系模式與碼:藥品信息(藥品編號(hào),藥品名稱,藥品類別代號(hào),售價(jià),進(jìn)價(jià),庫存量,供應(yīng)商,有效期) 外碼:藥品類別代號(hào)、 供應(yīng)商藥品分類索引信息(藥品類別代號(hào),

18、類別說明)員工信息(員工號(hào),姓名,用戶名,密碼,職位,權(quán)限)客戶信息(客戶號(hào),客戶名稱,聯(lián)系人,聯(lián)系方式,客戶所在城市)供應(yīng)商信息(供應(yīng)商號(hào),供應(yīng)商名稱,聯(lián)系人,聯(lián)系方式,供應(yīng)商所在城市)藥品銷售信息(銷售編碼,銷售日期,藥品編碼,藥品名稱,單價(jià),數(shù)量,供應(yīng)商,總額,銷售員編碼) 外碼:銷售員編碼、藥品編碼 = 3 * GB2 關(guān)系模式優(yōu)化: 在上述關(guān)系模式中,每一個(gè)分量都是不可分割的數(shù)據(jù)項(xiàng)所以都符合第一范式;而且前四個(gè)關(guān)系模式都是單個(gè)屬性作為碼,沒有任何非主屬性對(duì)碼部分函數(shù)依賴,在藥品銷售信息內(nèi)雖由三個(gè)屬性作為碼,但也不存在非主性對(duì)碼的部分函數(shù)依賴,所以上都符合第二范式;藥品信息、藥品類別索

19、引、客戶信息、供應(yīng)商信息四個(gè)關(guān)系模式中都不存在非主屬性對(duì)碼的傳遞函數(shù)依賴,都屬于第三范式。在員工信息關(guān)系模式中,員工是按照權(quán)限分類的,職位不同權(quán)限也不同,這樣該關(guān)系模式就存在了非主屬性對(duì)碼的傳遞依賴:職工號(hào)-職位,職位-權(quán)限,所以就將用員工信息分解為如下現(xiàn)個(gè)模式:員工信息(員工號(hào),姓名,用戶名,用戶口令,職位)職位權(quán)限信息(職位,權(quán)限)本系統(tǒng)不考慮職工信息的管理,為了使銷售員編號(hào)與銷售員的職工號(hào)連系起來,并能通過職工姓名和職位來修改用戶信息所以把員工的部分信息(職工號(hào),姓名,職位)和經(jīng)理(用戶名,密碼)合成了員工信息(員工號(hào),姓名,用戶名,密碼,職位,權(quán)限)以便系統(tǒng)功能的實(shí)現(xiàn),所以在此不采用模

20、式分解。藥品銷售信息中有大量的數(shù)據(jù)冗余,表達(dá)不明確,將其分解為如下兩個(gè)模式:藥品銷售主表(銷售編碼,銷售日期,銷售員編號(hào),總金額)藥品銷售子表(銷售編碼,銷售日期,藥品編碼,藥品名稱,單價(jià),數(shù)量,供應(yīng)商) = 4 * GB2 數(shù)據(jù)庫設(shè)計(jì)對(duì)上述E-R圖所需的實(shí)體需要的幾個(gè)關(guān)鍵表的設(shè)計(jì)如下:表名:藥品信息表字段名字段類型長度主鍵或外鍵字段值約束對(duì)應(yīng)中文屬性名MedicineCodeChar6Primary KeyNot Null藥品編碼MedicineNameVarchar32Not Null藥品名稱MedKindCodeChar10Foreign keyNot Null藥品類別代碼PriceMo

21、ney8售價(jià)ListPriceMoney8進(jìn)價(jià)NumberInt4庫存量FirmCodeChar10Foreign key供應(yīng)商UsefulllifeDatetime8有效期至表名:客戶信息字段名字段類型長度主鍵或外鍵字段值約束對(duì)應(yīng)中文屬性名GuestCodeChar10Primary KeyNot Null客戶編碼GuestNameVarchar16Not Null客戶名稱gLinkVarchar12聯(lián)系人gLinkTellVarchar11聯(lián)系方式CityVarchar8所在城市表名:供應(yīng)商信息字段名字段類型長度主鍵或外鍵字段值約束對(duì)應(yīng)中文屬性名FirmCodeChar10Primary

22、KeyNot Null供應(yīng)商編碼FirmNameVarchar16Not Null供應(yīng)商名稱LinkVarchar12聯(lián)系人LinkTellVarchar11xCityVarchar8所在城市表名:藥品銷售主表字段名字段類型長度主鍵或外鍵字段值約束對(duì)應(yīng)中文屬性名SaleNoint4Primary KeyNot Null銷售編碼WorkNoChar10Foreign keyNot Null銷售員編碼SaleDateDateTime8銷售日期AmountMoney8總金額表名:藥品銷售子表字段名字段類型長度主鍵或外鍵字段值約束對(duì)應(yīng)中文屬性名SaleNoint4Primary KeyNot Null

23、銷售編碼MedicineCodeChar6Foreign keyNot Null藥品編碼MedicineNameVarchar32Not Null藥品名稱PriceMoney8售價(jià)NumberInt4數(shù)量UnitChar8單位AmountMoney8金額表名:藥品類別索引信息字段名字段類型長度主鍵或外鍵字段值約束對(duì)應(yīng)中文屬性名MedKindCodeChar10Primary KeyNot Null藥品類別代碼KindExplanationVarchar12Not Null類別說明表名:員工信息字段名字段類型長度主鍵或外鍵字段值約束對(duì)應(yīng)中文屬性名WorkNoChar10Primary KeyNo

24、t Null職工號(hào)NameVarchar12姓名UserRegNameChar6Not Null用戶登錄名PasswordChar10Not Null用戶口令PositionChar10用戶身份PowerInt4用戶權(quán)限2.4.2數(shù)據(jù)庫的完整性和安全性 = 1 * GB2 數(shù)據(jù)庫的完整性數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫管理系統(tǒng)(DBMS)用一定的機(jī)制來檢查數(shù)據(jù)庫中的數(shù)據(jù)是否滿足規(guī)定的條件完整性約束條件,數(shù)據(jù)的約束條件是語義的體現(xiàn),將作為模式的一部分存入數(shù)據(jù)庫中。本系統(tǒng)中定義了表與表之間的聯(lián)系有助于實(shí)現(xiàn)完整性規(guī)則,一般在程序中實(shí)現(xiàn)具體的完整性控制。實(shí)體完整性例如:CREATE TA

25、BLE MedInfor/*創(chuàng)建藥品信息表*/ (MedicineCode char(6) constraint M_PRIM PRIMARY KEY, MedicineName varchar(8) NOT NULL, MedKindeCode char(10) FOREIGN KEY REFERENCES MedID(MedKindeCode), Price Money(8), ListPrice Money(8), Number Int(4), FirmCode char(10) FOREIGN KEY REFERENCES FirmInfor(FirmCode), Userfullli

26、fe Datetime)參照完整性例如:create table sellMain/*創(chuàng)建醫(yī)藥銷售主表*/ (SaleNo int constraint SM_PRIM PRIMARY KEY, WorkNo char(10) FOREIGN KEY REFERENCES WorkInfor(WorkNo), SaleDate DateTime, Amount Money) = 2 * GB2 數(shù)據(jù)庫的安全性數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞。在數(shù)據(jù)庫系統(tǒng)中,大量的數(shù)據(jù)集中存放,而且為許多用戶直接共享,是寶貴的信息資源,系統(tǒng)的安全保護(hù)措施就顯得更為重要,

27、它保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取。本系統(tǒng)包括數(shù)據(jù)庫的安全和服務(wù)器的安全。采用管理員表示和鑒定的方法實(shí)現(xiàn)數(shù)據(jù)庫的安全,此安全管理措施并不在前臺(tái)開發(fā)工具中實(shí)現(xiàn),而是在后臺(tái)數(shù)據(jù)庫中實(shí)現(xiàn)。在登錄數(shù)據(jù)庫時(shí),系統(tǒng)讓管理員戶表示自己的身份,不同的管理員權(quán)限不同,系統(tǒng)進(jìn)行核實(shí),鑒別此管理員是否為合法用戶,若是,系統(tǒng)進(jìn)一步核實(shí)用戶,通常要求用戶輸入口令,系統(tǒng)和對(duì)用戶口令以鑒別用戶身份。服務(wù)器的安全也是通過用戶在登錄服務(wù)器時(shí)輸入合法的用戶名和密碼來實(shí)現(xiàn)的。這是一種簡單可行的方法,實(shí)現(xiàn)起來比較方便。沒有采用更加復(fù)雜的系統(tǒng)安全管理措施是因?yàn)楸竟芾硐到y(tǒng)一般是應(yīng)用在校園網(wǎng)中,采用安全管理措施主要是為了防止沒有修改權(quán)

28、限的用戶無意間修改了數(shù)據(jù),因此采用用戶標(biāo)識(shí)和鑒定的安全管理措施就能夠保障數(shù)據(jù)庫的安全性。2.5 數(shù)據(jù)庫操作(SQL Server2000語句完成)數(shù)據(jù)庫的選擇和部分重要SQL代碼2.5.1創(chuàng)建醫(yī)藥銷售管理系統(tǒng)create database MedicalManagerSystem/*創(chuàng)建醫(yī)藥銷售管理系統(tǒng)*/use MedicalManagerSystem2.5.2創(chuàng)建藥品類別索引信息表create table MedID/創(chuàng)建藥品類別索引信息表 (MedKindeCode char(10) constraint MI_PRI PRIMARY KEY, KindExplanation varch

29、ar(12) NOT NULL)其余略2.5.3建立存儲(chǔ)過程向表中插入、修改、刪除數(shù)據(jù) = 1 * GB2 插入數(shù)據(jù)的存儲(chǔ)過程 create proc MedID_procxMedKindeCode char(10),xKindExplanation varchar(12)asinsert into MedID (MedKindeCode,KindExplanation) values(xMedKindeCode ,xKindExplanation )exec MedID_proc 0001,口腔潰瘍exec MedID_proc 0002,感冒exec MedID_proc 0003,發(fā)燒e

30、xec MedID_proc 0004,拉肚子exec MedID_proc 0005 ,外傷其余略 = 2 * GB2 刪除數(shù)據(jù)的存儲(chǔ)過程 create proc MedID_delete_procxMedKindeCode char(10)asdelete from MedId where MedKindeCode=xMedKindeCodeexec MedID_delete_proc 0002其余略 = 3 * GB2 修改數(shù)據(jù)的存儲(chǔ)過程 create proc MedID_update_procxMedKindeCode char(10),xKindExplanation varcha

31、r(12),xMedKindeCode1 char(10)asupdate MedID set MedKindeCode=xMedKindeCode,KindExplanation=xKindExplanation where MedKindeCode=xMedKindeCode1其余略2.5.4建立存儲(chǔ)過程實(shí)現(xiàn)單表查詢/*建立名為“單表查詢1”的存儲(chǔ)過程,用來查詢某種藥品的信息*/ create proc 單表查詢1xMedicineCode char(6)ASselect *from MedInfor where MedicineCode=xMedicineCode其余略建立存儲(chǔ)過程實(shí)現(xiàn)連

32、接查詢 /*建立名為“連接查詢1”的存儲(chǔ)過程,用來查詢某個(gè)藥品名稱對(duì)應(yīng)的藥品類型的信息*/ create proc 連接查詢1xMedicineName varchar(8)asselect MedicineName ,KindExplanationfrom MedInfor,MedIDwhere MedID.MedKindeCode=MedInfor.MedKindeCode and MedicineName=xMedicineName/建立存儲(chǔ)過程實(shí)現(xiàn)嵌套查詢/*建立名為“嵌套查詢1”的存儲(chǔ)過錯(cuò),用來查詢某類藥品的銷售量*/create proc 嵌套查詢1xKindExplanation

33、 varchar(12)asselect Number from sellChild where MedicineCode In(select MedicineCode from MedID where KindExplanation=xKindExplanation)/*建立名為“嵌套查詢2”的存儲(chǔ)過錯(cuò),用來查詢某個(gè)供應(yīng)商提供的商品*/create proc 嵌套查詢2xFirmName varchar(16)asselect MedicineName from MedInfor where FirmCode In (select FirmCode from FirmInfor where

34、FirmName=xFirmName)建立存儲(chǔ)過程實(shí)現(xiàn)集合查詢/*建立名為“集合查詢1”的存儲(chǔ)過錯(cuò),用來查詢提供某類商品的供應(yīng)商數(shù)*/create proc 集合查詢1xMedicineName varchar(8)asselect avg(FirmCode) from FrimInfor where FirmCode in(select FirmCode from MedInfor,FrimInfor where MedInfor.FirmCode=FrimInfor.FirmCode and MedicineName=xMedicineName)其余略2.5.5視圖建立由供應(yīng)商信息表“Fi

35、rmInfor”建立一個(gè)視圖,該視圖由供應(yīng)商信息表的所有列構(gòu)成*/create view 供應(yīng)商信息(供應(yīng)商編碼,供應(yīng)商名稱,聯(lián)系人,x,所在城市)asselect* from FirmInfor2.5.6建立INSERT觸發(fā)器/*建立INSERT觸發(fā)器*/create trigger MedID_insert on MedIDfor insertas if(select count(*)from MedID_med,insertedwhere MedID_med.MedKindeCode=inserted.MedKindeCode)=0rollback transaction2.5.7建立D

36、ELETE觸發(fā)器create trigger delete_MedID on MedIDfor deleteasselect* from MedIDdeclare xMedKindeCode char(10) select xMedKindeCode=MedKindeCode from deleteddelete from MedIDwhere MedKindeCode=xMedKindeCodeselect*from MedID2.5.8建立UPDATE觸發(fā)器create trigger MedID_update on MedIDfor updateasif update(MedKindeC

37、ode)beginraiserror(you can not modify this column,16,1)rollback transactionend總 結(jié)本次課程設(shè)計(jì)調(diào)查從事醫(yī)藥產(chǎn)品的零售、批發(fā)等工作的企業(yè),根據(jù)其具體情況,設(shè)計(jì)醫(yī)藥銷售管理系統(tǒng)。加深了對(duì)數(shù)據(jù)庫課程知識(shí)的理解。由于時(shí)間倉促,軟件還有很多不足之處,如:藥品信息查詢部分不夠完善,軟件代碼交冗余、效率不高等等,都相關(guān)功能缺乏認(rèn)識(shí)造成的。在今后的學(xué)習(xí)中我們會(huì)加強(qiáng)理論的實(shí)踐的結(jié)合,通過不斷摸索來彌補(bǔ)自己在軟件制作方面的差距。參考文獻(xiàn)1 苗雪蘭,劉瑞新,宋歌.數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用教程M.北京.機(jī)械工業(yè)出版社.20102 薩師煊,王

38、珊.數(shù)據(jù)庫系統(tǒng)概論M.北京:高等教育出版社.19973 劉真原.SQL SERVER2000培訓(xùn)教程M.北京:清華大學(xué)出版社.20034 李清國.Windows 2000+ ASP SQL Server案例教程M.上海: 中科多媒體電子出版社.20015 李曉黎.ASP+SQLSERVER網(wǎng)絡(luò)應(yīng)用系統(tǒng)開發(fā)指南M.北京.人民郵電出版社.2004附件:醫(yī)藥銷售管理系統(tǒng)SQL語句,如下:create database MedicalManagerSystem/*創(chuàng)建醫(yī)藥銷售管理系統(tǒng)*/use MedicalManagerSystemcreate table MedID/*創(chuàng)建藥品類別索引信息*/ (

39、MedKindeCode char(10) constraint MI_PRI PRIMARY KEY, KindExplanation varchar(12) NOT NULL)create table MedInfor/*創(chuàng)建藥品信息表*/ (MedicineCode char(6) constraint M_PRIM PRIMARY KEY, MedicineName varchar(8) NOT NULL, MedKindeCode char(10) FOREIGN KEY REFERENCES MedID(MedKindeCode), Price Money, ListPrice M

40、oney, Number Int, FirmCode char(10) FOREIGN KEY REFERENCES FirmInfor(FirmCode), Userfulllife Datetime)create table GueInfor/*創(chuàng)建客戶信息表*/ (GuestCode char(10) constraint G_PRIM PRIMARY KEY, GuestName varchar(16) NOT NULl, GLink varchar(12), GLinkTell varchar(11), City varchar(8)create table FirmInfor/*創(chuàng)

41、建供應(yīng)商信息表*/ (FirmCode char(10) constraint F_PRIM PRIMARY KEY, FirmName varchar(16) NOT NULL, Link varchar(12), LinkTell varchar(11), City varchar(8)create table WorkInfor/*創(chuàng)建員工信息表*/ (WorkNo char(10) constraint W_PRIM PRIMARY KEY, Name varchar(12), UserRegName char(6) NOT NULL, Password char(10) NOT NU

42、LL, Position char(10), Power Int) create table sellMain/*創(chuàng)建醫(yī)藥銷售主表*/ (SaleNo int constraint SM_PRIM PRIMARY KEY, WorkNo char(10) FOREIGN KEY REFERENCES WorkInfor(WorkNo), SaleDate DateTime, Amount Money)create table sellChild/*創(chuàng)建醫(yī)藥銷售子表*/ (SaleNo int constraint SC_PRIM PRIMARY KEY, MedicineCode char(6

43、) FOREIGN KEY REFERENCES MedInfor(MedicineCode), MedicineName varchar(32) NOT NULL, Price Money, Number Int, Uint char(8), Amount Money)/*插入數(shù)據(jù)的存儲(chǔ)過程 */create proc MedID_procxMedKindeCode char(10),xKindExplanation varchar(12)asinsert into MedID (MedKindeCode,KindExplanation) values(xMedKindeCode ,xKin

44、dExplanation )exec MedID_proc 0001,口腔潰瘍exec MedID_proc 0002,感冒exec MedID_proc 0003,發(fā)燒exec MedID_proc 0004,拉肚子exec MedID_proc 0005 ,外傷create proc MedInfor_procxMedicineCode char(6),xMedicineName varchar(8),xMedKindeCode char(10),xPrice money,xListPrice money,xNumber int,xFirmCode char(10),xUserfullli

45、fe Datetimeasinsert into MedInfor(MedicineCode ,MedicineName,MedKindeCode,Price,ListPrice,Number,Supplicer,Userfulllife) values(xMedicineCode,xMedicineName,xMedKindeCode,xPrice,xListPrice,xNumber,xFirmCode,xUserfulllife)exec MedInfor_proc 1001,板藍(lán)根,0002,5,3,100,014,2010-12-5exec MedInfor_proc 2002,四季

46、感康,0002,14,10.5,一五0,051,2010-12-12exec MedInfor_proc 2003,銀黃顆粒,0002,12,8.8, 120 ,014,2012-10-6exec MedInfor_proc 2004,感冒清熱軟膠囊,0002,17,12, 一五0,0一五, 2011-11-1exec MedInfor_proc 3001,阿斯匹林,0003,一五,11,100,014,2010-12-1exec MedInfor_proc 3002,布洛芬,0003,21,17.5,120,051,2010-6-5exec MedInfor_proc 4001,瀉利挺,00

47、04,25,20,120,0一五,2012-10-2exec MedInfor_proc 4002,諾氟沙星膠囊,0004,一五,12,100,0一五,2012-9-16exec MedInfor_proc 5001,碘酒,0005,5,2.5,50 ,051,2012-10-12exec MedInfor_proc 5002,創(chuàng)口貼,0005,2,1,250,014,20一五-5-1create proc GueInfor_procxGuestCode char(10),xGuestName varchar(16),xGLink varchar(12),xGLinkTell varchar(

48、11),xCity varchar(8)asinsert into GueInfor(GuestCode,GuestName,GLink,GLinkTell,City) values(xGuestCode,xGuestName,xGLink,xGLinkTell,xCity)exec GueInfor_proc 0一五112,zhangsan,xiaozhang,668401,jiaxingexec GueInfor_proc 065114,lisi,xiaofang,614425,yuyaoexec GueInfor_proc 052114,wangwu,xiaowu,659024,wenz

49、houexec GueInfor_proc 0431一五,zhaoliu,xiaowu,6一五874,shangyuexec GueInfor_proc 014221,awu,xiaozhang,651283,linanexec GueInfor_proc 025471,asha,xiaofang,691472,dongyangcreate proc FirmInfor_procxFirmCode char(10),xFirmName varchar(16),xLink varchar(12),xLinkTell varchar(11),xCity varchar(8)asinsert int

50、o FirmInfor(FirmCode,FirmName,Link,LinkTell,City)values(xFirmCode,xFirmName,xLink,xLinkTell,xCity)exec FirmInfor_proc 0一五,yangshengtang,xiaotai,681472,huzhouexec FirmInfor_proc 014,baozhilin,zhangqing,658421,deqingexec FirmInfor_proc 051,pinmingdayaofang,oudan,65417,xiangshancreate proc WorkInfor_pr

51、ocxWorkNo char(10),xName varchar(12),xUserRegName char(6),xPassword char(10),xPosition char(10),xPower Intasinsert into WorkInfor(WorkNo,Name,UserRegName,Password,Position,Power)values(xWorkNo,xName,xUserRegName,xPassword,xPosition,xPower)exec WorkInfor_proc 075101,ZKL,zkl01,456789,jingli,exec WorkI

52、nfor_proc 075201,ZJM,zjm01,123789,dongshi,exec WorkInfor_proc 0752一五,WMX,wmx05,147258,xiaomi,exec WorkInfor_proc 075120,ZZW,zzm20,123456,buzhang,create proc sellMain_procxSaleNo int,xWorkNo char(10),xSaleDate DateTime,xAmount Moneyasinsert into sellMain(SaleNo,WorkNo,SaleDate,Amount)values(xSaleNo,x

53、WorkNo,xSaleDate,xAmount)exec sellMain_proc 12,075101,2009-1-1,1000exec sellMain_proc 一三,075201,2009-1-1,一五00exec sellMain_proc 一五,0752一五,2009-1-1,800exec sellMain_proc 20,075120,2009-1-1,1200alter proc sellChild_procxSaleNo int,xMedicineCode char(6),xMedicineName varchar(32),xPrice Money,xNumber In

54、t,xUint char(8),xAmount Moneyasinsert into sellChild(SaleNo,MedicineCode,MedicineName,Price,Number,Uint,Amount)values(xSaleNo,xMedicineCode,xMedicineName,xPrice,xNumber,xUint,xAmount)exec sellChild_proc 一三,1001,板藍(lán)根,5,20,bao,100exec sellChild_proc 一五,2002,四季感康,14,一五,he,210exec sellChild_proc 20,3001,

55、阿斯匹林,一五,20,he,300/*刪除數(shù)據(jù)的存儲(chǔ)過程*/ create proc MedID_delete_procxMedKindeCode char(10)asdelete from MedId where MedKindeCode=xMedKindeCodeexec MedID_delete_proc 0002create proc MedInfor_delete_procxMedicineName varchar(8)asdelete from MedInfor where MedicineName=xMedicineNamecreate proc GueInfor_delete_

56、procxGuestCode char(10) asdelete from GueInforwhere GuestCode=xGuestCodecreate proc FirmInfor_delete_procxFirmCode char(10)asdelete from FirmInforwhere FirmCode=xFirmCodecreate proc WorkInfor_delete_procxWorkNo char(10)asdelete from WorkInforwhere WorkNo=xWorkNocreate proc sellMain_delete_procxSaleN

57、o intasdelete from sellMainwhere SaleNo=xSaleNocreate proc sellChild_delete_procxSaleNo intasdelete from sellChildwhere SaleNo=xSaleNo/*修改數(shù)據(jù)的存儲(chǔ)過程*/ create proc MedID_update_procxMedKindeCode char(10),xKindExplanation varchar(12),xMedKindeCode1 char(10)asupdate MedID set MedKindeCode=xMedKindeCode,Ki

58、ndExplanation=xKindExplanation where MedKindeCode=xMedKindeCode1exec MedID_update_proc 0002,感冒,0001create proc MedInfor_update_procxMedicineCode1 char(6),xMedicineName varchar(8),xMedKindeCode char(10),xPrice money,xListPrice money,xNumber int,xFirmCode char(10),xUserfulllife Datetime,xMedicineCode

59、char(6)asupdate MedInforset MedicineCode=xMedicineCode1,MedicineName=xMedicineName,MedKindeCode=xMedKindeCode,Price=xPrice,ListPrice=xListPrice,Number=xNumber,FirmCode=xFirmCode,Userfulllife=xUserfulllife,MedicineCode=xMedicineCodewhere MedKindeCode=xMedKindeCode create proc GueInfor_update_procxGue

60、stCode1 char(10),xGuestName varchar(16),xGLink varchar(12),xGLinkTell varchar(11),xCity varchar(8),xGuestCode char(10)asupdate GueInforset GuestCode=xGuestCode1,GuestName=xGuestName,GLink=xGLink,GLinkTell=xGLinkTell,City=xCitywhere GuestCode=xGuestCodecreate proc FirmInfor_update_procxFirmCode1 char

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論