時間:2022-07-20 23:11:04
開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇數據庫系統概論,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。
數據庫是數據管理的最新技術,是計算機科學的重要分支。數據庫技術不斷地涌現新的研究方向,使得該系列課程已經發展成為內容豐富的數據管理課程群。 數據庫系統概論課程是計算機科學與技術專業以及相關專業的核心課程和必修課程,課程內容構建了一個完整的數據庫系統的框架,從而為進一步學習其他數據管理課程打下堅實的基礎。然而該課程內容豐富,概念眾多,不少知識點或前后重疊或前后不斷地在深度廣度上遞進,形成了復雜的知識網絡,對教師的授課和學生的理解掌握都提出了嚴峻的挑戰。通過對比分析大量國內外相關課程教材和多年的教學研究實踐發現,可以把該課程的章節結構看作縱向結構,課程中散落在各章的相關或重疊講授或遞進擴展的內容看作橫向結構,以貫通式教學法為策略實施教學。本文中的貫通式教學旨在按照課程縱向結構教學的過程中,合理組織和設計橫向結構的知識點,將其貫通于教學的全過程,對橫向知識點的掌握由表及里,由理論到實踐,拉出明確的線條,從而保證學習的清晰、流暢,降低課程學習的難度和內容繁雜帶來的混亂,提高教學效果。
1采用貫通式教學的原因
(1) 課程內容形成復雜的知識網絡。
數據庫系統概論是一門很特別的課程。該課程內容豐富,概念眾多,且不少知識點在前后章節有重疊(并不是簡單的重復)和遞進。孤立地按照章節授課會令學生對相關知識點產生混亂和迷惑的感覺:這個概念不是前面定義過么?這個理論不是前面有過分析么?有的概念隨著課程的推進在不斷被深化、細致化、具體化,如碼的定義;有的理論隨著知識的展開不斷被討論、驗證,一詠三嘆,如完整性等。
(2) 課程的掌握需要學生能將課程內容融會貫通。
一方面知識的掌握由點及面,比如橫向結構的知識點在此章節處是這樣的含義,在整個課程中是怎么樣的?另一方面知識的掌握將由理論貫穿到實際應用,理論與應用相統一,比如知識點在理論章節是怎樣描述的,后續章節又是怎樣實現的?
(3) 課程學時不斷減少,教學內容亟待有效整合。
隨著教學改革的不斷深入,各門課程的教學課時數在不斷減少,以期留給學生更多開放學習時間。貫通教學采用步步深入的方法,有效整合教學內容,在不同章節只解決關于相關知識點的某個問題,前面講過的只用不重復,后面要講的前面不提,有效利用有限的課時去解決問題。
(4) 教學設計充滿迷惑和障礙。
2009年4月17日至19日,教育部全國高校教師網絡培訓中心組織數據庫系統概論課程骨干教師對數據庫系統概論的建設進行了指導性培訓,在最后的教學互動環節,仍然有教師對課程的教學內容如何組織按何種順序講授充滿疑惑。所以,透過課程縱向結構的表象,透徹理解課程橫向結構內容的聯系,教師才能游刃自如地組織教學內容、安排教學進程。
2課程內容的結構分析
數據庫系統概論課程具有明晰的縱向結構和潛在的橫向結構。
分析和研究大量中外教材(部分見參考文獻)[1-10],縱向結構大致相同。典型的情況是將數據庫系統概論課程分成4大部分內容,每部分由具體章節構成。不同的教材每部分內容會各有增減或前后調整。課程縱向結構分析如表1。
分析和研究大量中外教材(部分見參考文獻)[1-10],橫向結構包括的知識點不盡相同(主要是國外的教材通常涉及到更多更細致的內容)[3-5],各知識點在不同章節呈現的深度廣度也不盡相同,有的教材偏重于理論,比如王珊老師的數據庫系統概論[1],而有的教材偏重于應用,比如何玉潔老師的數據庫原理與應用教程[9],但典型的情況如表2分析。
以上分析是主要的例子但并不完全,但從以上的分析已足以見該課程內容的豐富和繁雜。
3貫通式教學的設計與實施
根據以上分析可以看出課程內容似紛繁復雜的網絡,如果只采用經典的按照章節為序的縱向結構方式教學,那么一方面會因為各章內容豐富覺得知識點眾多,另一方面又會因為時時出現似曾相識的知識點而迷惑;一方面會因為前面的一些知識點不能透徹描述而理解不清,另一方面又會因為似曾相識的知識點在后面再度出現而厭倦。在縱向結構的教學過程中始終輔之以滲透橫向結構的貫通式教學,將把該課復雜的網絡結構簡化成縱向和橫向兩條線性結構,消除由于知識點結構復雜造成的學習障礙,降低課程的難度,提高學習的效果。
貫通式教學可以這樣設計和實施:
(1) 分析并明確各橫向結構知識點。整理出所有相關的知識點,明確它們在本課程中不同章節處出現時所承擔的不同作用,所完成的不同功能。
(2) 設計各橫向結構知識點在各章節教學過程中的任務。安排各相關知識點在第幾章的授課中具體講什么內容,講到什么程度。
(3) 橫向結構知識點講課過程中進行回溯。回溯要簡明扼要。學生回憶起學過的內容,教師又同時不必消耗太多課時,溫故知新,溫故求新。
(4) 橫向結構知識點完成時進行總結,為進一步探索指明方向。
(5) 明確學生在每部分學完需要掌握的程度。由于教材的緣故,相關的知識點在描述上難免有部分重復。在學習初期,有些描述學生不能完全看懂,而隨著教學內容的展開和深入,那些似曾相識的內容會讓學生厭煩和懈怠。明確相應進度相關知識點的相應深度,可消除學生的疑慮和困惑。
(6) 課程完成時,分別從縱向結構和橫向結構對課程的內容進行總結。縱向使學生理解掌握課程的內容和遞進思想,橫向使學生掌握各知識點基于課程整體遞進時內容的深化和實現。
(7) 因為講授的內容安排與進度會與教材不一致,所以我們準備了充分的教學輔助手段,如網絡課堂,包括課件、作業和答疑,以提供給學生及時和持續的指導。
4貫通式教學的難點
貫通教學的難點首先在于課程縱向結構和橫向結構的明確。縱向結構不難確定,通常可以使用教材的章節結構,而橫向結構潛伏于各章內容之中,只有對課程進行大量深入的挖掘和分析才能獲得。通過幾年的教學實踐總結有以下幾個難點:
(1) 要求教師熟悉課程中所有教學內容,杜絕邊教邊學的現象。課程應建立合理的教學梯隊,需要有經驗的教師對新任課教師的傳、幫、帶。
(2) 透過表象看本質,不能就教材的安排而拘泥。教材是主要的教學參考書而不是僵化教條的條令。橫向內容安排的深淺詳略不用完全依照使用的教材,而要根據各部分內容展開程度的需要進行安排,這需要對授課內容進行細致的研究。
(3) 貫通教學對教材的內容和結構可能會有調整。從學習的初期看,學生的課程溫習可能不是很順暢,會給學生帶來困惑和疑慮,但長期堅持跟隨教師的授課掌握了課程的學習方法則會事半功倍。
5教學效果總結與評析
(1) 將課程復雜的網絡結構簡化成縱向和橫向兩條線性結構,降低了課程的學習難度,學生學習由難趨易。知識點有打碎有融合。打碎是為了學習的量少,降低難度,融合是為了知識點的融會貫通和有效應用。
(2) 數據庫理論和應用相互促進。橫向結構保證知識點既在理論部分分析討論又在應用部分基于某種具體的DBMS進行實現,知其然知其所以然,增強了學生學習的興趣。
(3) 實現了知識的順利遷移。數據庫理論是廣譜的通用知識點,這種DBMS的功能這樣實現,另外的DBMS勢必主要也包括了這樣的內容,掌握了理論將方便學習和移植,把學習一個DBMS的方法遷移到另一個不同的DBMS上去。這個在學生畢業設計中得到了明顯體現。課程實驗使用SQL Server環境,畢業設計使用Oracle或MySQL或DB2等,通過自學,學生們順利完成了任務。
(4) 學生掌握了一種新的學習方法,從而增強了自主學習能力。沿著教材的縱向結構學習是一種本能,發現知識的橫向結構、提取它,然后以此掌握知識的內涵并應用于實踐則進入了學習的更高一層境界。這種能力,可以用于這門課程,當然也可以用于其他課程;可以用于學習功課,當然也可用于應用實踐。
(5) 形成了一種新的對課程的理解和講授方法。把一門課講給學生不難,吃透一門課不容易,而透徹地教給學生就更不容易。理清課程的本質,融會兩個結構的教學,將對這一類課程的教學帶來新的突破。
參考文獻 :
[1] 王珊,薩師煊. 數據庫系統概論[M]. 4版. 北京:高等教育出版社,2006.
[2] 黃德才. 數據庫原理及其應用教程[M]. 2版. 北京:科學出版社,2006.
[3] C.J.Date. 數據庫系統導論[M]. 7版. 孟小峰,王珊,譯. 北京:機械工業出版社,2000.
[4] Abraham Silberschatz, Henry F. Korth. 數據庫系統概念[M]. 5版. 楊冬青,馬秀莉,唐世渭,譯. 北京:機械工業出版社, 2007.
[5] Patrick O’Neil.Database Principles, Programming and Performance[M]. 2nd.ed. 北京:高等教育出版社,2001.
[6] 葉小平,湯庸,湯娜,等 . 數據庫系統基礎教程[M]. 北京:清華大學出版社,2007.
[7] 施伯樂,丁寶康,汪衛 . 數據庫系統教程[M]. 3版. 北京:高等教育出版社,2008.
[8] 陳志泊,李冬梅,王春玲. 數據庫原理及應用教程[M]. 北京:人民郵電出版社,2002.
[9] 何玉潔. 數據庫原理與應用教程[M]. 2版. 北京:機械工業出版社,2007.
[10] 苗雪蘭,劉瑞新, 宋歌. 數據庫原理及應用教程[M]. 3版. 北京:機械工業出版社,2007.
The Research and Application of Teaching Method in Introduction to Database System
LIN Yin, LU Ying, YANG Chang-chun
(College of Information and Engineering, Jiangsu Polytechnic University, Changzhou 213164, China)
關鍵詞:COM;DCOM;多數據庫系統;分布式
1、前言
隨著計算機網絡技術和分布式計算的飛速發展,越來越多的用戶希望能夠訪問和處理多個不同數據源中的數據。在此情況下,出現了多數據庫系統。多數據庫系統(MuitidatabaseSystem,簡稱MDBS)的研究開始于80年代,至今已經有二十多年的發展歷史,多數據庫系統是多個現存的、自治的、異構的數據庫系統的聯合。多數據庫系統在所有局部數據庫系統之上構成全局系統管理層,提供外部用戶接口,使用戶能實現對異構數據庫的透明訪問。
通過分析發現,目前的多數據系統只是對異地數據庫訪問支持,有很大的局限性,而對多數據庫系統中的事務管理、異構模式消解、全局視圖維護等關鍵技術都沒有提供很好的解決方案。
90年代,網絡技術的發展使組件化程序設計的思想促使人們把多數據庫系統與COM/DCOM結合起來。一方面,可以大大提高系統的可管理性、可維護性、可伸縮性和可集成性等,使多數據庫系統的開發、使用和維護都變得簡單;另一方面,這兩者的結合也為先進的分布式組件對象技術提供了一個廣闊的應用領域。因此,分布式組件對象技術在多數據庫系統領域里得到廣泛應用。
2、COM/DCOM技術
基于對大型軟件開發的困難性、軟件開發的協調性、軟件復用、軟件的互操作性、軟件的跨平臺性等問題的研究,Microsoft提出了COM/DCOM技術,并得到科學實踐的驗證及進一步發展。
COM/DCOM是建立在面向對象技術的基礎之上,是面向對象技術的擴充和發展。它繼承了面向對象技術的優點,克服了面向對象技術的缺點,提供了分布式計算環境。它采用面向對象的多層客戶/服務器計算模型,該模型將分布在網絡上的全部資源都按照對象的概念來組織,為網絡上的大型軟件開發建立全新的技術框架。因此,COM/DCOM是一種構造軟件組件的二進制標準。
2.1COM簡介
COM是一種構造軟件組件的二進制標準,而面向對象技術是組件式設計思想的基礎。它使得組件和客戶端無需任何中介組件就能相互聯系,其規范所定義的組件模型具有面向對象、語言無關性、進程的透明性、可重用性等特點。目前,COM自身得到了很大的發展,己經遍布于Microsoft的各種軟件產品中。
在Windows系統平臺上,一個COM組件或是一個DLL(動態連接庫)文件,或是一個EXE(可執行)文件。一個組件程序可以包含多個COM對象,每一個COM對象可以實現多個接口。它們的關系可展現如圖1所示。
圖1 COM組件、COM對象和COM接口關系
2.2DCOM簡介
DCOM是COM的無縫擴展,它充分利用基于COM的應用、組件開發工具及知識,并把它們轉移到分布式計算的應用領域,實現了不同計算機上的組件對象與客戶程序之間或組件對象之間在網絡上的相互通信,具有平臺無關性、協議無關性、語言無關性、組件位置獨立性和可擴展等優點。它建立在分布式計算環境(DCE)的遠程過程調用(RPC)之上,采用DEC RPC的NDR格式來進行數據分組和傳輸,并利用DEC PC的安全機制進行數據的安全認證和一致性檢查。
DCOM的基本工作過程如圖2所示。
圖2 DCOM的工作過程圖
3、基于COM/DCOM的多數據庫系統結構
隨著COM/DCOM技術的發展及標準化工作的完善,COM/DCOM已成為主流技術,符合COM/DCOM規范的產品也逐漸不斷地被推出并開始被廣為采用。COM/DCOM目前已經是一項比較成熟的分布式面向對象技術,COM/DCOM非常適用于多數據庫系統的有效管理。
本系統模型采用了一種全新的解決方法,在應用服務器中直接提供支持,這種方案才能保證分布式程序的運行效率,特別是在于需要大量數據進行處理的系統相連上尤為明顯。采用本系統模型可以擁有分布計算的支持,可應用服務器支持移動計算工作方式。該模式是數據庫緩存更新的發展,用戶與應用服務器相連并且從應用服務器上獲得數據,然后將緩存在本地的數據更新,可對數據進行各種離線處理和分析,用戶與應用服務器重新連接后,可以一次新的將離線所作的處理更新到數據庫服務器中。
COM組件主要負責Web服務器和數據庫服務器,通過間接調用外部程序或腳本代碼來訪問數據庫,因此可以提供與數據庫相關的動態HTML頁面,或執行用戶查詢并將查詢結果格式轉化成HTML頁面,通過Web服務器返回給用戶瀏覽器。
多數據庫系統的體系結構如圖3所示。
圖3 多數據庫系統的體系結構
4、系統實現
利用Visual C++中的ODBC技術可以極大地減少軟件開發的工作量,提高了效率并增強了軟件的可靠性。ODBC API是由ODBC提供的一組函數調用接口,其主要功能就是將SQL語句發送到目標數據庫,然后處理這些SQL語句返回的結果。下面是通過ODBC API連接數據庫的主要步驟及其所涉及到的重要函數。
4.1連接一個已經配置好的數據源
CDatabasem_database;
If(!m_database.IsOpen())
{If(!m_database.IsOpen(_T(""Test"")))
Assert(""不能打開該數據源"");
}
m_database.Close();
4.2動態連接數據庫
由于與數據庫的連接是通過Cdatabase類對象來實現的,所以可以通過賦予CrecordSet類對象參數m_pDatabase以連接不同數據庫的Cdatabase對象指針,就可以動態地連接數據庫:
void CDB::ChangeConnect()
{Cdatabase*pdb=m_pSet->m_pDatabase;
Pdb->close();
switch(m_id)
{
case 0:
if(pdb->Open(_T(""ES"")))
{AfxMessageBox(""打開失敗"",""檢查ODBC連接"";
exit(0);}
case 1:
if(!pdb->Open(_T(""Motor"")));
{AfxMessageBox(""打開失敗"",""檢查ODBC連接"";
exit(0);
}m_id=0;break;
}
}
4.3動態連接表
表的動態連接可以利用在調用CrecordSe:tOpen()函數時指定SQL語句來實現。
5、結束語
本文提出一種基于COM/DCOM的多數據庫模型。COM/DCOM技術是解決多種異構數據庫環境下的據庫信息處理的一種有效的方法。由于其先進性、可擴展性、可配置性、靈活性、可靠性和先進的多層結構等的優點,它不但可以解決數據庫異構的問題,更是解決操作系統異構的最有效的方法。我們有理由相信組件對象技術將是解決數據庫系統集成的優良方案,在企業集成應用系統中將起到重要的作用,將是數據庫技術的一個新的發展趨勢。
參考文獻:
[1]李瑞軒.多數據庫系統原理與技術[M].電子工業出版社.2005.
[2]王珊,薩師煊.數據庫系統概論(第4版)[M].高等教育出版社.2007.
關鍵詞: 資源整合 異構數據庫 互操作 聯邦式數據庫
1 引言
異構數據庫互操作問題作為數據庫領域的研究熱點和難點課題,在國內外的學術界和工業界都引起了廣泛的關注。自20世紀80年代以來,國外許多公司和科研單位對異構數據庫的集成進行了大量研究,取得了不少成果,但國內對異構數據庫集成的研究還處于開始階段。
2 異構數據庫互操作的概念
異構數據庫(Heterogeneous Database)集成是數據庫技術從完全集中到邏輯集中、物理分布(傳統分布式數據庫)乃至邏輯分布、物理分布(異構數據庫)這一發展過程的結果,也是兼顧已有系統自治性并實現新的數據共享這一現實需求的有效手段。
異構數據庫的異構特征包括兩個級別:系統一級的異構和語言一級的異構,主要體現在以下幾個方面。
(1)計算機體系結構的異構:各個參與的數據庫可以分別運行在大型機、小型機、工作站、PC或嵌入式系統中。
(2)操作系統的異構:各個數據庫系統的基礎操作系統可以是Unix, Windows NT,Linux等。
(3)數據庫管理系統的異構:一種是數據庫概念模式的異構:有層次、網狀、關系和面向對象4種;另一種是數據庫物理模式的異構:指概念模式相同,但數據結構不同,比如Oracle與SQL Server同屬關系型,但結構不同。
異構數據庫互操作的實現包括三個功能要素:(1)為用戶提供功能強大且操作靈活的互操作可視化界面,通過它用戶可以直觀地對多個異構數據庫進行透明訪問;(2)提供高級語言數據庫訪問調用級接口,至于調用級接口的實現層次可由設計者視具體清況而定;(3)支持環境開放性,可能的話還應該支持實現語言開放性。
異構數據庫系統的目標在于實現不同數據庫之間的數據信息資源、硬件設備資源和人力資源的合并和共享。異構數據庫系統集成就是要將數據庫系統的不同,操作系統的不同,操作平臺的不同或者底層網絡的不同進行屏蔽,使得用戶就可以將異構數據庫系統看成普通的數據庫系統,用自己熟悉的數據處理語言去訪問數據庫,如同訪問一個數據庫系統一樣,對其進行透明的操作。
3 實現異構數據庫互操作的途徑
面對異構數據庫的互操作需求,主要從兩個方面同時進行努力:一是建立標準,即建立統一的數據庫規范,消除由于標準的不完善而造成的各數據庫系統間的差異;二是構建異構數據庫互操作平臺,實現對多個異構數據庫的透明訪問。
隨著對數據庫互操作問題的深入研究,基于不同角度,許多研究者提出了可行的異構數據庫互操作途徑,這些途徑在實現互操作的深度、廣度和高度上各不相同,都有各自所適應的特定環境和需求。從異構數據庫的核心思想出發,把實現互操作的途徑歸納為兩大類。
3.1 系統級異構互操作
對于DBMS系統一級異構的網絡環境下的數據庫互操作,主要有四種實現途徑。
(1)數據庫網關(Database Gateway)
數據庫網關是一種中繼器,它能提供應用級的異構數據庫集成的手段。網關的主要作用是轉換和通信。
數據庫網關可以建立比較穩定和透明的數據庫互操作,但是其缺點也較為明顯。諸如不關心如何屏蔽數據庫之間的異構性,不支持事務處理,資源冗余,用戶受限于數據庫廠商,不能任意選擇客戶機平臺及目標數據庫等問題。
(2)公共協議/數據轉換協議技術
公共協議是異構數據庫進行通信時采用的公認的數據協議,即公認的系統間傳遞SQL請求和結果的形式。最常見的協議是ANSI/ISO的關系數據存取(RDA)標準、SGA(SQL Access Group)規范和IBM的分布式關系數據庫結構(DRDA)。
數據庫網關相比,公共協議更具有可擴充性和開放性,能較好地實現異構數據庫的透明訪問、支持多種網絡協議和多種客戶平臺,是實現異構數據庫互操作的有效途徑之一。
公共協議/數據轉換協議的缺點是協議本身的低效率帶來的速度問題。
(3)公共編程接口
公共編程接口包括客戶應用編程界面(CAPI)和服務器應用編程界面(SAPI)。CAPI是一組過程庫,通常駐留在客戶端,通過裝載后端專用的驅動程序訪問不同的數據庫。SAPI提供一個應用編程界面,控制服務器與客戶應用請求和目標數據庫之間的交互。如Microsoft 的ODBC、Oracle的SQL*NET 以及IDAPI。其優點有:由于提供了統一的調用級接口,使用戶免除了應用程序隨數據庫改變而改變的痛苦;通過API可使應用程序直接操縱數據庫中的數據。數據庫訪問API的缺點是:針對每一個數據庫都需要有一個與其對應的驅動程序;由于不同的驅動程序所支持的數據類型和對數據的操作都不相同,其完全透明地訪問異構數據庫的能力有限;實現效率過分依賴于驅動程序,而驅動程序將標準語法轉換成相應數據庫的命令語法要花費大量的時間。
(4)中間件技術(Middle Ware)
中間件是處于應用程序及應用程序所在系統的內部工作方式之間的軟件,它的基本思想是在各后端數據源和前端應用程序之間建立一個抽象層。把應用程序與系統所依附軟件的較低層細節和復雜性隔離開來,使應用程序開發者只處理某種類型的單個API,而其他細節則可以由中間件處理。這樣就使系統對每個不同數據源的操作變成對單一的中間件的操作,而后再對中間件進行異構處理。使用中間件技術解決異構數據庫集成的問題,將會給系統集成帶來很多的好處。這是因為中間件不僅能夠使得前端用戶訪問后端的異構數據庫實現透明化,并且保證了訪問接口的開放性,這樣可以使系統在以后功能上的擴展更加方便。通過中間件來訪問數據庫的另一個好處就是所有的客戶端的請求都發送到了中間件上,減輕了數據庫服務器的負擔,保證了數據庫服務器的性能不會降低。同時,中間件的采用極大地提高了系統的可維護性,在系統內部的某個邏輯發生變化時,只要改變中間層的相應處理程序,前臺用戶界面不需要做任何的改動,這樣就大大降低了系統維護的費用。
3.2 數據結構與語義級異構互操作
目前,對于數據結構和語義一級異構的數據庫互操作的研究有緊密耦合和松散耦合兩種思想,具體體現于多數據庫系統、聯邦數據庫系統和分布式數據庫系統三種方法。
(1)多數據庫系統
所謂多數據庫系統就是一種能夠接受和容納多個異構數據庫的系統,允許各個異構數據庫的“自治性”。多數據庫系統是一個廣義的概念,是相對于如集中式數據庫系統或分布式數據庫系統那種邏輯上具有同一管理系統而言的,它以多元和分布為主要特征。多元是指它多個彼此區別的集中式或分布式數據庫系統;分布則是指數據分布在不同場地的數據庫系統中,由各自的管理系統進行管理。
多數據庫技術的目標是為在多個數據庫之間實現互操作,解決數據庫資源共享找到一種技術途徑。一般采用分布、異構、自治三個特性作為尺度來刻畫多數據庫系統。使用這種方法,用戶需要顯式地指明所要訪問的數據庫。多數據庫系統采用自下而上的方法來實現。
(2)分布式數據庫(Distributed Database)
分布式數據庫的基本思想是拋棄原有的數據庫系統,在網絡環境下建立分布的數據庫系統,在體系結構、事務處理模型等方面重新設計從而解決信息共享與互操作問題。分布式數據庫系統分為同質分布式數據庫和異質分布式數據庫。像 Oracle、Sybase、Informix 等都是同質分布式數據庫系統,這類系統的實現相對來說比較容易一些。異質分布式數據庫管理系統大多是在已有的一些數據庫管理系統的基礎上實現的。
(3)聯邦式數據庫(Federated Database)
聯邦式數據庫系統是網絡技術和分布式數據庫技術發展的必然結果,它是由一組能協調工作,又可以獨立自治的部件數據庫組成。它可以是原先不分布的,又可以是分布的,具有分布性、自治性、異構性三大特性。
聯邦式數據庫與分布式數據庫系統的區別在于:分布式數據庫系統雖然在物理上是分散的,但因為有統一的數據模型及全局數據模式,所以它在邏輯上卻是集中的,因此用戶感覺到的是一個完整的數據庫。顯然,這種系統可用于某個專用領域的系統,但不適于不同領域間的異構系統的集成。相反地,聯邦式數據庫系統是由在不同結點上松散耦合分布的異構成員數據庫構成,各聯邦成員間的一種松散結合。構成聯邦成員的可以是一個集中式數據庫,也可以是一個分布式數據庫,它們可以根據需要(按某種組合)加入聯邦或者根據需要退出聯邦。聯邦式數據庫沒有全局模式,各子系統(即聯邦成員)按自己的需求建立各自的數據模式。其成員之間的數據共享關系,通過由協商確定的輸入/輸出模式來建立,單個成員有權拒絕或允許其它成員結點對它的訪問。因此,它能夠支持多庫系統的分布性、異構性和自治性,使之產生滿意的集成。
異構數據庫的互操作技術使得數據庫在原有技術領域發揮重要作用的同時,在未來新的應用領域也有著重要的影響,如地球觀測系統 EOSDIS、電子商務、保健信息系統、數字出版、協同設計等領域。
參考文獻
[1] 薩師煊,王珊.數據庫系統概論.北京:高等教育出版社,2000.2.
[2] 張水平, 萬映輝等.異構數據庫的集成與互操作. 計算機應用研究, 2000(1).
[3] 鄭振楣, 于戈等編著.分布式數據庫. 北京: 科學出版社, 1998.
[4] 劉艷梅. 基于 COM/DCOM 組件標準實現異構數據庫的聯合使用: [博士學位論文]. 北京:北京理工大學, 2000.
[5] 唐巍, 周俊林, 李曉. 異構數據庫集成方法初探. 計算機應用研究, 1999(8).
[6] 王艷君, 王運格, 吳麗紅. 異構數據庫間數據集成的方法. 煙臺師范學院學報, 1999, Vol.15(4).
關鍵詞:大數據時代;數據庫課程體系;改革;教學模式
數據庫的原理和應用一直以來都是高校計算機專業課程中的重要組成部分,具有較強的理論性和實踐性。隨著大數據時代的到來,大數據技術已經被廣泛應用于學生的生活服務、課程體系開發及課堂教學系統中,這也給以關系數據庫為主導的高校數據庫教學提出了新的挑戰。因此,在這樣的大背景下,我國高校應當與時俱進,對數據庫課程體系進行改革和創新,從而為社會發展培養出更多高素質信息技術人才。可見,加強對大數據背景下高校數據庫課堂體系改革和教學模式創新的研究是非常具有現實意義的。
1大數據背景下數據庫技術類課程體系的改革
1.1數據庫系統
數據庫系統是大數據背景下數據庫技術中的“基礎篇”,因此,高等院校應當增加對數據庫系統講授經典的關系數據模型及相應的數據管理技術的課時,將其作為必修課程,每周必須要安排3個課時。經典數據庫技術主要包括數據庫學科中重要和通用的基礎理論和思路。課程重點應當包括關系數據模型、數據庫邏輯設計、ER模型、查詢優化、數據庫表設計和事務管理等。同時還要簡單地介紹關系代數、函數依賴、規范化的基本理念和思想及SQL語句、視圖、存儲過程、觸發器等基本思想。這些理論知識在學期末采取閉卷考試的方式對學生的掌握情況進行考核。
1.2海量數據分析
在大數據背景下,數據庫管理將面臨著海量的數據,學生必須要學會對這些數據進行分析和處理。因此,高校應當將海量數據分析作為選修課程,每周安排3個課時。NoSQL數據管理技術是對關系型數據管理技術的補充,其中主要包括針對異構海量數據的存儲、查詢及分析等技術,是電子商務、社交網絡和web搜索等新型應用的技術支持,同時這也是大數據背景下數據分析的主要技術。高校可以將NoSQL數據管理技術的應用作為大數據時代數據庫技術的“提高篇”。該項課程應當采取課程和實驗相結合的方式進行教學,在學期末采用實習報告的方式對學生進行考核。
1.3數據庫系統實踐
數據庫是一門理論和實踐相結合的課程,因此,高等院校數據庫課程改革中必須要注重實踐教學。將和數據庫系統概論相對應的實驗課程作為必修課,每周安排2個課時;將和海量數據分析相對應的實驗課程作為選修課,每周安排3個課時。數據庫系統實踐課程可以采取以下方式進行:第一,以關系型數據庫為實驗平臺,在實驗室的計算機上完成,實驗的主要內容包括數據庫的設計、表格的設計、數據的查詢處理、性能測試、事物的管理、視圖以及存儲過程和觸發器等。第二,以分組的形式完成實驗任務,實驗的主要內容包括分布式集群的搭建、Hbase和Hive系統的配置和數據管理、Hadoop系統配置、MapReduce編程模型的應用、海量數據的存儲和查詢及海量數據的分析算法和性能測試等。
2大數據背景下高校數據庫課程體系改革的實施與保障
2.1加強師資隊伍建設
師資隊伍是實施高校數據庫課程體系改革的前提。目前,高等院校的數據庫任課教師大多擅長傳統的關系型數據庫管理技術,但是缺乏對海量數據分析和數據系統實踐的能力,這也使得師資隊伍的建設成為實施數據庫課堂體系改革的主要瓶頸。新的課程體系對于數據庫任課教師的專業能力和水平提出了更高要求。因此,高等院校必須要根據海量數據分析和數據庫系統實踐的教學內容和要求,加強師資隊伍建設。可以聘請企業精英作為講師,也可以通過培訓和自主學習提高現有師資的專業素養,從而提高高校數據庫課程教學的團隊水平。
2.2完善實踐平臺
實踐平臺是實施高校數據庫課程體系改革的基礎。目前,很多的高校計算機專業實驗室都嚴重缺乏可供部署海量數據管理平臺的分布式集群和相應的軟件配置。因此,高等院校應當從實驗課程的角度,通過借鑒“去IOE”的思路(由個人電腦或服務器所構成),配置實驗項目和運行相關軟件系統的硬件平臺,從而滿足學生實踐操作的學習需求。另外,在課程教學過程中,應當使用開源軟件,通過硬件設備為實驗課程的順利開展提供保障,從而不斷完善數據庫實驗教學,提高學生的實踐能力。
3大數據背景下教學模式改革分析
3.1傳統教學模式特點
傳統教育模式中,教師根據授課計劃查閱相關資料及文獻,以確保講課過程的科學性,學生提前預習,從而使教師和學生在課堂上形成一個很好的融合,使授課順暢有序進行。但是傳統教學往往采用一種滿堂灌的教學模式,忽視了學生的主觀能動性,教學模式固定并且單一。從傳統教學過程上來看,教師面對的是幾十人的班級授課,學生學習水平參差不齊,教師只能按照學生的中等水平進行講授,不能將學生的學習水平控制在自己能夠控制的范圍內。這樣會導致水平高的學生認為教師講得過于淺顯而不想聽,水平低的學生會覺得聽不懂也不想聽,教學效率相對較低。
3.2大數據背景下教學模式分析
首先,在大數據時代,學生可以通過在線學習途徑獲取知識,與傳統課堂教學模式相比,在線意味著教育工作者可以提供不受時間和地點限制的教學活動。于是出現了慕課和微課等在線教學平臺,充分利用了網絡的交互特性,支持師生之間、學生與學生之間全天候地在線互動與交流。其次,傳統教學模式中,為了提高教育的公平性和大眾化,教師在固定的場所、在有限的教學時間對很多學生進行標準化、灌輸式教學模式,無法因材施教到每個人,導致人才培養同質化現象非常嚴重,限制了學生創新意識的培養。但是,在大數據背景下的教學模式越來越個性化,教師在教學過程中開始關注學習者個性化培養模式,教師由灌輸式教學模式轉變為助學教學模式,為學習者提供服務和協作交流。最后,大數據背景下,教師不再需要完全按照教案的模式進行授課,而是自己精心設計一些教學資源,比如微課、慕課、反轉課堂,同時可以充分借助一流教學名師的經驗,給學生提供一個更好的教學環境,教師的職能由傳統的以教學為中心轉變為設計、組織、幫助和指導式教學,真正實現線上和線下混合學習,打造匯聚更多優質課程和學習者的學習社區平臺。支持教師采用多種模式進行教學,借助視頻等軟件構建一個學習型社區,給學生提供一個重體驗、強交互的學習環境,提高學生的學習質量和學習效率。
關鍵詞 超大型數據庫;性能優化;動態表分區
中圖分類號TP392 文獻標識碼A 文章編號 1674-6708(2013)82-0222-02
0引言
基于內容的網絡安全審計系統,為了進行事后統計分析和提供證據,需要將用戶指定范圍內所有采集到的數據信息存入數據庫以及相對應的文件中。能夠保存較長時間范圍內的歷史數據信息對于網絡安全審計系統來說是非常重要的,通常情況下需要保存最近三個月的歷史數據信息。
經過前期需求和數據測試分析,1G的電信網絡中每天大約會增加6 000萬個數據文件和數據記錄,這樣其存儲的數據庫規模非常大。數據庫規模的不斷變大,將會導致數據庫系統性能的急劇下降,使得數據庫維護的成本不斷上升,甚至造成周期性的停機。
1表分區
表分區技術就是當數據庫中的某個表變得特別大時,可以根據一定的條件或者規則,將一個大表劃分為多個包含少量數據的分區,每個分區都是一個邏輯實體,是表的一個子集。通過將一個大表拆分成為多個更小的單個表,使得只訪問一小部分數據的查詢執行得更快。另外,對于這些小表可以更快地執行維護任務(如重建索引、數據備份或導入導出等)。
在超大型數據庫中,通常不使用單個分區中的大數據集,而采用經過優化設計的本地分區和訪問策略,能夠使查詢性能提高一倍以上,甚至幾十倍。采用表分區技術的優點:
1)可以極大地縮短查詢時間;
2)減少數據加載時間,改善數據庫的可維護性;
3)解決從活動數據庫中刪除歷史數據時出現的數據修剪問題。
2動態表分區
表分區按照實現的方式不同可以分為靜態和動態兩種。所謂靜態表分區就是在數據庫初始化的時候按照預定格式一次性生成所有分區。而動態表分區則是應用程序根據一定的規則動態創建所需分區,并對這些分區進行動態管理和維護。采用靜態表分區技術的應用程序實現比較簡單,但是可擴展性較差。采用動態表分區技術的應用程序實現要復雜一些,但是開發出來的應用程序可擴展性較好,能夠根據不同的需求進行擴展。
靜態表分區是目前超大型數據庫系統解決方案中普遍采用的一種技術,到目前為止,還未見一種比較完善的基于動態分區的解決方案。另外,將基于動態分區的超大型數據庫系統性能問題的解決方案應用到網絡安全領域是一個需要特別研究的問題。
設計開發的網絡安全審計系統產品定位于100M~1000M以上的高端網絡用戶(兼容中低端用戶),其數據存儲和處理規模非常巨大,為了使得產品具有更好的擴展性能,該系統采用動態表分區技術。
3多表查詢
在采用分區視圖技術實現多表聯合查詢之前必須動態創建一個包含多個成員表的分區視圖。對于超大型數據庫來說,動態創建幾個表的分區索引視圖需要大量的時間。另外,分區視圖技術是通過使用聯合查詢運算符來實現的,很多個大數據量表的聯合查詢性能是比較低的,這將在下面的性能測試中進行說明。
采用臨時表技術則沒有多表聯合查詢的那些限制,實現也比較簡單,性能比執行聯合查詢要好得多,但是產生的事務日志信息比較多。另外,采用臨時表技術的時候還可以利用多表分頁查詢機制來控制每次數據查詢時需要訪問的數據范圍以及返回的記錄數,以提高數據查詢的速度。對于性能要求比較高的超大型數據庫應用程序來說,建議采用臨時表技術來滿足動態分區的數據庫查詢統計的性能要求。
4解決方案
本文采用一種如圖2所示的解決方案,來解決基于動態表分區的網絡安全審計系統超大型數據庫的性能問題,并為開發人員提供獨立于數據庫設計的基于動態表分區的數據庫通用訪問接口。
此方案在普通數據庫應用程序的基礎上增加一個的基于動態表分區的訪問接口的模塊,并對該模塊進行優化。
5結論
由于采取了動態表分區技術并對相關接口進行優化,使得網絡安全審計系統的性能得到了很大提高。
在千兆環境壓力測試中每秒能提交9000條左右的數據記錄,各種數據庫查詢統計操作都能夠得到快速響應,經相同環境下的壓力測試其性能比同類產品都要響應迅速。
參考文獻
[1]求是科技著.SQL Server 2000數據庫管理與開發技術大全[M].北京:人民郵件出版社,2004
計算機基礎教育的本質應該是計算機文化教育,計算機文化教育的目的與核心是為了提高被教育者的計算機文化素質與數字化生存質量。
一、從數據庫應用看計算機基礎課的教學
數據庫技術是信息化社會的重要基礎技術之一,是計算機科學領域中發展最為迅速、應用最為廣泛的重要分支;《數據庫系統應用》也是計算機應用基礎課程的必修科目。
(一)數據庫系統應用的背景:概念、市場及其發展
數據庫可以理解為在一個或多個企業組織中,為多個用戶服務的、在計算機上可運行的、有結構的數據集合。與文件相比,文件是面向單個程序的,而數據庫則是面向整個需求的;數據庫中的數據是有結構的,而文件中各記錄之間是沒有聯系的。傳統意義上,數據庫系統是把有關的硬件、軟件、數據和人員組合起來為用戶提供信息服務的系統。
數據表示可以有不同的抽象層次。在數據庫結構的描述中至少需要有三級抽象層:概念觀點、邏輯觀點和物理觀點。數據模型(DataModel)是數據及其相互關系的代表,而數據及其關系又是關于現實世界的抽象。數據模型既代表了數據的邏輯觀點,同時也代表了數據的概念觀點。三種最流行的數據模型是層次模型、網狀模型和關系模型。在最常用的關系模型中,包含有關系(Relation)、元組(Tuple)、屬性(Attribute)等成分,其中,關系與邏輯記錄值的集合相對應,元組與邏輯記錄值相對應,屬性與數據項、記錄之間的聯系也用關系來表示。那么,什么是好的關系模式?起碼它不該有數據冗余、更新異常、插入異常和刪除異常。這取決于數據依賴的概念,但在許多數據依賴的類型中,最重要的是函數依賴和多值依賴。
數據庫技術的發展,曾使其產品分為文件系統、關系數據庫、對象數據庫以及關系-對象數據庫等四大類,而目前世界上最大的系統軟件市場依然是關系數據庫,雖然它能解決的問題與對象數據庫并不相同,但它們之間大有兼容、融合之勢。未來最大的數據庫市場是支持通用的應用(UniversalApplications),并支持簡單和復雜的數據;同時,一些新的應用將驅動市場,如Web、DigitalFilm、DigitalKiosks和GPS等等。
(二)數據庫系統應用課程教學的回顧:dBase-FoxBASE-VisualFoxPro
微機數據庫管理系統dBaseⅢ曾是數據庫技術中的杰出代表。dBaseⅢ具有關系數據庫的基本特征,程序結構精巧,處理信息能力較強,運行效率較高;它的全屏幕編輯功能,操作簡便;它的人機會話方式,易學易懂;它提供運行的輔助手段,方便用戶,還有它的較強的適應環境的能力,使其應用極其廣泛,因此它獲得了“大眾數據庫”的美稱。自從dBaseⅢ引進我國并成功漢化后,計算機專業人員和經濟、管理等方面的技術工作者,經過幾年的不懈努力,使漢字dBaseⅢ廣泛應用于財務會計、物資、圖書資料、科研項目、學生成績、人事檔案、生產調度、經營計劃、財政稅收、銀行帳目等各個管理部門,建立了無數的小型信息系統,有力地促進了我國經濟的發展和管理現代化的工作,使它成了名副其實的大眾數據庫,也因此隨著IBM-PC淘汰AppleII,dBaseⅢ取代了dBaseII,自然而然地走進了大專院校的課堂。
和dBaseⅢ相比,FoxBASE+更勝一籌:可在UNIX、XENIX等多用戶操作系統下運行;完全兼容dBaseⅢ;運行速度更快;可以使用數組來實現數組和數據庫文件之間的數據交換,以方便對數據庫文件中記錄的操作;可以自定義函數,簡化程序設計;可以保存和恢復屏幕圖像;可以將多個命令文件合并成一個過程文件,減少讀盤次數,提高運行速度;能自動調整內存分配,以便充分利用有效內存,提高速度;擴充了部分命令的功能,新增了若干命令;擴充了一些技術參數的范圍,方便了程序設計。于是伴隨著CPU的換代和DOS的升級,FoxBASE+理所當然地替代了dBaseⅢ。
FoxPro除了兼容性和擴大已有的命令、增加新的命令和函數、減少對用戶的限制外,采用90年代的先進技術,支持鼠標器,使整個系統更易使用和操作。尤其是可將程序偽編譯為非常接近機器語言的中間代碼程序,增快其執行的速度。如果程序經FoxDistributionKit編譯,生成exe文件,就可脫離FoxPro而直接執行。2.0以后的版本加入Rushmore優化技術,使速度顯著提高;面向對象技術的應用使數據庫的設計效果結構清晰、簡單,便于實現OOP;數據庫對象的獨立性、自治性使其便于維護,從而需求變更時程序與數據庫重用率高,修改少等等,也就高于同時期的其它產品。尤其是VisualFoxPro3.0作為第一個正式具有Windows95兼容標志的應用軟件,一個32位的數據庫開發系統,引進了可視編程和面向對象的概念,使用了真正的數據庫概念和多媒體數據,具有更快速開發應用程序、面向對象和客戶機/服務器的強大功能,曾被認為是多年來出現在關系數據庫方面最重要的產品,甚至是一個革命性的軟件產品。既具有Visual系列的功能強大、直觀易用、面向對象等優點又兼具Windows和FoxPro的長處;提供的向導、設計器、生成器等工具,加之從界面到內核的完全漢化,使數據庫的管理變得輕而易舉,跟著Windows淘汰DOS,VisualFoxProForWindows換代FoxBASE也就順理成章了。
但是對于“摩爾規律”作用下的IT世界,發展尤其是永恒的。隨著微機的CPU從8086/8088到PentiumⅢ/Pentium4以及K7/K8……的發展,操作系統由Dos到Windows又到Windows95/98/2000/XP/2003……的升級,程序設計由面向問題到結構化又到面向對象再到可視化,內容由文字到圖文并貌又到多媒體,應用由單機到網絡又到全球互聯網,計算機公共課的教學由Dos-Wps-Lotus123向Windows-Word-Excel轉變,桌面數據庫的情形自然該有本質性的飛躍,尤其是這樣的數據庫技術已不只是被數據庫專家所擁有了。
(三)桌面數據庫系統應用的新概念:Access和Office97/2000/XP
隨著個人計算機的發展和普及,越來越多的人采用數據庫的技術來管理數據、分析數據和獲取信息。所以,編程簡化把數據庫的用戶從傳統的專業編程人員擴大到了所有的計算機用戶。Access的問世和推廣,使它在短短幾年之間即取代了FoxPro在桌面數據庫市場上的統治地位。Access在國際桌面軟件中早已占有了超過半數的市場份額。
Access在1993年問世,是一個完全基于Windows環境的桌面數據庫系統,它是與Windows同步成長起來的。在Access中,微軟加入了一種先進的數據庫機制,即JetEngine。這種機制取代了以前的文件格式的數據庫引擎,為數據庫的技術與應用提供了更廣闊的發展空間。今天的用戶可以在VB、VC以及新版的FoxPro中發現這種數據庫機制。
在編程方面,Access從一開始就致力于把簡化的編程環境和復雜的關系數據庫理論巧妙結合;在市場銷售方面,把Access和Office這樣的提高企業工作效率的易用工具打包一同銷售。
在Access中,智能化的編程環境和高效率的工具實現了有機結合。比如Access97采用了VB5.0的智能編程環境,所以編程風格與VB完全一致。同時與最先進、“全面”的Office集成,使得Access可以直接操作Office中的上千個對象,大大縮短了開發周期和提高了代碼重用率。Access97同時具有較高的適應能力,可以把一個Access97的應用程序用簡單的操作提升到MicrosoftSQLServer等大型客戶/服務器數據庫系統。而且Access采用與MicrosoftSQLServer相同的數據庫引擎,使這種提升變得更為簡單和直接。Access與Office一致的包含Internet/Intranet功能和標準,使用戶數據庫與網絡的結合簡單易行。
早先版本的Access并未能夠完全漢化,所以在用戶編程實踐中,對漢字的操作始終是一個困難。從Access97開始進行了全面中文化,包括內核,所有界面,幫助體系(即Office助手),應用向導,甚至示例應用程序。所以,用戶的使用就更加得心應手。全面中文化的Access包含在Office97/2000/XP……中文專業版中。
一般地,計算機應用基礎課的教學從95年開始已由Dos-Wps-Lotus123向Windows-Word-Excel轉變,數據庫的教學也從FoxBASE換成了FoxProforWindows。似乎總是跟不上技術發展和時代前進的步伐。加上學生已強烈要求學習多媒體制作和Internet技術,所以把計算機應用基礎課的教學開成Windows+Office(2000/XP)則不失為一種好策略。
二、計算機基礎課教學的新嘗試
計算機科技的最大特點是發展極快、應用更廣。鑒于此,《計算機應用基礎》課程就成為各大專院校學生的必修科目;而它的基本內容也就隨著計算機的發展而不斷更新著。從原來的BASIC語言、五筆字型、DOS、WordStar、WPS、Lotus1-2-3以及dBaseⅡ/Ⅲ到早期的Windows3.1/3.2、Word6.0、Excel5.0、FoxBASE/FoxPro又到Windows95/98/2000、Office97/2000……等等。時至今日,WindowsXP和OfficeXP已經風行全球并深入人心,WindowsServer2003……也似排山倒海之勢襲來!由此看來這門課的具體內容還要“進化”,而且似乎還要永無休止地“進化”下去。
(一)現行計算機基礎課教學的主要內容:Windows+Office
通常我們在計算機基礎課程教學的開始,總要談論三個問題:計算機能干什么?我們學什么?怎么學?狹義的答案是:計算機無所不能;我們學Windows和Office;上機。接著是盡可能多地電腦演示,以此來升華學生對電腦知識的學習興趣。
因為Windows時代,計算機操作技術的學習早已不是那么困難,再也無須死記硬背那么多的命令和格式,只需用一個手指點擊鼠標,利用菜單就可以打開一個又一個窗口并在窗口中得到五彩斑斕的世界。可是,這個過程卻很難通過傳統的方法用粉筆在黑板上來講明白。
單就操作系統來說,從Windows3.2到Windows95的飛躍,從Windows95到Windows98的進化,從Windows98到Windows2000的換代,以及從Windows2000到WindowsXP的“體驗”,都使“黑板+粉筆”的教學方式陷于絕境。但總有必要盡可能地把最新的知識和技能傳授給學生。例如學了Windows95,還要講講InternetExplorer和Windows98、學了Office97還要談談FrontPage和Office2000,學了Word,不能不說我們的民族軟件WPS,學了Windows98,還要欣賞一下已成為PC操作系統主流的Windows2000和WindowsXP……等等,還要把各種最新的流行軟件及其應用介紹給學生,如此這般來全面激發學生學習和使用電腦的樂趣,教給學生學習電腦知識的方法,同時也使學生在課堂上所學的知識和本領不至于那么快地“過時”和“淘汰”。
另一方面,過去曾經有不少在《計算機應用基礎》課中學了WPS并考試得了高分的大學生及研究生當畢業找工作打印簡歷時竟因電腦中裝的是Word而一籌莫展,類似的事情似乎比比皆是、無休無止,這說明了我們在計算機基礎教育中存在的一個更重要的桎梏和盲點:計算機文化素質問題。所以,在計算機基礎課程的教學過程中著意培養和提高學生的計算機文化素質和數字化生存的質量才是一項最根本的任務。
實踐證明,現行計算機基礎課程的主要內容Windows和Office,尤其是今天的Windows95/98+Office97、或者Windows2000+Office2000或者WindowsXP+OfficeXP完全可以由學生自己通過學習軟件(如《開天辟地》、《萬事無憂》、《暢通無阻》、《得心應手》、《電腦總動員》……等等)甚至通過教學網絡更甚至Internet來自學掌握,而且這也是華山一條路了。
(二)計算機基礎課程教學的緊要課題:從技術教育向素質教育轉化
鑒于計算機科技遵循“每18個月更換一代”飛速發展的事實以及全球互聯網時代日新月異的網絡文化的進步,在計算機基礎課程的教學過程中,時刻注意計算機文化素質的教育,著力培養學生對計算機科學的新思想、新知識、新技術的理解和自學的能力,以使學生能夠利用計算機來大大提高自己的學習效率及工作效率,甚至用計算機來實現自己的理想;著力培養學生在互聯網時代的倫理精神以及信仰,構成了計算機基礎教育的根本目標。
為了實現計算機文化素質教育的目標,有必要盡可能及時地、全方位地解決學生學習過程中的問題,所以問題的解答就不僅僅局限于課堂上、書本里、甚至校園內。比如通過電子郵件,通過OICQ、QQ、MSN,通過多媒體網絡,甚至通過網站,本著實事求是,實學實用,理論聯系實際的原則,注意反映學科的前沿內容,將思想方法和操作技巧傳給學生。另外還需要鼓勵和幫助學生裝電腦、買電腦、租電腦甚至修電腦,營造電腦學習的環境。這無疑對教師自身的計算機文化素質提出了更高的要求。
“學為人師,行為世范”、“嚴于律己,寬以待人”等思想行為準則在這個時候才更充分地體現出來,真正地潛移默化進日常的計算機教學生活中,不斷學習,不斷充實,不斷進步,跟上時代的步伐,成了教師自己的“數字化生活”。此外,教師還需把諸如遠程教育、語音識別等尖端科技的知識和應用普及給學生,帶領學生,走向時代的前列。
可是,不得不提的是,用電腦來上電腦課,或者用“電腦+投影儀”,在計算機教學過程中是不可替代的,當然最好是在機房里上這些計算機課程。盡管如此,真正的計算機文化素質教育還是要回旋到傳統的模式上。
(三)計算機基礎課程教學的新嘗試:計算機文化概論
關鍵詞:關系模型;關系模式;數據庫系統原理;教學方法
數據庫系統原理的教學既要注重理論也要注重實踐,尤其是要讓學員通過教學及實踐加深對理論知識的理解,并指導實踐[1]。為使學員更好地理解和掌握數據庫系統原理的理論和技術,筆者提出在實際教學中以“關系模型組成及關系模式”為核心,以點成線、以線組面的教學方法,通過所構建的課程主干體系,呈現給學員一個脈絡清晰、前后貫通、左右相連的知識結構。
1以關系模型組成引領基本性質、基本概念和基本操作的教學
關系模型組成是數據庫系統原理開篇教學的核心。圍繞其組成的三要素(單一的數據結構、數據操縱和完整性約束)并以此為始點,從三條線上展開結構的定義、數據的查詢與更新、約束的內容及實現等的教學。這三條線可以構成一個面,既可以展示出相關的教學內容,也可以體現出教學內容之間的相互聯系(如圖1所示)。
1.1關系數據結構(二維表)――數據操縱的基礎和完整性約束的對象
圍繞關系數據結構可以展開關系數據結構的基本組成、基本概念、基本定義和基本性質的教學。關系數據結構(基本表)由元組構成,組成元組的是元組的分量,以此擴展到屬性、碼、維、基數、分量集合、象集笛卡兒積等概念。在了解關系的基本數據結構后,可以結合實例講解關系的基本性質在后續講授SQL語言知識時,將模式、基本表、視圖、索引的定義給學員交待清楚;形成與關系數據結構相關聯的知識信息。在與關系數據庫組成的其他二個要素的聯系上,重點強調關系數據結構為數據操縱奠定了數據基礎并成為完整性約束的對象。
1.2數據操縱――數據集成和獲取的基本途徑
數據操縱這一結點可以從兩方面展開,一是從專門的關系運算和傳統的集合運算的角度介紹數據操縱的基本操作;二是從SQL語言的知識角度講授數據操縱的具體實現。教師在教學中通過實例介紹專門的關系運算和傳統的集合運算的基本概念,結合查詢優化的理論比較不同查詢方法的開銷,使學員建立數據操縱的基本概念,掌握相關的理論知識。教師在講授SQL語言的數據操縱時,介紹查詢的分類和方法、數據更新(插入、修改和刪除)的具體實現、完整性約束與數據操縱的聯系及對數據操縱的影響。教師在教學方式上采用概念講解、實例展現和現場操作的形式,使學員對所學的知識有更加清晰、直觀的感受。
1.3完整性約束――保障數據正確性與安全性的重要手段
完整性約束是關系模型組成的第三個要素。該要素涵蓋實體完整性、參照完整性和用戶定義完整性三方面內容。教師在教學中重點突出兩個規則(實體完整性規則和參照完整性規則)、兩個定義(參照關系和被參照關系)和一個實現(用戶定義的完整性);強調完整性約束的重要性和實際意義。在這條線上進一步延伸可以與數據庫的安全性控制、在屬性及元組上的約束條件檢查和違約處理、觸發器等相關知識聯系起來,使之構成一個整體。
2以關系模式為核心展現關系數據理論的知識
關系數據庫理論是數據庫系統原理課程教學的重點和難點,其內容涉及的概念、定義、定理、推理較多,同時在教學中要求學員能夠運用相關的理論知識解決在數據庫應用設計中遇到的實際問題。為了在整體上建立關系數據理論的基本知識結構,在實際教學中,我們從關系數據結構出發,分析組成數據結構的屬性、屬性間的聯系類型以及其間的內在關系,給出關系模式的基本形式和關系數據理論知識的聯系結構(如圖2所示),并由此引申出相應的定義、概念和方法。教師以分析關系模式的屬性間的三種對應(一對一、一對多、多對多)關系為基礎,探討函數依賴,講授其的概念和知識,并通過具體實例的分析將各種范式的內涵及運用方法呈現出來。以函數依賴集為基礎,系統介紹公理系統、函數依賴集的閉包、屬性集的閉包、最小覆蓋等知識及其相關應用。以屬性集和函數依賴集為基礎,講述模式分解的等價定義及其分解方法。教學探索的實踐表明,圍繞關系模式展開關系數據理論的教學能夠使學員加深知識間的相互聯系,有利于對知識的理解,為重點、難點知識的教學開辟了一條有效的途徑[2-3]。
3以關系數據庫的構造實踐關系數據庫的設計
以關系數據庫的構造實踐關系數據庫的設計是數據庫教學的重要實踐環節。在數據庫應用實踐教學環節中,我們針對學員的具體情況采用構建基本模式、提出基本要求、分析潛在問題、尋找解決方案的方法,力求幫助學員在實踐中運用所學理論知識,解決實際問題。
教學中我們以SQL Server2000作為實踐平臺,要求學員在幾個侯選題目中任意選擇其一進行設計實現。例如在學員信息管理系統題目中我們提出了該系統的基本模式(如表1-3所示)。
學員基本信息包括:學號、姓名、性別、出生日期、民族、籍貫、所屬班級。
學員專業信息包括:專業、本學期所修課程。
學員成績信息包括:課程、成績。
要求系統具備以下基本功能:
① 設置專業及該專業對應的課程;
② 設置指定專業對應的班號;
③ 設置指定班號的學員記錄;
④ 統計和查詢學員成績;
⑤ 查詢學員成績單。
在實踐前,學員已經對關系數據的理論知識有了一定的了解,如何將課堂所學的知識真正地應用到實踐中,則需要學員上機進行實踐。實際情況是大部分學員根據題目要求設計了如表1、表2、表3所示的信息表(表中代表主碼)。
在系統功能的實現時,學員會發現在連接查詢過程中系統會報錯。我們引導學員依據數據模式,從完整性角度分析產生錯誤原因。首先考察實體完整性。開始設計時學員大多采用學號、專業、課程作為三張表的主碼,但在數據輸入時發現對于學員專業信息表(表2)僅將“專業”作為主碼并不能滿足實體完整性約束,因為專業并不能唯一的確定元組,故設置“課程”同時為主碼。同理,設置學員成績信息表(表3)中的“成績”也為主碼。按照實體完整性規則的規定,這幾個主碼滿足實體完整性的要求,均不為空;其次考察參照完整性,以上3個基本表在實體范疇內是存在聯系的,每個學員都是學習某一確定專業,而且相同專業本學期所修課程都是一致的。在以學員基本信息表為主表的情況下,學員專業信息表并不能滿足參照完整性的條件。進一步分析,假定同一個班的同學都是相同的專業方向,則學員所屬班級和專業之間存在聯系。為解決參照完整性的問題,我們引導學員對系統的基本模式進行補充和修改。在發現問題所在后,有的學員很快就提出了增加班級專業信息表(表4)并修改學員成績信息(表5)的解決方案,構造出了如圖3所示的參照關系圖。
通過實踐教學環節,學員對數據庫的基本概念、基本要素等內容有了較深刻的理解,在設計數據庫時能較為全面的考慮各基本表的定義以及它們之間的聯系。通過數據庫實例的練習,使學員也體會到了將數據庫中的文件分散存儲帶來的好處,以及如何通過對不同硬盤讀寫提高數據庫訪問的速度[4]。
4結語
本文簡要總結了在數據庫系統原理課程教學中所采用的以“關系模型組成及關系模式”為核心的教學方法,并在實踐教學環節中通過“構建基本模式、提出基本要求、分析潛在問題、尋找解決方案”開展教學實驗,收到了較好的教學效果。隨著數據庫系統的不斷發展變化,數據庫系統原理課程的教學內容也會不斷更新,這也會促使我們在教學工作中不斷探索和改進教學方式、方法和手段,以適應新的發展變化的要求[5]。
參考文獻:
[1] 鄭月齋,韓雙霞,丁霞軍. 關于數據庫規范化理論教學的思考[J]. 吉林教育,2009(2):23-23.
[2] 劉艷霞,張靜. 數據庫系統原理精品課程建設實踐[J].科技信息,2009(16):11-11.
[3] 王珊,薩師煊. 數據庫系統概論[M]. 4版. 北京:高等教育出版社,2006:169-197.
[4] 楊俊紅. SQL Server數據庫應用教程[M]. 北京:中國水利水電出版社,2008:1-20.
[5] David M.Kroenke. 數據庫處理:基礎、設計與實現[M]. 7版. 北京:電子工業出版社,2001:3-26.
Investigation of the Database Systems Teaching Based on Model and Relationship of the Formation
LÜ Ming, WANG Ping
(College of Mechatronics and Automation, National University of Defense Technology, Changsha 410073, China)
2013年元月安徽省高等教育自學考試課程安排表(本科):
時間 專業
星期六(1月12日)
星期日(1月13日)
上午(9:00--11:30)
下午(2:30--5:00)
上午(9:00--11:30)
下午(2:30--5:00)
金融(020106) 財務管理學(00067)
中國近現代史綱要(03708) 線性代數(經管類)(04184) 英語(二)(00015) 概率論與數理統計(經管類)(04183) 基本原理概論(03709) 經濟學(020115) 政治經濟學(財經類)(00009)
中國近現代史綱要(03708) 線性代數(經管類)(04184) 英語(二)(00015) 概率論與數理統計(經管類)(04183) 基本原理概論(03709)
會計(020204)
中國近現代史綱要(03708) 線性代數(經管類)(04184) 英語(二)(00015) 概率論與數理統計(經管類)(04183) 基本原理概論(03709) 市場營銷(020208)
中國近現代史綱要(03708) 線性代數(經管類)(04184) 企業會計學(00055)
英語(二)(00015) 概率論與數理統計(經管類)(04183) 基本原理概論(03709) 企業財務管理(020213)
中國近現代史綱要(03708) 線性代數(經管類)(04184) 英語(二)(00015) 概率論與數理統計(經管類)(04183) 基本原理概論(03709) 工商企業管理(020202) 財務管理學(00067)
中國近現代史綱要(03708) 線性代數(經管類)(04184) 英語(二)(00015) 概率論與數理統計(經管類)(04183) 基本原理概論(03709) 律師(030108)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 法律(030106)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 監所管理(030109)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 行政管理學(030302) 財務管理學(00067)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 公安管理(030401)
中國近現代史綱要(03708) 大學語文(04729) 英語(二)(00015) 基本原理概論(03709) 餐飲管理(020119)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 教育學(040108)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 秘書學(050104)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 漢語言文學(050105)
唐詩研究(09073) 中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 英語(050201)
中國近現代史綱要(03708) 基本原理概論(03709) 新聞學(050305)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 勞動和社會保障(020232)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 物流管理(020229) 政治經濟學(財經類)(00009)
中國近現代史綱要(03708) 線性代數(經管類)(04184) 英語(二)(00015) 概率論與數理統計(經管類)(04183) 基本原理概論(03709) 經濟法概論(財經類)(00043) 機電一體化工程(080307)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 工業工程(082205)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 計算機及應用 (080702) 數據結構(02331)
數據庫系統原理(04735) 中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 計算機網絡(080709)
高等數學(工本)(00023) 中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 計算機信息管理(082208) 數據結構導論(02142)
數據庫系統原理(04735)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 計算機通信工程(080708) 數據結構(02331) 數據庫系統原理(04735) 高等數學(工本)(00023) 中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 建筑工程(080806)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 護理學(100702)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 林業生態環境工程與管理 (090609) 政治經濟學(財經類)(00009)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 數學教育(070102)
概率論與數理統計(一)(02010)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 物理教育(070202)
理論力學(二)(02040) 中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 化學教育(070302)
化學史(10859)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 政治教育(040203)
現代西方社會思潮述評(10862)
中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 歷史教育(060102)
歷史教育學(00775) 中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 地理教育(070702)
人文地理學概論(02094) 中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 體育教育(040302)
體育教育理與方法(10874) 中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 生物教育(070402)
植物生理學(02662) 中國近現代史綱要(03708) 英語(二)(00015) 基本原理概論(03709) 英語教育(050206)
中國近現代史綱要(03708) 基本原理概論(03709)
漢語言文學教育(050113) 中學作文教學(10878) 唐詩研究(09073) 中國近現代史綱要(03708) 中學語文教學法(04579) 英語(二)(00015) 基本原理概論(03709) 心理健康教育(040110)
青少年心理學(06052)
中國近現代史綱要(03708) 學校管理心理學(06180)
英語(二)(00015) 基本原理概論(03709) 藝術設計(050437) 現代藝術設計史(10885) CIS設計(10879) 視覺流程設計(10884) 設計心理學(04462) 旅游管理(020210) 旅游專業英語(06120)
導游業務(00195)
中國近現代史綱要(03708)
基本原理概論(03709) 廣告學(050302)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 調查與分析(020121) 政治經濟學(財經類)(00009)
中國近現代史綱要(03708) 線性代數(經管類)(04184) 概率論與數理統計(經管類)(04183) 基本原理概論(03709) 日語(050202)
中國近現代史綱要(03708)
英語(一)(00012) 基本原理概論(03709) 電子商務(020216)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 對外漢語(050140)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 人力資源管理(020218)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 軟件工程(080720)
高級語言程序設計(一)(00342)
中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 移動商務技術(080787)
高等數學(工本)(00023) 中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 嵌入式技術(080789)
高等數學(工本)(00023) 中國近現代史綱要(03708)
英語(二)(00015) 基本原理概論(03709) 采購與供應管理(020282) 政治經濟學(財經類)(00009)
關鍵詞:數據庫;高職教育;教學改革
1 引言
《數據庫技術與應用》課程是高職計算機類專業學習數據庫技術的一門專業核心平臺課程,擔負著培養學生數據庫技術的基礎知識和SQL語言基本應用能力,為信息系統和網站開發建立穩固的后臺基礎。而高職院校主要培養技術應用型人才,作為計算機技術開發離不開數據庫,因此要培養滿足企業需求的計算機技術人才,數據庫技術必不可少。如何合理的組織課程教學,它是全體高職師生所面臨的重要難題。數年的實踐教學經驗表明,對數據庫課程構建以“實踐為主,理論夠用”的原則,拋開傳統的章節式的理論講解,通過項目案例式的教學模式,在項目實現過程中逐步牽引出相關理論知識的講解,教學效果提高較為明顯。
2 課程設置
根據高職教育的特色和要求,課程設置應本著“以就業為導向、以崗位為依據、以能力為本位”的理念,根據崗位需要,模擬企業工作模式對學生進行專門的崗位技能培訓,使學生在充分了解企業需求的同時,既學習到知識技能,又獲得相關的行業認證資格證書。依據崗位系列課程構建原則和基本思路,廣泛開展市場需求調研,確立了本課程的職業崗位:數據庫管理員,針對數據庫管理員這一崗位進行能力分析,又確定了該崗位所需的知識能力體系:數據庫知識技能、數據庫應用技術、數據庫開發技術。
3 課程實施
在課程實施過程中,依據所確立的知識能力體系,在教學方法上改變了由原來的主要針對教師的“教”切換到現在的主要針對學生的“學”和“做”,相比傳統的教學授課模式,在該課程的內容組織、教學方法和考核方法上都有了突破和創新。
3.1內容組織
根據該課程設置所確立的知識能力體系結構內容的三大模塊:數據庫基礎理論、數據庫應用技術及數據庫開發技術,如表3-1所示。不難看出各模塊所涉及的知識點不同,但總體也基本涵蓋了數據庫技術課程里相關理論,通過對各模塊的講解及實現,使學生能夠對數據庫技術理論中常用和必用的知識有個比較系統的了解和掌握。
表3-1 數據庫課程模塊設計
模塊設計教學內容設置技能訓練項目數據庫基礎理論1.數據庫技術概論SQL數據庫安裝與認識2.關系數據庫數據庫及表的建立、操作及關聯3.關系SQL語言數據庫的查詢(含SQL命令)4.數據庫設計方法數據庫建模工具的使用數據庫應用技術1.數據庫管理SQL Server數據庫及表的建立、維護2.數據庫應用數據庫的多表連接查詢、視圖及游標3.數據庫編程數據庫的編程、存儲過程、觸發器4.數據庫保護數據庫安全性控制、完整性控制數據庫開發技術1.數據庫開發(后臺)2、數據庫開發(前臺)SQL Server圖書數據庫開發綜合實訓
數據庫應用系統設計綜合實訓
在各教學模塊實施過程中,盡量引導學生密切聯系實際,把與學生相關的圖書管理、學生成績管理等案例進行分析統計,這樣能讓學生在學習知識時產生親切感,避免由于抽象帶來的厭學情緒。
3.2 教學方法
(1)采用合作學習教學法,可以增強學生學習的興趣。合作學習教學法是教師依據學生的能力、所具備的知識等相關因素,將學生分成小組形式進行教學的一種方法。小組成員彼此相互合作,互相激勵,主動積極地參與學習,從中既可以建構出自己對學習內容的系統知識,又能夠完成整個小組的共同目標。這樣,不僅增強了學生學習的興趣,還提高了他們與人合作的能力。適用模塊:數據庫基礎理論。
(2)采用案例教學法,可以提高理論知識的教學效果。由于數據庫原理及應用課程的理論部分比較抽象難懂,學生在學習的過程中容易產生厭倦的心理。而案例教學法符合人們的認知規律,它注重學生的創新能力和解決實際問題能力的培養,它能循序漸進地引導學生掌握相應的知識和技能,可大大縮短教學情景與實際情境的差距。適用模塊:數據庫應用技術。
(3)采用任務驅動教學法,可以培養學生的自學能力。任務驅動教學法的基本過程可分為提出任務、分析任務、學生自主學習、交流討論、解決問題及總結經驗等幾個階段。其核心是在教師精心為教學設計的任務驅動下,學生通過各種學習形式完成任務。在此過程中,學生始終處于主體地位,教師是學生學習的組織者、服務者和導航者。其結果是學生既學到了知識,又培養了分析問題、解決問題的能力,更重要的是提高了學生的自學能力。適用模塊:數據庫開發技術。
3.3 考核方法
本課程是一門專業課,考核著重基本知識和應用能力兩方面,考核方法分期末閉卷和課程設計兩個環節組成,所占比重均為50%。
* 閉卷考試:要求學生在學完本課程以后,能比較系統的了解數據庫的基礎理論知識,為以后更深入的學習數據庫相關課程打下良好的基礎。
* 課程設計:是高職課程教學的要求,該課程是計算機專業非常重要的實踐性環節之一,學完后進行一次全面的綜合練習,以SQL Server 2005作為后臺數據庫,以所學的任一門高級語言作為前臺開發工具,完成一個小型數據庫應用系統的設計開發。本課程設計主要在于鞏固學生對數據庫基本原理和基礎理論的理解,掌握數據庫應用系統設計開發的基本方法,進一步提高學生綜合運用所學知識的能力。
4 結語
數年的教學實踐結果表明,采用新的案例項目式的教學方法,學生的學習目標更加明確,學習興趣普遍得到提高,補考率明顯下降,學到的知識更加實用,但是,這種新的教學方法也存在一定的難度和不足,如對教師的教學水平和實驗實訓場所硬件設備都提出了更高的要求,校企合作需要更加深入,才能培養出更加優秀的人才。
參考文獻:
[1] 數據庫系統概論,薩師煊,王珊,2000.3,高等教育出版社
【關鍵詞】數據庫技術 信息管理系統
1 數據庫技術
隨著我國網絡技術的不斷發展,信息技術建立在網絡技術的基礎之上也獲得了良好的發展,對于企業來說,能夠通過使用數據庫技術實現文件傳輸,并且還可以使用數據庫技術進行數據信息的存儲,網絡技術的發展為發展數據庫技術的產生與發展打下了堅實的基礎。因此,當前大部分企業的網絡數據已經不再局限于數據處理,有很大一部分的企業會對這些數據進行分析,并且充分使用這些數據進行再次利用或者是做決策,因此,數據庫技術就是在這種情景以及情況之下產生了。
1.1 人工階段
大概是上個世紀五十年代,世界上才剛剛開始出現計算機,但當時計算機無論軟件,還是硬件等設備的發展都不成熟,尚未實現計算機實現存儲功能。在那個時期,人們使用的存儲辦法大部分還是使用紙帶進行記憶,因為在那個時候,計算機軟件以及硬件方面都還沒能實現使用存儲卡記憶。在那個時候也沒有專門的軟件系統進行數據處理以及管理,而且程序員在進行程序設計的時候既要規定具體數據的結構,還要進行設計和數據存儲有關的物理結構,這種物理結構主要包含了存儲結構以及輸入輸出方式,還有存取方法等等方面。
1.2 文件系統階段
在文件系統階段,首先人們對文件進行記錄、存數,然后將記錄、存儲的數據文件通過管理系統進行集中管理。這個操作系統能夠給使用者提供便捷的使用界面。當發生數據及程序分離的情況時,能夠順利剝離二者,從而達到降低數據及程序間相互依賴的依存度,并且數據和程序之間是呈現獨立狀態的。實現用戶程序及數據分開存儲,存儲路徑各不相同,并且每個應用程序都可以實現數據共享,便捷、高效的完成了以單個文件為基礎單位的一種數據共享。
1.3 數據庫系統階段
目前使用最廣的就是數據庫系統階段,我國現今大部分的企業在數據存儲及管理都是以計算機系統為媒介。截至目前,我國的數據庫系統也經歷一段相當長時間的發展了。企業使用的數據庫系統基本能夠滿足數據存儲及辦公需要,方便辦公及時查詢,而且還能夠針對這些數據進行分析,為企業創造更大的使用價值,及經濟效益。當前,在我國企業中使用范圍人數最多的便是數據庫系統。
2 數據庫技術在管理信息系統中的作用
2.1 數據組織
數據庫功能存儲指的是將來自于不同數據庫的數據分開進行存儲,并且在存儲的實現是根據不同的主題對數據進行組織以及歸類的。我們都知道數據庫技術具有強大的信息存儲以及信息歸類和劃分功能,使用數據庫技術能夠在按照既定的程序之下對數據作出抽取以及轉換,還有裝載等等作用。
2.2 打破MIS “業務處理”的局限性
以往運用MIS數據處理技術大多是為了完成“業務處理”,但在世界范圍內隨著科技的不斷興旺發達,計算機技術以及數據庫技術都發生著翻天覆地的變化,改變了先前只是使用MIS技術進行業務處理的局面。采用此類技術可以進行數據分類,充分改變了原先數據庫不能夠改變原來計算機內部存儲的數據進行歸類的缺陷。這一系統能夠充分實現數據信息歸類,這對于使用數據的人來說顯得更加的便捷和有序,通過歸類搜尋就可以找到自己所需要的信息,對信息進行利用以及分析都顯得更加便利。因此,數據庫技術作為系統分析過程當中最明顯的優勢,這同時也是進行系統分析的基礎。
2.3 數據庫技術有效解決數據組織與存儲
數據庫技術的應用解決了以往計算機信息處理過程中繁瑣的數據組織與存儲問題。譬如在數據統計活動中,如果利用數據庫技術就可便捷的實現存儲數據的共享工作,同時又可有效規避數據漏洞的發生,并能夠改善數據檢索處理速度。
以現代化互聯網絡信息技術為基礎,并采用數據庫技術系統,能夠實現越來越多的領域都開始依靠使用數據庫進行數據存儲以及記錄,越來越多的領域都開始依賴數據庫技術。這些都在不斷推進數據庫技術不斷發展。
3 數據庫技術發展的趨勢
3.1 面向對象的數據庫技術將成為下一代數據庫技術發展的主流
當前,我們在日常工作中采用的數據庫技術已經出現不能滿足經濟發展的問題,也根本沒辦法通過數據庫系統功能來描述當今現實社會,但是目前使用計算機技術系統的人們已經接受了先前使用數據庫技術理念以及習慣,現在很難改變原有的習慣去接受新知識和新方法,因此,今后這種專門針對用戶的數據庫技術發展前景將十分廣闊。
3.2 面向對象的數據模型
關系數據庫將會成為未來用戶使用數據庫技術的標準,在不久的未來,這種面向特定對象的關系數據庫將展現出不同類型不同復雜程度的數據模型,可以因為這種數據庫技術還沒有形成一個統一的統計模型以及計算理論公式,因此總體來說都是缺少數據邏輯的,僅能選擇平面數據模型進行處理。為更好地應對未來數據庫技術發展的需要及適應發展趨勢,因此要對平面數據進行邏輯處理,同時還需要對數據進行立體邏輯處理。
3.3 非結構化數據庫的建立
非結構化數據庫與結構化數據庫最大的不同點在于能夠實現對原本建立的數據庫結構進行突破,解決數據定義受限制的情況,并且能夠完成重復字段及子字段行加工變成長字段,然后進行數據處理,對數據進行存儲和管理。
4 小結
隨著數據、計算機硬件及數據庫等的發展及應用,實現了數據庫技術與系統的產生與發展。數據、計算機硬件、數據庫等為數據庫技術的發展提供了技術支持平臺;隨著數據庫的不斷應用與發展,反作用于數據、計算機硬件,同時也促進了它們的進步。伴隨著互聯網絡的出現,擴大了數據庫的使用范圍,給數據庫技術應用領域帶來了快速發展的契機與挑戰。
參考文獻
[1]西爾伯沙茨(Silberschatz.A.).計算機科學叢書:數據庫系統概念(原書第6版)[M].機械工業出版社,2012.
[2]王珊,薩師煊.數據庫系統概論(第4版)[M].高等教育出版社,2006.
[3]加西亞-莫利納(Hector Garcia-Molina)、Jeffrey D.Ullman、Jennifer Widom,楊冬青.數據庫系統實現(第2版)[M].機械工業出版社,2010.
關鍵詞:數據庫;優化;規范;查詢
隨著數據庫技術的發展,越來越多的數據庫應用系統和信息管理系統被開發、使用。而很多數據庫應用系統和信息管理系統中,查詢功能的要求是必不可少的,也是所占的比例最大的。數據庫的查詢功能優化規劃好的話,整個系統的效率會有很大的提高,由此可見查詢優化規劃的重要性。要想整個數據庫的查詢得到很大程度的優化,就必須要從需求、設計到使用都要進行規劃和技術改進。
一、詳細的需求分析是優化的基礎
數據庫設計是從系統的需求出發,結合軟硬件相關要求,設計合理能否符合系統需要功能的數據的集合。數據庫設計中最基本的是數據庫模式的設計。但是,設計一個完善的比較優秀的數據庫系統往往是一個反復且周期性的過程。
二、利用規范化是優化的關鍵
在數據庫的設計周期中,需要進行邏輯結構設計,這個時候必須進行關系模式的規范化來達到優化數據庫的目的。所謂關系規范化就是按統一標準對關系進行優化,從而最大程度上能消除關系數據庫中的數據冗余、添加、刪除和修改等操作異常以提高關系的質量,不好的關系操作時會有3個問題:1.冗余度大;2.插入異常;3.刪除異常。
規范化理論認為,關系中的各屬性是相互關聯的,他們互相依賴、互相制約,構成一個結構嚴謹的整體。按照屬性間相關的關系,可大概分類為函數依賴、多值依賴和連接依賴。其中按照函數依賴又可分為部分依賴、完全依賴和傳遞依賴,根據這三類函數依賴等可得到規范化等級主要有5種,即第1范式(1NF),第2范式(2NF),第3范式(3NF),BC范式(BCNF)和第4范式(4NF),滿足這些范式條件的關系模式可在不同程度上避免冗余、插入和更新異常問題。
那么如何進行規范化呢?具體做法是:確定數據依賴,按照數據依賴的理論,逐一分析這組關系模式,確定他們屬于第幾范式,進行模式分解,逐步消除非主屬性對碼的部分依賴和傳遞依賴。在分解過程當中必須遵守以下2條原則:
1.無損分解原則無損分解就是在關系分解過程中,既不丟失數據也不增加數據,同時還能保持原有的函數依賴。
2.相互獨立原則所謂獨立是指分解后的新關系之間相互獨立,對一個關系內容的修改不應該影響到另一關系。
三、規范化的收尾工作
關系分解必須從實際出發,并不是范式等級越高,分解得越細就越好。若把關系分解得過于瑣碎,雖然對于消除數據冗余和更新異常等有好處,但在進行查詢操作時往往又需要進行鏈接,降低查詢效率。相反的若是范式等級太低,雖有利于查詢,但會造成相關數據冗余、更新異常等情況。因此我們應該根據實際應用進行相關范式的設計。
四、查詢使用中的優化技術
應用項目的實施中,許多程序員在利用一些前端數據庫開發工具開發數據庫應用程序時,只注重用戶界面的華麗,并不重視查詢語句的效率問題,導致所開發出來的應用系統效率低下,資源浪費嚴重。因此,如何設計高效合理的查詢語句就顯得非常重要。
實際應用中許多程序員認為查詢優化是DBMS的任務,與程序員所編寫的SQL語句關系不大,這是錯誤的。一個好的查詢計劃往往可以使程序性能提高數十倍。查詢計劃是用戶所提交的SQL語句的集合,查詢規劃是經過優化處理之后所產生的語句集合。在實際的數據庫產品的高版本中都是采用基于代價的優化方法,這種優化能根據從系統字典表所得到的信息來估計不同的查詢規劃的代價,然后選擇一個較優的規劃。雖然現在的數據庫產品在查詢優化方面已經做得越來越好,但由用戶提交的SQL語句是系統優化的基礎,很難設想一個原本糟糕的查詢計劃經過系統的優化之后會變得高效,因此用戶所寫語句的優劣至關重要。下面重點說明改善用戶查詢計劃的常用解決方案。
1.合理使用索引
索引是數據庫中重要的數據結構,它的根本目的就是為了提高查詢效率。現在大多數的數據庫產品都采用IBM最先提出的ISAM索引結構。索引的使用要恰到好處,其使用原則如下:
在經常進行連接,但是沒有指定為外鍵的列上建立索引,而不經常連接的字段則由優化器自動生成索引。
在頻繁進行排序或分組的列上建立索引。
在條件表達式中經常用到的不同值較多的列上建立檢索,在不同值少的列上不要建立索引。比如在雇員表的“性別”列上只有“男”與“女”兩個不同值,因此就無必要建立索引。如果建立索引不但不會提高查詢效率,反而會嚴重降低更新速度。如果待排序的列有多個,可以在這些列上建立復合索引(compoundindex)。
2.避免或簡化排序
應當簡化或避免對大型表進行重復的排序。當能夠利用索引自動以適當的次序產生輸出時,優化器就避免了排序的步驟。
3.消除對大型表行數據的順序存取
在嵌套查詢中,對表的順序存取對查詢效率可能產生致命的影響。比如采用順序存取策略,一個嵌套3層的查詢,如果每層都查詢1000行,那么這個查詢就要查詢10億行數據。避免這種情況的主要方法就是對連接的列進行索引。還可以使用并集來避免順序存取。
4.避免相關子查詢
一個列的標簽同時在主查詢和where子句中的查詢中出現,那么很可能當主查詢中的列值改變之后,子查詢必須重新查詢一次。查詢嵌套層次越多,效率越低,因此應當盡量避免子查詢。如果子查詢不可避免,那么要在子查詢中過濾掉盡可能多的行。
5.避免困難的正規表達式
LIKE關鍵字支持通配符匹配,技術上叫正規表達式。但這種匹配特別耗費時間。例如:SELECT*FROMcustomerWHEREzipcodeLIKE“98___”即使在zipcode字段上建立了索引,在這種情況下也還是采用順序掃描的方式。如果把語句改為SELECT*FROMcustomerWHEREzipcode>“98000”,在執行查詢時就會利用索引來查詢,顯然會大大提高速度。
6.使用臨時表加速查詢
把表的一個子集進行排序并創建臨時表,有時能加速查詢。它有助于避免多重排序操作,而且在其他方面還能簡化優化器的工作。
7.盡量不要使用or使用or會引起全表掃描,將大大降低查詢效率。
8.字段提取要按照“需多少、提多少”的原則
避免“select*”,盡量使用“select字段1,字段2,字段3........”。實踐證明:每少提取一個字段,數據的提取速度就會有相應的提升。提升的速度還要看您舍棄的字段的大小來判斷。
五、結語
數據庫查詢優化是一項綜合性工作,受到各種各樣因素的制約,有些要求往往是彼此矛盾的。因此設計者必須根據實際情況,綜合應用上述技術,在基本合理的總體設計的基礎上,對數據庫查詢做一些優化調整,力求最大限度地提高操作效率,減少異常等,滿足用戶各種各樣的要求,實現數據庫的查詢優化設計。
參考文獻:
[1]薩師煊.數據庫系統概論[M].北京:高等教育出版社,2000
[2]王能斌.數據庫系統原理[M].北京:電子工業出版社,2000
關鍵詞:SQL;優化策略;數據庫性能;謂詞
中圖分類號:TP301.6文獻標識碼:A
文章編號:1004-373X(2010)04-152-02
Optimization of SQL Query
ZHANG Min1,2
(1.Northwest University,Xi′an,710069,China;
puter Faculty Working Office,Xi′an Fanyi University,Xi′an,710105,China)
Abstract:Database performance issue has been the decision-makers and technical staff of the focus of common concern,affecting database performance is an important factor in the low-SQL query efficiency.In order to improve the implementation of database application system efficiency,from analysis of the process of query processing relational database query optimization techniques to start the discussion,pointing out that the relational database query optimization as a general principle.Optimization strategy in several studies,in time and space to improve the performance of the system,to a certain extent to improve efficiency of the query.
Keywords:SQL;optimization strategy;database performance;predicate
0 引 言
查詢是數據庫中最基本、最常用、最復雜的操作。在數據庫的管理信息系統中,查詢操作是所有數據庫操作中所占據比重最大的操作。當數據庫系統積累到一定程度,若查詢時采用單條順序掃描,那么掃描一遍所有的記錄可能就得花上幾十分鐘,甚至幾小時,這樣的系統就失去了現實的使用價值。采取什么樣的查詢策略,使查詢時間降為幾分鐘或者幾秒鐘,就是這里需要研究的查詢優化問題。
1 優化原理[1]
查詢優化力圖找出給定表達式等價,但執行效率更高的一個表達式,一個查詢往往會有許多實現方法,關鍵是如何找出一個與之等價的且操作時間又少的表達式,查詢優化關注的問題是怎樣省時、省空間以及效率高。優化的核心問題是盡可能減少查詢中各表的參與加工的數據量,從而達到優化時間和空間的目的。
2 SQL優化的方法
2.1 模糊匹配的避免
LIKE關鍵字支持通配符匹配,技術上稱為正則表達式。但這種匹配特別耗費時間,盡量避免使用模糊匹配。例:
SELECT*FROM student WHERErxscoreLIKE′4′
即使在rxscore 字段上建立了索引,在這種情況下也還是采用順序掃描的方式。
可改寫為:
SELECT*FROM student WHERE rxscore>′400′
這樣,在執行查詢時就會利用索引來查詢,顯然會大大提高速度。
2.2 邏輯表達式的等價變換
由于執行引擎對各種謂詞的處理方法不同,因此把邏輯表達式重寫成等價的且效率較高的表達式是提高查詢效率的有效方法,同時也是切實可行的[2]。通過查閱大量的文獻資料以及大量的實驗,分析了RDBMS執行引擎對各種謂詞執行效率的不同,總結出以下幾種邏輯表達式轉換規則:
2.2.1 將多個OR連接的表達式轉化為ANY表達式
當條件表達式中同層次上出現由連接詞OR連接的表達式,并且OR所連接的表達式的左表達式相同且謂詞符號也相同時,那么可以將這些表達式合并為一個右表達式用ANY來描述的表達式。例:
rxscore>400 OR rxscore>score+50 OR rxscore>score×2
可改寫為:
rxscore>ANY(400,score+50,score×2)
2.2.2 將ANY或ALL轉化為簡單的比較表達式
當謂詞的右表達式為ANY或ALL的形式,并且ANY(ALL)包含的各表達式均有固定值,并且可以比較大小,則可根據謂詞符號 (僅限于比較大小的操作符 ) 將ANY(ALL)重寫為簡單的比較表達式。例:
x>ANY(100,200,300)可改寫為:x>100;
x>ALL(100,200,300)可改寫為:x>300
2.2.3 將BETWEEN…AND轉化為AND連接的表達式
可以把由 BETWEEN expr1 AND expr2的形式重寫為用AND連接的兩個表達式,效率往往有一定的提高。例:
rxscore BETW EEN 300 AND 400
可改寫為:
rxscore>=30 AND rxscore
2.2.4 將IN謂詞表達式轉換為OR連接的謂詞表達式
例:年齡IN(20,30,40)
可寫為:年齡=20 OR年齡=30 OR 年齡=40
以上提到的4類謂詞重寫規則均有其特定的條件,在條件滿足的情況下才可以使用。對于簡單謂詞的重寫,每條規則提高的效率可能不太明顯,但如果查詢語句的WHERE條件同時使用多條規則進行重寫時,效率的提高將非常可觀。
2.3 子查詢合并
子查詢合并是將某些特定的子查詢重寫為等價的多個表的連接操作。子查詢合并的作用在于能使查詢語句的層次盡可能地減少,從而可提高查詢的效率。子查詢合并的一般規則為:
(1) 如果外層查詢的結果沒有重復,即SELECT子句中包含主碼,則可以合并其子查詢,并且合并后的SELECT子句前應加上DISTINCT標志;
(2) 如果外層查詢的SELECT子句中有DISTINCT標志,那么可以直接進行子查詢合并;
(3) 如果內部子查詢結果沒有重復元組,則可以合并。
例:查詢選修002號課程的學生基本信息。
用子查詢的方法如下所示,例:
SELECT student.sno,sname,age FROM student WHERE sno IN(SELECT sno FROM sc WHERE cno=′002′)
可改寫為:
SELECT student.sno,sname,age FROM student,sc WHERE student.sno=sc.sno AND cno=′002′
2.4 用集合運算來代替邏輯運算
0R在嵌套查詢中,表的順序存取對查詢效率可能產生致命的影響,避免這種情況的方法就是對連接的列進行索引。例如兩個表:student(sno,sname,age)和sc(sno,cno,score)。如果兩個表要做連接,就要在“sno”這個連接字段上建立索引。還可以使用并集來避免順序存取,盡管在所有檢查列上都有索引,但某些形式的WHERE子句強迫優化器使用順序存取。下面的查詢將強迫對student表執行順序操作:
SELECT*FROM student WHERE sno>′23005′AND sno
OR xb=′計算機系′
雖然在sno和系別名上都建有索引,但是在上面的語句中優化器還是使用順序存取的方法掃描整個表。因為這個語句要檢索的是分離的行的集合,所以應該改為如下語句:
SELECT*FROM student WHERE sno>′23005′AND sno
UNION SELECT*FROM student WHERE xb=′計算機系′
2.5 多表連接優化
最能體現查詢復雜性的就是多表連接,多表連接操作往往要耗費大量的CPU時間和內存,因此多表連接查詢性能優化往往是SQL優化的重點與難點[3]。
2.5.1 充分利用連接條件
在某種情況下,兩個表之間可能不只一個的連接條件,這時在WHERE子句中將連接條件完整的寫上,有可能大大提高查詢速度。例:
SELECT SUM(A.AMOUNT) FROM A,B WHERE
A.CARDNO=B.CARDNO SELECT SUM(A.AMOUNT) FROM A,B WHERE A.CARDNO=B.CARDNO AND
A.ACCOUNTNO=B.ACCOUNTNO
這里,第二句將比第一句執行快得多。
2.5.2 先篩選后連接
當查詢多個數據表時,要先過濾后再連接。例:
SELECT*FROM A,B WHERE A.INTID=B.INTADID AND A.INTID>1 AND YEAR(B.DATDATE)=2500
SELECT*FROM A,B WHERE A.INTID>1 AND YEAR(B.DATDATE)=2 500 AND A.INTID=B.INTADID它們的執行效率相差很大。第一個查詢語句首先將兩個數據表按照用戶ID進行連接,然后再將符合條件的記錄篩選。由于兩個數據表進行連接時記錄有些是以后還要篩選掉的,這顯然會占用更多的時間,且多個數據表連接是笛卡兒積運算,消耗的時間會隨著記錄個數的增加很快地增長。第二個查詢語句克服了這個缺點,首先篩選出符合條件的記錄,減少了進行連接的記錄個數,然后再執行連接查詢,大大提高了查詢效率。
3 結 語
查詢優化要抓住關鍵問題,對于數據庫應用程序,重點在于如何提高SQL的執行效率。在數據庫的開發和維護過程中,查詢的優化設計可以提高系統性能,對于數據量大的數據庫系統尤為重要。以上介紹的幾種優化策略使查詢在時間和空間上提高了系統的性能,在一定程度上提高了查詢效率。
參考文獻
[1]王珊,薩師煊.數據庫系統概論[M].4版.北京:高等教育出版社,2006.
[2]丁寶康,董健全.數據庫實用教程[M].2版.北京:清華大學出版社,2003.
[3]范劍波,張曉云.網絡數據庫技術與應用[M].西安:西安電子科技大學出版社,2004.
[4]劉志成,彭勇.數據庫系統原理與應用[M].北京:機械工業出版社,2007.
[5]羅運模.SQL Server數據庫系統基礎[M].北京:高等教育出版社,2006.
[6]宋瀚濤,李新社.數據庫編程與應用[M].北京:電子工業出版社,1998.
[7]史嘉權.數據庫系統概論[M].北京:清華大學出版社,2006.