數據庫系統范文
時間:2023-03-30 20:30:05
導語:如何才能寫好一篇數據庫系統,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
專欄作家:陳明,男,中國石油大學教授,博士生導師,特聘教授,研究方向為分布式并行計算、計算智能、軟件工程、大數據計算等,。
摘要:大數據的出現與不斷發展促進了NoSQL數據庫技術的發展及其產品應用,為大數據的存儲、傳輸與處理創造了生態環境。文章介紹NoSQL數據庫的產生過程、特點與潛力、存儲方式與分類以及目前常用的NoSQL數據庫系統。
關鍵詞:大數據;NoSQL;非結構化
半結構化和非結構化是大數據的重要特征之一,如何將數據組織成合理的結構是大數據管理中的一個重要問題,也是一項重大技術挑戰。
1、NosQL的產生
出現于1998年的NoSQL是Carlo Strozzi開發的一個輕量、開源、不提供SQL功能的關系數據庫。在2009年,Johan Oskarsson發起了一次關于分布式開源數據庫的討論,來自Rackspace(全球三大云計算中心之一)的Eric Evans再次提出了NoSQL的概念,這時的NoSQL主要指非關系型、分布式、不提供ACID的數據庫設計模式。2009年在亞特蘭大舉行的no:sql(east)討論會是一個里程碑,會上對NoSQL最普遍的解釋是非關系型的,強調鍵—值對存儲和文檔數據庫的優點,而不是單純的關系型數據庫。
NoSQL是Not Only SQL的簡寫,其含義是“不僅是結構化查詢”,是不同于傳統的關系型數據庫的數據庫管理系統的統稱。NoSQL與SQL的最顯著的區別是NoSQL不使用SQL作為查詢語言,其數據存儲不需要固定的表格模式,也避免使用SQL的JOIN操作,具有水平可擴展性。NoSQL的實現具有兩個特征,使用硬盤或者盡可能把隨機存儲器當作存儲載體。
關系型數據庫中的表存儲的都是一些格式化的數據結構,每個元組字段的組成都一樣,即使每個元組都需要所有的字段,但從另一個角度來說它是導致關系型數據庫性能瓶頸的一個因素。而非關系型數據庫以鍵-值對存儲的結構不固定,每一個元組可以有不一樣的字段,可以根據需要增加鍵-值對,這樣就不會局限于固定的結構,可以減少時間和空間的開銷。
NoSQL是水平可擴展的數據庫。水平擴展性指能夠連接多個軟硬件的特性,這樣可以將多個服務器從邏輯上看成一個實體。NoSQL主要用于大規模的非關系型數據存儲,具有模式自由、支持簡易復制、簡單的API、最終的一致性一(非ACID)、大容量數據等特性。除鍵-值對存儲方式外,NoSQL還有文檔存儲方式、列存儲方式、圖形存儲方式、XML存儲方式等。
2、NoSQL特點與潛力
CAP、BASE和最終一致性是NoSQL數據庫存在的3大基石。NoSQL存儲滿足了數據存儲的橫向伸縮性的需求。一些開源的NoSQL體系,如Facebook的Cassandra、Apache的HBase等都得到了廣泛認同。
2.1 特點
(1)運行在PC服務器集群上。PC集群非常方便并且成本很低,避免了傳統商業數據庫共享操作的復雜性和高昂成本。
(2)突破了性能瓶頸。通過NoSQL架構可以省去將Web或Java應用和數據轉換成SQL格式的時間,執行速度快。
(3)沒有過多的需求。雖然關系型數據庫提供了無可比擬的功能集合,而且在數據完整性上也絕對穩定,但是企業的具體需求可能沒有那么復雜。
(4)支持者源于社區。因為NoSQL項目都是開源的,因此它們缺乏供應商提供的正式支持。與大多數開源項目一樣,NoSQL項目不得不從社區中尋求支持。
(5)彈性擴展。NoSQL數據庫從設計之初就是為了利用新節點的優勢進行透明擴展,通常在設計時就考慮使用低成本的廉價硬件。多年來,當數據庫的負載增加時,技術上多采用“縱向擴展”(安置更大型的服務器來承載增加的負載)而不是“橫向擴展”(在多臺主機上分配增加的負載);但隨著交易率和可用性需求的增加,數據庫也正在遷移到云端或虛擬化環境中,橫向擴展更為明顯。
(6)大數據量。為了滿足數據量增長的需要,關系數據庫的容量日益增加,單一數據庫需要管理的數據約束的數量也變得越來越大。通過NoSQL,系統能夠處理的數據量遠超出了最大型的關系數據庫所能處理數據的極限,如Hadoop開源軟件處理的數據規模。
(7)靈活的數據模型。鍵-值對存儲與文檔存儲的NoSQL數據庫允許應用任何結構,即使是定義更加嚴格的BigTable NoSQL數據庫通常也允許創建新的字段。
2.2 NoSQL的潛力
NoSQL數據庫除了具有靈活的可擴展性和支持大數據量存儲外,與關系數據庫相比具有如下潛力。
(1)降低管理的要求。雖然關系數據庫在可管理性方面作出了很多改進;但是高端的關系數據庫系統維護費用仍然十分昂貴,而且還需要DBA參與高端的關系數據庫系統的設計、安裝和調優。NoSQL數據庫從一開始就是為了降低管理方面的要求而設計的,從理論上來說,自動修復、數據分配和簡單的數據模型的確可以降低管理和調優方面的要求。
(2)經濟效率高。NoSQL數據庫通常使用廉價的服務器集群來管理數據和事務數量,而關系數據庫通常需要依靠昂貴的專用服務器和存儲系統來完成這項工作。使用NoSQL可使每GB的成本或每秒處理事務的成本都比使用關系數據庫少很多倍,即以花費更低的成本存儲和處理更多的數據。
(3)靈活的數據模型。對于大型的RDBMS來說,變更管理是一件很困難的事情。即使只對一個RDBMS的數據模型作很小的改動,也許還需要停機或降低服務水平。NoSQL數據庫在數據模型約束方面更為寬松,其中的鍵—值對數據庫和文檔數據庫可以讓應用程序在一個數據元素中存儲任何結構的數據。
3、NoSQL的主要類型
基于存儲方式的不同,可將NoSQL數據庫分為文檔式存儲、列式存儲、鍵-值式存儲、對象式存儲、圖形式存儲和XML存儲的NoSQL數據庫。表l所示的內容就是各種典型的NoSQL數據庫產品,它們之間也有交叉,如TokyoCabinet/Tyrant的Table既可以劃為鍵-值式存儲類型,又可以理解為文檔型存儲類型。
NoSQL數據庫也可以按使用的不同語言類型進行分類,有的NoSQL數據庫用C/C++編寫,有的用Java編寫,還有的用Erlang編寫,每種NoSQL數據庫都有獨到之處,用戶可以根據需要選擇使用。
3.1 文檔式存儲NoSQL
文檔存儲式NoSQL數據庫又簡稱文檔數據庫,其存儲的內容為文檔型數據,主要解決的問題不是集中于高并發讀寫操作,而是保證海量數據存儲,同時具有良好的查詢性能。存儲式NoSQL數據庫主要面向集合存儲:
(1)文檔相當于關系數據庫中的一條記錄;
(2)多個文檔組成一個集合,集合相當于關系數據庫的表;
(3)多個集合邏輯上組織在一起就是數據庫。
例如,文檔數據庫(MongoDB)中的一個文檔為:
3.2 鍵-值存儲式NoSQL
鍵-值存儲式NoSQL數據庫是最常用的NoSQL數據庫,它的數據以鍵-值的形式存儲,雖然它的處理速度非??欤旧现荒芡ㄟ^鍵的完全一致查詢來獲得數據。基于數據保存方式可分為臨時式、永久式和混合式3種。臨時式方式主要特點是:在內存中保存數據,數據有可能丟失,可以快速保存和讀取。永久式方式的主要特點是:在硬盤上保存數據,數據不會丟失,可以快速保存和讀取,但速度比臨時式慢。混合式集中了前兩種方式的優點,先將數據保存在內存中,在滿足特定條件后將數據寫入硬盤,主要特點是:同時在內存和硬盤上保存數據,可以快速保存和讀取數據,保存在硬盤上的數據不會丟失,適于處理數組類型的數據。鍵-值存儲式NoSQL數據庫按照鍵-值對的形式進行組織、索引和存儲數據。鍵-值對存儲非常適合不涉及過多數據關系和業務關系的數據,能有效減少讀寫磁盤的次數,比SQL數據庫存儲擁有更好的讀寫性能,因為它不考慮值的存儲格式,直接用鍵值快速查詢到所需值。鍵-值存儲式NoSQL數據庫的主要特點是具有極高的并發讀寫性能,如BigTable是Google設計的分布式數據存儲系統,是用來處理海量數據的一種非關系型數據庫。
3.3 列式存儲NoSQL
列式存儲NoSQL可以實現按列存儲數據,最大的特點是方便存儲結構化和半結構化數據,方便數據壓縮,對于某一列或某幾列的查詢有非常大的I/O優勢。
在列式存儲中,列簇(ColumnFamily)、超列(Super Column)和列(Column)是重要的概念。列簇和超列在數據庫中不占空間,也就是說如果它們沒有值,它們只占用0個字節,列簇與傳統數據庫中的表類似,但和表又不一樣,在列簇中的唯一定義是名稱和鍵排序選項。
(1)列:列是一個由名稱、值和時間戳組成,可忽略時間戳,將前兩者當作一個鍵—值對。
(2)超列:超列是一個字典,它是一個包含其他列的列,但不能包含另一個超列。
(3)列簇:—個列簇中的所有數據都將保存在相同的文件中,—個列簇可以容納多個超列或列。
3.4 對象式存儲NoSQL
對象式存儲NoSQL可以通過類似面向對象語言的語法操作數據庫,通過對象的方式存取數據。
3.5 圖形式存儲NoSQL
圖形式存儲NoSQL是圖形關系的最佳存儲方式,如果使用傳統的關系數據庫來解決則帶來性能低的問題,而且設計也不方便。如AllegroGraph、DEX、Ne04J、FlockDB等數據庫都是NoSQL數據庫。
3.6 XML式存儲NoSQL
XIVIL存儲方式的NoSQL能夠高效存儲XML數據,并支持XML內部查詢語法。
4、NoSQL系列發展現狀
計算機體系結構在數據存儲方面要求應用架構具備龐大的水平擴展性,這是分布式系統的一個重要標志。分布式系統設計遵循CAP定理,在一致性、可用性和分區容錯性3個核心需求不可全得,關系數據庫主要滿足一致性和可用性兩個核心需求,。特別是要求強一致性,主要是通過數據庫鎖或JTA/JDBC事務實現,對于這種苛刻的一致性要求,很難實現分區容錯性;而NoSQL數據庫主要滿足可用性和分區容錯性兩個核心需求,在一致性方面采用了最終一致性,這是一種弱一致性。下面列舉幾種NoSQL數據庫。
4.1 Cassandra
Cassandra是一個云計算方面理想的數據庫。它集成了Solr等流行工具,現已成為一個完全成熟的大型數據存儲工具。Cassandra是一個混合型非關系型數據庫,類似于Google的BigTable。Cassandra是由多個數據庫節點共同構成的一個分布式網絡服務系統。對Cassandra的一個寫操作將被復制到其他節點上去,而對Cassandra的讀操作也將被路由到某個節點上面去讀取。
4.2 Lucene/Solr
Lucene/Solr是一個開放源代碼的全文檢索引擎工具包。它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,采用了與其他NoSQL數據存儲相似的模型。如果查詢并不是僅僅局限于精確匹配,而是尋找出那些出現在塊中的字或者字段,那么Lucene/Sok是最好的查詢手段。
4.3 Riak
Riak是由技術公司Basho開發的一個類似Dynamo的分布式鍵一值對系統;具有分布式、水平擴展性、高容錯性等特點。在Riak中,Map/Reduce函數只能使用JavaScript或者Erlang來編寫。該系統還為類似于Solr的搜索提供全文索引,同時還提供一個控制面板,可以查看集群信息。
4.4 GOUChDB
CouchDB是用Erlang開發的面向文檔的數據庫系統,其數據存儲方式類似Lucene的index文件格式。CouchDB是一個面向Web應用的新一代存儲系統。作為一個分布式的數據庫,CouchDB可以把存儲系統分布到多臺物理節點上,并且很好地協調和同步節點之間的數據讀寫一致性。CouchDB支持REST API,可以讓用戶。使用JavaScript來操作CouchDB數據庫。
4.5 Neo4J
Ne04J存儲的是對象之間的關系,或者說這種結構就是數學中的圖。Ne04J是一個面向網絡的數據庫,即它是一個嵌入式的、基于磁盤的、具備完全的事務特性的Java持久化引擎,但是它將結構化數據存儲在網絡上,而不是存儲在表中,當然也可以把Ne04J看作是一個高性能的圖引擎,該引擎具有健壯的數據庫的所有特性。Ne04J包括很多有關搜索和分析的關系算法,利用這些圖的遍歷算法,可以減少指針查詢的開銷。
4.6 HBase
HBase(Hadoop Database)數據庫是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,可在廉價PC Server上構建大規模結構化存儲集群。HBase是開源軟件,與Google BigTa。ble類似,BigTable利用GFS作為其文件存儲系統,而HBase利用I-IDFS作為其文件存儲系統;Google運行MapReduce來處理BigTable中的海量數據,HBase同樣利用Hadoop MapReduce來處理HBase中的海量數據。
4.7 BigTable/Accumulo/Hypertable
BigTable是非關系型數據庫,是一個稀疏的、分布式的、持久化存儲的多維度排序映射。BigTable能可靠處理PB級的數據,并且能夠部署到上千臺機器上。BigTable具有適用性廣泛、可擴展、高J陛能和高可用性。
4.8 BynamoDB
DynamoDB是亞馬遜的鍵一值對模式的存儲平臺,可用性和擴展性都很好,讀寫訪問中99.9%的響應時間都在300 ms內。DynamoDB的NoSQL解決方案也是使用鍵一值對存儲的模式,并通過服務器把所有的數據存儲在SSD上的3個不同的區域。如果有更高的傳輸需求,DynamoDB也可以在后臺添加更多的服務器。
篇2
一、前言
地方文獻是我國公共圖書館藏書建設的重要組成部分。這些出版物記載和反映了當地社會發展的歷史進程,是國家的重要資源和財富。目前,地方文獻工作在我國省市、自治區公共圖書館已受到普遍重視,許多館建立了地方文獻專藏,對文獻的收集、整理、報道和利用做了大量工作,為當地的四化建設發揮了積極的作用。但是,我國的地方文獻工作基本上還是沿用傳統的理論和方法,在各方面已遠不能適應當今信息社會的要求。在今天新技術革命浪潮蓬勃興起的形勢下,公共圖書館的地方文獻工作怎樣才能適應時代的需要這一重要課題,已歷史地擺在我們圖書館工作者的面前。我們認為,面對新技術革命的挑戰,地方文獻工作必須實現現代化,才能使傳統的地方文獻工作獲得新的發展,從而達到促進地區出版物資源共享的目的?;谶@種認識,我館在原有地方文獻工作的基礎上,開始用電腦建立地方文獻數據庫。經過一年多的研制,該數據庫已初步建成并投入使用。為與國內同行交流,本文對該數據庫系統作簡要介紹。
二、收錄范圍與文獻源
建立地方文獻數據庫,首先要明確收錄范圍和解決文獻源問題。對地方文獻的收錄范圍,我館前館長杜定友先生曾提出過著名的“史料、地方出版物和地方人士著述”三部分的論述。在杜定友先生的倡導下,我館致力于地方文獻的收集工作,建立了廣東地方文獻專藏。根據我館地方文獻的收集入藏情況,我們擬定了地方文獻數據庫收錄范圍的原則:
1.具有廣東地方特點,并有一定學術、史料價值的文獻資料(包括有地方特點的科技文獻)。
2.反映本省人物(包括廣東籍知名人士以及在廣東有過影響的非廣東籍人士)生平、傳記、事跡的文獻資料。
3.有廣東地方特點的本省出版物和外省出版物。
4.廣東人士著述(擁有地方特點的文獻資料部分)。
對不予收錄的文獻,也作了如下規定:
1)雖是地方出版物,但內容并無地方特點的文獻資料。
2)作者雖是廣東人士,但文獻內容并無地方特點的著述。
3)無地方特點的科技文獻。
4)印刷質量差,內容貧乏的非正式出版物。
5)同收錄原則相悖的其它文獻資料。
具體的收錄范圍有24項。
地方文獻數據庫所收錄文獻的類型包括:專著,期刊、報紙、會議錄、匯編、學位論文、科技報告、專利文獻、手稿、地方志、族譜、檢索工具、參考工具、圖表、古籍等。其中檢索工具包括反映本省圖書館館藏的各種書目、文摘、聯合目錄;圖表包括地圖、氣象圖、地質圖;參考工具包括年鑒、手冊等;專利文獻只限于本省單位和個人申請的國內外專利;報紙限于本省出版報紙的目錄。
廣泛征集地方文獻資料,保證地方文獻數據庫有充足的文獻源,是建立地方文獻數據庫極為重要的一環。我館地方文獻工作,早在解放前即已引起重視。建國后,更加廣泛深入地開展了地方文獻的收集和整理工作。省人民政府曾先后發出三個關于地方文獻工作的文件,指定我館為全省地方文獻的征集工作機構和收藏中心,要求各級人民政府和各企事業單位,將所出版的文獻資料無償向我館繳送二冊,這為征集地方文獻打下了良好的基礎。在全省各有關單位的大力協助下,經過幾十年的努力,我館已逐步建立起擁有18萬冊,在海內外有一定影響的廣東文獻專藏,形成了廣東文獻的收藏中心。這是建立地方文獻數據庫的基礎。
建立地方文獻數據庫,在確定收錄范圍的同時,還要認真選擇和挖掘文獻源。因為地方文獻包括了反映當地歷史和現狀的文獻資料,數量以萬計,內容極為繁雜。圖書館應該首先選擇利用率高,有一定學術和史料價值的文獻存貯進電腦,其中科技文獻應占有相當的比例。這是時代的要求。因此,我館在建庫前對文獻源的選擇進行了較深入的研究,最后決定從現代期刊入手,對符合收錄范圍的期刊論文進行著錄標引,然后輸入電腦。目前文獻的前處理工作正順利進行,現已標引出地方文獻資料8,000多篇,輸入電腦5,000篇。對于其它類型的文獻資料,今后將有計劃按步驟地進行輸入,從而逐步建立起我省的地方文獻數據庫。
三、數據庫系統目標與模式
作為地方性情報檢索系統的地方文獻數據庫,其總目標是:收錄和存貯反映本省歷史和現狀的地方文獻資料目錄,編輯出版綜合性的地方文獻通報(書目)和各種專題的地方文獻目錄,為當地黨政軍領導機關和各科研生產單位提供文獻檢索服務;作為地方文獻的查目中心,將通過聯機網絡同當地的主要圖書情報部門聯網,逐步實現地方文獻的聯機編目和檢索,從而促進地區性的資源共享。
為了實現上述目標,我們根據本省的實際情況,為地方文獻數據庫設計了下述模式:
1.選擇具有良好漢字處理功能的遠程通訊能力的微型電腦作為數據錄入工作站和脫機檢索系統,這一系統配有完整的外部設備,可獨立進行地方文獻書目數據的錄入、檢索和編輯出版地方文獻通報。對已輸入電腦的大量數據,可轉貯到軟盤,為將來在中、大型電腦上建庫作好數據準備。我館已購置了四套IBM5550中文電腦,其中一至二套用于地方文獻數據庫的建庫工作。
2.設置電腦聯機通訊線路,同當地計算中心的中、大型機聯網。利用主權的計算機資源建立地方文獻數據庫,一般可存貯幾百萬篇的文獻,從而為實現地方文獻書目數據的資源共享打下基礎。我館已同省計算中心達成協議,利用該中心引進的IBM 4341主機建立地方文獻數據庫,并在86年二月成功地進行了利用市內話線聯機通訊的試驗,計劃在明年內實現我館IBM5550同主機的聯網。
3.在本館購置中、小型主機后,將進一步完善地方文獻數據庫系統,在省、市領導機關和主要科研機構設置檢索終端,并同當地的主要圖書情報部門聯網,進行聯機編目和檢索,從而使地方文獻數據庫真正達到資源共享的目的。
4.把電腦同縮微技術結合起來,實現地方文獻資料的全文檢索。我館準備在條件具備時,購置一套16毫米的縮微拍攝設備,用于拍攝地方文獻資料。在數據庫中檢索命中的文獻,可根據其文獻號,在縮微閱讀機上獲得原文。
在我省有關部門的大力支持下,經過全館同志的努力,廣東地方文獻數據庫的系統目標正在逐步實現。目前,在IBM 5550微機上已實現了以下功能:
1)地方文獻書目數據的錄入與存貯。針對地方文獻具有多種類型的特點,本數據庫根據國家文獻著錄標準,設置了多種文獻類型的自動格式識別程序,不但提供了完善的人機對話錄入和修改方式,而且能夠對錄入的書目數據自動進行著錄格式的自動識別,從而使書目數據達到標準化的要求。
2)編輯和打印綜合性檢索刊物《廣東文獻通報》。該刊物以及時報道我館新入藏地方文獻為宗旨,兩月出版一期。每期通報正文約70頁,按《中圖法》分類體系排列,并附有地區索引,方便縣、市圖書館、檔案館等有關單位從地區途徑查找文獻。從86年五月起,至今已出版文獻通報六期及通報的年度累積索引一冊。
3)自動編目功能,數據庫系統可根據輸入的地方文獻書目數據,自動生成數據庫倒排文檔,供文獻檢索之用。另外,還可根據指定的專題,編制各種類型的地方文獻專題書目,以及編制地方文獻的累積本。
4)文獻檢索功能。因受1BM 5550系統外存的限制,目前數據庫的存貯容量為25,000篇文獻。如將外存擴大到40MB,數據庫容量將可擴大到10萬篇。在此范圍內,用戶可從篇名、著者、分類、主題、地名等五個途徑進行聯機檢索,并允許用多個主題詞或多個檢索途徑進行組配,以提高檢準率。輸出結果既可在屏幕顯示,也可以用打印機輸出。
5)詞表管理功能。數據庫系統可對地方文獻標引詞表、地名表和機內分類表進行插入、修改、刪除等項操作,并提供編輯打印詞表的功能。目前我館已編制出《地方文獻標引詞表》、《廣東省地名表》和《地方文獻數據庫分類表》。
6)地方文獻征集和標引管理功能。數據庫能為地方文獻中的連續性出版物建立檔案,并有催索、記到、裝訂以及標引管理等功能,可以對地方文獻征集和標引實現科學管理。
除了上述功能外,我們計劃在87年上半年前,為該數據庫增加MARC機讀目錄生產、遠程聯機通訊等程序,使數據庫的各種功能進一步完善。
四、數據庫的設計與實現
本數據庫系統使用IBM5550高檔微機作處理機,其主要技術性能指標為:主機內存512-640KB,15英寸高分辨度顯示器、24針漢字打印機和鍵盤各一臺,可配8.1或20MB硬盤及5.25英寸軟盤各一臺。操作系統為IBM5550中文DOS(由MS-DOS演變而來),配有BASIC、COBOL、PASCAL、TORTRAN以及宏匯編等程序設計語言,還有dBASE2.0、DBASE3.0、SORT/MERGE、CWP、WORDSTAR、LOTUS 1-2-3等軟件。該機具有良好的多語種處理功能(中、英、日、俄均可處理)和遠程聯機通訊能力。屏幕顯示和打印輸出字形美觀。根據上述計算機資源的特點和省級公共圖書館地方文獻工作的業務流程,我們首先進行了數據庫的總體設計。該數據庫分為文獻庫、期刊庫、詞表庫三大部分:文獻庫實現各種地方文獻資料目錄的存貯和檢索(包括打?。徽骷瘞鞂崿F連續出版物(包括圖書)的征集管理;詞表庫實現廣東地方文獻標引詞表的管理。所有程序在總控程序的調度下分塊進入內存運行。
總體設計方案確定后,使用什么語言實現?開始我們考慮用DBASE3.0。但后來經模擬試驗和論證,發現dBASE3.0用于開發文獻型的數據庫系統并不理想,原因是(1)記錄字段不能適應書目數據可變長的特點;(2)不能使用數組,而且程序變量限于128個,響應速度慢;(3)如作組配檢索一般要幾十秒的等待時間;(4)難以實現人機對話方式的檢索,即在檢索過程中無法修改檢索策略?;谏鲜鲈颍覀儧Q定用編譯BASIC進行系統開發。在開發的過程中,盡可能采用自頂向下、分塊實現、逐步求精等行之有效的軟件開發技術,僅用了四個多月的時間,就完成了程序的設計和調試。經過半年多的試運行,根據暴露出的問題,我們又對程序作了較大修改,形成了第2版本。目前該系統的源程序共有4,000多行,17個運行模塊(占260KB)。以下對本數據庫的文件結構和主要算法作簡要介紹:
(一)文獻庫
文獻庫的任務是通過書目控制字段實現書目控制;按國家標準錄入和存貯文獻記錄;編輯和打印各種書目;提供多途徑的文獻檢索手段。文獻庫共設置了書目控制文件、主數據文件和倒排文件。
1)書目控制文件—該文件采用雜湊隨機文件結構,每個記錄由書目記錄控制關鍵字、文獻地址和沖突鏈組成(見圖1)。每個記錄的控制關鍵字,首先考慮用ISBN號(我國今年出版的圖書開始使用該號)。對沒有該號的圖書文獻,采用下述方法取號:
①整本文獻和非書資料,用:題名首字符+著者末字符+地區代碼+出版年+頁數。
②析出文獻用錄入號(即系統分配的順序號)。
書目控制關鍵字的取號要求是唯一性較為方便。本系統通過該文件將可對所有輸入數據庫的書目記錄進行控制,實現快速查找或修改。
2)主數據文件—該文件采用固定長記錄可變長字段的隨機文件結構,記錄長256字節。如有數據溢出,溢映部分將存入溢出文件中。本系統將所有書目數據劃分為3種類型:整本文獻、析出文獻和非書資料。每種類型的字段雖有不同,但可存貯于同一數據文件中,通過文獻類型代碼進行識別。為便于新數據的處理,本系統又將主數據文件分為新書文件和數據庫主文件兩種。新錄入的數據暫存于新書文件中,待打印出文獻通報和地區索引后,再合并入數據庫主文件。數據庫主文件的記錄是按文獻通報的順序號排列的。主數據文件的記錄字段考慮了同國家機讀目錄的一致性,在必要的時候可通過一個格式轉換程序,把書目數據的系統內部格式轉換為標準格式,以利于資源共享。本系統的書目記錄輸出,采用了漢字取整裝配技術,并按國家文獻著錄標準在各著錄項目中加入分隔符號。
3)數據庫倒排文件---該文件采用二級索引結構:第一級是雜湊隨機文件,每記錄分為前鏈和后鏈兩個字段。第二級是順序隨機文件,每記錄分為文獻地址和后鏈兩個字段。這樣,一級索引作為檢索入口指向二級索引,二級索引通過每個記錄的后鏈集中了相關文獻,通過文獻地址就能查得所需文獻。圖2為示意圖。采用這種文件結構的文獻檢索算法如下:
①接收一個檢索表達式KEYS
②生成提問表(即把表達式中的關鍵字存入檢索比較工作區)
③生成檢索邏輯尺
④根據工作區中元素的映射地址(雜湊)取出前鏈R
⑤從R指示地址在二級索引中取出真正的文獻地址后鏈L
⑤按B指示地址在主數據文件中讀出一個書目記錄
⑦將該記錄同工作區元素作字符串比較,得到其文獻邏輯值
⑧文獻邏輯值同檢索邏輯尺作比較,符合者為命中文獻
⑨判L等于零?是則檢索結束,否則LR,轉⑤
我們認為,這種以二級索引文件結構為基礎,用雜湊映射作為快速尋址,用邏輯尺進行二次精確檢索的算法,是一個新穎有效的算法。同時,在索引中僅存貯指針,可比傳統的索引文件節省75%的空間。本系統首次檢索的響應時間均低于2秒,二次檢索的響應時間則因檢索式的復雜程度而有不同程度的減慢。
(二)詞表庫
詞表庫的任務是對存貯在機內的地方文獻標引詞表進行查詢和管理。本系統詞表文件可分為主表和付表文件,主表存貯正式標引詞,付表存貯同義詞。為了實現首詞集中和快速查詞的目的,還設置了詞表入口文件。圖3為示意圖。
1)詞表入口文件--該文件為映射隨機文件,每記錄僅存第一個標引詞的地址,通過該詞第一個漢字的ASCLLI碼映射尋址。
2)主表文件--該文件為隨機文件,每記錄由標引詞字段和后鏈組成。通過后鏈便可查到首字相同的所有標引詞。
3)付表文件--該文件為順序文件,用于存貯正式標引詞的同義詞。
本系統通過上述文件結構和算法,已在機內建立了擁有4,000多個標引詞的詞庫,實現了標引詞快速查找、首詞集中顯示、標引詞擴檢與縮檢、同義詞參見和詞表打印等功能。
(三)征集庫
征集庫的任務是建立地方文獻連續出版物檔案,實現征集工作的現代化管理。征集庫的文件主要有刊號控制文件、現刊管理文件、期刊主文件、記到數據文件。
1)刊號控制文件---該文件用于存貯每種廣東期刊的刊號(包括郵局刊號和內部期刊登記號),對數據庫的期刊進行控制,其結構為雜湊隨機文件。每記錄有刊號和文獻地址兩個字段。
2)現刊管理文件---該文件用于存貯每種期刊的刊名、刊號、索取號、出版單位、地址、裝訂周期等管理數據,其結構為順序隨機文件。
3)期刊主文件---該文件用于存貯每種期刊的基本著錄事項。每記錄長256字節,溢出部分存入溢出文件。
4)記到數據文件---用于存貯每種期刊的記到數據,每種刊作為一個邏輯記錄,采用二維數組結構。該文件以年為單位存貯數據,即每年生成一個記到文件。
以上文件的每個記錄均存在映射關系,即每種期刊記錄在不同文件中的地址是一致的。只要在刊號控制文件中查得某刊的地址,就可在各個文件中訪問有關記錄。由于我們采取了合理的文件結構,因而能使系統適應期刊經常發生的創刊、合刊、增刊、停刊、改刊期、改刊名、改發行方式等動態變化,有較強的實用性。這點對于地方文獻征集工作的電腦化管理是至關重要的。
五、地方文獻的著錄與標引
為了達到資源共享的目的,地方文獻的著錄與標引也必須實現標準化。我館在建立地方文獻數據庫的過程中,對地方文獻的著錄和標引的標準化十分重視,采取了下面的一些做法:
1.在進行數據庫總體設計的同時,請本館有豐富文獻工作經驗的同志組成科研課題組,起草制定了《文獻標引員手冊》。該手冊對數據庫的收錄范圍、文獻著錄標引工作細則、文獻通報編制體例等都作了規定。從而為文獻著錄標引工作的標準化奠定了基礎。
2.在建庫前,對文獻標引員進行業務考核,選擇工作責任心強,經過圖書館專業培訓,有三年以上圖書館工作經驗,并有一定文獻工作實踐的同志擔任文獻標引員。
3.印制地方文獻書目數據錄入工作單,要求文獻標引員根據國家文獻著錄標準進行著錄,并按錄入單格式進行填寫。這樣可以減少因不熟悉著錄格式而產生的錯誤。
4.標引員標引的數據錄入單,由數據庫文獻工作組最后審核定稿。審核的內容包括:著錄文獻的選題、著錄的格式、分類和主題標引。在實踐中我們感到,標引文獻的審核,對提高數據庫的文獻質量,有著十分重要的作用,因此,應由有較高業務水平的同志負責把關,并注意保持文獻標引人員隊伍的相對穩定。
5.數據庫書目數據均采用《中圖法》分類體系。對同一文獻的多個主題,盡量采取了組配方式生成分類號,以便充分發揮電腦多途徑檢索的優勢。
6.以《漢語主題詞表》為基礎,根據地方文獻的特點編制文獻標引詞表?!稘h語主題詞表》是一部綜合性的文獻標引工具,收詞多而廣泛。但由于《漢語主題詞表》的編制是從全國范圍的通用性來考慮的,對標引地方獨特事物,便缺乏實用性。因此,我們在力求使用詞表中正式主題詞的同時,根據地方文獻標引的需要,使用了許多“表外詞”,有些地方,還對詞表的規定作了一些變動。這可以從兩方面來說明:
1)由于新概念的大量涌現,詞表未及收入的新學科、新事物的新名詞,現已形成可描述的敘詞,例如:“經濟法”、“經濟糾紛”、“體制改革”、“第三產業”、“信息業”、“港元”……等等。它們在文獻中出現的頻率很高,但沒有合適的直接上位詞可用,也沒有合適的概念接近的詞可用,我們就把這些詞作為正式詞使用。
2)由于地方文獻的特性需要,常常為綜合性大型詞表所難以照應,如名勝、古跡這一范疇內,就只列了“圓明園”等15個詞,其中除“黃鶴樓”“孔廟”等詞外,多數是北京地區的名勝古跡,這確實是不合用也不夠用的。對這類情況我們作了一些調整。如詞表規定,“東江縱隊”、“瓊崖操隊”統用“華南抗日游擊隊”,也就是以上位概念取代具體事物,這從全國范圍的檢索需要來看可能是合理的。但從本地區出發,“東縱”和“瓊縱”卻是專指性極強的詞。這兩支革命武裝有各自不同的歷史、活動地區、代表人物文獻量又很大。因此,我們改變“用”、“代”關系,不用“華南抗日游擊隊”,而直接用“東江縱隊”、“瓊崖縱隊”。有些類似情況而文獻量不大的,則采用直接上位詞做正式主題詞,加地方特有事物的關鍵詞,以“,”號倒置。如“寺廟,華南寺”、“寺廟,光孝寺”、“刺繡,廣繡”、“刺繡,潮繡”等?!?,”號后的關鍵詞,僅起限定和說明的作用,不參加累積索引的輪排,也不作為檢索入口。凡地方事物、事件、人物而沒有相應的主題詞的,如:“黃埔軍?!?、“丘逢甲”等等,則一律標關鍵詞。我們對這些使用過的關鍵詞,也注意了規范。
六、結束語
篇3
關鍵詞:計算機;數據庫;信息管理;應用
1 數據庫系統的發展
數據庫的英文是Database,其可以被看做是一個大的倉庫,對數據進行儲存、管理以及組織。數據庫在對數據進行處理時是按照數據的結構出發的。數據庫是第五次信息革命的產物,產生于上個世紀60年代。
數據庫經過幾十年的發展,已經日漸的成熟,因此有很多的種類,包括:db2、oracle等,這些數據庫的功能非常的強大。我們可以對數據庫信息模型的發展進行階段劃分,一般是3個階段:(1)第一個階段是網狀層次數據庫系統。(2)第二個階段是關系型數據庫系統。(3)第三個階段即是以面向對象模型為特征的數據庫系統。
網狀層次數據庫系統的產生時間是上個世紀的70年代,是由美國數據庫系統語言協助旗下的一個研究組分明的,此外還有IBM公司的加入合作。在經過這兩個機構的研究之后,網狀模型數據庫系統變產生了。
關系型數據庫系統。該數據庫系統可以完成對關系數據模型的支持,也是由大量的關系數據結構組成的,這也是其命名的由來。關系型數據庫系統可以支持一下操作:數據完整性、關系操作以及數據結構等。
以面向對象模型為特征的數據庫系統。該系統可以完成對多種數據模型的支持,例如:關系模型以及面向對象的模型。此外,該系統還可以和新生的技術進行結合,比如:多媒體技術、人工智能技術、處理技術以及計算技術等,因此應用的領域也就會更加的廣泛。
數據庫在經過長時間的發展之后,技術越來越成熟。信息管理的內容在不斷的增加,因此數據模型的種類也在不斷的更新,比如:半結構化模型以及面向對象模型等。此外,新技術也在不斷的涌現,例如:數據流、Web數據管理以及數據挖掘技術等。目前的學術界也對數據庫進行不斷的深入研究,未來數據庫系統的發展會更加的成熟。
2 數據庫的存在對信息管理的作用
信息技術和市場都在不斷的發展,因此數據的管理也出現了新的要求。傳統的數據管理僅僅是對數據進行存儲和管理,而新的形勢下信息管理的要求更高,需要對數據進行轉化,轉化為用戶需要的類型。信息的存儲不再是簡單的存儲,而是要進行海量存儲。對于一個企業來說,在日常的管理中需要將有關的數據存放到“倉庫”之中。此外,還要從管理的要求出發,開展對應的處理。
將數據庫應用到信息管理中,其效果是明顯的,直觀的,更是高效的。我們可以對數據庫進行整合,主要有以下幾個方面:(1)可以實現數據的共享。(2)數據具有獨立性。(3)對數據進行集中的控制。(4)數據的冗余度會大幅度的降低。(5)可以方便的對數據進行維護,令數據保持一致性,因此就會讓數據處于一種安全和可靠的環境之中。(6)具有錯誤恢復功能??梢?,將數據庫應用到信息管理中不僅可以對數據實施科學性以及現代化的管理,更可以提高信息管理的效率和質量,因此這對企業和單位的管理工作來說是一個有效的工具,是一個福音。
3 計算機數據庫系統在信息管理中的應用現狀
數據庫于上個世紀70年代誕生于美國,經過幾十年的發展越來越成熟,已經成為國家經濟發展的科技進步的一個重要的工具。在數據庫的作用下,信息化的進程在不斷的加快,企業的管理工作也在不斷的提高。據有關部門的統計,目前我國的數據庫數量已經達到1038個。
當前計算機數據庫系統在信息管理中的應用現狀主要包括:(1)數據庫應用領域和應用范圍不斷擴大。(2)安全性、兼容性、易用性不斷增強。(3)數據庫技術不斷發展進步。(4)受重視程度不斷提高。
4 數據庫系統未來發展趨勢
社會處于高速的發展之中,大量的信息涌現,因此我們的數據庫技術也要跟上時代的要求,進行不斷的更新。而未來數據庫系統的發展要求是:方便靈活、容量加大以及智能化。因此,未來數據庫系統的發展趨勢主要有以下幾個方面:(1)用戶的管理成本降低。成本的降低依賴于自動化的管理,比如:自動的休整、自動的修復以及監控。(2)可以支持XML語言。(3)對數據庫進行引擎的整合。
5 結束語
以上的分析來自于筆者的實踐和理論的鉆研,這些關于計算機數據庫系統在信息管理中的應用的探討可能有些粗略。數據庫系統的應用越來越廣泛,已經深入到企業、政府、學校等單位的信息管理中,發揮著重要的作用。相信,未來的數據庫系統會更便捷、安全、更智能。
[參考文獻]
[1]雋軍利,李天燕,王小龍.淺析計算機數據庫系統在信息管理中的應用[J].科技創新導報,2011(12).
[2]王子芳.數據庫及應用課程教學探討[J].西南農業大學學報(社會科學版),2010(23)
篇4
關鍵詞:醫院 數據庫 系統安全 防范
中圖分類號:TP393 文獻標識碼:A 文章編號:1007-9416(2012)08-0167-01
醫院是一個特殊的行業,不管醫院的數據怎樣運行都不能夠妨礙到醫院的職責和運行。近些年來,電子信息技術在醫院得到廣泛的應用,它是對醫院臨床數據記錄,并且是以后科研工作的重要參考數據[1]。然而面對越來越多的數據記錄,醫院的數據庫系統安全也越來越得到人們的重視,醫院數據庫系統防侵入的研究是迫在眉睫要考慮的問題,它對醫院的臨床治療以及科研提供充分重要的數據。
醫院的信息系統能夠安全穩定的運行,離不開后臺數據庫的穩定以及安全。它對醫院信息系統的后臺數據庫進行了各種邏輯保護的同時,數據庫的管理安全性也是不可忽視的方面。
1、數據庫系統數據安全分析
在醫院的信息系統后臺,數據信息是整個醫院信息系統的靈魂,它的安全性至關重要,數據庫管理系統是保證醫院數據庫系統能夠有效的查詢、保存以及分析的基礎。數據能夠合法的訪問數據庫和安全的存儲相關信息,以及跟蹤監視數據庫都有訪問的權限,應該能夠實現:(1)數據查詢、建立數據表以及在存儲過程當中執行的權限要清楚;(2)數據庫管理系統提供口令識別以及用戶名,并且還能夠行使各種權限的審計、控制以及數據加密等等管理措施;(3)建立系統審計,記錄數據庫服務器本身的使用情況和系統級命令的使用情況;(4)建立用戶審計,并且能夠記錄每次操作時候的用戶詳細資料;(5)數據庫權限的劃分清晰,如:資源管理權限和登錄權限以及數據庫管理權限等等。
醫院想要良好的開展數據庫系統安全工作,就要從實際出發,對風險進行評估,并且研究數據庫系統面臨的威脅和風險以及存在的漏洞和缺陷等等,而對于有可能存在的風險以及漏洞要制定相關有效的策略。
2、醫院數據庫安全維護辦法
2.1 加強對數據軟件的保護
為了能夠對醫院數據軟件進行保護,通常有以下途徑。(1)加強對系統數據的管理:通常情況下往往采用的是更換管理員口令的方式對系統數據進行管理,防止系統賬號被非法用戶盜用之后私自竄入系統當中對數據庫造成一定的威脅[2]。于此同時,也要限制對網絡安全的開放。雖然構建網絡的主要目的就是為了能夠實現信息共享,但是因為醫院的部分數據有一定的重要性,所以為了能夠徹底的確保數據的安全,通過設置用戶權限的方式來對系統的管理進行加強。還要通過對不同職務有不同的使用權限進行設置,因為醫院的分工不同所以每個職員的職能也不盡相同,所以根據職員的工作類別以及辦公所需要的系統模塊對相應的人員進行系統的授權,這樣不僅能夠有效的提高數據庫系統的安全,還能夠對整個醫院的工作人員進行醫療數據共享;(2)數據備份管理:通過網絡設備對系統數據進行備份,系統通過已經設定好的程序在對數據庫不關閉的情況下聯機備份數據庫到網絡設備,然后再通過從服務器上執行后臺任務來實現無人值守的自動化設備實現數據的備份。在備份數據的選擇上可以選用性能穩定以及價格低廉光盤來作為數據的載體,這樣就可以滿足數據安全長時間的保存。與此同時,還要盡快妥善的對已經備份的數據進行管理,將備份好的數據放在不同的機房和地區,以免發生意外對系統產生一定的影響。
2.2 安全硬件技術
使用安全的硬件技術作為數據庫的安全保證,硬件設備以及網絡技術是醫院系統能夠正常運行的保障,也是維護數據庫安全的重要前提條件。所以,醫院網絡設備的選擇和網絡系統的設計都要充分的考慮到經濟性、技術的先進性以及便捷性。數據庫服務器是整個網絡的心臟,它的性能高低將直接影響到整個系統的運行速率,所以要做好充分的篩選工作。工作站能夠得到本地化的處理,而且還能夠減少網上數據傳輸造成的問題,杜絕病毒的入侵。另外,對服務器的環境和UPS設備也要進行監督管理,為了能夠確保系統的正常運行,保持服務器的溫度、濕度以及無塵環境至關重要。將服務器的濕度保持在45%~75%治安,溫度應該控制在(21±3)℃左右,相對來說無塵環境下能夠對硬件的保護起到一定的作用。
2.3 健全醫院系統的管理制度
(1)完善工作站的管理監督制度,工作站的監管要記錄系統人員每次開、關機的時間以及系統的運行狀況和管理人員上網操作的具體內容等等。此外,還要建立數據庫的日常管理制度小組,杜絕人為原因所造成的數據破壞。(2)為了能夠規范服務器的管理,可以制定和利用服務器日志來記錄每天對服務器的操作如:服務器停止以及使用的會見記錄、網絡設備檢查記錄以及數據庫的日志維護記錄等等。與此同時還要對服務器的網絡設備進行檢查,確保系統的順利運行[3]。(3)對數據庫網絡的故障要完善,因為醫院的網絡系統需要全天候的運行,如果因為其中的某一個環節出現錯誤都會對醫院的正常運營產生較大的影響,所以要做好醫院系統網絡的應急處理預案,同時定期或不定期的對醫院的職工進行系統使用的培訓,提高職工對系統的操作技能以及提高職工對數據安全的認識。
3、結語
總而言之,隨著我國醫院網絡化辦公的日益普及,醫院的數據庫儲存的患者的治療、診斷以及檢查等方面的信息,是患者的隱私更是醫院重要的數據資料。然而,醫院信息系統核心的數據庫安全也成為現階段管理層的主要問題[4]。醫院管理人員和操作人員要一起努力,不斷提高安全管理意識和風險管理意識,共同確保醫院數據庫系統安全可靠的運行。
參考文獻
[1]孫希奕,陳衛林,董玉梅,鐘建明.基于分布式數據庫技術的醫院信息管理系統的研究[J].計算機光盤軟件與應用,2011,12(3):1147-1149.
[2]陳凌平,金愛蘭,宋凱,劉軍杰.醫院信息化觀潮——給醫院信息化一個理由,給醫院信息化一個支撐,給醫院信息化一個未來[J].醫院信息系統安全與管理建設淺談,2009(14):357-360.
篇5
關鍵字:面向對象技術;面向對象數據庫系統;類;數據庫;面向對象模型
1 引言
數據庫技術是計算機技術研究中最為重要的方向之一。經過幾十年的發展,成熟的關系型數據庫被廣泛地應用于各個社會領域。但是,現實社會的復雜多變性以及各種應用要求的提高,導致信息在數量和結構上都遠超傳統數據庫的承受范圍。1990年高級DBMS功能委員會提倡的面向對象的數據模型,就是要把面向對象的方法和數據庫技術結合起來,以使數據庫系統的分析、設計最大程度地與人們對客觀世界的認識保持一致。面向對象數據庫系統(Object-oriented Database)是為了滿足新一代數據庫的應用需要而產生的新型數據庫系統。
2 面向對象數據庫概述
2.1面向對象數據模型
與其他數據模型一樣,面向對象的數據模型也包括:數據結構、數據操作和完整性約束三部分,但是其在這三個方面的表現形式和實現方式與傳統的關系模型都有很大的區別。
面向對象的數據結構是通過對象和類這兩個基本要素,借助封裝、繼承和組合機制建立起來的復雜結構,而數據操作時通過方法和消息來實現的。面向對象數據庫系統支持面向對象數據模型(簡稱OODM),即面向對象數據庫系統是一個持久的、可共享的對象庫的存儲和管理者[1]。OODM是用面向對象觀點來描述現實世界實體(對象)的邏輯組織、對象間限制、聯系等的模型。對象與對象標識、屬性、行為、類、類層次、消息、持久性等核心概念構成了OODM的基礎 [2]。
2.2面向對象數據庫的特點與優勢
面向對象程序語言操縱的是對象,所以面向對象數據庫(簡稱OODB)的一個優勢是面向對象語言程序員在做程序時,可直接以對象的形式存儲數據[4]。對象數據模型有以下特點:
(1)使用對象數據模型將客觀世界按語義組織成由各個相互關聯的對象單元組成的復雜系統 [5]。對象可以定義為對象的屬性和對象的行為描述,對象間的關系分為直接和間接關系。(2)語義上相似的對象被組織成類,類是對象的集合,對象只是類的一個實例[6],通過創建類的實例實現對象的訪問和操作。(3) 對象數據模型具有“封裝”、“繼承”、“多態”等基本概念[7]。(4) 方法實現類似于關系數據庫中的存儲過程,但存儲過程并不和特定對象相關聯,方法實現是類的一部分。(5) 實際應用中,面向對象數據庫可以實現一些帶有復雜數據描述的應用系統,如時態和空間事務、多媒體數據管理等。
除此之外,上述特點導致面向對象數據庫具有豐富的數據類型,因此能夠表達復雜嵌套對象,在復雜對象上獲得良好的性能。數據庫與程序設計語言的類型系統和操作方的統一,消除了數據庫中的阻抗不匹配問題,擴展了數據庫系統的應用領域,并提高了應用系統的質量和開發人員的工作效率。
3 面向對象數據庫系統的體系結構及發展
3.1 面向對象數據庫系統的體系結構
面向對象數據庫管理系統包括了關系數據庫管理系統的全部功能,只是在面向對象環境中增加了一些新內容,其中有一些是關系數據庫管理系統所沒有的。面向對象數據庫管理系統(C/S即客戶/服務器結構)主要由以下五個子系統組成[8]
3.2 面向對象數據庫系統的發展
自20世紀80年代來,OODBS的發展經歷了主要三個階段:(1)實驗室原型階段,很多原型產品于80年代末在實驗室完成,它們大都具有較新的思路和大膽的設計但卻缺乏實際應用的考驗,代表產品有工業界Vbase和Orien等,學術界的Gemstone等;(2)初期商業化產品階段,80年代末至90年代初,所推出的產品均具有面向對象數據庫管理系統的基本特色和實際運用的能力,為OODBMS占領市場起了重大作用,但仍有許多缺陷;(3)成熟產品階段,20世紀90年代中期至今,OODBMS的商業化趨于成熟,產品如Object Store、Ontos、O2、Jasmin等。
4 面向對象數據庫系統的重要技術及應用
4.1.數據庫轉換技術
由于關系數據庫在當今數據庫應用領域處于主導地位,而面向對象數據庫如果要滿足更高一級數據庫要求,實現異構數據庫之間數據庫模式和操作的轉換是一個關鍵研究課題。數據庫轉換技術包括數據模式技術和數據操作轉換技術,轉換時要保證一致性(對象語義和動作信息在轉換過程中不丟失)。
4.2模式演進技術
OODB的類為適應需求變化而隨時間變化稱為模式演進,包括創建新類、刪除舊類、修改類屬性和操作等模式演進必須保持模式一致性(模式自身內部不能有矛盾),這由模式一致性約束描述。模式一致性約束分為唯一性約束、存在性約束和子類型約束等,滿足所有這些一致性約束的模式稱為一致模式。模式演化是面向對象數據庫研究重點與難點,實現途徑一般有兩種:模式改變考慮現有應用程序使二者相互集成和適應;開發新的高級數據庫編程語言。
4.3視圖類實現技術
面向對象數據庫中很多操作(如統計、連接查詢和視圖操作)都能自由訪問數據庫數據,這些操作益于實現視圖操作及降低復雜度并提高效率,但易破壞對象封裝性。為了不破壞對象封裝性,必須對面向對象數據庫的核心模型進行擴充,在對象中設計一組接口,系統通過這組接口完成視圖操作,這樣會增加對象復雜性和面向對象數據庫系統設計難度,因此需要對這些接口實行標準化?;谏鲜鰲l件,設計相應類數據結構和操作則可實現OODBS視圖操作。
4.4 OODBS事務管理技術
OODBS事務管理子系統包括死鎖管理器、鎖管理器、恢復管理器和日志管理器幾個部分。相比傳統RDBS,OODBS加鎖具如下特點:①加鎖單位是對象而不是類;②給類對象加鎖比給關系對象加鎖需更多信息;③當類實例被加鎖時,其父類也被加鎖。OODBS采用粗粒度加鎖具有很高的并行性,加鎖的一般是對象,若某一事務要訪問同一類多數實例,則對整個類加鎖,保證可靠性又降低系統開鎖代價。另外,OODBS還具有恢復機制,其中包括多媒體日志恢復和索引頁日志恢復兩種。多媒體日志恢復是指OODBS把多媒體數據和其描述部分分開,后者通過對象標識符引用前者。若創建多媒體數據事務失敗,則置空描述部分引用并復位。索引頁日志恢復的方法有兩種:一是分裂索引頁的插入操作,系統把當前索引頁一半表項分給新頁,除拷貝的表項外其余都記錄在日志中,發生故障時則去掉整個新頁;二是合并索引頁的刪除操作,系統把當前索引頁表項拷貝到新頁,除了從當前頁刪除的表項外其余都記錄在日志中,發生故障時則重新使用當前頁。
4.5面向對象數據庫系統的應用
面向對象數據庫的產生主要是為了解決“阻抗失配”,它強調高級程序設計語言與數據庫的無縫連接。無縫連接即假設不使用數據庫,而使用某種編程語言編寫一個程序,可以基本不經任何改動地將它作用于數據庫,即可以用編程語言透明訪問數據庫,就好像數據庫根本不存在一樣,所以也有人把面向對象數據庫理解為語言的持久化。
面向對象方法綜合了在關系數據庫中發展的全部工程原理,以及系統分析、軟件工程和專家系統領域的內容,符合一般人的思維規律,將現實世界分解成明確的對象。系統設計人員用OODBMS創建的計算機模型能更直接反映客觀世界,使得非計算機專業人員的最終用戶也可以通過這些模型理解和評述數據庫系統。這些都是傳統數據庫所缺乏的,正因為如此,OODBS更能在新興應用領域中發揮作用。這些領域集中在以下幾個方向:(1)工程應用領域:此領域(如CAD/CAM)涉及到的數據種類多,操作和數據間涉及的關系都極為復雜,由于面向對象數據庫實現了無縫連接,能夠支持非常復雜的數據模型,從而特別適用于工程設計領域;(2)多媒體應用領域:由于多媒體中數據種類很多,他們之間有復雜的聯系使之成為一個整體,在多媒體領域這些要求也能在面向對象數據庫中得到解決;(3)集成應用領域:隨著計算機越來越集成,系統也跟著越發復雜,這要求多種應用的集成需要一個能適應不同應用要求的結構模型;(4)傳統應用領域:近年來商業、事務處理的需求發生了很大的變化,而面向對象數據庫很能適應這些新的變化,因此在傳統領域面向對象數據庫也有著重要的應用市場。
5 面向對象數據庫存在的問題及解決方法初步探討
5.1 面向對象數據庫存在的問題
面向對象數據庫技術可望成為繼關系數據庫技術之后的新一代數據管理技術。盡管目前已有大量的研究開發工作,有一些可支持的面向對象數據庫系統,但面向對象數據庫的成熟仍有存在許多亟待解決的問題:
(1)實現復雜性問題:在實現復雜性和思維復雜性問題上,面向對象模型和關系模型之間存在很大差距――關系模型構造集合以及在集合基礎上發展出來的關系,對一個有數學基礎的人而言其操作語義顯然有思維簡潔性,對計算機而言,關系運算可以遞歸并具有能行性的,計算簡潔;而對面向對象模型而言,其思想主要是控制流為主導,也就是通過對象的行為,指引數據的傳遞。比如在服務驅動的分布式系統中,如SOA,其數據是用XML描述的,但由于其交互性,以及消息扮演的控制流的角色,導致用面向對象的傳遞信息方式不能發揮作用,所以在數據庫的流程和運算上,OODB并不占優勢。
(2)理論支持問題:面向對象數據庫,并沒有嚴格的理論支持。雖然對象間的關系有聚合、組合、關聯、繼承登,但這些并不是理論,而是實踐結果。不能從理論上推導出這些關系,也就無法實現出支持這些關系的對象數據庫。
(3)模型復雜度問題:由于模型較為復雜(而且缺乏數學基礎),使得很多系統管理功能難以實現(如權限管理),也不具備SQL處理集合數據的強大能力。
(4)性能問題:由于面向對象數據庫中數據被存放在許多地方,因此,有效對象聚集是性能好壞的關鍵因素。面向對象數據庫技術要想能取代傳統的數據庫技術,性能改善是必不可少的。
5.2 解決方法初步探討
就目前面向對象數據庫而言,它與關系數據庫之間的比較并不同與上世紀70年代關系數據庫和網狀數據庫間不能共存的關系。而現在面向對象數據庫的興起是在肯定關系數據庫在處理數據簡潔性,適合商務用途的基礎上的,它是對關系數據庫的補充,例如工程和多媒體應用。
在一些不需要很強大計算能力的場所,例如配置一些信息等非業務數據時,可想而知,面向對象數據庫將成為下一代數據庫的典型代表,并與關系數據庫系統并存。它們將在不同的應用領域支持不同的應用需求。
對象數據庫需要快速索引能力,以從龐大的數據集中抽取數據。在這方面做得比較好的關系型數據庫使用位圖索引技術,但數據一旦更新,這些索引就需要重新建立。因為這個原因,很少有對象數據庫有這個功能。如果能把關系數據庫的索引技術經過一定的手段嵌套在對象數據庫中,對象數據庫的性能將能得到進一步的提高。
對于標準化,這應該是面向對象數據庫發展的當務之急。早日形成關于對象關系的理論,形成一種類似與SQL語言的標準,對廠商加強約束力和實行指導作用,這對當下對象數據庫的發展具有顯著意義。
6 結束語
面向對象技術是近年來計算機技術界研究的熱點,而面向對象方法與先進的數據庫技術相結合已成為當今數據庫領域研究和發展的主要方向之一。面向對象數據庫經過較長時間的發展,已經取得一些關鍵的進展:業內對面向對象數據庫的核心概念逐步取得了共同的認識,其標準化的工作正在進行中;隨著核心技術逐步解決,工具正在開發,面向對象數據庫管理系統正在走向實用階段。
面向對象數據庫技術對復雜對象既要有極強的表達和建模能力,又要有很強的存儲和管理能力,這正是傳統數據庫技術面向復雜工程數據所難以勝任的關鍵技術。但由于面向對象模型本身固有的一些特征,業內對面向對象數據庫性能和形式化理論的擔憂仍然存在??傊?,數據庫系統發展的趨勢是,面向對象數據庫和關系數據庫將不斷融合,繼承上述兩者的優點,獲得更快的發展,最終成為DBS發展的主流。
參考文獻:
[1]Ian Graham著. 袁兆山譯. 面向對象方法原理與實踐[M]. 北京:機械工業出版社,2003,3.
[2]來羽,張華杰. 面向對象數據庫的特點分析[J]. 河南科技,2010(9):58~59.
[3]Lombardoni.A. Towards a Universal Information platform: An Object-Oriented, Multi-user,Information Store[J]. PhD thesis,ETH Zurich, Zurich, Switzerland, 2006:99~105.
[4]Kobler.A, Norrie.M.C. OMS Java: Lessons Learned from Building a Multi-Tier object Management Framework[J]. Proceedings of Workshop on Java and Databases[J]. Persistence Options. 1999,11(2), Denver, CO, USA.
[5]季維巖.面向對象數據庫及其實現方法研究[J] .科學技術與工程,2004(1):119~131.
[6]喬世權,張永強,趙金寶. 面向對象數據庫研究[J]. 軟件導航,2008(9):282~287.
[7]Supcik.J., Norrie. M.C.. An Object-oriented Database programming Environment for Oberon[C]. Proceedings of the Joint Modular Languages Conference, 1997, Linz, Austria.
[8]徐潔磐. 面向對象數據庫系統及其應用[M]. 科學出版社,2003(11):4~89.
篇6
關鍵詞:企業;數據庫系統;安全機制
中圖分類號:F27文獻標志碼:A文章編號:1673-291X(2011)10-0032-02
前言
隨著計算機的普及、尤其是在企業生產和科研領域中的廣泛使用,越來越多的信息和數據以各種各樣的形式保存在計算機中。數據庫系統作為數據存儲和管理的主要方式,也隨之得到了十分廣泛的應用。大多數企業、組織電子數據都保存在各種數據庫中。他們用這些數據庫保存一些個人資料,比如員工薪水、醫療記錄、員工個人資料等等。數據庫服務器還掌握著敏感的金融數據,包括交易記錄、商業事務和賬號數據,戰略上的或者專業的信息,比如專利和工程數據,甚至市場計劃等等應該保護起來防止非法者獲取的資料。數據庫服務器還保存著一些商業伙伴的資料。
一、數據庫系統安全的含義和目標
數據庫系統一般可以理解成兩個部分:一部分是數據庫,它按照一定的方式存取數據;另一部分是數據庫管理系統(DBMS),它為用戶及應用程序提供數據訪問,并具有對數據庫進行管理和維護等多種功能。
數據庫系統安全包含兩層含義:第一層是指系統運行安全,包括:(1)硬件運行安全;(2)操作系統安全;(3)災害、故障恢復;(4)死鎖的避免和解除;(5)物理控制安全,如機房加鎖等。第二層是指系統信息安全,包括:(1) 用戶口令字鑒別;(2)用戶存取權限控制;(3)數據存取權限、方式控制;(4)審計跟蹤;(5)數據加密。
數據庫系統安全需要實現的三個目標是:(1)完整性:只允許授權用戶修改數據;(2)可用性:保證授權用戶和應用程序可以獲取數據;(3)機密性:防止數據發生非授權泄漏。
二、數據庫系統基本安全框架
數據庫系統的安全除了依賴于自身的安全機制外,還與外部網絡環境、應用環境、從業人員的素質等因素密切相關。因此從廣義上講,數據庫系統的安全框架可以劃分為三個層次:(1)網絡系統層;(2)操作系統層;(3)數據庫管理系統層。
這三個層次構成了數據庫系統的安全體系,它們與數據安全的關系是逐步密切的,防范的重要性也逐層加強,從外到內、由表及里的保證數據的安全。下面簡單介紹一下安全框架中的這三個層次。(1)網絡系統層。隨著 Inetnet應用的普及深入,越來越多的公司將其核心業務向互聯網轉移,各種基于網絡的數據庫應用系統紛紛涌現出來,面向網絡用戶提供各種信息服務??梢哉f網絡系統是數據庫應用的外部環境和基礎,數據庫系統要發揮其強大作用離不開網絡系統的支持。數據庫系統的用戶(如異地用戶、分布式用戶)也要通過網絡才能訪問數據庫中的數據。因此,從廣義上講,數據庫系統的安全首先依賴于網絡系統的安全。由于網絡的廣泛分布性和網絡用戶的復雜多樣性,使得網絡本身存在很大的危險性,例如惡意的攻擊、竊取、病毒傳播等。目前主要通過防火墻、入侵檢測以及協作式入侵檢測等技術手段來加強網絡系統層次的安全防范。(2)操作系統層。操作系統是大型數據庫系統的運行平臺,為數據庫系統提供一定程度的安全保護。目前常見的操作系統為Windows、Unix和Linux。主要安全技術包括操作系統安全策略、安全管理策略、數據安全等方面。操作系統安全策略用于配置本地計算機的安全設置,包括密碼策略、賬戶鎖定策略、審核策略、IP安全策略、用戶權利指派、加密數據的恢復以及其他安全選項。具體可以體現在用戶賬戶、口令、訪問權限、審計等方面。1)用戶賬戶:用戶訪問系統的“身份證”,只有合法用戶才有賬戶。2)口令:用戶的口令為用戶訪問系統提供一道驗證。3)訪問權限:規定用戶的權限。4)審計:對用戶的行為進行跟蹤和記錄,便于系統管理員分析系統的訪問情況以及事后的追查使用 。安全管理策略是指網絡管理員對系統實施安全管理所采取的方法及策略。針對不同的操作系統、網絡環境需要采取的安全管理策略一般也不盡相同,其核心是保證服務器的安全和為各類用戶分配適當的權限。數據庫應用程序通常都同操作系統的最高管理員密切相關。比如oarcle、Sybase、MsSQLServer數據庫系統都有下面這些特點:用戶賬號和密碼、認證系統、授權模塊和數據對象的許可控制、內置命令(存儲過程)、特定的腳本和程序語言(通常派生自SQL)、中間件、網絡協議、補丁和服務包、數據庫管理和開發工具。許多數據庫管理員都是全日制工作來管理這些復雜的系統。但是,安全漏洞和不當的配置通常會造成嚴重的后果,而且都難以發現。(3)數據庫管理系統層。當前有一種錯誤的觀點,認為只要把網絡和操作系統的安全做好了,那么所有的應用程序也就安全了。大多數關系數據庫都是“端口”型的。任何人都能夠用分析工具試圖連接到數據庫上,從而繞過操作系統的安全機制。比如:oracle7和oracle8使用的端口是1521和1526。許多數據庫系統也有公開的默認賬號和默認密碼。這兩個特性大大地危害著數據庫的安全。
另外,由于數據庫系統在操作系統下都是以文件形式進行管理的,入侵者可以直接利用操作系統的漏洞竊取數據庫文件,或者直接利用某些工具來非法偽造、篡改數據庫文件內容,這種隱患一般數據庫用戶難以察覺。
三、常見的數據庫系統安全機制及缺陷
針對數據庫系統安全的三個層次,常見的數據庫系統安全機制主要有如下三種:(1)依賴操作系統的訪問控制功能實現。目前的主流操作系統都具備完善的用戶認證機制。對應于每一個用戶,在操作系統中相應的有一個訪問控制列表(ACL)。在訪問控制列表中設定了該用戶的訪問權限。每個登錄系統的用戶必須遵守其在訪問控制列表中設置的權限來訪問系統資源。這樣數據庫擁有者或者管理者就可以通過設置用戶訪問權限來控制用戶對數據庫文件的讀取、寫入、復制及刪除等操作。(2)采用用戶身份認證實現。常見的身份認證都是在用戶試圖打開數據庫時要求用戶輸入用戶密碼。這種安全技術的實現思想是數據庫管理軟件打開文件時校驗用戶輸入密碼是否與數據庫文件中保存的密碼數據一致,如果不一致則拒絕打開數據庫文件。通常是在一個配置文件中保存用戶名及密碼。密碼一般是采用某種加密方式存儲的,以防止因為配置文件被非法訪問而造成密碼泄漏。(3)通過對數據庫加密來實現。這種安全機制的設計思想是,利用密碼學方法對保存在數據庫中的數據進行加密處理,以增強數據庫中保存的原始數據的安全性。
下面簡要地分析一下這三種安全機制的缺陷。第一種安全技術的不足之處是,首先,數據庫文件的安全完全依賴于操作系統,當系統配置不當時,安全根本得不到保證;其次,當數據庫文件在目錄或計算機間移動時,這種保護就會失效。所以,這種安全技術的最大弊病在于要靠外部環境實現安全,一旦外部環境發生變化,安全性便無法保障。第二種安全技術的主要不足是,數據庫文件的安全完全依賴于基于密碼校驗的身份認證。如果用戶以正常方式(采用數據庫管理軟件)去打開數據庫文件時,身份認證無疑是個不錯的安全措施。但用戶以二進制文件方式打開數據庫文件時,身份認證過程會被輕易跳過。所以,這種安全技術的最大弊病在于要靠數據庫管理軟件實現安全,一旦非法用戶采用別的方法察看數據庫文件內容時,安全性就無法保障。第三種安全技術的局限也很明顯。數據庫文件一般都很大,因此,采用這種技術進行加密和解密的時間代價很大。如果用戶每次打開和關閉數據庫時,數據庫文件都要花費幾分鐘的時間來解密和加密,那么數據庫用戶是無法接受的。
四、數據庫系統安全技術的新需求及實現
新的數據庫系統安全技術應該具備以下特點。(1)安全性與操作系統平臺無關。數據庫文件無論被移動到哪臺計算機或哪個目錄,它的安全防護依然存在。即無論何時何地,數據庫文件都有足夠的安全性。(2)采用先進的加密技術??梢圆捎?DES、密碼反饋等先進的加密技術來提高安全性。在對數據庫文件密碼、數據庫字段說明部分加密時要把它們作為一個整體進行加密。(3)加密內容的選擇。對于有大量數據的數據庫文件進行完全加密是不必要的??尚械霓k法是加密數據庫文件中的文件特征說明部分和數據庫字段說明部分,這樣,即使非法用戶獲得了數據庫文件,也很難從中找到有用的內容。(4)加密與數據壓縮相結合。數據壓縮本身有數據隱蔽的功能,而且能夠減少數據庫占用的存儲空間。(5)身份認證陷阱。非法用戶通常采用枚舉密碼的辦法取得密碼,身份認證陷阱能使有這一行為的非法用戶付出很大的時間代價也無法獲得用戶密碼。(6)數據庫文件防復制的能力。復制功能是操作系統提供的,真正的“防復制”需要操作系統的功能支持。這里的“防復制”是指除非數據庫文件擁有者明確告訴數據庫管理系統要復制一個數據庫文件副本,否則非法用戶即使利用操作系統提供的復制功能獲得了一個副本,并且擁有數據庫密碼,數據庫也無法正確打開。這一功能需要依靠數據庫管理系統實現,它能在數據庫打開和關閉時對數據庫文件進行特殊處理。
結束語
當前,各企業尤其是大企業都在大量地使用數據庫系統來存放和管理各種各樣的信息和數據,互聯網的飛速發展使得越來越多的應用都通過網絡開展起來。數據庫系統也逐漸從以前的單機數據庫向網絡數據庫方向發展,這一趨勢使得數據庫系統受到的威脅也越來越大。網絡中存在的大量的黑客攻擊、病毒等都會給數據庫系統帶來危害,造成數據丟失、竊取、篡改等嚴重后果。為了實現數據庫系統安全的三個目標,即完整性、可用性和機密性,必須采取各種各樣的措施保護和防止數據庫系統受到破壞。盡管國內外已經有許多科研單位和廠商在數據庫系統安全方面進行了大量的研究工作并且取得了諸多的研究成果,但是要實現真正的數據安全還需要付出更大的努力。
參考文獻:
[1]施伯樂,丁寶康,等.數據庫系統教程:第2版[M].北京:高等教育出版社,2003.
[2]臧勁松.數據庫系統安全的研究與分析[J].計算機安全,2008,(7).
篇7
關鍵詞:中文期刊,全文數據庫,數據庫系統
引言在追求快速、方便的網絡時代,只提供題錄、文摘數據庫已不能滿足讀者的要求,全文數據庫的建設是今后發展的方向。許多文獻數據庫都是通過網絡和提供檢索的,面對的是沒有檢索經驗的用戶和巨大的文獻處理的難題,如何建立一個有價值的、用戶滿意的、實用的全文數據庫就成為廣大圖書情報人員深入研究的課題。
全文數據庫除提供一般題錄數據庫的題名、分類等檢索途徑外,還提供全文檢索。全文檢索是利用了文獻中的自然語言作為一個檢索入口,這種自然語言的檢索方式比較符合用戶的易于利用的需求。
中文與西方國家的語言不同,由大量獨立漢字組成,因此在建設中文全文數據庫時要注意數據庫系統、編碼與開發工具的選擇。
1 全文數據庫系統軟件基本模塊的設計構想由于全文數據庫是非結構化的數據,因此全文數據庫的結構(記錄、字段、子字段等)的劃分及長度的確定,往往隨文獻本身的內容特點而彼此有很大的差異。與之相對應,全文數據庫系統的軟件及其功能模塊也會有很大的不同。作為功能完備的全文數據庫系統,應該具有以下的結構特點及全部或大部分功能模塊。
1.1 數據庫結構定義模塊這一模塊主要是確定庫的記錄、字段(包括重復字段或子字段),確定相應記錄或字段的索引方式。字段設計之目的在于:增加正文之外的信息項,增加檢索的切入點;提高檢索的查準性,借以進行字段限定檢索,并提高檢索速度;索引方式的確定,以字段為單位。索引方式有四種:全字段作為一個完整單位作索引;以< >標引符號內字符串作索引;以%分割的重復字段作索引;每個字作索引(單字索引,主要用于正文字段)。在一條記錄中,字段的個數應不限,一般最多能達到數百個字段。
1.2 數據預處理模塊由于全文數據庫的數據基本上來源于外部數據,對不同格式的數據處理采用不同的方法。
電子排版文本。這種文本中含有排版符號。如果全文數據庫建立在這種排版軟件基礎上,則文本無需加工。但多數全文數據庫系統并非建立在這種排版文本基礎上的,因此有必要通過軟件一次全部刪除排版符號,同時應解決由于刪除排版符號而帶來的問題,如補字、數學公式、上下標等等,使之成為完整的純文本文件。
網上下載的PDF文件、網頁文件、光盤上記錄的某些特殊格式的數據。如果全文系統采用純文本格式,則需對其轉換。
以上這些文件的轉換,需要編制工具軟件,或利用已有的轉換工具。
文本預處理還包括數據的批式標引。這是建立全文數據庫之前特別是數據裝載之前,主要是利用文字處理軟件和專門自動標引軟件對數據進行的標引,或按自己建立的標引詞表,對文本進行的掃描標引。
1.3 裝庫模塊裝庫就是將數據預處理后的文本數據導入已有的庫結構之中。
有的全文庫要求將數據轉換成ISO2709(CNMARC)格式才能裝庫;有時可將有一定標志的文本格式裝庫;有的則將文本按原格式導入庫結構;有的不實際裝庫,只在系統中建立指向文本文件地址的指針??梢愿鶕唧w情況選擇裝庫方式,但最后一種方法不推薦使用。
1.4 標引模塊全文庫正文的單字索引,不必建立,因為系統有識別每個漢字和其他符號或外文字串索引功能。
在以單字為基礎的索引中,以布爾邏輯為手段進行檢索,誤檢率極高,需以位置檢索手段進行檢索,用以提高查準率。以單字為基礎的索引的優點在于不需要人工標引,可實現索引的自動化,從而大大提高了建庫的效率。但單字索引也存在明顯的缺點,即同義詞、相關詞無法控制,解決辦法可以通過在檢索匹配模塊設置后控詞表進行后控檢索。
1.5 索引作業模塊索引作業就是按照庫結構定義中的索引字段生成索引的過程,一般生成一個索引即可。為了區別不同字段的索引款目,可以在索引定義中加文字常量。這樣在混排索引中就可以把不同屬性的索引款目相對集中,在檢索時,可以進行按字順顯示。如要檢索作者為“高山”的著作,應這樣輸入檢索式:“AU = 高山”,從而可以避免檢出作為關鍵詞的“高山”及正文中的“高山”。全文索引的主體應該是正文的單字索引,借助這種索引可以使全文中的任何信息、中心主題信息與邊緣性信息都能被檢索出來,避免標引中的遺漏和主觀武斷,從而實現檢索的徹底性。
1.6用戶輸入檢索式模塊這一模塊是全文數據庫系統與用戶之間最直接的接口,也是決定檢索結果好壞的關鍵。全文數據庫的使用者往往缺乏系統檢索經驗,要查到一些信息容易,但查全、查準信息較難。全文庫檢索主要是使用自然語言,缺乏詞匯的控制,因此隨意性較大,檢索效果的評價也缺乏明顯的驗證標準。要引導用戶正確提出檢索式,一般來說有三種基本的引導用戶的模式:
詢問表方式。即在用戶檢索時,系統提出一個詢問表格,檢索項目由用戶填寫。這些項目如:欲檢索的篇名、作者姓名、關鍵詞、分類號、單字等等。不必要求用戶每項都填,即使只填一、二項也可。詢問表方式引導用戶表達自己信息需求的方式,對無檢索經驗者較為有用。
詞典式檢索。此方法適用于一般用戶。按詞典檢索時,應能允許用戶從顯示詞表中用光標選詞,并且可選一個以上的詞,被選中的詞以“或”方式連結。如果讀者要用“與”“非”方式,應能從表下所附的AND、NOT中點出這些運算符,使之形成檢索式。總的來說,其目標應該是減少用戶自己輸入漢字和運算符,以提高效率并減輕其負擔。
命令方式。這是供有一定檢索經驗的用戶使用的,功能最為強大。命令方式主要是布爾運算、位置運算、括號嵌套、截斷符號、字段限定等。
1.7 用戶檢索分析處理模塊系統對來自屏幕的用戶檢索式加以處理,使之形成便于運算的檢索方式。論文參考。對于復雜的檢索式,需要進行逆波蘭變換,確定各檢索項的運算次序。對詢問表的檢索式也需根據用戶所填數據形成檢索式。對標引詞表顯示中用戶光標指定詞加以收集,并形成檢索式。
在這一模塊中,系統還應該檢查用戶提問檢索式是否有錯誤(如左右括號不配對,數個運算符連用,字段文字常量輸錯等),如發現錯誤,應向用戶做出提示,并給出修改建議。
1.8 檢索匹配模塊這一模塊與一般檢索系統相同,但作為全文數據庫來說還應具備下列功能:
較強的位置檢索功能。由于全文庫往往對正文字段單字索引,因此對單字的布爾檢索不大適用,而應以位置檢索為主。位置檢索時,應對緊密相鄰的幾個字采用連寫方法,不必插入位置運算符?;蛘哒f,字與字之間默認的運算符是彼此緊密相鄰。
全文庫或指定集合中的順序掃描匹配檢索。當對正文作單字索引的情況下,允許用戶使用這種掃描匹配進行檢索。用戶只需輸出一個字符串(詞或短語),計算機就開始對全庫或指定集合進行檢索匹配。
1.9 檢索結果的處理模塊檢索結果的處理主要包括:顯示瀏覽有關記錄(段或句子)文本。排序:可由用戶指定排序鍵。排序鍵可以是年代、字順或命中頻率。排列次序可以是升或降序。聚類:在有屬性標引的全文庫中可進行聚類。打印:可將命中結果打印輸出。下載:可以提供文本格式或機內數據格式兩種下載方式。
2 數據庫系統、開發工具及中文編碼的選擇2.1 數據庫系統的選擇理論上現在成熟的大型關系數據庫軟件均可作為中文期刊全文數據庫系統,但從市場占有程度及成本和易用性考慮,用來存儲中文期刊全文的數據庫系統建議從以下幾種平臺中進行選擇。如果服務器端操作系統為Unix或Linux,并且經費預算允許,建議選擇Oracle作為數據庫系統。Oracle數據庫是一種具有無限可伸縮性與高可用性,并可在集群環境中運行商業軟件的互聯網數據庫,具有400多個領先的數據庫功能,在集群技術、高可用性、商業智能、安全性、系統管理等方面都實現了新的突破。如果從降低成本考慮,可以選擇MySQL作為數據庫系統。以上兩種數據庫還提供支持Windows操作系統的版本,具有跨平臺能力。
如果服務器端操作系統為Windows,則建議選擇SQL Server作為數據庫系統。SQL Server是一個全面的數據庫系統,使用集成的商業智能(BI)工具提供了企業級的數據管理。SQL Server數據庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,可以構建和管理用于業務的高可用和高性能的數據應用程序。
2.2 開發工具的選擇如果系統需要跨平臺部署,在選擇Oracle或MySQL數據庫系統的基礎上,建議選擇Java為開發工具。Java是一種簡單的,面向對象的,分布式的,解釋型的,健壯安全的,結構中立的,可移植的,性能優異、多線程的動態語言。如果對跨平臺沒有要求,并選擇SQL Server數據庫系統,則建議選擇Visual Studio為開發工具。Visual Studio 是微軟公司推出的開發環境。是目前最流行的 Windows 平臺應用程序開發環境。目前已經開發到 9.0 版本,也就是 Visual Studio 2008。Visual Studio 可以用來創建 Windows 平臺下的 Windows 應用程序和網絡應用程序,也可以用來創建網絡服務、智能設備應用程序和Office 插件。
2.3 中文編碼的選擇中文編碼主要有以下四種:
GB2312:簡體中文編碼,一個漢字占用2字節,在大陸是主要編碼方式。當文章中包含繁體中文、日文、韓文等等時,這些內容可能無法被正確編碼。
BIG5:繁體中文編碼。主要在臺灣地區采用。
GBK:支持簡體及繁體中文,但對其它國家非拉丁字母語言還是有問題。論文參考。
UTF-8:Unicode編碼的一種。Unicode用一些基本的保留字符制定了三套編碼方式,它們分別UTF-8,UTF-16和UTF-32。在UTF-8中,字符是以8位序列來編碼的,用一個或幾個字節來表示一個字符。論文參考。這種方式的最大好處,是UTF-8保留了ASCII字符的編碼作為它的一部分。UTF-8俗稱“萬國碼”,可以同屏顯示多語種,一個漢字占用3字節。
因此,為了保證全文數據的存儲和顯示不出現問題,建議選擇UTF-8為數據庫系統編碼,應該在裝庫操作前對所有內容進行編碼轉換,統一轉換成UTF-8編碼。
結語全文數據庫以其內容完整、直接提供一次文獻等特點,越來越受到人們的關注。全文數據庫給網絡環境下的信息交流提供了更為方便快捷的途徑。在全文檢索技術日趨成熟的條件下,全文數據庫在供讀者利用方面表現出的優勢是其它類型數據庫所無法替代的。因此,對中文全文數據庫的設計進行研究,是信息服務發展的必然要求。
參考文獻[1]秦劍.我國數據庫建設的思考與展望[J]河南圖書館學刊,2002,(04).
[2]程文艷.數字圖書館——數字中國的開路先鋒[J]情報科學,2002,(06).
[3]楊麗兵.淺談中文過刊編目數據庫建設工作[J]農業圖書情報學刊,2004,(01).
[4]何凱文.我國高校圖書館數字資源建設的問題及發展途徑[J]圖書館建設,2004,(05).
[5]曾莉紅.基于點擊率的全文數據庫檢索結果組織方法探討[J]情報雜志,2007,(06).
篇8
在Yukon的醞釀和設計過程中,設計師對下一代數據庫系統的編程能力下了很多氣力。微軟內部的開發人員認為,下一代的數據庫系統一定要包括更多的對稱編程模式,對各種數據類型的查詢應該更靈活。所謂的對稱編程模式是指對于常見的數據庫操作,用戶應該可以使用XML,.NET或是傳統的T-SQL程序
在這種設計思想的指導下,Yukon在許多方面有了大的拓展。首先,.NET的公用語言執行環境(CLR)被融合到了新的系統里;第二,融合進來的.NET提供了很多強有力的數據庫對象;第三,XML在這版的數據庫里得到了更好和更深的支持;第四,數據庫的服務器端提供了對XML查詢(XQuery)以及XML規范定義語言XSD的支持;第五,傳統意義上的T-SQL也得到了進一步的增強
新的編程模式和新增的語言一道使得數據庫應用的開發有了更豐富的選擇。新的體系結構使得我們更容易構造可靠的,可擴展的,穩定的應用,并且開發的效率也得到了極大的提高。Yukon中還引入了全新的服務(Service Broker),一種分布式的一部消息傳遞機制,現在讓我們先看看編程語言方面的增強。
目錄
Transact-SQL 語言的增強
在SQL服務器中使用.NET來編程
充分開發CLR的潛能
在T-SQL和管理程序之間的取舍
用戶定義的類,函數和集合
管理的存儲過程
Transact-SQL 語言的增強
Yukon對微軟的T-SQL有了很多的增強。用戶可以在Yukon的Online幫助中得到詳細的信息,限于便服,在此不一一列了。新增的特色表明了微軟對ANSI-99 SQL標準的進一步支持,同時也反映了對廣大用戶反饋意見的相應。新的增強主要是為了使查詢更富有表達性。有幾種新增的查詢可以很好的覆蓋用戶常用的一些查詢類型。比如說,遞歸查詢可以返回有層次機構的結果集合(hierarchical resultset)或是a bill of materials。
Yukon提供了新的PIVOT和UNPIVOT操作。這些操作的輸入是表格類的表達式(table-valued expression),其輸出結果同樣是表格類型。PIVOT操作是將行轉變為列,并進行集合以及其他的數學操作。在輸入的表格中它將以一個給定的列為軸進行旋轉,其成生的表格的列是有不同值的原旋轉列。這種操作使得生成的表格變寬(設想一個5列100行的輸入表格,其結果可能是100列5行的表格)。UNPIVOT是PIVOT的逆操作。它將輸入表格的列轉換為行。其結果是使輸入表格變窄。
Yukon的異常捕捉和處理機制也有了很大的變化。它使用了和.NET一致的TRY/CATCH結構。導致交易終止的錯誤將會被捕捉并且處理。另外為了配合.NET的框架提供的安全,復制,提示服務以及XML等等功能(security, replication, Notification Services, XML),Yukon引入了不少新的語言構造。.NET在服務器端的技術也極大了影響了SQL數據庫的研制和發展。
在SQL服務器中使用.NET來編程
程序員可以在Yukon中使用和.NET兼容的高級程序語言進行開發,利用VB.NET,C#這一類的語言編寫自定義函數(user-defined functions),存儲過程(stored procedures)和觸發(triggers)。另外,利用管理程序(managed code)還可以開發自定義函數(UDTs),集合(aggregates),函數(functions)。公用語言執行環境(CLR)是.NET的核心,它是一切基于.NET開發的程序的運行平臺。它提供了諸多的服務,比如實時編譯(just-in-time compilation),內存管理和分配(memory management and allocation),類型安全強制(type safety enforcement),異常處理(exception handling),線程管理(thread management)以及安全檢查(security)等等(CLR對于.NET程序就好比Java的虛擬機對于Java程序一樣)。在Yukon中,.NET程序將和在CLR中完全相同的方式運行。
將CLR整合到Yukon中的好處是顯而易見的。Yukon獲得了CLR的各種有益的功能,如自動的內存管理,資源分配,垃圾回收等等。Yukon提供了一套.NET assemblies,這樣允許程序員直接操作數據庫對象。數據的操作是通過一套特殊的ADO.NET來實現的。這些新的方法和原來的ADO.NET非常相似,程序員應該感到非常的熟悉和親切。細一點說,我們可以把Yukno集成了CLR的好處歸結為以下幾點:
1.豐富了編程模式。CLR兼容的高級程序語言比T-SQL要豐富的多,也強大的多。它們提供的功能和特色是以往SQL程序員不敢想象的。此外,Yukon還提供了一系列的類庫(Framework APIs),這些類庫的功能比以前SQL內置的功能強大的多
2.增強了安全性。管理程序運行于數據苦支持的CLR環境當中。這使得數據庫的對象比以往的擴展存儲過程(extended stored procedures)更安全
3.用戶自定義的類型和集合。通過對CLR的集成,這兩個新增的對象擴展了SQL數據庫的查詢和存儲能力
4.為今后的Visual Studio®開發環境指明了方向。今后程序員可以向開發其他.NET程序那樣用VB.NET或是C#這類的高級語言進行數據庫的開發,調試工作。
5.性能的增強。在一些情況下,.NET語言的編譯和執行可以提供比T-SQL更好的性能。
充分開發CLR的潛能
在以前的SQL數據庫應用的開發中,服務器端的程序被限制于T-SQL。而在新的Yukon中,由于集成了CLR,使得開發工作變得前所未有的容易和方便。像VB.NET和C#這類的高級語言,全面支持數組(Array),結構化的異常處理(structured exception handling)以及各種集合操作(Collections)。這些功能使得程序員可以編寫更復雜的邏輯和計算工作。
更突出的一點就是Visual Basic .NET and C# 是面向對象的語言,它們自身所具有的數據封裝(encapsulation),繼承(inheritance)和多態性(polymorphism)是T-SQL所不能比擬的。在大型系統的開發中,這種基于模塊化開發機制的優越性會更加明顯。它可以更好的組織你的源程序,增加代碼的重用性。將源程序按照邏輯關系編譯成不同的assemblies和n字域(namespaces)可以增強程序的組織性,讓程序員更方便的瀏覽和使用已有的程序。
Yukon實現了三個層次的assemblies安全的管理控制。這種安全機制是對以往基于用戶驗證和授權機制和新的CLR安全機制的有機合成。新的三級管理層次為:
最高層次: 安全接觸(SAFE)。它只允許接觸和計算數據
次高層次: 外部接觸(EXTERNAL_ACCESS)。它允許接觸外部的系統資源
最低層次: 不安全接觸(UNSAFE)。只要不對系統的穩定性造成影響,就不加限制。
在T-SQL和管理程序(Managed code)之間的取舍
管理程序非常適于進行數字密集型的計算和復雜的邏輯處理。.NET對于字符串 (String),規則表達式(regular expressions),錯誤捕捉等等有著更好的支持。另外.NET提供的上千個類(Class) 和方法可以在自定義函數(user-defined functions),存儲過程(stored procedures)和觸發(triggers)中很方便的使用。所以對于有大量字符創操作,數學計算,日期運算,系統資源存取,高級加密運算,文件操作,圖像處理或是XML的情形,管理的存儲過程,函數,觸發,集合要比傳統意義上的T-SQL等強大和簡潔。
使用管理的程序的另外一個好處就是類型安全。在管理的程序執行之前,CLR要對其進行檢查以保證它的安全運行。比如說,對于一個內存讀寫的操作,CLR要先進行檢查以保證在讀取的時候沒有寫操作在進行。
在準備編寫存儲過程,觸發,或是UDFs之前,你要權衡各種情況,在傳統的T-SQL和管理程序(Managed code)之間做出選擇。選擇的標準是你當前問題的具體特點。如果你的主要操作是數據存取以及相對簡單的邏輯運算,那么T-SQL則非常合適。對于有大量數值計算以及復雜邏輯運算的情況,管理程序(Managed code)則更適用。
程序放置在什么地方也是很關鍵的一步。T-SQL和管理程序(Managed code)都是在數據庫的引擎內運行。把.NET和數據庫緊密放置在一起可以有效的發揮服務器的硬件運算能力。當然最好是用SQL數據庫的Profile程序來測量一下你的具體程序的運行性能,然后再做出決定。Yukon的Profile程序有了進一步的增強??梢愿顚哟蔚臏y量SQL數據庫內的CLR的性能,并且會以更直觀的圖形方式來輸出對比測試結果。下面就讓我們來具體看看Yukon中新增的一些功能。
用戶定義的類,函數和集合(User-defined Types, Functions, and Aggregates)
Yukno支持擴展的CLR的類系統。這些擴展的類可以在服務器端定義表(table),也可以在客戶端進行數據操作。用戶自定義類型(UTDs)允許用戶擴展已有的類。這些擴展的具體實現是用的管理程序(managed code)。比如說,你可以定義一些用于地理空間的類型,一些特殊的金融類型或是特別的時間日期類型以適應你獨特的要求。
用.NET的術語來說,UTDs是結構(struct)或是參考類型(reference type),而不是類(class)或枚舉(enum)。這意味著內存的是用是由CLR控制優化的。不過,UTDs不支持繼承和多態性(inheritance and polymorphism)。它可以有公用或是私有函數(public and private functions)。事實上,諸如限制檢查(constraint checking)應該由私有函數來完成。舉例來說吧,如果你想定義一個地理空間的類型,這可能包含經度,緯度也許還有高度信息,你可以定義相應的私有成員來完成這一任務。這類型創建完成后,你可以把他注冊到SQL數據庫中。這個被編譯的DLL就會被存放在SQL數據庫中。
用戶自定義函數(UDFs)有兩種類型:一種是標量值型的(scalar-valued),這種函數返回單一的值,如字符串,整數,比特等等。另外一種是表格值型的(Table-valued)。這種函數返回有一個或多個列組成的數據集合。
Yukon允許用戶定義新的集合(aggregate)操作的能力遠遠超過了以前的版本。用戶用管理語言開發的集合可以被T-SQL或是其他的管理語言調用。這些新開發的集合是.NET的類,它可以引用數據庫中存在的其他編譯好的類庫(Class Library)。你可以使用用戶定義的集合將數據庫中的數據轉化為數值型變量。比如你最近的一次用戶調查的數據存放到數據庫中,通過一個用戶定義的統計函數你可以得到加權平均或是標準偏差。
篇9
關鍵詞:數據庫;教學方法;教學改革
中圖分類號:G424文獻標識碼:A文章編號:1009-3044(2008)34-1560-01
Researches on the Teaching of the Database Systems Principles
ZHANG Li
(Computer and Information Institute, Yang-en University,Quanzhou 362014, China)
Abstract: Based on self teaching experiences, through analyzing those questions in the teaching of the database systems principles, the essay puts forwards several arguments about the teaching of the database systems principles, including teaching contents, methods and so on.
Key words: database; teaching methods; teaching reform
1 引言
數據庫技術是計算機科學技術中發展最快的領域之一,也是應用最廣的技術之一,它已成為計算機信息系統與應用系統的核心技術和重要基礎。在教育部高等學校計算機、信息類專業的培養方案中,《數據庫系統原理》一直是四年制本科學生的專業必修課程。學好這門課,對學生畢業以后從事軟件開發等相關工作具有重要意義。
2 教學中存在的問題
通過對我校近幾年計算機專業《數據庫系統原理》課程教學現狀的分析,發現主要存在以下一些問題:
2.1 理論教學和實踐教學課時安排不合理
隨著國家的教育改革,不斷地減少學時數減輕學生負擔,該課程教學總課時數較少僅54學時,要求學生在較短的時間內掌握完整的理論知識,又能夠在實際中較好的運用數據庫技術是比較困難的。因此,教師要么偏重于理論教學,要么偏重于流行數據庫開發工具的教學,使理論與應用比例失調,無法為學生構建一個合理的知識結構,影響了學習的效果。
2.2 教學方法和手段缺乏多樣性
目前大部分高校都提倡并要求教師使用多媒體進行教學,《數據庫系統原理》也不例外,此教學方法節省了教師板書的時間,節約了課堂時間,擴大了教學內容的信息量,有利于解決課時少的問題,但是另一方面,它的缺點也很明顯,每次課知識覆蓋面大,信息量大,不益于學生消化吸收,影響教學效果,同時,師生雙向交流也受到限制,學生長時間注視屏幕,易疲勞和走神。因此,必須合理運用多媒體教學資源,改進教學方法和手段,調動學生學習積極性,提高學習效率。
2.3 傳統的考核方法不能全面檢查學生的學習效果
考核是檢查教學質量的一個重要手段,對學生學習和教師教學具有導向作用?!稊祿煜到y原理》是一門理論與實踐并重的課程。傳統的考核方式通常是以理論考試作為最終成績,使得部分學生只是靠死記硬背來通過考試,而動手能力較弱,這樣沒有全面的檢查學生的學習效果。
3 教學改革
3.1 選用優秀教材,優化教學內容
采用高等教育出版社的《數據庫系統概論》,本套教材為普通高等教育“十五”國家級規劃教材,選用流行易上手的SQL Server 2000作為實驗平臺,為學生以后使用更新更復雜的數據庫管理系統打下基礎。因為課時少,按照教學目標要求合理選擇教學內容,不要意圖將所有知識點面面俱到,引導學生入門是關鍵所在,突出重難點,有些知識點可以適當留給學生課下自學。
3.2 改進教學方法和教學手段
在實際教學中,合理使用各種教學方法和手段,以學生為中心,采用啟發式,討論式等教學方法,充分利用網絡資源,增加學生實踐機會,激發學生學習熱情。
1) 以學生為中心的教學方法。
在上第一節課時,主要是要做好動員工作,不要講太多理論知識,語言盡量生動,舉有趣的例子,讓學生對這門課感興趣。平時在課堂上要善于把枯燥的內容轉變為學生容易理解的知識。在教學過程中注重示例性講解,把書上例題講通講透,讓學生能夠融會
(下轉第1563頁)
(上接第1560頁)
貫通。在課堂上也要注意避免一言堂的情況,合理使用討論式、啟發式教學方法,充分調動學生,多與學生交互,讓學生的思維活躍起來,積極地參與思考,提出問題。在正式講課之前可先用幾分鐘進行典型問題的講解或優秀習作的展示,達到學生自我教育的目的。還可充分利用多媒體工具,提高教學效果,比如可把要講解的比較復雜的操作過程制作成flas,動態演示給學生看,有助于學生消化理解,也同時給了學生直觀的視覺刺激,這樣極大的增強了課堂教學效果和學生的興趣。
另外,實驗內容可適當超前教學內容一些,鼓勵學生自學與預習。
2) 構建網絡課堂。
網絡課堂是一種新的教學手段,是課堂教學的有益補充??梢詫⒄n件和視頻上傳到網上,學生可以不受時空的限制自主學習。學生和教師可以通過BBS、QQ、MSN、Email等多種方式進行答疑或討論。學生也可在網上考試平臺中進行自測學習。充分利用網絡資源,通過電子圖書館可以足不出戶就閱覽大量數據庫方面最新最全的書籍。
3) 強化管理,注重實踐。
學生座位固定,方便點名,保證出勤。實驗課內容要求學生事先寫,及時交,避免有學生抄襲。
在開學初就布置課程設計,要求學生以小組為單位開發數據庫應用系統,課堂上教師介紹必要的理論知識,課外,學生通過自行分配任務,互相探討的學習模式完成具體的實踐工作,以此增強學生對數據庫應用系統開發的認識,提高學生對本專業的興趣,培養動手能力和團結協作精神。隨著教學進程的推進,學生在教師的全程指導下進行課程設計。這樣一個貫穿整個學期的課程設計對學生學好《數據庫系統原理》課程是很重要的。
鼓勵學生參與科研項目,參加大學生創新性實驗計劃等比賽,提高自己的實踐能力和團隊協作精神。
3.3 改革考核方法,重視能力培養
由于該門課程的特點,對學生進行考核時,既要注重理論知識,也要注重實踐技能的考核。因此,改變了過去只有筆試的考試方法。實踐能力的考核方式可靈活一些,由平時的實驗和期末的課程設計結合起來進行考核。理論部分分期中和期末二次,有期中考試可以及時在學期中了解學生的學習效果,也可讓學生了解自己的水平如何,好及時調整狀態。經過一年多的教學改革,取得了較好的教學效果。學生在做畢業設計時運用地越來越熟練,并且有部分學生在畢業后從事數據庫相關領域的工作。
4 結束語
以上教學方法在計算機專業和信管專業的《數據庫系統原理》課程進行了試用,其教學效果反映很好。學生掌握了數據庫的基本原理和基本技術,大部分學生能夠能夠自己開發一個實際可用的軟件系統,實踐能力得到了鍛煉。
隨著數據庫技術的不斷發展,知識的日新月異,教師也需要在教學過程中不斷增加新的理論和技術,嘗試新的教學方法和手段,培養出更多適合信息化社會的人才。
參考文獻:
[1] 張龍翔.《數據庫原理》教學改革探討[J].考試周刊,2007(14):85-86.
[2] 曾臺盛.《數據庫原理與應用》課程教學改革探討[J].福建電腦,2005(8):162.
篇10
[關鍵詞] 數據庫;檢索;中藥大辭典
[中圖分類號]TP392 [文獻標識碼]C [文章編號]1673-7210(2007)11(c)-105-02
《中藥大辭典》是一本較為權威的常用中藥工具書,對廣大的臨床、科研、教學工作者及其他人士學習、認識、了解、掌握中藥知識具有很大的實用價值,應用相當廣泛[1]。但工具書的使用有許多不便,費時,且更新周期較長。目前國內外存在一些中醫藥數據庫檢索系統,但這些系統中的全文檢索、關鍵字檢索結果僅限于單個關鍵字、詞的對應性檢索,以致相同概念、相近表達的內容出現漏檢,或需多次檢索才能滿足要求。此外用戶檢索時,根據不同的目的有不同的檢索要求,往往不需要其全部內容,否則顯示結果繁瑣而冗長,影響檢索效率。因此設計一個具有模糊檢索、智能檢索以及能對檢索結果進行取舍的中藥數據庫檢索系統非常有必要。
1 《中藥大辭典》系統的功能模塊
系統對《中藥大辭典》所包含的中藥藥材知識進行搜集、整理與組織,并建立相應的數據庫和數據采集模塊、信息查詢模塊,實現對中藥正名、別名、基源、性味、功用主治及中藥的現代研究應用等的模糊查詢及智能化查詢,并能根據用戶所需達到知識的全面鏈接及檢索結果的智能化取舍的功能。其功能模塊圖見圖1。
1.1 中醫信息的數據采集模塊
數據采集功能設計模塊包括中藥各種基本信息的采集,允許增加、修改等操作;中藥數據庫的動態維護、特別是對于有關中藥的現代研究成果可通過此模塊及時補充更新。
1.2 查詢模塊
查詢模塊是整個系統的一個核心模塊,包括以下功能:
1.2.1 正、異名查詢模塊支持正名和異名的查詢,允許用戶對查詢的結果進一步選擇鏈接。檢索方式包括中藥名稱、拼音或拼音縮寫三種方式。為了使該查詢系統能夠適合更多的人使用,因為使用者不一定知道正名,只知道其經常使用的別名,或是由于地域不同,同一種中藥材的別名也不同(例如,正名:地龍;異名:蚯蚓;水楊梅,在長沙叫沙金子,在湘西卻叫穿魚串等等),系統重點處理了此模塊,實現正、異名分開查詢(圖1)。
同時考慮有些中藥名漢字很難寫或在輸入法中找不到,系統提供拼音和拼音縮寫方式查詢。此外,系統還提供了常用的別字查詢,包括同音別字和近形別字兩種情況。當用戶在輸入要查詢的中藥名稱的過程中出現了同音異形的別字,或字形很相近的別字時,系統通過提示用戶輸入有誤,并詢問是否查詢與所輸入內容相近的中藥名(例如,用戶將“黃連”輸入為“黃蓮”或將“沉香”輸入為“沉杳”,系統可提示是否輸入黃連及沉香),用戶通過再次輸入自己想要查詢的正確的中藥名稱后查詢出此種中藥的詳細信息。
1.2.2 性味查詢模塊支持在四氣五味上實現正名、異名查詢模塊,除能根據單純的四氣或五味來顯示查詢結果外,還可以在四氣五味間自由組合,如性味的組合、兩種藥味的組合的查詢,并顯示查詢結果。
1.2.3 功用、主治查詢模塊實現根據功用、主治及它們的組合來顯示查詢結果,支持模糊查詢,即查詢結果中除顯示與輸入的功用、主治完全一致的藥物名稱外,還顯示與該名稱相近、相似的功用、主治及其相對應的藥名及相關信息。
1.3 系統維護模塊
系統維護模塊主要是對系統的管理的實現及對查詢結構的打印功能的實現。
2 關鍵技術
2.1 數據的整理與組織
數據庫中數據的結構與內容的完整性決定了最后查詢的速度與效率,因此在建立數據庫之前,需要對《中藥大辭典》所包含的中藥藥材知識進行搜集、整理與組織[2]。組織的基礎是根據人們對中草藥知識檢索與知識發現的需要,內容是形成基本符合計算機檢索要求的全面、系統、詳盡資料。中草藥歷史悠久,其有些屬性(如性味)的表達一般有多種,但術語的應用卻是相對穩定的,因此在數據組織的基礎上,建立“原子”知識庫,使圍繞某個核心的知識不會被漏檢。
2.2 模糊檢索的研究與實現
對某些含義相同或相近但表達不同的檢索要求,系統引入不完全知識及非精確推理,以擴大知識的表示與處理范圍,實現全面檢索的目的。
由于數據庫索引不是為全文索引設計的,因此,使用like “%keyword%”時,數據庫索引是不起作用的,所以對于需要提供大量模糊查詢的檢索系統來說,使用LIKE語句對性能的危害是極大的。如果需要對多個關鍵詞進行模糊匹配:like“%keyword1%” and like “%keyword2%”其效率就更低了,因此采用Oracle的Oracle Text組件。它提供了索引編制、文字和主題搜索以及文本查看功能[3]。通過設置Oracle Text詞法分析器(lexer),建立好CONTEXT索引后,就可以使用CONTAINS操作符檢索數據了。在SELECT語句中,可以在WHERE子句指定CONTAINS操作符,還可以指定返回記錄的得分(得分SCORE是指查詢結果的貼切程度),還可以有很多查詢選項,進行邏輯、模糊、通配符、主題等查詢。
下面是我們在本系統中使用的一個例子:
SELECT score (1) title;
FROM oraigin_text;
WHERE contains (text, ‘辛’, 1) > 0;
這樣就可以迅速查詢出原文中包含“辛”這個詞的相關條目,而且得分越高表示查詢信息滿意度越高,下次查詢可以根據SCORE進行排序以獲取接近的條目。
2.3 智能化檢索的研究與實現
智能化的設計最后在查詢中體現在兩個方面,一是未整理到知識庫的檢索點,系統從數據庫的大量數據中提取、挖掘和發現知識,實現人機交互式的學習記憶,達到智能查詢的目的。二是實現知識的全面鏈接及檢索結果的智能化取舍。檢索結果以總綱的方式表現,允許用戶根據需求對檢索結果的智能化取舍,并建立廣泛、深層的鏈接。
3 結束語
中醫藥在我國已有兩千多年的歷史,《中藥大辭典》中收載的中藥達五千多味,對每一味中藥歷朝歷代又分別有不同的記載和認識,如此龐大的數據量,采用信息技術處理是最佳方法。與其他學科和領域相比,信息技術在醫學領域,特別是中醫藥學的應用還比較落后,中藥圖書領域則更為突出。面對國際社會的關注,中醫藥事業正面臨著前所未有的機遇和挑戰,而信息技術的應用無疑會對更好地繼承、發揚與推廣我國中醫藥學提供很多便利條件和途徑。本課題的建立,使古老的中醫藥與現代先進的科技相結合,使中醫藥在基礎理論上實現對中藥藥材信息完整而全面的記錄,使之成為一套全新概念的電子化信息系統,讓用戶比較直接并明確藥材的具體功用,在查詢的同時能夠進行有效的學習和了解,并可通過網絡在不同用戶之間相互交流,不斷對知識庫進行擴充,修改和刪除,使中醫藥與信息技術完美結合,推動醫藥事業的發展。
[參考文獻]
[1]江蘇新醫學院.中藥大辭典[M].上海:上??茖W技術出版社,2006.
[2]李翔,王廣平,邵蓉.試論我國中藥產業信息化服務的發展戰略[J].中藥研究與信息,2005,7(6):41-45.