蘇文瑾
摘 要:MySQL具有體積較小、功能完整且免費(fèi)使用的特點(diǎn),本身是Web開(kāi)發(fā)結(jié)構(gòu),可以發(fā)揮一臺(tái)計(jì)算機(jī)的作用。但“MySQL數(shù)據(jù)庫(kù)”屬于一門(mén)新興的課程,教學(xué)資源、教學(xué)內(nèi)容并不充分,在教學(xué)過(guò)程中,可見(jiàn)明顯的學(xué)習(xí)難點(diǎn)與知識(shí)點(diǎn)混淆等問(wèn)題,直接影響到學(xué)生的學(xué)習(xí)興趣以及后續(xù)的數(shù)據(jù)庫(kù)應(yīng)用設(shè)計(jì)學(xué)習(xí)?;谶@一點(diǎn),文章結(jié)合Web的發(fā)展和利用,對(duì)MySQL教學(xué)中的困難進(jìn)行深入分析,提出相關(guān)解決辦法,建立一套有效的教學(xué)實(shí)踐方案。
關(guān)鍵詞:MySQL;數(shù)據(jù)庫(kù);課程教學(xué);難點(diǎn);設(shè)計(jì)
0 引言
MySQL是一款優(yōu)秀的DBMS軟件,是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,也是目前一個(gè)小型的關(guān)系數(shù)據(jù)庫(kù)模式。“MySQL數(shù)據(jù)庫(kù)”課程是新興的專業(yè)課程,但是其教材、教學(xué)資源與教學(xué)課程并不完善,課程內(nèi)存在極易混淆的難點(diǎn)知識(shí),導(dǎo)致學(xué)生學(xué)習(xí)產(chǎn)生挫敗感,以致會(huì)影響后續(xù)的課程教學(xué)[1]。
1MySQL服務(wù)器環(huán)境配置
MySQL配置工具內(nèi)容十分復(fù)雜,對(duì)剛剛接觸MySQL的同學(xué)而言難度較大,且極易導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)啟動(dòng)失敗。其設(shè)置包括了不同的版本,比如:安裝版、復(fù)制版,普通和服務(wù)器等。MySQL.ini的設(shè)置文件主要包含客戶端配置、服務(wù)區(qū)設(shè)置等。一旦服務(wù)器運(yùn)行,MySQL.ini就會(huì)自動(dòng)讀取相應(yīng)的文件資料,再進(jìn)行操作參數(shù)設(shè)置階段,在PHP,Web開(kāi)發(fā)系統(tǒng)的架構(gòu)中,會(huì)影響MySQL的性能,其占比較大[2]。
MySQL屬于較為強(qiáng)大的客戶端工具,在臺(tái)式MySQLfrront與web的PHP mybar基礎(chǔ)上,能夠提供相應(yīng)的工具配置,可便捷地進(jìn)行密碼設(shè)置,能夠精準(zhǔn)地執(zhí)行命令,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)合理備份,設(shè)置參數(shù)值[3]。一方面,MySQL設(shè)置正確與優(yōu)化,直接對(duì)Web的運(yùn)行狀態(tài)、運(yùn)行速度與吞吐量產(chǎn)生影響。另一方面,MySQL本身難度較大,需要對(duì)相關(guān)原理深入了解,結(jié)合經(jīng)驗(yàn)判斷,才可確保參數(shù)設(shè)置合理、科學(xué)。針對(duì)首次接觸 MySQL的學(xué)生,此階段的失敗率較高,會(huì)影響學(xué)生的自信。在實(shí)踐中,可以選擇很好地集成MySQL,PHP,apache和server,形成一個(gè)真正的集成環(huán)境與開(kāi)發(fā)環(huán)境。
2 區(qū)分?jǐn)?shù)據(jù)存儲(chǔ)引擎
MySQL的應(yīng)用優(yōu)勢(shì)在于,能夠結(jié)合需求,設(shè)置不同的儲(chǔ)存引擎,比如:ISAM,MyISAM,HEAP,InnoDB,BDB和Archive等,在進(jìn)行Web開(kāi)發(fā)與Web應(yīng)用階段,使用最多的就是MyISAM和InnoDB兩個(gè)引擎。MyISAM引擎數(shù)據(jù)最大的優(yōu)點(diǎn)就是能夠?qū)崿F(xiàn)高速的存取,穩(wěn)定性較強(qiáng),可實(shí)現(xiàn)管理的便捷性;但是其缺點(diǎn)在于會(huì)產(chǎn)生碎片,很難支持事物。InnoDB的優(yōu)點(diǎn)在于功能比較豐富,事物支持能力較好,安全性較好;但其缺點(diǎn)在于:讀寫(xiě)的速度比較的緩慢,且數(shù)據(jù)的占比空間較大。如此,學(xué)生要結(jié)合標(biāo)準(zhǔn),掌握選擇原則;從規(guī)范約束、規(guī)范事物進(jìn)行開(kāi)發(fā)、安全等方面綜合考慮。一般而言,要實(shí)現(xiàn)便捷移植,從節(jié)約空間、時(shí)間角度入手,不涉及外表操作、不涉及事務(wù)處理,則選擇MyISAM類型。而轉(zhuǎn)賬分期付款,網(wǎng)絡(luò)購(gòu)物、在線數(shù)據(jù)捕捉等,更適合使用InnoDB這種類型完善支付應(yīng)用。關(guān)鍵是用戶要將數(shù)據(jù)選取出來(lái),制定列表。這一技術(shù)可以自動(dòng)鎖定數(shù)據(jù),而不是MyISAM。除此之外,在其他事物處理與運(yùn)行階段,只要是未被處理過(guò)的某個(gè)數(shù)據(jù)行,其他用戶通過(guò)直接訪問(wèn)該行的數(shù)據(jù)即可。
3 范式與數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)最為關(guān)鍵的問(wèn)題是范式化的選擇,規(guī)范的normalization設(shè)計(jì)過(guò)程,不僅要小心、自動(dòng)去除冗余,還要解決數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)冗余問(wèn)題。規(guī)范規(guī)則是數(shù)學(xué)ibm生和研究人員一起提出數(shù)學(xué)規(guī)則,并創(chuàng)建相應(yīng)的規(guī)則,更好地滿足大型數(shù)據(jù)庫(kù)的文件格式,并自動(dòng)插入,將操作異常情況刪除,及時(shí)、自動(dòng)更新。針對(duì)大型數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì),1nf,2nf,3nf,這可能是一個(gè)很大的設(shè)計(jì)問(wèn)題。
這些類型的bcnf已經(jīng)達(dá)到標(biāo)準(zhǔn)與要求。景觀范式的概念強(qiáng)大,但數(shù)據(jù)庫(kù)的設(shè)計(jì)(特別是在Web應(yīng)用中)方面,要考慮各項(xiàng)因素,比如:冗余、速度等,思索其差異,程序易于實(shí)現(xiàn)。有時(shí)候,可以將數(shù)據(jù)結(jié)構(gòu)優(yōu)化,實(shí)現(xiàn)儲(chǔ)存效率的提升,但是在操作程序并不可取。就范式,可以將其視作一種指導(dǎo)意見(jiàn),在某種意義上轉(zhuǎn)變非根本原則的理念。在實(shí)際的設(shè)計(jì)過(guò)程中,要促使規(guī)范、效率均衡,指導(dǎo)學(xué)生開(kāi)展規(guī)范性設(shè)計(jì),充分掌握需求,總體分析,找出并明確各自之間的邏輯聯(lián)系。為促使學(xué)生掌握表格設(shè)計(jì)的原則和方式,需要進(jìn)行深入地剖析。在課堂教學(xué)階段,要借助BBS教學(xué)互動(dòng)平臺(tái)內(nèi)的案例,促使學(xué)生產(chǎn)生代入感,深刻了解相關(guān)內(nèi)容。觀察數(shù)據(jù)庫(kù)結(jié)構(gòu),及時(shí)發(fā)現(xiàn)關(guān)系情景。結(jié)合實(shí)際情況,忽略數(shù)據(jù)提出的合并要求,忽略第二范式提出的要求;接著,將兩個(gè)相對(duì)應(yīng)的userjobinfo和jobinfo整合,獲得一個(gè)新的表格,之后的表格合成也是如此。這樣可在一定程度減少數(shù)據(jù)的冗余,簡(jiǎn)化表格的操作。
4 徹底弄清楚字符集、編碼和校對(duì)
對(duì)于字符集選擇與校準(zhǔn)規(guī)則,教師需要向?qū)W生說(shuō)明。第一,要選擇目標(biāo)字符集,選擇超級(jí)源字符集。比如,可以選擇GBK字符,不使用UTF-8編碼。UTF-8本身屬于定長(zhǎng)編碼,為雙字節(jié)符號(hào),能夠提供支持的系統(tǒng)比較多。其長(zhǎng)度為1~4字節(jié),在互聯(lián)網(wǎng)內(nèi)得到了廣泛使用。基于這些特性,MySQL使用UTF-8作為本土的內(nèi)部編碼方法。在實(shí)際運(yùn)行中,web開(kāi)發(fā)能夠?qū)崿F(xiàn)最佳選擇,可以建設(shè)與自己網(wǎng)站特征符合的字符集,比如:GBK,UTF-8。針對(duì)MySQL內(nèi)的字符集校準(zhǔn),就不同級(jí)別的設(shè)置,學(xué)生會(huì)覺(jué)得比較迷惑。教師不僅要講解設(shè)置,還需要講解其價(jià)值與影響。第二,要不斷將字符集保存,并對(duì)規(guī)則進(jìn)行適當(dāng)校對(duì)。客戶端與服務(wù)器之間的字符集設(shè)置與校準(zhǔn),要求將多個(gè)字符集包含其中,保持一致。如此,可以確保用戶書(shū)寫(xiě)的數(shù)據(jù)均能夠被正確讀出,中文字符也應(yīng)當(dāng)如此。告知學(xué)生進(jìn)行相應(yīng)的位置設(shè)計(jì),借助命令setnames開(kāi)展MySQL.ini文件修整,靈活設(shè)置。
5 結(jié)語(yǔ)
本文以MySQL使用階段的數(shù)據(jù)庫(kù)設(shè)計(jì)作為切入點(diǎn),結(jié)合實(shí)際使用要求,梳理MySQL教學(xué)內(nèi)的難點(diǎn)與問(wèn)題,形成良好的指導(dǎo)方案,消除學(xué)生學(xué)習(xí)階段的疑惑,并將不確定性消除,不斷提升學(xué)生的成就感,激發(fā)學(xué)生的學(xué)習(xí)興趣,以此確保最佳教學(xué)效果。
[參考文獻(xiàn)]
[1]鄭戟明,董云朝,肖宇,等.MySQL數(shù)據(jù)庫(kù)課程的設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2020(3):21-22,24.
[2]孟程,黃建國(guó).MySQL數(shù)據(jù)庫(kù)課程教學(xué)的探索與研究[J].科技創(chuàng)新導(dǎo)報(bào),2019(15):190-191.
[3]張艷麗.數(shù)據(jù)庫(kù)課程教學(xué)改革的建議—以MySQL為例[J].數(shù)碼世界,2018(7):334.
(編輯 姚 鑫)