- 數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用教程(第5版)
- 苗雪蘭 劉瑞新等編著
- 3622字
- 2020-09-18 17:44:21
3.1 數(shù)據(jù)庫系統(tǒng)設(shè)計概述
本節(jié)介紹了數(shù)據(jù)庫系統(tǒng)設(shè)計的基本內(nèi)容、數(shù)據(jù)庫系統(tǒng)設(shè)計的基本方法和步驟,以及數(shù)據(jù)庫系統(tǒng)設(shè)計的特點和應(yīng)注意的問題。
3.1.1 數(shù)據(jù)庫系統(tǒng)設(shè)計的內(nèi)容
數(shù)據(jù)庫系統(tǒng)設(shè)計的目標(biāo)是:對于給定的應(yīng)用環(huán)境,建立一個性能良好的、能滿足不同用戶使用要求的、又能被選定的DBMS所接受的數(shù)據(jù)庫系統(tǒng)模式。按照該數(shù)據(jù)庫系統(tǒng)模式建立的數(shù)據(jù)庫系統(tǒng),應(yīng)當(dāng)能夠完整地反映現(xiàn)實世界中信息及信息之間的聯(lián)系;能夠有效地進(jìn)行數(shù)據(jù)存儲;能夠方便地執(zhí)行各種數(shù)據(jù)檢索和處理操作;并且有利于進(jìn)行數(shù)據(jù)維護和數(shù)據(jù)控制管理的工作。
數(shù)據(jù)庫系統(tǒng)設(shè)計的內(nèi)容主要有數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計、行為特性設(shè)計和物理模式設(shè)計。在數(shù)據(jù)庫系統(tǒng)設(shè)計過程中,數(shù)據(jù)庫結(jié)構(gòu)特性的設(shè)計起著關(guān)鍵作用,行為特性設(shè)計起著輔助作用。將數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計結(jié)合起來,相互參照,同步進(jìn)行,才能較好地達(dá)到設(shè)計目標(biāo)。
1.數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計
數(shù)據(jù)庫的結(jié)構(gòu)特性是指數(shù)據(jù)庫的邏輯結(jié)構(gòu)特征。由于數(shù)據(jù)庫的結(jié)構(gòu)特性是靜態(tài)的,一般情況下不會輕易變動,因此數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計又稱為數(shù)據(jù)庫的靜態(tài)結(jié)構(gòu)設(shè)計。
數(shù)據(jù)庫結(jié)構(gòu)特性的設(shè)計過程是:先將現(xiàn)實世界中的事物、事物間的聯(lián)系用E-R圖表示,再將各個分E-R圖匯總,得出數(shù)據(jù)庫的概念結(jié)構(gòu)模型,最后將概念結(jié)構(gòu)模型轉(zhuǎn)化為數(shù)據(jù)庫的邏輯結(jié)構(gòu)模型表示。
2.數(shù)據(jù)庫的行為特性設(shè)計
數(shù)據(jù)庫的行為特性設(shè)計是指確定數(shù)據(jù)庫用戶的行為和動作,并設(shè)計出數(shù)據(jù)庫應(yīng)用系統(tǒng)的系統(tǒng)層次結(jié)構(gòu)、功能結(jié)構(gòu)和系統(tǒng)數(shù)據(jù)流程圖,確定數(shù)據(jù)庫的子模式。數(shù)據(jù)庫用戶的行為和動作是指數(shù)據(jù)查詢和統(tǒng)計、事物處理及報表處理等操作,這些都要通過應(yīng)用程序表達(dá)和執(zhí)行。由于用戶行為總是更新數(shù)據(jù)庫內(nèi)容的存取數(shù)據(jù)操作,用戶行為特性是動態(tài)的,所以數(shù)據(jù)庫的行為特性設(shè)計也稱為數(shù)據(jù)庫的動態(tài)特性設(shè)計。
數(shù)據(jù)庫行為特性的設(shè)計步驟是:將現(xiàn)實世界中的數(shù)據(jù)及應(yīng)用情況用數(shù)據(jù)流程圖和數(shù)據(jù)字典表示,并詳細(xì)描述其中的數(shù)據(jù)操作要求(即操作對象、方法、頻度和實時性要求);確定系統(tǒng)層次結(jié)構(gòu);確定系統(tǒng)的功能模塊結(jié)構(gòu);確定數(shù)據(jù)庫的子模式;確定系統(tǒng)數(shù)據(jù)流程圖。
3.數(shù)據(jù)庫的物理模式設(shè)計
數(shù)據(jù)庫的物理模式設(shè)計要求:根據(jù)庫結(jié)構(gòu)的動態(tài)特性(即數(shù)據(jù)庫應(yīng)用處理要求),在選定的DBMS環(huán)境下,把數(shù)據(jù)庫的邏輯結(jié)構(gòu)模型加以物理實現(xiàn),從而得出數(shù)據(jù)庫的存儲模式和存取方法。
3.1.2 數(shù)據(jù)庫系統(tǒng)設(shè)計應(yīng)注意的問題
人們總是希望自己設(shè)計的數(shù)據(jù)庫系統(tǒng)簡單易用,具有安全性、可靠性、易維護性、易擴充性和最小冗余性等特點,并希望數(shù)據(jù)庫對不同用戶數(shù)據(jù)的存取都有較高的響應(yīng)速度。為了能夠達(dá)到這樣的設(shè)計目標(biāo),設(shè)計者應(yīng)當(dāng)嚴(yán)格遵循數(shù)據(jù)庫設(shè)計的方法和規(guī)則。數(shù)據(jù)庫系統(tǒng)的設(shè)計是一項涉及多學(xué)科的綜合性技術(shù),也是一項龐大的工程。進(jìn)行數(shù)據(jù)庫系統(tǒng)設(shè)計時,應(yīng)當(dāng)注意以下兩個問題。
1.進(jìn)行數(shù)據(jù)庫系統(tǒng)設(shè)計時應(yīng)考慮計算機硬件、軟件和干件的實際情況
在進(jìn)行數(shù)據(jù)庫設(shè)計時,應(yīng)當(dāng)考慮3個方面的內(nèi)容。
(1)數(shù)據(jù)庫系統(tǒng)的硬件條件是基礎(chǔ)
數(shù)據(jù)庫系統(tǒng)必須適應(yīng)所在的計算機硬件環(huán)境,根據(jù)其數(shù)據(jù)存儲設(shè)備、網(wǎng)絡(luò)和通信設(shè)備、計算機性能等硬件條件設(shè)計數(shù)據(jù)庫的規(guī)模、數(shù)據(jù)存儲方式、分布結(jié)構(gòu)及數(shù)據(jù)通信方式。
(2)數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)軟件是軟件環(huán)境
在數(shù)據(jù)庫系統(tǒng)設(shè)計前,應(yīng)當(dāng)選擇合適的數(shù)據(jù)庫管理系統(tǒng)(DBMS)和數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)軟件,使之適合數(shù)據(jù)庫系統(tǒng)的要求。應(yīng)當(dāng)了解選定的數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)軟件的特點,利用其數(shù)據(jù)操作和數(shù)據(jù)控制的優(yōu)勢,適應(yīng)其特殊要求和限制,并使兩者能較好地配合。
(3)數(shù)據(jù)庫用戶的技術(shù)水平和管理水平是關(guān)鍵
為了提高數(shù)據(jù)庫用戶及數(shù)據(jù)庫管理員應(yīng)用和管理數(shù)據(jù)庫系統(tǒng)的水平,應(yīng)當(dāng)讓他們充分參與設(shè)計數(shù)據(jù)庫的工作,使之對數(shù)據(jù)庫設(shè)計過程的每個細(xì)節(jié)都了解得比較清楚。這樣,不但能夠提高設(shè)計效率,而且有助于數(shù)據(jù)庫用戶及數(shù)據(jù)庫管理員對數(shù)據(jù)庫進(jìn)行管理、擴充和維護等。
2.數(shù)據(jù)庫系統(tǒng)設(shè)計時應(yīng)使結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計緊密結(jié)合
數(shù)據(jù)庫系統(tǒng)設(shè)計過程是一種自上而下的、逐步逼近設(shè)計目標(biāo)的過程。數(shù)據(jù)庫系統(tǒng)設(shè)計過程是結(jié)構(gòu)設(shè)計、行為設(shè)計、分離設(shè)計、相互參照和反復(fù)探尋的過程。
圖3-1是數(shù)據(jù)庫系統(tǒng)設(shè)計的過程圖,其中,數(shù)據(jù)庫的邏輯模式設(shè)計要與事務(wù)設(shè)計結(jié)合起來,以支持全部事務(wù)處理的要求;為了更有效地支持事務(wù)處理,還需要進(jìn)行數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計,以實現(xiàn)數(shù)據(jù)存取功能;數(shù)據(jù)庫的子模式則是根據(jù)應(yīng)用程序的需要而設(shè)計的。
在數(shù)據(jù)庫系統(tǒng)設(shè)計中,結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計必須相結(jié)合才能達(dá)到其設(shè)計目標(biāo)。數(shù)據(jù)庫系統(tǒng)設(shè)計者應(yīng)當(dāng)具有戰(zhàn)略眼光,考慮到當(dāng)前、近期和遠(yuǎn)期3個時間段的用戶需求。設(shè)計的系統(tǒng)應(yīng)當(dāng)能完全滿足用戶當(dāng)前和近期對系統(tǒng)的數(shù)據(jù)需求,并對遠(yuǎn)期的數(shù)據(jù)需求有相應(yīng)的處理方案。數(shù)據(jù)庫系統(tǒng)設(shè)計者應(yīng)充分考慮到系統(tǒng)可能的擴充與改變,使設(shè)計出的系統(tǒng)有較長的生命力。
圖3-1 數(shù)據(jù)庫系統(tǒng)設(shè)計過程
3.1.3 數(shù)據(jù)庫系統(tǒng)設(shè)計的基本方法
現(xiàn)實世界的信息結(jié)構(gòu)復(fù)雜且應(yīng)用環(huán)境多種多樣,在很長一段時間內(nèi),數(shù)據(jù)庫系統(tǒng)設(shè)計是采用手工試湊法進(jìn)行的。用手工試湊法設(shè)計數(shù)據(jù)庫與設(shè)計人員的經(jīng)驗和水平有直接關(guān)系,它更像是一種技藝而不是工程技術(shù)。這種方法缺乏科學(xué)的理論和工程方法支持,數(shù)據(jù)庫的質(zhì)量很難得到保證,數(shù)據(jù)庫常常是在投入使用以后才發(fā)現(xiàn)問題,不得不進(jìn)行修改,這樣就增加了系統(tǒng)維護的代價。十余年來,人們努力探索,提出了各種各樣的數(shù)據(jù)庫系統(tǒng)設(shè)計方法,并提出了多種數(shù)據(jù)庫系統(tǒng)設(shè)計的準(zhǔn)則和規(guī)程,這些設(shè)計方法被稱為規(guī)范設(shè)計法。
新奧爾良(New Orleans)方法是規(guī)范設(shè)計法中的一種,它將數(shù)據(jù)庫設(shè)計分為4個階段:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計。其后,許多科學(xué)家對其進(jìn)行了改進(jìn),認(rèn)為數(shù)據(jù)庫系統(tǒng)設(shè)計應(yīng)分6個階段進(jìn)行:需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫實施及數(shù)據(jù)庫運行和維護。在數(shù)據(jù)庫系統(tǒng)設(shè)計的不同階段上,實現(xiàn)的具體方法有基于E-R模型的數(shù)據(jù)庫系統(tǒng)設(shè)計方法、基于3NF(第3范式)的設(shè)計方法和基于抽象語法規(guī)范的設(shè)計方法等。
3.1.4 數(shù)據(jù)庫系統(tǒng)設(shè)計的基本步驟
圖3-2中列出了數(shù)據(jù)庫系統(tǒng)設(shè)計的步驟和各個階段應(yīng)完成的基本任務(wù),下面就具體內(nèi)容進(jìn)行介紹。
圖3-2 數(shù)據(jù)庫系統(tǒng)設(shè)計步驟
1.需求分析階段
需求分析是數(shù)據(jù)庫系統(tǒng)設(shè)計的第一步,也是最困難、最耗時間的一步。需求分析的任務(wù)是準(zhǔn)確了解并分析用戶對系統(tǒng)的需要和要求,弄清系統(tǒng)要達(dá)到的目標(biāo)和實現(xiàn)的功能。需求分析是否做得充分與準(zhǔn)確,決定著在其上構(gòu)建數(shù)據(jù)庫大廈的速度與質(zhì)量。如果需求分析做得不好,會影響整個系統(tǒng)的性能,甚至?xí)?dǎo)致整個數(shù)據(jù)庫設(shè)計返工重做。
2.概念結(jié)構(gòu)設(shè)計階段
概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫系統(tǒng)設(shè)計的關(guān)鍵。在概念結(jié)構(gòu)的設(shè)計過程中,設(shè)計者要對用戶需求進(jìn)行綜合、歸納和抽象,形成一個獨立于具體計算機和DBMS的概念模型。
3.邏輯結(jié)構(gòu)設(shè)計階段
邏輯結(jié)構(gòu)設(shè)計的主要任務(wù)是將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,并將其性能進(jìn)行優(yōu)化。
4.物理結(jié)構(gòu)設(shè)計階段
物理結(jié)構(gòu)設(shè)計的主要任務(wù)是為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括數(shù)據(jù)存儲位置、數(shù)據(jù)存儲結(jié)構(gòu)和存取方法。
5.數(shù)據(jù)庫實施階段
在數(shù)據(jù)庫實施階段中,系統(tǒng)設(shè)計人員要運用DBMS提供的數(shù)據(jù)操作語言和宿主語言,根據(jù)數(shù)據(jù)庫邏輯設(shè)計和物理設(shè)計的結(jié)果,建立數(shù)據(jù)庫、編制與調(diào)試應(yīng)用程序、組織數(shù)據(jù)入庫并進(jìn)行系統(tǒng)試運行。
6.數(shù)據(jù)庫運行和維護階段
數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中,必須不斷地對其結(jié)構(gòu)性能進(jìn)行評價、調(diào)整和修改。
設(shè)計一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)是不可能一蹴而就的,它往往是上述6個階段的不斷反復(fù)。需要指出的是,這6個設(shè)計步驟既是數(shù)據(jù)庫設(shè)計的過程,也包括了數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計過程。在設(shè)計過程中,應(yīng)把數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計和數(shù)據(jù)處理的操作設(shè)計緊密結(jié)合起來,這兩個方面的需求分析、數(shù)據(jù)抽象、系統(tǒng)設(shè)計及實現(xiàn)等各個階段應(yīng)同時進(jìn)行,相互參照和相互補充。事實上,如果不了解應(yīng)用環(huán)境對數(shù)據(jù)的處理要求或沒有考慮如何去實現(xiàn)這些處理要求,是不可能設(shè)計出一個良好的數(shù)據(jù)庫結(jié)構(gòu)的。
上述數(shù)據(jù)庫設(shè)計的原則和設(shè)計過程概括起來,可用表3-1進(jìn)行描述。
表3-1 數(shù)據(jù)庫系統(tǒng)設(shè)計階段
表3-1中有關(guān)處理特性的設(shè)計描述、設(shè)計原理、設(shè)計方法和工具等具體內(nèi)容,在軟件工程和信息系統(tǒng)設(shè)計等其他相關(guān)課程中有詳細(xì)介紹。這里主要討論有關(guān)數(shù)據(jù)特性的問題,包括數(shù)據(jù)特性的描述、如何參照處理特性和完善數(shù)據(jù)模型設(shè)計等問題。
在圖3-3中,描述了數(shù)據(jù)庫結(jié)構(gòu)設(shè)計不同階段要完成的不同級別的數(shù)據(jù)模式。
數(shù)據(jù)庫系統(tǒng)設(shè)計過程中:需求分析階段,設(shè)計者的中心工作是弄清并綜合各個用戶的應(yīng)用需求;概念結(jié)構(gòu)設(shè)計階段,設(shè)計者要將應(yīng)用需求轉(zhuǎn)換為與計算機硬件無關(guān)的、與各個數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品無關(guān)的概念模型(即E-R圖);邏輯結(jié)構(gòu)設(shè)計階段,要完成數(shù)據(jù)庫的邏輯模式和外模式的設(shè)計工作,即系統(tǒng)設(shè)計者要先將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,形成數(shù)據(jù)庫邏輯模式,然后根據(jù)用戶處理的要求、安全性的考慮建立必要的數(shù)據(jù)視圖,形成數(shù)據(jù)的外模式;在物理結(jié)構(gòu)設(shè)計階段,要根據(jù)具體使用的數(shù)據(jù)庫管理系統(tǒng)的特點和處理的需要進(jìn)行物理存儲安排,并確定系統(tǒng)要建立的索引,得出數(shù)據(jù)庫的內(nèi)模式。
圖3-3 數(shù)據(jù)庫的各級模式
- Blockchain Quick Start Guide
- 最簡數(shù)據(jù)挖掘
- 自動控制理論(非自動化專業(yè))
- 樂高機器人—槍械武器庫
- Prometheus監(jiān)控實戰(zhàn)
- Google SketchUp for Game Design:Beginner's Guide
- 面向?qū)ο蟪绦蛟O(shè)計綜合實踐
- DevOps Bootcamp
- Flink原理與實踐
- Mastering Geospatial Analysis with Python
- 大數(shù)據(jù)導(dǎo)論
- 電腦故障排除與維護終極技巧金典
- Natural Language Processing and Computational Linguistics
- Moodle 2.0 Course Conversion(Second Edition)
- DynamoDB Applied Design Patterns