




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、大連大學(xué)信息工程學(xué)院數(shù)據(jù)庫系統(tǒng)課程設(shè)計報告題 目:客運公司營運信息管理系統(tǒng) -排班子系統(tǒng)設(shè)計與實現(xiàn) 計作 者 姓 名: 羅樂 陸倩倩 專業(yè)、班級 : 軟件131班 學(xué) 號 :13427003 13427027 指 導(dǎo) 教 師: 張 敏 完 成 日 期: 2015/6/25 11客運公司營運信息管理系統(tǒng)排班子系統(tǒng)設(shè)計與實現(xiàn)目錄1需求分析21.1 引言21.2 需求分析階段的目標與任務(wù)21.2.1 處理對象21.2.2 處理功能及要求21.2.3 安全性和完整性要求21.3需求分析階段成果21.3.1 數(shù)據(jù)流圖21.3.2 數(shù)據(jù)字典42數(shù)據(jù)庫結(jié)構(gòu)設(shè)計12.1 概念設(shè)計12.2 邏輯設(shè)計12.2.1
2、 建立關(guān)系模式12.2.2關(guān)系及函數(shù)依賴:22.2.3 關(guān)系模式規(guī)范化處理32.2.4 用戶子模式建立32.2.5 關(guān)系模式邏輯結(jié)構(gòu)定義33數(shù)據(jù)庫物理設(shè)計13.1索引的設(shè)計13.2存儲過程的設(shè)計13.3觸發(fā)器的設(shè)計13.4視圖的設(shè)計14數(shù)據(jù)庫實施與測試14.1 數(shù)據(jù)庫實施14.1.1 數(shù)據(jù)庫及數(shù)據(jù)庫對象建立14.1.2 數(shù)據(jù)入庫14.2 數(shù)據(jù)庫測試14.2.1 視圖14.2.2存儲過程測試14.2.3觸發(fā)器測試35總結(jié)5附錄1 關(guān)系模式說明1附錄2 SQl數(shù)據(jù)定義語句11需求分析1.1 引言需求分析的任務(wù)是通過詳細調(diào)查現(xiàn)實世界要處理的對象,充分了解原系統(tǒng)的工作概況,明確用戶的需求,在此基礎(chǔ)上確
3、定系統(tǒng)功能。通過調(diào)查獲得用戶的信息要求,處理要求,安全性要求與完整性處理。 我們負責(zé)客運管理系統(tǒng)營運子系統(tǒng)中的排班工作,在這項工作中,分為線路及站點統(tǒng)計,駕駛員信息管理,班次的統(tǒng)計以及根據(jù)班次,路線對駕駛員進行排班這四個步驟。1.2 需求分析階段的目標與任務(wù)1.2.1 處理對象 駕駛員,車輛,線路,站點,班次,排班。1.2.2 處理功能及要求 根據(jù)線路,駕駛員,運行車輛,駕駛員休假情況以及車輛維修情況進行排班。1.2.3 安全性和完整性要求 1) 安全性要求 系統(tǒng)安全性要求體現(xiàn)在數(shù)據(jù)庫安全性、信息安全性和系統(tǒng)平臺的安全性等方面。安全性先通過視圖機制,不同的用戶只能訪問系統(tǒng)授權(quán)的視圖,這樣可提供
4、系統(tǒng)數(shù)據(jù)一定程度上的安全性,再通過分配權(quán)限、設(shè)置權(quán)限級別來區(qū)別對待不同操作者對數(shù)據(jù)庫的操作來提高數(shù)據(jù)庫的安全性;系統(tǒng)平臺的安全性體現(xiàn)在操作系統(tǒng)的安全性、計算機系統(tǒng)的安全性和網(wǎng)絡(luò)體系的安全性等方面。2) 完整性要求系統(tǒng)完整性要求包括實體完整性,參照完整性,用戶自定義完整性。其中,實體完整性是通過建立主鍵來實現(xiàn),參照完整性是通過外鍵來實現(xiàn)的,用戶自定義完整性是使用check約束實現(xiàn)的,除此之外,還可以通過使用觸發(fā)器和級聯(lián)更新。1.3需求分析階段成果1.3.1 數(shù)據(jù)字典 一、 數(shù)據(jù)項 數(shù)據(jù)項是不可再分的數(shù)據(jù)單位數(shù)據(jù)項條目數(shù)據(jù)項名稱:休假結(jié)束時間編號:DI-2別名:vacation_EndDate類型
5、長度:Date&Time描述:司機休息的結(jié)束時間數(shù)據(jù)項條目數(shù)據(jù)項名稱:與上一站間隔編號:DI-1別名:interval類型長度:float描述:兩個相鄰站點的間隔數(shù)據(jù)項條目數(shù)據(jù)項名稱:休假起始時間編號:DI-4別名:vacation_StartDate類型長度:Date&Time描述:司機休息的開始時間數(shù)據(jù)項條目數(shù)據(jù)項名稱:休假編號編號:DI-3別名:vacation_id類型長度:char(10)描述:休假司機的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:姓名編號:DI-6別名:Employees_name類型長度:char(20)描述:司機的姓名數(shù)據(jù)項條目數(shù)據(jù)項名稱:發(fā)車時間編號:DI-5別名:leave_
6、time類型長度:Time描述:車輛的發(fā)車時間數(shù)據(jù)項條目數(shù)據(jù)項名稱:序號_排班情況編號:DI-8別名:arrangeNum類型長度:int描述:排班的序號數(shù)據(jù)項條目數(shù)據(jù)項名稱:工號編號:DI-7別名:driver_id類型長度:char(10)描述:司機的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:序號_駕駛員離職表編號:DI-10別名:leaveDriver_num類型長度:int描述:離職表的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:車牌號編號:DI-9別名:license-number類型長度:varchar(15)描述:車輛的車牌號數(shù)據(jù)項條目數(shù)據(jù)項名稱:所屬部門編號:DI-11別名:Employees_departme
7、nt類型長度:char(50)描述:職員所在部門數(shù)據(jù)項條目數(shù)據(jù)項名稱:班次序號編號:DI-12別名:order_num類型長度:int描述:班次的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:排班日期編號:DI-14別名:arrangedate類型長度:Date描述:排班的日期數(shù)據(jù)項條目數(shù)據(jù)項名稱:站點名稱編號:DI-13別名:station_name類型長度:char(30)描述:站點的名稱,是一個唯一性索引數(shù)據(jù)項條目數(shù)據(jù)項名稱:站點編號編號:DI-15別名:station_id類型長度:char(10)描述:站點的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:線路名稱編號:DI-16別名:route_name類型長度:char(
8、30)描述:行駛線路的名稱,,是一個唯一性索引數(shù)據(jù)項條目數(shù)據(jù)項名稱:維修記錄編號編號:DI-18別名:CarMaintenance_id類型長度:char(10)描述:維修車輛的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:線路編號編號:DI-17別名:route_id類型長度:char(10)描述:線路的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:職位編號:DI-20別名:Employes_title類型長度:char(50)描述:員工的職位數(shù)據(jù)項條目數(shù)據(jù)項名稱:維修起始日期編號:DI-19別名:CarMaintenance_StartDate類型長度:Date描述:車輛開始維修的日期數(shù)據(jù)項條目數(shù)據(jù)項名稱:駕駛員工號編號:DI-
9、22別名:driver_num類型長度:char(10)描述:駕駛員的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:職工編號編號:DI-21別名:Employees_id類型長度:char(10)描述:職工的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:車輛自編號編號:DI-24別名:car_id類型長度:char(10)描述:車輛的編號數(shù)據(jù)項條目數(shù)據(jù)項名稱:預(yù)計維修結(jié)束日期編號:DI-23別名:CarMaintenance_EndDate類型長度:Date描述:預(yù)計車輛維修結(jié)束的日期數(shù)據(jù)項條目數(shù)據(jù)項名稱:請假原因編號:DI-25別名:vacation_reason類型長度:char(1024)描述:員工請假的原因二、數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)
10、構(gòu)條目數(shù)據(jù)結(jié)構(gòu)名稱:車輛工作信息編號:DS-2含義說明:說明了車輛可以行駛的時間以及維修時間組成:車輛自編號,維修起始日期,預(yù)計維修結(jié)束日期數(shù)據(jù)結(jié)構(gòu)條目數(shù)據(jù)結(jié)構(gòu)名稱:駕駛員工作信息編號:DS-1含義說明:說明了駕駛員工作的開始時間以及結(jié)束時間組成:駕駛員工號,休假起始時間,休假結(jié)束時間 數(shù)據(jù)結(jié)構(gòu)反映數(shù)據(jù)之間的組合關(guān)系三、數(shù)據(jù)流 數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂綌?shù)據(jù)流條目數(shù)據(jù)流名稱:駕駛員可正常工作時間信息編號:F1數(shù)據(jù)來源:駕駛員休假情況,各線路分配駕駛員信息數(shù)據(jù)流向:駕駛員分配情況整合數(shù)據(jù)結(jié)構(gòu):駕駛員工作信息數(shù)據(jù)流條目數(shù)據(jù)流名稱:駕駛員無法正常工作信息編號:F2數(shù)據(jù)來源:駕駛員休假情況,各
11、線路分配駕駛員信息數(shù)據(jù)流向:駕駛員調(diào)度數(shù)據(jù)結(jié)構(gòu):駕駛員工作信息數(shù)據(jù)流條目數(shù)據(jù)流名稱: 調(diào)度分配駕駛員信息編號:F3數(shù)據(jù)來源:駕駛員調(diào)度數(shù)據(jù)流向:駕駛員分配情況整合數(shù)據(jù)結(jié)構(gòu):駕駛員工作信息 數(shù)據(jù)流條目數(shù)據(jù)流名稱:實際各線路分配駕駛員情況編號:F4數(shù)據(jù)來源:駕駛員分配情況整合數(shù)據(jù)流向:駕駛員車輛組合數(shù)據(jù)結(jié)構(gòu):駕駛員工作信息數(shù)據(jù)流條目數(shù)據(jù)流名稱:車輛可正常工作時間信息編號:F5數(shù)據(jù)來源:車輛維修情況,各線路分配車輛信息數(shù)據(jù)流向:車輛分配情況整合數(shù)據(jù)結(jié)構(gòu):車輛工作信息數(shù)據(jù)流條目數(shù)據(jù)流名稱:車輛無法正常工作時間信息編號:F6數(shù)據(jù)來源:車輛維修情況,各線路分配車輛信息數(shù)據(jù)流向:車輛調(diào)配數(shù)據(jù)結(jié)構(gòu):車輛工作信
12、息數(shù)據(jù)流條目數(shù)據(jù)流名稱: 調(diào)配車輛信息編號:F7數(shù)據(jù)來源:車輛調(diào)配數(shù)據(jù)流向:車輛分配情況整合數(shù)據(jù)結(jié)構(gòu):車輛工作信息數(shù)據(jù)流條目數(shù)據(jù)流名稱: 實際各線路分配車輛情況編號:F8數(shù)據(jù)來源:車輛分配情況整合數(shù)據(jù)流向:駕駛員車輛組合數(shù)據(jù)結(jié)構(gòu):車輛工作信息四、處理過程 具體的處理過程的說明處理過程條目處理過程名稱:駕駛員檢查編號:P.01輸入數(shù)據(jù):駕駛員休假情況,各線路分配駕駛員信息,各線路班次時間輸出數(shù)據(jù): 駕駛員可正常工作的時間信息處理邏輯:根據(jù)駕駛員休假情況,各線路分配駕駛員信息以及調(diào)配車輛信息整合出每條線路可以正常工作的駕駛員。處理過程條目處理過程名稱:駕駛員調(diào)度編號:P.03輸入數(shù)據(jù):各線路分配駕
13、駛員信息,駕駛員無法正常工作的時間信息 駕駛員休假情況輸出數(shù)據(jù):調(diào)度分配駕駛員信息處理邏輯:根據(jù)各線路分配駕駛員信息以及駕駛員無法正常工作的時間信息整合出調(diào)度分配駕駛員信息處理過程條目處理過程名稱:駕駛員分配情況整合編號:P.02輸入數(shù)據(jù):駕駛員可正常工作的時間信息,調(diào)度分配駕駛員信息輸出數(shù)據(jù):實際各線路分配駕駛員情況處理邏輯:根據(jù)駕駛員可正常工作的時間信息和調(diào)度分配駕駛員信息可以整合出駕駛員分配情況處理過程條目處理過程名稱:車輛檢查編號:P.05輸入數(shù)據(jù):各線路班次時間,車輛維修情況,各線路分配車輛信息輸出數(shù)據(jù):車輛可正常工作的時間信息處理邏輯:根據(jù)各線路班次時間,車輛維修情況以及各線路分配
14、車輛信息可以得出車輛可正常工作的時間信息。處理過程條目處理過程名稱:車輛調(diào)配編號:P.07輸入數(shù)據(jù):車輛無法正常工作時間信息,各線路分配車輛信息,車輛維修情況輸出數(shù)據(jù):調(diào)配車輛信息處理邏輯:根據(jù)車輛無法正常工作時間信息,各線路分配車輛信息以及車輛維修情況可以得出調(diào)配車輛信息。處理過程條目處理過程名稱:車輛分配情況整合編號:P.06輸入數(shù)據(jù):車輛可正常工作的時間信息,調(diào)配車輛信息輸出數(shù)據(jù):實際各線路分配車輛情況處理邏輯:根據(jù)車輛可正常工作的時間信息以及調(diào)配車輛信息可以得出實際各線路分配車輛情況。處理過程條目處理過程名稱:駕駛員車輛組合編號:P.04輸入數(shù)據(jù):實際各線路分配駕駛員情況,實際各線路分
15、配車輛情況輸出數(shù)據(jù):排班表處理邏輯:根據(jù)實際各線路分配駕駛員情況以及實際各線路分配車輛情況可以整合出排班表五、數(shù)據(jù)存儲 數(shù)據(jù)存儲是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一數(shù)據(jù)存儲條目數(shù)據(jù)存儲名稱:各線路分配駕駛員信息編號:S1組成:DI_8 , DI_14 , DI_22 相關(guān)處理:P.01 P.03數(shù)據(jù)存儲條目數(shù)據(jù)存儲名稱:各線路分配車輛信息編號:S2組成:DI_6 , DI_8 , DI_11 , DI_14 , DI_20 , DI_21相關(guān)處理:P.05 P.07數(shù)據(jù)存儲條目數(shù)據(jù)存儲名稱:各線路班次時間編號:S3組成:DI_5 , DI_12 , DI_16 , DI_17
16、相關(guān)處理:P.01 P.05 數(shù)據(jù)存儲條目數(shù)據(jù)存儲名稱: 駕駛員休假情況編號:S4組成:DI_2 , DI_3 , DI_4相關(guān)處理:P.01 P.03數(shù)據(jù)存儲條目數(shù)據(jù)存儲名稱:車輛維修情況編號:S5組成:DI_18 , DI_19 , DI_23相關(guān)處理:P.05 P.07數(shù)據(jù)存儲條目數(shù)據(jù)存儲名稱:排班表編號:S6組成:DI_14 DI_8相關(guān)處理:將排班表輸出給查詢者1.3.2 系統(tǒng)功能模塊圖缺少!2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 包括概念設(shè)計和邏輯設(shè)計兩個部分。2.1 概念設(shè)計概念設(shè)計目標:是產(chǎn)生反映企業(yè)組織信息需求的數(shù)據(jù)庫概念結(jié)構(gòu)。 概念模式是獨立于數(shù)據(jù)庫邏輯結(jié)構(gòu), 獨立于支持數(shù)據(jù)庫的DBMS,不依賴
17、于計算機系統(tǒng)的。概念設(shè)計的方法:(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圖,通過消除沖突等方面。分E-R圖建立,詳見圖2-12.2 邏輯設(shè)計1、邏輯設(shè)計階段目標是與選用的DBMS所支持數(shù)據(jù)模型相符的邏輯結(jié)構(gòu)。2、設(shè)計邏輯結(jié)構(gòu)一般分為三步:(1)將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;(2)將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型像特定DBMS所支持數(shù)據(jù)模型轉(zhuǎn)換;(3)對數(shù)據(jù)模型優(yōu)化。2.2.1 建立關(guān)系模式2.2.1.1在將概念模型轉(zhuǎn)換為邏輯模型過
18、程中依據(jù)的主要準則: (1)一個1:1的聯(lián)系與任意一端對應(yīng)的關(guān)系模式合并,在該關(guān)系模式中加入另一端關(guān)系的碼和聯(lián)系本身的屬性;(2)一個1:n的關(guān)系與n端對應(yīng)的關(guān)系模式合并,在n端關(guān)系模式中加入1端關(guān)系的碼和聯(lián)系本身的屬性,合并后關(guān)系的碼為n端關(guān)系的碼;、(3)一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式,與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的碼轉(zhuǎn)換為關(guān)系的屬性,各實體的碼組成關(guān)系的碼或關(guān)系碼的一部分。圖2-1 分E-R圖2.2.2關(guān)系及函數(shù)依賴: 1.線路(線路編號,線路名稱) F:線路編號線路名稱 2.線路運行班次時間表(班次序號,線路編號,發(fā)車時間) F:(班次序號,線路編號)發(fā)車時間 3.站點(站點
19、編號,站點名稱) F:站點編號站點名稱 4.職工(職工編號,線路編號,姓名,所屬部門,職位) F: 職工編號姓名、職工編號線路編號職工編號所屬部門、 職工編號職位 5排班情況(序號_排班情況,車輛自編號,線路編號,班次序號,職工編號,排班日期) F: 序號_排班情況車輛自編號序號_排班情況線路編號序號_排班情況班次序號序號_排班情況職工編號序號_排班情況排班日期 6.車輛信息(車輛自編號,線路編號) F:車輛自編號線路編號7.線路_站點(線路編號,站點編號,與上一站間隔) F:(線路編號,站點編號)與上一站間隔 2.2.3 關(guān)系模式規(guī)范化處理分析各關(guān)系模式是否存在操作異常現(xiàn)象,如果采用范式理論
20、將其規(guī)范,使其滿足3范式。經(jīng)分析此模式所有關(guān)系每一個非主屬性完全函數(shù)依賴于主碼,也不存在傳遞函數(shù)依賴。故其滿足3NF。2.2.4 用戶子模式建立為方便相關(guān)人員查詢排班數(shù)據(jù),創(chuàng)建如下子模式:Select arrange info(排班時間,線路名稱,班次序號,發(fā)車時間,員工姓名,車輛自編號)。2.2.5 關(guān)系模式邏輯結(jié)構(gòu)定義2.2.5.1 關(guān)系模式匯總,見表2-2表2-2 關(guān)系模式匯總表編號關(guān)系名稱模式說明T-1Route(詳見附錄1-1)(詳見附錄1-1)T-2routeTime(詳見附錄1-2)(詳見附錄1-2)T-3station(詳見附錄1-3)(詳見附錄1-3)T-4Employees
21、(詳見附錄1-4)(詳見附錄1-4)T-5Arrange(詳見附錄1-5)(詳見附錄1-5)T-6Car_info(詳見附錄1-6)(詳見附錄1-6)T-7Route_station(詳見附錄1-7)(詳見附錄1-7)T-8routeCar(詳見附錄1-8)(詳見附錄1-8)T-9routeDriver(詳見附錄1-9)(詳見附錄1-9)2.2.5.2外模式匯總,見表2-2表2-2 外模式匯總表序號視圖名稱作用備注1Select arrange info排班信息3數(shù)據(jù)庫物理設(shè)計3.1索引的設(shè)計 1.需要查詢排班時間,故在arrange表上建立索引arrangeTime_FK 2.需要查詢排班車
22、輛信息,故在arrange表上建立索引CarInfo_arrange_FK 3.需要查詢排班司機信息,故在arrange表上建立索引driver_arrange_FK 4.需要查詢線路信息,故在其上建立索引route_arrange_FK 5.需要查詢和路線對應(yīng)的車輛信息,故在car_info表上建立索引routeCar_FK 6.需要查詢和路線安排的司機信息,故在Employees表上建立索引routeDriver_Fk 7.需要查詢線路名稱,故在route表上建立唯一性索引routeName_UQ8 需要查詢線路和站點關(guān)系,故在route_station表上建立索引route_statio
23、n_FK和route_station2_FK分別表示route_id和station_id9.需要查詢線路的班次,故在routeTime表上建立索引route_order_FK10.需要查詢線路的名稱,故在station表上建立唯一性索引stationName_UQ3.2存儲過程的設(shè)計 設(shè)計了兩個存儲過程:DecreaseRouteTime InceraseRouteTime3.3觸發(fā)器的設(shè)計 設(shè)計了兩個觸發(fā)器 insert_routeTime update_routeTime3.4視圖的設(shè)計 設(shè)計了一個視圖: 排班信息4數(shù)據(jù)庫實施與測試數(shù)據(jù)庫實施與測試包括數(shù)據(jù)庫實施和測試兩個部分。4.1 數(shù)
24、據(jù)庫實施4.1.1 數(shù)據(jù)庫及數(shù)據(jù)庫對象建立 SQL server中數(shù)據(jù)庫及數(shù)據(jù)庫對象建立,見表4-1表4-1:數(shù)據(jù)庫及數(shù)據(jù)庫對象建立表序號名稱定義語句2-1數(shù)據(jù)庫(詳見附錄2-1)2-2基本表(詳見附錄2-2)2-3視圖(詳見附錄2-3)2-4觸發(fā)器(詳見附錄2-4)2-5存儲過程(詳見附錄2-5)4.1.2 數(shù)據(jù)入庫對所有數(shù)據(jù)表錄入20條以上的記錄,可使用批量導(dǎo)入,逐條錄入,或整體復(fù)制的方法。4.2 數(shù)據(jù)庫測試4.2.1 視圖 見圖4-2圖4-2視圖4.2.2存儲過程測試1. 提前發(fā)班時間測試代碼:USE test1GODECLAREreturn_value intEXECreturn_va
25、lue = dbo.DecreaseRouteTimeDecreaseTime = 10SELECTReturn Value = return_valueGO執(zhí)行結(jié)果:見圖4-3所有車輛班次發(fā)班時間提前10分鐘圖4-32. 推遲發(fā)班時間測試代碼:USE test1GODECLAREreturn_value intEXECreturn_value = dbo.IncreaseRouteTimeIncreaseTime = 10SELECTReturn Value = return_valueGO執(zhí)行結(jié)果:見圖4-4所有車輛發(fā)班時間推遲10分鐘圖4-43. 線路班次運行時間表插入數(shù)據(jù)測試代碼:US
26、E test1GODECLAREreturn_value intEXECreturn_value = dbo.InsterDate_routeTimerouteID = N001,orderNum = 4,leaveTime = N10:00:00SELECTReturn Value = return_valueGO執(zhí)行結(jié)果:見圖4-5routeTime表新增一條數(shù)據(jù),且之前比序號4大的班次序號加1圖4-54.2.3觸發(fā)器測試1.檢查插入時數(shù)據(jù)的合法性 測試代碼:use test1goinsert into routeTime(route_id,order_num,leave_time) va
27、lues(001,2,2015-06-24 06:10:00.000)測試結(jié)果:見圖4-6圖4-62.檢查更新時數(shù)據(jù)的合法性測試代碼:use test1goupdate routeTime set leave_time=2015-06-24 05:00:00.000where order_num =2 and route_id=001go結(jié)果見圖4-7 圖4-75總結(jié) 做了好多天,終于完善了數(shù)據(jù)庫。只想說一句好累啊。不過還是痛并快樂著。因為我們從做這個任務(wù)前的不知所措,經(jīng)過這段時間來的學(xué)習(xí),學(xué)到了很多東西。我們建立了6張基本表,兩個觸發(fā)器,兩個存儲過程,一個視圖。通過本次將課堂所學(xué)的理論知識應(yīng)
28、用與實踐,為以后的設(shè)計提供了有力的支持,也打下良好的基礎(chǔ)附錄1 關(guān)系模式說明1-1線路關(guān)系模式說明 線路(線路編號,線路名稱)屬性名數(shù)據(jù)類型取值范圍是否為主屬性是否為外鍵完整性要求Route_idVarchar(10)是NOT NULLRoute_nameVarchar(30)NOT NULL1-2線路運行班次時間表關(guān)系模式說明線路班次時間表(班次序號,發(fā)車時間,線路編號)屬性名數(shù)據(jù)類型取值范圍是否為主屬性是否為外鍵完整性要求Order_numInt是NOT NULLLeave_timedatetimeRoute_idVarchar(10)是是NOT NULL1-3站點關(guān)系模式說明站點(站點編
29、號,站點名稱)屬性名數(shù)據(jù)類型取值范圍是否為主屬性是否為外鍵完整性要求Station_idVarchar(10)是NOT NULLStation_nameVarchar(30)1-4職工關(guān)系模式說明職工(職工編號,姓名,所屬部門,職位,線路編號)屬性名數(shù)據(jù)類型取值范圍是否為主屬性是否為外鍵完整性要求Employees_idVarchar(10)是NOT NULLEmployees_nameVarchar(20)Employees_departmentVarchar(50)Employees_titleVarchar(50)Route_idVarchar(10)是NOT NULL1-5排班情況關(guān)系
30、模式說明線路運行班次時間表(線路編號,班次序號,發(fā)車時間)屬性名數(shù)據(jù)類型取值范圍是否為主屬性是否為外鍵完整性要求Route_idVarchar(10)是是NOT NULLOrder_numInt是NOT NULLLeave_yimedatetime1-6車輛信息關(guān)系模式說明車輛信息(車輛自編號,線路編號)屬性名數(shù)據(jù)類型取值范圍是否為主屬性是否為外鍵完整性要求Car_idVarchar(10)是NOT NULLRoute_idVarchar(10)是 1-7 線路_站點關(guān)系模式說明線路_站點(線路編號,站點編號,與上一站間隔)屬性名數(shù)據(jù)類型取值范圍是否為主屬性是否為外鍵完整性要求Car_idVa
31、rchar(10)r是是NOT NULLStation_idVarchar(10)是是NOT NULLintervalfloat附錄2 SQl數(shù)據(jù)定義語句2-1創(chuàng)建數(shù)據(jù)庫CREATE DATABASE KYYY_MIS;2-2基本表的定義/* 排班表*/create table arrange ( arrangeNum int identity, car_id varchar(10) not null, route_id varchar(10) null, order_num int null, Employees_id varchar(10) not null, arrangedate da
32、tetime null, constraint PK_ARRANGE primary key nonclustered (arrangeNum)Go/*職工表*/create table Employees ( Employees_id varchar(10) not null, route_id varchar(10) not null, Employees_name varchar(20) null, Employees_department varchar(50) null, Employees_title varchar(50) null, constraint PK_EMPLOYEE
33、S primary key nonclustered (Employees_id)Go/*車輛信息表*/create table car_info ( car_id varchar(10) not null, route_id varchar(10) null, license_number varchar(15) null, constraint PK_CAR_INFO primary key nonclustered (car_id)Go/*線路表*/create table route ( route_id varchar(10) not null, route_name varchar
34、(30) null, constraint PK_ROUTE primary key nonclustered (route_id)Go/*線路運行班次時間表*/create table routeTime ( route_id varchar(10) not null, order_num int not null, leave_time datetime null, constraint PK_ROUTETIME primary key nonclustered (route_id, order_num)Go/*線路站點表*/create table route_station ( rou
35、te_id varchar(10) not null, station_id varchar(10) not null, interval float null, constraint PK_ROUTE_STATION primary key (route_id, station_id)Go/*站點表*/create table station ( station_id varchar(10) not null, station_name varchar(30) null, constraint PK_STATION primary key nonclustered (station_id)G
36、o/*休假時間表*/create table vacation ( vacation_id varchar(10) null, vacation_StartDate datetime null, vacation_EndDate datetime null)Go2-3視圖的定義/*查看排班信息*/USE test1GOCREATE VIEW 排班信息ASSELECT a.arrangedate,r.route_name,rt.order_num,rt.leave_time,e.Employees_name,ci.license_numberFROM Employees e,car_info c
37、i,route r,routeTime rt,arrange aWHERE e.Employees_id=a.Employees_id and ci.car_id=a.car_id and r.route_id =rt.route_id and rt.route_id=a.route_id and rt.order_num = a.order_numGO2-4存儲過程定義/*推遲發(fā)車時間*/CREATE PROCEDURE IncreaseRouteTimeIncreaseTime int,ASBEGINupdate routeTime set leave_time = DATEADD(HH,
38、IncreaseTime,leave_time)ENDGO/*提前發(fā)車時間*/USE test1GOCREATE PROCEDURE dbo.DecreaseRouteTimeDecreaseTime intASBEGINSET DecreaseTime = 0 - DecreaseTimeupdate routeTime set leave_time = DATEADD(mi,DecreaseTime,leave_time)ENDGO/*routeTime表插入數(shù)據(jù)*/USE test1GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE
39、 PROCEDURE dbo.InsterDate_routeTimerouteID varchar(10),orderNum int,leaveTime datetimeASBEGINDECLARE orderNum1 int-判斷同線路是否已存在該班次序號select orderNum1=order_num FROM routeTime WHERE order_num=orderNum AND route_id=routeIDIF orderNum1 IS NOT NULLBEGINUPDATE routeTime SET order_num = order_num + 1 WHERE o
40、rder_num (orderNum-1) AND route_id=routeIDENDINSERT INTO routeTime (route_id,order_num,leave_time) VALUES (routeID,orderNum,leaveTime)ENDGO2-5觸發(fā)器定義/*插入班次*/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO- =- Author:- Create date: - Description:- =CREATE TRIGGER inster_routeTime ON routeTime INSTEAD OF
41、INSERTAS DECLARE orderNum intDECLARE orderNum1 intDECLARE routeID varchar(10)DECLARE leaveTime0 datetimeDECLARE leaveTime1 datetimeDECLARE leaveTime2 datetime-獲取插入線路編號及班次序號select leaveTime0=leave_time,orderNum = order_num,routeID = route_id FROM inserted-判斷同線路是否已存在該班次序號select orderNum1=order_num FRO
42、M routeTime WHERE order_num=orderNum AND route_id=routeIDIF orderNum1 IS NOT NULLBEGIN-PRINT 該線路已經(jīng)存在該班次序號 -提示錯誤信息raiserror(該線路已經(jīng)存在該班次序號,16,1)print orderNum print routeID-ROLLBACK TRANSACTION -回滾ENDELSEBEGIN select leaveTime1=leave_time FROM routeTime WHERE order_num= orderNum-1 AND route_id=routeID select leaveTime2=leave_time FROM routeTime WHERE order_num= orderNum+1 AND route_id=routeID IF leaveTime1 IS NULLBEGINset leaveTime1 = leaveTime0END IF leaveTime2 IS NULLBEGINset leaveTime2 = leaveTime0END IF leaveTime0 leaveTime2BEGINraiserror(發(fā)車時間輸入有誤,比上一序號時間小或比下一序號發(fā)車時間大,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單方面諒解協(xié)議書范本
- 民宅供暖入網(wǎng)協(xié)議書范本
- 跨國并購企業(yè)戰(zhàn)略合作的框架協(xié)議
- 離婚協(xié)議書:婚姻解除與共同財產(chǎn)分割全案
- 智能制造財產(chǎn)權(quán)利質(zhì)押融資合同模板
- 高端汽車抵押擔(dān)保合同
- 臨時彩鋼房拆除作業(yè)安全管理合同
- 房地產(chǎn)交易場地價差額貨幣賠償合同
- 餐飲店面租賃及節(jié)假日促銷活動合作合同
- 深水承臺鋼套箱止水技術(shù)專題
- 《基礎(chǔ)護理學(xué)》第七版考試題庫大全-上部分(600題)
- 2025年日歷( 每2個月一張打印版)
- 福建省廈門市2023-2024學(xué)年高二下學(xué)期期末質(zhì)量檢測數(shù)學(xué)試題
- 信息檢索智慧樹知到答案章節(jié)測試2023年齊魯工業(yè)大學(xué)
- 鋁鎂錳金屬屋面專項施工組織設(shè)計
- 攪拌器的型式
- 傳感器原理 磁電式傳感器
- XX印務(wù)有限公司采購控制程序
- 2.溝槽開挖(檢驗批)質(zhì)量驗收記錄表
- GB/T 8433-1998紡織品色牢度試驗?zāi)吐然味?游泳池水)
- GB/T 12719-2021礦區(qū)水文地質(zhì)工程地質(zhì)勘查規(guī)范
評論
0/150
提交評論