• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于開源軟件的數(shù)據(jù)庫原理課程實(shí)驗(yàn)教學(xué)改革探索

      2015-05-30 10:48:04王鑫劉寶林張鋼戴維迪
      計(jì)算機(jī)教育 2015年11期
      關(guān)鍵詞:數(shù)據(jù)庫原理實(shí)驗(yàn)教學(xué)

      王鑫 劉寶林 張鋼 戴維迪

      文章編號(hào):1672-5913(2015)11-0054-04

      中圖分類號(hào):G642

      摘要:針對(duì)數(shù)據(jù)庫原理課程實(shí)驗(yàn)教學(xué)中使用商業(yè)數(shù)據(jù)庫產(chǎn)品作為實(shí)驗(yàn)環(huán)境帶來的問題,分析數(shù)據(jù)庫原理課程的傳統(tǒng)實(shí)驗(yàn)教學(xué)模式,構(gòu)建基于開源軟件的數(shù)據(jù)庫原理實(shí)驗(yàn)教學(xué)環(huán)境,介紹開源軟件的選取原則,闡述基于C/S架構(gòu)的單機(jī)實(shí)驗(yàn)環(huán)境和基于B/S架構(gòu)的Web實(shí)驗(yàn)環(huán)境的搭建方法,并給出基于開源軟件的實(shí)驗(yàn)教學(xué)方案。

      關(guān)鍵詞:數(shù)據(jù)庫原理;實(shí)驗(yàn)教學(xué);開源軟件;實(shí)驗(yàn)環(huán)境

      0 引 言

      數(shù)據(jù)庫原理是計(jì)算機(jī)及相關(guān)專業(yè)的核心基礎(chǔ)課程。隨著大數(shù)據(jù)時(shí)代的到來,數(shù)據(jù)庫原理課程對(duì)于學(xué)生掌握數(shù)據(jù)理論和技術(shù)的重要作用更加凸顯。同時(shí),數(shù)據(jù)庫是一個(gè)理論和實(shí)踐并重的知識(shí)領(lǐng)域。數(shù)據(jù)庫理論方法需要在數(shù)據(jù)庫管理系統(tǒng)(DBMS)中加以驗(yàn)證,才能使學(xué)生加深對(duì)數(shù)據(jù)庫原理的理解。在國內(nèi),計(jì)算機(jī)及相關(guān)本科專業(yè)數(shù)據(jù)庫原理課程的實(shí)驗(yàn)環(huán)節(jié)一般使用某個(gè)商業(yè)數(shù)據(jù)庫產(chǎn)品(如Oracle、SQL Server、DB2等)作為實(shí)驗(yàn)教學(xué)的軟件環(huán)境。此做法主要存在兩方面的問題:①學(xué)生易被商業(yè)數(shù)據(jù)庫產(chǎn)品提供的繁雜功能分散注意力,花費(fèi)大量時(shí)間進(jìn)行用戶界面學(xué)習(xí)和文檔查閱,而非數(shù)據(jù)庫原理本身的實(shí)驗(yàn)驗(yàn)證;②學(xué)生無法從內(nèi)部架構(gòu)和源代碼層面理解數(shù)據(jù)庫理論方法背后的實(shí)現(xiàn)機(jī)制,不利于與本科生高年級(jí)或研究生的數(shù)據(jù)庫實(shí)現(xiàn)技術(shù)課程進(jìn)行銜接。

      1 數(shù)據(jù)庫原理課程傳統(tǒng)實(shí)驗(yàn)教學(xué)模式

      多年來,大多數(shù)本科數(shù)據(jù)庫原理課程教學(xué)存在一個(gè)誤區(qū),即讓學(xué)生掌握數(shù)據(jù)庫基本理論的同時(shí),掌握一個(gè)商業(yè)數(shù)據(jù)庫產(chǎn)品的操作方法。形成這種認(rèn)識(shí)的原因是學(xué)生在學(xué)習(xí)完數(shù)據(jù)庫原理課程之后,應(yīng)能勝任某商業(yè)數(shù)據(jù)庫產(chǎn)品的數(shù)據(jù)庫管理員(DBA)職位。然而實(shí)際情況是,以O(shè)racle、SQL Server和DB2這三大數(shù)據(jù)庫為代表的商業(yè)產(chǎn)品,為適應(yīng)市場需求,功能和界面頻繁更新且呈現(xiàn)復(fù)雜化趨勢,難以通過相對(duì)簡單的操作驗(yàn)證數(shù)據(jù)庫原理知識(shí)點(diǎn),相反會(huì)增加學(xué)生的學(xué)習(xí)負(fù)擔(dān);即使能夠展示某些效果,由于產(chǎn)品的商業(yè)封閉性,也無法從內(nèi)部結(jié)構(gòu)和源代碼級(jí)別說明實(shí)現(xiàn)機(jī)理,例如關(guān)系表的存儲(chǔ)、索引的建立、SQL查詢的執(zhí)行等。不使用商業(yè)數(shù)據(jù)庫的另一個(gè)原因是,作為一門本科課程應(yīng)保持理論和實(shí)踐教學(xué)的中立性,沒有理由選擇一種產(chǎn)品作為實(shí)驗(yàn)環(huán)境而不選擇另一種。至于培養(yǎng)DBA,實(shí)際上并不應(yīng)在本科數(shù)據(jù)庫原理課程的教學(xué)目標(biāo)之中。從國際一流計(jì)算機(jī)專業(yè)的課程設(shè)置來看,本科數(shù)據(jù)庫原理課程一方面使學(xué)生掌握數(shù)據(jù)庫系統(tǒng)及DBMS內(nèi)部的基本原理和技術(shù),另一方面為研究生階段的高級(jí)數(shù)據(jù)庫系統(tǒng)課程打基礎(chǔ)。學(xué)生要想勝任某商業(yè)數(shù)據(jù)庫產(chǎn)品DBA,可在學(xué)習(xí)完數(shù)據(jù)庫原理之后,通過其他途徑達(dá)到。

      與操作系統(tǒng)原理和編譯原理相比,數(shù)據(jù)庫原理課程教學(xué)在開源軟件的使用上可謂相對(duì)滯后。操作系統(tǒng)原理教學(xué)中對(duì)Linux內(nèi)核源代碼的分析和實(shí)驗(yàn)早已在國內(nèi)外高質(zhì)量課程中普遍開展;應(yīng)用開源編譯器及編譯工具的源代碼進(jìn)行編譯原理的實(shí)驗(yàn)驗(yàn)證也已是精品編譯原理課程的普遍共識(shí)。不過,在數(shù)據(jù)庫原理教學(xué)中,國際上只發(fā)現(xiàn)CMU和Berkeley的數(shù)據(jù)庫課程采用開源的PostgreSQL作為期末大作業(yè)的DBMS;調(diào)查國內(nèi)數(shù)據(jù)庫相關(guān)課程,尚未發(fā)現(xiàn)使用一整套開源軟件構(gòu)建數(shù)據(jù)庫原理實(shí)驗(yàn)教學(xué)環(huán)境的案例。

      經(jīng)過兩年的實(shí)驗(yàn)教學(xué)改革探索,我們成功地構(gòu)建起以MariaDB、HeidiSQL和phpMyAdmin等開源軟件為基礎(chǔ)的數(shù)據(jù)庫原理課程實(shí)驗(yàn)教學(xué)環(huán)境,同時(shí)編寫了基于開源軟件的實(shí)驗(yàn)指導(dǎo)教程,在基于開源軟件的數(shù)據(jù)庫原理課程實(shí)驗(yàn)教學(xué)改革方面積累了一些經(jīng)驗(yàn)。

      2 基于開源軟件的實(shí)驗(yàn)教學(xué)環(huán)境

      借鑒國際一流數(shù)據(jù)庫課程的先進(jìn)經(jīng)驗(yàn),我們對(duì)天津大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的本科數(shù)據(jù)庫原理課程實(shí)驗(yàn)教學(xué)環(huán)節(jié)進(jìn)行了改革,探索以MariaDB、HeidiSQL和phpMyAdmin等開源軟件取代商業(yè)產(chǎn)品,搭建數(shù)據(jù)庫原理課程實(shí)驗(yàn)教學(xué)環(huán)境,并編寫基于開源軟件的實(shí)驗(yàn)指導(dǎo)教程;在2013年和2014年兩屆課程的實(shí)驗(yàn)教學(xué)中進(jìn)行該項(xiàng)改革嘗試,通過調(diào)查問卷發(fā)現(xiàn)超過90%的學(xué)生認(rèn)為基于開源軟件的實(shí)驗(yàn)環(huán)境對(duì)于掌握數(shù)據(jù)庫原理優(yōu)于商業(yè)產(chǎn)品,超過80%的學(xué)生認(rèn)為進(jìn)行基于開源軟件的數(shù)據(jù)庫原理實(shí)驗(yàn)后,可以較容易地通過自學(xué)完成某種商業(yè)數(shù)據(jù)庫的基本操作。

      2.1 開源軟件的選取

      對(duì)于數(shù)據(jù)庫原理課程的實(shí)驗(yàn)教學(xué),最重要的是選取一個(gè)適合理論驗(yàn)證又兼顧業(yè)界應(yīng)用廣度的DBMS。前期我們調(diào)研了兩種主流開源數(shù)據(jù)庫PostgreSQL和MySQL,PostgreSQL雖然歷史悠久、功能強(qiáng)大,但其在安裝和使用的簡便性上遠(yuǎn)不如MySQL,且PostgreSQL在Web開發(fā)的使用流行度也遠(yuǎn)不及MySQL。據(jù)調(diào)查,包括國際著名互聯(lián)網(wǎng)公司Google、Facebook、Twitter和國內(nèi)互聯(lián)網(wǎng)巨頭百度、騰訊、阿里巴巴在內(nèi)的各大企業(yè)都在不同的產(chǎn)品中大量使用MySQL作為數(shù)據(jù)庫后臺(tái)。不過,我們沒有直接選用MySQL,而是選用了目前與MySQL完全兼容的開源數(shù)據(jù)庫MariaDB,原因有兩方面:一是MariaDB在多項(xiàng)性能上超越了MySQL;二是MySQL被Oracle公司收購后未來有被閉源的風(fēng)險(xiǎn),而MariaDB是由MySQL原班人馬開發(fā)的,保證其開源性。

      DBMS確定后,我們選取了兩種開源客戶端軟件:一種是Windows下C/S架構(gòu)的圖形用戶界面(GUI)客戶端HeidiSQL;另一種是B/S架構(gòu)的Web界面客戶端phpMyAdmin。選用這兩種客戶端軟件的目的是使學(xué)生從實(shí)驗(yàn)環(huán)節(jié)中加深對(duì)DBMS的數(shù)據(jù)庫服務(wù)器屬性的認(rèn)識(shí)。實(shí)驗(yàn)環(huán)境配置說明、實(shí)驗(yàn)步驟說明和實(shí)驗(yàn)報(bào)告提交均采用基于開源軟件Moodle的e-learning教學(xué)平臺(tái)完成。圖1展示了基于開源軟件的數(shù)據(jù)庫原理實(shí)驗(yàn)教學(xué)環(huán)境的架構(gòu)圖。

      2.2基于C/S架構(gòu)的單機(jī)實(shí)驗(yàn)環(huán)境

      基于C/S架構(gòu)的單機(jī)實(shí)驗(yàn)環(huán)境適合學(xué)生在個(gè)人計(jì)算機(jī)上實(shí)驗(yàn),也適合教師演示操作。首先安裝MariaDB,安裝過程中可以改變默認(rèn)安裝路徑,設(shè)置root用戶密碼,選擇使用UTF-8作為默認(rèn)字符集以保存中文數(shù)據(jù);可以修改安裝的Windows服務(wù)默認(rèn)名稱MySQL以及默認(rèn)TCP端口號(hào)3306(為了兼容MySQL)。另一種安裝方式是使用zip壓縮包文件,解壓后執(zhí)行其中的命令行工具mysql_install_db.exe進(jìn)行MariaDB安裝。

      單機(jī)實(shí)驗(yàn)環(huán)境采用Windows下的開源GUI客戶端HeidiSQL,其安裝簡單,不需要特別設(shè)置。在HeidiSQL的會(huì)話管理器界面中輸入連接MariaDB數(shù)據(jù)庫服務(wù)器所需的全部信息,包括網(wǎng)絡(luò)類型為MySQL(TCP/IP),主機(jī)名/IP為127.0.0.1,填寫root用戶及其密碼,端口為3306。成功地連接到MariaDB數(shù)據(jù)庫服務(wù)器后,在HeidiSQL中執(zhí)行SQL語句及返回查詢結(jié)果的界面如圖2所示。需要強(qiáng)調(diào)的是,在會(huì)話管理器界面中可將“主機(jī)名/IP”改為想要連接的數(shù)據(jù)庫服務(wù)器的主機(jī)名或IP地址,以實(shí)現(xiàn)遠(yuǎn)程連接MariaDB數(shù)據(jù)庫,使學(xué)生認(rèn)識(shí)數(shù)據(jù)庫的C/S架構(gòu)。

      2.3 基于B/S架構(gòu)的Web實(shí)驗(yàn)環(huán)境

      基于B/S架構(gòu)的Web實(shí)驗(yàn)環(huán)境適合學(xué)生通過網(wǎng)絡(luò)遠(yuǎn)程進(jìn)行數(shù)據(jù)庫實(shí)驗(yàn)操作或進(jìn)行集中的上機(jī)實(shí)驗(yàn)考核。環(huán)境的搭建首先需要設(shè)立一臺(tái)專門用于實(shí)驗(yàn)教學(xué)的性能較好的物理服務(wù)器,安裝MariaDB和phpMyAdmin,使phpMyAdmin可以管理MariaDB實(shí)例。在整個(gè)課程開始前,教師先為每名學(xué)生建立一個(gè)用戶和一個(gè)數(shù)據(jù)庫,并為該用戶指定遠(yuǎn)程訪問、操作該數(shù)據(jù)庫的權(quán)限。例如,下列代碼創(chuàng)建了一個(gè)以學(xué)號(hào)“3012216001”為用戶名的用戶,指定其密碼為123456;創(chuàng)建了名為“db3012216001”的數(shù)據(jù)庫,并將該數(shù)據(jù)庫上的ALTER、CREATE、DELETE、DROP、INSERT、SELECT等操作權(quán)限授予該用戶。我們編寫程序讀取一屆學(xué)生的學(xué)號(hào)列表,對(duì)每名學(xué)生自動(dòng)生成如下SQL腳本,進(jìn)行用戶和數(shù)據(jù)庫的批量創(chuàng)建和授權(quán)操作。

      學(xué)生以自己的用戶名和密碼登錄phpMyA-dmin,只能訪問并操作自己專用的數(shù)據(jù)庫。高性能的數(shù)據(jù)庫服務(wù)器完全有能力支持學(xué)生的并發(fā)操作,每名學(xué)生獨(dú)立地使用各自的數(shù)據(jù)庫進(jìn)行實(shí)驗(yàn),DBMS的隔離性恰好保證了多名學(xué)生同時(shí)操作互不影響。圖3展示了學(xué)號(hào)為“3012216001”的學(xué)生登錄phpMyAdmin后, 在數(shù)據(jù)庫“db3012216001”中執(zhí)行SQL語句的效果。

      Web實(shí)驗(yàn)環(huán)境還為實(shí)驗(yàn)教學(xué)管理工作帶來了兩個(gè)方面的提升:一是教師可以通過phpMyAdmin自帶的工具查看每名學(xué)生數(shù)據(jù)庫的日志,從而客觀真實(shí)地分析每名學(xué)生課下進(jìn)行實(shí)驗(yàn)練習(xí)的工作量;二是教師可以在該環(huán)境下組織上機(jī)實(shí)驗(yàn)測試,并將日志記錄的數(shù)據(jù)庫操作及數(shù)據(jù)庫中的對(duì)象作為測試結(jié)果的準(zhǔn)確評(píng)價(jià)依據(jù)。

      3 基于開源軟件的實(shí)驗(yàn)教學(xué)方案

      天津大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)數(shù)據(jù)庫原理課程為64學(xué)時(shí),其中授課為40學(xué)時(shí),實(shí)驗(yàn)為24學(xué)時(shí)。考慮到數(shù)據(jù)庫原理課程理論性緊密結(jié)合實(shí)踐性的特點(diǎn),給學(xué)生布置的驗(yàn)證性實(shí)驗(yàn)和綜合實(shí)驗(yàn)需要中等水平的學(xué)生再利用課下大約60學(xué)時(shí)的時(shí)間完成。

      3.1 數(shù)據(jù)庫原理的驗(yàn)證性實(shí)驗(yàn)

      驗(yàn)證性實(shí)驗(yàn)應(yīng)緊密結(jié)合課上講解的理論和方法。表1列出了8次驗(yàn)證性實(shí)驗(yàn)的名稱及課上、課下學(xué)時(shí)分配以及所驗(yàn)證的理論知識(shí)點(diǎn)。實(shí)驗(yàn)安排做到了覆蓋全部課上講解的可實(shí)踐驗(yàn)證的理論知識(shí)點(diǎn),并突出重點(diǎn)和難點(diǎn)內(nèi)容。我們編寫了實(shí)驗(yàn)指導(dǎo)教程,每個(gè)實(shí)驗(yàn)都有實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)原理和實(shí)驗(yàn)步驟。結(jié)合實(shí)驗(yàn)內(nèi)容的難易程度,部分實(shí)驗(yàn)步驟還給出啟發(fā)式示例。

      3.2 以項(xiàng)目為主線的綜合實(shí)驗(yàn)

      綜合實(shí)驗(yàn)屬于期末大作業(yè)性質(zhì),課上布置和輔導(dǎo)8學(xué)時(shí),中等水平學(xué)生估計(jì)課下需要約30學(xué)時(shí)完成。該實(shí)驗(yàn)以一個(gè)軟件項(xiàng)目的數(shù)據(jù)庫設(shè)計(jì)為背景,提供經(jīng)整理的用戶需求文字性描述,例如,網(wǎng)上商城、圖書管理、員工管理等系統(tǒng)的后臺(tái)數(shù)據(jù)庫設(shè)計(jì)需求。

      實(shí)驗(yàn)步驟包括:

      (I)首先要求畫出數(shù)據(jù)庫的E/R模型圖。

      (2)將E/R模型轉(zhuǎn)換為關(guān)系模型,寫出創(chuàng)建關(guān)系表的CREATE TABLE語句,這里要求用CONSTRAINT關(guān)鍵字建立有名稱的主鍵和外鍵約束,并規(guī)定主鍵名稱格式為“pk_表名”,外鍵名稱格式為“fk本表名 引用表名”。

      (3)將提供的示例數(shù)據(jù)導(dǎo)入已創(chuàng)建的表中,其中部分表提供行數(shù)為百萬級(jí)別的大規(guī)模數(shù)據(jù),以增加實(shí)驗(yàn)的挑戰(zhàn)性,同時(shí)可以驗(yàn)證索引的效果,讓學(xué)生自學(xué)如何使用MariaDB提供的批量導(dǎo)人數(shù)據(jù)語句LOAD DATArNFILE。

      (4)編寫SQL語句完成查詢操作,包括單表查詢(大規(guī)模表的前k行,自學(xué)LIMIT關(guān)鍵字用法)、復(fù)合條件、聚合函數(shù)、分組、排序、自然連接、連接(舊式語法、新式JOIN…ON語法)、子查詢(不相關(guān)、相關(guān))和集合操作等。

      (5)編寫SQL語句完成更新操作,包括添加、修改和刪除。

      (6)高級(jí)主題,包括觸發(fā)器實(shí)驗(yàn)(實(shí)現(xiàn)自動(dòng)審計(jì)日志)、基于已有表建立視圖、索引的作用(在大規(guī)模表上建立索引大幅提高查詢執(zhí)行效率)、索引與鍵(主鍵上自動(dòng)建立索引)、建立存儲(chǔ)過程(函數(shù)、分支、循環(huán)、游標(biāo))、JDBC編程等。

      (7)撰寫不少于500字的實(shí)驗(yàn)總結(jié),記錄實(shí)驗(yàn)中遇到的問題及解決方法、經(jīng)驗(yàn)和收獲等。

      該綜合實(shí)驗(yàn)既有對(duì)驗(yàn)證性實(shí)驗(yàn)中知識(shí)點(diǎn)的鞏固性重復(fù),又有需要學(xué)生進(jìn)行自學(xué)和探索的綜合性、挑戰(zhàn)性內(nèi)容,達(dá)到了綜合實(shí)驗(yàn)的設(shè)計(jì)目標(biāo)。

      4 結(jié)語

      通過在數(shù)據(jù)庫原理實(shí)驗(yàn)教學(xué)中引入基于開源軟件的實(shí)驗(yàn)環(huán)境,充分發(fā)揮開源軟件的優(yōu)勢,利用C/S架構(gòu)單機(jī)實(shí)驗(yàn)環(huán)境和B/S架構(gòu)Web實(shí)驗(yàn)環(huán)境相結(jié)合的方法,我們設(shè)計(jì)數(shù)據(jù)庫原理驗(yàn)證性實(shí)驗(yàn)教學(xué)方案和以項(xiàng)目為主線的綜合性實(shí)驗(yàn)教學(xué)方案,切實(shí)提高了數(shù)據(jù)庫原理課程的實(shí)驗(yàn)教學(xué)效果。

      猜你喜歡
      數(shù)據(jù)庫原理實(shí)驗(yàn)教學(xué)
      關(guān)于基礎(chǔ)教育階段實(shí)驗(yàn)教學(xué)的幾點(diǎn)看法
      小議初中化學(xué)演示實(shí)驗(yàn)教學(xué)
      甘肅教育(2020年4期)2020-09-11 07:42:36
      電容器的實(shí)驗(yàn)教學(xué)
      物理之友(2020年12期)2020-07-16 05:39:20
      對(duì)初中化學(xué)實(shí)驗(yàn)教學(xué)的認(rèn)識(shí)和體會(huì)
      甘肅教育(2020年8期)2020-06-11 06:10:04
      基于《數(shù)據(jù)庫原理》課程網(wǎng)站前臺(tái)設(shè)計(jì)與開發(fā)
      數(shù)據(jù)庫原理核心課程建設(shè)研究
      《數(shù)據(jù)庫原理》課程研究性教學(xué)改革探索
      幾何體在高中數(shù)學(xué)實(shí)驗(yàn)教學(xué)中的應(yīng)用
      基于多維立體化模式的數(shù)據(jù)庫原理教學(xué)改革與實(shí)踐
      基于海洋特色的數(shù)據(jù)庫原理案例教學(xué)設(shè)計(jì)與實(shí)踐
      考試周刊(2016年39期)2016-06-12 16:11:42
      乐亭县| 邵阳县| 吐鲁番市| 南宫市| 凤翔县| 苗栗市| 通渭县| 米脂县| 秭归县| 海门市| 安平县| 大方县| 茂名市| 安图县| 云安县| 辽宁省| 赤水市| 鸡东县| 镇巴县| 连云港市| 大英县| 崇文区| 祁连县| 临澧县| 故城县| 清水县| 临猗县| 济阳县| 夹江县| 顺义区| 洞头县| 鲁山县| 普宁市| 甘泉县| 太原市| 蛟河市| 普兰县| 皋兰县| 喜德县| 湟中县| 兰溪市|