vcd管理系統(tǒng)數(shù)據(jù)庫課程設計_第1頁
已閱讀1頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  信息工程學院</b></p><p>  《數(shù)據(jù)庫原理與應用》課程設計論文</p><p>  題 目:音響店VCD零售\出租管理系統(tǒng)</p><p> 學 號:</p><p> 專業(yè)班級:</p><p> 姓 名:</p><p

2、> 指導老師:</p><p> 完成日期:2014-12-28</p><p><b>  目 錄</b></p><p><b>  1引 言1</b></p><p>  2 需求分析階段2</p><p><b>  2.1 引言2</

3、b></p><p>  2.2 需求分析階段的目標與任務2</p><p>  2.2.1 處理對象2</p><p>  2.2.2 處理功能及要求3</p><p>  2.2.3 安全性與完整性要求3</p><p>  2.3 需求分析階段成果3</p><p>  2

4、.3.1 體會與收獲4</p><p>  2.3.2 音像店VCD管理系統(tǒng)數(shù)據(jù)流圖4</p><p>  2.3.4 音像店VCD管理系統(tǒng)數(shù)據(jù)字典4</p><p>  3 概念設計階段7</p><p><b>  3.1 引言7</b></p><p>  3.2 任務與目標7&

5、lt;/p><p>  3.3 階段結果7</p><p>  4 邏輯結構設計9</p><p>  4.1 邏輯設計的任務和目標9</p><p>  4.2 數(shù)據(jù)組織9</p><p>  4.2.1 將E-R圖轉換為關系模式9</p><p>  4.2.2 模式優(yōu)化10<

6、/p><p>  4.2.3 數(shù)據(jù)庫模式定義10</p><p>  4.3 數(shù)據(jù)處理11</p><p>  5 物理結構設計12</p><p>  5.1物理設計階段的目標與任務12</p><p>  5.2數(shù)據(jù)存儲方面12</p><p>  6 數(shù)據(jù)庫實施階段13</p

7、><p>  6.1建立數(shù)據(jù)庫、數(shù)據(jù)表、視圖、索引13</p><p>  6.1.1 建立數(shù)據(jù)庫13</p><p>  6.1.2 建立數(shù)據(jù)表13</p><p>  6.1.3 建立視圖15</p><p>  6.1.4 建立索引16</p><p>  6.1.5 建立觸發(fā)器1

8、6</p><p>  6.2數(shù)據(jù)入庫18</p><p>  6.3創(chuàng)建各個功能的存儲過程19</p><p>  7.系統(tǒng)調(diào)試和測試19</p><p><b>  8.實習心得20</b></p><p>  附錄1 存儲過程定義21</p><p>  附

9、錄2 數(shù)據(jù)查看和存儲過程功能的驗證27</p><p>  附錄3 所有的SQL運行語句31</p><p><b>  摘 要</b></p><p>  隨著社會經(jīng)濟的發(fā)展,人們對生活質(zhì)量的要求越來越高,對生活中的娛樂追求也是越來越高,傳統(tǒng)的娛樂方式已經(jīng)發(fā)生了變化。作為VCD銷售商來說,更多的用戶需要對VCD進行租賃。在租賃的過程中需

10、求量大,操作復雜卻流程完全相同,銷售/租賃商頻繁的做著相同的工作,既浪費時間又不能提高效率,這要求編寫一個方便使用的VCD出租系統(tǒng)以其解決上訴問題。實現(xiàn)對商品的瀏覽,租賃和出售,并對銷售的情況作出相關的統(tǒng)計,并對各類的VCD分類影片進行一個統(tǒng)計。利用該系統(tǒng)體現(xiàn)了管理者的思想,實現(xiàn)計算機的統(tǒng)一管理。</p><p>  通過使用計算機實現(xiàn)傳統(tǒng)的VCD銷售商的繁雜的手工操作計算環(huán)節(jié),可大大提高工作效率。在互聯(lián)網(wǎng)發(fā)展和

11、服務效率至上的今天,各種重復的操作都可以交給計算機實現(xiàn),既能學習先進的管理經(jīng)驗,有可以提高工作效率。所以對于VCD這個傳統(tǒng)的行業(yè)來說,確實需要編寫一個系統(tǒng)去代替人力完成工作。</p><p>  本文從VCD出租/銷售系統(tǒng)的開發(fā)為背景,全文分為目錄、需求分析、概要設計、邏輯設計、物理設計,以及系統(tǒng)的實現(xiàn)等全過程。在程序設計與調(diào)試上采用了自上而下,逐步細化,逐步完善的原則。采用結構化的功能模塊設計系統(tǒng)功能,可讀性好

12、,易于擴充?;竟δ苋?,系統(tǒng)可讀性好,易于維護、更新,安全性好。</p><p>  關鍵詞:VCD銷售;VCD出租;VCD管理</p><p><b>  1引 言</b></p><p>  隨著互聯(lián)網(wǎng)時代的到來,我們的生活方式發(fā)生了巨大的變化。利用計算機能夠幫助我們解決各種問題。各種的應用軟件層出不窮。人們對計算機智能化的要求越來越高

13、,許多傳統(tǒng)的手工管理逐漸被計算機系統(tǒng)所代替。</p><p>  人們的生活質(zhì)量的要求越來越高,對生活中的娛樂方式也更加多樣化,已經(jīng)不再是很長的時間看一部很經(jīng)典的電影。在過去的VCD出租和銷售中都是依靠的商家的自己的手工的篩選和銷售。對大量的客服而言的商家是既費時又費力,對VCD的管理也不能做到相對的統(tǒng)一,有明確的分類。計算機的出現(xiàn),提供了一個很好的解決的方案,能夠通過相關的管理軟件對其進行統(tǒng)一的管理、銷售、租賃

14、等等商業(yè)活動。</p><p>  開發(fā)VCD零售/出租管理系統(tǒng)幫助商家提高效率,降低經(jīng)營成本,優(yōu)化資源配置,從而實現(xiàn)商品的最大利益化。</p><p><b>  2 需求分析階段</b></p><p><b>  2.1 引言</b></p><p>  進行系統(tǒng)設計,首先要對系統(tǒng)的現(xiàn)狀進行分

15、析。根據(jù)系統(tǒng)的目標、需求和功能,制定和選擇一個較好的系統(tǒng)方案,從而達到一個合理的優(yōu)化系統(tǒng)。如今又許多的VCD銷售商,最初購買的人數(shù)較少,手工管理還能應付,但是隨著VCD需求人數(shù)的增多,傳統(tǒng)的手工方式已遠遠不能滿足商家的需求,就需要新的銷售/出租系統(tǒng)去做。</p><p>  需求分析是在于要弄清用戶對開發(fā)的數(shù)據(jù)庫應用系統(tǒng)的確切要求。數(shù)據(jù)庫設計的第一步是明確數(shù)據(jù)庫的目的和如何使用,也就是說需要從數(shù)據(jù)庫中得到哪些信息

16、。明確目的之后,就可以確定您需要保存哪些主題的信息(表),以及每個主題需要保存哪些信息(表中字段)。</p><p>  在構造系統(tǒng)時,首先從需求出發(fā)構造數(shù)據(jù)庫表,然后再由數(shù)據(jù)庫表結合需求劃分系統(tǒng)功能模塊。這樣,就把一個大的系統(tǒng)分解成了幾個小系統(tǒng)。這里把系統(tǒng)的層次劃分為了四個部分:用戶信息管理,VCD信息管理,VCD銷售信息管理,VCD出租信息管理。能夠?qū)崿F(xiàn)以下功能:</p><p>  

17、新的用戶加入,用戶信息及時更新;</p><p> ?、?對于新入庫VCD,能夠及時更新VCD信息,便于用戶查詢;</p><p> ?、?能夠記錄用戶的銷售和出租信息;</p><p>  ④ 用戶、商家均能查詢相應的信息,方便交流;</p><p>  2.2 需求分析階段的目標與任務</p><p>  2.2

18、.1 處理對象</p><p>  用戶信息:用戶編號,用戶性別,用戶電話號碼,用戶身份證號碼</p><p>  VCD信息:VCD編號,VCD類型號,VCD片名,導演,主演,上市時間,庫存數(shù)量,格式</p><p>  VCD類型:VCD類型號,類型名</p><p>  VCD出租:出租編號,VCD編號,出租數(shù)量,出租時間,歸還時間,押

19、金,狀態(tài),用戶編號</p><p>  VCD銷售:VCD編號,用戶編號,銷售時間,銷售數(shù)量</p><p>  2.2.2 處理功能及要求</p><p>  1.能夠存儲一定數(shù)量的VCD信息,并方便有效的進行相應的VCD數(shù)據(jù)操作和管理,這主要包括:</p><p>  1) VCD信息的錄入、刪除及修改。</p><

20、p>  2) VCD信息的多關鍵字檢索查詢。</p><p>  3) VCD的出租、銷售管理。</p><p> ?。玻軌?qū)σ欢〝?shù)量的用戶進行相應的信息存儲與管理,這其中包括:</p><p>  1) 用戶信息的登記、刪除及修改。</p><p>  3) 用戶資料的統(tǒng)計與查詢。</p><p> 

21、 3.能夠提供一定的安全機制,提供數(shù)據(jù)信息授權訪問,防止隨意刪改、查詢。</p><p>  4.對查詢、統(tǒng)計的結果能夠列表顯示。</p><p>  2.2.3 安全性與完整性要求</p><p><b>  1) 安全性要求 </b></p><p>  系統(tǒng)安全性要求體現(xiàn)在數(shù)據(jù)庫安全性、信息安全性和系統(tǒng)平臺的安全性

22、等方面。安全性先通過視圖機制,不同的用戶只能訪問系統(tǒng)授權的視圖,這樣可提供系統(tǒng)數(shù)據(jù)一定程度上的安全性,再通過分配權限、設置權限級別來區(qū)別對待不同操作者對數(shù)據(jù)庫的操作來提高數(shù)據(jù)庫的安全性;系統(tǒng)平臺的安全性體現(xiàn)在操作系統(tǒng)的安全性、計算機系統(tǒng)的安全性和網(wǎng)絡體系的安全性等方面。</p><p><b>  2) 完整性要求</b></p><p>  系統(tǒng)完整性要求系統(tǒng)中數(shù)據(jù)

23、的正確性以及相容性??赏ㄟ^建立主、外鍵,使用check約束,或者通過使用觸發(fā)器和級聯(lián)更新。</p><p>  2.3 需求分析階段成果</p><p>  2.3.1 體會與收獲</p><p>  系統(tǒng)需求分析主要是通過自己對于VCD銷售與出租行業(yè)的了解,去咨詢一些VCD銷售商,以及通過互聯(lián)網(wǎng)進行一些調(diào)查,了解VCD銷售商在管理中的一些問題。由于沒有經(jīng)驗和時間的

24、不足,所以在做的過程中有許多問題,而又正值放假,所以只能自己通過互聯(lián)網(wǎng)去查詢,并通過數(shù)據(jù)流圖一步一步了解其中過程,最終完成了需求分析任務。 </p><p>  2.3.2 音像店VCD管理系統(tǒng)數(shù)據(jù)流圖</p><p><b>  頂層數(shù)據(jù)流圖:</b></p><p>  圖2.1 頂層數(shù)據(jù)流圖</p><p><

25、;b>  第二層數(shù)據(jù)流圖:</b></p><p>  圖2.2 第二層數(shù)據(jù)流圖</p><p>  2.3.4 音像店VCD管理系統(tǒng)數(shù)據(jù)字典</p><p><b>  a)數(shù)據(jù)項</b></p><p>  表1.1 數(shù)據(jù)項列表</p><p><b>  b)數(shù)據(jù)

26、結構:</b></p><p>  表1.2 數(shù)據(jù)結構列表</p><p><b>  3 概念設計階段</b></p><p><b>  3.1 引言</b></p><p>  系統(tǒng)開發(fā)的總體目標是實現(xiàn)VCD銷售商在VCD銷售/出租方面的自動化,減輕工作人員的工作量,方便工作人員對

27、它的操作,提高管理的質(zhì)量和水平,做到高效、智能化管理,從而達到提高VCD銷售/出租管理效率的目的。</p><p>  主要任務是對用戶信息、VCD信息、VCD出租信息、VCD銷售信息的基本信息的操作及外理。</p><p>  概念設計階段主要是將需求分析階段得到的用戶需求抽象為信息結構(概念模型)的過程,它是整個數(shù)據(jù)庫設計的關鍵。</p><p><b&g

28、t;  3.2 任務與目標</b></p><p> ?。?)選擇第二層數(shù)據(jù)流為切入點,通常選擇實際系統(tǒng)中的子系統(tǒng);</p><p> ?。?)設計生成初步分E-R圖,通過合并方法,做到各實體、屬性、聯(lián)系統(tǒng)一;</p><p> ?。?)生成全局E-R圖,通過消除沖突等方面。</p><p>  在本VCD銷售/出租管理系統(tǒng)中,從

29、第2層數(shù)據(jù)流程圖下手。分析數(shù)據(jù)流圖和數(shù)據(jù)字典,知道整個系統(tǒng)功能圍繞“用戶”和“VCD”的處理。根據(jù)實體與屬性間的兩條準則:生成各個分E-R圖:從而合并成總E-R圖:。</p><p><b>  3.3 階段結果</b></p><p>  (1)a.VCD信息與VCD類型之間的關系:</p><p>  圖3.1 分E-R圖</p>

30、;<p>  b.用戶與VCD信息出租之間的關系:</p><p>  圖3.2 分E-R圖</p><p>  c.用戶與VCD信息銷售之間的關系:</p><p>  圖3.3 分E-R圖</p><p><b> ?。?)基本E-R圖</b></p><p>  圖3,.4 總

31、E-R圖</p><p>  E-R圖的各實體屬性如下所示:</p><p>  用戶:User(UserID, UserSex, UserTel, UserNum )</p><p>  VCD信息:VCD(Vid, Vtype, Vname, Vdirector, Vact, Vdata, Vamount, Vform)</p><p>

32、  VCD類型:Type(Vtype, Tname)</p><p>  VCD出租:Hire(Vid, UserID,Hid, Hamount, Htime,Hre, Hmoney, Hstate)</p><p>  VCD銷售:Sale(UserID, Vid, Stime, Smount);</p><p><b>  4 邏輯結構設計</b

33、></p><p>  4.1 邏輯設計的任務和目標</p><p>  以上的概念設計階段是獨立于任何一種數(shù)據(jù)模型的,但是邏輯設計階段就與選用的DBMS產(chǎn)品發(fā)生關系了,系統(tǒng)邏輯設計的任務就是將概念設計階段設計好的基本E-R圖轉換為選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結構。具體內(nèi)容包括數(shù)據(jù)組織(將E-R圖轉換成關系模型、模型優(yōu)化、數(shù)據(jù)庫模式定義、用戶子模式設計)、數(shù)據(jù)處理(畫

34、出系統(tǒng)功能模塊圖)兩大任務。</p><p><b>  4.2 數(shù)據(jù)組織</b></p><p>  4.2.1 將E-R圖轉換為關系模式</p><p>  實體型轉換為關系模式。實體的屬性就是關系的屬性,實體的碼就是關系的碼。對于實體間的聯(lián)系則有以下不同的情況:一個m:n聯(lián)系轉換為一個關系模式。與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬

35、性均轉換為關系的屬性,而關系的碼為各實體碼的組合。</p><p>  一個1:n聯(lián)系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模式合并。如果轉換為一個獨立的關系模式,則與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉換為關系的屬性,而關系的碼為n端實體的碼。 一個1:1聯(lián)系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并。三個或三個以上實體間的一個多元聯(lián)系可以轉換為一個關系模式。

36、與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉換為關系的屬性,而關系的碼為各實體碼的組合</p><p>  具體的基本E-R圖向關系模型的轉化如下:</p><p>  用戶:User(UserID, UserSex, UserTel, UserNum )</p><p>  VCD信息:VCD(Vid, Vtype, Vname, Vdirector, Va

37、ct, Vdata, Vamount, Vform)</p><p>  VCD類型:Type(Vtype, Tname)</p><p>  VCD出租:Hire(Vid , UserID, Hid, Hamount, Htime,Hre, Hmoney, Hstate)</p><p>  VCD銷售:Sale(UserID, Vid, Stime, Smoun

38、t);</p><p>  4.2.2 模式優(yōu)化</p><p>  關系模式User,VCD,Type,Hire,Sale 既不存在非主屬性對主屬性的部分函數(shù)依賴,也不存在傳遞函數(shù)依賴,已經(jīng)達到了3NF。</p><p>  4.2.3 數(shù)據(jù)庫模式定義</p><p><b>  4.3 數(shù)據(jù)處理</b></p&

39、gt;<p><b>  系統(tǒng)功能模塊圖:</b></p><p>  圖4.1 系統(tǒng)功能模塊</p><p><b>  5 物理結構設計</b></p><p>  5.1物理設計階段的目標與任務</p><p>  數(shù)據(jù)庫的物理設計就是為邏輯數(shù)據(jù)模型選取一個最合適應用要求的物理結

40、構的過程,在這個階段中要完成兩大任務:</p><p>  (1)確定數(shù)據(jù)庫的物理結構,在關系數(shù)據(jù)庫中主要是存取方法和存儲結構;</p><p>  (2)對物理結構進行評價,評價的重點是時間和空間效率。</p><p><b>  5.2數(shù)據(jù)存儲方面</b></p><p>  為數(shù)據(jù)庫中各基本表建立的索引如下:<

41、;/p><p>  由于基本表User,VCD的主碼UserID,Vid經(jīng)常在查詢條件和連接操作的連接條件中出現(xiàn),且它們的值唯一,在兩個屬性上建立唯一性索引;</p><p>  由于基本表VCD的屬性Vname,Type的屬性Tname經(jīng)常在查詢條件中出現(xiàn)在兩個屬性上建立聚簇索引;</p><p><b>  6 數(shù)據(jù)庫實施階段</b></

42、p><p>  6.1建立數(shù)據(jù)庫、數(shù)據(jù)表、視圖、索引</p><p>  6.1.1 建立數(shù)據(jù)庫</p><p>  Create database ManagerVCD;</p><p>  6.1.2 建立數(shù)據(jù)表</p><p><b> ?。?)用戶信息表:</b></p><

43、;p>  Create table User(KM </p><p>  UserID char(10) primary key,</p><p>  UserSex char(2) not null,</p><p>  UserTel char(11) not null,</p><p>  UserNum char(18) not

44、 null,</p><p><b>  );</b></p><p><b> ?。?)VCD信息表</b></p><p>  Create table VCD(</p><p>  Vid char(10) primary key,</p><p>  Vname ch

45、ar(30) not null,</p><p>  Vtype char(20) not null,</p><p>  Vdirector char(20),</p><p>  Vact char(20),</p><p>  Vdate date,</p><p>  Vamount int not null,

46、</p><p>  Vform char(5) not null,</p><p><b>  )</b></p><p><b> ?。?)VCD類型表</b></p><p>  Create table Type(</p><p>  Vtype char(20)

47、primary key;</p><p>  Tname char(20) not null,</p><p><b>  )</b></p><p><b> ?。?)VCD出租表</b></p><p>  Create table Hire(</p><p>  Hid

48、 char(5) primary key,</p><p>  Vid char(10) not null,</p><p>  Hamount char(5),</p><p>  Htime date,</p><p><b>  Hre date,</b></p><p>  Hmoney

49、int,</p><p>  Hstate char(2) not null,</p><p>  UserID char(9) not null,</p><p><b>  )</b></p><p><b> ?。?)VCD銷售表</b></p><p>  Creat

50、e table Sale(</p><p>  UserID char(9) primary key,</p><p>  Vid char(10) primary key,</p><p>  Samount char(5) not null,</p><p>  Stime date,</p><p><b&

51、gt;  )</b></p><p>  外鍵約束通過MySQL語句進行添加(附錄2)。</p><p>  6.1.3 建立視圖</p><p> ?。?)建立用戶視圖:</p><p>  Create view user_view</p><p><b>  as</b><

52、/p><p>  Select * from User</p><p> ?。?)建立用戶查詢VCD視圖;</p><p>  Create view user_Query</p><p><b>  AS</b></p><p>  select VCD.Vid , Type.Tname , VCD

53、.Vname , VCD.Vamount</p><p>  from VCD,Type</p><p>  where VCD.Vtype = Type.Vtype;</p><p> ?。?)管理員查詢用戶視圖(a):</p><p>  Create View Manager_H</p><p><b>

54、;  As</b></p><p>  Select VCD.Vid , Hire.Hamount</p><p>  From VCD , Hire </p><p>  Where VCD.Vid = Hire.Vid</p><p> ?。?)管理員查詢用戶視圖(b):</p><p>  Creat

55、e View Manager_S</p><p><b>  As</b></p><p>  Select VCD.Vid , Sale.Samount</p><p>  From VCD , Sale</p><p>  Where VCD.Vid = Sale.Vid</p><p>  

56、6.1.4 建立索引</p><p>  Create unique index user_id on User(UserID)</p><p>  Create unique index vcd_id on VCD(Vid)</p><p>  Create cluster index VCD_index on VCD(Vname)</p><

57、p>  Create cluster index Type_index on Type(Tname)</p><p>  6.1.5 建立觸發(fā)器</p><p> ?。?)當刪除Hire表中的一條出租記錄時,觸發(fā)VCD表,更新相應記錄</p><p>  delimiter $</p><p>  create trigger t_vc

58、d_hire_delete</p><p>  after delete on hire</p><p>  for each row</p><p><b>  begin</b></p><p>  update vcd</p><p>  set vamount = vamount - ol

59、d.hamount</p><p>  where vcd.Vid = old.vid;</p><p><b>  end $</b></p><p>  delimiter ;</p><p> ?。?)當在Hire表中增加一條出租記錄時,觸發(fā)VCD,更新相應記錄</p><p>  deli

60、miter $</p><p>  create trigger t_vcd_hire_insert</p><p>  before insert on hire</p><p>  for each row</p><p><b>  begin</b></p><p>  update vc

61、d</p><p>  set vamount = vamount - new.hamount</p><p>  where vcd.Vid = new.vid;</p><p><b>  end $</b></p><p>  delimiter ;</p><p> ?。?)當更新Hire

62、表中的一條出租記錄,觸發(fā)VCD表,更新相應的記錄</p><p>  delimiter $</p><p>  create trigger t_vcd_hire_update</p><p>  after update on hire</p><p>  for each row</p><p><b>

63、;  begin</b></p><p>  update vcd</p><p>  set vamount = vamount - new.hamount</p><p>  where vcd.Vid = new.vid;</p><p><b>  end $</b></p><p

64、>  delimiter ;</p><p>  (4)當刪除Sale表中的一條銷售記錄時,觸發(fā)VCD表,更新相應的記錄</p><p>  delimiter $</p><p>  create trigger t_vcd_sale_delete</p><p>  after delete on sale</p>&

65、lt;p>  for each row</p><p><b>  begin</b></p><p>  update vcd</p><p>  set vamount = vamount - old.samount</p><p>  where vcd.Vid = old.vid;</p>&

66、lt;p><b>  end $</b></p><p>  delimiter ;</p><p>  (5)當在Sale表中增加一條銷售記錄時,觸發(fā)VCD表,更新相應的記錄</p><p>  delimiter $</p><p>  create trigger t_vcd_sale_insert</

67、p><p>  after insert on sale</p><p>  for each row</p><p><b>  begin</b></p><p>  update vcd</p><p>  set vamount = vamount - new.samount</p>

68、;<p>  where vcd.Vid = new.vid;</p><p><b>  end $</b></p><p>  delimiter ;</p><p>  (6)當Sale表更新一條銷售記錄時,觸發(fā)VCD表,更新相應的記錄</p><p>  delimiter $</p>

69、<p>  create trigger t_vcd_sale_update</p><p>  after update on sale</p><p>  for each row</p><p><b>  begin</b></p><p>  update vcd</p><p&

70、gt;  set vamount = vamount - new.samount</p><p>  where vcd.Vid = new.vid;</p><p><b>  end $</b></p><p>  delimiter ;</p><p><b>  6.2數(shù)據(jù)入庫</b><

71、;/p><p>  系統(tǒng)包括VCD用戶信息管理、VCD出租信息管理、VCD銷售信息管理、VCD信息管理等幾個功能模塊,共有5張基本表,直接用MySQL建立這5張基本表,并將數(shù)據(jù)導入到相應的基本表中。</p><p>  6.3創(chuàng)建各個功能的存儲過程</p><p>  系統(tǒng)共創(chuàng)建了12個存儲過程,具體列表如下:</p><p>  表3.1 創(chuàng)

72、建的存儲過程列表</p><p><b>  7.系統(tǒng)調(diào)試和測試</b></p><p>  對該圖書管理系統(tǒng)進行測試,驗證每個功能是否符合要求,具體的測試如下:</p><p> ?。?)通過視圖查看各個基本表和視圖中的數(shù)據(jù)(見附錄2)</p><p> ?。?)檢測各個存儲過程的功能:(見附錄2)</p>

73、<p><b>  8.實習心得</b></p><p>  這次課程設計使我對數(shù)據(jù)庫知識應用有了進一步認識,通過自己尋找各個資料,在紙上開始做需求分析,畫數(shù)據(jù)流圖,以及數(shù)據(jù)庫的概念、邏輯、物理結構設計,讓后邊編寫代碼和編寫文檔比以往更方便。做紙上的東西卻很麻煩,要做VCD系統(tǒng),還需要去了解商家如何去操作的,以及如何做才能更方便的滿足商家和用戶的需求。</p>&

74、lt;p>  通過這次課程設計我學到了許多東西,包括課堂上的,當然還有課后學到的,都是通過去圖書館閱讀和網(wǎng)上查閱。因為這次數(shù)據(jù)庫設計使用的是MySQL語言,和我們平時學到的SQL server有些區(qū)別,所以在設計過程中就會有趣多問題,比如某個語法不一樣,導致總是出現(xiàn)語法錯誤。就需要不多的去查閱網(wǎng)上的資料。</p><p>  但是,我進一步掌握了相關的MySQL語句方面的知識。知道我們課堂上的知識太少了,幾

75、乎知識講了方法和基本的語法。所以導致我總是認為建表就是查詢、增加、刪除、更新,再做課程設計之前都不知道視圖具體是用來干嘛的,觸發(fā)器、存儲過程、索引幾乎就是空白?,F(xiàn)在了解了建立這些的用處了,以及使用主鍵、外鍵約束。通過這些保證數(shù)據(jù)庫的完整性,并且更能方便不同權限的用戶的操作。為用戶提供方便。</p><p>  4 .總之,在整個課程設計的過程中,由于時間問題以及自身經(jīng)驗不足,所以這次做出來的東西存在許多問題。但是

76、,不可否認,我學到了更多的東西,包括系統(tǒng)的分析方式,知道前期的需求分析的重要性,這樣才能讓后邊的建表,建立觸發(fā)器之類的順利進行。</p><p>  附錄1 存儲過程定義</p><p>  1. User_insert的定義:</p><p>  delimiter $</p><p>  create procedure User_ins

77、ert (in id char(9),</p><p>  in sex char(2),</p><p>  in Tel char(11),</p><p>  in num char(18) )</p><p><b>  begin</b></p><p>  insert into u

78、ser( userid,usersex,usertel,usernum )</p><p>  values (id,sex,tel,num);</p><p><b>  end $</b></p><p>  delimiter ;</p><p>  2. Type_insert的定義:</p>&l

79、t;p>  delimiter $</p><p>  create procedure Type_insert (in type char(20),</p><p>  in name char(20) )</p><p><b>  begin</b></p><p>  insert into Type( V

80、type,Tname )</p><p>  values (type,name);</p><p><b>  end $</b></p><p>  delimiter ;</p><p>  3. VCD_insert的定義:</p><p>  delimiter $</p>

81、<p>  create procedure VCD_insert (in id char(10),</p><p>  in type char(20),</p><p>  in name char(30),</p><p>  in director char(20)</p><p>  in act char(20),&

82、lt;/p><p>  in date date,</p><p>  in amount int,</p><p>  in form char(5))</p><p><b>  begin</b></p><p>  insert into VCD( Vid,Vtype,Vname,Vdirec

83、tor,Vact,Vdate,Vamount,Vform )</p><p>  values (id,type,name,director,act,date,amount,form);</p><p><b>  end $</b></p><p>  delimiter ;</p><p>  4.User_dele

84、te的定義:</p><p>  delimiter $</p><p>  create procedure User_delete (in id char(9))</p><p><b>  begin</b></p><p><b>  delete</b></p><p&

85、gt;<b>  from user</b></p><p>  where user.userid = id;</p><p><b>  end $</b></p><p>  delimiter ;</p><p>  5.VCD_delete的定義:</p><p>

86、  delimiter $</p><p>  create procedure User_delete (in id char(10))</p><p><b>  begin</b></p><p><b>  delete</b></p><p><b>  from VCD<

87、/b></p><p>  where VCD.vid = id;</p><p><b>  end</b></p><p>  delimiter ;</p><p>  6.Type_delete的定義:</p><p>  delimiter $</p><p&g

88、t;  create procedure Type_delete (in type char(20))</p><p><b>  begin</b></p><p><b>  delete</b></p><p><b>  from Type</b></p><p>  

89、where Type.Vtype = type;</p><p><b>  end</b></p><p>  delimiter ;</p><p>  7. Query_User的定義</p><p>  delimiter $</p><p>  create procedure Quer

90、y_User( in id char(9) )</p><p><b>  begin</b></p><p><b>  select *</b></p><p><b>  from User</b></p><p>  where id = user.userid;<

91、;/p><p><b>  end $</b></p><p>  delimiter ;</p><p>  8. Query_User_All的定義:</p><p>  delimiter $</p><p>  create procedure Query_User_All( )</p&

92、gt;<p><b>  begin</b></p><p><b>  select *</b></p><p>  from User;</p><p><b>  end $</b></p><p>  delimiter ;</p><

93、p>  9. Query_User_S的定義:</p><p>  delimiter $</p><p>  create procedure Query_User_S (in id char(9))</p><p><b>  begin</b></p><p>  select user.userid,vcd

94、.Vname,sale.Samount</p><p>  from user,sale,vcd</p><p>  where id = user.userid </p><p>  and id = sale.UserID</p><p>  and vcd.Vid = sale.Vid;</p><p><

95、b>  end $</b></p><p>  delimiter ;</p><p>  10.Query_User_H的定義:</p><p>  delimiter $</p><p>  create procedure Query_User_H(in id char(9))</p><p>

96、<b>  begin</b></p><p>  select user.userid,vcd.Vname,Hire.Hamount</p><p>  from user,Hire,vcd</p><p>  where id = user.userid </p><p>  and id = Hire.UserID

97、</p><p>  and vcd.Vid = Hire.Vid;</p><p><b>  end $</b></p><p>  delimiter ;</p><p>  11. Hire_insert的定義:</p><p>  delimiter $</p><p

98、>  create procedure Hire_insert (in v_id char(10),</p><p>  in h_id char(5),</p><p>  in amount char(5),</p><p>  in time date,</p><p>  in re date,</p><

99、p>  in money int,</p><p>  in state char(2),</p><p>  in u_id char(9))</p><p><b>  begin</b></p><p>  insert into user( Hid,Vid,Hamount,Htime,Hre,Hmoney,

100、Hstate,UserID )</p><p>  values (v_id,h_id,amount,time,re,money,state,u_id);</p><p><b>  end $</b></p><p>  delimiter ;</p><p>  12.Sale_insert的定義:</p>

101、;<p>  delimiter $</p><p>  create procedure Sale_insert (in v_id char(10),</p><p>  in u_id char(9),</p><p>  in time date ,</p><p>  in amount char(5) )</p

102、><p><b>  begin</b></p><p>  insert into user( Vid,UserID,Stime,Samount )</p><p>  values (v_id,u_id,time,amount);</p><p><b>  end $</b></p>

103、<p>  delimiter ;</p><p>  附錄2 數(shù)據(jù)查看和存儲過程功能的驗證</p><p>  查看VCD表中的信息:</p><p>  查看Type(VCD類型)表中的信息:</p><p>  查看Hire(VCD出租)表中的信息:</p><p>  查看User(用戶信息)表中的

104、信息:</p><p>  查看Sale(VCD銷售)表中的信息:</p><p>  用戶查詢VCD視圖:</p><p><b>  管理員視圖a:</b></p><p><b>  管理員視圖b:</b></p><p><b>  2.存儲過程驗證:<

105、;/b></p><p>  a.在User表中插入一條記錄:</p><p>  b.從User表中刪除一條記錄:</p><p>  C.管理員查詢所有用戶信息:</p><p><b>  觸發(fā)器驗證:</b></p><p>  刪除Hire表中的一條記錄,觸發(fā)VCD表更新:<

106、/p><p>  其他驗證省略.(在數(shù)據(jù)庫測試中均通過)</p><p>  附錄3 所有的SQL運行語句</p><p>  Create database ManagerVCD;</p><p>  Create table User(</p><p>  UserID char(10) primary key,<

107、;/p><p>  UserSex char(2) not null,</p><p>  UserTel char(11) not null,</p><p>  UserNum char(18) not null</p><p><b>  )</b></p><p>  Create table

108、 VCD(</p><p>  Vid char(10) primary key,</p><p>  Vname char(30) not null,</p><p>  Vtype char(20) not null,</p><p>  Vdirector char(20),</p><p>  Vact cha

109、r(20),</p><p>  Vdate date,</p><p>  Vamount int not null,</p><p>  Vform char(5) not null</p><p><b>  )</b></p><p>  Create table Type(</p

110、><p>  Vtype char(20) primary key,</p><p>  Tname char(20) not null,</p><p><b>  )</b></p><p>  Create table Hire(</p><p>  Hid char(5) primary ke

111、y,</p><p>  Vid char(10) not null,</p><p>  Hamount char(5),</p><p>  Htime date,</p><p><b>  Hre date,</b></p><p>  Hmoney int,</p><

112、;p>  Hstate char(2) not null,</p><p>  UserID char(9) not null</p><p><b>  )</b></p><p>  Create table Sale(</p><p>  UserID char(9) primary key,</p&g

113、t;<p>  Vid char(10) primary key,</p><p>  Samount char(5) not null,</p><p>  Stime date</p><p><b>  )</b></p><p>  Create table admina(</p>&

114、lt;p>  Vid char(10) primary key,</p><p>  Samount char(5) not null,</p><p>  Hamount char(5) not null,</p><p><b>  )</b></p><p>  Create table adminb(<

115、;/p><p>  Ano char(20) primary key,</p><p>  Aname char(20) not null,</p><p>  Apwd char(20) not null,</p><p><b>  );</b></p><p>  alter table Hir

116、e</p><p>  add constraint fk_hire_userid foreign key User(UserID)</p><p>  alter table Hire</p><p>  add constraint fk_hire_vid foreign key VCD(Vid)</p><p>  alter tabl

117、e Sale</p><p>  add constraint fk_sale_userid foreign key User(UserID)</p><p>  alter table Sale</p><p>  add constraint fk_sale_vid foreign key VCD(Vid)</p><p>  alter

118、 table VCD</p><p>  add constraint fk_vcd_vtype foreign key Type(Vtype)</p><p>  Create view user_view</p><p><b>  as</b></p><p>  Select * from User</p&

119、gt;<p>  Create view user_Query</p><p><b>  AS</b></p><p>  select VCD.Vid , Type.Tname , VCD.Vname , VCD.Vamount</p><p>  from VCD,Type</p><p>  whe

120、re VCD.Vtype = Type.Vtype</p><p>  Create View Manager_H</p><p><b>  As</b></p><p>  Select VCD.Vid , Hire.Hamount</p><p>  From VCD , Hire </p><

121、p>  Where VCD.Vid = Hire.Vid</p><p>  Create View Manager_S</p><p><b>  As</b></p><p>  Select VCD.Vid , Sale.Samount</p><p>  From VCD , Sale</p>

122、<p>  Where VCD.Vid = Sale.Vid</p><p>  Create unique index user_id on User(UserID);</p><p>  Create unique index vcd_id on VCD(Vid);</p><p>  Create cluster index VCD_index o

123、n VCD(Vname);</p><p>  Create cluster index Type_index on Type(Tname);</p><p>  delimiter $</p><p>  create trigger t_vcd_hire_delete</p><p>  after delete on hire</

124、p><p>  for each row</p><p><b>  begin</b></p><p>  update vcd</p><p>  set vamount = vamount - old.hamount</p><p>  where vcd.Vid = old.vid;</

125、p><p><b>  end $</b></p><p>  create trigger t_vcd_hire_insert</p><p>  before insert on hire</p><p>  for each row</p><p><b>  begin</b&

126、gt;</p><p>  update vcd</p><p>  set vamount = vamount - new.hamount</p><p>  where vcd.Vid = new.vid;</p><p><b>  end $</b></p><p>  create tr

127、igger t_vcd_hire_update</p><p>  after update on hire</p><p>  for each row</p><p><b>  begin</b></p><p>  update vcd</p><p>  set vamount = va

128、mount - new.hamount</p><p>  where vcd.Vid = new.vid;</p><p><b>  end $</b></p><p>  create trigger t_vcd_sale_delete</p><p>  after delete on sale</p>

129、;<p>  for each row</p><p><b>  begin</b></p><p>  update vcd</p><p>  set vamount = vamount - old.samount</p><p>  where vcd.Vid = old.vid;</p>

130、;<p><b>  end $</b></p><p>  create trigger t_vcd_sale_insert</p><p>  after insert on sale</p><p>  for each row</p><p><b>  begin</b>&l

溫馨提示

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

最新文檔

評論

0/150

提交評論