《數(shù)據(jù)庫設計-數(shù)據(jù)庫實施.ppt》由會員分享,可在線閱讀,更多相關《數(shù)據(jù)庫設計-數(shù)據(jù)庫實施.ppt(27頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫設計-數(shù)據(jù)庫實施,單世民,數(shù)據(jù)庫的實施,數(shù)據(jù)庫實施的工作內(nèi)容 用DDL定義數(shù)據(jù)庫結(jié)構(gòu) 組織數(shù)據(jù)入庫 編制與調(diào)試應用程序 數(shù)據(jù)庫試運行,定義數(shù)據(jù)庫結(jié)構(gòu),數(shù)據(jù)裝載,編制與 調(diào)試應 用程序,數(shù)據(jù)庫 試運行,數(shù)據(jù)庫物 理設計,數(shù)據(jù)庫運 行和維護,物理 模型,定義數(shù)據(jù)庫結(jié)構(gòu),確定了數(shù)據(jù)庫的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)后,就可以用所選用的DBMS提供的數(shù)據(jù)定義語言(DDL)來嚴格描述數(shù)據(jù)庫結(jié)構(gòu)。 例,對于前面的例子,可以用SQL語句如下定義表結(jié)構(gòu):CREATE TABLE 學生(學號 CHAR(8),);CREATE TABLE 課程();接下來是在這些基本表上定義視圖:CREATE VIEW .( ); 如
2、果需要使用聚簇,在建基本表之前,應先用CREATE CLUSTER語句定義聚族。,數(shù)據(jù)裝載,數(shù)據(jù)庫結(jié)構(gòu)建立好后,就可以向數(shù)據(jù)庫中裝載數(shù)據(jù)了。組織數(shù)據(jù)入庫是數(shù)據(jù)庫實施階段最主要的工作。 數(shù)據(jù)裝載方法 人工方法 計算機輔助數(shù)據(jù)入庫,數(shù)據(jù)裝載,人工方法:適用于小型系統(tǒng) 步驟 1) 篩選數(shù)據(jù)。需要裝入數(shù)據(jù)庫中的數(shù)據(jù)通常都分散在各個部門的數(shù)據(jù)文件或原始憑證中,所以首先必須把需要入庫的數(shù)據(jù)篩選出來。 2) 轉(zhuǎn)換數(shù)據(jù)格式。篩選出來的需要入庫的數(shù)據(jù),其格式往往不符合數(shù)據(jù)庫要求,還需要進行轉(zhuǎn)換。這種轉(zhuǎn)換有時可能很復雜。 3) 輸入數(shù)據(jù)。將轉(zhuǎn)換好的數(shù)據(jù)輸入計算機中。 4) 校驗數(shù)據(jù)。檢查輸入的數(shù)據(jù)是否有誤。,數(shù)據(jù)
3、裝載,計算機輔助數(shù)據(jù)入庫:適用于中大型系統(tǒng) 步驟 1) 篩選數(shù)據(jù) 2) 輸入數(shù)據(jù)。由錄入員將原始數(shù)據(jù)直接輸入計算機中。數(shù)據(jù)輸入子系統(tǒng)應提供輸入界面。 3) 校驗數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)采用多種檢驗技術檢查輸入數(shù)據(jù)的正確性。 4) 轉(zhuǎn)換數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)根據(jù)數(shù)據(jù)庫系統(tǒng)的要求,從錄入的數(shù)據(jù)中抽取有用成分,對其進行分類,然后轉(zhuǎn)換數(shù)據(jù)格式。抽取、分類和轉(zhuǎn)換數(shù)據(jù)是數(shù)據(jù)輸入子系統(tǒng)的主要工作,也是數(shù)據(jù)輸入子系統(tǒng)的復雜性所在。 5) 綜合數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)對轉(zhuǎn)換好的數(shù)據(jù)根據(jù)系統(tǒng)的要求進一步綜合成最終數(shù)據(jù)。,數(shù)據(jù)裝載,如果數(shù)據(jù)庫是在老的文件系統(tǒng)或數(shù)據(jù)庫系統(tǒng)的基礎上設計的,則數(shù)據(jù)輸入子系統(tǒng)只需要完成轉(zhuǎn)換數(shù)據(jù)、綜合
4、數(shù)據(jù)兩項工作,直接將老系統(tǒng)中的數(shù)據(jù)轉(zhuǎn)換成新系統(tǒng)中需要的數(shù)據(jù)格式。 為了保證數(shù)據(jù)能夠及時入庫,應在數(shù)據(jù)庫物理設計的同時編制數(shù)據(jù)輸入子系統(tǒng)。,編制與調(diào)試應用程序,數(shù)據(jù)庫應用程序的設計應該與數(shù)據(jù)設計并行進行。 在數(shù)據(jù)庫實施階段,當數(shù)據(jù)庫結(jié)構(gòu)建立好后,就可以開始編制與調(diào)試數(shù)據(jù)庫的應用程序。調(diào)試應用程序時由于數(shù)據(jù)入庫尚未完成,可先使用模擬數(shù)據(jù)。,數(shù)據(jù)庫試運行,應用程序調(diào)試完成,并且已有一小部分數(shù)據(jù)入庫后,就可以開始數(shù)據(jù)庫的試運行。 數(shù)據(jù)庫試運行也稱為聯(lián)合調(diào)試,其主要工作包括:1)功能測試:實際運行應用程序,執(zhí)行對數(shù)據(jù)庫的各種操作,測試應用程序的各種功能。2)性能測試:測量系統(tǒng)的性能指標,分析是否符合設計
5、目標。,數(shù)據(jù)庫試運行,數(shù)據(jù)庫性能指標的測量 數(shù)據(jù)庫物理設計階段在評價數(shù)據(jù)庫結(jié)構(gòu)估算時間、空間指標時,作了許多簡化和假設,忽略了許多次要因素,因此結(jié)果必然很粗糙。 數(shù)據(jù)庫試運行則是要實際測量系統(tǒng)的各種性能指標(不僅是時間、空間指標),如果結(jié)果不符合設計目標,則需要返回物理設計階段,調(diào)整物理結(jié)構(gòu),修改參數(shù);有時甚至需要返回邏輯設計階段,調(diào)整邏輯結(jié)構(gòu)。,數(shù)據(jù)庫試運行,數(shù)據(jù)的分期入庫 重新設計物理結(jié)構(gòu)甚至邏輯結(jié)構(gòu),會導致數(shù)據(jù)重新入庫。 由于數(shù)據(jù)入庫工作量實在太大,所以可以采用分期輸入數(shù)據(jù)的方法 先輸入小批量數(shù)據(jù)供先期聯(lián)合調(diào)試使用 待試運行基本合格后再輸入大批量數(shù)據(jù) 逐步增加數(shù)據(jù)量,逐步完成運行評價,數(shù)
6、據(jù)庫試運行,數(shù)據(jù)庫的轉(zhuǎn)儲和恢復 在數(shù)據(jù)庫試運行階段,系統(tǒng)還不穩(wěn)定,硬、軟件故障隨時都可能發(fā)生 系統(tǒng)的操作人員對新系統(tǒng)還不熟悉,誤操作也不可避免 因此必須做好數(shù)據(jù)庫的轉(zhuǎn)儲和恢復工作,盡量減少對數(shù)據(jù)庫的破壞。,數(shù)據(jù)庫運行與維護,數(shù)據(jù)庫運行與維護,數(shù)據(jù)庫試運行結(jié)果符合設計目標后,數(shù)據(jù)庫就可以真正投入運行了。 數(shù)據(jù)庫投入運行標著開發(fā)任務的基本完成和維護工作的開始 對數(shù)據(jù)庫設計進行評價、調(diào)整、修改等維護工作是一個長期的任務,也是設計工作的繼續(xù)和提高。 應用環(huán)境在不斷變化 數(shù)據(jù)庫運行過程中物理存儲會不斷變化,數(shù)據(jù)庫運行與維護,在數(shù)據(jù)庫運行階段,對數(shù)據(jù)庫經(jīng)常性的維護工作主要是由DBA完成的,包括:1. 數(shù)據(jù)
7、庫的轉(zhuǎn)儲和恢復 轉(zhuǎn)儲和恢復是系統(tǒng)正式運行后最重要的維護工作之一。 DBA要針對不同的應用要求制定不同的轉(zhuǎn)儲計劃,定期對數(shù)據(jù)庫和日志文件進行備份。 一旦發(fā)生介質(zhì)故障,即利用數(shù)據(jù)庫備份及日志文件備份,盡快將數(shù)據(jù)庫恢復到某種一致性狀態(tài)。,數(shù)據(jù)庫運行與維護,2. 數(shù)據(jù)庫的安全性、完整性控制 DBA必須根據(jù)用戶的實際需要授予不同的操作權限 在數(shù)據(jù)庫運行過程中,由于應用環(huán)境的變化,對安全性的要求也會發(fā)生變化,DBA需要根據(jù)實際情況修改原有的安全性控制。 由于應用環(huán)境的變化,數(shù)據(jù)庫的完整性約束條件也會變化,也需要DBA不斷修正,以滿足用戶要求。,數(shù)據(jù)庫運行與維護,3. 數(shù)據(jù)庫性能的監(jiān)督、分析和改進 在數(shù)據(jù)庫
8、運行過程中, DBA必須監(jiān)督系統(tǒng)運行,對監(jiān)測數(shù)據(jù)進行分析,找出改進系統(tǒng)性能的方法。 利用監(jiān)測工具獲取系統(tǒng)運行過程中一系列性能參數(shù)的值 通過仔細分析這些數(shù)據(jù),判斷當前系統(tǒng)是否處于最佳運行狀態(tài) 如果不是,則需要通過調(diào)整某些參數(shù)來進一步改進數(shù)據(jù)庫性能,數(shù)據(jù)庫運行與維護,4. 數(shù)據(jù)庫的重組織和重構(gòu)造1)數(shù)據(jù)庫的重組織為什么要進行數(shù)據(jù)庫的重組織?數(shù)據(jù)庫運行一段時間后,由于記錄的不斷增、刪、改,會使數(shù)據(jù)庫的物理存儲變壞,從而降低數(shù)據(jù)庫存儲空間的利用率和數(shù)據(jù)的存取效率,使數(shù)據(jù)庫的性能下降。,數(shù)據(jù)庫運行與維護,重組織的形式 全部重組織 部分重組織:只對頻繁增、刪的表進行重組織 重組織的目標:提高系統(tǒng)性能 重組
9、織的工作:按原設計要求 重新安排存儲位置 回收垃圾 減少指針鏈 數(shù)據(jù)庫的重組織不會改變原設計的數(shù)據(jù)邏輯結(jié)構(gòu)和物理結(jié)構(gòu) DBMS一般都提供了供重組織數(shù)據(jù)庫使用的實用程序,幫助DBA重新組織數(shù)據(jù)庫。,數(shù)據(jù)庫運行與維護,2)數(shù)據(jù)庫的重構(gòu)造為什么要進行數(shù)據(jù)庫的重構(gòu)造?數(shù)據(jù)庫應用環(huán)境發(fā)生變化,會導致實體及實體間的聯(lián)系也發(fā)生相應的變化,使原有的數(shù)據(jù)庫設計不能很好地滿足新的需求 增加新的應用或新的實體 取消某些已有應用 改變某些已有應用,數(shù)據(jù)庫運行與維護,數(shù)據(jù)庫重構(gòu)造的主要工作根據(jù)新環(huán)境調(diào)整數(shù)據(jù)庫的模式和內(nèi)模式 增加新的數(shù)據(jù)項 改變數(shù)據(jù)項的類型 改變數(shù)據(jù)庫的容量 增加或刪除索引 修改完整性約束條件,數(shù)據(jù)庫運
10、行與維護,重構(gòu)造數(shù)據(jù)庫的程度是有限的 若應用變化太大,已無法通過重構(gòu)數(shù)據(jù)庫來滿足新的需求,或重構(gòu)數(shù)據(jù)庫的代價太大,則表明現(xiàn)有數(shù)據(jù)庫應用系統(tǒng)的生命周期已經(jīng)結(jié)束,應該重新設計新的數(shù)據(jù)庫系統(tǒng),開始新數(shù)據(jù)庫應用系統(tǒng)的生命周期了。,小結(jié),數(shù)據(jù)庫的設計過程 需求分析 概念結(jié)構(gòu)設計 邏輯結(jié)構(gòu)設計 物理設計 實施 運行維護 設計過程中往往還會有許多反復。,小結(jié),數(shù)據(jù)庫各級模式的形成 數(shù)據(jù)庫的各級模式是在設計過程中逐步形成的 需求分析階段綜合各個用戶的應用需求(現(xiàn)實世界的需求)。 概念設計階段形成獨立于機器特點、獨立于各個DBMS產(chǎn)品的概念模式(信息世界模型),用E-R圖來描述。 在邏輯設計階段將E-R圖轉(zhuǎn)換成
11、具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型如關系模型,形成數(shù)據(jù)庫邏輯模式。然后根據(jù)用戶處理的要求,安全性的考慮,在基本表的基礎上再建立必要的視圖(VIEW)形成數(shù)據(jù)的外模式。 在物理設計階段根據(jù)DBMS特點和處理的需要,進行物理存儲安排,設計索引,形成數(shù)據(jù)庫內(nèi)模式。,小結(jié),整個數(shù)據(jù)庫設計過程體現(xiàn)了結(jié)構(gòu)特征與行為特征的緊密結(jié)合。,小結(jié),目前很多DBMS都提供了一些輔助工具(CASE工具),為加快數(shù)據(jù)庫設計速度,設計人員可根據(jù)需要選用。 例如需求分析完成之后,設計人員可以使用ORACLE DESIGNER 2000畫E-R圖,將E-R圖轉(zhuǎn)換為關系數(shù)據(jù)模型,生成數(shù)據(jù)庫結(jié)構(gòu);畫數(shù)據(jù)流圖,生成應用程序。 利用CASE工具生成的僅僅是數(shù)據(jù)庫應用系統(tǒng)的一個雛形,比較粗糙,數(shù)據(jù)庫設計人員需要根據(jù)用戶的應用需求進一步修改該雛形,使之成為一個完善的系統(tǒng)。 早期就選擇某種CASE工具固然能減少數(shù)據(jù)庫設計的復雜性,加快數(shù)據(jù)庫設計的速度,但往往容易將自己限制于某一個DBMS上,而不是根據(jù)概念設計的結(jié)果選擇合適的DBMS。,