小型超市管理系統(tǒng)(共56頁)_第1頁
小型超市管理系統(tǒng)(共56頁)_第2頁
小型超市管理系統(tǒng)(共56頁)_第3頁
小型超市管理系統(tǒng)(共56頁)_第4頁
小型超市管理系統(tǒng)(共56頁)_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上山西大學(xué) 計算機(jī)與信息技術(shù)學(xué)院數(shù)據(jù)庫系統(tǒng)課程設(shè)計論文題 目:小型超市管理系統(tǒng)數(shù)據(jù)庫設(shè)計組 長 徐振超 專 業(yè) 軟件工程 班 級 軟件工程三班 授課教師 白鶴翔 2014年5月14日小型超市管理系統(tǒng)數(shù)據(jù)庫設(shè)計學(xué)生姓名: 徐振超() 文 博()夏 雨()午澤鵬()荀毅杰()楊 浩()溫 博()(按照貢獻(xiàn)大小排序)授課教師:李茹、白鶴翔 內(nèi)容摘要 目前隨著小超市規(guī)模的發(fā)展不斷擴(kuò)大,商品數(shù)量急劇增加,有關(guān)商品的各種信息量也成倍增長。超市時時刻刻都需要對商品各種信息進(jìn)行統(tǒng)計分析。但是現(xiàn)階段不少超市對于商品的管理還是以人力運作為主,缺乏標(biāo)準(zhǔn)化的管理。所以故設(shè)計了本超市管理系統(tǒng)利用

2、數(shù)據(jù)庫對信息的統(tǒng)一、集中、規(guī)范化的管理以實現(xiàn)提高超市的管理和運營效率以節(jié)省管理和運營的成本、減輕人員工作強(qiáng)度,并支持簡單的決策輔助高層管理。首先對小型超市管理系統(tǒng)進(jìn)行需求分析,確定了研究分析對象,以及要實現(xiàn)的基本功能,將需求分析結(jié)果以系統(tǒng)流程圖、數(shù)據(jù)流圖、數(shù)據(jù)字典的方式表現(xiàn)出來,并對保持整個系統(tǒng)的安全性和完整性制訂了方案方法。接著在概念設(shè)計階段確定了總體的任務(wù)和目標(biāo),將抽象的用戶需求轉(zhuǎn)化為概念模型,分別對商品、員工、供貨商、生產(chǎn)商、會員進(jìn)行了詳細(xì)分析,同時統(tǒng)籌系統(tǒng),得到系統(tǒng)E-R圖,為邏輯設(shè)計階段奠定基礎(chǔ)。在邏輯設(shè)計階段根據(jù)概念設(shè)計階段得到的系統(tǒng)及分層E-R圖的類型和一些實際需求轉(zhuǎn)化為相應(yīng)的關(guān)

3、系模型,并通過分析關(guān)系模型中依賴關(guān)系,對關(guān)系模型進(jìn)行了優(yōu)化,確定了在數(shù)據(jù)庫中存儲所用的關(guān)系模式,定義了基本表和視圖模式,得到了數(shù)據(jù)庫的關(guān)系圖。在物理設(shè)計階段,確定了系統(tǒng)各個功能模塊并給出其活動圖與時序圖。根據(jù)以上得到的結(jié)果,構(gòu)建出符合要求的數(shù)據(jù)庫,系統(tǒng)也實現(xiàn)了以下主要功能:商品錄入、收銀業(yè)務(wù)、進(jìn)貨、銷售、庫存管理等。從而,實現(xiàn)對進(jìn)貨、銷售及員工信息等實現(xiàn)管理。系統(tǒng)采用C+語言,MFC項目實現(xiàn)了功能界面。關(guān)鍵字: 超市管理 商品 數(shù)據(jù)庫 系統(tǒng)設(shè)計目錄1 引言隨著社會的不斷發(fā)展,人們的生活水平越來越高,城市中的超市越來越多,有的超市還出現(xiàn)了分店,因此需要一個超市管理系統(tǒng)來進(jìn)行管理。經(jīng)過需求分析,現(xiàn)

4、在的超市含有很多功能,有商品管理、員工管理、會員管理、廠家管理等。為了完成功能,需要建立四個子數(shù)據(jù)庫:商品、員工、會員、廠家、密碼表,它們之間通過連接,訪問來完成功能。2 需求分析階段2.1 引言 如今,從我們的周圍可以發(fā)現(xiàn)有各種類型的超市,為人們提供了許多方便的服務(wù),為了進(jìn)一步改善,提出了超市的管理系統(tǒng),通過制定一系列服務(wù)流程,使管理人員能夠按時定量的完成服務(wù)任務(wù)、保證超市食品與物品的質(zhì)量安全,及時發(fā)現(xiàn)并添補缺少的商品,同時針對消費者,向其發(fā)送會員消費活動,不僅有效的實現(xiàn)了快捷服務(wù),而且?guī)砩鐣徒?jīng)濟(jì)效益。數(shù)據(jù)庫是長期存儲在計算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合,本系統(tǒng)在數(shù)據(jù)庫設(shè)計時根據(jù)

5、用戶提出的要求和超市的前臺、后臺的運行管理需求,分為如下數(shù)據(jù)模塊:顧客信息、管理人員信息、商品信息。2.2 需求分析階段的目標(biāo)與任務(wù)2.2.1處理對象(1)商品:商品編號、商品大小、商品名稱、生產(chǎn)日期、有效日期、生產(chǎn)地址、庫存量、商品價格、單位、商品類型;(2)員工:員工編號、性別、員工姓名、聯(lián)系方式、家庭住址、職位、身份證號、工資、入店時間、職工生日、年齡、注釋;(3)會員:會員編號、會員姓名、聯(lián)系方式、家庭住址、創(chuàng)建時期、積分、有效期;(4)供貨商:地址、電話號碼、郵政編碼、傳真、產(chǎn)品類型、庫存量;(5)密碼:用戶、密碼;首先從需求分析階段中,確定了幾項基本的處理對象,有可能這些處理對象不

6、完全,需要在后續(xù)的各個階段中不斷修改和完善。2.2.2處理功能及要求 2.2.1、零售前臺(POS)管理系統(tǒng),本系統(tǒng)必須具有以下功能:(1)、商品錄入:根據(jù)超巿業(yè)務(wù)特點制定相關(guān)功能,可以通過輸入唯一編號、掃描條形碼、商品名稱等來實現(xiàn)精確或模糊的商品掃描錄入。該掃描錄入方法可以充分保證各種電腦操作水平層次的人員均能準(zhǔn)確快速地進(jìn)行商品掃描錄入。(2)、收銀業(yè)務(wù):通過掃描條形碼或者直接輸入商品名稱(對于同類多件商品采用一次錄入加數(shù)量的方式)自動計算本次交易的總金額。在顧客付款后,自動計算找零,同時打印交易清單(包括交易的流水賬號、每類商品的商品名、數(shù)量、該類商品的總金額、交易的時間、負(fù)責(zé)本次收銀的員

7、工號)。如果顧客是本店會員并持有本人會員卡,則在交易前先掃描會員卡,并對所購物品全部實行95折優(yōu)惠,并將所購物品的總金額累計到該會員的總消費金額中。 會員卡的有效期限為一年,滿一年未續(xù)卡者,該會員卡將被注銷。(3)、安全性:OS登陸、退出、換班與操作鎖定等權(quán)限驗證保護(hù);斷電自動保護(hù)最大限度防止意外及惡意非法操作。(4)、獨立作業(yè):有的斷網(wǎng)收銀即在網(wǎng)絡(luò)服務(wù)器斷開或網(wǎng)絡(luò)不通的情況下,收銀機(jī)仍能正常作業(yè)。2.2.2、后臺管理系統(tǒng),本系統(tǒng)必須具備以下功能(1)、進(jìn)貨管理: 根據(jù)銷售情況及庫存情況,自動制定進(jìn)貨計劃(亦可手工制定修改),可以避免盲目進(jìn)貨造成商品積壓。 按計劃單有選擇性地進(jìn)行自動入庫登記。

8、 綜合查詢打印計劃進(jìn)貨與入庫記錄及金額。(2)、銷售管理: 商品正常銷售、促銷與限量、限期及禁止銷售控制。 綜合查詢各種銷售明細(xì)記錄、各地收銀員收銀記錄以及交結(jié)賬情況等。 按多種方式統(tǒng)計生成銷售排行榜,靈活察看和打印商品銷售日、月、年報表。(3)、庫存管理: 綜合查詢庫存明細(xì)記錄。 庫存狀態(tài)自動告警提示。如庫存過剩、少貨、缺貨等。軟件為您預(yù)警,避免庫存商品積壓損失和缺貨。 庫存自動盤點計算。(4)、人員管理: 員工、會員、供貨商、廠商等基本信息登記管理。 員工操作權(quán)限管理。 客戶銷售權(quán)限管理。在執(zhí)行這些功能的時候,建立幾張數(shù)據(jù)庫表,通過索引、提供權(quán)限等來實現(xiàn)。2.3 安全性與完整性2.3.1安

9、全性要求 系統(tǒng)安全性要求體現(xiàn)在數(shù)據(jù)庫安全性、信息安全性和系統(tǒng)平臺的安全性等方面。在本系統(tǒng)中主要有以下幾個方面:(1)權(quán)限問題在本系統(tǒng)中有三級管理系統(tǒng):員工、經(jīng)理、管理員。員工有簽到、結(jié)賬、商品庫存量、會員管理等;經(jīng)理有簽到、結(jié)賬、每日收入結(jié)算、商品庫存量、廠家的進(jìn)貨管理、會員管理等;管理員是系統(tǒng)的開發(fā)者,其擁有最高的管理權(quán)限,在系統(tǒng)發(fā)生錯誤是能夠進(jìn)行修理和維護(hù)。(2)員工、商品、會員管理超市中有很多商品,各中商品的管理,不要發(fā)生商品管理混亂,價格發(fā)生變化。員工、會員的信息不能隨便泄露,防止外部攻擊。2.3.2完整性要求系統(tǒng)完整性要求系統(tǒng)中數(shù)據(jù)的正確性以及相容性??赏ㄟ^建立主、外鍵,確定了每個表

10、中的主碼,若主碼唯一,允許對表插入或修改,若不唯一則拒絕,并且判斷主碼的屬性是否為空,只要有一個為空就拒絕插入或修改;與此同時設(shè)立了一個表與其他表相關(guān)聯(lián)的外碼,對于插入,修改等操作,涉及違約等可能破壞參照完整性的情況,可以進(jìn)行拒絕、級聯(lián)刪除、設(shè)為空值等操作;對于用戶完整性的要求,對屬性或元組使用check 約束,例如,在定義員工的年齡不能小于0,性別只能為男或女;有的值不能為空,若為空則沒有意義整個元組不完整,則需要表示Not null;通過定義實體完整性、參照完整性、用戶定義完整性使其滿足完整性要求。2.4需求分析階段成果2.4.1體會與收獲系統(tǒng)需求分析主要是通過對已有的超市管理系統(tǒng)的功能進(jìn)

11、行參考,了解各個超市的收銀系統(tǒng)是怎樣進(jìn)行工作的來進(jìn)行小票的打印,對超市里貨物管理和人事管理進(jìn)行了解,進(jìn)行表和視圖的建立,在這些功能的基礎(chǔ)上在繪制系統(tǒng)業(yè)務(wù)流程圖,遇到了很多的問題,有的問題沒法合理的表示出來,需要在過程中才會反應(yīng)出來,仍需要繼續(xù)改進(jìn),通過老師的幫助與指導(dǎo),和組員之間一遍一遍的分析和完善,才逐步把業(yè)務(wù)各個過程了解清楚,最終順利完成了需求分析階段的任務(wù)。2.4.2小型超市管理系統(tǒng)功能模塊圖1、 系統(tǒng)總體層次結(jié)構(gòu)(如圖(1)所示)2、 收銀業(yè)務(wù)功能模塊圖功能描述:收銀業(yè)務(wù)子系統(tǒng)是在顧客購買了商品以后,員工對顧客所賣的商品計算總價并打印小票(如圖(2)所示)。另外,在顧客中分會員和非會員

12、,會員享受95折優(yōu)惠,顧客購買商品流程圖如圖(3)所示 3、 銷售管理功能模塊圖功能描述:銷售管理子系統(tǒng)可以控制某商品是否允許銷售,是否進(jìn)行促銷,同時還可以查詢商品的屬性,自動生成年、月、日報表,同時還生成銷售排行榜,銷售管理子系統(tǒng)如圖(3)所示。4、 庫存管理子系統(tǒng)功能模塊圖功能描述:綜合查詢庫存明細(xì)記錄。 庫存狀態(tài)自動告警提示,如庫存過剩、少貨、缺貨等。軟件為您預(yù)警,避免庫存商品積壓損失和缺貨。 庫存自動盤點計算。(如圖(5)所示)5、 人員管理功能子系統(tǒng)功能描述:人員管理可以對員工、會員的錄入,調(diào)整進(jìn)行綜合管理,另外還有員工的權(quán)限管理2.4.3 小型超市管理系統(tǒng)數(shù)據(jù)流圖1. 小型超市管理

13、系統(tǒng)頂層數(shù)據(jù)流圖(如圖(7)所示)2. 小型超市管理系統(tǒng)第二層數(shù)據(jù)流圖(如圖(8)所示)3 超市管理系統(tǒng)第三層數(shù)據(jù)流圖3.1 銷售管理子系統(tǒng)3.2 采購管理子系統(tǒng) 圖(10)第三層采購管理子系統(tǒng) 3.3數(shù)據(jù)查詢子系統(tǒng)圖(11)第三層數(shù)據(jù)查詢子系統(tǒng) 3.4 人員管理子系統(tǒng)圖(12)第三層人員管理數(shù)據(jù)流圖2.4.4小型超市管理系統(tǒng)數(shù)據(jù)字典(1)數(shù)據(jù)項表1.1 數(shù)據(jù)項列表數(shù)據(jù)項編號數(shù)據(jù)項名數(shù)據(jù)項含義所屬基本表存儲結(jié)構(gòu)別名DL-1商品編號確定商品商品char(4)DL-2商品名稱名稱商品char(40)商品名DL-3商品大小銷售量商品char(4)DL-4價格商品char(4)DL-5單位商品char

14、(4)DL-6生產(chǎn)日期商品char(20)DL-7有效日期商品char(20)有效期DL-8生產(chǎn)地址商品char(20)DL-9類型商品所屬商品char(6)DL-10庫存量商品char(10)DL-11職工編號確定職工職工表char(4)DL-12職工姓名姓名職工表char(20)DL-13性別職工表char(2)DL-14職務(wù)職工表char(4)DL-15工資職工表intDL-16入店時間職工表char(10)DL-17職工生日職工表char(5)生日DL-18身份證號職工表char(18) DL-19聯(lián)系方式職工表char(11)DL-20家庭住址職工表char(40)DL-21年齡員工

15、年齡職工表char(3)DL-22會員號確定會員會員表char(4)DL-23姓名會員姓名會員表char(20)會員姓名DL-24創(chuàng)建日期會員表char(10)DL-25積分會員表intDL-26聯(lián)系電話會員表char(11)DL-27地址會員地址會員表char(40)DL-28有效期會員表char(10)會員時間DL-29供貨商編號供貨商表char(4)DL-30供貨類型供貨商表char(4)DL-31名稱供貨商表char(10)供貨商名稱DL-32聯(lián)系方式供貨商表char(4)DL-33地址供貨商表char(40)DL-34用戶名密碼表char(4)DL-35密碼用戶密碼密碼表char(1

16、0)(2)數(shù)據(jù)結(jié)構(gòu)表1.2 數(shù)據(jù)結(jié)構(gòu)列表數(shù)據(jù)結(jié)構(gòu)編號數(shù)據(jù)結(jié)構(gòu)名數(shù)據(jù)結(jié)構(gòu)含義組成DS-1商品表存儲商品信息商品編號、商品名稱、商品大小、單位、價格、生產(chǎn)日期、有效日期、生產(chǎn)地址、商品類型、庫存量DS-2員工表存儲員工信息員工編號、員工姓名、員工性別、職務(wù)、工資、家庭住址、聯(lián)系方式、身份證號、職工生日、入店時間年齡DS-3會員表存儲會員信息會員號、姓名、創(chuàng)建日期、有效期、積分、聯(lián)系電話、家庭地址DS-4供貨商表存儲供貨商信息供貨商編號、名稱、供貨類型、聯(lián)系方式、地址DS-5密碼表存儲員工密碼用戶名、密碼3 概念設(shè)計階段3.1 引言 系統(tǒng)設(shè)計的總體目標(biāo)是實現(xiàn)超市購物的系統(tǒng)化和自動化,提高購物的質(zhì)量和

17、水平,做到高效、智能化管理。 系統(tǒng)主要實現(xiàn)的功能是商品錄入、收銀業(yè)務(wù)、進(jìn)貨管理、小時管理、庫存管理、人員管理,同時還要實現(xiàn)獨立性作業(yè),對數(shù)據(jù)庫的安全要進(jìn)行防護(hù)。 概念設(shè)計階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過程,它是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵。3.2 目標(biāo)與任務(wù) (1)選擇中層數(shù)據(jù)流為切入點,通常選擇實際系統(tǒng)中的子系統(tǒng); (2)設(shè)計分E-R圖,即各子模塊的E-R圖; (3)生成初步E-R圖,通過合并方法,做到各子系統(tǒng)實體、屬性、聯(lián)系統(tǒng)一; (4)生成全局E-R圖,通過消除沖突等方面。本超市管理系統(tǒng),從銷售管理、人員管理、庫存管理三個子系統(tǒng)的流程圖下手。分析各個子系統(tǒng)的數(shù)

18、據(jù)流圖和數(shù)據(jù)字典,來畫出各自的E-R圖,根據(jù)實體與屬性間的兩條準(zhǔn)則:作為“屬性”,不能再具有需要描述的性質(zhì)?!皩傩浴辈荒芘c其他實體具有聯(lián)系。從分層的數(shù)據(jù)流圖可以分出三個子系統(tǒng),分別是人員管理子系統(tǒng)、貨物管理子系統(tǒng)、銷售管理子系統(tǒng)某一層的數(shù)據(jù)流圖中,每個局部應(yīng)用都對應(yīng)了一組數(shù)據(jù)流圖,局部應(yīng)用涉及的數(shù)據(jù)都已經(jīng)收集在數(shù)據(jù)字典中了?,F(xiàn)在將這些數(shù)據(jù)從數(shù)據(jù)字典中抽取出來,根據(jù)數(shù)據(jù)流圖,確定實體之間的聯(lián)系及其類型。根據(jù)數(shù)據(jù)流圖(9),畫出了銷售管理E-R圖;根據(jù)數(shù)據(jù)流圖(10),畫出了貨物管理E-R圖;根據(jù)數(shù)據(jù)流圖(12),畫出了人員管理E-R圖。對于三個分E-R圖,通過消除屬性沖突,例如將所有的編號都統(tǒng)一

19、為數(shù)值型,將所有的用戶名和密碼統(tǒng)一為字符型,將聯(lián)系方式統(tǒng)一為字符型;消除命名沖突,將同名異義的取不同的名稱,將異名同義的改為統(tǒng)一名稱;消除結(jié)構(gòu)沖突,將實體的屬性統(tǒng)一,對在不同E-R圖中相同實體的不同聯(lián)系進(jìn)行調(diào)整,得到了系統(tǒng)的E-R圖(圖3.4)。3.3 階段結(jié)果(1)根據(jù)不同的對象,從第二層數(shù)據(jù)流圖開始,畫出各自的E-R圖:(a) 銷售管理E-R圖: 圖(13) 銷售管理E-R圖(b) 貨物管理E-R圖:圖(14) 貨物管理E-R圖(c) 人員管理E-R圖圖(15)人員管理E-R圖(d) 合并E-R圖生成總的E-R圖圖(16)系統(tǒng)總體E-R圖(2)各ER圖各實體主要屬性如下所示 (a) 商品E

20、-R圖圖(17)商品屬性(b) 會員E-R圖圖(18)會員屬性(c) 供貨商E-R圖圖(19)供貨商屬性(d) 職工E-R圖圖(20)職工E-R圖(e) 密碼E-R圖圖(21)密碼表屬性4邏輯設(shè)計階段4.1邏輯設(shè)計的任務(wù)和目標(biāo) 以上的概念設(shè)計階段是獨立于任何一種數(shù)據(jù)模型的,但是邏輯設(shè)計階段就與選用的DBMS產(chǎn)品發(fā)生關(guān)系了,系統(tǒng)邏輯設(shè)計的任務(wù)就是將概念設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)換為選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。具體內(nèi)容包括數(shù)據(jù)組織(將E-R圖轉(zhuǎn)換成關(guān)系模型、模型優(yōu)化、數(shù)據(jù)庫模式定義、用戶子模式設(shè)計)、數(shù)據(jù)處理(畫出系統(tǒng)功能模塊圖)兩大任務(wù)。4.2數(shù)據(jù)組織4.2.1將E-R

21、圖轉(zhuǎn)換為關(guān)系模型 1、買家和商品的關(guān)系為(1:n) ,在這里我們建立有會員表,因為這些關(guān)系建立在一張表中會造成數(shù)據(jù)的冗余存儲,浪費空間。因此,商品信息和會員信息是放在兩張表中進(jìn)行存儲的,通過會員名來進(jìn)行關(guān)聯(lián)。 2、供貨商和商品的關(guān)系為(1:n),在建立商品表的時候,建立了供貨商來源,為了防止數(shù)據(jù)的冗余存儲,在建立供貨商表時沒有寫供貨商提供的商品,而是提供了供貨商提供的產(chǎn)品類型,通過兩張表來進(jìn)行關(guān)聯(lián),因此,兩張表分開建。 3、職工表單獨成表,與其他表沒有數(shù)據(jù)關(guān)聯(lián),通過職工號來提供主碼,對員工進(jìn)行查找和刪除。 4、密碼表為了方便對員工進(jìn)行管理,分開建表。 通過以上的描述得出了以下關(guān)系模型商品(商品

22、編號、商品名稱、商品大小、價格、單位、生產(chǎn)日期、有效日期、生產(chǎn)地址、商品類型、庫存量)職工(職工編號、職工姓名、年齡、性別、職務(wù)、工資、入店時間、職工生日、身份證號、聯(lián)系方式、家庭住址)會員(會員號、姓名、創(chuàng)建日期、積分、聯(lián)系電話、地址)供貨商(供貨商編號、供貨商名稱、供貨類型、聯(lián)系方式、地址)密碼(用戶名、密碼)(注:加粗的為主屬性、有波浪下滑線的為外碼,主屬性和外碼共同構(gòu)成主碼)4.2.2模型優(yōu)化根據(jù)以上得到的關(guān)系模型來進(jìn)行優(yōu)化: 商品信息:商品編號商品名稱,商品編號商品大小,商品編號價格,商品編號單位,商品編號生產(chǎn)日期,商品編號有效期,商品編號生產(chǎn)地址,商品編號商品類型,商品編號庫存量。

23、 該關(guān)系滿足BCNF,商品類型是供貨商表的外碼,該表的主碼只有商品編號,因此不需要進(jìn)行優(yōu)化。 職工信息:職工編號職工姓名,職工編號性別,職工編號職務(wù),職工編號工資,職工編號入店時間,職工編號職工生日,職工編號身份證號,職工編號聯(lián)系方式,職工編號家庭地址,職工編號年齡,身份證號職工編號,身份證號職工姓名,身份證號性別,身份證號職務(wù),身份證號工資,身份證號入店時間,身份證號職工生日,身份證號聯(lián)系方式,身份證號家庭地址,身份證號年齡,聯(lián)系方式職工編號,聯(lián)系方式職工姓名,聯(lián)系方式性別,聯(lián)系方式職務(wù),聯(lián)系方式工資,聯(lián)系方式入店時間,聯(lián)系方式職工生日,聯(lián)系方式身份證號,聯(lián)系方式家庭住址,聯(lián)系方式年齡。 該

24、關(guān)系滿足2NF,在身份證號和聯(lián)系方式中存在傳遞依賴,若把職工編號和身份證號建個表,職工編號和聯(lián)系方式建個表,將會滿足BCNF,但使用起來比較繁瑣,效率降低,一般只用職工編號去得到其他信息,所以在這里分表也沒有必要。 會員信息:會員號姓名,會員號創(chuàng)建日期,會員號積分,會員號聯(lián)系電話,會員號家庭地址,聯(lián)系方式會員號,聯(lián)系方式姓名,聯(lián)系方式創(chuàng)建日期,聯(lián)系方式積分,聯(lián)系方式家庭住址。 該關(guān)系滿足2NF,在聯(lián)系方式中存在傳遞依賴,若把會員號和聯(lián)系方式建個表,將會滿足BCNF,但使用起來比較繁瑣,效率降低,一般只用會員號去得到其他信息,所以在這里分表也沒有必要。 供貨商信息:供貨商編號供貨商名稱,供貨商編

25、號供貨類型,供貨商編號聯(lián)系方式,供貨商編號地址,聯(lián)系方式供貨商編號,聯(lián)系方式供貨商名稱,聯(lián)系方式供貨類型,聯(lián)系方式地址,供貨類型供貨商編號,供貨類型供貨商名稱,供貨類型聯(lián)系方式,供貨類型地址。 該關(guān)系滿足2NF,在供貨類型和聯(lián)系方式中存在傳遞依賴,若把供貨商編號和供貨類型,供貨商編號和聯(lián)系類型建個表,將會滿足BCNF,但使用起來比較繁瑣,效率降低,一般只用會員號去得到其他信息,所以在這里分表也沒有必要。 密碼信息:用戶名密碼 該關(guān)系滿足BCNF不需要優(yōu)化。4.2.3數(shù)據(jù)庫模式定義表2.1 商品表列名數(shù)據(jù)類型可否為空說明商品編號Charnot null商品號(PK)商品名稱Charnot nul

26、l商品名商品大小Charnot null大小價格Charnot null價格單位Charnot null單位生產(chǎn)日期 char生產(chǎn)日期有效期 Char 有效日期生產(chǎn)地址 Char地址類型 Char商品類型庫存量 IntNot null 庫存量表2.2 職工表列名數(shù)據(jù)類型可否為空說明職工編號Charnot null職工號(PK)職工姓名Charnot null姓名性別Charnot null性別工資intnot null工資入店時間Char入店時間職工生日 charNot null生日身份證號 Char Not null省份證號聯(lián)系方式char Not null 家庭住址Charnot null

27、家庭住址年齡Charnot null員工年齡表2.3 會員表列名數(shù)據(jù)類型可否為空說明 會員號Charnot null會員號(PK)姓名Charnot null姓名創(chuàng)建日期Charnot null日期積分Charnot null積分聯(lián)系方式Charnot null聯(lián)系方式地址 char地址表2.4 供貨商列名數(shù)據(jù)類型可否為空說明供貨商編號Charnot null商品編號(PK)供貨名稱Charnot null名稱供貨類型Charnot null類型聯(lián)系方式Charnot null電話地址Charnot null地址表2.5 密碼表列名數(shù)據(jù)類型可否為空說明用戶名IntNot null用戶名(PK)

28、密碼CharNot null密碼4.2.4 用戶子模式定義表2.6 用戶子模式定義編號用戶子模式(View)作用(共性:提供數(shù)據(jù)保密和安全保護(hù)機(jī)制)V1員工視圖便于員工查詢員工信息V2商品類型大便于查看商品類型為大的商品V3商品類型小便于查看商品類型為小的商品V4商品類型中便于查看商品類型為中的商品表2.7 員工視圖列名數(shù)據(jù)類型可否為空說明職工編號intnot null職工編號職工姓名Charnot null姓名性別Charnot null性別年齡Charnot null年齡職務(wù)Charnot null職務(wù)職工生日intnot null生日聯(lián)系方式Floatnot null聯(lián)系方式表2.8 商

29、品類型大視圖列名數(shù)據(jù)類型可否為空說明商品編號intnot null商品編號商品類型Charnot null商品類型商品名稱Charnot null商品名稱單位Charnot null單位價格Charnot null價格生產(chǎn)日期intnot null生產(chǎn)日期有效日期Floatnot null有效日期列名數(shù)據(jù)類型可否為空說明庫存量1intnot null庫存量表2.9 商品類型中視圖列名數(shù)據(jù)類型可否為空說明商品編號intnot null商品編號商品類型Charnot null商品類型商品名稱Charnot null商品名稱單位Charnot null單位價格Charnot null價格生產(chǎn)日期in

30、tnot null生產(chǎn)日期有效日期Floatnot null有效日期庫存量1intnot null庫存量表2.10 商品類型小視圖列名數(shù)據(jù)類型可否為空說明商品編號intnot null商品編號商品類型Charnot null商品類型商品名稱Charnot null商品名稱單位Charnot null單位價格Charnot null價格生產(chǎn)日期intnot null生產(chǎn)日期有效日期Floatnot null有效日期庫存量1intnot null庫存量4.3數(shù)據(jù)處理系統(tǒng)功能模塊圖5物理設(shè)計階段5.1物理設(shè)計階段的目標(biāo)與任務(wù) 數(shù)據(jù)庫的物理設(shè)計就是為邏輯數(shù)據(jù)模型選取一個最合適應(yīng)用要求的物理結(jié)構(gòu)的過程,

31、在這個階段中要完成兩大任務(wù):(1)確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要是存取方法和存儲結(jié)構(gòu);(2)對物理結(jié)構(gòu)進(jìn)行評價,評價的重點是時間和空間效率。5.2數(shù)據(jù)存儲方面 1.建立索引:因為每個基本表都不是獨立的一張表,至少與其他一張表有聯(lián)系,因為這些關(guān)系經(jīng)常要進(jìn)行一些連接操作。所以把多個連接關(guān)系的元組按照連接屬性值聚集存放,也就是之前定義的外碼。這樣就相當(dāng)于把多個關(guān)系按預(yù)連接的形式存放,在連接的時候會提高效率。為數(shù)據(jù)庫建立的聚積索引為: 2:標(biāo)識規(guī)范中標(biāo)識增量:因為有編號的表經(jīng)常要進(jìn)行刪除,插入,對這些表都有個屬性叫做“*編號”,對于這些編號增加標(biāo)識規(guī)范,讓DBMS控制這些編號,在系統(tǒng)設(shè)計時會

32、很方便操作。5.3系統(tǒng)功能模塊5.3.1商品的查詢、添加、修改、刪除模塊 將實現(xiàn)員工對商品的查詢、添加、刪除、修改所有功能(1) 商品查詢模塊圖(22)商品查詢(2) 商品添加模塊圖(23)商品添加模塊(3) 商品刪除模塊圖(24)商品刪除模塊 (4) 商品修改模塊圖(25)商品修改模塊5.3.2 員工的登入、查詢、顧客購買商品模塊 在模塊將實現(xiàn)員工的登入、查詢、顧客購買商品等所有功能(1) 員工登入模塊圖(26)員工登入 (2)員工查詢 圖(27) 員工查詢(2) 顧客購買商品圖(28)顧客購買商品5.3.3 會員的查詢、刪除、修改、添加 在模塊中實現(xiàn)會員的查詢、刪除、修改、添加(1) 會員

33、查詢模塊:圖(29)會員查詢(2) 會員刪除模塊圖(30)會員刪除 (3) 會員修改模塊圖(31)會員修改(4) 會員添加模塊圖(32)會員添加5.3.4 供貨商的查詢、刪除、修改、添加 本模塊實現(xiàn)供貨商的查詢、刪除、修改、添加(1) 供貨商的查詢圖(33)供貨商查詢(2) 供貨商的刪除圖(34)供貨商刪除(3) 供貨商的修改圖(35)供貨商的修改(4) 供貨商的添加圖(35)供貨商的添加5.3.5 職工的查詢、刪除、修改、添加、密碼修改 本模塊實現(xiàn)職工的查詢、刪除、修改、添加和密碼修改(1) 職工的查詢圖(36)職工的查詢(2) 職工的刪除圖(37)職工的刪除(3) 職工的修改圖(38)職工

34、的修改(4) 職工的添加圖(39)職工的添加(5) 職工密碼修改圖(40)職工密碼的修改6數(shù)據(jù)庫實施階段6.1建立數(shù)據(jù)庫、數(shù)據(jù)表、視圖、索引6.1.1 建立數(shù)據(jù)庫 create database 小型超市管理系統(tǒng)6.1.2 建立數(shù)據(jù)表(1)商品表的建立 create table商品( 商品編號 CHAR(10) PRIMARY KEY NOT NULL, 商品名稱 CHAR(20) NOT NULL, 商品大小 CHAR(4) NOT NULL CHECK (商品大小 IN (大,中,小), 價格 CHAR(10) NOT NULL, 單位 CHAR(10) NOT NULL, 商品類型 CH

35、AR(2) NOT NULL, 生產(chǎn)日期 CHAR(20), 有效日期 CHAR(20), 生產(chǎn)地址 CHAR(40), 庫存量 INT NOT NULL,); (2)職工表的建立 create table 職工 ( 職工編號 CHAR(10) PRIMARY KEY NOT NULL, 職工姓名 CHAR(20) NOT UNLL, 性別 CHAR(4) CHECK (性別 IN (男,女), 職務(wù) CHAR(4), 工資 INT, 入店時間 CHAR(10), 職工生日 CHAR(10), 身份證號 CHAR(20) NOT NULL, 聯(lián)系方式 CHAR(13) NOT NULL, 家庭

36、住址 CHAR(40), 年齡 INT,); (3)會員表的建立 create table 會員 ( 會員號 CHAR(10) PRIMARY KEY NOT NULL, 姓名 CHAR(10) NOT NULL, 創(chuàng)建日期 CHAR(10) NOT NULL, 積分 INT, 聯(lián)系電話 CHAR(16), 地址 CHAR(40), ); (4) 供貨商表的建立 Create table 供貨商 ( 供貨商編號 CHAR(10) PRIMARY KEY NOT NULL, 供貨商名稱 CHAR(10) NOT NULL, 供貨類型 CHAR(6) NOT NULL, 聯(lián)系方式 CHAR(15)

37、 NOT NULL, 地址 CHAR(40), ); (5) 密碼表的建立 Create table 密碼 ( 用戶 CHAR(10) PRIMARY KEY NOT NULL, 密碼 CHAR(10) NOT NULL, ); 6.1.3 建立視圖(1) 在員工查看信息的時候,有部分的信息是需要隱藏的,例如:工資、身份證號等,因此需要建立視圖來把部分信息隱藏,視圖定義如下: create view cz(bianhao,xingming,xingbie,nianling,zhiwu,shengri,dianhua)asselect 職工編號,職工姓名,性別,年齡,職務(wù),職工生日,聯(lián)系方式FR

38、OM zhigong (2)在建立員工表的時候需要產(chǎn)生缺貨提醒,因此在建表的時候,把商品按銷售量分成大、中、小三類來進(jìn)行區(qū)分商品大的視圖CREATE VIEW 商品大AS SELECT 商品編號,商品類型,商品名稱,單位,價格,生產(chǎn)日期,有效日期,生產(chǎn)地址,庫存量1FROM shangpinWHERE 商品大小='大'商品中的視圖CREATE VIEW 商品中AS SELECT 商品編號,商品類型,商品名稱,單位,價格,生產(chǎn)日期,有效日期,生產(chǎn)地址,庫存量1FROM shangpinWHERE 商品大小='中'商品小的代碼CREATE VIEW 商品小AS SE

39、LECT 商品編號,商品類型,商品名稱,單位,價格,生產(chǎn)日期,有效日期,生產(chǎn)地址,庫存量1FROM shangpinWHERE 商品大小='小'6.1.4 建立索引 (1)商品表索引的建立CREATE INDEX 商品索引ON shangpin(商品編號); (2)會員表索引的建立CREATE INDEX 會員索引ON huiyuan(會員號);6.1.5 建立觸發(fā)器 (1)在員工工資低于2000元的時候,系統(tǒng)自動把工資改為2000元,代碼實現(xiàn)如下: CREATE TRIGGER DpON zhigongAFTER INSERTAS IF(SELECT 工資 FROM INSE

40、RTED)<'2000'DECLARE P CHAR(10)SELECT P=INSERTED.職工編號FROM INSERTEDBEGINUPDATE zhigongSET 工資='2000'WHERE P=職工編號END6.2數(shù)據(jù)入庫 系統(tǒng)包括商品管理、會員管理、供貨商管理、員工管理、結(jié)賬等五大模塊,另外,還有一些小的功能模塊。一共涉及5張基本表,初始的幾個數(shù)據(jù)都是小組模擬編輯的數(shù)據(jù),所以直接在數(shù)據(jù)庫管理系統(tǒng)中,對各個表進(jìn)行數(shù)據(jù)錄入。后續(xù)數(shù)據(jù)在程序中動態(tài)增刪。7應(yīng)用設(shè)計(1)登陸窗口:只有在用戶名、密碼都正確的情況下,并且選擇身份與用戶名所在身份相符,

41、才能登錄相應(yīng)的窗口。(2)結(jié)賬:顧客在購買了東西了以后,在前臺進(jìn)行結(jié)賬,如果是會員的話享受95折優(yōu)惠。在結(jié)賬之后會打印一張小片。(3)商品管理:員工可以對商品進(jìn)行查詢、添加、刪除。 商品管理界面商品查詢商品修改商品添加(3)會員管理:員工可以對會員進(jìn)行修改、添加、刪除、查詢。 會員主界面查詢會員添加會員修改會員(4)供貨商管理:員工對供貨商進(jìn)行進(jìn)行修改、添加、刪除、查詢。 供貨商主界面供貨商查詢添加供貨商修改供貨商(5)員工管理:在超市中只有經(jīng)理可以對員工進(jìn)行添加、查詢、添加、同時進(jìn)行密碼管理。員工管理總界面查詢員工修改員工添加員工對員工的密碼進(jìn)行管理8系統(tǒng)調(diào)試和測試 對小型超市管理系統(tǒng)系統(tǒng)進(jìn)

42、行測試,驗證每個功能是否符合要求,具體的測試如下:(1)通過視圖查看各個基本表和視圖中的數(shù)據(jù)(見附錄2)(2)檢測各個觸發(fā)器的功能:(見附錄2)(3)對應(yīng)用程序的測試(通過界面操作和數(shù)據(jù)庫中各個表格檢查,確認(rèn)所有功能都能夠正確的操作數(shù)據(jù)庫,必須提供相應(yīng)的檢查步驟和結(jié)果,可以以附錄的形式提供)9遇到的問題以及解決方案(1)數(shù)據(jù)庫與MFC的數(shù)據(jù)類型轉(zhuǎn)化問題。 在用C+寫MFC程序的時候存在C+與數(shù)據(jù)庫的數(shù)據(jù)類型轉(zhuǎn)化問題,例如數(shù)據(jù)庫的TEXT、DATE、TIME等類型在C+中無法進(jìn)行轉(zhuǎn)化。因此在建表的時候都使用了CHAR或INT類型的數(shù)據(jù)類型。 (2)插入商品、刪除商品時,商品的編號是否能夠?qū)崿F(xiàn)自動

43、排序。 在超市進(jìn)行管理的時候會對員工、會員、供貨商、商品進(jìn)行刪除、插入操作,在刪除或插入的時候編號也會刪除,因此需要對數(shù)據(jù)庫表進(jìn)行重新排序,通過調(diào)試以后發(fā)現(xiàn),數(shù)據(jù)庫默認(rèn)對數(shù)據(jù)編號進(jìn)行由大到小進(jìn)行排序。 (3)修改商品時,商品的編號不能進(jìn)行改動。 在對商品、會員、供貨商、員工進(jìn)行改動的時候編號不允許進(jìn)行改動,因為,編號可以改動會照成數(shù)據(jù)庫的的混亂,因此不建議對數(shù)據(jù)庫里的表的編號進(jìn)行改動。 (4)在前臺輸入的時候,權(quán)限不對情況下,系統(tǒng)會彈出3119問題。 前臺輸入的時候員工有可能不知道數(shù)據(jù)庫設(shè)置了約束,如在我們測試的時候,做員工表,對數(shù)據(jù)庫的員工表的商品大小設(shè)置只能為大、中、小三種,因此當(dāng)輸入其他

44、字符的時候數(shù)據(jù)庫會報出3119問題。 (5)圖標(biāo)圖形化的時候,列表受到影響。 在程序做完的時候要進(jìn)行界面美化,在涉及到有表格的時候不能進(jìn)行美化,因為如果進(jìn)行美化會影響整個數(shù)據(jù)庫的表。因此,在美化的時候只對界面進(jìn)行了美化。 各個學(xué)生貢獻(xiàn)的說明 在做系統(tǒng)的時候每個組員都參與了數(shù)據(jù)庫的建設(shè),現(xiàn)把各成員的貢獻(xiàn)描述如下: 徐振超:建立了商品表,密碼表,并在商品表上建立了視圖,畫了軟件結(jié)構(gòu)圖,寫了數(shù)據(jù)字典。對文檔進(jìn)行了編寫,軟件界面布局。參與了模型優(yōu)化討論。 午澤鵬:建立了會員表,畫出了整個系統(tǒng)的功能模塊圖,參與了界面優(yōu)化。對關(guān)系模型優(yōu)化參與了討論 夏雨:建立了職工表,并在職工表上建立了觸發(fā)器,視圖。畫出

45、了系統(tǒng)的E-R圖及各實體的屬性,并把E-R圖轉(zhuǎn)化為關(guān)系模型。對關(guān)系模型優(yōu)化參與了討論。 楊浩:建立了供貨商,畫出了系統(tǒng)的分層數(shù)據(jù)流圖,參與了關(guān)系模型的優(yōu)化討論,界面優(yōu)化。對最后的文檔進(jìn)行了美化。文博:MFC連接數(shù)據(jù)庫。小型超市的界面編程,界面美化,寫了文檔的代碼部分。 荀毅杰:MFC連接數(shù)據(jù)庫。與文博一起進(jìn)行了界面的編程界面美化的過程。 溫博:對軟件進(jìn)行了需求分析,以及總結(jié)了軟件包括的功能,并且畫出了軟件流程圖,參與了界面的優(yōu)化和關(guān)系模型優(yōu)化的討論。 注:在每位同學(xué)每完成一個任務(wù)之后都會進(jìn)行小組討論,最后采取統(tǒng)一的一件。對不足的地方進(jìn)行修改,使系統(tǒng)做的更加完善。參考文獻(xiàn)數(shù)據(jù)庫方面:數(shù)據(jù)庫系統(tǒng)概

46、論 作者:王姍,薩師煊MFC可視化編程 作者:孫鑫附錄1 程序源代碼(嵌入式SQL某模塊讀與寫操作)我們對數(shù)據(jù)庫的訪問主要是采用了C+通過ADO方式訪問數(shù)據(jù)庫方式,訪問數(shù)據(jù)庫的C+代碼如下:我們建立了一個ADO類,通過類的調(diào)用來訪問SQL 2008數(shù)據(jù)庫。1.ADO類代碼:ADOsql.hclass ADOsql public:_ConnectionPtr m_pConnection;/添加一個指向Recordset對象的指針:_RecordsetPtr m_pRecordset;。ADOsql();virtual ADOsql();void OnInitADOConn();/ 執(zhí)行查詢_Re

47、cordsetPtr& GetRecordSet(_bstr_t bstrSQL);/ 執(zhí)行SQL語句,Insert Update _variant_tBOOL ExecuteSQL(_bstr_t bstrSQL);void ExitConnect();ADOsql.cppADOsql:ADOsql()ADOsql:ADOsql()void ADOsql:OnInitADOConn()/ 初始化OLE/COM庫環(huán)境:CoInitialize(NULL);try/ 創(chuàng)建Connection對象m_pConnection.CreateInstance("ADODB.Connec

48、tion");/ 設(shè)置連接字符串,必須是BSTR型或者_(dá)bstr_t類型_bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=商品;Data Source=."m_pConnection->Open(strConnect,"","",adModeUnknown);2.數(shù)據(jù)庫訪問,調(diào)用以及一些嵌入式SQL語句構(gòu)造類后連接數(shù)據(jù)庫代碼ADOsql mysql;my

49、sql.OnInitADOConn();數(shù)據(jù)庫數(shù)據(jù)查詢代碼舉例_variant_t RecordsAffected;_bstr_t xingming,xingbie,zhiwu,nianling,gongzi,rudianshijian,shenfenzhenghao,zhigongshengri,lianxi,zhuzhi,select;select="select * from zhigong where 職工編號='"+m_1+"'"mysql.m_pRecordset = mysql.m_pConnection->Execu

50、te(select,&RecordsAffected,adCmdText); xingming=mysql.m_pRecordset->GetCollect("職工姓名"); xingbie= mysql.m_pRecordset->GetCollect("性別"); zhiwu=mysql.m_pRecordset->GetCollect("職務(wù)"); nianling= mysql.m_pRecordset->GetCollect("年齡"); gongzi=mysql.m_pRecordset->GetCollect("工資"); rudianshijian= m

溫馨提示

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

評論

0/150

提交評論