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

        ?

        MySQL數(shù)據(jù)庫課程教學(xué)難點(diǎn)教學(xué)分析
        ——以數(shù)據(jù)庫設(shè)計(jì)為例

        2017-12-05 03:37:15李德勝
        關(guān)鍵詞:字符集數(shù)據(jù)表引擎

        李德勝

        (安徽科技學(xué)院 信息與網(wǎng)絡(luò)工程學(xué)院,安徽 鳳陽 233100)

        MySQL數(shù)據(jù)庫課程教學(xué)難點(diǎn)教學(xué)分析
        ——以數(shù)據(jù)庫設(shè)計(jì)為例

        李德勝

        (安徽科技學(xué)院 信息與網(wǎng)絡(luò)工程學(xué)院,安徽 鳳陽 233100)

        近年來,由于MySQL的體積小、功能全和免費(fèi)的特點(diǎn),加上PHP+MySQL的Web開發(fā)架構(gòu)的興起,MySQL已經(jīng)成為了計(jì)算機(jī)、軟件工程等專業(yè)中承接“數(shù)據(jù)庫系統(tǒng)原理”和“PHP Web開發(fā)”的重要專業(yè)課程之一。然而,作為一門新興的專業(yè)課程,其課程、教材、資源、教學(xué)研究都還不夠充分。尤其是課程中學(xué)生容易混淆的一些教學(xué)難點(diǎn),不僅使學(xué)生感到嚴(yán)重的挫敗感,而且影響了后續(xù)數(shù)據(jù)庫的進(jìn)一步應(yīng)用。本文結(jié)合Web開發(fā)應(yīng)用,對(duì)MySQL中的一些教學(xué)難點(diǎn)進(jìn)行分析,并提出一些教學(xué)實(shí)踐改革方法,擬形成一些最佳實(shí)踐的教學(xué)方法。

        存儲(chǔ)引擎;環(huán)境配置;范式;數(shù)據(jù)庫設(shè)計(jì);字符集;校對(duì)規(guī)則

        MySQL是一款優(yōu)秀的DBMS軟件,是目前事實(shí)上的小型關(guān)系型數(shù)據(jù)庫范例之一。與其他關(guān)系型數(shù)據(jù)庫(Oracle、DB2、SQLServer、SQLite等)相比,它具有體積小、功能全、查詢快捷、完全免費(fèi)等特點(diǎn),加上目前廣泛流行的PHP+SQL Web開發(fā)架構(gòu),使得MySQL數(shù)據(jù)庫課程[1]逐漸走向了計(jì)算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程等專業(yè)的課堂,成為了承接“數(shù)據(jù)庫系統(tǒng)原理”[2]和“PHP Web開發(fā)”[3]的重要專業(yè)課程。

        然而,作為一門新興的專業(yè)課程,其課程、教材、資源、教學(xué)研究都還不夠充分,尤其是課程中學(xué)生容易混淆的一些難點(diǎn),不僅使學(xué)生感到嚴(yán)重的挫敗感,而且影響了后續(xù)數(shù)據(jù)庫的進(jìn)一步應(yīng)用和后續(xù)Web開發(fā)課程的教學(xué)。

        下面就MySQL數(shù)據(jù)庫課程教學(xué)難點(diǎn)展開分析,并提出相關(guān)對(duì)策。

        1 MySQL服務(wù)器環(huán)境配置

        MySQL的配置相對(duì)于其他工具來說并不算特別復(fù)雜,但是對(duì)于剛剛接觸它的同學(xué)來說,也是一個(gè)比較繁瑣的事情,而且容易導(dǎo)致數(shù)據(jù)庫服務(wù)啟動(dòng)失敗。它的配置涉及到安裝版和復(fù)制版,普通版和服務(wù)器版等不同版本,其主要配置文件是mysql.ini(Linux系統(tǒng)下是mysql.cnf),分為兩塊:客戶端區(qū)配置和服務(wù)器區(qū)配置。當(dāng)mysql服務(wù)器啟動(dòng)時(shí)會(huì)讀取該文件來設(shè)置相關(guān)的運(yùn)行參數(shù)。

        在PHP+MySQL的Web開發(fā)體系架構(gòu)中,MySQL對(duì)于性能的影響所占比例最大。MySQL的設(shè)置是否合理正確和最優(yōu)化,直接影響到Web應(yīng)用的運(yùn)行狀態(tài)、速度和吞吐量。另一方面,MySQL也是優(yōu)化難度最大的一個(gè)部分,不僅需要深入理解MySQL的原理,同時(shí)一定的經(jīng)驗(yàn)判斷,才能夠設(shè)置好合理的參數(shù)。

        在實(shí)際的教學(xué)過程中,對(duì)于初次接觸MySQL的學(xué)生來說,這部分內(nèi)容不僅失敗率高,影響學(xué)生的自信心,而且會(huì)拖延教學(xué)實(shí)踐的進(jìn)度。因此,我們?cè)趯?shí)際的教學(xué)過程中采用了PhpStudy集成環(huán)境,它很好地集成了MySQL、PHP、Apache、IIS、Nginx,是真正的一站式開發(fā)環(huán)境。其中,關(guān)于MySQL,不僅包括了強(qiáng)大的客戶端工具,基于桌面的MySQL-Front與基于Web的phpMyAdmin,而且提供了MySQL配置工具(如圖1所示),可以輕松設(shè)置密碼、執(zhí)行MySQL命令、備份還原數(shù)據(jù)庫和設(shè)置參數(shù)值。

        圖1 PhpStudy集成環(huán)境中的MySQL工具

        2 區(qū)分?jǐn)?shù)據(jù)存儲(chǔ)引擎

        MySQL的優(yōu)點(diǎn)之一就在于可以根據(jù)需要選擇多種存儲(chǔ)引擎,它支持MyISAM、InnoDB、HEAP、BOB、ARCHIVE、CSV等多種存儲(chǔ)引擎。其中在Web 應(yīng)用開發(fā)中最常用的就是MyISAM和InnoDB兩種引擎。MyISAM引擎下的數(shù)據(jù)表的優(yōu)點(diǎn)是存取速度快、技術(shù)成熟、穩(wěn)定和方便管理,缺點(diǎn)是而容易造成碎片,事務(wù)支持差。而InnoDB的優(yōu)點(diǎn)是功能豐富、事務(wù)支持好、安全性高,缺點(diǎn)是讀寫速度稍慢、空間占用大。

        基于這些特點(diǎn),對(duì)于大多數(shù)學(xué)生來講,該如何選擇這兩種引擎,成為了教學(xué)中的一個(gè)難點(diǎn)。在實(shí)際教學(xué)中,應(yīng)該讓學(xué)生掌握選擇的原則和參考標(biāo)準(zhǔn)。具體選擇的原則可以從范式約束、時(shí)空、事務(wù)和鎖、并發(fā)性、安全性和可移植性等方面考慮。一般來說,從可以方便移植、節(jié)約空間和時(shí)間的方式來講,并且不涉及多表的外鍵操作或事務(wù)處理,就應(yīng)該選擇MyISAM類型。例如,在線文檔、網(wǎng)址收藏等Web應(yīng)用,就比較適合MyISAM類型;反之,如果需要使用事務(wù),或者需要更高的安全性,或者允許多用戶并發(fā)操作表的數(shù)據(jù),就應(yīng)該首選InnoDB類型。例如,轉(zhuǎn)賬付款、在線購物、在線抓取等Web應(yīng)用,就比較適合InnoDB類型。特別是在多用戶操作數(shù)據(jù)表的時(shí)候,InnoDB采用的是數(shù)據(jù)行鎖定方式,而非MyISAM采用的數(shù)據(jù)表鎖定方式。因此,在事務(wù)處理中,只要不是正在被事務(wù)處理的數(shù)據(jù)行,其他用戶仍然可以訪問數(shù)據(jù)表。然而,InnoDB在表空間管理、全文索引、商業(yè)許可等方面都有明顯的劣勢(shì)。除此之外,大多數(shù)虛擬主機(jī)、云主機(jī)提供商只允許使用MyISAM類型模式,因此也成為了Web應(yīng)用中選擇表存儲(chǔ)類型和可移植性的一個(gè)重要因素。

        因此,雖然InnoDB是MyISAM引擎的更新?lián)Q代產(chǎn)品,但是在大多數(shù)情況下,還是應(yīng)該首選MyISAM類型。當(dāng)然,也應(yīng)該讓學(xué)生了解,兩種引擎在一定條件下也能共存,即MyISAM數(shù)據(jù)表和InnoDB數(shù)據(jù)表存在同一數(shù)據(jù)庫中。這樣數(shù)據(jù)庫設(shè)計(jì)者可以根據(jù)每個(gè)表的具體內(nèi)容和用途來分別選擇數(shù)據(jù)表的類型。

        最后,需要告知學(xué)生的是,具體的運(yùn)行速度收到系統(tǒng)硬軟件配置(尤其是內(nèi)存容量)、配置文件和應(yīng)用程序代碼等影響,不能簡(jiǎn)單判定哪種引擎更快,需要進(jìn)行測(cè)試和模擬后再做出選擇。

        3 范式與數(shù)據(jù)庫設(shè)計(jì)

        雖然在學(xué)習(xí)MySQL數(shù)據(jù)庫課程前,學(xué)生已經(jīng)先修了“數(shù)據(jù)庫系統(tǒng)原理”的課程,但往往是事先已經(jīng)設(shè)計(jì)好數(shù)據(jù)庫,再進(jìn)行操作,或者對(duì)于實(shí)際的數(shù)據(jù)庫設(shè)計(jì)缺乏經(jīng)驗(yàn)。因此,對(duì)于實(shí)際應(yīng)用中的數(shù)據(jù)庫結(jié)構(gòu)(也稱為數(shù)據(jù)庫模式scheme)尤其不能隨意為之。

        數(shù)據(jù)庫設(shè)計(jì)首先面臨的問題就是范式的選擇,即規(guī)范化normalization的過程,它可以小心地消除冗余以及解決數(shù)據(jù)庫完整性的問題。規(guī)范化是由IBM研究員EF Codd博士提出并創(chuàng)建的一系列范式規(guī)則。滿足這些范式的數(shù)據(jù)庫不會(huì)發(fā)生插入、刪除和更新操作異常。對(duì)于大多數(shù)數(shù)據(jù)庫設(shè)計(jì)來說,1NF、2NF、3NF、BCNF這幾種范式已經(jīng)能夠滿足要求。

        然而,雖然范式理念十分強(qiáng)大,但實(shí)際的數(shù)據(jù)庫(尤其是Web應(yīng)用中)設(shè)計(jì)中,需要考慮更多的因素,例如速度、冗余或不一致、程序難易等。有的時(shí)候,將數(shù)據(jù)結(jié)構(gòu)優(yōu)化為最高存儲(chǔ)效率卻在操作編程上是不可取的。因此,范式在某種意義上更像是一種指導(dǎo)性意見,而不是根本原則。在實(shí)際的設(shè)計(jì)中,有時(shí)需要在范式和實(shí)際效率之前取得某種平衡。

        在指導(dǎo)學(xué)生進(jìn)行規(guī)范化設(shè)計(jì)時(shí),應(yīng)該讓學(xué)生充分進(jìn)行需求分析和總體設(shè)計(jì),找出需要訪問的具體信息和之間的邏輯關(guān)系。并提倡學(xué)生用筆和紙進(jìn)行設(shè)計(jì),開始時(shí)盡量不要使用工具軟件進(jìn)行分析。甚至在筆者教學(xué)實(shí)踐中,實(shí)體-關(guān)系圖也有時(shí)會(huì)干擾學(xué)生的建模。因此,比較好的方式是最開始使用自然語言描述,再用集合映射圖表示對(duì)應(yīng)關(guān)系,這樣做更加簡(jiǎn)潔明了和容易排錯(cuò)。

        為了使學(xué)生掌握實(shí)際的表設(shè)計(jì)原則和方法,下面用一個(gè)具體的教學(xué)案例進(jìn)行講解和分析。

        課堂上,可以用一個(gè)BBS教學(xué)互動(dòng)平臺(tái)的案例對(duì)學(xué)生進(jìn)行教學(xué),因?yàn)閷W(xué)生對(duì)這樣的應(yīng)用比較熟悉,這樣學(xué)生容易產(chǎn)生代入感,有利于加深他們對(duì)內(nèi)容的理解。

        首先,將所有信息放在一個(gè)表中,進(jìn)行預(yù)先評(píng)估。數(shù)據(jù)存放在數(shù)據(jù)庫的一個(gè)表中:

        userID, username, email, qq, tel, addr, jobID, jobtitle, jobcontent, replyID, replytitle, replycontent

        根據(jù)定義,數(shù)據(jù)庫表符合第一范式,但是不滿足其他范式。因此,可以將數(shù)據(jù)庫表進(jìn)一步分解為范化形式:

        (1)userinfo:userID, username, email, qq, tel, addr.

        (2)jobinfo:jobID, jobtitle, jobcontent.

        (3)replyinfo:replyID, replytitle, replycontent.

        (4)userjobinfo:userID, jobID.

        (5)jobreplyinfo:jobID, replyID.

        可以證明該設(shè)計(jì)是滿足第1、2、3、BCNF范式要求的。但是,在實(shí)際的Web工程中,卻存在冗余大、涉及表數(shù)量多、編程復(fù)雜的缺點(diǎn)。因此,還需要重新設(shè)計(jì)和化簡(jiǎn)。

        圖2 userinfo, userjobinfo, jobinfo對(duì)應(yīng)關(guān)系集合映射與合并操作

        觀察數(shù)據(jù)庫結(jié)構(gòu),發(fā)現(xiàn)在數(shù)據(jù)庫表中存在一對(duì)多關(guān)系這種較特殊的情況下,如圖2所示,userinfo和userjobinfo之間是一對(duì)多的關(guān)系,而userjobinfo和jobinfo是一一對(duì)應(yīng)的關(guān)系。對(duì)于這種情況,我們可以進(jìn)行數(shù)據(jù)表的合并而忽略第二范式原則的要求。因此,可以將一一對(duì)應(yīng)的兩個(gè)表userjobinfo和jobinfo合并為新的表newjobinfo。同理,也可以將jobreplyinfo和replyinfo合并為新的表newreplyinfo。這樣可以一定量地減少數(shù)據(jù)冗余和簡(jiǎn)化表的操作,新的設(shè)計(jì)為:

        (1) userinfo:userID, username, email, qq, tel, addr

        (2) newjobinfo:userID,jobID,jobtitle, jobcontent

        (3) newreplyinfo:jobID,replyID, replytitle, replycontent

        該方法并沒有使用實(shí)體-關(guān)系圖,而是使用數(shù)學(xué)中的集合映射來對(duì)學(xué)生進(jìn)行講解,會(huì)使學(xué)生了解到,數(shù)據(jù)庫理論的核心——關(guān)系代數(shù)實(shí)質(zhì)就是集合論。這種教學(xué)方法的另一個(gè)好處是,通過這個(gè)例子說明數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì)不是一成不變的,有的時(shí)候也可以進(jìn)行動(dòng)態(tài)演化,即開始設(shè)計(jì)為三大范式,而后面再進(jìn)行合并操作簡(jiǎn)化表結(jié)構(gòu)。

        4 徹底弄清楚字符集、編碼和校對(duì)

        在給學(xué)生講解這部分內(nèi)容時(shí),一些相近的概念很容易混淆。所以首先必須徹底講解和分清字符集、編碼和校對(duì)的概念。

        理論上講,字符集是語言所使用的符號(hào);而編碼是將字符集從整數(shù)映射到字節(jié)的方法;校對(duì)規(guī)則是定義了比較字符串的方式。因此,這三個(gè)概念應(yīng)該是嚴(yán)格區(qū)分的,但是由于學(xué)生對(duì)該知識(shí)點(diǎn)的空白,加上很多互聯(lián)網(wǎng)資源都使用字符集來表示代碼,可以當(dāng)作同義詞使用。這些都會(huì)給學(xué)生造成混淆。

        對(duì)于如何選擇字符集和校對(duì)規(guī)則,也需要對(duì)學(xué)生講解清楚。

        首先,選擇目標(biāo)字符集的時(shí)候,一定要選擇源字符集的超級(jí),例如,選擇GBK 字符集而不是GB2312 字符集。GBK編碼是定長(zhǎng)編碼,雙字節(jié)編碼,支持的系統(tǒng)多;而UTF-8編碼不是定長(zhǎng)編碼,長(zhǎng)度也在1 至4 字節(jié),但卻是互聯(lián)網(wǎng)廣泛支持的Unicode 字符集。基于這些特點(diǎn),MySQL Server 也使用UTF-8作為內(nèi)部本土編碼方式。實(shí)際Web開發(fā)中的最佳實(shí)現(xiàn)是在GBK和UTF-8中選擇一種適合自己網(wǎng)站特點(diǎn)的字符集。

        然后,對(duì)于MySQL 中的字符集和校對(duì)規(guī)則,學(xué)生對(duì)于各種級(jí)別的設(shè)置往往會(huì)迷惑,這就需要教師不僅僅講授如何設(shè)置它們,更要講授這些設(shè)置發(fā)揮作用的時(shí)機(jī)和影響。另外,除了數(shù)據(jù)保存的字符集和校對(duì)規(guī)則,還存在客戶端和服務(wù)器之間交互的字符集和校對(duì)規(guī)則的設(shè)置。一般要求這連接級(jí)涉及的所有的字符集都完全一致,才可以確保用戶寫入的數(shù)據(jù)可以正確地讀出,尤其是對(duì)于中文字符。最后要對(duì)學(xué)生說明,這些設(shè)置都可以通過命令SET NAMES和修改mysql.ini文件兩種方法來靈活設(shè)置。

        最后,對(duì)于這部分的內(nèi)容,最好舉反例來說明,錯(cuò)誤的設(shè)置方法將會(huì)是應(yīng)用中出現(xiàn)亂碼和丟失數(shù)據(jù)的根源。而當(dāng)實(shí)際的Web應(yīng)用中出現(xiàn)亂碼時(shí)候,除了檢查HTTP和HTML協(xié)議文本中的相關(guān)頭部外,還應(yīng)該對(duì)MySQL中的字符集和校對(duì)規(guī)則設(shè)置進(jìn)行排查。

        5 小結(jié)

        本文以MySQL應(yīng)用中的數(shù)據(jù)庫設(shè)計(jì)階段為出發(fā)點(diǎn),結(jié)合實(shí)際的Web應(yīng)用對(duì)數(shù)據(jù)庫的要求,對(duì)MySQL教學(xué)中的若干教學(xué)難點(diǎn)進(jìn)行了梳理,并形成了指導(dǎo)學(xué)生最佳實(shí)踐的教學(xué)內(nèi)容和教學(xué)方法,以期消除學(xué)生的疑惑和不確定性,進(jìn)一步提升學(xué)生的成就感和學(xué)習(xí)樂趣,并在實(shí)際的教學(xué)中收到了良好的效果。

        [1] 王晶晶.mysql數(shù)據(jù)庫基礎(chǔ)教程[M].長(zhǎng)春:吉林大學(xué)出版社,2015: 6-10.

        [2] 李建中,王珊.數(shù)據(jù)庫系統(tǒng)原理[M].北京:電子工業(yè)出版社,2008: 17-20.

        [3] 劉乃琦,李忠.PHP和MySQL Web應(yīng)用開發(fā)[M].北京:人民郵電出版社,2015: 35-38.

        責(zé)任編輯:劉 琳

        AnalysisofTeachingDifficultiesinMySQLDatabaseCourse—TakingDatabaseDesignasanExample

        LI Desheng

        (College of Information and Network Engineering, Anhui Science and Technology University, Fengyang 233100, China)

        In recent years, with the rising of Web development framework of PHP + MySQL, MySQL with the features of small size, complete function and free of charge has become one of the important professional courses linking toDatabaseSystemPrincipleandPHPWebDevelopmentcourses in computer and software engineering majors. However, as a new professional course, its curriculum, materials, resources and teaching research are not enough. Especially, some of the teaching difficulties in the course not only make students confused, but also affects the further application of the subsequent database. This paper, combined with the development and application of Web, analyzes some difficulties in MySQL teaching, and puts forward some teaching practice reform methods, hoping to form best practice teaching methods.

        storage engine; environment configuration; paradigm; database design; character set; proofreading rules

        2017-01-16

        安徽省重大教學(xué)改革研究項(xiàng)目(2015zdjy121)

        李德勝(1979-),男,湖北宜昌人,副教授,博士,主要從事信息與網(wǎng)絡(luò)工程方面研究。

        G642

        A

        1009-3907(2017)10-0113-04

        猜你喜歡
        字符集數(shù)據(jù)表引擎
        湖北省新冠肺炎疫情數(shù)據(jù)表
        黨員生活(2020年2期)2020-04-17 09:56:30
        MySQL數(shù)據(jù)庫字符集的問題研究
        ORACLE字符集問題的分析
        基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
        藍(lán)谷: “涉藍(lán)”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        ORACLE數(shù)據(jù)庫字符集問題及解決方法
        醫(yī)院信息系統(tǒng)Oracle數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)中文亂碼的解決技術(shù)
        無形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于Cocos2d引擎的PuzzleGame開發(fā)
        圖表
        亚洲高清一区二区三区视频| 东方aⅴ免费观看久久av| 天天爱天天做天天爽| 久久丁香花综合狼人| 中文字幕文字幕视频在线| 日本少妇高潮喷水视频 | 国产亚洲精品久久久久婷婷瑜伽| 伊人久久一区二区三区无码| 精品少妇一区二区三区四区| 一二三四五区av蜜桃| 影音先锋男人站| 亚洲一区sm无码| 国产三级视频在线观看国产 | 亚洲熟女少妇精品久久| 妺妺窝人体色777777| 欲色天天网综合久久| 美女爽好多水快进来视频| 亚洲av成人波多野一区二区| 亚洲人成自拍网站在线观看| 亚洲精品一区二区三区大桥未久| 日韩国产有码在线观看视频| 国产午夜精品视频在线观看| 亚洲国产精品无码久久| 色偷偷88888欧美精品久久久| 国产一区二区三区亚洲天堂| 精品国产自在现线看久久| 国产成人精品一区二区三区视频| 亚洲区在线播放| 黄片一级二级三级四级| 亚洲综合欧美色五月俺也去| 欧美孕妇xxxx做受欧美88| 大伊香蕉精品视频一区| 女同一区二区三区在线观看| 最爽无遮挡行房视频| 欧美在线成人午夜网站| 国产又色又爽的视频在线观看91| 久久久久亚洲av无码专区首| 鲁一鲁一鲁一鲁一澡| 97人妻蜜臀中文字幕| 色中文字幕在线观看视频| 麻豆高清免费国产一区|