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

        ?

        在線課程資源平臺數(shù)據(jù)庫設(shè)計及實(shí)現(xiàn)

        2022-01-17 06:20:40羅尹奇湯偉許毅
        電子元器件與信息技術(shù) 2021年9期
        關(guān)鍵詞:數(shù)據(jù)庫教材資源

        羅尹奇,湯偉,許毅

        (電子科技大學(xué) 圖書館,四川 成都 611730)

        0 引言

        在“新冠疫情”常態(tài)化的背景下,線上教育逐漸成為重要的教學(xué)手段并得到廣泛應(yīng)用[1-2]。高校同樣也存在建設(shè)在線課程資源平臺的內(nèi)在需求。

        一方面,高校圖書館數(shù)字資源一般由各數(shù)字資源廠商提供,存在扁平化、分散化的特點(diǎn),數(shù)字資源與課程設(shè)置無關(guān)聯(lián),用戶需通過特定的檢索系統(tǒng)查詢,才能得到該課程的教材教參信息。因此在線課程資源平臺需實(shí)現(xiàn)基于課程信息的資源導(dǎo)航功能,以滿足用戶端的易用性需求。

        另一方面,雖然通過EXCEL列表可有效的表示課程與其教材教參之間的關(guān)系[3],但在平臺的運(yùn)維上,不同的學(xué)期具有不同的課程,同一門課程可能擁有不同的教材教參,而同一本教材教參又有可能分屬于不同的課程。因此在線課程資源平臺需能靈活的對課程與數(shù)字資源分別維護(hù),同時也能對兩者之間的關(guān)聯(lián)關(guān)系進(jìn)行調(diào)整,以滿足管理員端的可維護(hù)性需求。

        本文以電子科技大學(xué)在線課程資源平臺二期系統(tǒng)為例,分析了其底層數(shù)據(jù)庫設(shè)計方案,論證了該方案能夠同時滿足用戶的使用需求與管理員的維護(hù)需求,并最后給出了基于Hibernate框架的對象關(guān)系映射的關(guān)鍵代碼實(shí)現(xiàn)。

        1 實(shí)體-關(guān)系模型建模

        實(shí)體-關(guān)系模型(Entity-Relationship Model)是一種面向用戶的數(shù)據(jù)建模方法,是概念數(shù)據(jù)模型的高層描述所使用的抽象表示或模式圖,其本身與具體的數(shù)據(jù)庫管理軟件無關(guān),在數(shù)據(jù)庫設(shè)計中被廣泛用作數(shù)據(jù)建模的工具[4-5]。

        實(shí)體-關(guān)系模型基于應(yīng)用場景,主要由實(shí)體、屬性和關(guān)系組成。其中實(shí)體是系統(tǒng)中客觀存在的事物,具有相同性質(zhì)(或?qū)傩裕┑膶?shí)體集合構(gòu)成了實(shí)體集。屬性是實(shí)體集中每個成員所擁有的描述性性質(zhì)。關(guān)系則是用于描述多個實(shí)體之間的關(guān)聯(lián)方式。實(shí)體-關(guān)系模型建模的目的在于從抽象概念層面上,構(gòu)建在線課程資源平臺的數(shù)據(jù)模型,其建模的基本步驟如下:

        (1)識別并提取有效的實(shí)體。實(shí)體必須是客觀存在并可以區(qū)分的,在在線課程資源平臺應(yīng)用場景中,有效的實(shí)體包括了學(xué)院、課程、數(shù)字資源。由于平臺是開放式的,對于用戶的類型并不做嚴(yán)格的區(qū)分,因此諸如授課教師、學(xué)生等實(shí)體在該場景中屬于無效實(shí)體。

        (2)提取實(shí)體的關(guān)鍵屬性。實(shí)體本身的屬性可能是非常多的,需提取符合應(yīng)用場景要求的關(guān)鍵屬性,而忽略非必要的次要屬性。例如課程名稱是課程實(shí)體的關(guān)鍵屬性,而選課人數(shù)則屬于次要屬性。

        (3)分析實(shí)體與實(shí)體之間的關(guān)系。實(shí)體之間的關(guān)系分3種類型:一對一的關(guān)系、一對多的關(guān)系、多對多的關(guān)系。學(xué)院與課程之間屬于一對多的關(guān)系,即一個學(xué)院會開設(shè)多門課程;課程與數(shù)字資源之間屬于多對多的關(guān)系,即一門課程會擁有多本教材教參,而同一本教材教參又有可能被多門課程使用。

        根據(jù)上述的建模步驟,得到實(shí)體-關(guān)系模型的圖形表示,其中實(shí)體用矩形表示,關(guān)系用菱形表示,屬性用橢圓表示,如圖1所示:

        2 數(shù)據(jù)庫實(shí)現(xiàn)

        2.1 數(shù)據(jù)庫模型

        根據(jù)圖1實(shí)體-關(guān)系模型,現(xiàn)將其轉(zhuǎn)化為對應(yīng)的數(shù)據(jù)庫模型。在轉(zhuǎn)化過程中實(shí)體(實(shí)體集)多數(shù)情況下會采用數(shù)據(jù)庫表來表示;而屬性則一般會轉(zhuǎn)化為數(shù)據(jù)庫表中的字段,其類型由實(shí)際應(yīng)用場景決定。特別需要注意的是,實(shí)體-關(guān)系模型中的關(guān)系在轉(zhuǎn)化時,依照關(guān)系類型的不同,決定了其在數(shù)據(jù)庫中的表現(xiàn)形式:

        (1)一對一的關(guān)系:當(dāng)實(shí)體-關(guān)系模型中存在一對一關(guān)系時,其在數(shù)據(jù)庫中會表示為兩表之間的主鍵約束,即A表的主鍵是B表的主鍵,同時也是B表的外鍵,如圖2所示:

        圖2 一對一的關(guān)系

        (2)一對多的關(guān)系:當(dāng)實(shí)體-關(guān)系模型中存在一對多的關(guān)系時,其在數(shù)據(jù)庫中會表示為兩表之間的外鍵約束,即A表的主鍵是B表的外鍵,如圖3所示:

        圖3 一對多的關(guān)系

        (3)多對多的關(guān)系:當(dāng)實(shí)體-關(guān)系模型中存在多對多的關(guān)系時,此時在數(shù)據(jù)庫中關(guān)系會作為單獨(dú)的一張表建立,其作用在于通過復(fù)合主鍵的形式來描述多對多的關(guān)系。由于復(fù)合主鍵是通過多個主鍵的排列組合來保證唯一性,因此復(fù)合主鍵的排列組合過程實(shí)現(xiàn)了多對多關(guān)系,而唯一性則保證了這種關(guān)系是確定的,如圖4所示:

        圖4 多對多的關(guān)系

        (4)帶屬性的多對多的關(guān)系:作為特殊的多對多的關(guān)系,其關(guān)系中存在其他屬性,此時該表的結(jié)構(gòu)與一般的關(guān)系表結(jié)構(gòu)所有差異,該表主鍵只是自增鍵或隨機(jī)字符串,而關(guān)聯(lián)實(shí)體的主鍵會作為該表的外鍵,同時該表中還包含了其他屬性字段,如圖5所示:

        圖5 帶屬性的多對多的關(guān)系

        基于上述實(shí)體-關(guān)系模型到數(shù)據(jù)庫表的轉(zhuǎn)化規(guī)則,現(xiàn)將圖1轉(zhuǎn)化為數(shù)據(jù)庫表,得到的結(jié)果如圖6所示:

        圖6 數(shù)據(jù)庫模型

        2.2 數(shù)據(jù)詞典

        根據(jù)圖6的數(shù)據(jù)庫模型,現(xiàn)將各表數(shù)據(jù)詞典列出,如表1至表4所示:

        表1 學(xué)院t_institute表

        表2 課程t_course表

        表3 數(shù)字資源t_resource表

        需要注意的是,在表4中l(wèi)ink_type字段描述了課程-資源關(guān)系類型。一門課程中可能有多本教材以及參考資料,而數(shù)字資源本身是無法區(qū)分其是否為教材還是參考資料的,也就是同一個數(shù)字資源可能在這一門課程里是作為教材,而在另外的課程中則可能是參考資料,因此通過在課程-資源關(guān)系表中加入link_type字段來加以區(qū)分。

        2.3 合理性分析

        從用戶角度來看,數(shù)據(jù)庫設(shè)計方案滿足了用戶的一般使用行為。由于該平臺用戶多為在校師生,其關(guān)注的往往是本學(xué)院所開設(shè)的課程及相關(guān)數(shù)字資源,因此用戶可以根據(jù)學(xué)院表進(jìn)行導(dǎo)航。課程表中的學(xué)院序號字段則提供了查詢條件,平臺顯示對應(yīng)學(xué)院下所開設(shè)的所有課程,這樣有助于用戶找到本學(xué)期或以往的課程。利用課程編號以及課程-資源關(guān)系表,可以進(jìn)一步查詢出該課程下所關(guān)聯(lián)的數(shù)字資源以及該資源是否為教材或參考資料。整個訪問過程將課程與對應(yīng)的數(shù)字資源以樹狀結(jié)構(gòu)展示出來,滿足了用戶數(shù)據(jù)上鉆下探的需求。

        從管理員角度來看,數(shù)據(jù)庫設(shè)計方案滿足了簡化運(yùn)維的需求。課程與數(shù)字資源是相對獨(dú)立的兩張表,在運(yùn)維過程中可以分開管理,課程可以與學(xué)校教務(wù)系統(tǒng)保持一致,數(shù)字資源則可以與第三方廠商保持一致,兩者信息更新可以是異步的,相互之間不會發(fā)生干擾。管理員僅需維護(hù)課程-資源關(guān)系表,即在平臺上選擇相關(guān)資源并關(guān)聯(lián)(或解除關(guān)聯(lián))到對應(yīng)的課程上。整個運(yùn)維過程簡化為對課程-資源關(guān)聯(lián)關(guān)系的運(yùn)維,而課程與數(shù)字資源本身的信息則可以與其他系統(tǒng)自動化同步。

        3 對象關(guān)系映射

        對象關(guān)系映射(Object Relational Mapping,ORM)是一種程序設(shè)計技術(shù),用于將面向?qū)ο缶幊陶Z言里的對象,與關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換[6]。由于面向?qū)ο笫菑能浖こ痰幕A(chǔ)上發(fā)展起來的,而關(guān)系數(shù)據(jù)庫則是從數(shù)學(xué)理論發(fā)展而來的[7],兩套理論存在顯著的區(qū)別,存在范式不匹配的現(xiàn)象,因此ORM技術(shù)主要實(shí)現(xiàn)了在關(guān)系型數(shù)據(jù)庫和程序?qū)ο笾g作數(shù)據(jù)映射,以屏蔽底層復(fù)雜的SQL操作。

        Hibernate框架是一種基于Java語言的ORM技術(shù)實(shí)例,通過Hibernate框架可以實(shí)現(xiàn)Java對象與數(shù)據(jù)庫表間數(shù)據(jù)相互轉(zhuǎn)化。本文采用的Hibernate版本為4.1.7,開發(fā)模式為基于XML配置文件。

        3.1 學(xué)院表映射

        由于學(xué)院表主要做導(dǎo)航功能,因此對于學(xué)院表僅做最基本的映射,直接將其Java代碼與數(shù)據(jù)庫字段進(jìn)行對應(yīng)。結(jié)果如表5與表6所示:

        表5 學(xué)院對象關(guān)鍵代碼

        表6 學(xué)院表映射關(guān)鍵代碼

        3.2 課程表映射

        在實(shí)際應(yīng)用場景中,由于課程對象一方面需要能夠?qū)崿F(xiàn)上鉆,獲取其所開設(shè)的學(xué)院;另一方面又要能實(shí)現(xiàn)下探,得到該課程下的教材與參考資料。因此課程對象中需要同時包含對學(xué)院和數(shù)字資源的引用。但事實(shí)上需要注意的是,由于課程-資源關(guān)系表中附帶了區(qū)分教材教參的字段,若課程對象直接對數(shù)字資源引用則無法在程序邏輯上實(shí)現(xiàn)區(qū)分教材教參,故此時的課程對象不直接對數(shù)字資源引用,而是轉(zhuǎn)化為對課程-資源關(guān)系的引用,進(jìn)而完成間接引用數(shù)字資源。其結(jié)果如表7與表8所示:

        表7 課程對象關(guān)鍵代碼

        表8 課程表映射關(guān)鍵代碼

        3.3 資源表映射

        與課程表的映射過程類似,資源對象同樣不直接引用課程,而是對課程-資源關(guān)系表引用,這樣才能區(qū)分該資源在課程中的類型是否為教材。映射結(jié)果如表9與表10所示:

        表9 資源對象關(guān)鍵代碼

        表10 資源表映射關(guān)鍵代碼

        需要注意的是,資源的ID采用了UUID生成策略,這是因?yàn)橐环矫?,?shù)字資源的來源可能是多家第三方廠商,平臺需要進(jìn)行統(tǒng)一編號;另一方面,資源名、ISBN編號等信息不足以對資源加以區(qū)分,特別是針對同一本書籍可能有多個第三方廠商提供網(wǎng)址訪問,故而使用UUID來作為資源的特定編號。

        3.4 課程-資源關(guān)系表映射

        在實(shí)際應(yīng)用場景下,由于需要統(tǒng)計平臺的教材與教參數(shù)量,因此需要對課程-資源關(guān)系表進(jìn)行映射,結(jié)果如表11與表12所示:

        表11 課程-資源關(guān)系對象關(guān)鍵代碼

        表12 課程-資源關(guān)系表映射關(guān)鍵代碼

        4 結(jié)論

        綜上所述,本文以電子科技大學(xué)在線課程資源平臺二期系統(tǒng)為例,分析了基于實(shí)體-關(guān)系模型的數(shù)據(jù)建模技術(shù),構(gòu)建了平臺的實(shí)體-關(guān)系模型;然后提出了將實(shí)體-關(guān)系模型轉(zhuǎn)化為數(shù)據(jù)庫表的方法,基于該方法建立了數(shù)據(jù)庫模型并描述了其數(shù)據(jù)詞典;最后本文基于Java編程語言中的Hibernate框架,提供了數(shù)據(jù)庫表與程序?qū)ο笥成涞年P(guān)鍵代碼。

        基于上述方法,本文展示了數(shù)據(jù)建模到數(shù)據(jù)庫建立,再到程序代碼映射的一般開發(fā)過程,特別是將實(shí)體-關(guān)系模型轉(zhuǎn)化為數(shù)據(jù)庫表的方法對于其他資源平臺的建設(shè)具有一定的借鑒意義。

        猜你喜歡
        數(shù)據(jù)庫教材資源
        教材精讀
        基礎(chǔ)教育資源展示
        教材精讀
        教材精讀
        教材精讀
        一樣的資源,不一樣的收獲
        資源回收
        資源再生 歡迎訂閱
        資源再生(2017年3期)2017-06-01 12:20:59
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        18禁免费无码无遮挡不卡网站| 中文人妻av大区中文不卡| 日本一区二区高清视频| 中文乱码字幕精品高清国产| 特级毛片a级毛片100免费播放| 无码人妻一区二区三区在线视频| 国产香蕉尹人在线视频你懂的| 亚洲av在线观看播放| 成人亚洲精品777777| 国产精品丝袜黑色高跟鞋| 日韩精品精品一区二区三区| 国产av一卡二卡日韩av| 少妇人妻精品一区二区三区| 狠狠躁夜夜躁人人爽超碰97香蕉| 久久精品日本美女视频 | 人妻系列影片无码专区| av在线不卡免费中文网| 精品国产一区二区三区av性色 | 日韩精品视频av在线观看| av天堂午夜精品一区| 亚洲精品无码不卡av| 丰满少妇棚拍无码视频| 大屁股流白浆一区二区三区| 日韩精品视频一区二区三区 | 少妇厨房愉情理伦片bd在线观看 | 亚洲女初尝黑人巨高清| 国产成人国产在线观看| 久久婷婷国产色一区二区三区| 伊人久久大香线蕉av波多野结衣| 久久精品亚洲中文字幕无码网站| 欧洲AV秘 无码一区二区三| 大香蕉国产av一区二区三区| 国产伦理一区二区| 精品亚洲日韩国产一二三区亚洲| 全程国语对白资源在线观看| 老妇高潮潮喷到猛进猛出| 精品国产三级a∨在线观看| 国产AV秘 无码一区二区三区| 日本一二三区免费在线| 国产精品一区二区久久乐下载 | 日本不卡视频一区二区三区|