摘要:汽運(yùn)由于其時間的靈活性、運(yùn)行的機(jī)動性和廣闊的公路網(wǎng)所帶來的延展性,使得汽車成為更多人短途旅行的首選。但汽車運(yùn)輸如今陷入一個比較尷尬的境地,汽車票則只能在汽車站的售票大廳才能買到。經(jīng)過多方考察,系統(tǒng)擬從實(shí)際情況考慮將市內(nèi)各站及縣市車站進(jìn)行并網(wǎng)互聯(lián),同時實(shí)施各外點(diǎn)的聯(lián)網(wǎng),方便乘客購票及網(wǎng)上預(yù)訂票、在指定車站上車。系統(tǒng)從設(shè)計上主要有售票、廢票、改簽票、退票、補(bǔ)票、預(yù)訂、售票查詢和票款結(jié)算等功能。為提高售票速度,系統(tǒng)提供全鍵盤售票操作,而且盡量集中在右手小鍵盤。
關(guān)鍵詞:聯(lián)網(wǎng)售票;系統(tǒng);網(wǎng)絡(luò)架構(gòu);數(shù)據(jù)庫;數(shù)據(jù)字典
中圖分類號:TP302.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2009)05-1047-04
Automobile Passenger Transportation Networking Booking System's Design and Implementation
ZHANG Hao
(Shandong University School of Computer Science and Technology, Jinan 250000, China)
Abstract: For the time flexibility , working maneuverability and vast highway cover what be brought about postponing as with a net, the tractility , the feasible automobile become vapor luck being person short distance take a trip selections more . But Motor transport is caught in a comparatively awkward condition now , the automobile ticket is hall ability can only be in the bus station selling ticket to purchase. By that examination , system intend to think that every station and the county city station are in progress and the net interconnection from reality with the city in many ways, networking putting every external point into practice at the same time, the convenient passenger buys ticket and catch with a net goes ahead in assigning station to get on the bus to subscribe to a ticket. System sells ticket from having mainly on design , the invalidated ballot, switches over to tack on a ticket , to return a ticket , to buy ticket after the normal time , subscribe to , sells ticket inquiring about sum ticket money settlement waiting for a function. And sell ticket for rise speed , system provide entire keyboard selling ticket operation, focus on the right hand small keyboard to the full.
Key words:network selling ticket; system;network frame; database; data dictionary
1 引言
1.1 系統(tǒng)概述
中國有著遼闊的地域,同時由于東西南北各地經(jīng)濟(jì)發(fā)展的不平衡性,每逢節(jié)假日,客運(yùn)高峰使得各地之間的旅客運(yùn)輸長久以來成為各級政府關(guān)注的問題。雖然隨著人們經(jīng)濟(jì)收入的逐步提高,越來越多的人開始選擇飛機(jī)作為出行的一個新的選擇,但是“鐵老大,汽老二”的格局始終沒有改變,汽運(yùn)由于其時間的靈活性、運(yùn)行的機(jī)動性和廣闊的公路網(wǎng)所帶來的延展性,使得汽車成為更多人短途旅行的首選。
但汽車運(yùn)輸如今陷入一個比較尷尬的境地,那就是“坐等上門”。飛機(jī)票可以網(wǎng)上預(yù)定,火車票可以在代售點(diǎn)購買,而汽車票則只能在汽車站的售票大廳才能買到,這在一定程度上限制了汽車客運(yùn)的發(fā)展。
本系統(tǒng)擬從實(shí)際情況考慮將市內(nèi)各站及縣市車站進(jìn)行并網(wǎng)互聯(lián),同時實(shí)施各外點(diǎn)的聯(lián)網(wǎng),方便乘客購票及網(wǎng)上預(yù)訂票、在指定車站上車。
本系統(tǒng)從設(shè)計上主要有售票、廢票、改簽票、退票、補(bǔ)票、預(yù)訂、售票查詢和票款結(jié)算等功能。為提高售票速度,系統(tǒng)提供全鍵盤售票操作,而且盡量集中在右手小鍵盤。按站點(diǎn)售票時需輸入3位數(shù)字的站點(diǎn)代碼。站點(diǎn)代碼有兩種,一種是數(shù)字代碼,一種是拼音簡碼(站點(diǎn)名的拼音聲母開頭)。售票時使用數(shù)字式售票代碼可減少鍵盤操作難度,即使售票員從未使用過電腦,經(jīng)過簡短的培訓(xùn)后也能立即操作電腦進(jìn)行售票。使用數(shù)字式售票代碼的另一好處是可以單手操作電腦,這樣可以提高工作效率,降低勞動強(qiáng)度。在售票時,如果售票員記不清站點(diǎn)代碼,也可通過按拼音碼聲母方式查詢,售票操作非常方便、快捷。還可按地區(qū)售票,操作方法和按站點(diǎn)售票類似。
1.2 基礎(chǔ)設(shè)施設(shè)計方案
總部建立中心機(jī)房,架專用服務(wù)器,建站務(wù)中心數(shù)據(jù)庫,負(fù)責(zé)同步東站和海泊河兩站的數(shù)據(jù)庫中的座位信息。各站服務(wù)器與總部中心服務(wù)器的數(shù)據(jù)庫同步,各站服務(wù)器之間不能相互訪問,確保各站數(shù)據(jù)庫信息的安全穩(wěn)定。但是總部中心服務(wù)器可與各站服務(wù)器互通。
1.2.1 網(wǎng)絡(luò)架構(gòu)
總部中心機(jī)房的專用服務(wù)器與各子站的售檢票服務(wù)器采用星型結(jié)構(gòu)進(jìn)行互聯(lián),組建成一個集團(tuán)站務(wù)信息網(wǎng)。(如圖1)
聯(lián)網(wǎng)采用線路擬選用網(wǎng)通的數(shù)字電路互聯(lián)技術(shù)(SDH)實(shí)現(xiàn)??偛恐行臋C(jī)房的帶寬應(yīng)比各站高,以確保今后業(yè)務(wù)拓展的需要,擬采用10Mbps帶寬光纖。各站采用2Mbps光纖。整個網(wǎng)絡(luò)由集團(tuán)統(tǒng)一規(guī)劃拓?fù)浣Y(jié)構(gòu)、劃分網(wǎng)段、統(tǒng)一分配各站局域網(wǎng)服務(wù)器、各工作站的IP地址。總部中心機(jī)房配路由器防火墻,各站只配路由器,放開MSDTC135端口即可。
1.2.2總部專用服務(wù)器架構(gòu)
為了取保整個系統(tǒng)的安全、穩(wěn)定,擬采用雙機(jī)熱備方式進(jìn)行實(shí)施。即兩臺一樣的高性能服務(wù)器共享磁盤陣列柜,同時僅有一臺執(zhí)行操作,另一臺服務(wù)器以“心跳線”與之相連。當(dāng)其中一臺服務(wù)器宕機(jī)時,另一臺服務(wù)器立刻接管所有應(yīng)用服務(wù),數(shù)據(jù)庫存儲于磁盤陣列柜上。
1.2.3供電設(shè)計
為了確保服務(wù)器不因停電而影響各站售檢票系統(tǒng)的正常運(yùn)行,擬采用8小時長延時在線式UPS予以支持。
1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)
外部級是每個用戶所能看到的數(shù)據(jù)庫內(nèi)容,一般以用戶視圖方式出現(xiàn)。概念級是整個數(shù)據(jù)庫的全部信息視圖,可用E—R圖來表示。內(nèi)部級就是被存儲的數(shù)據(jù)庫,它規(guī)定數(shù)據(jù)項(xiàng)、記錄、數(shù)據(jù)集、索引、路徑等一切物理組織。為了實(shí)現(xiàn)數(shù)據(jù)庫的外部級、概念級、內(nèi)部級3個級別的轉(zhuǎn)換,DBMS提供了外模式/概念模式和概念模式/物理模式兩個層次的映像。
2 系統(tǒng)數(shù)據(jù)流圖
數(shù)據(jù)庫設(shè)計必須首先進(jìn)行數(shù)據(jù)的需求分析,主要收集支持系統(tǒng)目標(biāo)的基礎(chǔ)數(shù)據(jù)及其處理。在進(jìn)行需求分析時,主要采用結(jié)構(gòu)化分析(Structured Analysis,簡稱SA)方法,由頂向下逐層分解,并用數(shù)據(jù)流圖(Data Flow Diagram,簡稱DFD)、數(shù)據(jù)字典(Data Dictionary,簡稱DD)來描述系統(tǒng)現(xiàn)實(shí)世界和未來應(yīng)用的數(shù)據(jù)分析情況。
2.1 數(shù)據(jù)流圖(DFD)
本系統(tǒng)涉及的數(shù)據(jù)很多,有車站、車票、車次、座次、旅客、到站(目的地)等,這里就舉例說明使用DFD表達(dá)數(shù)據(jù)處理的關(guān)系,如圖2和圖3所示。
對售票模塊還可細(xì)化,這里不贅述。售票時,首先接受旅客的購票請求(包括車次、張數(shù)、票款等),然后檢查該車次是否還有車票、所支付的票款是否足夠,最后根據(jù)檢查結(jié)果出票并將車票交給旅客。其他模塊的DFD在此不詳述。
2.2數(shù)據(jù)字典(DD)
數(shù)據(jù)字典是對系統(tǒng)DFD中數(shù)據(jù)的詳盡描述,是各類數(shù)據(jù)屬性的清單。數(shù)據(jù)組成的層次關(guān)系如圖4所示。數(shù)據(jù)項(xiàng)在數(shù)據(jù)字典中是最小單位,數(shù)據(jù)項(xiàng)組成數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)組成數(shù)據(jù)流和數(shù)據(jù)存儲文件。
數(shù)據(jù)字典主要包括四類條目:數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲文件,現(xiàn)舉例說明。
1)數(shù)據(jù)項(xiàng)
數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名稱,數(shù)據(jù)項(xiàng)含義說明,別名,類型,長度,取值范圍,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系等}。
“票面價格”的數(shù)據(jù)項(xiàng)條目:條目編號:1-002;名稱:票面價格;別名:PMJG;說明:車票的實(shí)際價格;類型:數(shù)字;長度:7;范圍:0.00-9999.00。
2)數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)重點(diǎn)描述數(shù)據(jù)之間的組合關(guān)系。數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名稱,數(shù)據(jù)結(jié)構(gòu)含義說明,結(jié)構(gòu):{數(shù)據(jù)項(xiàng)名稱}}。
“車次”數(shù)據(jù)結(jié)構(gòu)條目:條目編號:2-012;名稱:車次;說明:建立數(shù)據(jù)庫時整理其代碼及對應(yīng)線路;結(jié)構(gòu)={名稱,出發(fā)地,目的地,是否可以售票,出票人(出票窗口),票價}。
3)數(shù)據(jù)流
數(shù)據(jù)流描述數(shù)據(jù)結(jié)構(gòu)的“運(yùn)動”。數(shù)據(jù)流={數(shù)據(jù)流名稱,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,結(jié)構(gòu)={數(shù)據(jù)項(xiàng)名稱或數(shù)據(jù)結(jié)構(gòu)名稱}}。
“購票請求”數(shù)據(jù)流條目:條目編號:3-035;名稱:售票請求;說明:旅客購票時發(fā)出;數(shù)據(jù)來源:旅客;數(shù)據(jù)去向:接收請求;結(jié)構(gòu)={車次,車票類型:兒童票/成人票/免費(fèi)票,車票張數(shù),票款}。
4)數(shù)據(jù)存儲文件
數(shù)據(jù)存儲文件是數(shù)據(jù)結(jié)構(gòu)的靜止?fàn)顟B(tài),主要描述該數(shù)據(jù)存儲的結(jié)構(gòu)及有關(guān)的數(shù)據(jù)流、查詢要求等。數(shù)據(jù)存儲文件={數(shù)據(jù)存儲文件名稱,說明,有關(guān)數(shù)據(jù)流,結(jié)構(gòu)={數(shù)據(jù)項(xiàng)名稱或數(shù)據(jù)結(jié)構(gòu)名稱},數(shù)據(jù)量,存取方式,查詢要求}。
“售出車票”數(shù)據(jù)存儲文件條目:條目編號4-047;名稱:售出車票;說明:每天售出的車票信息明細(xì);有關(guān)數(shù)據(jù)流:旅客請求后購票,旅客上車時驗(yàn)票;結(jié)構(gòu)={車次,車票類型:兒童票/成人票/免費(fèi)票,票面價格,實(shí)際售票價格,售票日期,檢票時間,檢票總次數(shù)};數(shù)據(jù)量:每天不確定,淡旺季相差較大:存取方式:購售票寫入,檢票時讀與寫,查詢時讀??;查詢要求:檢票時查詢,其他隨機(jī)查詢。
3 E-R數(shù)據(jù)類型
數(shù)據(jù)庫需求分析完成后,進(jìn)入該面模型設(shè)計,概念模型設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,在數(shù)據(jù)庫概念設(shè)計中應(yīng)用的最廣泛和最成功的方法是用E—R數(shù)據(jù)模型(Entity-Relationship Data Model),它能有效、自然的模擬現(xiàn)實(shí)世界數(shù)據(jù)的實(shí)體、屬性、實(shí)體間的聯(lián)系,通常用E—R圖表示。
本系統(tǒng)中有很多的實(shí)體、屬性、聯(lián)系,在此簡單舉例說明,如圖5所示。
有了E-R模型后,必須轉(zhuǎn)化為DBMS所支持的數(shù)據(jù)模型,本文設(shè)計時選擇的是關(guān)系模型,根據(jù)E—R模型轉(zhuǎn)化為關(guān)系模型的一般原則,圖5中的某些部分對應(yīng)的關(guān)系模型為:
車票(編號,類型,票額……)
車輛(編號,出發(fā)地,目的地,最多可容納旅客數(shù)量……)
檢票口(編號,名稱,地點(diǎn),車次……)
檢票(車票編號,車次,當(dāng)前檢票次數(shù)……)
4 功能實(shí)現(xiàn)方案
4.1 數(shù)據(jù)準(zhǔn)備
站務(wù)中心數(shù)據(jù)庫中存放班次的座位信息和檢票信息,售票信息用于各站座位數(shù)的同步,檢票信息用于進(jìn)站檢查有無路上上客、為補(bǔ)票提供依據(jù)。
中心庫中包含以上兩站所有班次信息,各站除臨時加班外,不得自行新增班次,以確保班次名稱統(tǒng)一。
班次計劃中新增車站編碼列,據(jù)此同步該班次各站的信息。
統(tǒng)一線路的站點(diǎn)、里程信息和源頭站的票價、結(jié)算價信息。
統(tǒng)一進(jìn)站車輛信息,新增車站編碼列,據(jù)此同步該班次各站的信息。
統(tǒng)一站點(diǎn)編碼。
財務(wù)信息(票據(jù)、票款和報單結(jié)算信息)只存本地不變。
票據(jù)上增售票車站列,以利于今后結(jié)算,默認(rèn)為空代表本站售票。
4.2數(shù)據(jù)庫存儲過程
1)提交售票存儲過程
增加以分布式事物(DISTRIBUTED TRANSACTION…COMMIT/ROLLBACK)在中心庫中加鎖、同步修改中心庫和本地庫車次座位信息。同時調(diào)用中心庫的遠(yuǎn)程存儲過程或觸發(fā)器修改相關(guān)各站該班次的座位信息。
2)提交退票存儲過程
增加以分布式事物(DISTRIBUTED TRANSACTION…COMMIT/ROLLBACK)同步修改中心庫和本地庫車次座位信息。同時調(diào)用中心庫的遠(yuǎn)程存儲過程或觸發(fā)器修改相關(guān)各站該班次座位的信息。
3)提交新增班次計劃存儲過程
在中心庫中增加班次計劃,同時存儲相關(guān)車站的信息,以此同步增加各站班次計劃數(shù)據(jù),但是時間由各站自行錄入。
4)提交調(diào)整班次計劃存儲過程
除時間信息外,其他信息的修改同步修改各站的班次信息(座位、線路編號、車型以及對班次的停開、恢復(fù)等),取消各站對共享班次座位的預(yù)留功能。
5)提交線路及線路票價修改存儲過程
同城不一定同票價,就算票價相同結(jié)算價也不盡相同,此處未考慮周全。
6)提交新增、修改進(jìn)站車輛存儲過程
在中心庫中增加、修改車輛信息,同時存儲相關(guān)車站的信息,以此同步增加、修改各站車輛信息。
4.3 客戶端程序
1) 增加聯(lián)網(wǎng)/獨(dú)立售票選項(xiàng),在斷網(wǎng)時確保分段獨(dú)立售票。
2) 各站班次計劃調(diào)整增是否聯(lián)動修改中心庫和相關(guān)庫的選項(xiàng)。
5 關(guān)鍵技術(shù)
1)添加新的服務(wù)器鏈接
exec sp_addlinkedserver'srv_lnk','','SQLOLEDB','遠(yuǎn)程服務(wù)器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','1',1,'用戶名','密碼'
EXEC sp_configure 'remote access', 1--無用
RECONFIGURE
2)啟動分布式事務(wù)處理功能
①企業(yè)管理器或服務(wù)器管理器;②安裝MSDTC2.8;c.網(wǎng)絡(luò)-〉本地連接->屬性-〉高級-〉防火墻設(shè)置-〉例外-〉添加MSDTC.exe。
3)啟動DTC的RPC
①企業(yè)管理器、鏈接服務(wù)器、安全屬性、鏈接服務(wù)器屬性,選擇“RPC”和“RPC OUT”選項(xiàng)。
②或者用exec sp_serveroption 'srv_lnk','rpc out','true'--這個允許調(diào)用鏈接服務(wù)器上的存儲過程。
4)操作遠(yuǎn)程服務(wù)器數(shù)據(jù)
①select * from srv_lnk.數(shù)據(jù)庫.DBO.表名
②update srv_lnk.數(shù)據(jù)庫.DBO.表名 set …..
5)調(diào)用遠(yuǎn)程存儲過程
exec @rc=[srv_lnk].數(shù)據(jù)庫.DBO.存儲果成名 @參數(shù)1 @參數(shù)2……
6)設(shè)置事務(wù)原子性提交/回滾
setXACT_ABORT on
7)啟動分布式事務(wù)
begin distributed transaction… … commit /Rollback
8)生成SQL語句,等待執(zhí)行
setXACT_ABORT on
declare @SQlString char(100),@X int
select @X=1
begin distributed transcation
while@X<=len(rtrim(@站點(diǎn)列))
begin
@SQLString=’update ’+@serverlink+’數(shù)據(jù)庫名.dbo.表名 set 列名=’+@參數(shù)
exec (@SQLString)
if @@erroe<>0
rollback
end
commit
9)加鎖處理
setXACT_ABORT on
begin distributed transcation
update centralserver.sms.dbo.ccjh set cc=@Pcc
where cc=@Pcc and dbo.uf_dtoc(pmsj)=@Pdate
select * from centralserver.sms.dbo.ccjh
if somecondition=1
rollback
return 1
Update centralserver.sms.dbo.ccjh set somefield=@someParamate--Remote DataBase
where cc=@Pcc and dbo.uf_dtoc(pmsj)=@Pdate
if @error<>0
begin
rollback
return 1
end
else
begin
Update ccjh set somefield=@someParamate--local DataBase
where cc=@Pcc and dbo.uf_dtoc(pmsj)=@Pdate
if @error<>0
begin
rollback
return 1
end
else
commit
end
6 結(jié)束語
通過對相對集中的聯(lián)營的一個或多個車站(售票點(diǎn))的票務(wù)系統(tǒng)的數(shù)據(jù)庫設(shè)計,使原來散列的車票信息,利用計算機(jī)信息系統(tǒng)將傳統(tǒng)的單點(diǎn)售票和網(wǎng)絡(luò)化的聯(lián)網(wǎng)售票有機(jī)地、系統(tǒng)地結(jié)合起來加以管理,便于對每個旅客、每張車票、每個車次乃至每輛車等多層次的管理。SQL數(shù)據(jù)庫的使用,使得對車輛信息,票務(wù)信息等大量數(shù)據(jù)的組織、查詢、管理等都非常的方便和高效,從而更大程度上的滿足了旅客的需要。
參考文獻(xiàn):
[1] 張國鋒,管理信息系統(tǒng)[M].機(jī)械工業(yè)出版社,2002.
[2] 李赫雄 許宏泰等,SQL Server 2000應(yīng)用程序開發(fā)[M].人民郵電出版社,2001.
[3] 陳桂友 孫同景等,PowerBuider數(shù)據(jù)庫開發(fā)技術(shù)[M].機(jī)械工業(yè)出版社,2002.
[4] (美)Ramez Elmasri,Shamkant B.Navathe.?dāng)?shù)據(jù)庫系統(tǒng)基礎(chǔ):高級篇 4版) [M].北京:人民郵電出版社,2006.
[5] Manuel Roman Nayeem Islam.Dynamieally programmable and reconfigurable Middleware Services[A]. H. –A.Jacobsen. Middleware 2004[C].LNCS 3231:IFIP International Federation for Information Processing,2004:372-396.
[6] 胡彬華,李曉.異構(gòu)分布式數(shù)據(jù)庫系統(tǒng)集成的研究與實(shí)現(xiàn)[J].計算機(jī)應(yīng)用研究,2002:68-70.
[7] 王行言.Oracle數(shù)據(jù)庫應(yīng)用開發(fā)基礎(chǔ)〔M〕.北京:清華大學(xué)出版社,2003:87-88.
[8] Wua L.MilleraL,Nilakantab S. Design of data warehouses using metadata[J].Information and Software Technology,2001,43:109-119.