999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數據庫系統原理UBase綜合訓練項目的設計與實施

2008-01-01 00:00:00馮向萍張太紅
計算機教育 2008年6期

摘要:本文針對目前數據庫原理課程實踐教學中存在諸多弊病,設計了數據庫系統原理的UBase綜合訓練項目,該項目對于系統地鍛煉學生的實踐能力和動手能力具有一定的啟發指導作用。

關鍵詞:數據庫;UBase項目;實踐教學

中圖分類號:G642

文獻標識碼:B

文章編號:1672-5913(2008)06-0039-02

在數據庫原理課程教學中,實踐教學具有特別重要的地位。然而傳統實踐教學模式存在諸多弊病,改革勢在必行。我院在此認識的基礎上,設計了數據庫系統原理UBASE綜合訓練項目,通過完成UBASE綜合實驗進一步提高學生的實踐動手能力。

1UBase項目簡介

UBase項目是一個綜合性很強的設計開發項目,在完成整個項目的過程中將涉及到以下10門課程的相關知識,包括“數據結構”、“數據庫系統原理”、“SQL語言”、“數據庫系統實現”、“C程序設計”、“C++程序設計”、“軟件工程”、“編譯原理”和“Linux操作系統”等課程。

UBase項目引導學生掌握設計開發一個名為UBase的數據庫管理系統的方法,學生將親手開發一個單用戶、可以執行一些簡單SQL查詢的DBMS。通過該項目的實踐,可以讓學生弄明白DBMS的組成結構,也會明白執行查詢時DBMS內部究竟發生了什么?

為了幫助學生順利完成項目,在實驗開始之前,我們提前提供了UBase DBMS的最頂層和最底層模塊。最頂層模塊為解析器,用于對SQL查詢的解析并調用下層相應的功能以實施各種關系操作;最底層模塊為磁盤的I/O層,用于從磁盤讀數據頁和向磁盤寫數據頁,這里的磁盤是指UNIX文件系統。

2UBase的體系結構

UBase的體系結構如圖1所示,頂層的解析器和底層的磁盤的I/O層管理由教師提供,由學生負責完成中間的五部分。

圖1UBase的體系結構

3開發環境

UBase項目使用C++在Linux平臺下完成。編譯時在Makefile文件中加上CXXFLAGS = -g -Wall(表示打開所有警告)選項,可以讓C++在編譯時進行很多檢查,從而減少運行時錯誤。編輯工具采用vi源程序編輯器;程序編譯和連接工具選用make;編寫測試程序的腳本語言用perl;使用purify跟蹤內存錯誤的工具;使用gdb作為調試工具;使用cvs版本作為控制工具。

4UBase項目的實驗內容設計

UBase項目分為五個部分。第一部分實現緩存管理模塊,第二部分實現在頁上存儲變長記錄的類,第三部分實現堆文件,第四部分實現數據字典和一些應用工具,第五部分實現一些關系操作符。UBase項目的目標是實現一個迷你數據庫管理系統(UBase),雖然其功能遠比不上商業DBMS,但確實可以執行一些相當有用的查詢。

4.1磁盤空間管理模塊

UBase數據庫管理系統的最底層為磁盤I/O層。該模塊為UBase上層提供創建文件;刪除文件;打開文件;關閉文件;在文件中分配磁盤頁;回收文件中磁盤頁;讀文件中磁盤頁;向文件寫磁盤頁和取文件首頁頁號的功能,該模塊包括2個類:一個為文件類(class File),另一個為數據庫類(class DB)。該模塊的具體實現(源代碼)由教師提供,學生可以直接使用,但要求學生必須仔細閱讀文檔及源代碼,了解該實現的細節有助于完成項目的其他部分。

4.2緩存管理模塊

緩存管理模塊要為UBase數據庫管理系統實現一個緩存管理器。由于數據庫本身的大小通常為可用內存的100到1000倍,在特定時刻,內存中只能存放數據庫的一小部分,緩存管理器就是用來控制哪些頁應該駐留在內存中。每當UBase的上層模塊發出數據頁請求,緩存管理器必須檢查請求的頁是否已經在緩存池。如果在,緩存管理器只需簡單地返回該頁的指針;如果不在,緩存管理器要騰出一幀(如果該幀已臟,就必須先將其寫入磁盤),然后將請求的頁從磁盤讀入到內存中騰出的幀。由于緩存池通常包含上千幀(大型數據庫管理系統在內存中分配上GB的緩存)。每次頁請求都順序搜索一遍緩存池會影響性能,解決的辦法是用溢出桶散列表跟蹤每個緩存幀的狀態。

UBase項目的緩存替代策略采用給幀加Love/Hate標記的算法和時鐘算法,其效果類似LRU和MRU。

緩存管理器包含三個類:

(1) BufMgr類,緩存管理器的主類。

(2) BufHashTbl類,用來形成映射文件及頁號到緩存池幀號的散列表。

(3) BufDesc類,用來跟蹤每個緩存幀的狀態。

BufMgr類只有一個實例。BufMgr類的一個關鍵組成部分就是緩存池本身,是用幀數組實現的。BufHashTbl類也只有一個實例,該實例將是BufMgr類的一個私有數據成員。假設緩存池總共包含N個幀,則BufMgr類將擁有另外一個私有數據成員,他是由包含N個BufDesc類實例的矢量組成的。

除了以上的類和類的實例,還有一個“未釘住的”(unpinned)緩存池幀的雙向鏈表。“未釘住”是指當前沒有被數據庫管理系統上層對象使用的幀,因而是可以被緩存管理器交換出內存的犧牲品。“釘住的”(Pinned)頁是永遠不能被選中為替代對象的。這個雙向鏈表是通過把BufDesc類的所有實例鏈接在一起而實現的,指向該雙向鏈表兩端的指針是BufMgr類的私有數據成員。

4.3頁上存儲變長記錄的類

在UBbase的第二部分,要求實現一個page類。頁在數據庫中用來存放記錄,同時也是磁盤和緩存池交換數據的單位。緩存池在項目的第一部分實現,一頁可以存放1到多條變長記錄,記錄是按插槽結構存儲的。在這一部分,Page類的定義已經提供,要求學生通過代碼完成對Page類的插入、刪除、更新記錄,得到下一條記錄、當前記錄等具體操作。

4.4堆文件

UBase項目第三部分要實現一個堆文件管理器,用于提供文件的掃描功能、過濾功能(查找功能)、記錄插入功能及記錄的刪除功能等。堆文件層包括三個主要的類:FileHdrPage類,通過目錄頁(頁號的數組)實現堆文件結構;HeapFile類,實現記錄的插入和刪除功能;HeapFileScan類(從HeapFile類繼承而來),實現文件的掃描功能和過濾功能(查找功能)。

4.5數據字典和一些應用工具

項目的第四部分將實現UBase一些前端命令和數據庫應用工具,同時還要實現UBase的數據字典表的管理。為了幫助學生實現UBase前端命令,我們事先為學生提供了一個解析器來解析用戶命令和SQL命令(一個子集)。該解析器從標準輸入讀入一行命令,解析該行命令并調用適當的后臺函數進行處理。

4.6關系操作符

在UBase項目的第五部分,要實現查詢、插入和刪除操作的功能。查詢包括選擇、投影及連接算法,完成創建數據庫、新建表,查看表結構、向表中插入記錄、刪除表中的記錄、修改表中的記錄、查詢表中的記錄、刪除表結構、刪除數據庫等基本功能。

5測試程序的設計

在UBase項目的每一部分,都設計了測試程序,通過運行可執行的測試程序可以檢查學生完成目標的準確性。

6評分標準

學生完成項目的某個部分后,必須提交源代碼。實驗課教師將檢查源代碼,編譯、運行和測試程序的準確性。每部分的評分標準如表1所示:

7UBase項目的實施效果

數據庫原理UBase項目設計完成之后,考慮到本科學生實際動手能力和對知識理解深度的欠缺,先由新疆農業大學計算機與信息工程學院的6名研究生和11名本科生具體實施,完成學生用UBase系統的框架設計之后,將UBase項目作為計算機科學與技術042班和信息管理與信息系統042班共144名學生的數據庫系統原理實驗課的必修作業。現已完成教師用UBase項目的完整系統和UBase項目的實習手冊,并開設了UBase項目的學習網站和學習論壇,供學生和教師在線交流。經過一年多的實踐,UBase項目在學生中收到預期的效果,鍛煉了學生的動手能力和實踐能力,也加深了學生對相關理論知識的理解,提高了學生學習理論知識的興趣。

參考文獻

[1] 瞿中. 數據庫教學方法改革的探索與實踐[J]. 黑龍江高教研究,2006,2(142):113-114.

[2] 胡軍,夏英,王國胤. “賽課結合”在數據庫原理實踐教學中的探索[J]. 實驗室研究與探索,2007,26(12):267-269.

主站蜘蛛池模板: 国产黑丝一区| 少妇极品熟妇人妻专区视频| 亚洲无码在线午夜电影| 丁香综合在线| 亚洲综合在线网| 国产日本欧美在线观看| 一区二区午夜| 久久国产成人精品国产成人亚洲| 人人澡人人爽欧美一区| 亚洲侵犯无码网址在线观看| 国产免费人成视频网| 亚洲日韩国产精品综合在线观看| 国产综合精品一区二区| 免费不卡在线观看av| 国产成人一二三| 免费看av在线网站网址| 久久国产高潮流白浆免费观看| jizz在线观看| 在线观看免费黄色网址| 日韩欧美国产精品| 手机看片1024久久精品你懂的| 日本久久免费| 婷婷色中文| 日韩精品欧美国产在线| 亚洲欧美综合精品久久成人网| 色香蕉影院| 国产精品成人免费综合| 欧美天堂在线| 女同久久精品国产99国| 一级毛片不卡片免费观看| 91免费片| 国产麻豆福利av在线播放| 国产成人综合亚洲网址| 亚洲成a人片77777在线播放| 青青操视频在线| 九九热精品在线视频| 欧美午夜在线观看| 亚洲综合中文字幕国产精品欧美| 久久黄色小视频| 精品国产美女福到在线直播| 噜噜噜久久| 欧美成人一区午夜福利在线| 国产精品成人AⅤ在线一二三四| 亚洲AV成人一区二区三区AV| 欧美日韩精品一区二区在线线| 三上悠亚一区二区| jizz国产在线| 亚洲精品男人天堂| 欧美天堂在线| 亚洲国产精品日韩av专区| 麻豆精选在线| 国产尤物视频网址导航| 永久免费精品视频| 园内精品自拍视频在线播放| 久久人人97超碰人人澡爱香蕉| 欧美视频二区| 国产成人精品免费av| 亚洲欧洲一区二区三区| 九九热精品视频在线| 高清无码手机在线观看| 真人高潮娇喘嗯啊在线观看| swag国产精品| 国产精品va| 国产SUV精品一区二区6| 97一区二区在线播放| 国产剧情一区二区| 成人毛片在线播放| 亚洲国产精品久久久久秋霞影院| 国产爽爽视频| 国产自无码视频在线观看| 国产小视频a在线观看| 欧美色视频网站| 免费高清自慰一区二区三区| 在线免费a视频| 五月激情综合网| 日韩成人午夜| 97色伦色在线综合视频| 日韩成人在线一区二区| 手机永久AV在线播放| 亚洲三级视频在线观看| 国产裸舞福利在线视频合集| 国产日韩av在线播放|