王小霞
(中國社會(huì)科學(xué)院民族學(xué)與人類學(xué)研究所 網(wǎng)絡(luò)信息中心,,北京 100081)
摘要:研究了數(shù)據(jù)庫檢索系統(tǒng)的相關(guān)技術(shù)并介紹了一種基于B/S模式的數(shù)據(jù)庫檢索系統(tǒng),。系統(tǒng)選擇H2數(shù)據(jù)庫,應(yīng)用B/S模式和MVC框架實(shí)現(xiàn)對(duì)文本,、圖片,、聲頻和視頻等多種數(shù)據(jù)資源的統(tǒng)一描述和集成管理,可對(duì)多種資源統(tǒng)一檢索,。
關(guān)鍵詞:數(shù)據(jù)庫,;檢索系統(tǒng);H2,;瀏覽器/服務(wù)器(B/S)模式,;MVC框架
中圖分類號(hào):TP309.3文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.06.027
引用格式:王小霞. 基于B/S模式數(shù)據(jù)庫檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2017,36(6):89-91.
0引言
*基金項(xiàng)目:國家民委民族問題研究項(xiàng)目(2016GMB012)隨著數(shù)據(jù)信息電子化的發(fā)展,,對(duì)數(shù)據(jù)庫的檢索查詢應(yīng)用變得尤為重要,。依靠SQL 語句查詢的方式要求用戶既要掌握 SQL 語言,又要理解數(shù)據(jù)的組織結(jié)構(gòu),。所以通過關(guān)鍵詞檢索技術(shù)和語義知識(shí)庫技術(shù)是解決數(shù)據(jù)庫檢索問題的關(guān)鍵技術(shù),。由于社會(huì)科學(xué)研究人員在數(shù)據(jù)庫檢索方面基礎(chǔ)知識(shí)的有限,數(shù)據(jù)庫檢索在社會(huì)科學(xué)研究中的應(yīng)用發(fā)展就會(huì)顯得尤為急需,。
再者從數(shù)據(jù)庫檢索的發(fā)展情況來看,,關(guān)鍵詞檢索技術(shù)隨著互聯(lián)網(wǎng)上搜索引擎的巨大成功而逐漸成熟,用戶只需在搜索引擎中輸入需要查詢的關(guān)鍵詞,搜索引擎便可將匹配關(guān)鍵詞的內(nèi)容按照相關(guān)程度排序呈現(xiàn)給用戶,。關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索一直是一個(gè)主流的研究方向[1],。
本文根據(jù)工作的現(xiàn)實(shí)需求,設(shè)計(jì)開發(fā)一個(gè)數(shù)據(jù)庫檢索系統(tǒng),,系統(tǒng)以 J2EE 架構(gòu)為基礎(chǔ),,結(jié)合H2數(shù)據(jù)庫技術(shù)、語義 Web 技術(shù)和關(guān)鍵詞檢索技術(shù),,實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫語義理解和檢索,。
1系統(tǒng)分析
關(guān)于新疆游牧維族研究資料的應(yīng)用,利用數(shù)據(jù)庫的手段,,借用人類學(xué)的方法,,全面地考察、記錄游牧維族的社會(huì)文化,,建立高水平的民族學(xué)人類學(xué)專題數(shù)據(jù)庫檢索系統(tǒng),。
根據(jù)需要和數(shù)據(jù)庫檢索技術(shù)及當(dāng)前軟件發(fā)展的趨勢(shì), 該數(shù)據(jù)庫檢索系統(tǒng)需要做到檢索速度快、方便外出攜帶等,,因此選擇H2數(shù)據(jù)庫,采用JSP技術(shù)B/S結(jié)構(gòu)模式,,以 “模型視圖控制器” (ModelViewController,MVC)設(shè)計(jì)模式為理念進(jìn)行系統(tǒng)開發(fā)設(shè)計(jì)和MVC框架設(shè)計(jì),,完成該數(shù)據(jù)庫的開發(fā),,實(shí)現(xiàn)數(shù)據(jù)信息的交換。
2數(shù)據(jù)庫檢索系統(tǒng)設(shè)計(jì)
2.1H2數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫設(shè)計(jì)是數(shù)據(jù)庫檢索系統(tǒng)的核心部分,,數(shù)據(jù)庫設(shè)計(jì)的優(yōu)劣直接關(guān)系到檢索的速度與穩(wěn)定性,。 而對(duì)于數(shù)據(jù)庫設(shè)計(jì)來說,最重要的是遵循數(shù)據(jù)庫設(shè)計(jì)的一般原則,,即安全,、完整、一致,、規(guī)范,。
H2是一個(gè)較小的嵌入式數(shù)據(jù)庫引擎,屬于開源數(shù)據(jù)庫,,可以隨時(shí)免費(fèi)快速使用,,有嵌入式的數(shù)據(jù)庫服務(wù)器,支持集群,。H2數(shù)據(jù)庫和其他的常用的開源數(shù)據(jù)庫如Derby,、HSQLDB、MySQL,、PostgreSQL不同,,這幾種開源數(shù)據(jù)庫都需要安裝獨(dú)立的客戶端和服務(wù)器端,。H2的優(yōu)勢(shì)在于:(1)H2采用純Java編寫,因此不受平臺(tái)的限制,;(2)H2只有一個(gè)jar文件,,十分適合作為嵌入式數(shù)據(jù)庫試用;(3)H2提供Web控制臺(tái)用于操作和管理數(shù)據(jù)庫內(nèi)容[2],。
鑒于數(shù)據(jù)庫檢索系統(tǒng)的特殊需求,,選擇H2數(shù)據(jù)庫。數(shù)據(jù)庫定義了資源類型resource type(專著/論文/其他文章/圖片/視頻),、社會(huì)文化類social culture type(社會(huì)組織、婚姻家庭制度,、生產(chǎn)現(xiàn)狀,、衣食住行、教育,、語言文化,、藝術(shù)文化、婚俗文化,、宗教信仰文化,、喪葬文化)、題目title,、作者Author,、提供者Provider、doc文件名Filename,、pdf文件名filename,、論文摘要(2 000字內(nèi))、關(guān)鍵詞keyword,、來源/出處sources,、出版社publisher、出版時(shí)間或拍攝時(shí)間time,、地點(diǎn)place,、資源對(duì)象類型resource object type(山區(qū)游牧牧民、沙漠腹地游牧牧民,、和游牧相關(guān)的村民,、非游牧牧民);相關(guān)民族EthnicGroup關(guān)鍵詞key words,、摘要abstract等,。
H2數(shù)據(jù)庫與各數(shù)據(jù)庫特征的對(duì)比如表1所示。
2.2B/S結(jié)構(gòu)模式
瀏覽器的客戶機(jī)/服務(wù)器(Browser/Server,B/S)結(jié)構(gòu)通信方式比C/S結(jié)構(gòu)高效,。B/S結(jié)構(gòu)將系統(tǒng)功能實(shí)現(xiàn)的主要內(nèi)容集中到服務(wù)器上,。客戶端可以使用任何一個(gè)瀏覽器如Internet Explorer或Netscape Navigator,數(shù)據(jù)庫服務(wù)器安裝H2,、SQL Server,、Oracle、MYSQL等數(shù)據(jù)庫,。瀏覽器可以通圖1B/S模式結(jié)構(gòu)圖過Web服務(wù)同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,。B/S模式結(jié)構(gòu)圖如圖1所示。
采用B/S模式有以下的好處:(1)各個(gè)用戶通過 HTTP請(qǐng)求在權(quán)限范圍內(nèi)調(diào)用 Web 服務(wù)器上不同處理程序,,從而完成對(duì)數(shù)據(jù)的查詢或修改,;(2)它使用戶的操作變得更簡單;(3)客戶端只是一個(gè)簡單易用的瀏覽器軟件,。無論是決策層還是操作層的人員都無需培訓(xùn),,可以直接使用。B/S 模式的這種特性,,還使系統(tǒng)維護(hù)的限制因素更少,; B/S 也適用于網(wǎng)上信息發(fā)布,使得傳統(tǒng)的 MIS 的功能有所擴(kuò)展[3],。
2.3MVC框架
MVC是一個(gè)存在于服務(wù)器端表達(dá)層的模型,,它將應(yīng)用分開,改變應(yīng)用之后的高度耦合,。MVC 模型將應(yīng)用分為三層:模型(Model),、視圖(View)、控制器(Controller),。
模型:相當(dāng)于一個(gè)數(shù)據(jù)庫應(yīng)用,,用數(shù)據(jù)庫來存儲(chǔ)應(yīng)用的狀態(tài)。視圖:相當(dāng)于一個(gè)頁面的顯示,,以某種方式將模型中的應(yīng)用展現(xiàn)在用戶面前,。控制器:在視圖中將用戶的輸入提交給指定的模型,,然后在模型中解釋用戶的輸入,,最后將結(jié)果返回給視圖[4]。
MVC模式的優(yōu)點(diǎn): 首先,,模型,、視圖與控制器的分離使得一個(gè)模型可以具有多個(gè)顯示視圖,如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),,所有其他依賴于這些數(shù)據(jù)的視圖都應(yīng)反映這些變化,,因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,,控制器都會(huì)將變化通知所有的視圖,,實(shí)現(xiàn)顯示的更新,。其次,模型的可移植性,。因?yàn)槟P褪仟?dú)立于視圖的,,所以可以把一個(gè)模型獨(dú)立地移植到新的平臺(tái)工作,需要做的只是在新平臺(tái)上對(duì)視圖和控制器進(jìn)行修改[5],。
可以借用參考文獻(xiàn)[6]中MVC框架結(jié)構(gòu)圖(如圖2所示)進(jìn)一步了解MVC框架,。
3數(shù)據(jù)庫檢索系統(tǒng)的實(shí)現(xiàn)
鑒于以上需求分析和技術(shù)研究,設(shè)計(jì)開發(fā)新疆游牧維族社會(huì)文化調(diào)查研究數(shù)據(jù)庫檢索系統(tǒng),。
整個(gè)檢索系統(tǒng)基于B/S模式,,利用Spring+Hibernate+ExtJs框架整合了應(yīng)用,嚴(yán)格按照MVC的標(biāo)準(zhǔn),,實(shí)現(xiàn)了顯示層,、控制層、業(yè)務(wù)邏輯層和數(shù)據(jù)庫連接層等多層框架,。
利用Spring IOC和Spring AOP作為項(xiàng)目粘合劑,可以動(dòng)態(tài)調(diào)整,、更換所需的企業(yè)級(jí)服務(wù)和應(yīng)用組件,。 借助于Spring IOC,對(duì)所需要的應(yīng)用組件進(jìn)行依賴注入,;借助于Spring AOP,,透明地使用企業(yè)級(jí)服務(wù);借助于Spring,,將主流的開源框架以“熱拔插”方式集成到應(yīng)用,,組成了項(xiàng)目輕量級(jí)的J2EE架構(gòu)。將JOTM集成到Spring應(yīng)用中,,使得持久化服務(wù)能夠基于Hibernate實(shí)現(xiàn),,借助于Spring DAO抽象將Hibernate集成到應(yīng)用組件中。將JSF,、Tapestry Web框架集成到Spring應(yīng)用中,,直接使用Spring提供的集成支持。將基礎(chǔ)的程序塊組成在一起成為一個(gè)連貫的整體,。
Hibernate的底層驅(qū)動(dòng)也讓項(xiàng)目可以隨意地切換數(shù)據(jù)庫,,目前項(xiàng)目使用了內(nèi)存數(shù)據(jù)庫H2,快速簡潔,,Hibernate直接提供相關(guān)的支持,,且與Spring集成使用更簡潔。
3.1數(shù)據(jù)庫檢索系統(tǒng)功能
新疆游牧維族社會(huì)文化調(diào)查研究數(shù)據(jù)庫檢索系統(tǒng)包括檢索系統(tǒng)和新疆游牧維族社會(huì)文化調(diào)查研究數(shù)據(jù)庫,。檢索系統(tǒng)分為文獻(xiàn)查詢和文獻(xiàn)數(shù)據(jù)錄入修改兩個(gè)子系統(tǒng),,其界面如圖3,、圖4所示。
文獻(xiàn)查詢子系統(tǒng)主要功能:系統(tǒng)能分別進(jìn)行資源類型resource type,、題目title,、作者author、文件名name,、出版信息publish information,、地點(diǎn)place、時(shí)間time,、提供者provider,、出處source 、資源對(duì)象類型resource object type,、社會(huì)文化類social culture type 關(guān)鍵詞key words,、摘要abstract等字段的分類單項(xiàng)檢索和并行多項(xiàng)檢索。
文獻(xiàn)數(shù)據(jù)錄入子系統(tǒng)完成文獻(xiàn)數(shù)據(jù)庫數(shù)據(jù)的批量上傳和單條數(shù)據(jù)的添加,、刪除和修改功能,。可以從系統(tǒng)后備庫下載數(shù)據(jù)庫模板進(jìn)行多條數(shù)據(jù)批量修改或整個(gè)數(shù)據(jù)庫數(shù)據(jù)修改替換,。
3.2數(shù)據(jù)庫檢索系統(tǒng)特點(diǎn)
?。?)采用TBS全文檢索系統(tǒng)具有多途徑、多層次檢索文獻(xiàn)的功能,??蓮馁Y源類型resource type、題目title,、作者auther,、文件名name、出版信息publish information,、地點(diǎn)place,、時(shí)間time、提供者provider,、出處source ,、資源對(duì)象類型resource object type、社會(huì)文化類social culture type 關(guān)鍵詞key words,、摘要abstract多個(gè)方面提供多途徑檢索,。
(2)數(shù)據(jù)庫采用了輕數(shù)據(jù)庫H2,,小巧靈活的嵌入式數(shù)據(jù)庫,,可以跨平臺(tái),既保留了結(jié)構(gòu)化數(shù)據(jù)庫特性,,又具備文件式數(shù)據(jù)庫靈活及性能,。(3)用Hiberante技術(shù)做ORM,,增加了大量的緩存機(jī)制,減少了數(shù)據(jù)庫讀取壓力,。系統(tǒng)檢索速度快,。Hibernate的底層驅(qū)動(dòng)也讓項(xiàng)目可以隨意地切換數(shù)據(jù)庫,快速簡潔,。Hibernate直接提供相關(guān)的支持,,且與Spring集成使用更簡潔。
?。?)整個(gè)系統(tǒng)雖然為Web瀏覽,,但是可以做到隨時(shí)拷貝部署。本系統(tǒng)也可以作為公網(wǎng)的服務(wù),,團(tuán)隊(duì)一起瀏覽,,特別適合調(diào)研和之后宣傳使用。
?。?)操作方便,,主要采用菜單驅(qū)動(dòng)方式,直接檢索,,易操作,,調(diào)研過程中,工作人員約定格式即可同時(shí)作業(yè),,只需一鍵導(dǎo)入就可以完成入庫操作。系統(tǒng)啟動(dòng)關(guān)閉都很方便,,數(shù)據(jù)隨時(shí)可以拷貝備份,,便于攜帶。
?。?)數(shù)據(jù)可靠性高,,對(duì)于入庫后的檢索,針對(duì)所有關(guān)注的內(nèi)容均可以檢索,??梢苑奖悴榭磦€(gè)別詳情。
?。?)成本低,經(jīng)濟(jì)效益高,。
4結(jié)論
本文在進(jìn)行系統(tǒng)分析和對(duì)數(shù)據(jù)庫檢索系統(tǒng)核心技術(shù)研究的基礎(chǔ)上,設(shè)計(jì)完成新疆游牧維族社會(huì)文化調(diào)查研究數(shù)據(jù)庫檢索系統(tǒng),。該數(shù)據(jù)庫檢索系統(tǒng)檢索速度快,,方便外出攜帶等多種使用功能,同時(shí)具有低成本,、高效率,、易于維護(hù)和擴(kuò)展以及更新快捷方便等優(yōu)勢(shì),,解決了目前研究人員外出,在沒有網(wǎng)絡(luò)狀態(tài)下檢索困難的問題,,同時(shí)還解決了不能網(wǎng)上發(fā)布的保密資料只供自己瀏覽檢索的問題,。
未來將在數(shù)據(jù)庫檢索多庫聯(lián)合檢索、MVC框架,、Hibernate,、Tomcat、遵循更高技術(shù)的檢索管理架構(gòu)等方面做進(jìn)一步的研究和探索,。
參考文獻(xiàn)
?。?] 萬長林,徐德明. 基于語義的數(shù)據(jù)庫關(guān)鍵詞檢索系統(tǒng)[J]. 計(jì)算機(jī)與現(xiàn)代化,2014(10):37-41.
?。?] Mr & Cheng. H2數(shù)據(jù)庫使用[EB/OL].(2013-xx-xx)[2016-09-19].http://my.oschina.net/leoson/blog/103275.
?。?] 賈福龍. 基于 Web 瀏覽器/服務(wù)器模式 的實(shí)時(shí)審計(jì)系統(tǒng)的開發(fā)[J]. 遼寧工學(xué)院學(xué)報(bào),2006, 8(3) :100-103.
[4] 梁龍,,成益鑫,,吳建波,等.基于 MVC 的振動(dòng)噪聲數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),,2009,,30(19):4415-4418.
[5] 曾令強(qiáng).MVC 模式在高??蒲袡n案管理信息系統(tǒng)中的應(yīng)用研究[J].科技管理研究,,2010,30(14):130-133.
?。?] 邊霞,,趙奎,胡曉勤,,等.基于MVC的文件備份后臺(tái)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),,2011,32(9):3195-3198.