朱真峰,田 偵
(鄭州大學(xué) 信息工程學(xué)院,河南 鄭州 450001)
隨著社會的發(fā)展、信息技術(shù)的進步,數(shù)據(jù)庫的建設(shè)規(guī)模、信息存儲量和使用頻率已經(jīng)成為衡量一個國家信息化程度的重要標(biāo)志[1]1。
數(shù)據(jù)庫原理具有廣泛的應(yīng)用背景,同時是一門理論性較強的專業(yè)課程。對大學(xué)計算機專業(yè)的教師而言,如何讓學(xué)生更加深入、全面、系統(tǒng)地理解相關(guān)知識,是一個值得深入探討的教研課題。
對于知識的系統(tǒng)化處理,思維導(dǎo)圖(mind mapping)提供了一種簡單便捷的解決方法。自從英國記憶大師托尼·博贊(Tony Buzan)提出思維導(dǎo)圖,它就在全球范圍內(nèi)引起巨大轟動。思維導(dǎo)圖是一種圖文并茂的學(xué)習(xí)和記憶工具,它針對一定的任務(wù),把形象思維和抽象思維的整個過程,用圖畫和曲線繪制成輻射狀的發(fā)散結(jié)構(gòu),旨在提高學(xué)習(xí)者的學(xué)習(xí)興趣、記憶水平和智力水平等[2]。
思維導(dǎo)圖在數(shù)據(jù)庫原理課程的教學(xué)中也得到了廣大教師的重視。文獻[3]在數(shù)據(jù)庫原理實驗教學(xué)諸多方面展示了思維導(dǎo)圖的優(yōu)勢。文獻[4]把概念圖、思維導(dǎo)圖應(yīng)用于數(shù)據(jù)庫原理課程,達到改善學(xué)生的學(xué)習(xí)狀況和提高教學(xué)效率的目的。文獻[5]從數(shù)據(jù)庫的設(shè)計與實現(xiàn)、數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)知識、數(shù)據(jù)庫編程、數(shù)據(jù)庫的管理與維護角度繪制了數(shù)據(jù)庫原理課程整體的知識體系思維導(dǎo)圖。
現(xiàn)有的數(shù)據(jù)庫原理教程中,有如下一些關(guān)于數(shù)據(jù)庫的定義。
定義1:數(shù)據(jù)庫是長期存儲在計算機內(nèi)的、有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫能夠被各種用戶共享,并具有較小冗余度、數(shù)據(jù)間聯(lián)系緊密而又有較高的數(shù)據(jù)獨立性等特點[6]。
定義2:所謂數(shù)據(jù)庫是指長期儲存在計算機內(nèi)的、有組織的、可共享的數(shù)據(jù)集合[7]。
定義3:數(shù)據(jù)庫就是存放數(shù)據(jù)的倉庫。具體地說,數(shù)據(jù)庫是長期存儲在計算機內(nèi)、有組織的數(shù)據(jù)集合,它根據(jù)數(shù)據(jù)間的聯(lián)系組織在一起,具有較高的數(shù)據(jù)獨立性和較小的數(shù)據(jù)冗余度,能夠為各種用戶共享[8]。
定義4:數(shù)據(jù)庫是持久儲存在計算機中有組織的、可共享的大量數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,可以被各種用戶共享,具有較小的冗余度、較高的數(shù)據(jù)獨立性,并且易于擴展[1]3。
教科書《Database System Concepts》從系統(tǒng)角度給出了定義5:數(shù)據(jù)庫系統(tǒng)設(shè)計旨在管理大量信息。數(shù)據(jù)的管理包含定義信息存儲結(jié)構(gòu)和提供信息操作機制。另外,即使系統(tǒng)出現(xiàn)故障和被非法用戶接觸,數(shù)據(jù)庫系統(tǒng)必須確保存儲信息的安全。如果數(shù)據(jù)由多個用戶共享,系統(tǒng)必須能夠避免可能的異常結(jié)果(原文:Database systems are designed to manage large bodies of information.Management of data involves both defining structures for storage of information and providing mechanisms for the manipulation of information.In addition,the database system must ensure the safety of the information stored,despite system crashes or attempts at unauthorized access.If data are to be shared among several users,the system must avoid possible anomalous results[9]1)。
另一處描述是:一個數(shù)據(jù)庫系統(tǒng)是內(nèi)在相關(guān)數(shù)據(jù)的集合,并包含一組程序,允許用戶接觸和修改這些數(shù)據(jù)。該系統(tǒng)的主要目的是為用戶提供數(shù)據(jù)的抽象視圖,即系統(tǒng)隱藏了數(shù)據(jù)如何存儲和維護的一些細(xì)節(jié)(原文:A database system is a collection of interrelated data and a set of programs that allow users to access and modify these data.A major purpose of a database system is to provide users with an abstract view of the data.That is,the system hides certain details of how the data are stored and maintained[9]6)。
從上述定義可知,數(shù)據(jù)庫是一個數(shù)據(jù)集合,同時具有持久存儲、有組織、便于共享、大規(guī)模等幾個特點。另外,數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有易變性特點,通過數(shù)據(jù)更新(即增加、刪除和修改等操作)不斷發(fā)生變化。數(shù)據(jù)庫涵蓋內(nèi)容的簡略圖見圖1。
圖1 簡略的數(shù)據(jù)庫思維導(dǎo)圖
由圖1 可知,數(shù)據(jù)庫可描述為持久儲存在計算機中的、有組織的、可共享的、易變的、大規(guī)模的數(shù)據(jù)集合。
針對上述5 個特點,包含數(shù)據(jù)庫原理課程中全部重要概念的詳細(xì)思維導(dǎo)圖分析如下。
數(shù)據(jù)的組織性(圖2)可從數(shù)據(jù)建模角度解讀。數(shù)據(jù)庫的數(shù)據(jù)模型,首先是概念模型,一般采用實體聯(lián)系(Entity-Relationship,E-R)模型/圖。
在概念模型基礎(chǔ)上,邏輯模型進一步生成有助于計算機處理的形式。數(shù)據(jù)庫早期發(fā)展過程中出現(xiàn)層次模型和網(wǎng)狀模型,后來關(guān)系模型成為主流。
通過分析E-R 模型的實體類別、聯(lián)系類別和屬性類別,再進行模型轉(zhuǎn)換及模型精簡,就可以生成與之等價的關(guān)系模型。
關(guān)系表數(shù)據(jù)存儲形式的合理性涉及關(guān)系數(shù)據(jù)庫設(shè)計理論中的數(shù)據(jù)冗余、存儲異常及函數(shù)依賴等;如有必要,可采用關(guān)系模式的分解算法達到某種范式,如第3 范式,或BCNF 范式等。
數(shù)據(jù)的組織性還表現(xiàn)在通過屏蔽數(shù)據(jù)細(xì)節(jié),為用戶提供不同視角的數(shù)據(jù)視圖。這涉及三級模式、二級映射和數(shù)據(jù)的獨立性等內(nèi)容。
從模型理論角度分析,關(guān)系數(shù)據(jù)庫涉及集合論和關(guān)系代數(shù)等,有嚴(yán)格的數(shù)學(xué)基礎(chǔ)。從語言角度分析,組織性通過SQL 語句實現(xiàn)模式的定義、表和視圖的建立等。
數(shù)據(jù)庫諸多的應(yīng)用系統(tǒng)及涌現(xiàn)的新系統(tǒng),決定了數(shù)據(jù)庫必然具有易變特性,如視頻監(jiān)控數(shù)據(jù)、傳感器實時采取的數(shù)據(jù)、產(chǎn)品銷售數(shù)據(jù)等,每時每刻都會產(chǎn)生大量數(shù)據(jù)。
數(shù)據(jù)的易變性(圖3)還表現(xiàn)在數(shù)據(jù)庫應(yīng)用系統(tǒng)中的數(shù)據(jù)更新操作。這需要通過結(jié)構(gòu)化查詢語言SQL 完成數(shù)據(jù)的查詢和數(shù)據(jù)更新,即增加、刪除和修改等操作。
另外,數(shù)據(jù)的變化必須是一種帶約束的變化,需要滿足事務(wù)的相關(guān)要求。該方面涉及事務(wù)的ACID 特性、事務(wù)狀態(tài)及轉(zhuǎn)換等內(nèi)容。
圖2 有組織性特征局部圖
圖3 易變化特征局部圖
數(shù)據(jù)庫應(yīng)用系統(tǒng)可供多個用戶同時使用,見圖4,例如系統(tǒng)開發(fā)維護人員、合法用戶、需要防范的非法用戶等,這涉及數(shù)據(jù)庫的完整性和安全性等內(nèi)容。完整性涉及實體完整性、參照完整性和用戶完整性等。安全性又包含用戶標(biāo)識與鑒別、存取控制、視圖機制、審計和數(shù)據(jù)加密等。
多個(合法)用戶同時訪問同一個數(shù)據(jù)庫應(yīng)用系統(tǒng)時,為了防止發(fā)生操作紊亂,需要采用并發(fā)事務(wù)控制機制。如果并發(fā)事務(wù)控制不當(dāng),可能帶來丟失修改、讀臟數(shù)據(jù)和不可重復(fù)讀等問題,為此需要采用數(shù)據(jù)封鎖方法;而封鎖又涉及鎖的類型,針對上述3 個問題的三級封鎖協(xié)議。進一步地,封鎖協(xié)議并不能徹底解決問題,還需要解決其中的活鎖和死鎖問題。并發(fā)調(diào)度的結(jié)果是否可以接受,這需要檢測相應(yīng)的并發(fā)調(diào)度是否能夠可串行化。另外,并發(fā)控制還涉及兩段鎖協(xié)議、多粒度封鎖等內(nèi)容。
圖4 可共享性特征局部圖
針對一個特定的應(yīng)用,尤其是與互聯(lián)網(wǎng)相關(guān)的行業(yè),往往會快速產(chǎn)生大量數(shù)據(jù)。數(shù)據(jù)庫系統(tǒng)難以及時分析數(shù)據(jù),這就需要大容量的存儲設(shè)備,或采用數(shù)據(jù)異地存儲方式,見圖5。
在大規(guī)模數(shù)據(jù)基礎(chǔ)上,如何實時反饋用戶的需求,是一個需要認(rèn)真考慮的問題??焖俨樵兓蚋聰?shù)據(jù)是滿足用戶需求最直接的方式,而快速查詢主要涉及查詢優(yōu)化問題,該問題包含代數(shù)優(yōu)化和物理優(yōu)化等內(nèi)容。另外,大規(guī)模數(shù)據(jù)的挖掘技術(shù)也是數(shù)據(jù)庫研究中異?;钴S的領(lǐng)域。
為了解決數(shù)據(jù)量集中處理過于耗時費力的問題,分布式數(shù)據(jù)庫系統(tǒng)應(yīng)運而生;隨著技術(shù)的發(fā)展,對于數(shù)據(jù)的查詢等處理出現(xiàn)了局部處理和全局處理兩種形式。這為具有多個不同物理地址的單位提供了一種統(tǒng)一的數(shù)據(jù)管理技術(shù)和手段。
持久存儲(圖6)涉及存儲設(shè)備、故障和數(shù)據(jù)庫恢復(fù)等內(nèi)容。
首先,數(shù)據(jù)庫中數(shù)據(jù)的存儲需要非易失的存儲器,如采用冗余技術(shù)、增加數(shù)據(jù)備份、盡可能減少同一份數(shù)據(jù)同時發(fā)生損壞的概率等,從而實現(xiàn)理論上穩(wěn)定的存儲器。
其次,存儲數(shù)據(jù)可能出現(xiàn)事務(wù)級的、系統(tǒng)級的或介質(zhì)級的故障。為了恢復(fù)各種故障,數(shù)據(jù)庫系統(tǒng)可采用日志、檢查點、轉(zhuǎn)儲和數(shù)據(jù)庫鏡像等技術(shù)。這些不同的冗余技術(shù)能夠進一步防范災(zāi)難性事件的發(fā)生。
圖5 大規(guī)模特征局部圖
圖6 持久存儲特征局部圖
上述各分支形成了數(shù)據(jù)庫系統(tǒng)的一種知識結(jié)構(gòu),其中包含的知識點之間并不孤立,存在著許多內(nèi)在聯(lián)系。例如,事務(wù)與數(shù)據(jù)的變化、多用戶數(shù)據(jù)共享、SQL 語言和數(shù)據(jù)庫恢復(fù)等都有關(guān)聯(lián)。SQL 語言與數(shù)據(jù)的組織性、易變性和數(shù)據(jù)庫的完整性及安全性緊密相關(guān)。諸多的應(yīng)用或者應(yīng)用的發(fā)展變化與數(shù)據(jù)的海量特征和易變性相關(guān)。又如數(shù)據(jù)冗余,與保持無損連接的模式分解及數(shù)據(jù)庫恢復(fù)等內(nèi)容相關(guān)。
基于圖1—圖6 及相應(yīng)分析,繪制數(shù)據(jù)庫原理課程的整體知識點思維導(dǎo)圖見圖7。由于行文篇幅的限制,圖7 省略了第2 節(jié)說明的局部特征細(xì)節(jié)。
圖7 數(shù)據(jù)庫原理知識體系思維導(dǎo)圖
在數(shù)據(jù)庫系統(tǒng)課程的實際教學(xué)過程中,每次可以聚焦于某個具體知識的思維導(dǎo)圖,如概念模型可以由圖8 的思維導(dǎo)圖整體分析。
在假設(shè)現(xiàn)實世界由一些實體和其間的聯(lián)系組成的基礎(chǔ)上,概念模型常常用E-R 圖進行表示。將E-R 圖進一步展開,就涉及基本E-R 圖和擴展E-R 圖?;綞-R 圖包含實體、聯(lián)系和屬性,這3 個要素又可進一步展開。擴展E-R 圖包含超類、子類及兩者之間的聯(lián)系、屬性的繼承關(guān)系等。
圖8 E-R 模型的思維導(dǎo)圖
通過圖8 的系統(tǒng)化整體分析,結(jié)合某些實際應(yīng)用,如教務(wù)管理系統(tǒng),可以更加具體地解讀概念模型:概念模型的哲學(xué)基礎(chǔ)是事物的普遍聯(lián)系性。由此,像歐幾里德在若干公理和公設(shè)基礎(chǔ)上構(gòu)建幾何大廈一樣,概念模型假設(shè)現(xiàn)實世界由實體及實體之間的聯(lián)系組成,在此基礎(chǔ)上對數(shù)據(jù)有效建模,并最終轉(zhuǎn)化成計算機容易處理的方式(如關(guān)系表)。如果聚焦于教務(wù)管理系統(tǒng)中課程、學(xué)生和教師3 個實體,學(xué)生通過選修課程、教師通過講授課程分別建立與課程之間的多對多聯(lián)系。
為了從多個維度刻畫實體,每個實體都需要包含各自屬性;屬性的選擇需要具體問題具體分析。例如,對于學(xué)生實體,教務(wù)系統(tǒng)中一般有學(xué)號、姓名、性別、出生年月(或者年齡)、聯(lián)系方式等;一般地,出生年月是復(fù)合屬性,其他是簡單屬性。如果認(rèn)為家庭和學(xué)校在學(xué)生教育過程中應(yīng)該相互配合,聯(lián)系方式不是單值屬性,而應(yīng)是一個多值屬性:同時有學(xué)生和其監(jiān)護人的信息。考慮到學(xué)生身心健康問題,還應(yīng)加上性格類型(內(nèi)向、外向)等屬性,以便及早地、有偏重地持續(xù)跟蹤學(xué)生的發(fā)展變化。如果準(zhǔn)備找工作,學(xué)生的屬性會包含姓名、性別、身份證號、專業(yè)特長、聯(lián)系方式、興趣愛好等;如果把身份證號看成是復(fù)合屬性,性別可以認(rèn)為是派生屬性。如果考慮教師和學(xué)生之間具有一些共同或類似的屬性時,如姓名,性別和出生年月等,又會涉及擴展E-R 圖的內(nèi)容。
上述分析可知,結(jié)合圖8 的思維導(dǎo)圖,就能更加系統(tǒng)、深入、直觀地解讀一個具體案例的概念模型。
通過對數(shù)據(jù)庫的定義,尤其是對持久存儲、有組織、可共享等幾個限定詞的深入分析,采用思維導(dǎo)圖發(fā)散式地引出數(shù)據(jù)庫原理課程中的重要概念,能夠讓學(xué)生對這門原理性課程產(chǎn)生既形象又持久的理解和記憶,有利于更加深入、系統(tǒng)地認(rèn)知和應(yīng)用。在實際的教學(xué)過程中,每次可以聚焦于某個局部思維導(dǎo)圖,解讀相應(yīng)知識點,本文給出的對數(shù)據(jù)庫課程整體認(rèn)知的分析,在隨后的教學(xué)過程中有待進一步完善。