陳小紅,陳曉東
(1.西安鐵路職業(yè)技術(shù)學(xué)院,助教,陜西 西安 710014;2.西安鐵路局新豐鎮(zhèn)車站,助理工程師,陜西 西安 710608)
路局站別應(yīng)卸車計劃的編制在貨運工作計劃的編制中占有重要地位〔1〕。目前,該計劃的編制仍停留在手工編制的水平,效率低,工作量大。采用計算機編制路局站別應(yīng)卸車系統(tǒng)可以極大地減少工作強度,提高數(shù)據(jù)的精確性,而數(shù)據(jù)庫的設(shè)計在路局站別應(yīng)卸車系統(tǒng)(簡稱應(yīng)卸車系統(tǒng))的設(shè)計中占有重要的地位。為此,重點對應(yīng)卸車系統(tǒng)開發(fā)過程中數(shù)據(jù)庫部分的設(shè)計環(huán)節(jié)進行討論。
在計算機應(yīng)用系統(tǒng)中,數(shù)據(jù)庫是管理信息系統(tǒng)(MIS)的核心,它的性能與管理是涉及MIS各方面的全局性問題,是保證MIS高效運行及安全的關(guān)鍵。數(shù)據(jù)庫的設(shè)計要充分考慮應(yīng)用系統(tǒng)的功能,而應(yīng)用系統(tǒng)的功能又決定于用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。為此,下面分別進行分析。
人工編制路局站別應(yīng)卸車計劃,主要是根據(jù)運貨4上的數(shù)據(jù)來完成當(dāng)日18:00在站的管內(nèi)工作車、次日自裝管內(nèi)工作車及其有效車數(shù)、次日局(地區(qū))間分界站接入的管內(nèi)工作車及其有效車數(shù)等3部分卸車資源的推算。如果通過計算機來實現(xiàn)編制,應(yīng)卸車系統(tǒng)應(yīng)滿足用戶如下需求:
1)能夠?qū)π盾囐Y源的基礎(chǔ)數(shù)據(jù)進行系統(tǒng)錄入,存入數(shù)據(jù)庫。
2)根據(jù)站標準停留時間,標準接續(xù)時間及列車到站、發(fā)站時間推算接續(xù)車。
3)能對現(xiàn)有管重、自裝卸及接入管重卸車資源中有效車及整個卸車資源的推算。
4)能夠?qū)緮?shù)據(jù)進行查詢、刪除、修改、插入及命令的下達等操作。
5)方便用戶對于系統(tǒng)的維護。
為了滿足用戶的上述需求,應(yīng)卸車系統(tǒng)應(yīng)有3部分功能:
1)數(shù)據(jù)輸入功能。主要包括:①多個卸車資源基礎(chǔ)數(shù)據(jù)的輸入,主要包括預(yù)確報數(shù)據(jù)(當(dāng)日15:00車流、各站間轉(zhuǎn)運車、列車掛運車、次日鄰局預(yù)報資源)的導(dǎo)入、轉(zhuǎn)運車以及用戶基礎(chǔ)數(shù)據(jù)的輸入等。②在站標準停留時間及標準接續(xù)時間的輸入。③列車到站、發(fā)站時間的輸入。
2)數(shù)據(jù)處理功能。主要包括:①根據(jù)站標準停留時間,標準接續(xù)時間及列車到站、發(fā)站時間推算接續(xù)車。②現(xiàn)有管重、自裝卸及接入管重卸車資源中有效車的推算。
3)數(shù)據(jù)輸出功能。主要包括:①現(xiàn)有管重、自裝卸及接入管重卸車資源中有效車的輸出。②現(xiàn)有管重、自裝卸及接入管重卸車資源(有效車和無效車之和)的輸出。③接續(xù)車的輸出。
另外,由于路局站別應(yīng)卸車計劃涉及的站點、分界站、中間站等數(shù)據(jù)特別多,所以數(shù)據(jù)庫僅根據(jù)假設(shè)的路網(wǎng)結(jié)構(gòu)進行設(shè)計,以簡化設(shè)計難度。在假定的路網(wǎng)結(jié)構(gòu)中,全路有R,S,T,U等4個鐵路局,A站和F站分別為S局與R局、T局的分界站,T局和U局在G站分界。如圖1所示。
基于上述分析,采用PB開發(fā)工具和SQL2005數(shù)據(jù)庫系統(tǒng),分別對數(shù)據(jù)庫系統(tǒng)進行概念設(shè)計、邏輯設(shè)計和物理設(shè)計。
2.1 數(shù)據(jù)庫總體概念設(shè)計概念結(jié)構(gòu)設(shè)計就是將用戶需求抽象為概念結(jié)構(gòu)模型的過程。概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,它通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體數(shù)據(jù)庫管理系統(tǒng)(Database Management System,簡稱 DBMS)的概念模型〔3〕。
從需求分析中的應(yīng)卸車系統(tǒng)輸入、處理、輸出3部分功能可知,該系統(tǒng)數(shù)據(jù)庫中應(yīng)包括如下實體:
1)基礎(chǔ)數(shù)據(jù)實體。包括當(dāng)日15:00車流確報資源、各站間轉(zhuǎn)運車預(yù)報資源、列車掛運車預(yù)報資源、次日鄰局預(yù)報資源、鄰局預(yù)報數(shù)據(jù)自預(yù)測資源(這是由于次日鄰局預(yù)報資源的不準確性,采用鄰局預(yù)報數(shù)據(jù)自預(yù)測資源來提高次日局間分界站接入的管內(nèi)工作車的精確性)。這些基礎(chǔ)實體中的數(shù)據(jù)需要用戶進行手工輸入或?qū)搿?/p>
2)推算條件實體。包括站標準停留及接續(xù)時間、列車到發(fā)時間和接續(xù)車次。用來判斷18:00在途管內(nèi)工作車、次日自裝管內(nèi)工作車、臨局接入管重的工作車是否有效,臨站作業(yè)車是否已裝好。推算條件實體中的數(shù)據(jù)是實現(xiàn)次日應(yīng)卸車有效車的關(guān)鍵,也需要用戶輸入。
3)輸出實體。包括現(xiàn)有管重資源、現(xiàn)有管重?zé)o效資源、自裝卸及接入管重資源、自裝卸及接入管重?zé)o效資源、總數(shù)據(jù)輸出資源,這些實體用來存放對前2部分實體數(shù)據(jù)進行推算處理后得到的數(shù)據(jù)。
4)用戶實體。即用戶信息資源,用來進行用戶的登錄和驗證。
2.2 數(shù)據(jù)庫具體概念設(shè)計由于應(yīng)卸車系統(tǒng)數(shù)據(jù)庫涉及的實體眾多,且基礎(chǔ)數(shù)據(jù)實體和輸出實體的數(shù)據(jù)結(jié)構(gòu)基本一致,下文只給出具有代表性的數(shù)據(jù)設(shè)計實體及其屬性。
1)當(dāng)日15:00車流確報資源。用來存儲當(dāng)日15:00~18:00間管內(nèi)各站已有車及輸送車流情況,其實體屬性:站或列車編號、站a、站b、站c、站d、站E、站o、站P、站q、站r、站F、合計。屬性1表示某站或某列車15:00具有車流確報資源,屬性“站a”表示該站或列車到站a的15:00車流確報數(shù)。合計一列用來存儲某站所具有的總15:00車流確報數(shù)。
2)站標準停留時間及接續(xù)時間。在次日站別卸車計劃資源的推算過程中,多次用到標準站停及接續(xù)時間表。其實體屬性包括站編號、站標準停留時間、站標準作業(yè)時間及標準接續(xù)時間。
3)列車到發(fā)時間。列車到發(fā)時間全面反映了列車在運行圖上的準確到站、離站時間。為卸車資源有效性推算提供了重要的依據(jù),其實體屬性包括:列車編號、站編號以及站的到達和開出時間。
4)接續(xù)車次。在次日站別卸車資源的推算過程中,有一部分車次需要在技術(shù)站中轉(zhuǎn),在中轉(zhuǎn)時有效性推算需根據(jù)接續(xù)時間表和接續(xù)車次表。接續(xù)車次表主要包括列車編號、站編號和接續(xù)列車編號。
5)現(xiàn)有管重資源?,F(xiàn)有管重資源全面反映了次日在站管內(nèi)工作車和18:00在途管內(nèi)工作車的資源。根據(jù)運貨4,現(xiàn)有管重資源為在站管內(nèi)工作車和在途管內(nèi)工作車之和。其實體屬性:站或列車編號、站a、站b、站c、站d、站E、站o、站P、站q、站r、站F、合計。屬性1表示某站或某列車具有現(xiàn)有管重資源,屬性“站a”表示該站或列車到站a的現(xiàn)有管重工作車數(shù)。合計一列用來存儲某站或某列車所具有的現(xiàn)有管重總和。
3.1 數(shù)據(jù)庫總體邏輯設(shè)計邏輯結(jié)構(gòu)設(shè)計是將概念結(jié)構(gòu)模型轉(zhuǎn)換成某個DBMS所支持的數(shù)據(jù)模型,并對其進行優(yōu)化。設(shè)計主要分為2個步驟進行:
1)繪制從概念結(jié)構(gòu)設(shè)計出來的各實體的E—R圖(實體—聯(lián)系圖),并對其進行合并優(yōu)化。
2)將優(yōu)化后的E—R圖按關(guān)系模式轉(zhuǎn)換原則轉(zhuǎn)換成關(guān)系。雖然基礎(chǔ)數(shù)據(jù)各實體轉(zhuǎn)換成關(guān)系后具有相同的碼,但在該數(shù)據(jù)庫中并未對其進行合并。因為,一是表示的數(shù)據(jù)含義不一樣;二是合并后屬性列名之間有重復(fù)還需重新命名;三是不利于數(shù)據(jù)處理部分的操作。同理,數(shù)據(jù)輸出部分的實體也是轉(zhuǎn)換成各自的關(guān)系,不對其合并,方便用戶操作和輸出。
3.2 數(shù)據(jù)庫具體邏輯設(shè)計通過數(shù)據(jù)庫的總體邏輯設(shè)計得知,應(yīng)卸車系統(tǒng)數(shù)據(jù)庫總共具有14個關(guān)系模型??紤]到很多實體結(jié)構(gòu)一致,在這里只給出概念結(jié)構(gòu)設(shè)計中提到的實體轉(zhuǎn)換成的邏輯模型,其中有下劃線者為關(guān)鍵碼。
1)當(dāng)日15:00車流確報資源表:站或列車編號、站a、站b、站c、站d、站E、站o、站P、站q、站r、站F、合計。
2)站標準停留時間及接續(xù)時間:站編號、站標準停留時間、站標準作業(yè)時間、標準接續(xù)時間。
3)列車到發(fā)時間:列車編號、站編號、站到達時間、站開出時間。
4)接續(xù)車次:列車編號、站編號和接續(xù)列車編號。其中站編號為外鍵,與站標準停留時間及接續(xù)時間表相聯(lián)系。
5)現(xiàn)有管重資源:站或列車編號、站a、站b、站c、站d、站E、站o、站P、站q、站r、站F、合計。
數(shù)據(jù)庫的物理設(shè)計是根據(jù)數(shù)據(jù)庫邏輯設(shè)計的結(jié)果,研制一個有效的、可實現(xiàn)的物理數(shù)據(jù)庫結(jié)構(gòu)及存儲結(jié)構(gòu)。該數(shù)據(jù)庫采用SQL 2005數(shù)據(jù)庫管理模式,主要是對上述關(guān)系的存儲結(jié)構(gòu)進行設(shè)計,包括對各屬性的數(shù)據(jù)類型、長度、是否為空,是否為主鍵及相應(yīng)備注信息進行設(shè)計。在這里主要對現(xiàn)有管重資源表、站標準時間及接續(xù)時間表、列車到發(fā)時間表及接續(xù)車次表的物理設(shè)計進行闡述,其他不再累述。
4.1 現(xiàn)有管重資源表現(xiàn)有管重資源關(guān)系表物理設(shè)計要求:
1)因為站或列車編號能唯一標識某一條記錄,所以將其定義為主鍵。根據(jù)站及列車的實際編號長度,將其類型定義為varchar(變長字符串),最大長度為10,根據(jù)關(guān)系的范式要求其值不能為空。
2)屬性“站a”至“站F”存儲具體到該站的現(xiàn)有管重車數(shù),將其數(shù)據(jù)類型定義為smallint(短整型),長度為5,根據(jù)關(guān)系的范式要求其值可為空。
3)最后一列屬性“合計”存儲某站現(xiàn)有管重車數(shù)之和,因數(shù)值比較大,將其定義為int(整型),其值可為空。
4.2 站標準時間及接續(xù)時間表站標準時間及接續(xù)時間關(guān)系表物理設(shè)計要求:
1)因為站編號能唯一標識某一條記錄,所以將其定義為主鍵,并與現(xiàn)有管重資源表保持一致。將其類型定義為varchar(可變字符串),長度為10,其值不能為空。
2)屬性列站標準停留時間、站標準作業(yè)時間和標準接續(xù)時間在系統(tǒng)中以min為單位,定義為varchar(變長字符串),最大長度為4,其值可為空。
4.3 列車到發(fā)時間表列車到發(fā)時間關(guān)系表物理設(shè)計要求:
1)列車到發(fā)時間關(guān)系為多對多的關(guān)系,因為列車編號和站編號的組合能唯一標識某一條記錄,所以將列車編號和站編號定義為主鍵。將列車編號和站編號類型定義為varchar(可變字符串),長度為10,其值不能為空。
2)站到達時間和在站開出時間根據(jù)其實際含義定義為datetime(日期型),將格式設(shè)置為“yyyymmdd”,占用8字節(jié),其值可為空。
4.4 接續(xù)車次表接續(xù)車次關(guān)系表物理設(shè)計要求:
1)因為列車編號能唯一標識某一條記錄,所以將其定義為主鍵,與前表保持一致。數(shù)據(jù)類型設(shè)置為varchar型,長度為10,其值不能為空。
2)站編號為外鍵, 通過它和站標準停留時間及接續(xù)時間關(guān)系表相關(guān)聯(lián),站編號的其它設(shè)置與列車編號設(shè)置一致。
3)接續(xù)列車編號不是主鍵,其值可為空。
應(yīng)卸車系統(tǒng)數(shù)據(jù)庫通過相應(yīng)的邏輯步驟進行概念設(shè)計、邏輯設(shè)計及物理設(shè)計,能很好地為路局站別應(yīng)卸車系統(tǒng)服務(wù)。它能完整地反映卸車資源各種信息之間的聯(lián)系,有效地進行數(shù)據(jù)存儲,數(shù)據(jù)存儲和讀取的速度較快,對現(xiàn)實生產(chǎn)中應(yīng)卸車計劃系統(tǒng)的設(shè)計有很好的借鑒作用。當(dāng)然,如果對數(shù)據(jù)庫的訪問權(quán)限進行有針對性的設(shè)計,數(shù)據(jù)庫會更完善。
〔1〕齊 斌.鐵路局日班卸車計劃的計算機編制〔J〕.鐵道運營技術(shù),2007,13(1):36-37.
〔2〕宋建業(yè),謝金寶.鐵路運輸調(diào)度指揮與統(tǒng)計分析〔M〕.北京:中國鐵道出版社,1993.
〔3〕施威銘.SQL Server 2005中文版設(shè)計實務(wù)〔M〕.北京:機械工業(yè)出版社,2006.