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