|
1. 課程設計目的 應用對數(shù)據(jù)庫系統(tǒng)概論的理論學習,通過上機實踐的方式將理論知識與實踐更好的結(jié)合起來,鞏固所學知識。 實踐和鞏固在課堂教學中學習的關于數(shù)據(jù)庫的有關知識,熟練掌握對于給定結(jié)構的數(shù)據(jù)庫的創(chuàng)建、基本操作、程序系統(tǒng)的建立和調(diào)試以及系統(tǒng)評價。 實踐和鞏固在課堂教學中學習的關于關系數(shù)據(jù)庫原理的有關知識和數(shù)據(jù)庫系統(tǒng)的建立方法,熟練掌握對于給定實際問題,為了建立一個關系數(shù)據(jù)庫貨物管理系統(tǒng),必須得經(jīng)過系統(tǒng)調(diào)研、需求分析、概念設計、邏輯設計、物理設計、系統(tǒng)調(diào)試、維護以及系統(tǒng)評價的一般過程,為畢業(yè)設計打下基礎。 2.設計方案論證 2.1問題提出 過去傳統(tǒng)的物資管理方式已經(jīng)不能滿足現(xiàn)代倉庫物資管理的的客觀要求,本課程設計就是利用SQL server數(shù)據(jù)庫開發(fā)一個倉庫物資管理系統(tǒng),它為倉庫管理人員提供供應商信息,物資信息,員工信息,客戶信息等的內(nèi)容,方便倉庫管理人員對物資的管理,以提高倉庫管理人員對物資管理工作的效率。 2.2可行性研究 2.2.1技術可行性 此課程設計均是利用SQL server 2005 企業(yè)版軟件調(diào)試出來的,所以只要操作系統(tǒng)在windowsXP之上的都可以實現(xiàn)SQL server 2005運行,此次所用的操作系統(tǒng)是:WindowsXP,內(nèi)存:2G,CPU:2.10GHZ,硬盤:250G,所以技術上是可行的。 2.2.2運行可行性 隨著社會的發(fā)展,基本上所有的具有一定數(shù)量數(shù)據(jù)的倉庫都開始使用計算機數(shù)據(jù)庫來做管理。當然幾乎所有倉庫也都已經(jīng)在使用計算機管理數(shù)據(jù)的機制,大大減少了倉儲物資管理的工作量。該課程設計要求設計一個倉庫物資管理的數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫中要求包含物資的基本信息,員工信息,貨物供應商信息。同時還要設計它們之間的關系,最后還要對一些數(shù)據(jù)進行查詢,如查詢物資的各種有關信息等。我們通過該課程設計,應該達到的目的是把數(shù)據(jù)庫理論知識更加的鞏固加深,加強動手能力與實踐能力,學以致用,與現(xiàn)實生活中的應用充分的結(jié)合起來。倉庫物資管理系統(tǒng)主要針對于日常物資信息的管理,它針對貨物日常發(fā)生的業(yè)務,分為了兩大類,即貨物提供商和貨物銷售商以及入庫和出庫的信息,用戶通過相應的模塊,對貨物的基本情況進行操作,對貨物庫存數(shù)量進行查詢,用戶通過簡單的操作即可輕松的管理物資。 2.3需求分析 2.3.1需求分析 要求本系統(tǒng)能夠投入實際的使用并且滿足基本的功能要求。要求具有較高的可靠性、安全性和易維護性,具有較高的可移植性。 本系統(tǒng)實現(xiàn)了以下的功能: 基本信息模塊:包括商品信息、員工信息、客戶信息、供應商信息四個子模塊 (1)倉庫管理模塊:倉庫編號、倉庫名稱、倉庫負責人。 (2)供應商管理模塊:包括供應商個人(企業(yè))信息、供應商供應貨物信息查詢兩個子模塊。 (3)客戶管理模塊:包括客戶個人(企業(yè))信息、訂貨信息查詢兩個子模塊。 (4)員工管理模塊:包括員工個人信息查詢、員工薪資查詢、員工值勤查詢?nèi)齻€子模塊。 (5)物資信息模塊:商品信息查詢、入庫登記查詢、出庫登記查詢、退貨查詢、庫存查詢五個個子模塊。 (6)報表管理:財務報表查詢、報表打印兩個子模塊。 (7)系統(tǒng)維護模塊:包括數(shù)據(jù)安全管理、操作員管理、權限設置三個模塊 2.3.2數(shù)據(jù)字典 (1)數(shù)據(jù)項名稱:供應商代碼 含義說明:惟一標識一個供應商 類型:字符型 長度:10 邏輯關系:不允許為空 (2)數(shù)據(jù)項名稱:商品代碼 類型:字符型 長度:16 邏輯關系:不允許為空 (3)數(shù)據(jù)項名稱:供應數(shù)量 類型:數(shù)值型 (4)數(shù)據(jù)項名稱:供應時間 類型:時間型 (5)數(shù)據(jù)項名稱:商品代碼 含義說明:惟一標識一個商品 類型:字符型 長度:6 邏輯關系:不允許為空 (6)數(shù)據(jù)項名稱:商品名稱 類型:字符型 長度:8 邏輯關系:不允許為空 (7)數(shù)據(jù)項名稱:商品種類代碼 類型:字符型 長度:10 邏輯關系:不允許為空 (8)數(shù)據(jù)項名稱:銷售數(shù)量 類型:數(shù)值型 邏輯關系:不允許為空 (9)數(shù)據(jù)項名稱:銷售價 類型:數(shù)值型 (10)數(shù)據(jù)項名稱:最低銷售價 類型:數(shù)值型 (11)數(shù)據(jù)項名稱:用戶所使用時間 類型:時間型 (12)數(shù)據(jù)項名稱:顧客代碼 含義說明:惟一標識一個顧客 類型:字符型 長度:10 邏輯關系:不允許為空 (13)數(shù)據(jù)項名稱:顧客名稱 類型:字符型 長度:16 邏輯關系:不允許為空 (14)數(shù)據(jù)項名稱:顧客聯(lián)系 類型:字符型 長度:12 (15)數(shù)據(jù)項名稱:顧客聯(lián)系電話 類型:字符型 長度:11 (16)數(shù)據(jù)項名稱:顧客所在城市 類型:字符型 長度:8 (17)數(shù)據(jù)項名稱:銷售總額 類型:數(shù)值 (18)數(shù)據(jù)項名稱:商品種類說明 類型:字符型 長度:10 (19)數(shù)據(jù)項名稱:員工編號 類型:字符型 長度:10 (20)數(shù)據(jù)項名稱:員工姓名 類型:字符型 長度:12 (21)數(shù)據(jù)項名稱:用戶名 類型:字符型 長度:6 (22)數(shù)據(jù)項名稱:密碼 類型:字符型 長度:10 邏輯關系:不允許為空 (23)數(shù)據(jù)項名稱:職務 類型:字符型 長度:10 (24)數(shù)據(jù)項名稱:員工查詢 類型:字符型 長度:4 (2)數(shù)據(jù)結(jié)構描述 ①數(shù)據(jù)流名稱:供應商信息 含義說明:說明了一個供應商有關信息 組成結(jié)構:提供產(chǎn)品資料,提供供應商個人(企業(yè))資料,記錄供應商品的信息。 ②數(shù)據(jù)流名稱:員工信息 含義說明:說明一個員工信息 組成結(jié)構:記錄入庫、出庫信息,記錄退貨信息,現(xiàn)金收支是指對進出帳目的記錄統(tǒng)計。 數(shù)據(jù)流名稱:倉庫管理員信息 含義說明:說明倉庫管理員信息 組成結(jié)構:管理員地址,電話,姓名。 2.4 概念結(jié)構設計 2.4.1概念結(jié)構設計的方法 概念設計階段采用自底向上的方法,即自頂向下的進行需求分析,然后再自底向上的進行概念結(jié)構設計。對已經(jīng)細化到無法再分的階段逐步集成在一起,最終合成一個全局概念模式。 2.4.2概念結(jié)構設計的步驟 數(shù)據(jù)庫的設計是指對一個給定的應用環(huán)境,構造數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應用系統(tǒng),滿足各種用戶需求。作為信息資源開發(fā)、管理和服務的一種有效的手段,數(shù)據(jù)庫技術的應用已越來越廣泛,從小型的單項事務處理系統(tǒng)到大型的信息系統(tǒng)大都用先進的數(shù)據(jù)庫技術來保持系統(tǒng)數(shù)據(jù)的安全性、完整性和共享性。對一個實際的系統(tǒng)來說,數(shù)據(jù)庫表的設計在遵循數(shù)據(jù)庫理論的同時,必須能用開發(fā)工具來實現(xiàn)用戶在各方面提出的功能要求。 2.4.3數(shù)據(jù)抽象與局部視圖設計 在系統(tǒng)的數(shù)據(jù)庫設計中,先要對系統(tǒng)分析得到的數(shù)據(jù)字典中的數(shù)據(jù)存儲進行分析,分析各數(shù)據(jù)存儲之間的關系,然后才能得出系統(tǒng)的關系模式。可以采用E-R圖的方法來進行數(shù)據(jù)結(jié)構分析,E-R設計方法是一種通過E-R圖來描述現(xiàn)實世界信息結(jié)構的DB設計方法。E-R圖由實體、屬性、聯(lián)系三部分組成。  圖1. 倉庫負責人E-R圖  圖2. 供應商E-R圖  圖3.員工E-R圖  圖4. 商品銷售清單E-R圖  圖5. 客戶E-R圖  圖6. 商品E-R圖  圖7. 供應E-R圖:  圖8. 查詢E-R圖  圖9. 整體E-R圖 2.5邏輯結(jié)構設計 2.5.1 E-R圖向關系模型的轉(zhuǎn)換 (1)一個1:1聯(lián)系可轉(zhuǎn)換為一個獨立的關系模式,可以與任意一端對應的關系模式合并;(2)一個1:n聯(lián)系可以轉(zhuǎn)換為獨立的關系模式,也可以與n端對應的關系模式合并; (3)一個m:n聯(lián)系轉(zhuǎn)換為一個關系模式。與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關系的屬性,各實體的碼組成關系的碼或關系碼的一部分; 將實體轉(zhuǎn)化為關系模式。根據(jù)圖9所示的貨物管理的基本E-R圖,將其中的實體轉(zhuǎn)化為如下關系,關系的主碼用下劃線標出,外碼用橫線標出。由E-R圖轉(zhuǎn)換成關系模式: (1)商品信息(商品編號,商品名稱,商品類別代號,售價,進價,庫存量,供應商,有效期) 外碼:商品類別代號、 供應商 (2)員工信息(員工號,姓名,用戶名,密碼,職位,權限) (3)客戶信息(客戶號,客戶名稱,聯(lián)系人,聯(lián)系方式,客戶所在城市) (3)供應商信息(供應商號,供應商名稱,聯(lián)系人,聯(lián)系方式,供應商所在城市) (4)供應信息(供應商編號,商品編號,供應日期,供應數(shù)量) (5)查詢信息(客戶編號,商品編號,查詢?nèi)掌冢?/p> (6)商品銷售信息(銷售編碼,出庫日期,入庫日期,商品編碼,商品名稱,單價,入庫數(shù)量,出庫數(shù)量,供應商編碼,銷售員編碼) 外碼:銷售員編碼、商品編碼 2.5.2判斷每個表分別屬于第幾范式 在上述關系模式中,每一個分量都是不可分割的數(shù)據(jù)項所以都符合第一范式;而且前四個關系模式都是單個屬性作為碼,沒有任何非主屬性對碼部分函數(shù)依賴,在商品銷售信息內(nèi)雖由三個屬性作為碼,但也不存在非主性對碼的部分函數(shù)依賴,所以上都符合第二范式;商品信息、商品類別索引、客戶信息、供應商信息四個關系模式中都不存在非主屬性對碼的傳遞函數(shù)依賴,都屬于第三范式。 2.5.3數(shù)據(jù)庫的結(jié)構 表1.供應信息表 字段名稱 | 類 型 | 長 度 | 是否主鍵 | 說 明 | FirmCODE | vachar | 10 | 是 | 供應代碼 | merchandiseCode | vachar | 16 | 否 | 經(jīng)銷商代碼 | number | int |
| 否 | 供應數(shù)量 | FirmDate | datetime |
| 否 | 供應數(shù)據(jù) |
|
|
|
|
|
表2.商品信息表 字段名稱 | 類 型 | 長 度 | 是否主鍵 | 說 明 | merchandiseCode | varchar | 6 | 是 | 商品編碼 | merchandiseName | varchar | 8 | 否 | 商品名 | MerKindeCode | varchar | 10 | 否 | 商品種類代碼 | Price Money | int |
| 否 | 銷售價格 | ListPrice Money | int |
| 否 | 最低銷售價 | Number | int |
| 否 | 銷售數(shù)量 | FirmCode | int |
| 否 | 供應商代碼 | Userfulllife | datetime |
| 否 | 用戶使用時間 |
|
|
|
|
|
表3.顧客信息表 字段名稱 | 類 型 | 長 度 | 是否主鍵 | 說 明 | GuestCODE | varchar | 10 | 是 | 顧客代碼 | GuestNAME | varchar | 16 | 否 | 顧客名稱 | GLINK | varchar | 12 | 否 | 顧客聯(lián)系 | GLinkTell | varchar | 11 | 否 | 顧客電話 | CITY | varchar | 8 | 否 | 顧客所在城市 |
|
|
|
|
|
表4.商品銷售主表 字段名稱 | 類 型 | 長 度 | 是否主鍵 | 說 明 | SaleNo | varchar | 4 | 是 | 銷售編號 | WorkNo | varchar | 10 | 否 | 工作編號 | SaleDate | dtetime |
| 否 | 銷售時間 | Amount | mney |
| 否 | 銷售 |
|
|
|
|
|
表5.商品銷售子表 字段名稱 | 類 型 | 長 度 | 是否主鍵 | 說 明 | SaleNo | int |
| 是 | 銷售代碼 | merchandiseCode | varchar | 6 | 否 | 商品代碼 | merchandiseName | varchar | 32 | 否 | 商品名稱 | Price | money |
| 否 | 銷售價格 | number | int |
| 否 | 銷售數(shù)量 | Amount | money |
| 否 | 銷售總額 |
|
|
|
|
|
表6.商品索引信息表 字段名稱 | 類 型 | 長 度 | 是否主鍵 | 說 明 | MerKindeCode | char | 10 | 是 | 商品種類代碼 | KindExplanation | varchar | 10 | 否 | 種類說明 |
|
|
|
|
|
表7.查詢信息表 字段名稱 | 類 型 | 長 度 | 是否主鍵 | 說 明 | GuestCODE | varchar | 10 | 是 | 顧客代碼 | merchandiseCode | varchar | 16 | 否 | 商品代碼 |
|
|
|
|
|
2.5.4創(chuàng)建基本表 (1)創(chuàng)建品信息表 create table MerInfor (merchandiseCode VARCHAR (6) constraint M_PRIM PRIMARY KEY, merchandiseName varchar(8) NOT NULL, MerKindeCode varchar(10) , Price Money, ListPrice Money, Number Int, FirmCode char(10), Userfulllife Datetime ) (2)建顧客信息表 create table GueInfor (GuestCODE VARCHAR(10) NOT NULL, GuestNAME VARCHAR(16) NOT NULL, GLINK varchar(12), GLinkTell VARCHAR(11), CITY VARCHAR(8)) (3)建商品銷售主表 create table sellMain (SaleNo VARCHAR(4) NOT NULL, WorkNo VARCHAR(10) NOT NULL, SaleDate DateTime , Amount Money) (4)商品銷售子表 create table sellChild (SaleNo int constraint SC_PRIM PRIMARY KEY, merchandiseCode VARCHAR(6) NOT NULL, merchandiseName VARCHAR (32) NOT NULL, Price money, number int, Amount Money ) (5)商品類別索引信息 create table MerID (MerKindeCode CHAR(10)constraint MI_PRI PRIMARY KEY, KindExplanation VARCHAR(10) NOT NULL) (6)創(chuàng)建員工表 create table WorkInfor (WorkNo VARCHAR(10) NOT NULL, WNAME VARCHAR(12), UserRegName VARCHAR (6) NOT NULL, Password VARCHAR(10) NOT NULL , Position VARCHAR(10), WPower VARCHAR (4)) (7)創(chuàng)建供應信息表 create table FInfor (FirmCODE VARCHAR(10) NOT NULL, merchandiseCode VARCHAR(16) NOT NULL, number int, FirmDate DateTime) (8)創(chuàng)建查詢信息表 create table SearchInfor (GuestCODE VARCHAR(10) NOT NULL, merchandiseCode VARCHAR(16) NOT NULL, SearchDate DateTime) 為商品信息表中merchandiseCode屬性建立降序唯一索引merchandiseCode desc: CREATE UNIQUE INDEX merchandiseCode-index ON MerInfor(merchandiseCode) desc 為顧客信息表中GuestCODE屬性建立唯一索引: CREATE UNIQUE INDEX GuestCODE-index ON GueInfor(GuestCODE); 為銷售主表中saleno屬性建立降序唯一索引: CREATE UNIQUE INDEX sellMain-index ON sellMain (saleno); 為商品銷售子表中saleno屬性建立降序唯一索引: CREATE UNIQUE INDEX salechild-index ON salechild(saleno); 數(shù)據(jù)的載入是一個非常繁雜和重要的過程需要很大的工作量,可分為人工輸入與其它格式數(shù)據(jù)文件導入。該系統(tǒng)只是一個簡單的實驗系統(tǒng),所以采用手工輸入少量的數(shù)據(jù)可滿足實驗要求即可。分別給供應商基本信息表,銷售商基本信息表,倉庫基本信息表,管理員基本信息表和貨物基本信息表輸入數(shù)據(jù)。下面若干個表分別顯示了所要求的表基本信息息的錄入。  圖10.供應商表  圖11.顧客信息表  圖12.商品銷售主表  圖13.商品銷售子表  圖14.員工表  圖15.供應信息表  圖16.查詢信息表 2.5.5為系統(tǒng)創(chuàng)建視圖 (1)為商品類別表“MerID”建立一個視圖,該視圖由商品類別表的所有列構成 create view 商品類別(商品類別代碼,類別說明) as select* from MerID   圖17.MerID視圖 (2)由客戶信息表“GueInfor”建立一個視圖,該視圖由客戶信息表的所有列構成*/ create view 客戶信息(客戶編碼,客戶名稱,聯(lián)系人,聯(lián)系電話,所在城市) as select* from GueInfor   圖18.客戶信息表視圖 (3)查詢信息表的視圖   圖19. 查詢信息表的視圖 (4)供應信息視圖   圖20. 供應信息視圖 (5)商品銷售主表的視圖   圖21. 商品銷售主表的視圖 3.設計結(jié)果及分析 3.1 查詢與結(jié)果分析 (1) 從供應商表中查詢Firmcode為’015’的信息 Select * from FInfor where firmcode=’015’   圖22. 供應商表中查詢Firmcode為’015’的信息 (2) 從顧客信息表中查詢GLINK為’吳江’的所有信息 Select*from GueInfor where GLINK=’吳江’   圖23. 查詢顧客信息表中GLINK為’吳江’的所有信息 (3) 從商品銷售主表中查詢saleno為20的商品信息 Select*from sellMain where saleno=’20’   圖24. 查詢商品銷售主表中saleno為20的商品信息 (4)查詢員工信息表中WorkNo為075101的所有信息   圖25. 查詢員工信息表中WorkNo為075101的所有信息 (5)查詢員工信息表中UserRegName為zzm20的信息   圖26. 查詢員工信息表中UserRegName為zzm20的信息 (6)刪除顧客信息表中關于武將的所有信息。 Delete from GueInfor where GLINK=’吳楓’   圖27. 刪除顧客信息表中關于武將的所有信息 (7)建立一個顧客信息的存儲過程,并向其中插入數(shù)據(jù),并查詢結(jié)果。    圖28. 為一個顧客信息建立的存儲過程,并向其中插入數(shù)據(jù),并查詢結(jié)果 7.為MerID建立存儲過程并進行更新數(shù)據(jù),并進行查詢KindExplanation為家具類的所有信息。   圖29. MerID建立存儲過程并進行更新數(shù)據(jù),并進行查詢KindExplanation為家具類的所有信息 4.設計體會 本次課程設計調(diào)查了一些商品的銷售、供應等,根據(jù)其具體情況,設計倉儲物資管理系統(tǒng)。加深了對數(shù)據(jù)庫課程知識的理解。由于時間倉促,軟件還有很多不足之處,如:商品信息查詢部分不夠完善,軟件代碼交冗余、效率不高等等,都相關功能缺乏認識造成的。在今后的學習中我們會加強理論的實踐的結(jié)合,通過不斷摸索來彌補自己在軟件制作方面的差距。 在這一個星期的課程設計中,我們回顧了很多以前的東西,也發(fā)現(xiàn)了很多的問題,以前都沒遇見過的,收獲很大,在對不同的功能代碼是不一定可以完整的執(zhí)行的,不過大概都是一樣的,只有一些小的細節(jié)。我們覺得每一次的課程設計,都是讓我們對原有的知識從了解表面到深入本質(zhì),從個體學習到整體把握的跳躍,對新知識的汲取,更是讓我們把課本的知識應用到實際中,讓我們了解了我們的學習有什么用,能夠解決什么樣的問題,增加我們的自信和學習的動力。在學習過程中,我也能過上網(wǎng)查了不少資料,也看了一些別人設計的圖書館管理信息系統(tǒng)的設計報告,學以致用,自我創(chuàng)新,獨立完成了這份自己的報告,從中在學到用,從用又到學,不斷修改,系統(tǒng)更新。雖然不能達到完善系統(tǒng),但也做到了盡善盡美,加強理論學習對完善系統(tǒng)會有很多幫助,不管怎么說,對這次做的課程設計自己覺得還算滿意。 通過這次課程設計,我們進一步掌握了數(shù)據(jù)庫知識,也讓我們知道了學這門課的作用是什么,會應用于哪些,不會再迷茫。并且還拓展了一些知識,讓我們學到了很多課本上學不到的知識,也學會了遇到問題時,如何去解決它,攻克它,而不是以為依賴別人。這次課程設計,我們收獲很大。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|