亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于NoSQL和MySQL的科研信息管理系統(tǒng)開發(fā)

        2019-04-25 00:25潘益婷潘修強肖鵬飛
        中國教育信息化·高教職教 2019年3期

        潘益婷 潘修強 肖鵬飛

        摘? ?要:本系統(tǒng)采用了MVC設計模式,提高了系統(tǒng)的可擴展性和可維護性,同時利用Struts2、Spring、Hibernate框架,使用NoSQL數(shù)據(jù)庫和MySQL數(shù)據(jù)庫來實現(xiàn)對科研信息數(shù)據(jù)的存儲和管理。本系統(tǒng)對科研信息進行網(wǎng)絡化、信息化管理,實現(xiàn)了用戶管理、科研項目管理、科研成果管理、消息管理四大功能。通過測試比較非關系型數(shù)據(jù)庫和關系型數(shù)據(jù)庫處理大量文檔型數(shù)據(jù)的不同性能,解決了科研信息管理系統(tǒng)的查詢性能以及數(shù)據(jù)擴展問題。

        關鍵詞:NoSQL數(shù)據(jù)庫;MySQL數(shù)據(jù)庫;科研信息管理系統(tǒng);SSH框架

        中圖分類號:TP311.52 文獻標志碼:A 文章編號:1673-8454(2019)05-0077-04

        NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大數(shù)據(jù)應用難題,對于如何充分利用其無模式、支持內(nèi)嵌文檔、全類型索引、簡單易用等特點應用于包括科研信息管理系統(tǒng)等各領域,提高系統(tǒng)運行效率,國內(nèi)近幾年也有一些相關研究工作。張煜[1]等人提出NoSQL數(shù)據(jù)庫是另一種存儲解決方案,探討了其在監(jiān)測系統(tǒng)中的應用。周躍[2]等人提出兩個優(yōu)化批處理算法解決服務端批量處理的低效問題,原型系統(tǒng)基于典型的分布式NoSQL系統(tǒng)HBase實現(xiàn)。鄂世嘉[3]等人提出自動通過圖數(shù)據(jù)庫Cayley以及MongoDB數(shù)據(jù)庫系統(tǒng),對三元組文件數(shù)據(jù)進行導入轉(zhuǎn)換為龐大的知識圖譜系統(tǒng)。王凱[4]等基于文檔型、非關系型數(shù)據(jù)庫MongoDB提出了一套基于四叉樹的道路網(wǎng)時空索引,實現(xiàn)海量軌跡數(shù)據(jù)的高效查詢。肖子達[5]等人以MongoDB數(shù)據(jù)庫為研究實例,提出了一種基于片鍵和索引的數(shù)據(jù)庫性能提升方法。但是以上研究關于NoSQL應用于科研信息管理系統(tǒng)方面的闡述較少,缺乏有實際應用、針對性強的NoSQL解決方案。因此,為方便對科研項目、論文、學生等管理,建立一個基于NoSQL的、高效的科研信息管理系統(tǒng)是必要的。

        一、系統(tǒng)概述

        當前高校在校學生人數(shù)不斷增多,科研信息數(shù)據(jù)也隨之不斷擴增,本系統(tǒng)針對科研信息進行網(wǎng)絡化、信息化管理,方便導師、本科生、研究生、博士生進行數(shù)據(jù)信息的共享,方便管理員對整個科研信息進行管理,提高實驗室科研管理水平。本系統(tǒng)分別使用MongoDB數(shù)據(jù)庫和MySQL數(shù)據(jù)庫來存儲數(shù)據(jù),探究NoSQL技術在實際中的應用方案,比較非關系型數(shù)據(jù)庫和關系型數(shù)據(jù)庫處理大量文檔型數(shù)據(jù)的不同性能。本系統(tǒng)分為用戶管理、科研項目管理、科研成果管理、消息管理四個功能模塊。系統(tǒng)功能結(jié)構圖如圖1所示。①用戶管理??梢愿鶕?jù)不同的權限增加、刪除人員,查詢相關人員信息,修改人員信息,用戶分不同的角色,有管理員角色、教師角色、學生角色,不同角色登錄系統(tǒng)擁有不同的功能。②科研項目管理。項目分為立項項目、開題項目、在研項目、結(jié)題項目四種類別,項目狀態(tài)的改變只能依次遞增,每個項目的負責人只有一位,可以有多位參與者,不論教師還是學生,項目不同的階段還應該有相應的文檔說明。③科研成果管理。包括專利管理、獲獎管理和軟件著作權管理,添加與項目匹配的科技成果,也可刪除相關成果和查詢科研成果。論文分為中文論文和英文論文兩種,每篇論文有一名第一作者,每篇論文可以有多名參與編寫的教師或?qū)W生,論文需要有相應的證明文檔,可上傳或下載。④消息管理。管理員和教師發(fā)布最新通知,也可查看實驗室最新的在研項目。

        二、系統(tǒng)設計

        1.系統(tǒng)總體架構設計

        系統(tǒng)總體架構如圖2所示。本系統(tǒng)采用MVC[6]設計模式,把系統(tǒng)拆分成Model(模型)、View(視圖)、Control(控制器)三部分,這三部分各司其職又相互協(xié)調(diào)配合完成系統(tǒng)功能,提高系統(tǒng)的可擴展性和可維護性,最大化地實現(xiàn)低耦合、高復用。系統(tǒng)利用SSH框架[7]:Struts2、Spring、Hibernate,以及使用MongoDB數(shù)據(jù)庫[8] 和MySQL數(shù)據(jù)庫[9]來實現(xiàn)對科研信息數(shù)據(jù)的存儲和管理。

        總體架構設計分3部分:①表示層。利用Struts2框架實現(xiàn),Struts2應用程序是基于HTTP協(xié)議和MVC設計模式,通過JSP頁面進行交互,根據(jù)Struts中的配置文件將請求委派給相應的Action處理,并將結(jié)果返回。②業(yè)務邏輯層。由Spring框架實現(xiàn)具體業(yè)務邏輯處理,Spring是一個輕量級的IOC和AOP容器框架,讓對象與對象之間、模塊與模塊之間的關系通過配置說明來管理,而不用通過代碼來關聯(lián),并且Spring框架能很好地與其他框架集成,使Struts與Hibernate更好地工作。③數(shù)據(jù)訪問層。由Hibernate框架實現(xiàn),處理與數(shù)據(jù)庫的交互操作,將關系數(shù)據(jù)庫中的表映射成為對象,把對數(shù)據(jù)庫的操作轉(zhuǎn)化為對象的操作,不用寫SQL語句操作數(shù)據(jù)表,而是用面向?qū)ο笏季S,用HQL直接從數(shù)據(jù)庫獲得Java對象。

        2.數(shù)據(jù)庫設計

        本系統(tǒng)分別使用MySQL數(shù)據(jù)庫和MongoDB數(shù)據(jù)庫來存儲數(shù)據(jù),探究NoSQL技術在實際中的應用方案,比較關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫處理大量文檔型數(shù)據(jù)的不同性能。

        數(shù)據(jù)庫設計主要包括需求分析、概念設計、邏輯設計和物理設計幾個方面,它是根據(jù)系統(tǒng)功能和性能需求分析的結(jié)果,對系統(tǒng)的具體數(shù)據(jù)庫結(jié)構進行設計與創(chuàng)建管理,使其符合預期的業(yè)務需求。

        概念設計是按照用戶的需求進行現(xiàn)實世界的信息抽象建模,一般選用E-R模型分析方法,確定有哪些實體,以及實體之間的關系(一對一、一對多、多對多),項目管理E-R圖如圖3所示。

        其中項目擁有名字、級別、類別、經(jīng)費等屬性,教師負責項目,是一對多的關系;研究生參與項目,是多對多的關系;管理員管理項目,是一對多的關系。

        邏輯結(jié)構設計是將E-R模型轉(zhuǎn)為關系模型,在E-R模型的基礎上建立數(shù)據(jù)表,其中多對多關系的處理方式是:增加一個實體,拆成2個一對多關系。MySQL數(shù)據(jù)庫建立表,首先根據(jù)業(yè)務需求選用合適的存儲引擎,本系統(tǒng)采用INNODB引擎,以及各字段類型、名稱、完整性約束等,建立表與表之間的聯(lián)系。文檔表結(jié)構如圖4所示。

        非關系型數(shù)據(jù)庫,又稱NoSQL,是大量數(shù)據(jù)存儲的集合,根據(jù)結(jié)構化方法和應用場合,主要分為以下三類:①列式存儲(Column-Oriented),其存儲結(jié)構為列式結(jié)構(關系型數(shù)據(jù)庫為行式結(jié)構),應用于分布式存儲的海量數(shù)據(jù),例如HBase、Cassandra;②鍵值存儲(Key-Value),每個Key對應一個Value,結(jié)構類似于Hash表,應用于緩存系統(tǒng),例如Redis;③文檔存儲(Document-Oriented),結(jié)構與Key-Value相似,也是每個Key對于一個Value,但Value主要是JSON或XML等格式,應用于海量數(shù)據(jù)快速查詢,例如MongoDB。

        MongoDB是一個面向文檔存儲的非關系型數(shù)據(jù)庫,用來處理大規(guī)模的文本數(shù)據(jù),支持多種字段的定義,數(shù)據(jù)也可以進行索引。MongoDB不存在關系型數(shù)據(jù)庫中表和列的概念,而是使用集合,集合中存儲的是一個個鍵值對,鍵值對的內(nèi)容以及格式根據(jù)實際需求確定,不受數(shù)據(jù)模式限制,例如項目信息數(shù)據(jù)集合結(jié)構表如圖5所示。

        三、系統(tǒng)核心功能

        本系統(tǒng)的所有功能都利用SSH框架(Struts2、Spring、Hibernate)來實現(xiàn),這種MVC架構實現(xiàn)了視圖、控制器和模型的分離,以及業(yè)務邏輯層與持久層的分離,不僅降低了各層之間的耦合度,還大大提高了系統(tǒng)的可復用性。并且分別使用MySQL數(shù)據(jù)庫和MongoDB數(shù)據(jù)庫來存儲數(shù)據(jù),比較關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫處理大量文檔型數(shù)據(jù)的不同性能。

        本系統(tǒng)角色有三類:教師、學生、管理員,不同角色擁有不同操作功能,有前臺功能和后臺管理功能,前臺功能主要供教師和學生使用,有登錄功能、個人信息功能、項目信息管理功能、項目成果管理功能、消息管理功能等,后臺供管理員使用,主要對用戶、項目、成果、消息等進行增刪改查操作。

        1.項目管理功能

        項目管理分為立項管理、在研管理、變更管理和結(jié)題管理四種(圖6)。當管理員或教師登錄系統(tǒng)后,可以對項目信息進行管理,包括對項目信息的查詢、增加、修改和刪除。管理員可以管理所有項目的增刪改查操作,教師只能對自己負責的項目進行修改與刪除操作。學生登錄后只能進行查詢操作(查看立項、在研、結(jié)題的項目),不具備修改和刪除的操作權限。

        2.成果管理功能

        成果管理分別支持對論文、著作、知識產(chǎn)權、獎勵成果四類成果的查詢、增加、修改和刪除功能。其中論文成果管理還支持論文的上傳和下載功能,知識產(chǎn)權包括專利成果和版權成果,添加專利成果時,首先獲取所有的結(jié)題項目列表,再輸入專利各項信息。學生可以新增論文,修改和刪除自己的論文、著作、知識產(chǎn)權、獎勵成果等。管理員則可以所有的論文、著作、知識產(chǎn)權和獎勵成果。

        3.消息管理功能

        消息管理包括每周總結(jié)報告、日常講座、通知通告等,學生可以查看日常講座信息、通告信息等,教師可以發(fā)布、修改、刪除這些信息。

        查詢指定集合下的所有文檔信息部分核心代碼如下:

        public static MongoCursor queryAllDocuments(String collection){

        MongoDatabase mongoDatabase = getMongoClient().getDatabase("LIMS");

        MongoCollection mongoCollection = mongoDatabase.getCollection(collection);

        FindIterable findIterable = mongoCollection.find();

        MongoCursor mongoCursor = findIterable.iterator();

        return mongoCursor;

        }

        四、系統(tǒng)測試

        系統(tǒng)的運行環(huán)境如下:

        硬件環(huán)境:Windows 10操作系統(tǒng)、4G內(nèi)存、1TB硬盤、i7處理器。

        軟件環(huán)境:IntelliJ IDEA、MongoDB、MySQL。

        經(jīng)測試,系統(tǒng)的各功能和性能均達到了預期要求。系統(tǒng)的功能測試和性能測試結(jié)果如下:

        本系統(tǒng)基本符合科研信息管理系統(tǒng)的功能需求,系統(tǒng)的頁面功能、操作流程、權限控制、異常處理都基本規(guī)范,人機交互界面設計較良好,功能基本齊全。

        在系統(tǒng)的性能方面,本系統(tǒng)分別使用關系型數(shù)據(jù)庫MySQL和非關系型數(shù)據(jù)庫MongoDB以論文表為例進行測試和比較。MongoDB對數(shù)據(jù)結(jié)構要求比較松散,存儲的文檔是一組鍵值對,文檔中還可以內(nèi)嵌文檔,在數(shù)據(jù)的插入和查詢性上均都高于MySQL數(shù)據(jù)庫。例如對于1億條記錄的論文表,MongoDB的查詢速度是MySQL數(shù)據(jù)庫的3倍左右。

        五、結(jié)束語

        本文應用多種技術開發(fā)了一個基于NoSQL和MySQL的科研信息管理系統(tǒng)。主要技術有:MVC設計模式、Struts2框架、Spring框架、Hibernate框架、MongoDB數(shù)據(jù)庫和MySQL數(shù)據(jù)庫等。實現(xiàn)了包含用戶管理、項目管理、成果管理,以及消息管理為一體的科研信息管理系統(tǒng)。通過測試比較非關系型數(shù)據(jù)庫和關系型數(shù)據(jù)庫處理大量文檔型數(shù)據(jù)的不同性能,切實解決了科研信息管理系統(tǒng)的查詢性能以及數(shù)據(jù)擴展問題。

        參考文獻:

        [1]張煜,陳屹峰,朱世文.NoSQL在構建業(yè)務信令監(jiān)測系統(tǒng)中的應用[J].計算機應用與軟件,2013,30(10): 205-208.

        [2]周躍,臧斌宇.分布式NoSQL系統(tǒng)寫操作性能優(yōu)化設計與實現(xiàn)[J].計算機應用與軟件,2014,31(11):25-28.

        [3]鄂世嘉,林培裕,向陽.自動化構建的中文知識圖譜系統(tǒng)[J].計算機應用,2016,36(4):992-996.

        [4]王凱,陳能成,陳澤強.基于MongoDB的軌跡大數(shù)據(jù)時空索引構建方法[J].計算機系統(tǒng)應用, 2017,26(6):227-231.

        [5]肖子達,朱立谷,馮東煜,張迪.分布式數(shù)據(jù)庫聚合計算性能優(yōu)化[J].計算機應用, 2017,37(5):1251-1256.

        [6]任廣震,侯進,王獻.MVC模式在B/S結(jié)構政務系統(tǒng)的應用研究[J].計算機應用與軟件,2014,31(8):54-58.

        [7]邱麗麗,陸源.基于ExtJS和SSH2架構的網(wǎng)上報銷系統(tǒng)設計與實現(xiàn)[J].計算機應用與軟件,2016,33(9):76-79.

        [8]王振鐸,王振輝,王紅剛,陳綏陽.基于MongoDB的移動信息分享平臺[J].計算機系統(tǒng)應用,2016,25(4):112-117.

        [9]羅藝娜,朱凌云.基于PHP+MYSQL的校園電能監(jiān)測網(wǎng)站設計[J].計算機系統(tǒng)應用,2016,25(11):97-101.

        (編輯:王曉明)

        999久久久免费精品国产牛牛| 曰欧一片内射vα在线影院| 成人性做爰aaa片免费看| 亚洲欧美日韩国产一区二区精品 | 国产美女久久久亚洲综合| 国产精品国产三级国产剧情| 成人一区二区免费中文字幕视频| 免费无码又爽又刺激网站| 白丝美女被狂躁免费视频网站 | 一区二区三区在线观看视频精品| 久久人妻少妇嫩草av| 亚州少妇无套内射激情视频 | 日本真人添下面视频免费 | 欧洲亚洲综合| 日本道免费一区日韩精品| 色婷婷久久精品一区二区| 色噜噜狠狠狠综合曰曰曰| 亚洲精品视频久久 | 熟妇无码AV| 热综合一本伊人久久精品| 新婚人妻不戴套国产精品| 亚洲自偷自拍熟女另类| 99久久久精品免费| 美女露出奶头扒开内裤的视频| 国产伦精品免编号公布| 亚洲羞羞视频| 日韩人妖一区二区三区| 亚洲色一区二区三区四区| 少妇人妻200篇白洁| 538亚洲欧美国产日韩在线精品| 国产一区二区三区青青草| 激情综合丁香五月| 国产日韩久久久精品影院首页| 国产在线播放免费人成视频播放 | 色爱av综合网站| 亚洲h视频| 一区二区三区国产亚洲网站| 欧美巨鞭大战丰满少妇| 无码人妻精品一区二区三区在线| 国产精品一区二区AV不卡| 99久久免费看精品国产一|