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