周霞+張偉男+時壯
摘要:之前絕大多數(shù)調查決策系統(tǒng)都采用傳統(tǒng)的關系型數(shù)據(jù)庫進行數(shù)據(jù)存儲;現(xiàn)今大數(shù)據(jù)時代來臨,各類非關系型的數(shù)據(jù)庫開始嶄露頭角,并在應用中所占比重愈來愈大。MongoDB就是其中的后起之秀。因此,嘗試使用非關系型數(shù)據(jù)庫MongoDB來作為調查決策系統(tǒng)的數(shù)據(jù)存儲是非常有現(xiàn)實意義的。該文為大家呈現(xiàn)基于MongoDB這個面向文檔的非關系型數(shù)據(jù)庫來設計投票及所包含問題的數(shù)據(jù)存儲,在詳細介紹其內嵌和引用這兩種解決方式基礎上最終給出后臺的數(shù)據(jù)存儲方案。
關鍵詞:非關系型;數(shù)據(jù)庫; MongoDB;調查決策;數(shù)據(jù)存儲
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2016)08-0018-02
Abstract: before the vast majority of investigation decision system use the traditional relational database for data storage; today's big data era is coming, all kinds of non - relational database began to emerge, and in the application of accounts for the proportion is more and more. MongoDB is one of the bright younger generation. Therefore, try to use the non relational database MongoDB as the investigation decision system of data storage is of great practical significance. In this paper we present non relational database based on mongodb this document oriented to design voting and contains data storage problem, describes in detail the embedded and refer to the two solution on the basis of finally gives the background data storage scheme.
Key words: non relational database; MongoDB; survey; decision making; data storage
傳統(tǒng)的關系型數(shù)據(jù)庫技術自20世紀80年代開始成熟并至發(fā)展壯大,持續(xù)占據(jù)著絕對的市場主導地位。近年,電子商務、大數(shù)據(jù)、云計算和人工智能等應用產生的數(shù)據(jù)已經以PB或ZB來計算,信息化的社會帶來了數(shù)據(jù)規(guī)模的急劇增長,大數(shù)據(jù)(Big Data)時代已經到來;大量半結構化、非結構化的數(shù)據(jù)亟待新的數(shù)據(jù)計算和處理模式,非關系型數(shù)據(jù)庫(NoSQL)在此背景下應運而生,NoSQL指的是Not only SQL,它泛指一切與傳統(tǒng)關系數(shù)據(jù)庫不同的數(shù)據(jù)庫技術,與傳統(tǒng)的關系型數(shù)據(jù)庫之間是互補關系。如今,多種非關系型數(shù)據(jù)庫已經得到了廣泛的應用,在處理大量數(shù)據(jù)的寫入、提升性能和增大規(guī)模方面發(fā)揮著越來越大的作用,非常適合于網站數(shù)據(jù)的存儲。
日常我們經常會接收到各種問卷調查,大學城中師生開展的各類調查更是數(shù)不勝數(shù),原始的紙質問卷已不能滿足需求,各類調查系統(tǒng)已經被廣泛應用;但在過去的很長一段時間中,各類調研系統(tǒng)的后臺數(shù)據(jù)庫都是關系型數(shù)據(jù)庫;然而,在信息技術爆炸式發(fā)展的今天,大數(shù)據(jù)已經成為了新的技術革命,關系型數(shù)據(jù)庫在處理大數(shù)據(jù)量時力不從心,新的數(shù)據(jù)庫解決方案嶄露頭角——那就是非關系型數(shù)據(jù)庫。非關系型數(shù)據(jù)庫擁有眾多優(yōu)秀特性,逐步讓越來越多的企業(yè)和開發(fā)者所喜愛,MongoDB就是其中的佼佼者。它非常適合于網站數(shù)據(jù)的存儲,故選擇MongoDB作為調查決策系統(tǒng)的數(shù)據(jù)存儲是較為合適的。綜上所述,基于MongoDB來設計問卷調查決策系統(tǒng)的后臺存儲方案是很有現(xiàn)實意義的。
在關系型數(shù)據(jù)庫中數(shù)據(jù)被存儲在表中,而MongoDB是將數(shù)據(jù)存放在結構化的文檔中,所以MongoDB被稱為面向文檔的數(shù)據(jù)庫。關系型數(shù)據(jù)庫中的表在面向文檔數(shù)據(jù)庫中稱為集合(collection),關系型數(shù)據(jù)庫中的記錄在面向文檔數(shù)據(jù)庫中被稱為文檔(document)。
在關系型數(shù)據(jù)庫中,我們可以通過實現(xiàn)參照完整性(即外鍵)來表達一對多關聯(lián),通過建立中間表來表達多對多關聯(lián)。但在MongoDB中卻沒有這種機制,我們可以通過對象的引用關系來實現(xiàn)這種關聯(lián),也可以把關聯(lián)的文檔內嵌到文檔當中。 那么在實際情況當中,我們該如何權衡性能,斟酌其靈活性和復雜性選擇哪種存儲方式呢?比較得到大家認同的規(guī)則是這樣的:
首先頂層的對象必須有自己的集合;其次子對象一般應該被嵌入父對象,例如訂單明細應該被嵌入訂單集合;再次對于多對多關系可以使用引用方式 。讀文檔比較頻繁時多使用內嵌方式,寫文檔比較多時使用引用方式;如果嵌入的對象太多過大會導致單個對象達到他的最大值(MongoDB單個文檔最大16MB) ;最后需要注意,如果遇到性能問題,需選擇使用嵌入方式進行存儲
我們的這個問卷調查系統(tǒng),前臺將采用Java Web來實現(xiàn),后臺使用MongoDB對所有投票信息進行存儲。為了更直觀的查看結果,還將使用Jfreechart以圖形的方式顯示各投票的調查分析結果。
一次投票包含若干問題,屬于一對多的關系,根據(jù)前述的選擇內嵌和引用兩種方式的規(guī)則,經過分析“投票”和“問題”設計采用內嵌結構;由于問題有單選題、多選題、填空題和問答題等題型;所以針對該調查決策系統(tǒng)的數(shù)據(jù)存儲模型如下所示:
高校作為先進信息技術研究、教學的最前端,應適應當今信息技術的快速發(fā)展,與時俱進。所以本項目組在選定大學生實踐創(chuàng)新項目時就選擇了與課堂上學過的關系型數(shù)據(jù)庫有密切聯(lián)系但在數(shù)據(jù)模型方面又完全不同的非關系型數(shù)據(jù)庫MongoDB作為調查決策系統(tǒng)的后臺數(shù)據(jù)庫。圍繞著MongoDB的數(shù)據(jù)模型的設計展開了學習和研究,調查決策系統(tǒng)中最核心的對象就是投票和問題,一份投票包含若干問題,針對這個一對多的二元聯(lián)系,經過分析最終選擇了內嵌這種解決方法,并給出了詳細的數(shù)據(jù)存儲方案。接下來,項目組將在此方案的基礎上采用Java Web技術來實現(xiàn)該決策系統(tǒng)。
參考文獻:
[1] 郭遠威. 大數(shù)據(jù)存儲 MongoDB實戰(zhàn)指南[M]. 人民郵電出版社,2011.
[2] (日)佐佐木達也|譯者:羅勇. NoSQL數(shù)據(jù)庫入門[M]. 人民郵電出版社,2010.
[3] (美)霍多羅夫. MongoDB權威指南[M]. 鄧強,王明輝,譯.人民郵電出版社,2011.