摘要:汽運由于其時間的靈活性、運行的機動性和廣闊的公路網所帶來的延展性,使得汽車成為更多人短途旅行的首選。但汽車運輸如今陷入一個比較尷尬的境地,汽車票則只能在汽車站的售票大廳才能買到。經過多方考察,系統(tǒng)擬從實際情況考慮將市內各站及縣市車站進行并網互聯(lián),同時實施各外點的聯(lián)網,方便乘客購票及網上預訂票、在指定車站上車。系統(tǒng)從設計上主要有售票、廢票、改簽票、退票、補票、預訂、售票查詢和票款結算等功能。為提高售票速度,系統(tǒng)提供全鍵盤售票操作,而且盡量集中在右手小鍵盤。
關鍵詞:聯(lián)網售票;系統(tǒng);網絡架構;數(shù)據庫;數(shù)據字典
中圖分類號:TP302.1 文獻標識碼: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)概述
中國有著遼闊的地域,同時由于東西南北各地經濟發(fā)展的不平衡性,每逢節(jié)假日,客運高峰使得各地之間的旅客運輸長久以來成為各級政府關注的問題。雖然隨著人們經濟收入的逐步提高,越來越多的人開始選擇飛機作為出行的一個新的選擇,但是“鐵老大,汽老二”的格局始終沒有改變,汽運由于其時間的靈活性、運行的機動性和廣闊的公路網所帶來的延展性,使得汽車成為更多人短途旅行的首選。
但汽車運輸如今陷入一個比較尷尬的境地,那就是“坐等上門”。飛機票可以網上預定,火車票可以在代售點購買,而汽車票則只能在汽車站的售票大廳才能買到,這在一定程度上限制了汽車客運的發(fā)展。
本系統(tǒng)擬從實際情況考慮將市內各站及縣市車站進行并網互聯(lián),同時實施各外點的聯(lián)網,方便乘客購票及網上預訂票、在指定車站上車。
本系統(tǒng)從設計上主要有售票、廢票、改簽票、退票、補票、預訂、售票查詢和票款結算等功能。為提高售票速度,系統(tǒng)提供全鍵盤售票操作,而且盡量集中在右手小鍵盤。按站點售票時需輸入3位數(shù)字的站點代碼。站點代碼有兩種,一種是數(shù)字代碼,一種是拼音簡碼(站點名的拼音聲母開頭)。售票時使用數(shù)字式售票代碼可減少鍵盤操作難度,即使售票員從未使用過電腦,經過簡短的培訓后也能立即操作電腦進行售票。使用數(shù)字式售票代碼的另一好處是可以單手操作電腦,這樣可以提高工作效率,降低勞動強度。在售票時,如果售票員記不清站點代碼,也可通過按拼音碼聲母方式查詢,售票操作非常方便、快捷。還可按地區(qū)售票,操作方法和按站點售票類似。
1.2 基礎設施設計方案
總部建立中心機房,架專用服務器,建站務中心數(shù)據庫,負責同步東站和海泊河兩站的數(shù)據庫中的座位信息。各站服務器與總部中心服務器的數(shù)據庫同步,各站服務器之間不能相互訪問,確保各站數(shù)據庫信息的安全穩(wěn)定。但是總部中心服務器可與各站服務器互通。
1.2.1 網絡架構
總部中心機房的專用服務器與各子站的售檢票服務器采用星型結構進行互聯(lián),組建成一個集團站務信息網。(如圖1)
聯(lián)網采用線路擬選用網通的數(shù)字電路互聯(lián)技術(SDH)實現(xiàn)。總部中心機房的帶寬應比各站高,以確保今后業(yè)務拓展的需要,擬采用10Mbps帶寬光纖。各站采用2Mbps光纖。整個網絡由集團統(tǒng)一規(guī)劃拓撲結構、劃分網段、統(tǒng)一分配各站局域網服務器、各工作站的IP地址。總部中心機房配路由器防火墻,各站只配路由器,放開MSDTC135端口即可。
1.2.2總部專用服務器架構
為了取保整個系統(tǒng)的安全、穩(wěn)定,擬采用雙機熱備方式進行實施。即兩臺一樣的高性能服務器共享磁盤陣列柜,同時僅有一臺執(zhí)行操作,另一臺服務器以“心跳線”與之相連。當其中一臺服務器宕機時,另一臺服務器立刻接管所有應用服務,數(shù)據庫存儲于磁盤陣列柜上。
1.2.3供電設計
為了確保服務器不因停電而影響各站售檢票系統(tǒng)的正常運行,擬采用8小時長延時在線式UPS予以支持。
1.3數(shù)據庫系統(tǒng)結構
外部級是每個用戶所能看到的數(shù)據庫內容,一般以用戶視圖方式出現(xiàn)。概念級是整個數(shù)據庫的全部信息視圖,可用E—R圖來表示。內部級就是被存儲的數(shù)據庫,它規(guī)定數(shù)據項、記錄、數(shù)據集、索引、路徑等一切物理組織。為了實現(xiàn)數(shù)據庫的外部級、概念級、內部級3個級別的轉換,DBMS提供了外模式/概念模式和概念模式/物理模式兩個層次的映像。
2 系統(tǒng)數(shù)據流圖
數(shù)據庫設計必須首先進行數(shù)據的需求分析,主要收集支持系統(tǒng)目標的基礎數(shù)據及其處理。在進行需求分析時,主要采用結構化分析(Structured Analysis,簡稱SA)方法,由頂向下逐層分解,并用數(shù)據流圖(Data Flow Diagram,簡稱DFD)、數(shù)據字典(Data Dictionary,簡稱DD)來描述系統(tǒng)現(xiàn)實世界和未來應用的數(shù)據分析情況。
2.1 數(shù)據流圖(DFD)
本系統(tǒng)涉及的數(shù)據很多,有車站、車票、車次、座次、旅客、到站(目的地)等,這里就舉例說明使用DFD表達數(shù)據處理的關系,如圖2和圖3所示。
對售票模塊還可細化,這里不贅述。售票時,首先接受旅客的購票請求(包括車次、張數(shù)、票款等),然后檢查該車次是否還有車票、所支付的票款是否足夠,最后根據檢查結果出票并將車票交給旅客。其他模塊的DFD在此不詳述。
2.2數(shù)據字典(DD)
數(shù)據字典是對系統(tǒng)DFD中數(shù)據的詳盡描述,是各類數(shù)據屬性的清單。數(shù)據組成的層次關系如圖4所示。數(shù)據項在數(shù)據字典中是最小單位,數(shù)據項組成數(shù)據結構,數(shù)據結構組成數(shù)據流和數(shù)據存儲文件。
數(shù)據字典主要包括四類條目:數(shù)據項、數(shù)據結構、數(shù)據流、數(shù)據存儲文件,現(xiàn)舉例說明。
1)數(shù)據項
數(shù)據項描述={數(shù)據項名稱,數(shù)據項含義說明,別名,類型,長度,取值范圍,與其他數(shù)據項的邏輯關系等}。
“票面價格”的數(shù)據項條目:條目編號:1-002;名稱:票面價格;別名:PMJG;說明:車票的實際價格;類型:數(shù)字;長度:7;范圍:0.00-9999.00。
2)數(shù)據結構
數(shù)據結構重點描述數(shù)據之間的組合關系。數(shù)據結構描述={數(shù)據結構名稱,數(shù)據結構含義說明,結構:{數(shù)據項名稱}}。
“車次”數(shù)據結構條目:條目編號:2-012;名稱:車次;說明:建立數(shù)據庫時整理其代碼及對應線路;結構={名稱,出發(fā)地,目的地,是否可以售票,出票人(出票窗口),票價}。
3)數(shù)據流
數(shù)據流描述數(shù)據結構的“運動”。數(shù)據流={數(shù)據流名稱,說明,數(shù)據流來源,數(shù)據流去向,結構={數(shù)據項名稱或數(shù)據結構名稱}}。
“購票請求”數(shù)據流條目:條目編號:3-035;名稱:售票請求;說明:旅客購票時發(fā)出;數(shù)據來源:旅客;數(shù)據去向:接收請求;結構={車次,車票類型:兒童票/成人票/免費票,車票張數(shù),票款}。
4)數(shù)據存儲文件
數(shù)據存儲文件是數(shù)據結構的靜止狀態(tài),主要描述該數(shù)據存儲的結構及有關的數(shù)據流、查詢要求等。數(shù)據存儲文件={數(shù)據存儲文件名稱,說明,有關數(shù)據流,結構={數(shù)據項名稱或數(shù)據結構名稱},數(shù)據量,存取方式,查詢要求}。
“售出車票”數(shù)據存儲文件條目:條目編號4-047;名稱:售出車票;說明:每天售出的車票信息明細;有關數(shù)據流:旅客請求后購票,旅客上車時驗票;結構={車次,車票類型:兒童票/成人票/免費票,票面價格,實際售票價格,售票日期,檢票時間,檢票總次數(shù)};數(shù)據量:每天不確定,淡旺季相差較大:存取方式:購售票寫入,檢票時讀與寫,查詢時讀取;查詢要求:檢票時查詢,其他隨機查詢。
3 E-R數(shù)據類型
數(shù)據庫需求分析完成后,進入該面模型設計,概念模型設計是整個數(shù)據庫設計的關鍵,在數(shù)據庫概念設計中應用的最廣泛和最成功的方法是用E—R數(shù)據模型(Entity-Relationship Data Model),它能有效、自然的模擬現(xiàn)實世界數(shù)據的實體、屬性、實體間的聯(lián)系,通常用E—R圖表示。
本系統(tǒng)中有很多的實體、屬性、聯(lián)系,在此簡單舉例說明,如圖5所示。
有了E-R模型后,必須轉化為DBMS所支持的數(shù)據模型,本文設計時選擇的是關系模型,根據E—R模型轉化為關系模型的一般原則,圖5中的某些部分對應的關系模型為:
車票(編號,類型,票額……)
車輛(編號,出發(fā)地,目的地,最多可容納旅客數(shù)量……)
檢票口(編號,名稱,地點,車次……)
檢票(車票編號,車次,當前檢票次數(shù)……)
4 功能實現(xiàn)方案
4.1 數(shù)據準備
站務中心數(shù)據庫中存放班次的座位信息和檢票信息,售票信息用于各站座位數(shù)的同步,檢票信息用于進站檢查有無路上上客、為補票提供依據。
中心庫中包含以上兩站所有班次信息,各站除臨時加班外,不得自行新增班次,以確保班次名稱統(tǒng)一。
班次計劃中新增車站編碼列,據此同步該班次各站的信息。
統(tǒng)一線路的站點、里程信息和源頭站的票價、結算價信息。
統(tǒng)一進站車輛信息,新增車站編碼列,據此同步該班次各站的信息。
統(tǒng)一站點編碼。
財務信息(票據、票款和報單結算信息)只存本地不變。
票據上增售票車站列,以利于今后結算,默認為空代表本站售票。
4.2數(shù)據庫存儲過程
1)提交售票存儲過程
增加以分布式事物(DISTRIBUTED TRANSACTION…COMMIT/ROLLBACK)在中心庫中加鎖、同步修改中心庫和本地庫車次座位信息。同時調用中心庫的遠程存儲過程或觸發(fā)器修改相關各站該班次的座位信息。
2)提交退票存儲過程
增加以分布式事物(DISTRIBUTED TRANSACTION…COMMIT/ROLLBACK)同步修改中心庫和本地庫車次座位信息。同時調用中心庫的遠程存儲過程或觸發(fā)器修改相關各站該班次座位的信息。
3)提交新增班次計劃存儲過程
在中心庫中增加班次計劃,同時存儲相關車站的信息,以此同步增加各站班次計劃數(shù)據,但是時間由各站自行錄入。
4)提交調整班次計劃存儲過程
除時間信息外,其他信息的修改同步修改各站的班次信息(座位、線路編號、車型以及對班次的停開、恢復等),取消各站對共享班次座位的預留功能。
5)提交線路及線路票價修改存儲過程
同城不一定同票價,就算票價相同結算價也不盡相同,此處未考慮周全。
6)提交新增、修改進站車輛存儲過程
在中心庫中增加、修改車輛信息,同時存儲相關車站的信息,以此同步增加、修改各站車輛信息。
4.3 客戶端程序
1) 增加聯(lián)網/獨立售票選項,在斷網時確保分段獨立售票。
2) 各站班次計劃調整增是否聯(lián)動修改中心庫和相關庫的選項。
5 關鍵技術
1)添加新的服務器鏈接
exec sp_addlinkedserver'srv_lnk','','SQLOLEDB','遠程服務器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','1',1,'用戶名','密碼'
EXEC sp_configure 'remote access', 1--無用
RECONFIGURE
2)啟動分布式事務處理功能
①企業(yè)管理器或服務器管理器;②安裝MSDTC2.8;c.網絡-〉本地連接->屬性-〉高級-〉防火墻設置-〉例外-〉添加MSDTC.exe。
3)啟動DTC的RPC
①企業(yè)管理器、鏈接服務器、安全屬性、鏈接服務器屬性,選擇“RPC”和“RPC OUT”選項。
②或者用exec sp_serveroption 'srv_lnk','rpc out','true'--這個允許調用鏈接服務器上的存儲過程。
4)操作遠程服務器數(shù)據
①select * from srv_lnk.數(shù)據庫.DBO.表名
②update srv_lnk.數(shù)據庫.DBO.表名 set …..
5)調用遠程存儲過程
exec @rc=[srv_lnk].數(shù)據庫.DBO.存儲果成名 @參數(shù)1 @參數(shù)2……
6)設置事務原子性提交/回滾
setXACT_ABORT on
7)啟動分布式事務
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(@站點列))
begin
@SQLString=’update ’+@serverlink+’數(shù)據庫名.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 結束語
通過對相對集中的聯(lián)營的一個或多個車站(售票點)的票務系統(tǒng)的數(shù)據庫設計,使原來散列的車票信息,利用計算機信息系統(tǒng)將傳統(tǒng)的單點售票和網絡化的聯(lián)網售票有機地、系統(tǒng)地結合起來加以管理,便于對每個旅客、每張車票、每個車次乃至每輛車等多層次的管理。SQL數(shù)據庫的使用,使得對車輛信息,票務信息等大量數(shù)據的組織、查詢、管理等都非常的方便和高效,從而更大程度上的滿足了旅客的需要。
參考文獻:
[1] 張國鋒,管理信息系統(tǒng)[M].機械工業(yè)出版社,2002.
[2] 李赫雄 許宏泰等,SQL Server 2000應用程序開發(fā)[M].人民郵電出版社,2001.
[3] 陳桂友 孫同景等,PowerBuider數(shù)據庫開發(fā)技術[M].機械工業(yè)出版社,2002.
[4] (美)Ramez Elmasri,Shamkant B.Navathe.數(shù)據庫系統(tǒng)基礎:高級篇 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] 胡彬華,李曉.異構分布式數(shù)據庫系統(tǒng)集成的研究與實現(xiàn)[J].計算機應用研究,2002:68-70.
[7] 王行言.Oracle數(shù)據庫應用開發(fā)基礎〔M〕.北京:清華大學出版社,2003:87-88.
[8] Wua L.MilleraL,Nilakantab S. Design of data warehouses using metadata[J].Information and Software Technology,2001,43:109-119.