999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MongoDB文檔模型的教學資源數據的建模研究

2020-05-21 10:49:58黃承明
軟件工程 2020年5期

摘? 要:教學資源數據幾乎全部都是半結構化數據和非結構化數據,傳統應用中采用RDBMS和文件系統進行存儲存在諸多的弊端。文章分析了教學資源數據組成結構與應用特性,以及MongoDB數據庫的存儲機制,提出了基于MongoDB + GridFS的存儲方案,并結合實際案例總結出了教學資源數據邏輯建模方法和建模要點。

關鍵詞:半結構化;非結構化;MongoDB;文檔模型;數據建模

中圖分類號:TP31? ? ?文獻標識碼:A

Abstract: Almost all of the teaching resource data are semi-structured or unstructured. In traditional applications, there are many disadvantages in using RDBMS and file system for storage. This paper analyzes the data structure and application characteristics of teaching resources and the storage mechanism of MongoDB database, and puts forward a storage scheme based on MongoDB + GridFS. Combined with practical cases, the paper summarizes the logical modeling method and important aspects of teaching resource data.

Keywords: semi-structured; unstructured; MongoDB; document model; data modeling

1? ?引言(Introduction)

教育信息化包含了一系列的目標、價值觀念、技術規范以及應用手段等內容,其核心內容是教學信息化,需要各種各樣的信息化教學應用系統作為支撐,數字化的教學資源數據是所有這些應用系統的基礎。

《教育信息化2.0行動計劃》明確指出了數字資源建設的重要性,要科學、合理、高效地進行數字化教學資源的建設、完善、分發和共享[1]。對于結構和類型日益復雜的數據庫,傳統關系型數據庫暴露出很多問題,如磁盤IO瓶頸、模式固定難以橫向擴展等,帶來較高的維護成本和較低的可用性[2]。NoSQL數據庫的出現為這一困境提供了新的解決問題的途徑。

2? 教學資源數據解析(Data analysis of teaching resources)

廣義的教學資源是指支持教學活動的各種資源,包括人、財、物、信息等。可分為人類資源(教師、學生、學習小組等)和非人類資源(各種媒體資源,輔助工具及設施,社會教育性機構,如:試聽中心、圖書館、博物館、少年宮等)。本文中的教學資源僅指狹義上的教學資源,即教學資料、教學環境及教學支撐系統。

數字化教學資源是指經過數字化處理后,以數字信息的形式存在于計算機存儲介質中、通過計算機及網絡進行傳播、運行的教學資源,包括:(1)基本形態資源,即素材資源,如文本、數據、圖形圖像、音頻、視頻、動畫等;(2)復合型態資源,即應用資源,如題庫、課件、案例庫、知識庫、課程庫等[3];(3)應用系統,如圖文系統、教學應用系統、仿真系統等。

教學資源數據是指數字化教學資源中的素材資源和應用資源在計算機中的存儲形態。這些教學資源數據按照一定組織結構存儲在指定的位置,所形成的教學資源集合稱為數字化教學資源庫。

要實現數字化教學資源在計算機中的存儲、識別和管理,除了要保存數字化教學資源本身數據外,還需要大量的輔助性的數據來描述其各項屬性,如名稱、類型、格式、關系、位置、創建時間、版本等,其中資源本身數據稱為本體數據,描述資源本體數據的數據稱為元數據。

根據數據的結構化程度,可以將教學資源數據分為兩大類型:

非結構化數據,幾乎所有的素材資源本體數據都是非結構化數據,如圖片、圖形、動畫、音頻、視頻、仿真模型等,這些數據都沒有固定的結構,也就沒有數據之間的關系存在,通常以二進制格式進行整體存儲[4]。

半結構化數據,部分素材資源本體數據(如,詞條)、所有的應用資源本體數據、教學資源元數據,這些數據沒有嚴格的格式,數據之間關系松散,具有下述典型特點[5]:

①自描述性。先有數據,再有結構;

②不精確性。隨時間和場景變化;

③不規則性;

④非強制性;

⑤模式復雜性,也稱模式自由或無模式。

目前信息化教學應用中的存儲方案為:(1)半結構化數據進行規范化,存儲在關系型數據庫中;(2)非結構化數據以文件的形式存儲在計算機存儲系統中,通過路徑名和文件名進行訪問。

教學資源數據在應用上具有以下典型特征:(1)寫少讀多,應用成分布式;(2)種類復雜,功能迭代快,擴展性要求高;(3)文件數量極多,小文件比重大。

由于教學資源數據的數據特點和應用特征,傳統的存儲方案存在較為嚴重的缺點:(1)擴展難度大,如增加資源數據屬性,資源數據屬性的不一致性、嵌套屬性等導致數據結構冗余度高;(2)當文件的數量龐大,分類復雜及多重分類時,文件系統管理難度增大,性能隨文件數量增大而降低。

針對傳統存儲方案的不足,建議采用基于NoSQL數據庫的存儲方案:MongoDB + GridFS文檔型數據庫存儲方案。

3? 文檔模型存儲機制(Storage mechanism of document model)

MongoDB是一個基于分布式文件存儲的NoSQL文檔模型數據庫,因其高效的性能和豐富的使用功能在生產中得到非常廣泛的應用。它的體系結構及同關系型數據庫對照概念如表1所示。

Document是MongoDB的核心對象,是數據的基本組織單元,類似關系型數據庫表的行,但是比行要復雜,它是使用BSON這種結構來存儲數據和進行數據交換。BSON是一種類JSON的二進制形式的存儲格式,簡稱Binary JSON,它比JSON支持更多的數據類型,如二進制數據[6]。典型的Document對象如圖1所示。

Field是MongoDB數據庫的基本數據單元,采用key: value鍵值對來表示數據,其中key用字符串表示,value則為MongoDB所支持的任何數據類型,如:Null、Boolean、String、Symbol、Object Id、Date、Regular Expression、Code、Array、Embedded Document等[6]。

BSON格式的Document對象是一種無模式(schema-less)的存儲形式,能夠動態地添加平行或嵌套的數據項,靈活性很高,具有三個典型的特點:輕量性、可遍歷性、高效性。非常適合存儲教學資源數據中的半結構化數據。

在MongoDB中BSON格式的單個Document對象(含嵌入的子Document)受到16MB大小的限制。所以,當key:value中的value值尺寸過大時,就要保存到GridFS中。

GridFS是一種將大型文件存儲在MongoDB的文件規范[7]。GridFS將文件分成多個塊存儲,每塊作為一個單獨的文檔,默認大小為255kB,最后一個塊為剩余大小。對于存儲海量小文件在性能上仍然能夠優于文件系統[8]。

一個文件在GridFS的存儲結構如圖2和圖3所示,使用兩個集合files和chunks存儲,為一對多關系。

采用GridFS存儲教學資源數據中的圖片、音頻、視頻等非結構化的數據具有幾個優勢:

(1)可以簡化需求,使用GridFS后就可以不需要另外使用獨立文件存儲架構,從而實現全部教學資源數據的一體化存取。

(2)GridFS能夠直接利用MongoDB已建立的復制/分片機制,非常容易實現分布式的擴展、文件分發和故障恢復。

(3)無須關心放置新文件的位置,沒有因為文件數量增大、目錄加深時嚴重影響系統讀寫性能的問題。

(4)GridFS不產生磁盤碎片。

4? ?建模方法(Modeling method)

在技術上,MongoDB是一種無模式(或者自由模型)的文檔型數據庫,但是,在實現應用系統的功能時,仍然需要采用規范約定、技術手段來實現數據的業務模式,主要是表現數據之間的一定的層次和關系。因此,教學資源數據的建模在數據庫邏輯設計階段顯得尤其重要,目的在于提高系統性能、優化業務功能、方便團隊溝通和提高生產效率。

在RDBMS中,為了使數據結構清晰、關系明確、邏輯嚴格,需要對將數據對象拆分成原子數據項,按照相關范式進行規范化處理,需要很多的主從結構數據表來存儲,建立主外鍵來描述關系,查詢時還需要進行連表[9]。

由于MongoDB的文檔模式支持數組和內嵌文檔,可以直接用一個Document來描述一個數據對象,而不需要分表/集合存儲。在同一個集合中,Document的數據項并沒有強制要求完全一樣,完全可以將不同類型的數據放在一個集合中,例如,我們可以將衣服、手機放在product集合中,盡管衣服和手機兩類產品具有部分不同的屬性。

此外,在MongoDB數據庫中,每個Document默認包含一個名為“_id”的Objectld類型屬性,用來唯一標識一個文檔對象,類似于RDBMS中的主鍵,為文檔之間的對象引用提供了技術支持。

所以,在基于MongoDB數據庫的教學資源數據的業務建模中,可以采用反規范化處理和規范化處理是兩種方法來進行建模。

4.1? ?內嵌模式的反規范化處理

內嵌模式是指Document中的一個key:value中的value值也是一個Document對象,如圖4所示。

這種結構在RDBMS中是反規范化的[10],但是這種反規范化處理的方法能夠直觀地表示一對一的關系,如圖4中的home、work子對象,好處是一次查詢即可獲得完整的對象,不需要再額外查詢其他集合的文檔對象。通過內嵌對象數組可以實現一對多的關系,多級的內嵌對象還可以方便地實現樹形/層次結構,如圖4中groups數組對象。其缺點是當嵌入對象被重用時,要在每個文檔中都存儲它的一個獨立的副本,這會減慢插入的速度,還占用額外的磁盤空間。

4.2? ?引用模式的規范化處理

通過MongoDB的引用模式可實現類似RDBMS中的外鍵關系,以解決重用子對象的多副本問題,主要的目的是減少冗余和優化依賴關系。

以素材資源存儲為例,涉及兩個數據對象:素材和人員,由于素材資源的本體數據(文件)是存儲在GridFS中,不能內嵌,必須引用,所以就變成素材屬性、素材文件和人員三者之間的關系,而人員信息因為需要重用,最好引用,參考圖5。

在Media Document(素材屬性)中的add_man、file_id就是通過對File Document(素材文件)和Person Document(人員)的“_id”進行引用,從而形成了典型的一對一或一對多的對應關系。

4.3? ?多對多關系的實現

用過引用模式實現了一對多的對應關系,則多對多的關系也容易實現,最典型的例子是人員與分組之間的對應關系,參考圖6。

MongoDB中的這種引用模式所形成的一對多、多對多關系同RDBMS一樣,同樣是節約了空間但犧牲了性能。然而,對用需要重用的引用對象來說,只有如此才能確保數據的一致性。

4.4? ?典型案例

(1)素材資源

素材資源是最基本的教學資源,也是數量最多的一種資源,典型的數據模型為“資源屬性數據(元數據)資源文件數據(本體數據)”模式,其文檔模型如圖7和圖8所示。

在屬性數據中采用了引用模式對文件數據進行了關聯。

(2)題庫資源

題庫資源是典型的應用資源,是教學應用中使用頻率最高的資源之一。題庫資源在RDBMS中的邏輯模型比較復雜。其關系模型如圖9所示。

但是,在MongoDB中采用聚合的方式,可以存放到一個集合之中,其數據模型如圖10所示。

需要注意的是,本文檔模型是一個聚合模型,其中的四個參考答案(fill_in_answer、choice_answer、brie_answer、true_false_answer)可以根據exerType的不同取值進行選用。同時可以根據exerType進行分片部署,以提高檢索效率。

5? ?建模要點(Key points of modeling)

教學資源數據建模是構建教學應用系統的關鍵環節,直接影響到系統的性能和可用性。所以,在進行數據建模特別要注意以下幾點。

(1)數據建模必須以滿足業務需求為首要目標,切不可因追求技術的完美而脫離業務規則。

(2)在建模過程中,要靈活使用各種設計模式,切不可生搬硬套。

(3)在滿足業務需求的前提下,一切以性能優先,盡量全面考慮,優化讀寫性能。

同時,在設計過程中遵循基本的設計原則,首先,模型設計是為應用系統服務,而不是為了存儲空間優化;其次,要為實現系統最佳性能設計,可以通過合理的索引、數據分片來提高系統的存取性能。

此外,特別需要注意的是引用和內嵌的選用問題,需要做到優先選用與平衡原則的使用。

(1)在選用內嵌模式和引用模式時,優先考慮內嵌,系統性能優先存儲空間。

(2)內嵌模式適合一對一、一對多的小對象嵌入,其局限性主要有兩個:16MB體積的限制,大數組的低性能約束。

(3)引用模式適合一對多、多對多中的對重用對象的關聯,多次查詢、寫入數據時不能實現跨集合的事務性是該模式的主要缺陷[11]。

6? ?結論(Conclusion)

綜上所述,采用MongoDB+GridFS存儲方案代替RDBMS+文件系統存儲方案在技術上是可行的,在表達半結構化及非結構化數據的業務邏輯上具有天然的優勢,在功能上能夠提供更好的一致性、靈活性和擴展性,同時具有較好的系統性能。MomgoDB數據庫與GridFS文件規范相對RDBMS和文件系統來說屬于非常年輕的存儲技術,有很大的優化空間,而基于MomgoDB+GridFS存儲方案的信息化教學應用系統的實際性能、魯棒性有待進一步的驗證。

參考文獻(References)

[1] 吳旻瑜,武曉菲.教育信息化2.0的時代邏輯——《教育信息化2.0行動計劃》解讀之一[J].遠程教育雜志,2018(4):4-10.

[2] 宗平,李雷.PostgreSQL與MongoDB處理非結構化數據性能比較[J].計算機工程與應用,2017,53(7):104-108.

[3] 黃承明.基于MongoDB的數字化教學資源存取方案研究[J].中國教育信息化,2018(3):54-57.

[4] 張孝,周寧南.非結構化數據存儲管理研究[J].科研信息化技術與應用,2013,4(1):30-40.

[5] 王靜,孟小峰.半結構化數據的模式研究綜述[J].計算機科學,2001,28(2):6-10.

[6] 霍多羅夫.MongoDB權威指南(第2版)[M].北京:人民郵電出版社,2014:7-10.

[7] 邱新忠.基于MongoDB GridFS的地圖瓦片數據存儲研究[J].地理空間信息,2016,14(2):50-52.

[8] ITKeyword.MongoDB的GridFS與文件系統在小文件存儲的讀取性能對[EB/OL].http://www.itkeyword.com/doc/2118899009621598745/mongodb,2015-05-14.

[9] 丁智斌,石浩磊.關系數據庫設計與規范化[J].計算機與數字工程,2005(02):114-116.

[10] 黃艾卿.數據庫設計中的反規范化技術[J].百色學院學報,2007,20(6):88-90.

[11] 宣超.基于MongoDB的事務機制研究與實現[D].四川:電子科技大學,2018.

主站蜘蛛池模板: 无码区日韩专区免费系列| 理论片一区| 亚洲日本中文综合在线| 婷婷色中文| 最新国语自产精品视频在| 亚洲无码A视频在线| 最近最新中文字幕在线第一页 | 99视频精品在线观看| 日韩成人在线视频| 久久精品亚洲专区| 亚洲天堂免费观看| 亚洲久悠悠色悠在线播放| a级毛片在线免费观看| 欧美一级高清视频在线播放| 一本色道久久88| 在线播放国产一区| 国产成人综合亚洲网址| 国产第四页| 亚洲中文在线看视频一区| 91最新精品视频发布页| 在线国产资源| 中文字幕在线观看日本| 久久久久88色偷偷| 成人毛片在线播放| 国产99免费视频| 99无码中文字幕视频| 国产成人精品一区二区三在线观看| 欧美成人手机在线观看网址| 国产欧美日韩一区二区视频在线| 欧美精品在线看| 天天操天天噜| 亚洲欧美日韩动漫| 久久久精品无码一区二区三区| 欧美第二区| 男人天堂伊人网| 国产人前露出系列视频| 国产99视频精品免费观看9e| 波多野一区| 国产美女人喷水在线观看| 欧美色亚洲| 综合色区亚洲熟妇在线| www.日韩三级| 国内精品视频| 免费看a毛片| 成人日韩视频| 亚洲人妖在线| 五月婷婷亚洲综合| 国外欧美一区另类中文字幕| 亚洲人成在线精品| 亚洲国产中文在线二区三区免| 日本黄色a视频| 免费观看欧美性一级| 丁香综合在线| 国产综合另类小说色区色噜噜| 欧美成人日韩| 亚洲乱码精品久久久久..| 毛片免费视频| 国产精品不卡片视频免费观看| 中国黄色一级视频| 99精品在线看| 亚洲精品波多野结衣| 色综合狠狠操| 日本日韩欧美| 国产成人精品一区二区秒拍1o| 中文字幕首页系列人妻| 国产成年女人特黄特色大片免费| 久久精品这里只有精99品| 一级毛片在线免费看| 午夜不卡视频| 三上悠亚精品二区在线观看| 精品午夜国产福利观看| 欧洲亚洲欧美国产日本高清| 欧美97欧美综合色伦图| 台湾AV国片精品女同性| 欧美精品1区2区| 91精品伊人久久大香线蕉| 99视频国产精品| 精品国产电影久久九九| 国产91特黄特色A级毛片| 亚洲黄色视频在线观看一区| 午夜不卡福利| 久久公开视频|