數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告_第1頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告_第2頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告_第3頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一、設(shè)計(jì)的目標(biāo)與要求1、課程設(shè)計(jì)目的:熟悉大型數(shù)據(jù)庫(kù)管理系統(tǒng)的結(jié)構(gòu)與組成;熟悉數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)方法和開(kāi)發(fā)過(guò)程;掌握一種大型數(shù)據(jù)庫(kù)管理系統(tǒng)(DM5、ORACLE或SQL SERVER)的應(yīng)用技術(shù)和 開(kāi)發(fā)工具的使用;熟悉數(shù)據(jù)庫(kù)設(shè)汁工具的使用;熟悉數(shù)據(jù)庫(kù)安全的相關(guān)知識(shí)和技術(shù);熟悉數(shù)據(jù)庫(kù)系統(tǒng)的管理和維護(hù)。2、課程設(shè)計(jì)要求:在課程設(shè)計(jì)指導(dǎo)老師的指導(dǎo)下,選定一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的題口,完成數(shù) 據(jù)庫(kù)的設(shè)計(jì)和應(yīng)用系統(tǒng)設(shè)計(jì),并提交相應(yīng)文檔。數(shù)據(jù)庫(kù)管理系統(tǒng)僅限D(zhuǎn)M5、Oracle以及MS SQL Server:開(kāi)發(fā)工具限PowerBuilder Delphi> C卄、JAVA、. NET平臺(tái)或其它動(dòng)態(tài) 網(wǎng)

2、頁(yè)開(kāi)發(fā)工具;系統(tǒng)采用客戶/服務(wù)器(C/S)結(jié)構(gòu)或?yàn)g覽器/服務(wù)器(B/S)結(jié)構(gòu)實(shí)現(xiàn)。系統(tǒng)應(yīng)嚴(yán)格遵照題目要求進(jìn)行設(shè)訃,可在其基礎(chǔ)上進(jìn)一步細(xì)化完善,但不 得違背,原則上不額外增加與要求無(wú)關(guān)的功能。系統(tǒng)中應(yīng)適當(dāng)體現(xiàn)下列技術(shù)的應(yīng)用:存儲(chǔ)過(guò)程,觸發(fā)器,索引。提交系統(tǒng)的源碼及文檔。二、設(shè)計(jì)的應(yīng)用背景本系統(tǒng)是一個(gè)超市收銀系統(tǒng)。顧名思義,本系統(tǒng)用來(lái)管理和更新超市日常交 易數(shù)據(jù),如收銀員的管理,收銀員的匸作記錄,日常交易記錄,顧客信息管理,商 品信息管理,等等,所有的數(shù)據(jù)存儲(chǔ)在達(dá)夢(mèng)數(shù)據(jù)庫(kù)的system庫(kù)中。本系統(tǒng)實(shí)現(xiàn)的主要功能為:1、收銀:收銀員輸入顧客的會(huì)員卡卡號(hào)(若有卡)、所購(gòu)商品的貨號(hào)等信 息,系統(tǒng)根據(jù)這些

3、信息獲取相應(yīng)的價(jià)格信息并計(jì)算應(yīng)收取的總金額。完成收銀后, 記錄交易信息,修改有關(guān)種類商品的剩余量以及該持卡顧客的消費(fèi)情況。2、發(fā)卡:顧客可交納一定的費(fèi)用(如50元)辦理一張會(huì)員卡,以后在該商 場(chǎng)購(gòu)物可憑卡享受9折優(yōu)惠。如果一個(gè)未持卡顧客一次購(gòu)物滿1000元,可為其免 費(fèi)發(fā)放一張會(huì)員卡,每張卡的優(yōu)惠期為一年,一年內(nèi)消費(fèi)達(dá)到一定金額的可繼續(xù)享 受下一年的優(yōu)惠。3、款項(xiàng)盤存:收銀員下班或交接班前對(duì)本收銀臺(tái)中本班次收取的款額進(jìn)行盤 存,明確責(zé)任。4、商品信息的錄入、修改、刪除和查詢等。5、收銀員身份及口令管理。三、數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程1、需求分析(1)、信息要求顧客信息:顧客編號(hào)(會(huì)員卡號(hào))、顧客姓名、顧客

4、性別、注冊(cè)時(shí)間、是 否到期、消費(fèi)金額。收銀員信息:收銀員編號(hào)、收銀員姓名、收銀員性別、登錄名,密碼。商品信息:商品編號(hào)、商品名稱、單價(jià)、現(xiàn)有庫(kù)存。收銀信息:收銀員編號(hào)、收銀金額、登錄時(shí)間,注銷時(shí)間。交易信息:顧客編號(hào),商品編號(hào),交易時(shí)間,交易數(shù)量。(2) 、處理要求A、處理方式:聯(lián)機(jī)處理。B、處理時(shí)間要求:2S。C、處理功能:(I) 、添加新信息,修改現(xiàn)存信息,刪除無(wú)用信息,查詢信息。(II) 、計(jì)算一次交易的金額,如果是會(huì)員,就可以享受9折優(yōu)惠,如果非會(huì) 員消費(fèi)金額超過(guò)1000元,免費(fèi)為其發(fā)放一張為期一年的會(huì)員卡。(III) 、只有收銀員以正確的用戶名和密碼才能登錄本系統(tǒng)。(3) 、安全性和

5、完整性要求A、安全性要求:只有收銀員以正確的用戶名和密碼才能登錄本系統(tǒng),進(jìn)行相 應(yīng)操作。后臺(tái)服務(wù)器(達(dá)夢(mèng)數(shù)據(jù)庫(kù))會(huì)生成相應(yīng)的日志文件。B、完整性要求:(I) 實(shí)體完整性:如上信息要求一欄所示,黃色背景的為primary keyo(II) 參照完整性:收銀信息和交易信息中的收銀員編號(hào),顧客編號(hào)和商品編號(hào)均為前面的參照。(Ill)用戶定義完整性:如性別只能為“男'或“女',姓名不能為空,登錄名必須唯一,密碼必須六位以上,等等。2、概念設(shè)計(jì)根據(jù)需求分析得到的信息抽象為E-R模型如下:3. 邏輯設(shè)計(jì)根據(jù)以上分析,得到本系統(tǒng)的基本關(guān)系模式為:顧客(顧客編號(hào)、顧客姓名、顧客性別、注冊(cè)時(shí)間、

6、是否到期、消費(fèi)金 額)。create table CustomerCno char(9) primary key,Cname char(20),Csex char(2) check(Csex in('男','女'),Creg date,Cactive char (2) check(Cactive in('是','否'),Cconsumption decimal(8, 2);收銀員(收銀員編號(hào)、收銀員姓名、收銀員性別、登錄名,密碼)。create table Cashier(Cno char(9) primary key,Cname

7、 char(20) not null,Csex char(2) check(Csex in('男','女'),Clogname char (20) unique,Clogpass char (20)check (Clogpass like '好);商品(商品編號(hào)、商品名稱、單價(jià)、現(xiàn)有庫(kù)存)。create table GoodsGno char(9) primary key,Gname char(20) not null,Gprice decimal(5, 2),Gstorage smallint);收銀(收銀員編號(hào)、收銀金額、登錄時(shí)間,注銷時(shí)間)。cre

8、ate table Cashinfo( Cno char(9) not null,Crecv decimal(7, 2),CtimeOn timestamp(O),CtimeOff timestamp(O),foreign key(Cno) references Cashier(Cno);交易(顧客編號(hào),商品編號(hào),交易時(shí)間,交易數(shù)量)。create table Tradeinfo( Cno char(9),Gno char(9),Tquantity smallint,Ttime timestamp(0),-primary key( Cno, Gno),foreign key(Cno) refe

9、rences Customer(Cno),foreign key(Gno) references Goods (Gno);為了編程的方便,另外建立了兒個(gè)視圖如下:查詢收銀信息(收銀員編號(hào)、收銀員姓名、收銀金額、登錄時(shí)間,注銷時(shí) 間)查詢交易信息(顧客編號(hào),顧客姓名,商品編號(hào),商品名稱,交易時(shí)間, 交易數(shù)量) 四.應(yīng)用系統(tǒng)的設(shè)計(jì)過(guò)程1、系統(tǒng)模塊結(jié)構(gòu)圖超市收銀系統(tǒng)耦助登錄 管理收銀員信息管 理顧客佶息管理息管理交易佶 息管理收銀信息管理注銷、 退山 系統(tǒng)添加. 刪除、 修改. 查詢添加.修改、 査詢2、系統(tǒng)工作流程1)以收銀員的身份登錄(密碼為123456),如下圖:2)對(duì)收銀員信息,顧客信息,商

10、品信息做相應(yīng)操作,以收銀員信息為例:A、添加信息,如果出現(xiàn)非法的輸入,會(huì)有提示,并會(huì)返回該界面等待重新 輸入(如兩次密碼不同,編號(hào)已存在,性別是'男'女之外的其他,等等)。 如圖:B、刪除信息,輸入四個(gè)參數(shù)中任意的兒個(gè),系統(tǒng)會(huì)把滿足此參數(shù)組合的所有記錄刪除掉。如圖:C、修改信息,要輸入正確的編號(hào)。在需要修改的地方輸入新的參數(shù),不需要修改的地方保持空白。如圖:D、查詢信息,可以釆用條件查詢,方法同刪除。如圖:3)進(jìn)行交易。輸入商品編號(hào)和對(duì)應(yīng)的數(shù)量(最多5種商品), 輸入會(huì)員卡號(hào),否則不輸入。以會(huì)員為例,如下圖:如果是會(huì)員,輸入購(gòu)買信息判斷為會(huì)員訃算應(yīng)收金額此后,系統(tǒng)會(huì)根據(jù)交易的情

11、況,自動(dòng)彈出修改相應(yīng)數(shù)據(jù)(如顧客的消費(fèi)金 額,商品的庫(kù)存,交易信息等等)的對(duì)話框,其中,正確的修改數(shù)據(jù)已經(jīng)默認(rèn)的填 在了對(duì)話框中,收銀員只需點(diǎn)擊確定按鈕即可。4)注銷以后,會(huì)彈出重新登陸的對(duì)話框。退出直接退出本系統(tǒng)。3、關(guān)鍵技術(shù)和算法1)登錄對(duì)話框增加了 “記住用戶名”這一選項(xiàng)。實(shí)現(xiàn)算法為:將選項(xiàng)是否勾 選的狀態(tài)用一個(gè)bool變量表示,新建一個(gè)名為“user.dat”的文件。每次登陸 時(shí),讀取文件中的內(nèi)容到"用戶名”欄中。如果選擇了 '記住用戶名”,則將用戶 輸入的用戶名重新寫到user, dat文件中,否則寫入空。2)系統(tǒng)中使用了很多對(duì)話框,而且每個(gè)對(duì)話框都不相同。我采用了

12、復(fù)用對(duì)話 框的方式。實(shí)現(xiàn)方法為:定義狀態(tài)變量typedef enum stypeCASHIER_ADD, CASHIER_DELETE, CASHIER_EDIT, CASHIER.QUERY,CUSTOMER_ADD, CUSTOMER_DELETE, CUSTOMER_EDIT, CUSTOMER_QUERY,G00DS_ADD, GOODS_DELETE, GOODS_EDIT, GOODS_QUERY,CASHINFO_ADD, CASHINFO.QUERY,TRADE.ADD, TRADE_QUERYSTYPE;在OnlnitDialog()函數(shù)中,用switch-case語(yǔ)句來(lái)初始

13、化不同用途的對(duì)話 框。這樣,16個(gè)對(duì)話框只用1個(gè)對(duì)話框資源。3)為了能夠?qū)崟r(shí)更新系統(tǒng)中的時(shí)間(如交易時(shí)間,上班下班時(shí)間等等), create兒個(gè)觸發(fā)器用來(lái)獲得系統(tǒng)時(shí)間。/添加新會(huì)員的時(shí)候,自動(dòng)獲得系統(tǒng)時(shí)間作為注冊(cè)時(shí)間create trigger InsertCustomerbefore insert on Customerfor each rowbegin:new. Creg :二 curdateO ;end;/添加交易信息的時(shí)候,自動(dòng)獲得系統(tǒng)時(shí)間作為交易時(shí)間 create trigger Insert_Tradebefore insert on Tradeinfofor each rowbe

14、gin:new.Ttime := current_timestamp();end;一用戶登錄系統(tǒng)時(shí)插入新記錄create trigger Insert_CashinfoOnbefore insert on Cashinfofor each rowbegin:new.CtimeOn := current_timestamp();end;用戶更新Crecv時(shí)(logout)create trigger Insert_CashinfoOffbefore update on Cashinfofor each rowbeginif :old.CtimeOff is nullthen :new.Ctime

15、Off := current_timestamp();end if:end;為了查詢的方便,創(chuàng)建了 Query_Tradeinfo和Query_Cashinfo兩個(gè)視圖。create view Query_Cashinfo(Qcno, Qcname, Qcrecv, Qctimeon, Qctimeoff) asselect Cashinfo.Cno, Cname, Crecv, CtimeOn, CtimeOfffrom Cashinfo, Cashierwhere Cashinfo. Cno = CashierCno;create viewQuery_Tradeinfo(Qcno, Qcn

16、ame, Qgno, Qgname, Qgprice, Qttime, Qtquantity)select Tradeinfo. Cno, Cname, Tradeinfo. Gno, Gname, Gprice, Ttime,Tquantityfrom Tradeinfo, Customer, Goodswhere Tradeinfo.Cno = CustomerCno and Tradeinfo. Gno = GoodsGno;4)在交易的過(guò)程中,會(huì)彈出其他的對(duì)話框用來(lái)更新數(shù)據(jù)庫(kù),采用了重載消息 函數(shù)的方法,使得更新的數(shù)據(jù)能以參數(shù)的形式傳到對(duì)話框中。5)采用了動(dòng)態(tài)條件修改,刪除和査詢的方式

17、,實(shí)現(xiàn)方法是,在源程序中動(dòng)態(tài) 改變查詢的條件。以刪除收銀員為例:/ m_Cashier 是 CCashierRecordSet (從 CRecordSet 繼承,與 Cashier 表關(guān) 聯(lián))的對(duì)象如果輸入不為空if (m_strEditl GetLengthO)m Cashierm strFilter +二 ” and “;strFilter. Format("Cno = ' %s' ", m_strEditl);增加對(duì)應(yīng)的條件m_Cashier. m_strFilter += strFilter;bFirst 二 TRUE;if(m_strEdit2.

18、GetLength()if(bFirst)m Cashier, m strFilter += " andstrF訂ter. Fornidt C'Cname = ' %s" m_strEdit2); m_Cashierm_strFilter +二 strFilter;bFirst 二 TRUE;if(m_strEdit3 GetLength()m_Cashierm_strFilter +二 “ andstrFilter Format("Csex = ' %s" "、m_strEdit3);mCashierm_strF訂ter +二 strFilter;bFirst 二 TRUE;if(mstrEdit4. GetLength()辻(bFirst)m Cashier.m strFilter +二"and ”;strFilter. Format(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論