黃震華 方強
摘 要 數(shù)據(jù)庫是計算機科學的重要分支,是信息系統(tǒng)的核心和基礎。數(shù)據(jù)庫是長期存儲在計算機內、有組織的、可共享的大量數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,具有較小的冗余度較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。①經過多年來的發(fā)展,數(shù)據(jù)庫經歷了三個重要的發(fā)展階段:第一代的網狀和層次數(shù)據(jù)庫系統(tǒng),第二代的關系數(shù)據(jù)庫系統(tǒng),第三代的以面向對象數(shù)據(jù)模型為主要特征的數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫已經成為計算機信息系統(tǒng)和應用系統(tǒng)的核心技術和重要基礎,也是許多其他專業(yè)的選修課程。
關鍵詞 數(shù)據(jù)庫 理論基礎 專業(yè)技能
中圖分類號:G424文獻標識碼:A
Application of Hadoop Cloud Platform in the "Principles of
Database Systems" Course Experiment Teaching
HUANG Zhenhua, FANG Qiang
(College of Electronic and Information Engineering, Tongji University, Shanghai 201804)
Abstract The database is an important branch of computer science, is the core and foundation of information systems. Database is a long-term storage in the computer, an organized collection of large amounts of data can be shared. Data in the database according to certain data model organization, description, and storage, has a high degree of data redundancy smaller independence and ease of scalability, and can be shared by a variety of users. After years of development, the database has gone through three major stages of development: the first generation of mesh and hierarchical database system, the second generation of relational database systems, third-generation object-oriented data model as the main feature of the database systems. Database has become an important foundation for the core technology and computer information systems and applications are also a number of other specialized elective courses.
Key words database; theoretical basis; professional skills
0 引言
數(shù)據(jù)庫具有理論基礎強、實踐應用突出、學科綜合性強等特點。②數(shù)據(jù)庫技術也是計算機專業(yè)人員必備的專業(yè)技能。數(shù)據(jù)庫課程的教學應當與實際工作中的需求緊密聯(lián)系。要以當前主流的數(shù)據(jù)庫應用為背景,以數(shù)據(jù)模型作為核心,不僅講授數(shù)據(jù)庫的理論、原理,也要使學生掌握數(shù)據(jù)庫的運用,并能對數(shù)據(jù)庫進行高效的維護。良好的數(shù)據(jù)庫專業(yè)技能不僅需要扎實的理論基礎、對知識點深入理解,還需要較強的動手能力,能運用所學的理論知識在實際情況中正確分析、解決問題。③
本文在對數(shù)據(jù)庫這門課程的教學特性進行了深入分析的基礎上構建了一個基于Hadoop的數(shù)據(jù)庫教學實驗平臺,并詳細講述了該平臺在教學中的優(yōu)勢。
1 數(shù)據(jù)庫學科教學現(xiàn)狀
目前各高校計算機相關專業(yè)均開設了數(shù)據(jù)庫課程,但是在教學中大都采用的是傳統(tǒng)的課堂授課輔以機房上機練習的形式。這樣的教學存在著弊端。課堂授課中,側重于知識點的講解,理論與實踐有所脫節(jié),忽略了實際中的使用技術。很多同學的理論知識學得很好,包括基本概念、代數(shù)運算、規(guī)范化和數(shù)據(jù)庫設計等。但是在面對一個較為復雜的實際情況時不能設計出性能優(yōu)越的數(shù)據(jù)庫來,這很難使學生所學的知識點融會貫通。機房上機練習雖然能提供給學生一定的動手鍛煉的機會,但是由于缺乏一些真正的需求,大部分同學的練習只是局限于一些常用的數(shù)據(jù)庫工具軟件、命令的使用。同時這些練習也僅僅是一些關于單門學科的知識點驗證,學生很難把所學的知識與實際工作相結合。而且這些練習中的數(shù)據(jù)大都不具有實際生產環(huán)境意義,因此學生在上機練習中很難考慮到實際工程中的一些要求。比如實際的信息系統(tǒng)中,數(shù)據(jù)量可能達到百萬、千萬記錄,這時候的數(shù)據(jù)庫操作可能會遇到一系列問題,比如溢出錯誤等,時間性能等等。而且傳統(tǒng)的機房上機中所涉及到的數(shù)據(jù)庫幾乎都是SQL Server、Oracle、MySQL等,而現(xiàn)在社會發(fā)展早已進入了大數(shù)據(jù)時代,數(shù)據(jù)的規(guī)模甚至達到TB、PB級,傳統(tǒng)的數(shù)據(jù)庫技術在解決大數(shù)據(jù)問題面前遇到了一系列問題。課程教學應該要緊密聯(lián)系生產界的主流技術,與實踐緊密融合,讓學生將掌握的理論知識靈活運用到實際工程中,達到學以致用的效果。同時長期單一的教學模式不容易使學生保持較好的學習積極性。因此必須運用不同的教學方法與教學形式,調動學生的學習熱情,促進學生的學習。
2 基于Hadoop的數(shù)據(jù)庫教學實驗平臺的構建
隨著互聯(lián)網的發(fā)展,數(shù)據(jù)呈指數(shù)級增長。大數(shù)據(jù)的存儲、處理對現(xiàn)有數(shù)據(jù)庫技術提出了巨大的挑戰(zhàn),Hadoop的出現(xiàn)從一定程度上解決了這個問題,并得到了廣泛的運用。④秉承課程教學要與實踐相結合的原則,我們通過搭建一個Hadoop平臺進行數(shù)據(jù)庫教學、實驗。
Hadoop是目前一個非常流行的開源框架,可編寫和運行分布式應用處理大規(guī)模數(shù)據(jù)。⑤Hadoop可運行在由廉價機器構建的集群上,有簡單、健壯、可擴展等特點。HDFS文件系統(tǒng)是Hadoop的底層文件系統(tǒng),它是一個主從式的分布式文件系統(tǒng),有NameNode和若干個DataNode組成。HBase是基于HDFS上的一個開源數(shù)據(jù)庫,目前在一些大公司得到了廣泛運用。HBase⑥是一個分布式的、面向列的開源數(shù)據(jù)庫,在Hadoop之上提供了類似于Bigtable的能力。HBase與關系型數(shù)據(jù)庫有著區(qū)別:HBase是一個適合于非結構化數(shù)據(jù)存儲的數(shù)據(jù)庫,而且是基于列的而不是基于行的模式。HBase主要用于需要隨機訪問,實時讀寫大數(shù)據(jù)的情況。
針對目前數(shù)據(jù)庫教學中遇到的難題,我們利用Hadoop的技術優(yōu)勢,構建了一個基于Hadoop的數(shù)據(jù)庫教學實驗平臺。該平臺對于服務器的硬件配置要求較低,這也是Hadoop技術的一大優(yōu)勢,因此我們利用廉價的機器搭建起底層系統(tǒng)并配置好HDFS文件系統(tǒng)。
2.1 平臺的搭建
該平臺中有9臺計算機,配置均為雙核CPU、4GB內存、500G硬盤、Ubuntu操作系統(tǒng),我們選取的Hadoop版本是1.21,它具有良好的穩(wěn)定性、容錯性。指定其中一臺計算機作為系統(tǒng)的NameNode及JobTracker,7臺作為系統(tǒng)的DataNode和TaskTracker。NameNode節(jié)點指導DataNode節(jié)點進行底層的IO任務,并記錄文件如何被分成文件塊、以及這些塊被哪些節(jié)點存儲等其他信息。而DataNode則存儲文件塊,進行計算,并與其他節(jié)點交互、復制數(shù)據(jù)以實現(xiàn)冗余。在Hadoop文件系統(tǒng)HDFS上,我們配置適合Hadoop版本的HBase,HBase是一個能存儲海量數(shù)據(jù)的數(shù)據(jù)庫。由于NameNode節(jié)點在系統(tǒng)中作用較大,如果NameNode節(jié)點出現(xiàn)故障,整個平臺的使用都會受到影響。為此我們取一臺單獨的計算機作為Secondary NameNode,Secondary NameNode的作用是與NameNode通信,它不存儲HDFS的任何實時變化,只是按照一定的時間間隔獲取HDFS信息的一個快照。萬一NameNode節(jié)點出現(xiàn)故障,可根據(jù)Secondary NameNode上的信息快速恢復系統(tǒng)平臺,并降低各節(jié)點丟失數(shù)據(jù)的概率。Hadoop的架構如圖1所示。
圖1 Hadoop架構
應用層的構建我們依據(jù)MVC設計原則,采用Struts+Hibernate+Spring技術,將視圖控制模型分離,降低耦合度,提高代碼可重用性,使層次架構更加清晰明了,同時也便于后期維護、降低維護成本。該平臺能夠處理大數(shù)據(jù),且使用的機器很廉價,并具有較好的穩(wěn)定性、魯棒性。該平臺主要框架如圖2所示。
圖2 基于Hadoop的數(shù)據(jù)庫教學實驗平臺
2.2 平臺功能介紹
用戶可通過登錄模塊進入系統(tǒng)。系統(tǒng)管理員可以為學生分配平臺資源使用的權限,并可以執(zhí)行系統(tǒng)設置、用戶管理、消息發(fā)布、平臺維護等操作。學生根據(jù)管理員分配的權限可以進入平臺執(zhí)行相應的操作。
在實驗練習模塊中學生可以通過該模塊操作HBase數(shù)據(jù)庫中的海量數(shù)據(jù),所學知識將在真實環(huán)境數(shù)據(jù)下得到運用,能對知識點融會貫通。同時該平臺中的HBase數(shù)據(jù)庫不僅能滿足數(shù)據(jù)庫教學的中的一般需求,而且實現(xiàn)了壓縮算法、內存操作和布隆過濾器,這能為一些學習能力較強的學生提供鉆研探索的機會,有效地鍛煉學生的創(chuàng)新能力。在這里學生有機會玩轉大數(shù)據(jù),能真正地讓學生在課堂上所學的理論知識與實踐得到很好地結合。這為學生以后進入社會參加工作提供了經驗。
深入學習模塊可以讓學生全面、深入地繼續(xù)學習。一方面,該模塊向學生展示了關于數(shù)據(jù)庫課程的教學方案、該教學平臺的特性、平臺的搭建細節(jié)以及平臺的使用指南,讓學生不僅能快速地學會這個平臺的使用,還能對該平臺有個全面細致的了解。另一方面,該模塊發(fā)布了一些教學視頻、講義、資料供學生下載,讓學生在課余時間能夠對感興趣的內容進行自主學習。
在線測試模塊主要給學生提供一個在線測試的平臺,教師可以定期在平臺上發(fā)布在線測試,學生將在規(guī)定的時間內進入系統(tǒng)答題,由平臺自動判分,同時平臺具有一定的查重功能,這能夠有效地避免抄襲現(xiàn)象的存在。對于每道題,教師可以提前設置好正確答案分析,學生可以在測試結束后自己分析做錯的題。對于學生答題的判分情況,系統(tǒng)自動生成各種報表,讓教師能對學生的學習情況有個全面細致的了解,從而對學生的薄弱知識點進行查缺補漏。
答疑解惑模塊可以讓教師、學生在線直接交流,學生對于未來課程所期望的知識點講解也可以留言,學生不懂的問題可以在此請教教師,這打破了課堂教學時間的限制,能讓學生獲得更多的指導學習時間。
3 數(shù)據(jù)庫教學實驗平臺的效果與優(yōu)勢分析
自從該平臺投入教學使用后,取得了較好的教學效果。學生的學習熱情越來越高,參與在線學習的人(下轉第181頁)(上接第139頁)數(shù)越來越多,在線測試中學生的成績斐然,參與數(shù)據(jù)庫實驗平臺的學生人數(shù)和在線時間均處于持續(xù)增長。
搭建這個數(shù)據(jù)庫教學實驗平臺并在教學中使用是我們在教學改革中的探索,這為以后的教學改革指明了方向。
搭建了基于Hadoop的數(shù)據(jù)庫教學實驗平臺。一方面提供給了學生一個鍛煉實踐的機會。學生在教材中學到的各種理論知識都能在該平臺的練習中得到深入理解并加以融會貫通,增加了學生動手鍛煉的機會,通過平臺的教學,學生能夠深入理解數(shù)據(jù)庫基本原理,熟練設計數(shù)據(jù)庫的基本原則以及具體細節(jié),掌握數(shù)據(jù)庫操作的性能調優(yōu)技術。Hadoop、HBase等新技術的運用不僅能讓學生了解工業(yè)界流行的技術,避免與實際脫軌,而且有助于培養(yǎng)學生的獨立思考、解決新問題的能力。同時對于那些感興趣的同學,可以進一步學習Hadoop框架的底層實現(xiàn)細節(jié)。另一方面,該平臺在教學中的使用改變了傳統(tǒng)的教學模式,讓學生成為教學的主體,學習過程中更加注重的是學習方法的指導,重視學生能力的培養(yǎng)。特別是定期的在線測試改變了傳統(tǒng)的考核方式,在完成每個學習階段后,相應的在線測試能檢測學生的學習效果,能讓學生始終保持對自身的正確認識。通過多元化的教學方式,極大地調動了學生的積極性和主動性。
4 結束語
數(shù)據(jù)庫技術是計算機科學技術中的核心技術之一,也是發(fā)展最快的技術之一。數(shù)據(jù)庫學科理論性強、實踐應用性突出的特點決定了學好這門學科必須要理論與實踐相結合。本文針對當前的數(shù)據(jù)庫課程教學現(xiàn)狀中存在的問題進行了深入分析,并提出了一個基于Hadoop的教學實驗平臺,該教學實驗平臺具有良好的交互性、易操作,在數(shù)據(jù)庫的教學中起著重要的作用。這不僅能強化學生對教材中理論知識的掌握,而且提供給學生一個實踐的機會,極大地鍛煉了學生獨立思考、解決新問題的能力。在將來的教育中應該要重視實踐環(huán)節(jié),培養(yǎng)學生的創(chuàng)新能力。
注釋
① 薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].高等教育出版社,2000.
② 瞿中.數(shù)據(jù)庫教學方法改革的探索與實踐[J].黑龍江高教研究,2006(2):113-114.
③ 張元,韓燮.基于CDIO的數(shù)據(jù)庫課程體系改革與實踐[J].計算機教育,2011(3):52-55.
④ Borthakur D, Gray J, Sarma J S, et al. Apache Hadoop goes realtime at Facebook[C]//Proceedings of the 2011 ACM SIGMOD International Conference on Management of data. ACM, 2011:1071-1080.
⑤ Shvachko K, Kuang H, Radia S, et al. The hadoop distributed file system[C]//Mass Storage Systems and Technologies (MSST), 2010 IEEE 26th Symposium on. IEEE,2010:1-10.
⑥ The Apache HBase project.http://hbase.apache.org/.