




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、軟件學院課程設計報告書課程名稱SQL Server數(shù)據(jù)庫課程設計設計題目出租車管理系統(tǒng)專業(yè)班級軟件工程( 1)班學號201002505123姓名朱陽陽指導教師亓春霞2012 年 10 月1 設計目的此設計項目是對學習 SQLServer 數(shù)據(jù)庫課程后進行的一次全面的綜合練習。目的在于加深對數(shù)據(jù)庫基礎理論和基本知識的理解, 掌握使用數(shù)據(jù)庫進行軟件設計的基本方法, 提高運用數(shù)據(jù)庫解決實際問題的能力, 最終實現(xiàn)對于給定的應用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式, 建立數(shù)據(jù)庫及其應用系統(tǒng), 使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應用需求 ( 信息要求和處理要求 ) 。同時, 此設計對于將來的畢業(yè)設計和具體工作實
2、踐將有重要的意義。2 設計任務出租車管理系統(tǒng)3 設計內(nèi)容3.1需求分析任務需求分析設計司機和出租車是出租車公司最要的資源, 是創(chuàng)造效益的資源。 要想提高出租車公司的效益和服務質(zhì)量, 首先從做好對司機和出租車的管理著手。 一是對出租車司機的信息的管理, 二是對出租車信息和租賃的管理。 出租車管理系統(tǒng)將很大程度上解決出租車公司在此工作上的難度。需求分析過程功能需求簡介 :針對出租車行業(yè)的特點開發(fā)的出租車管理系統(tǒng), 實現(xiàn)出租車公司內(nèi)部及時準確地采集內(nèi)部各種數(shù)據(jù)信息, 處理高速化和網(wǎng)絡辦公自動化。 實現(xiàn)對出租車公司司機的信息記錄,操作,出租車管理,提供精確查詢等多種查詢方式。調(diào)查需求基本操作:對出租車
3、信息表、 司機信息表、 租賃表、違章表的查詢、 添加、更新、刪除等功能。特別操作:對租賃表的功能。系統(tǒng)數(shù)據(jù)分析表 2-1數(shù)據(jù)結(jié)構(gòu)定義數(shù)據(jù)結(jié)構(gòu)名含義說明組成定義了出租車有關信息車牌號 入戶時間車型 顏色出租車信息表出租情況營業(yè)時間司機信息表定義了司機有關信息司機編號姓名 性別 地址 身份證號駕駛證號發(fā)證時間 駕齡定義了租賃的有關信息司機編號車牌號 期限 開始日期租賃表截止日期租賃費 車保費定義了違章的有關信息司機編號姓名 扣分 違章時間違章表違章地點出車記錄表定義了每天哪些司機的出車司機編號 車牌號情況出車日期3.2 概念結(jié)構(gòu)設計概念結(jié)構(gòu)設計的方法概念設計階段我采用自底向上的方法,即自頂向下的進
4、行需求分析, 然后再自底向上的進行概念結(jié)構(gòu)設計。對已經(jīng)細化到無法再分的階段逐步集成在一起,最終合成一個全局概念模式。概念結(jié)構(gòu)設計的步驟第一步是進行局部視圖的設計:由于高層的數(shù)據(jù)流圖只能反映系統(tǒng)的概貌,而中層流圖能較好的反映系統(tǒng)中各局部應用的子系統(tǒng)組成。因此我們先逐一的設計分 E-R 圖。第二步是進行視圖的集成: 各子系統(tǒng)的 E-R 圖設計好之后,下一步就是要將所有的分 E-R 圖合成一個系統(tǒng)的總 E-R 圖,一般有兩個方式, 多個分 E-R 圖一次集成,另一種是一次集成兩個分 E-R 圖。我想采用一次集成兩個分 E-R 圖的方式。司機編號車牌號出車記錄表出車日期圖 3-1 出車記錄 E-R 圖
5、入戶時間車牌號車型出租車顏色出租情況營業(yè)時間圖 3-2 出租車 E-R 圖性別姓名地址司機編號司機身份證號駕駛證號駕齡發(fā)證時間圖 3-3 司機 R-R圖期限車牌號開始日期司機編號租賃表車保費截止日期租賃費圖 3-4 租賃 E-R 圖司機編號姓名扣分違章表違章地點違章時間圖 3-5 違章 E-R 圖司機編號車牌號出車記錄表出車情況出車情況出車日期司機編號姓名扣分性別違章表姓名司機編地址違章司機違章地點違章時間駕齡身份證駕駛證號期限發(fā)證時間車牌號開始日期司機編號租賃租賃表入戶時間車保費截止日期租賃費車牌號車型出租車顏色出租情況營業(yè)時間圖 3-6 總體概念結(jié)構(gòu) E-R 圖3.3邏輯結(jié)構(gòu)設計E-R 圖
6、向關系模型的轉(zhuǎn)換將上述總體概念結(jié)構(gòu)E-R 圖轉(zhuǎn)化成關系模型,根據(jù)這個關系寫出數(shù)據(jù)依賴,確定數(shù)據(jù)依賴。司機與出租車是一對一的關系,司機、出租車與租賃是一對一的關系,司機與違章是一對一的關系。司機(司機編號,姓名,性別,地址,身份證號,駕駛證號,發(fā)證時間,駕齡)出租車(車牌號,入戶時間,車型,顏色,出租情況,營業(yè)時間)租賃表(司機編號,車牌號,期限,開始日期,截止日期,租賃費,車保費)出車記錄表(司機編號,車牌號,出車日期)違章表(司機編號,姓名,扣分,違章時間,違章地點)3.4物理設計物理表結(jié)構(gòu)如下表 3-7司機表 ( Driver )列標示數(shù)據(jù)類型長度約束列意義DriverNumberchar
7、6主鍵司機編號Namechar10不為空姓名Sexbit默認不為空性別Addressvarchar40不為空地址IDumberchar20不為空身份證號LincenseNumberchar10不為空駕駛證號CertificateDatedatetime默認不為空發(fā)證時間DriverAgetinyint默認不為空駕齡表 3-8 出租車表 ( Taxi )列標示數(shù)據(jù)類型長度約束列意義TaxiNumberchar6主鍵車牌號StartDatedatetime默認不為空入戶時間TaxiShapechar10不為空車型Colorchar10不為空顏色RentSituationbit默認不為空出租情況Bu
8、sinessTimetinyint默認不為空營業(yè)時間表 3-9租賃表 ( Rent )列標示數(shù)據(jù)類型長度約束列意義DriverNumberchar6主鍵司機編號TaxiNumberchar6不為空車牌號LimitTimetinyint默認不為空期限StartDatedatetime默認不為空開始日期EndDatedatetime默認不為空截止日期RentFeefloat默認不為空租賃費ProtectionFeeFloat默認不為空車保費表 3-10 違章表 ( Violate )列標示數(shù)據(jù)類型長度約束列意義DriverNumberchar6主鍵司機編號Namechar10不為空姓名Points
9、tinyint默認不為空扣分ViolateDatedatetime默認不為空違章時間ViolateAddressvarchar40不為空違章地點表 3-11出車記錄表 ( Notes )列標示數(shù)據(jù)類型長度約束列意義DriverNumberchar6主鍵司機編號Namechar10不為空姓名DriveDatedatetime默認不為空出車日期3.5數(shù)據(jù)庫的實施創(chuàng)建表/* 創(chuàng)建數(shù)據(jù)庫 */CREATE DATABASE TAXI/* 數(shù)據(jù)庫名 */ON(NAME=TAXI_DATA,FILENAME='D:Microsoft SQLServerMSSQL10_50.SQLEXPRESSMS
10、SQLDATATAXI.mdf',SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=10%)LOG ON(NAME='TAXI_log',/*日志 */FILENAME='D:Microsoft SQLServerMSSQL10_50.SQLEXPRESSMSSQLDATATAXI_Log.ldf', SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1MB)/* 創(chuàng)建基本表 */* 創(chuàng)建司機表 */USE TAXICREATE TABLE Driver(DriverNumber char(6)NOT NULL P
11、RIMARY KEY,Name char (10),Sex bit NOT NULL,Address varchar(40)NOT NULL,IDNumber char(18)NOT NULL,licenseNumber char(10)NOT NULL,CertificateDate datetime NOT NULL,DriverAge tinyint NOT NULL/*/*/*/*/*/* /* /*司機編號 */姓名 */性別 */地址 */身份證號 */駕駛證號 */發(fā)證時間 */駕齡 */)/* 創(chuàng)建出租車表 */CREATE TABLE Taxi(TaxiNumber char
12、(6)NOT NULL PRIMARY KEY,StartDate datetime NOT NULL,TaxiShape char(10)NOT NULL,Color char(10)NOT NULL,RentSituation bit NOT NULL DEFAULT 1,BusinessTime tinyint NOT NULL/*/*/*/*/*/*車牌號 */入戶時間 */車型 */顏色 */出租情況 */營業(yè)時間 */)/* 創(chuàng)建租賃表 */CREATE TABLE Rent(DriverNumber char(6)NOT NULL,TaxiNumber char(6)NOT NU
13、LL,LimitTime tinyint NOT NULL,StartDate datetime NOT NULL,EndDate datetime NOT NULL,RentFee float NOT NULL,ProtectionFee float NOT NULL,PRIMARY KEY(DriverNumber,TaxiNumber)/* 創(chuàng)建違章表 */CREATE TABLE Violate(DriverNumber char(6)NOT NULL PRIMARY KEY, Name char(10),Points tinyint NOT NULL, ViolateDate dat
14、etime NOT NULL, ViolateAddress varchar(40)NOT NULL)/* 創(chuàng)建出車表 */* 司機編號 */* 車牌號 */* 期限 */* 開始日期 */* 截止日期 */* 租賃費 */* 車保費 */* 司機編號 */*姓名 */*扣分 */*違章時間 */*違章地點 */CREATE TABLE Notes(DriverNumber char(6)NOT NULL, TaxiNumber char(6)NOT NULL, DriverDate datetime NOT NULL)/* 司機編號 */* 車牌號 */* 出車日期 */創(chuàng)建主要視圖視圖是從
15、一個或多個表導出的表。視圖是數(shù)據(jù)庫的用戶使用數(shù)據(jù)庫的觀點。司機和出租車是主要的實體, 而這兩個實體的信息又在不同的表中, 作為出租車公司對司機和出租車有時關心的數(shù)據(jù)又是不同的, 即使是相同的數(shù)據(jù), 也可能又不同的操作。有時候僅有的表的列屬性名是不能滿足需求的, 于是根據(jù)不同的需求,在物理的數(shù)據(jù)庫上定義他們對數(shù)據(jù)庫所要求的數(shù)據(jù)結(jié)構(gòu)。(1) 創(chuàng)建 Driver_VIEW 視圖,包含司機所有的信息USE TAXIGOCREATEVIEWDriver_VIEW( 司機編號 , 姓名 , 性別 , 地址 , 身份證號 , 駕駛證號 , 發(fā)證時間 , 駕齡)ASSELECT * FROM DriverGO
16、(2) 創(chuàng)建 Taxi_VIEW視圖,包含出租車的所有信息。USE TAXIGOCREATEVIEWTaxi_VIEW(車牌號 , 入戶時間 , 車型 , 顏色 , 出租情況 , 每天營業(yè)時長 )ASSELECT * FROM TaxiGO(3) 創(chuàng)建 Rent_VIEW視圖,包含租賃的所有信息。USE TAXIGOCREATE VIEW Rent_VIEW(司機編號 , 車牌號 , 期限 , 開始日期 , 截止日期 , 租賃費 ,車保費 )ASSELECT * FROM RentGO(4) 建租賃表平均租賃費視圖 Violate_VIEW_AVG,列名為平均租賃費,試圖中列名為 RentFe
17、e_avg。USE TAXIGOCREATE VIEW Violate_VIEW_AVG(平均租賃費 )ASSELECT AVG(RentFee)FROM Rent創(chuàng)建索引索引是根據(jù)表中一列或若干列按照一定順序建立的列值與記錄行之間的對應關系表。( 1)為 Driver 表的姓名創(chuàng)建唯一索引 Driver_nameUSE TAXI GOCREATE UNIQUE INDEX Driver_name ON Driver(Name)GO( 2)根據(jù) Rent表的司機編號和車牌號創(chuàng)建復合索引。USE TAXIGOCREATE INDEX Rent_INDON Rent(DriverNumber,Ta
18、xiNumber)GO創(chuàng)建表字段的約束關系數(shù)據(jù)完整性包括實體完整性,域完整性和參照完整性。租賃表中的期限的取值肯定要有一定的范圍, 違章表中的扣分也有范圍, 租賃表的截止日期必須在開始日期的之后,都可以通過 CHECK約束來實現(xiàn),這就體現(xiàn)了域的完整性。租賃表中的司機編號和車牌號都由司機表和出租車表中對應, 當刪除或修改司機表中的司機編號和出租車表中的車牌號也應當對應修改租賃表中的司機編號和車牌號,這體現(xiàn)了表與表之間的參照完整性。( 1)添加 Rent表中期限的約束條件。USE TAXI GOALTER TABLE Rent(2) 添加 Violate 表中扣分的約束條件。USE TAXI GO
19、ALTER TABLE ViolateADD CONSTRAINT Points_constraint CHECK(Points>=0 AND Points<=12)GO(3) 在Rent表中的 TaxiNumber列添加外鍵約束,參照 Taxi 表中的列USE TAXIGOALTER TABLE RentADD CONSTRAINT FK_TaxiNumber FOREIGN KEY(TaxiNumber)REFERENCESTaxi(TaxiNumber)GO(4) 在 Rent表中添加日期的約束。創(chuàng)建存儲過程存儲過程分為系統(tǒng)存儲過程、擴展存儲過程和用戶存儲過程。存儲過程可以接
20、收參數(shù)、返回表格或標量結(jié)果和消息,執(zhí)行存儲過程后, 就駐留在高速緩沖存儲器,在以后的操作中, 只需從高速緩沖存儲器中調(diào)用已編譯好的二進制代碼執(zhí)行,提高了系統(tǒng)性能。 當給定了一個司機的編號或出租車的車牌號時想直接返回該司機或該出租車的信息情況, 不需要任何參數(shù),或者使用給定的參數(shù)返回信息。( 1)創(chuàng)建返回 000001司機的信息情況。USE TAXI GOCREATE PROCEDURE driver_infoASSELECT * FROM Driver WHERE DriverNumber='000001'GO/* 執(zhí)行存儲過程 driver_info*/EXECUTE dri
21、ver_infoGO/* 或者 */driver_infoGO(2) 創(chuàng)建返回出租車的信息情況。USE TAXIGOCREATE PROCEDURE taxi_infoASSELECT * FROM Taxi WHERE TaxiNumber='010001'GO/* 執(zhí)行存儲過程 taxi_info*/EXECUTE taxi_infoGO(3) 從Rent表中查詢指定司機編號的租賃信息USE TAXI GOCREATE PROCEDURE rent_info number char(6)ASSELECT * FROM Rent WHERE DriverNumber=numb
22、erGO/* 執(zhí)行存儲過程 rent_info*/ EXECUTE rent_info '000002'(4) 從Violate 表中查詢指定司機編號的違章情況USE TAXIGOCREATE PROCEDURE violate_info number char(10)='000001' ASSELECT Points AS ' 扣分 ' FROM Violate WHERE DriverNumber=numberGO/*執(zhí)行存儲過程*/EXECUTE violate_info EXECUTE violate_info'000002
23、9;/*參數(shù)私用默認值 */* 傳遞給 number的實參為 */GO創(chuàng)建觸發(fā)器當查詢一個表中是否存在信息時,或者向表中添加數(shù)據(jù)時,想顯示有無要查的信息或想知道到底有沒有執(zhí)行, 可以用觸發(fā)器對相應的表做更改和顯示操作與否。(1) 在 Drivr 表上創(chuàng)建觸發(fā)器, 每次修改操作時, 定義一個變量, 讓它顯示插入成功。USE TAXIGOCREATE TRIGGER driver_updateON Driver AFTER UPDATEASBEGINDECLARE str char(20)SET str=' 修改成功 'PRINT strENDGO/* 對Driver 表更新信息
24、*/( 2)當修改 Driver 表中的司機編號時, 修改 Rent表中對應的司機編號 , 同時修改Violate 表和 Notes表中的司機編號。USE TAXI GOCREATE TRIGGER rent_update1 ON Driver AFTER UPDATE ASBEGINDECLARE old_number char(6),new_number char(6) SELECT old_number=DriverNumber FROM deletedSELECT new_number=DriverNumber FROM inserted UPDATE Rent SET DriverN
25、umber=new_number WHEREDriverNumber=old_numberUPDATE Violate SET DriverNumber=new_number WHEREDriverNumber=old_numberUPDATE Notes SET DriverNumber=new_number WHEREDriverNumber=old_numberENDGO/* 對Taxi 表更新信息 */UPDATE Driver set DriverNumber='000009' WHERE DriverNumber='000001' 查看三個表中的變化
26、。創(chuàng)建用戶定義的函數(shù)和表值函數(shù)當用戶在編程時常常需要將一個或多個 T-SQL語句組成子程序,以便反復調(diào)用。這就要用到用戶定義的標量值函數(shù)和表值函數(shù)。 標量值函數(shù)返回一個標量值,表值函數(shù)返回一個整表。 當想計算得出 Rent表中出租車的平均車保費時可以創(chuàng)建一個標量值函數(shù),當想通過給定的司機編號查詢已經(jīng)創(chuàng)建好的 Driver_VIEW 視圖上給定司機編號的相關信息時可以創(chuàng)建一個返回整個表或視圖的表值函數(shù)來實現(xiàn)。( 1)創(chuàng)建用戶定義函數(shù),實現(xiàn)計算出租車的平均車保費。USE TAXI GOCREATE FUNCTION ProtectorFee()RETURNS intAS BEGINDECLARE fee intSELECT fee=(SELECT avg(ProtectionFee) FROM Rent)RETURN feeENDGO/* 調(diào)用定義的 ProtectionFee函數(shù)。 */USE TAXIGODECLARE fee intSELECT fee=dbo.ProtectorFee()SELECT fee AS '出租車的平均租賃費 '( 2)創(chuàng)建一個表值函數(shù),實現(xiàn)查詢給定司機編號的相關信息。USE TAXI GOCREATE FUNCTION
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025安全設備租賃合同安全設備租賃合同書
- 文化產(chǎn)業(yè)管理考試知識點梳理試題及答案
- 鄉(xiāng)村全科執(zhí)業(yè)醫(yī)師考試急救知識試題及答案
- 七年級英語下冊 Module 11 Body language Unit 2 Here are some ways to welcome them第4課時教學設計 (新版)外研版
- 醫(yī)學基礎知識網(wǎng)絡輔導資源試題及答案
- 探索文化產(chǎn)業(yè)管理證書考試的策略試題及答案
- 七年級地理上冊 4.3人類的聚居地-聚落教學設計 (新版)新人教版
- 圖書管理員社會文化影響探討試題及答案
- 專利代理人考試的法規(guī)與政策試題及答案
- 關注母豬護理心理健康試題及答案
- 短視頻編輯與制作全套教學課件
- 小學語文教學技能PPT完整全套教學課件
- 美國憲法全文(中、英文版)
- 初中歷史課件:中國古代科技發(fā)展史
- 安全閥管理臺賬
- 腫瘤科運用PDCA循環(huán)提高疼痛評估的規(guī)范率品管圈成果匯報
- 經(jīng)歷是流經(jīng)裙邊的水
- 胎兒心臟超聲檢查課件詳解
- 2023年06月天津市便民專線服務中心招考聘用合同制員工筆試題庫含答案解析
- 2023年高速公路監(jiān)理工程師質(zhì)量目標責任書
- 抖音政務號運營建設方案版
評論
0/150
提交評論