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

數(shù)據(jù)庫(kù)系統(tǒng)原理UBase綜合訓(xùn)練項(xiàng)目的設(shè)計(jì)與實(shí)施

2008-01-01 00:00:00馮向萍張?zhí)t
計(jì)算機(jī)教育 2008年6期

摘要:本文針對(duì)目前數(shù)據(jù)庫(kù)原理課程實(shí)踐教學(xué)中存在諸多弊病,設(shè)計(jì)了數(shù)據(jù)庫(kù)系統(tǒng)原理的UBase綜合訓(xùn)練項(xiàng)目,該項(xiàng)目對(duì)于系統(tǒng)地鍛煉學(xué)生的實(shí)踐能力和動(dòng)手能力具有一定的啟發(fā)指導(dǎo)作用。

關(guān)鍵詞:數(shù)據(jù)庫(kù);UBase項(xiàng)目;實(shí)踐教學(xué)

中圖分類號(hào):G642

文獻(xiàn)標(biāo)識(shí)碼:B

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

在數(shù)據(jù)庫(kù)原理課程教學(xué)中,實(shí)踐教學(xué)具有特別重要的地位。然而傳統(tǒng)實(shí)踐教學(xué)模式存在諸多弊病,改革勢(shì)在必行。我院在此認(rèn)識(shí)的基礎(chǔ)上,設(shè)計(jì)了數(shù)據(jù)庫(kù)系統(tǒng)原理UBASE綜合訓(xùn)練項(xiàng)目,通過(guò)完成UBASE綜合實(shí)驗(yàn)進(jìn)一步提高學(xué)生的實(shí)踐動(dòng)手能力。

1UBase項(xiàng)目簡(jiǎn)介

UBase項(xiàng)目是一個(gè)綜合性很強(qiáng)的設(shè)計(jì)開(kāi)發(fā)項(xiàng)目,在完成整個(gè)項(xiàng)目的過(guò)程中將涉及到以下10門(mén)課程的相關(guān)知識(shí),包括“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)庫(kù)系統(tǒng)原理”、“SQL語(yǔ)言”、“數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)”、“C程序設(shè)計(jì)”、“C++程序設(shè)計(jì)”、“軟件工程”、“編譯原理”和“Linux操作系統(tǒng)”等課程。

UBase項(xiàng)目引導(dǎo)學(xué)生掌握設(shè)計(jì)開(kāi)發(fā)一個(gè)名為UBase的數(shù)據(jù)庫(kù)管理系統(tǒng)的方法,學(xué)生將親手開(kāi)發(fā)一個(gè)單用戶、可以執(zhí)行一些簡(jiǎn)單SQL查詢的DBMS。通過(guò)該項(xiàng)目的實(shí)踐,可以讓學(xué)生弄明白DBMS的組成結(jié)構(gòu),也會(huì)明白執(zhí)行查詢時(shí)DBMS內(nèi)部究竟發(fā)生了什么?

為了幫助學(xué)生順利完成項(xiàng)目,在實(shí)驗(yàn)開(kāi)始之前,我們提前提供了UBase DBMS的最頂層和最底層模塊。最頂層模塊為解析器,用于對(duì)SQL查詢的解析并調(diào)用下層相應(yīng)的功能以實(shí)施各種關(guān)系操作;最底層模塊為磁盤(pán)的I/O層,用于從磁盤(pán)讀數(shù)據(jù)頁(yè)和向磁盤(pán)寫(xiě)數(shù)據(jù)頁(yè),這里的磁盤(pán)是指UNIX文件系統(tǒng)。

2UBase的體系結(jié)構(gòu)

UBase的體系結(jié)構(gòu)如圖1所示,頂層的解析器和底層的磁盤(pán)的I/O層管理由教師提供,由學(xué)生負(fù)責(zé)完成中間的五部分。

圖1UBase的體系結(jié)構(gòu)

3開(kāi)發(fā)環(huán)境

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

4UBase項(xiàng)目的實(shí)驗(yàn)內(nèi)容設(shè)計(jì)

UBase項(xiàng)目分為五個(gè)部分。第一部分實(shí)現(xiàn)緩存管理模塊,第二部分實(shí)現(xiàn)在頁(yè)上存儲(chǔ)變長(zhǎng)記錄的類,第三部分實(shí)現(xiàn)堆文件,第四部分實(shí)現(xiàn)數(shù)據(jù)字典和一些應(yīng)用工具,第五部分實(shí)現(xiàn)一些關(guān)系操作符。UBase項(xiàng)目的目標(biāo)是實(shí)現(xiàn)一個(gè)迷你數(shù)據(jù)庫(kù)管理系統(tǒng)(UBase),雖然其功能遠(yuǎn)比不上商業(yè)DBMS,但確實(shí)可以執(zhí)行一些相當(dāng)有用的查詢。

4.1磁盤(pán)空間管理模塊

UBase數(shù)據(jù)庫(kù)管理系統(tǒng)的最底層為磁盤(pán)I/O層。該模塊為UBase上層提供創(chuàng)建文件;刪除文件;打開(kāi)文件;關(guān)閉文件;在文件中分配磁盤(pán)頁(yè);回收文件中磁盤(pán)頁(yè);讀文件中磁盤(pán)頁(yè);向文件寫(xiě)磁盤(pán)頁(yè)和取文件首頁(yè)頁(yè)號(hào)的功能,該模塊包括2個(gè)類:一個(gè)為文件類(class File),另一個(gè)為數(shù)據(jù)庫(kù)類(class DB)。該模塊的具體實(shí)現(xiàn)(源代碼)由教師提供,學(xué)生可以直接使用,但要求學(xué)生必須仔細(xì)閱讀文檔及源代碼,了解該實(shí)現(xiàn)的細(xì)節(jié)有助于完成項(xiàng)目的其他部分。

4.2緩存管理模塊

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

UBase項(xiàng)目的緩存替代策略采用給幀加Love/Hate標(biāo)記的算法和時(shí)鐘算法,其效果類似LRU和MRU。

緩存管理器包含三個(gè)類:

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

(2) BufHashTbl類,用來(lái)形成映射文件及頁(yè)號(hào)到緩存池幀號(hào)的散列表。

(3) BufDesc類,用來(lái)跟蹤每個(gè)緩存幀的狀態(tài)。

BufMgr類只有一個(gè)實(shí)例。BufMgr類的一個(gè)關(guān)鍵組成部分就是緩存池本身,是用幀數(shù)組實(shí)現(xiàn)的。BufHashTbl類也只有一個(gè)實(shí)例,該實(shí)例將是BufMgr類的一個(gè)私有數(shù)據(jù)成員。假設(shè)緩存池總共包含N個(gè)幀,則BufMgr類將擁有另外一個(gè)私有數(shù)據(jù)成員,他是由包含N個(gè)BufDesc類實(shí)例的矢量組成的。

除了以上的類和類的實(shí)例,還有一個(gè)“未釘住的”(unpinned)緩存池幀的雙向鏈表?!拔瘁斪 笔侵府?dāng)前沒(méi)有被數(shù)據(jù)庫(kù)管理系統(tǒng)上層對(duì)象使用的幀,因而是可以被緩存管理器交換出內(nèi)存的犧牲品?!搬斪〉摹?Pinned)頁(yè)是永遠(yuǎn)不能被選中為替代對(duì)象的。這個(gè)雙向鏈表是通過(guò)把BufDesc類的所有實(shí)例鏈接在一起而實(shí)現(xiàn)的,指向該雙向鏈表兩端的指針是BufMgr類的私有數(shù)據(jù)成員。

4.3頁(yè)上存儲(chǔ)變長(zhǎng)記錄的類

在UBbase的第二部分,要求實(shí)現(xiàn)一個(gè)page類。頁(yè)在數(shù)據(jù)庫(kù)中用來(lái)存放記錄,同時(shí)也是磁盤(pán)和緩存池交換數(shù)據(jù)的單位。緩存池在項(xiàng)目的第一部分實(shí)現(xiàn),一頁(yè)可以存放1到多條變長(zhǎng)記錄,記錄是按插槽結(jié)構(gòu)存儲(chǔ)的。在這一部分,Page類的定義已經(jīng)提供,要求學(xué)生通過(guò)代碼完成對(duì)Page類的插入、刪除、更新記錄,得到下一條記錄、當(dāng)前記錄等具體操作。

4.4堆文件

UBase項(xiàng)目第三部分要實(shí)現(xiàn)一個(gè)堆文件管理器,用于提供文件的掃描功能、過(guò)濾功能(查找功能)、記錄插入功能及記錄的刪除功能等。堆文件層包括三個(gè)主要的類:FileHdrPage類,通過(guò)目錄頁(yè)(頁(yè)號(hào)的數(shù)組)實(shí)現(xiàn)堆文件結(jié)構(gòu);HeapFile類,實(shí)現(xiàn)記錄的插入和刪除功能;HeapFileScan類(從HeapFile類繼承而來(lái)),實(shí)現(xiàn)文件的掃描功能和過(guò)濾功能(查找功能)。

4.5數(shù)據(jù)字典和一些應(yīng)用工具

項(xiàng)目的第四部分將實(shí)現(xiàn)UBase一些前端命令和數(shù)據(jù)庫(kù)應(yīng)用工具,同時(shí)還要實(shí)現(xiàn)UBase的數(shù)據(jù)字典表的管理。為了幫助學(xué)生實(shí)現(xiàn)UBase前端命令,我們事先為學(xué)生提供了一個(gè)解析器來(lái)解析用戶命令和SQL命令(一個(gè)子集)。該解析器從標(biāo)準(zhǔn)輸入讀入一行命令,解析該行命令并調(diào)用適當(dāng)?shù)暮笈_(tái)函數(shù)進(jìn)行處理。

4.6關(guān)系操作符

在UBase項(xiàng)目的第五部分,要實(shí)現(xiàn)查詢、插入和刪除操作的功能。查詢包括選擇、投影及連接算法,完成創(chuàng)建數(shù)據(jù)庫(kù)、新建表,查看表結(jié)構(gòu)、向表中插入記錄、刪除表中的記錄、修改表中的記錄、查詢表中的記錄、刪除表結(jié)構(gòu)、刪除數(shù)據(jù)庫(kù)等基本功能。

5測(cè)試程序的設(shè)計(jì)

在UBase項(xiàng)目的每一部分,都設(shè)計(jì)了測(cè)試程序,通過(guò)運(yùn)行可執(zhí)行的測(cè)試程序可以檢查學(xué)生完成目標(biāo)的準(zhǔn)確性。

6評(píng)分標(biāo)準(zhǔn)

學(xué)生完成項(xiàng)目的某個(gè)部分后,必須提交源代碼。實(shí)驗(yàn)課教師將檢查源代碼,編譯、運(yùn)行和測(cè)試程序的準(zhǔn)確性。每部分的評(píng)分標(biāo)準(zhǔn)如表1所示:

7UBase項(xiàng)目的實(shí)施效果

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

參考文獻(xiàn)

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

[2] 胡軍,夏英,王國(guó)胤. “賽課結(jié)合”在數(shù)據(jù)庫(kù)原理實(shí)踐教學(xué)中的探索[J]. 實(shí)驗(yàn)室研究與探索,2007,26(12):267-269.

主站蜘蛛池模板: 青青草原国产av福利网站| 激情综合图区| 免费一看一级毛片| 欧美第二区| 亚洲最大福利网站| 激情爆乳一区二区| 亚洲Av激情网五月天| 色哟哟国产成人精品| jizz在线免费播放| 美女黄网十八禁免费看| 国产一级做美女做受视频| av午夜福利一片免费看| 亚洲国产综合自在线另类| 免费aa毛片| 欧美在线精品怡红院| 久久视精品| 久久综合色播五月男人的天堂| 丁香亚洲综合五月天婷婷| 玖玖免费视频在线观看| 国产你懂得| 久久网欧美| 国产一二视频| 国产成人调教在线视频| 亚洲欧美日本国产综合在线| 精品国产电影久久九九| 国产91小视频| 波多野结衣在线一区二区| 波多野结衣视频一区二区| 国产亚洲精| 91娇喘视频| 欧美在线三级| 国产农村妇女精品一二区| 亚洲精品午夜天堂网页| 欧美在线导航| 国产精品9| 激情无码视频在线看| 国产菊爆视频在线观看| 久久精品国产国语对白| 亚洲精品国产日韩无码AV永久免费网| 一本一道波多野结衣av黑人在线| 在线亚洲小视频| 亚洲欧美国产五月天综合| 欧美一级大片在线观看| 亚洲欧洲日产国产无码AV| 国产高清无码麻豆精品| 亚洲欧美日韩成人在线| 91精品国产一区自在线拍| 日韩欧美国产综合| 国产第一页亚洲| 国产一国产一有一级毛片视频| 国产一区二区三区免费观看| 2020久久国产综合精品swag| 国产精品香蕉| 久久精品视频亚洲| 波多野结衣国产精品| 55夜色66夜色国产精品视频| 亚洲精品高清视频| 亚洲区欧美区| 国产一级α片| 亚洲自拍另类| 精品撒尿视频一区二区三区| 中文字幕人成人乱码亚洲电影| 1级黄色毛片| 色婷婷电影网| 久久久久久国产精品mv| 美女无遮挡免费网站| 国产麻豆永久视频| 国产区人妖精品人妖精品视频| 色一情一乱一伦一区二区三区小说 | 久久精品亚洲专区| 欧美另类视频一区二区三区| 欧美在线天堂| 国产午夜无码片在线观看网站| 日本精品视频一区二区| 亚洲国产成人无码AV在线影院L| 99久久国产综合精品2020| 91精品在线视频观看| 114级毛片免费观看| 亚洲综合专区| 亚洲AⅤ永久无码精品毛片| 欧美成人免费| 国产成人精品优优av|