汽車租賃綜合管理系統(tǒng)_第1頁(yè)
汽車租賃綜合管理系統(tǒng)_第2頁(yè)
汽車租賃綜合管理系統(tǒng)_第3頁(yè)
汽車租賃綜合管理系統(tǒng)_第4頁(yè)
汽車租賃綜合管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(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)介

長(zhǎng)沙學(xué)院課程設(shè)計(jì)說(shuō)明書題目汽車租賃管理系統(tǒng)學(xué)院計(jì)數(shù)院專業(yè)(班級(jí))軟件工程姓名學(xué)號(hào)指導(dǎo)老師楊剛、潘怡起止日期/5/29-/6/29

課程設(shè)計(jì)任務(wù)書課程名稱:數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)設(shè)計(jì)題目:汽車租賃管理系統(tǒng)。已知技術(shù)參數(shù)和設(shè)計(jì)要求:題目:汽車租賃管理系統(tǒng)某汽車租賃企業(yè)汽車租賃管理系統(tǒng)需要以下信息:工作人員信息包含:工號(hào)、姓名、性別、聯(lián)絡(luò)電話等。用戶信息包含:身份證號(hào)、姓名、性別、所在單位、聯(lián)絡(luò)電話等。車輛信息包含:車牌號(hào)、品牌、顏色、座位數(shù)、日租價(jià)格、日租超公里價(jià)格、月租價(jià)格、租賃狀態(tài)、購(gòu)入日期等。車輛類別信息包含:分類號(hào),庫(kù)存數(shù)。其業(yè)務(wù)規(guī)則描述以下:一個(gè)工作人員能夠?qū)芏噍v車輛進(jìn)行管理,一輛車也能夠被多個(gè)工作人員管理;一輛車只能屬于一個(gè)車輛類別,而一個(gè)車輛類別能夠包含多輛車;一個(gè)用戶能夠租多輛不一樣車。2、系統(tǒng)功效基礎(chǔ)要求:能夠?qū)崿F(xiàn)對(duì)車輛、租賃用戶查詢,能夠查詢汽車、用戶租賃歷史統(tǒng)計(jì)。能夠按類別統(tǒng)計(jì)汽車租賃金額和剩下庫(kù)存數(shù),能夠統(tǒng)計(jì)某十二個(gè)月紀(jì)用戶群體對(duì)某類汽車租賃喜好,能模擬用戶對(duì)汽車租借、歸還業(yè)務(wù)。各階段具體要求:1、需求分析階段定義數(shù)據(jù)項(xiàng)含義和取值定義目標(biāo)系統(tǒng)數(shù)據(jù)流2、概念結(jié)構(gòu)設(shè)計(jì)階段畫出實(shí)體模型E-R圖3、邏輯結(jié)構(gòu)設(shè)計(jì)階段將實(shí)體模型轉(zhuǎn)化為關(guān)系模型給出每個(gè)關(guān)系主關(guān)鍵字和函數(shù)依靠集分析你所設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)模式是否屬于3NF4、物理設(shè)計(jì)階段確定全部字段名稱、類型、寬度、小數(shù)位數(shù)及完整性約束確定數(shù)據(jù)庫(kù)及表名稱及其組成確定索引文件和索引關(guān)鍵字5、數(shù)據(jù)庫(kù)安全及維護(hù)設(shè)計(jì)階段設(shè)計(jì)一個(gè)適合數(shù)據(jù)庫(kù)安全策略(用戶身份認(rèn)證、訪問(wèn)權(quán)限、視圖)為了實(shí)現(xiàn)復(fù)雜數(shù)據(jù)完整性約束,設(shè)計(jì)合適觸發(fā)器設(shè)計(jì)一個(gè)適合數(shù)據(jù)庫(kù)備份策略6、實(shí)施階段要求全部操作必需在查詢分析器中用SQL語(yǔ)句或系統(tǒng)存放過(guò)程完成。設(shè)計(jì)工作量:(1)軟件設(shè)計(jì):完成問(wèn)題陳說(shuō)中所提到全部需求功效。(2)論文:要求撰寫不少于3000個(gè)文字電子文檔,具體說(shuō)明各階段具體要求。工作計(jì)劃:安排兩周時(shí)間進(jìn)行課程設(shè)計(jì),軟件開發(fā)步驟以下,第一周完成1~4,第二周完成5~8,論文同時(shí)進(jìn)行;1) 選定題目 2) 需求分析 3) 概念結(jié)構(gòu)設(shè)計(jì) 4) 邏輯結(jié)構(gòu)設(shè)計(jì) 5) 物理設(shè)計(jì) 6) 數(shù)據(jù)庫(kù)安全及維護(hù)設(shè)計(jì) 7) 數(shù)據(jù)庫(kù)上機(jī)實(shí)現(xiàn) 8) 答辯 計(jì)劃時(shí)間指導(dǎo)老師班級(jí)15~16周潘怡、楊剛15軟件1班15~16周潘怡、楊剛15軟件2班15~16周卓琳、田清龍15軟件3班15~16周卓琳、田清龍15軟件4班15~16周張肖霞、馬麗15軟件5班15~16周張肖霞、馬麗15軟件6班注意事項(xiàng)提交電子文檔長(zhǎng)沙學(xué)院課程設(shè)計(jì)任務(wù)書 (每學(xué)生1份)長(zhǎng)沙學(xué)院課程設(shè)計(jì)論文 (每學(xué)生1份)長(zhǎng)沙學(xué)院課程設(shè)計(jì)判定表 (每學(xué)生1份)指導(dǎo)老師署名:日期:教研室主任署名:日期:院長(zhǎng)署名:日期: 長(zhǎng)沙學(xué)院課程設(shè)計(jì)判定表姓名學(xué)號(hào)專業(yè)班級(jí)設(shè)計(jì)題目指導(dǎo)老師指導(dǎo)老師意見(jiàn):評(píng)定等級(jí):老師署名:日期:答辯小組意見(jiàn):評(píng)定等級(jí):答辯小組長(zhǎng)署名:日期:教研室意見(jiàn):教研室主任署名:日期:學(xué)院意見(jiàn):院長(zhǎng)署名:日期:說(shuō)明課程設(shè)計(jì)成績(jī)分“優(yōu)異”、“良好”、“及格”、“不及格”四類;目錄一、引言 71.1 編寫目標(biāo) 71.2 參考資料 7二、 需求規(guī)約 72.1業(yè)務(wù)描述 72.2需求分析 8三、 數(shù)據(jù)庫(kù)環(huán)境說(shuō)明 8四、 數(shù)據(jù)庫(kù)命名規(guī)則 83.1數(shù)據(jù)庫(kù)對(duì)象命名規(guī)則 83.2數(shù)據(jù)項(xiàng)編碼規(guī)則 9五、邏輯設(shè)計(jì) 105.1創(chuàng)建和數(shù)據(jù)庫(kù)相關(guān)那部分實(shí)體關(guān)系圖(ERD)、表及關(guān)系圖 105.2創(chuàng)建數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系模型 12六、 物理設(shè)計(jì) 126.1表匯總 126.2 存放過(guò)程 176.3觸發(fā)器 21七、安全性設(shè)計(jì) 287.1預(yù)防用戶直接操作數(shù)據(jù)庫(kù)方法 287.2角色和權(quán)限 28八、數(shù)據(jù)庫(kù)管理和維護(hù)說(shuō)明 29九、附錄:源代碼 30一、引言編寫目標(biāo)本文檔是汽車租賃系統(tǒng)設(shè)計(jì)文檔組成部分,編寫數(shù)據(jù)庫(kù)設(shè)計(jì)文檔目標(biāo)是:明確數(shù)據(jù)庫(kù)表名、字段名等數(shù)據(jù)信息,用來(lái)指導(dǎo)后期數(shù)據(jù)庫(kù)腳本開發(fā)。本文檔讀者對(duì)象是需求人員、系統(tǒng)設(shè)計(jì)人員、開發(fā)人員、測(cè)試人員。參考資料資料名稱作者文件編號(hào)、版本《數(shù)據(jù)庫(kù)系統(tǒng)概論》王珊、薩師煊5月第4版需求規(guī)約2.1業(yè)務(wù)描述2.1.1數(shù)據(jù)庫(kù)創(chuàng)建背景該數(shù)據(jù)庫(kù)建立于sqlserverr2,環(huán)境為windows7

系統(tǒng)名稱:汽車租賃管理系統(tǒng)。

系統(tǒng)開發(fā)者:小組組員

系統(tǒng)用戶:租車用戶和租賃企業(yè)工作人員。2.1.2數(shù)據(jù)庫(kù)系統(tǒng)要完成業(yè)務(wù)步驟及工作內(nèi)容首先完成需求分析,依據(jù)需求關(guān)系畫出ER-圖,并寫出關(guān)系模式。依據(jù)ER圖用SQLserver創(chuàng)建和數(shù)據(jù)庫(kù)相關(guān)表,視圖,存放過(guò)程和觸發(fā)器。系統(tǒng)功效要求基礎(chǔ)實(shí)現(xiàn)對(duì)車輛,租賃用戶查詢。能夠查詢用戶租賃歷史統(tǒng)計(jì)。能夠查看汽車價(jià)格、庫(kù)存,能夠查看汽車租借、歸還、和費(fèi)用。2.1.3揭示該數(shù)據(jù)庫(kù)資源需求和設(shè)計(jì)約束2.2需求分析2.2.1功效需求

車輛管理

關(guān)鍵是表示管理員能夠?qū)ψ赓U企業(yè)現(xiàn)有汽車具體信息進(jìn)行管理,修改汽車基礎(chǔ)信息,包含車牌號(hào)、汽車顏色、購(gòu)入日期、類別及租賃狀態(tài)等,也能夠添加新購(gòu)進(jìn)來(lái)汽車基礎(chǔ)信息,方便愈加快投入租賃市場(chǎng),方便用戶了解最新車輛信息和做出愈加好租賃選擇。(2)業(yè)務(wù)管理

關(guān)鍵提供對(duì)汽車日常業(yè)務(wù)進(jìn)行管理,如查詢指定汽車租賃狀態(tài),被租賃車車牌號(hào),所生成訂單號(hào),所租車種類,租車時(shí)間、歸還時(shí)間及租賃金額,查詢租車用戶基礎(chǔ)信息,方便于管理員愈加好管理車輛系統(tǒng),保障系統(tǒng)安全性。數(shù)據(jù)庫(kù)環(huán)境說(shuō)明數(shù)據(jù)庫(kù)實(shí)例數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)布署環(huán)境數(shù)據(jù)庫(kù)設(shè)計(jì)工具數(shù)據(jù)庫(kù)存放位置說(shuō)明汽車租賃Sqlserverr2Windows7Sqlserverr2MicrosoftofficevisioE:\sql\SQL實(shí)例用途說(shuō)明數(shù)據(jù)庫(kù)命名規(guī)則3.1數(shù)據(jù)庫(kù)對(duì)象命名規(guī)則:數(shù)據(jù)庫(kù)對(duì)象命名規(guī)則備注表英文命名比如:car汽車表存放過(guò)程proc_功效描述字符串比如:proc_car汽車查詢存放過(guò)程觸發(fā)器功效命名比如:delete_car刪除汽車視圖View_功效描述字符串比如:view_rent查看租借信息表3.2數(shù)據(jù)項(xiàng)編碼規(guī)則:數(shù)據(jù)項(xiàng)命名規(guī)則數(shù)據(jù)類型長(zhǎng)度范圍備注汽車編號(hào)所在地+字母號(hào)+數(shù)字Varchar類型10位租賃狀態(tài)TrueorfalseBit類型訂單號(hào)流水號(hào)Varchar類型10位用戶號(hào)字母+數(shù)字編號(hào)Varchar類型10位工作人員編號(hào)數(shù)字Varchar類型10位汽車類型號(hào)字母Varchar類型10位邏輯設(shè)計(jì)5.1創(chuàng)建和數(shù)據(jù)庫(kù)相關(guān)那部分實(shí)體關(guān)系圖(ERD)、表及關(guān)系圖表customersCusNoPYVarchar(10)NOTNullCusNameVarchar(10)NOTNullCusSexVarchar(2)NOTNullCusAgeVarchar(4) NOTNullCusPhoneVarchar(10) CusCompanyVarchar(10) NOTNullCusIdentityVarchar(10) NOTNull表rentRecordPYVerchar(10)NotnullRentDatedateNotnullReturnDatedateNotnullCusNoVerchar(10)NotnullCarNoVerchar(10)NotnullRecordcostVerchar(100NotNull表carCarNoPYVerchar(10)NotnullCarColorVerchar(10)NotnullCarDatedateNotnullCarClassNoFYVerchar(10)NotnullCarStatebitNotnull表carclassCarClassNoPYVerchar(10)NotnullCarClassCntVarchar(10)NotnullCarClassDayPriceVerchar(10)NotnullCarClassDayPriceExceedVerchar(100NotnullCarClassMonthPriceVerchar(10)NotnullCarClassSeatVerchar(10)Notnull表workerWorkNoPYVerchar(10)NotnullWorkPassWordVerchar(10)NotnullWorkNameVerchar(10)NotnullWorkSexVerchar(2)NotnullWorkPhoneVerchar(10)表manageWorkNoPYVerchar(10)NotnullCarNoPYVerchar(10)Notnull5.2創(chuàng)建數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系模型1.工作人員(工號(hào)、密碼、姓名、性別、聯(lián)絡(luò)電話)2.用戶信息(身份證號(hào)、密碼、姓名、性別、所在單位、聯(lián)絡(luò)電話)、3.車輛信息(車牌號(hào)、品牌、座位數(shù)、顏色、租賃狀態(tài)、購(gòu)入日期、分類號(hào))

4車輛類別(分類號(hào)、庫(kù)存數(shù)、日租價(jià)格、日租超公里價(jià)格、月租價(jià)格、月租超公里價(jià)格、品牌)5.管理(工號(hào)、車牌號(hào))備注:(工號(hào)和車牌號(hào)共同作為管理表主鍵,同時(shí)也是外鍵)

6.租賃(訂單號(hào)、身份證號(hào)、車牌號(hào)、租賃日期、歸還日期、租賃總金額)物理設(shè)計(jì)6.1表匯總表名功效說(shuō)明car存放車輛信息carclass存放車輛類別信息rent存放租賃信息customers存放用戶信息worker存放工作人員信息manage存放工作人員和車輛之間關(guān)系6.1.1表[car]:[車輛信息表]表名car數(shù)據(jù)庫(kù)用戶Car_rent主鍵CarNo索引字段CarClassNo序號(hào)字段名稱數(shù)據(jù)類型許可為空Y/N唯一Y/N區(qū)分度默認(rèn)值約束條件/說(shuō)明1CarNovarchar(10)NY高無(wú)主鍵2CarClassNovarchar(10)NN高無(wú)外鍵3CarStatebit(2)NN低00租賃狀態(tài)4CardatedateNN低無(wú)購(gòu)入日期5CarColorvarchar(10)NN低無(wú)汽車顏色sql腳本DROPTABLEIFEXISTS`car`;CREATETABLE`car`(`CarNo`varchar(10)NOTNULL,`CarColor`varchar(10)NOTNULL,`CarDate`dateNOTNULL,`CarSta`bit(10)NOTNULL,`CarClassNo`varchar(10)NOTNULL,PRIMARYKEY(`CarNo`),KEY`CarClassNo`(`CarClassNo`),CONSTRAINT`CarClassNo`FOREIGNKEY(`CarClassNo`)REFERENCES`carclass`(`CarClassNo`))6.1.2表[carclass]:[車輛類別表]表名carclass數(shù)據(jù)庫(kù)用戶Car_rent主鍵CarClassNo序號(hào)字段名稱數(shù)據(jù)類型許可為空Y/N唯一Y/N區(qū)分度默認(rèn)值約束條件/說(shuō)明1CarClassNovarchar(10)NY高無(wú)主鍵2CarClassCntvarchar(10)NN低無(wú)庫(kù)存數(shù)3CarClassSeatbit(2)NN低無(wú)座位數(shù)4CarClassDayPrice2dateNN低無(wú)日租價(jià)格5CarClassDayPrice1varchar(10)NN低無(wú)日租超公里價(jià)格6CarClassMonthPricevarchar(10)NN低無(wú)月租價(jià)格7CarClassBrandvarchar(10)NN低無(wú)車輛品牌sql腳本DROPTABLEIFEXISTS`carclass`;CREATETABLE`carclass`(`CarClassNo`varchar(10)NOTNULL,`CarClassCnt`varchar(10)NOTNULL,`CarClassDayPrice1`varchar(10)NOTNULL,`CarClassDayPrice2`varchar(10)NOTNULL,`CarClassMonthPrice`varchar(10)NOTNULL,`CarClassBrand`varchar(10)NOTNULL,`CarClassseat`varchar(10)NOTNULL,PRIMARYKEY(`CarClassNo`))6.1.3表[customer]:[用戶信息表]表名customer數(shù)據(jù)庫(kù)用戶Car_rent主鍵CusNo序號(hào)字段名稱數(shù)據(jù)類型許可為空Y/N唯一Y/N區(qū)分度默認(rèn)值約束條件/說(shuō)明1CusNovarchar(10)NY高無(wú)主鍵2CusPasswordvarchar(10)NN高無(wú)登錄密碼3CusNamevarchar(10)NN低無(wú)用戶姓名4CusSexvarchar(10)NN低無(wú)用戶性別5CusAgevarchar(10)NN低無(wú)用戶年紀(jì)6CusPhonevarchar(10)NN低無(wú)用戶電話7CusCompanyvarchar(10)NN低無(wú)企業(yè)sql腳本DROPTABLEIFEXISTS`customer`;CREATETABLE`customer`(`CusNo`varchar(10)NOTNULL,`CusName`varchar(10)NOTNULL,`CusSex`varchar(2)NOTNULL,`CusAge`varchar(4)NOTNULL,`CusPhone`varchar(20)NOTNULL,`CusCompany`varchar(20)NOTNULL,`CusPassword`varchar(10)NOTNULL,PRIMARYKEY(`CusNo`))6.1.4表[worker]:[工作人員信息表]表名worker數(shù)據(jù)庫(kù)用戶Car_rent主鍵WorkNo序號(hào)字段名稱數(shù)據(jù)類型許可為空Y/N唯一Y/N區(qū)分度默認(rèn)值約束條件/說(shuō)明1WorkNovarchar(10)NY高無(wú)主鍵2WorkPasswordvarchar(10)NN低無(wú)密碼3WorkNamevarchar(10)NN低無(wú)姓名4WorkSexvarchar(10)NN低無(wú)性別5WorkPhonevarchar(10)NN低無(wú)電話sql腳本DROPTABLEIFEXISTS`worker1`;CREATETABLE`worker1`(`WorkNo`varchar(10)NOTNULLDEFAULT'',`WorkPassword`varchar(10)DEFAULTNULL,`WorkName`varchar(10)DEFAULTNULL,`WorkSex`varchar(10)DEFAULTNULL,`WorkPhone`varchar(10)DEFAULTNULL,PRIMARYKEY(`WorkNo`))6.1.5表[rent]:[租賃表]表名rent數(shù)據(jù)庫(kù)用戶Car_rent主鍵RecordNo索引CarNo、CusNo序號(hào)字段名稱數(shù)據(jù)類型許可為空Y/N唯一Y/N區(qū)分度默認(rèn)值約束條件/說(shuō)明1RecordNovarchar(10)NY高無(wú)主鍵2CarNovarchar(10)NN高無(wú)外鍵3CusNovarchar(10)NN低無(wú)外鍵4RecordCostvarchar(10)NN低無(wú)總金額5RecordRentDatevarchar(10)NN低無(wú)租賃時(shí)間6RecordReturnDatevarchar(10)NN低無(wú)歸還時(shí)間sql腳本DROPTABLEIFEXISTS`rent`;CREATETABLE`rent`(`RecordNo`varchar(10)NOTNULL,`RecordRentDate`datetimeNOTNULL,`RecordReturnDate`datetimeNOTNULL,`CusNo`varchar(10)NOTNULL,`CarNo`varchar(10)NOTNULL,`RecordCost`varchar(10)DEFAULTNULL,PRIMARYKEY(`RecordNo`),KEY`CusNo`(`CusNo`),KEY`CarNo`(`CarNo`),CONSTRAINT`CarNo`FOREIGNKEY(`CarNo`)REFERENCES`car`(`CarNo`),CONSTRAINT`CusNo`FOREIGNKEY(`CusNo`)REFERENCES`customer`(`CusNo`))6.1.6表[manage]:[管理表]表名Wmanage數(shù)據(jù)庫(kù)用戶Car_rent主鍵CarNo、WorkNo索引CarNo序號(hào)字段名稱數(shù)據(jù)類型許可為空Y/N唯一Y/N區(qū)分度默認(rèn)值約束條件/說(shuō)明1WorkNovarchar(10)NY高無(wú)主鍵2CarNovarchar(10)NN高無(wú)主鍵sql腳本DROPTABLEIFEXISTS`manege`;CREATETABLE`manege`(`WorkNo`varchar(10)NOTNULLDEFAULT'',`CarNo`varchar(10)NOTNULLDEFAULT'',PRIMARYKEY(`WorkNo`,`CarNo`),KEY`CarNo`(`CarNo`),CONSTRAINT`manege_ibfk_1`FOREIGNKEY(`CarNo`)REFERENCES`car`(`CarNo`),CONSTRAINT`WorkNo`FOREIGNKEY(`WorkNo`)REFERENCES`worker1`(`WorkNo`))存放過(guò)程查詢每輛車狀態(tài)和庫(kù)存數(shù)關(guān)鍵代碼usecar_rentgoCREATEPROCEDUREproc_carasselectcar.CarNo,car.CarState,carclass.CarClassCntfromcar,carclasswherecar.CarClassNo=carclass.CarClassNo6.2.2查詢所輸入用戶賬號(hào)租賃歷史統(tǒng)計(jì)關(guān)鍵代碼usecar_rentgocreateprocedureproc_customers(@CusNovarchar(10))asselectrent.Record,rent.RentData,rent.RetunDate,rent.RecordCost,rent.CusNo,car.CarNo,carclass.CarClassBrandfromrent,car,carclasswhere@CusNo=CusNoandrent.CarNo=car.CarNoandcar.CarClassNo=carclass.CarClassNo;實(shí)施execproc_customers'A01'6.2.3查詢輸入用戶賬號(hào)租賃歷史統(tǒng)計(jì)關(guān)鍵代碼usecar_rentgocreateprocedureproc_car_rent(@CarNovarchar(10))asselectrent.Record,rent.RentData,rent.RetunDate,rent.CarNo,rent.CusNo,rent.RecordCostfromrentwhererent.CarNo=@CarNo;實(shí)施execproc_car_rent'湘A8888'6.2.4查詢經(jīng)過(guò)輸入訂單號(hào)查詢訂單信息關(guān)鍵代碼usecar_rentgocreateprocedureproc_record(@Recordvarchar(10))asselectrent.Record,rent.RentData,rent.RetunDate,rent.CusNo,rent.RecordCostfromrentwhererent.Record=@Record;實(shí)施execproc_record'1'6.2.5經(jīng)過(guò)輸入類別統(tǒng)計(jì)汽車租賃金額和剩下庫(kù)存數(shù)關(guān)鍵代碼usecar_rentgocreateprocedureproc_carclassno(@carclassnovarchar(10))asselectcarclass.CarClassDayPrice1,carclass.CarClassCntfromcarclasswherecarclass.CarClassNo=@carclassno;實(shí)施execproc_carclassno'A'6.2.6刪除一輛車關(guān)鍵代碼usecar_rentgocreateprocedureproc_delete_car(@carnovarchar(10))asdeletefromcarwherecar.CarNo=@carno實(shí)施execproc_delete_car'湘B8888'6.2.7刪除一條統(tǒng)計(jì)關(guān)鍵代碼usecar_rentgocreateprocedureproc_delete_rent(@recordvarchar(10))asdeletefromrentwhererent.Record=@record實(shí)施execproc_delete_rent'2'6.2.8還車(修改還車日期,默認(rèn)沒(méi)還車前,還車日期等于借車日期,只有當(dāng)沒(méi)還過(guò)車時(shí)候才能修改還車日期)關(guān)鍵代碼usecar_rentgocreateprocedureproc_return_car(@recordvarchar(10),@returndatedate)asupdaterentsetRetunDate=@returndatewhere@returndate>rent.RetunDateandDATEDIFF(DAY,rent.RentData,rent.RetunDate)=0實(shí)施execproc_return_car'1','-8-17'6.3觸發(fā)器6.3.1輸入新車牌號(hào)及信息,此車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)增加關(guān)鍵代碼usecar_rentgoCreateTriggeradd_newcarOncarafterinsertAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1WHEREcarclass.CarClassNoIN(SELECTCarClassNofromINSERTEDi)GO

6.3.2刪除車牌號(hào)及信息,此車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)降低關(guān)鍵代碼usecar_rentgoCreateTriggerdelete_carOncarafterdeleteAsUPDATEcarclassSETCarClassCnt=CarClassCnt-1WHEREcarclass.CarClassNoIN(SELECTCarClassNofromdeletedi)GO6.3.3:當(dāng)產(chǎn)生一個(gè)新訂單時(shí),訂單中所預(yù)訂車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)降低。(借車時(shí))關(guān)鍵代碼usecar_rentgoCreateTriggerrent_carOnrentafterinsertAsUPDATEcarclassSETCarClassCnt=CarClassCnt-1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromrentwhereCarNoin(selectCarNofrominserted)))GO6.3.4修改訂單還車日期時(shí)時(shí),訂單中所預(yù)訂車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)增加。(還車時(shí))關(guān)鍵代碼usecar_rentgoCreateTriggerreturn_carOnrentafterupdateAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeleted))Go6.3.5當(dāng)產(chǎn)取消一個(gè)訂單時(shí),訂單中所預(yù)訂車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)增加關(guān)鍵代碼usecar_rentgoCreateTriggerdelete_rent_carOnrentafterdeleteAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeletedwherecar.CarState='false'))GO6.3.6當(dāng)產(chǎn)生一個(gè)新訂單時(shí),訂單中所預(yù)訂車輛租賃狀態(tài)由空閑狀態(tài)(ture)變?yōu)轭A(yù)訂狀態(tài)(false)(借車時(shí))關(guān)鍵代碼usecar_rentgoCreateTriggerrent_state_carOnrentafterinsertAsupdatecarsetCarState='false'whereCarNoin(selectCarNofromrentwhereCarNoin(selectCarNofrominserted));GO6.3.7改訂單還車日期時(shí)時(shí),訂單中所預(yù)訂車輛租賃狀態(tài)由預(yù)訂狀態(tài)(false)變?yōu)榭臻e狀態(tài)(ture)。(還車時(shí))關(guān)鍵代碼usecar_rentgoCreateTriggerreturn_state_carOnrentafterupdateAsUPDATEcarsetCarState='true'whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeleted))Go6.3.8當(dāng)取消一個(gè)新訂單時(shí),訂單中所預(yù)訂車輛租賃狀態(tài)由空閑狀態(tài)(false)變?yōu)轭A(yù)訂狀態(tài)(ture)關(guān)鍵代碼usecar_rentgoCreateTriggerdelete_rent_state_carOnrentafterdeleteAsupdatecarsetCarState='true'whereCarNoin(selectCarNofromdeletedwherecar.CarState='false');GO6.3.9修改訂單還車日期時(shí)時(shí),更新實(shí)際花費(fèi)。(還車時(shí))關(guān)鍵代碼usecar_rentgoCreateTriggerreturn_car_priceOnrentafterupdateAsdeclare@pricevarchar(10)select@price=(selectCarClassDayPrice1fromCarClasswhereCarClassNoin(selectCarClassNofromCarwhereCarNoin(selectinserted.CarNofrominserted,deletedwhereinserted.Record=deleted.Record)))UPDATErentSETRecordCost=@price*(DATEDIFF(DAY,rent.RentData,rent.RetunDate)+1)whereRecordin(selectinserted.Recordfrominserted,deletedwhereinserted.Record=deleted.Record)Go安全性設(shè)計(jì)7.1預(yù)防用戶直接操作數(shù)據(jù)庫(kù)方法關(guān)鍵代碼execsp_addlogin'1','123456','car_rent'--worker管理員execsp_grantdbaccess'1','worker'execsp_addlogin'A01','123456','car_rent'--customers用戶execsp_grantdbaccess'A01','customers'7.2角色和權(quán)限關(guān)鍵代碼worker擁有全部權(quán)限grantalloncartoworkerwithgrantoptiongrantalloncarclasstoworkerwithgrantoptiongrantallonrenttoworkerwithgrantoptiongrantallonworkertoworkerwithgrantoptiongrantallonmanagetoworkerwithgrantoptiongrantalloncustomerstoworkerwithgrantoption用戶擁有查看customer和car權(quán)限grantallonselect_customerstocustomersgrantallonselect_cartocustomers角色能夠訪問(wèn)表和列操作權(quán)限Worker可訪問(wèn)全部表完全控制權(quán)限Customers查看用戶表視圖查看查看汽車表視圖查看查看租賃表視圖查看數(shù)據(jù)庫(kù)管理和維護(hù)說(shuō)明要確保數(shù)據(jù)庫(kù)安全和可靠就需要對(duì)其日常管理進(jìn)行全方面掌控和立即維護(hù),以此取得愈加安全數(shù)據(jù)庫(kù)環(huán)境。具體做法有以下幾點(diǎn):(1)定時(shí)對(duì)用戶和密碼進(jìn)行維護(hù)前面提及管理安全性是十分關(guān)鍵,所以對(duì)數(shù)據(jù)庫(kù)用戶和密碼應(yīng)該進(jìn)行定時(shí)維護(hù)和管理,借助動(dòng)態(tài)化變更來(lái)取得安全性提升。為了確保系統(tǒng)安全性,系統(tǒng)管理人員應(yīng)該根據(jù)系統(tǒng)運(yùn)行實(shí)際情況,對(duì)系統(tǒng)進(jìn)行強(qiáng)制性維護(hù),實(shí)施一系列安全確保方法。其中定時(shí)修改用戶密碼就是一個(gè)較為有效方法,操作是經(jīng)過(guò)調(diào)用系統(tǒng)過(guò)程中sp-password來(lái)完成。經(jīng)過(guò)這個(gè)操作對(duì)原有老密碼進(jìn)行更換,并形成新密碼供用戶使用。在完成一個(gè)SQL

Server安裝后,就會(huì)有一個(gè)對(duì)應(yīng)管理員用戶sa出現(xiàn),其擁有是最高管理權(quán)限,通常為系統(tǒng)管理人員擁有,這個(gè)sa關(guān)鍵性前面已經(jīng)提及,所以在管理中對(duì)sa等級(jí)密碼也應(yīng)該注意定時(shí)修改。(2)授權(quán)給信息表用戶設(shè)置密碼和用戶驗(yàn)證手段是控制用戶訪問(wèn)數(shù)據(jù)庫(kù)正當(dāng)性,而為每個(gè)數(shù)據(jù)庫(kù)中信息表用戶進(jìn)行授權(quán)就是為了確保用戶正當(dāng)權(quán)利,即對(duì)不一樣信息表用戶劃定某種訪問(wèn)特權(quán)。所以給信息表用戶授權(quán)是一個(gè)實(shí)時(shí)化確定訪問(wèn)用戶權(quán)限方法,是有效提升系統(tǒng)安全性關(guān)鍵手段。同時(shí)也是系統(tǒng)管理員需要進(jìn)行一項(xiàng)日常管理工作。(3)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)資料維護(hù)數(shù)據(jù)庫(kù)伴隨計(jì)算機(jī)技術(shù)發(fā)展而變得越來(lái)越龐大,同時(shí)在和網(wǎng)絡(luò)相結(jié)合實(shí)現(xiàn)了網(wǎng)絡(luò)連接和訪問(wèn)功效,數(shù)據(jù)備份和恢復(fù)工作就成為了數(shù)據(jù)庫(kù)數(shù)據(jù)資料管理關(guān)鍵內(nèi)容。因?yàn)閿?shù)據(jù)資料是數(shù)據(jù)庫(kù)關(guān)鍵,對(duì)其保護(hù)和備份顯然是數(shù)據(jù)庫(kù)管理關(guān)鍵。1)數(shù)據(jù)庫(kù)備份管理每個(gè)數(shù)據(jù)庫(kù)全部應(yīng)該在創(chuàng)建后就進(jìn)行卸出,從而提供一個(gè)裝入度基點(diǎn)。在以后就會(huì)根據(jù)一定時(shí)間點(diǎn)進(jìn)程周期表卸出。除了根據(jù)計(jì)劃卸出管理之外,還應(yīng)該對(duì)每次運(yùn)行沒(méi)有日志操作后進(jìn)行卸出數(shù)據(jù)庫(kù)操作。這是確保數(shù)據(jù)庫(kù)資料得到立即備份關(guān)鍵操作過(guò)程,也是對(duì)日常管理要求2)數(shù)據(jù)庫(kù)事務(wù)日志備份在系統(tǒng)管理中,事務(wù)日志備份空間要遠(yuǎn)遠(yuǎn)小于備份數(shù)據(jù)庫(kù)資源空間,所以在對(duì)其進(jìn)行備份時(shí)候,操作頻率要大于對(duì)數(shù)據(jù)庫(kù)備份,即頻繁操作是其突出特征,以此便于隨時(shí)掌控訪問(wèn)統(tǒng)計(jì),降低丟失數(shù)據(jù)可能性。通常全部是采取DUMP

TRAN命令來(lái)實(shí)施單獨(dú)備份日志3)數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)管理數(shù)據(jù)庫(kù)在完成各項(xiàng)操作和功效時(shí)候,就會(huì)包含到數(shù)據(jù)庫(kù)重裝,然后在裝入前完成卸出日志。對(duì)數(shù)據(jù)庫(kù)備份和事務(wù)日志備份,就是為了預(yù)防出現(xiàn)意外時(shí)候,能夠完整恢復(fù)數(shù)據(jù)庫(kù)。當(dāng)出現(xiàn)意外發(fā)生時(shí),已經(jīng)完成操作數(shù)據(jù)和日志全部能夠被恢復(fù),只有還沒(méi)有被提交事務(wù)才會(huì)丟失。從而將數(shù)據(jù)庫(kù)恢復(fù)到?jīng)]有出現(xiàn)問(wèn)題前狀態(tài),將數(shù)據(jù)丟失控制在最小范圍內(nèi)。這也是日常維護(hù)工作關(guān)鍵目標(biāo)。(4)對(duì)系統(tǒng)情況監(jiān)控1)控制用戶1)利用系統(tǒng)過(guò)程:sp-who說(shuō)明:此過(guò)程是顯示目前系統(tǒng)中全部注冊(cè)用戶進(jìn)程信息,且為實(shí)時(shí)化,顯示為進(jìn)程號(hào)、目前狀態(tài)、注冊(cè)用戶、機(jī)主名稱、占有資源、數(shù)據(jù)庫(kù)名稱、實(shí)施指令等。假如監(jiān)控是發(fā)覺(jué)進(jìn)程總數(shù)靠近系統(tǒng)最大許可數(shù)量,系統(tǒng)則會(huì)對(duì)部分無(wú)關(guān)進(jìn)程進(jìn)行關(guān)閉,確保系統(tǒng)正常。2)控制占用空間九、試驗(yàn)總結(jié)此次試驗(yàn)熟練掌握了對(duì)T-sql語(yǔ)言和數(shù)據(jù)庫(kù)掌握,深入了解了存放過(guò)程、觸發(fā)器、視圖語(yǔ)法結(jié)構(gòu)和表完整性約束,列完整性約束。十、附錄:源代碼9.1建庫(kù)建表CREATEDATABASEcar_rentCREATEDATABASEcar_rentONPRIMARY(NAME=car_data,FILENAME='f:\sql\car_rent.mdf',SIZE=20MB,MAXSIZE=30MB,FILEGROWTH=1MB)LOGON(NAME=car_log,FILENAME='f:\sql\car_rent.ldf',SIZE=10MB,MAXSIZE=15MB,FILEGROWTH=1MB)createtableworkerusecar_rentcreatetableworker(WorkNovarchar(10)notnullCONSTRAINTWorkNOPRIMARYKEY,WorkPassWordvarchar(10)null,WorkNamevarchar(10)null,WorkSexvarchar(10)null,WorkPhonevarchar(10)null,)dataofworkerINSERTINTOworkervalues('1','123456','111','男','');INSERTINTOworkervalues('2','123456','222','女','');createtablemanageusecar_rentcreatetablemanage(WorkNovarchar(10)notnullCONSTRAINTWorkNo_FKFOREIGNKEYREFERENCESworker(WorkNo),CarNovarchar(10)notnullCONSTRAINTCarNo_FKFOREIGNKEYREFERENCEScar(CarNo),PRIMARYKEY(WorkNo,CarNo),)dataofmanagecreatetablecarusecar_rentcreatetablecar(CarNovarchar(10)notnullCONSTRAINTCarNoPRIMARYKEY,CarColorvarchar(10)null,CarDatedatenull,CarClassNovarchar(10)notnullCONSTRAINTCarClassNo_FKFOREIGNKEYREFERENCEScarclass(carclassno),CarStatebitnull,)dataofcarINSERTINTOcarvalues('湘A8888','黑色','-05-31','A','true');INSERTINTOcarvalues('湘A6666','白色','-06-01','A','true');INSERTINTOcarvalues('湘B8888','藍(lán)色','-05-31','B','true');createtablecarclassusecar_rentcreatetablecarclass(CarClassNovarchar(10)notnullCONSTRAINTCarClassNOPRIMARYKEY,CarClassCntintNOTNULL,CarClassDayPrice1varchar(10)NOTNULL,CarClassDayPrice2varchar(10)NOTNULL,CarClassMonthPricevarchar(10)NOTNULL,CarClassBrandvarchar(10)NULL,CarClassseatvarchar(10)NULL,)dataofcarclassINSERTINTOcarclassvalues('A','0','200','20','1000','大眾庫(kù)','4');INSERTINTOcarclassvalues('B','0','300','20','','奧迪庫(kù)','4');createtablerentusecar_rentcreatetablerent(Recordvarchar(10)notnullCONSTRAINTRecordPRIMARYKEY,RentDatadatenotnull,RetunDatedatenotnull,CusNovarchar(10)notnullCONSTRAINTCusNo_FKFOREIGNKEYREFERENCEScustomers(CusNo),CarNovarchar(10)notnullCONSTRAINTCarNo_rent_FKFOREIGNKEYREFERENCEScar(CarNo),RecordCostvarchar(10)notnull,)dataofrentusecar_rentINSERTINTOrentvalues('1','-06-17','-06-17','A01','湘A8888','0000')INSERTINTOrentvalues('2','-05-17','-05-17','A01','湘A6666','0000')INSERTINTOrentvalues('3','-07-18','-07-18','A02','湘A8888','0000')createtablecustomersusecar_rentcreatetablecustomers(CusNovarchar(10)notnullCONSTRAINTCusNOPRIMARYKEY,CusNamevarchar(10)notnull,CusSexvarchar(2)notnull,CusAgevarchar(4)notnull,CusPhonevarchar(20)notnull,CusCompanyvarchar(20)notnull,CusPasswordvarchar(10)notnull,)dataofcustomersusecar_rentINSERTINTOcustomersvalues('A01','馬云','男','40','1888888','阿里巴巴','123456')INSERTINTOcustomersvalues('A02','小明','男','50','122222','汽修廠','222222')9.2存放過(guò)程--系統(tǒng)功效基礎(chǔ)要求:--能夠?qū)崿F(xiàn)對(duì)車輛、租賃用戶查詢,--能夠查詢汽車、用戶租賃歷史統(tǒng)計(jì)。--能夠按類別統(tǒng)計(jì)汽車租賃金額和剩下庫(kù)存數(shù),--模擬用戶對(duì)汽車租借、歸還業(yè)務(wù)存放過(guò)程Proc.1:查詢每輛車狀態(tài)和庫(kù)存數(shù)usecar_rentgoCREATEPROCEDUREproc_carasselectcar.CarNo,car.CarState,carclass.CarClassCntfromcar,carclasswherecar.CarClassNo=carclass.CarClassNoexecproc_cardropprocedureproc_carProc.2:查詢所輸入用戶賬號(hào)租賃歷史統(tǒng)計(jì)usecar_rentgocreateprocedureproc_customers(@CusNovarchar(10))asselectrent.Record,rent.RentData,rent.RetunDate,rent.RecordCost,rent.CusNo,car.CarNo,carclass.CarClassBrandfromrent,car,carclasswhere@CusNo=CusNoandrent.CarNo=car.CarNoandcar.CarClassNo=carclass.CarClassNo;execproc_customers'A01'dropprocedureproc_customersProc.3:查詢所輸入車牌號(hào)被租賃歷史統(tǒng)計(jì)usecar_rentgocreateprocedureproc_car_rent(@CarNovarchar(10))asselectrent.Record,rent.RentData,rent.RetunDate,rent.CarNo,rent.CusNo,rent.RecordCostfromrentwhererent.CarNo=@CarNo;execproc_car_rent'湘A8888'dropprocedureproc_car_rentProc.4:經(jīng)過(guò)輸入訂單號(hào)查詢訂單信息usecar_rentgocreateprocedureproc_record(@Recordvarchar(10))asselectrent.Record,rent.RentData,rent.RetunDate,rent.CusNo,rent.RecordCostfromrentwhererent.Record=@Record;execproc_record'1'dropprocedureproc_recordProc.5:經(jīng)過(guò)輸入類別統(tǒng)計(jì)汽車租賃金額和剩下庫(kù)存數(shù)usecar_rentgocreateprocedureproc_carclassno(@carclassnovarchar(10))asselectcarclass.CarClassDayPrice1,carclass.CarClassCntfromcarclasswherecarclass.CarClassNo=@carclassno;execproc_carclassno'A'dropprocedureproc_carclassnoProc.6:報(bào)廢一輛車usecar_rentgocreateprocedureproc_delete_car(@carnovarchar(10))asdeletefromcarwherecar.CarNo=@carnoexecproc_delete_car'湘B8888'Proc.7:撤銷租賃統(tǒng)計(jì)usecar_rentgocreateprocedureproc_delete_rent(@recordvarchar(10))asdeletefromrentwhererent.Record=@recordexecproc_delete_rent'1'Proc.8:還車(修改還車日期,默認(rèn)沒(méi)還車前,還車日期等于借車日期,只有當(dāng)沒(méi)還過(guò)車時(shí)候才能修改還車日期)usecar_rentgocreateprocedureproc_return_car(@recordvarchar(10),@returndatedate)asupdaterentsetRetunDate=@returndatewhere@returndate>rent.RetunDateandDATEDIFF(DAY,rent.RentData,rent.RetunDate)=0execproc_return_car'1','-8-17'dropprocedureproc_return_car9.3觸發(fā)器Trig.1:當(dāng)租賃企業(yè)新購(gòu)入一輛汽車時(shí),輸入新車牌號(hào)及信息,此車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)增加,usecar_rentgoCreateTriggeradd_newcarOncarafterinsertAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1WHEREcarclass.CarClassNoIN(SELECTCarClassNofromINSERTEDi)GO--Trig.2:當(dāng)租賃企業(yè)報(bào)廢一輛汽車時(shí),刪除車牌號(hào)及信息,此車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)降低,usecar_rentgoCreateTriggerdelete_carOncarafterdeleteAsUPDATEcarclassSETCarClassCnt=CarClassCnt-1WHEREcarclass.CarClassNoIN(SELECTCarClassNofromdeletedi)GOTrig.3.1:當(dāng)產(chǎn)生一個(gè)新訂單時(shí),訂單中所預(yù)訂車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)降低。(借車時(shí))usecar_rentgoCreateTriggerrent_carOnrentafterinsertAsUPDATEcarclassSETCarClassCnt=CarClassCnt-1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromrentwhereCarNoin(selectCarNofrominserted)))GO--Trig.3.2:修改訂單還車日期時(shí)時(shí),訂單中所預(yù)訂車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)降低。(還車時(shí))usecar_rentgoCreateTriggerreturn_carOnrentafterupdateAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1whereCarClassNoin(selectCarClassNofromcarwhereCarNoin(selectCarNofromdeleted))go--Trig.3.3:當(dāng)產(chǎn)取消一個(gè)訂單時(shí),訂單中所預(yù)訂車輛所對(duì)應(yīng)車輛類別庫(kù)存數(shù)自動(dòng)增加usecar_rentgoCreateTriggerdelete_rent_carOnrentafterdeleteAsUPDATEcarclassSETCarClassCnt=CarClassCnt+1whereCarClassNoin(sele

溫馨提示

  • 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)論