數(shù)據(jù)庫系統(tǒng)概論:第七章數(shù)據(jù)庫設計_第1頁
數(shù)據(jù)庫系統(tǒng)概論:第七章數(shù)據(jù)庫設計_第2頁
數(shù)據(jù)庫系統(tǒng)概論:第七章數(shù)據(jù)庫設計_第3頁
數(shù)據(jù)庫系統(tǒng)概論:第七章數(shù)據(jù)庫設計_第4頁
數(shù)據(jù)庫系統(tǒng)概論:第七章數(shù)據(jù)庫設計_第5頁
已閱讀5頁,還剩318頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、An Introduction to Database System,數(shù)據(jù)庫系統(tǒng)概論 An Introduction to Database System 第六章 數(shù)據(jù)庫設計,An Introduction to Database System,第六章 數(shù)據(jù)庫設計,6.1 數(shù)據(jù)庫設計概述 6.2 需求分析 6.3 概念結構設計 6.4 邏輯結構設計 6.5 數(shù)據(jù)庫的物理設計 6.6 數(shù)據(jù)庫實施 6.7 數(shù)據(jù)庫運行與維護 6.8 小結,An Introduction to Database System,6.1 數(shù)據(jù)庫設計概述,6.1.1 數(shù)據(jù)庫和信息系統(tǒng) 6.1.2 數(shù)據(jù)庫設計的特點 6.1.

2、3 數(shù)據(jù)庫設計方法簡述 6.1.4 數(shù)據(jù)庫設計的基本步驟,An Introduction to Database System,數(shù)據(jù)庫設計概述(續(xù)),什么是數(shù)據(jù)庫設計 數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,構造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應用需求(信息要求和處理要求) 在數(shù)據(jù)庫領域內(nèi),常常把使用數(shù)據(jù)庫的各類系統(tǒng)統(tǒng)稱為數(shù)據(jù)庫應用系統(tǒng)。,An Introduction to Database System,6.1.1 數(shù)據(jù)庫和信息系統(tǒng),數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎 把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來 提供存儲、維護、檢索數(shù)據(jù)的功能 使信息

3、系統(tǒng)可以方便、及時、準確地從數(shù)據(jù)庫中獲得所需的信息 數(shù)據(jù)庫是信息系統(tǒng)的各個部分能否緊密地結合在一起以及如何結合的關鍵所在 數(shù)據(jù)庫設計是信息系統(tǒng)開發(fā)和建設的重要組成部分,An Introduction to Database System,數(shù)據(jù)庫設計人員應該具備的技術和知識,數(shù)據(jù)庫的基本知識和數(shù)據(jù)庫設計技術 計算機科學的基礎知識和程序設計的方法和技巧 軟件工程的原理和方法 應用領域的知識,An Introduction to Database System,6.1 數(shù)據(jù)庫設計概述,6.1.1 數(shù)據(jù)庫和信息系統(tǒng) 6.1.2 數(shù)據(jù)庫設計的特點 6.1.3 數(shù)據(jù)庫設計方法簡述 6.1.4 數(shù)據(jù)庫設計的

4、基本步驟,An Introduction to Database System,6.1.2 數(shù)據(jù)庫設計的特點,數(shù)據(jù)庫建設是硬件、軟件和干件的結合 三分技術,七分管理,十二分基礎數(shù)據(jù) 技術與管理的界面稱之為“干件” 數(shù)據(jù)庫設計應該與應用系統(tǒng)設計相結合 結構(數(shù)據(jù))設計:設計數(shù)據(jù)庫框架或數(shù)據(jù)庫結構 行為(處理)設計:設計應用程序、事務處理等,An Introduction to Database System,數(shù)據(jù)庫設計的特點(續(xù)),結構和行為分離的設計 傳統(tǒng)的軟件工程忽視對應用中數(shù)據(jù)語義的分析和抽象,只要有可能就盡量推遲數(shù)據(jù)結構設計的決策 早期的數(shù)據(jù)庫設計致力于數(shù)據(jù)模型和建模方法研究,忽視了對行

5、為的設計,An Introduction to Database System,數(shù)據(jù)庫設計的特點(續(xù)),An Introduction to Database System,6.1 數(shù)據(jù)庫設計概述,6.1.1 數(shù)據(jù)庫和信息系統(tǒng) 6.1.2 數(shù)據(jù)庫設計的特點 6.1.3 數(shù)據(jù)庫設計方法簡述 6.1.4 數(shù)據(jù)庫設計的基本步驟,An Introduction to Database System,6.1.3 數(shù)據(jù)庫設計方法簡述,手工試湊法 設計質(zhì)量與設計人員的經(jīng)驗和水平有直接關系 缺乏科學理論和工程方法的支持,工程的質(zhì)量難以保證 數(shù)據(jù)庫運行一段時間后常常又不同程度地發(fā)現(xiàn)各種問題,增加了維護代價,An

6、 Introduction to Database System,數(shù)據(jù)庫設計方法簡述(續(xù)),規(guī)范設計法 手工設計方法 基本思想 過程迭代和逐步求精,An Introduction to Database System,數(shù)據(jù)庫設計方法簡述(續(xù)),規(guī)范設計法(續(xù)) 典型方法 新奧爾良(New Orleans)方法 將數(shù)據(jù)庫設計分為四個階段 S.B.Yao方法 將數(shù)據(jù)庫設計分為五個步驟 I.R.Palmer方法 把數(shù)據(jù)庫設計當成一步接一步的過程,An Introduction to Database System,數(shù)據(jù)庫設計方法簡述(續(xù)),計算機輔助設計 ORACLE Designer 2000 S

7、YBASE PowerDesigner,An Introduction to Database System,6.1 數(shù)據(jù)庫設計概述,6.1.1 數(shù)據(jù)庫和信息系統(tǒng) 6.1.2 數(shù)據(jù)庫設計的特點 6.1.3 數(shù)據(jù)庫設計方法簡述 6.1.4 數(shù)據(jù)庫設計的基本步驟,An Introduction to Database System,6.1.4 數(shù)據(jù)庫設計的基本步驟,一、數(shù)據(jù)庫設計的準備工作 選定參加設計的人員 1. 數(shù)據(jù)庫分析設計人員 數(shù)據(jù)庫設計的核心人員 自始至終參與數(shù)據(jù)庫設計 其水平?jīng)Q定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量,An Introduction to Database System,6.1.4 數(shù)據(jù)庫

8、設計的基本步驟,2. 用戶 在數(shù)據(jù)庫設計中也是舉足輕重的 主要參加需求分析和數(shù)據(jù)庫的運行維護 用戶積極參與帶來的好處 加速數(shù)據(jù)庫設計 提高數(shù)據(jù)庫設計的質(zhì)量,An Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),3. 程序員 在系統(tǒng)實施階段參與進來,負責編制程序 4. 操作員 在系統(tǒng)實施階段參與進來,準備軟硬件環(huán)境,An Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),二、數(shù)據(jù)庫設計的過程(六個階段) 需求分析階段 準確了解與分析用戶需求(包括數(shù)據(jù)與處理) 是整個設計過程的基礎,是最困難、最耗費時間的一步,A

9、n Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),概念結構設計階段 是整個數(shù)據(jù)庫設計的關鍵 通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,An Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),邏輯結構設計階段 將概念結構轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型 對其進行優(yōu)化,An Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),數(shù)據(jù)庫物理設計階段 為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結構(包括存儲結構和存取方法),An Introdu

10、ction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),數(shù)據(jù)庫實施階段 運用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設計和物理設計的結果 建立數(shù)據(jù)庫 編制與調(diào)試應用程序 組織數(shù)據(jù)入庫 并進行試運行,An Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),數(shù)據(jù)庫運行和維護階段 數(shù)據(jù)庫應用系統(tǒng)經(jīng)過試運行后即可投入正式運行。 在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。,An Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),設計一個完善的數(shù)據(jù)庫應用系統(tǒng)往往是上述六個階段的

11、不斷反復。 P206圖6.2,An Introduction to Database System,設計特點,在設計過程中把數(shù)據(jù)庫的設計和對數(shù)據(jù)庫中數(shù)據(jù)處理的設計緊密結合起來 將這兩個方面的需求分析、抽象、設計、實現(xiàn)在各個階段同時進行,相互參照,相互補充,以完善兩方面的設計 設計過程各個階段的設計描述:P208圖6.3,An Introduction to Database System,Creat Load,Main( ) if then end,概念結構設計,邏輯結構設計,物理設計,An Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),數(shù)據(jù)庫各級

12、模式的形成過程(P209圖6.4) 需求分析階段 綜合各個用戶的應用需求 概念設計階段 形成獨立于機器特點,獨立于各個DBMS產(chǎn)品的概念模式(E-R圖),An Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),邏輯設計階段 首先將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關系模型,形成數(shù)據(jù)庫邏輯模式 然后根據(jù)用戶處理的要求、安全性的考慮,在基本表的基礎上再建立必要的視圖(View),形成數(shù)據(jù)的外模式,An Introduction to Database System,數(shù)據(jù)庫設計的基本步驟(續(xù)),物理設計階段 根據(jù)DBMS特點和處理的需要,進行物

13、理存儲安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式,An Introduction to Database System,第六章 數(shù)據(jù)庫設計,6.1 數(shù)據(jù)庫設計概述 6.2 需求分析 6.3 概念結構設計 6.4 邏輯結構設計 6.5 數(shù)據(jù)庫的物理設計 6.6 數(shù)據(jù)庫實施 6.7 數(shù)據(jù)庫運行與維護 6.8 小結,An Introduction to Database System,6.2 需求分析,6.2.1 需求分析的任務 6.2.2 需求分析的方法 6.2.3 數(shù)據(jù)字典,An Introduction to Database System,需求分析(續(xù)),需求分析就是分析用戶的需要與要求 需求分析是設

14、計數(shù)據(jù)庫的起點 需求分析的結果是否準確地反映了用戶的實際要求,將直接影響到后面各個階段的設計,并影響到設計結果是否合理和實用,An Introduction to Database System,6.2 需求分析,6.2.1 需求分析的任務 6.2.2 需求分析的方法 6.2.3 數(shù)據(jù)字典,An Introduction to Database System,6.2.1 需求分析的任務,一、需求分析的任務 二、需求分析的重點 三、需求分析的難點,An Introduction to Database System,一、需求分析的任務,通過詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分

15、了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求 在此基礎上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴充和改變,不能僅僅按當前應用需求來設計數(shù)據(jù)庫,An Introduction to Database System,二、需求分析的重點,需求分析的重點是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。 信息要求 用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì) 由用戶的信息要求可以導出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù),An Introduction to Database System,需求分析的重點(續(xù)),處理要求 對處理功能的要求 對處理的響應時間

16、的要求 對處理方式的要求(批處理 / 聯(lián)機處理) 新系統(tǒng)的功能必須能夠滿足用戶的信息要求、處理要求、安全性與完整性要求。,An Introduction to Database System,三、需求分析的難點,確定用戶最終需求的難點 用戶缺少計算機知識,開始時無法確定計算機究竟能為自己做什么,不能做什么,因此無法一下子準確地表達自己的需求,他們所提出的需求往往不斷地變化。 設計人員缺少用戶的專業(yè)知識,不易理解用戶的真正需求,甚至誤解用戶的需求。 新的硬件、軟件技術的出現(xiàn)也會使用戶需求發(fā)生變化。,An Introduction to Database System,需求分析的難點(續(xù)),解決方

17、法 設計人員必須采用有效的方法,與用戶不斷深入地進行交流,才能逐步得以確定用戶的實際需求,An Introduction to Database System,6.2 需求分析,6.2.1 需求分析的任務 6.2.2 需求分析的方法 6.2.3 數(shù)據(jù)字典,An Introduction to Database System,6.2.2 需求分析的方法,調(diào)查清楚用戶的實際需求并進行初步分析 與用戶達成共識 進一步分析與表達這些需求,An Introduction to Database System,一、 調(diào)查與初步分析用戶需求, 調(diào)查組織機構情況 組織部門的組成情況 各部門的職責等,An In

18、troduction to Database System,調(diào)查與初步分析用戶需求(續(xù)), 調(diào)查各部門的業(yè)務活動情況。調(diào)查重點之一。 各個部門輸入和使用什么數(shù)據(jù) 如何加工處理這些數(shù)據(jù) 輸出什么信息 輸出到什么部門 輸出結果的格式是什么,An Introduction to Database System,調(diào)查與初步分析用戶需求(續(xù)), 在熟悉業(yè)務活動的基礎上,協(xié)助用戶明確對新系統(tǒng)的各種要求。調(diào)查重點之二。 信息要求 處理要求 完全性與完整性要求,An Introduction to Database System,調(diào)查與初步分析用戶需求(續(xù)), 對前面調(diào)查的結果進行初步分析 確定新系統(tǒng)的邊界

19、確定哪些功能由計算機完成或?qū)頊蕚渥層嬎銠C完成 確定哪些活動由人工完成 由計算機完成的功能就是新系統(tǒng)應該實現(xiàn)的功能。,An Introduction to Database System,二、常用調(diào)查方法,做需求調(diào)查時,往往需要同時采用多種方法 無論使用何種調(diào)查方法,都必須有用戶的積極參與和配合 設計人員應該和用戶取得共同的語言,幫助不熟悉計算機的用戶建立數(shù)據(jù)庫環(huán)境下的共同概念,并對設計工作的最后結果共同承擔責任,An Introduction to Database System,常用調(diào)查方法(續(xù)),常用調(diào)查方法 跟班作業(yè) 通過親身參加業(yè)務工作了解業(yè)務活動的情況 能比較準確地理解用戶的需求,

20、但比較耗時 開調(diào)查會 通過與用戶座談來了解業(yè)務活動情況及用戶需求 請專人介紹,An Introduction to Database System,常用調(diào)查方法(續(xù)),詢問 對某些調(diào)查中的問題,可以找專人詢問 設計調(diào)查表請用戶填寫 如果調(diào)查表設計合理,則很有效,且易于為用戶接受 查閱記錄 查閱與原系統(tǒng)有關的數(shù)據(jù)記錄,An Introduction to Database System,三、進一步分析和表達用戶需求,分析和表達用戶的需求的常用方法 自頂向下的結構化分析方法(Structured Analysis,簡稱SA方法) SA方法從最上層的系統(tǒng)組織機構入手,采用逐層分解的方式分析系統(tǒng),并用

21、數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。,An Introduction to Database System,進一步分析和表達用戶需求(續(xù)),1首先把任何一個系統(tǒng)都抽象為:,An Introduction to Database System,進一步分析和表達用戶需求(續(xù)),2分解處理功能和數(shù)據(jù) (1)分解處理功能 將處理功能的具體內(nèi)容分解為若干子功能,再將每個子功能繼續(xù)分解,直到把系統(tǒng)的工作過程表達清楚為止。 (2)分解數(shù)據(jù) 在處理功能逐步分解的同時,其所用的數(shù)據(jù)也逐級分解,形成若干層次的數(shù)據(jù)流圖 數(shù)據(jù)流圖表達了數(shù)據(jù)和處理過程的關系,An Introduction to Database System

22、,進一步分析和表達用戶需求(續(xù)),(3)表達方法 處理過程:用判定表或判定樹來描述 數(shù)據(jù):用數(shù)據(jù)字典來描述,An Introduction to Database System,進一步分析和表達用戶需求(續(xù)),3將分析結果再次提交給用戶,征得用戶的認可,An Introduction to Database System,四、需求分析小結,P211圖6.6,An Introduction to Database System,需求分析小結(續(xù)),實例:假設我們要開發(fā)一個學校管理系統(tǒng)。 1經(jīng)過可行性分析和初步需求調(diào)查,抽象出該系統(tǒng)最高層數(shù)據(jù)流圖,該系統(tǒng)由教師管理子系統(tǒng)、學生管理子系統(tǒng)、后勤管理子

23、系統(tǒng)組成,每個子系統(tǒng)分別配備一個開發(fā)小組。 2進一步細化各個子系統(tǒng)。 其中學生管理子系統(tǒng)開發(fā)小組通過進行進一步的需求調(diào)查,明確了該子系統(tǒng)的主要功能是進行學籍管理和課程管理,包括學生報到、入學、畢業(yè)的管理,學生上課情況的管理。通過詳細的信息流程分析和數(shù)據(jù)收集后,他們生成了該子系統(tǒng)的數(shù)據(jù)流圖。,An Introduction to Database System,6.2 需求分析,6.2.1 需求分析的任務 6.2.2 需求分析的方法 6.2.3 數(shù)據(jù)字典,An Introduction to Database System,6.2.3 數(shù)據(jù)字典,一、數(shù)據(jù)字典的用途 二、數(shù)據(jù)字典的內(nèi)容,An In

24、troduction to Database System,一、數(shù)據(jù)字典的用途,數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合 數(shù)據(jù)字典是進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結果 數(shù)據(jù)字典在數(shù)據(jù)庫設計中占有很重要的地位,An Introduction to Database System,二、數(shù)據(jù)字典的內(nèi)容,數(shù)據(jù)字典的內(nèi)容 數(shù)據(jù)項 數(shù)據(jù)結構 數(shù)據(jù)流 數(shù)據(jù)存儲 處理過程 數(shù)據(jù)項是數(shù)據(jù)的最小組成單位 若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結構 數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結構的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內(nèi)容。,An Introduction to Database System, 數(shù)據(jù)項,數(shù)據(jù)項是不可再分的數(shù)據(jù)單位

25、對數(shù)據(jù)項的描述 數(shù)據(jù)項描述數(shù)據(jù)項名,數(shù)據(jù)項含義說明, 別名,數(shù)據(jù)類型,長度,取值范圍, 取值含義,與其他數(shù)據(jù)項的邏輯關系 取值范圍、與其他數(shù)據(jù)項的邏輯關系定義了數(shù)據(jù)的完整性約束條件,An Introduction to Database System, 數(shù)據(jù)結構,數(shù)據(jù)結構反映了數(shù)據(jù)之間的組合關系。 一個數(shù)據(jù)結構可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結構組成,或由若干個數(shù)據(jù)項和數(shù)據(jù)結構混合組成。 對數(shù)據(jù)結構的描述 數(shù)據(jù)結構描述數(shù)據(jù)結構名,含義說明, 組成:數(shù)據(jù)項或數(shù)據(jù)結構,An Introduction to Database System, 數(shù)據(jù)流,數(shù)據(jù)流是數(shù)據(jù)結構在系統(tǒng)內(nèi)傳輸?shù)穆窂健?對

26、數(shù)據(jù)流的描述 數(shù)據(jù)流描述數(shù)據(jù)流名,說明,數(shù)據(jù)流來源, 數(shù)據(jù)流去向,組成:數(shù)據(jù)結構, 平均流量,高峰期流量 數(shù)據(jù)流來源是說明該數(shù)據(jù)流來自哪個過程 數(shù)據(jù)流去向是說明該數(shù)據(jù)流將到哪個過程去 平均流量是指在單位時間(每天、每周、每月等)里的傳輸次數(shù) 高峰期流量則是指在高峰時期的數(shù)據(jù)流量,An Introduction to Database System, 數(shù)據(jù)存儲,數(shù)據(jù)存儲是數(shù)據(jù)結構停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。 對數(shù)據(jù)存儲的描述 數(shù)據(jù)存儲描述數(shù)據(jù)存儲名,說明,編號, 流入的數(shù)據(jù)流 ,流出的數(shù)據(jù)流 , 組成:數(shù)據(jù)結構,數(shù)據(jù)量,存取方式 流入的數(shù)據(jù)流:指出數(shù)據(jù)來源 流出的數(shù)據(jù)流:指出數(shù)

27、據(jù)去向 數(shù)據(jù)量:每次存取多少數(shù)據(jù),每天(或每小時、每周等)存取幾次等信息 存取方法:批處理 / 聯(lián)機處理;檢索 / 更新;順序檢索 / 隨機檢索,An Introduction to Database System, 處理過程,處理過程的具體處理邏輯一般用判定表或判定樹來描述。數(shù)據(jù)字典中只需要描述處理過程的說明性信息 處理過程說明性信息的描述 處理過程描述處理過程名,說明, 輸入:數(shù)據(jù)流,輸出:數(shù)據(jù)流, 處理:簡要說明,An Introduction to Database System,處理過程(續(xù)),簡要說明:主要說明該處理過程的功能及處理要求 功能:該處理過程用來做什么 處理要求:處理頻

28、度要求(如單位時間里處理多少事務,多少數(shù)據(jù)量);響應時間要求等 處理要求是后面物理設計的輸入及性能評價的標準,An Introduction to Database System,處理過程(續(xù)),例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字典。 數(shù)據(jù)項,以“學號”為例: 數(shù)據(jù)項:學號 含義說明:唯一標識每個學生 別名:學生編號 類型:字符型 長度: 8 取值范圍:00000000至99999999 取值含義:前兩位標別該學生所在年級, 后六位按順序編號 與其他數(shù)據(jù)項的邏輯關系:,An Introduction to Database System,處理過程(續(xù)),數(shù)據(jù)結構 以“學生”為例 “學生”是該系統(tǒng)中

29、的一個核心數(shù)據(jù)結構: 數(shù)據(jù)結構:學生 含義說明:是學籍管理子系統(tǒng)的主體數(shù)據(jù)結 構,定義了一個學生的有關信息 組成:學號,姓名,性別,年齡, 所在系,年級,An Introduction to Database System,處理過程(續(xù)),數(shù)據(jù)流“體檢結果”可如下描述: 數(shù)據(jù)流:體檢結果 說明:學生參加體格檢查的最終結果 數(shù)據(jù)流來源:體檢 數(shù)據(jù)流去向:批準 組成: 平均流量: 高峰期流量:,An Introduction to Database System,處理過程(續(xù)),數(shù)據(jù)存儲“學生登記表”可如下描述: 數(shù)據(jù)存儲:學生登記表 說明:記錄學生的基本情況 流入數(shù)據(jù)流: 流出數(shù)據(jù)流: 組成:

30、數(shù)據(jù)量:每年3000張 存取方式:隨機存取,An Introduction to Database System,處理過程(續(xù)),處理過程“分配宿舍”可如下描述: 處理過程:分配宿舍 說明:為所有新生分配學生宿舍 輸入:學生,宿舍, 輸出:宿舍安排 處理:在新生報到后,為所有新生分配學 生宿舍。要求同一間宿舍只能安排 同一性別的學生,同一個學生只能 安排在一個宿舍中。每個學生的居 住面積不小于3平方米。安排新生 宿舍其處理時間應不超過15分鐘。,An Introduction to Database System,下課了。,休息一會兒。,攀 登,An Introduction to Datab

31、ase System,數(shù)據(jù)庫系統(tǒng)概論 An Introduction to Database System 第六章 數(shù)據(jù)庫設計(續(xù)-1),An Introduction to Database System,6.3 概念結構設計,6.3.1 概念結構設計概述 6.3.2 概念結構設計的方法與步驟 6.3.3 數(shù)據(jù)抽象與局部視圖設計 6.3.4 視圖的集成,An Introduction to Database System,6.3.1 概念結構,什么是概念結構設計 需求分析階段描述的用戶應用需求是現(xiàn)實世界的具體需求 將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計 概念結

32、構是各種數(shù)據(jù)模型的共同基礎,它比數(shù)據(jù)模型更獨立于機器、更抽象,從而更加穩(wěn)定。 概念結構設計是整個數(shù)據(jù)庫設計的關鍵,An Introduction to Database System,概念結構(續(xù)),An Introduction to Database System,概念結構(續(xù)),概念結構設計的特點 (1)能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。是對現(xiàn)實世界的一個真實模型。 (2)易于理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫的設計成功的關鍵。,An Introduction to Database System,概念結

33、構(續(xù)),概念結構設計的特點(續(xù)) (3)易于更改,當應用環(huán)境和應用要求改變時,容易對概念模型修改和擴充。 (4)易于向關系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。,An Introduction to Database System,概念結構(續(xù)),描述概念模型的工具 E-R模型,An Introduction to Database System,6.3 概念結構設計,6.3.1 概念結構設計概述 6.3.2 概念結構設計的方法與步驟 6.3.3 數(shù)據(jù)抽象與局部視圖設計 6.3.4 視圖的集成,An Introduction to Database System,6.3.2 概念結構設計的方法與步

34、驟,設計概念結構的四類方法 自頂向下 首先定義全局概念結構的框架,然后逐步細化 自底向上 首先定義各局部應用的概念結構,然后將它們集成起來,得到全局概念結構,An Introduction to Database System,概念結構設計的方法與步驟(續(xù)),逐步擴張 首先定義最重要的核心概念結構,然后向外擴充,以滾雪球的方式逐步生成其他概念結構,直至總體概念結構 混合策略 將自頂向下和自底向上相結合,用自頂向下策略設計一個全局概念結構的框架,以它為骨架集成由自底向上策略中設計的各局部概念結構。,An Introduction to Database System,概念結構設計的方法與步驟(續(xù)

35、),自頂向下策略,An Introduction to Database System,概念結構設計的方法與步驟(續(xù)),自底向上策略,An Introduction to Database System,概念結構設計的方法與步驟(續(xù)),逐步擴張,An Introduction to Database System,概念結構設計的方法與步驟(續(xù)),常用策略(P215圖6.8) 自頂向下地進行需求分析 自底向上地設計概念結構 自底向上設計概念結構的步驟 (P216圖6.9) 第1步:抽象數(shù)據(jù)并設計局部視圖 第2步:集成局部視圖,得到全局概念結構,An Introduction to Databas

36、e System,6.3 概念結構設計,6.3.1 概念結構設計概述 6.3.2 概念結構設計的方法與步驟 6.3.3 數(shù)據(jù)抽象與局部視圖設計 6.3.4 視圖的集成,An Introduction to Database System,6.3.3 數(shù)據(jù)抽象與局部視圖設計,數(shù)據(jù)抽象 局部視圖設計,An Introduction to Database System,一、數(shù)據(jù)抽象,概念結構是對現(xiàn)實世界的一種抽象 從實際的人、物、事和概念中抽取所關心的共同特性,忽略非本質(zhì)的細節(jié) 把這些特性用各種概念精確地加以描述 這些概念組成了某種模型,An Introduction to Database Sy

37、stem,數(shù)據(jù)抽象(續(xù)),三種常用抽象 1. 分類(Classification) 定義某一類概念作為現(xiàn)實世界中一組對象的類型 這些對象具有某些共同的特性和行為 它抽象了對象值和型之間的“is member of”的語義 在E-R模型中,實體型就是這種抽象 例:P216圖6.10,An Introduction to Database System,數(shù)據(jù)抽象(續(xù)),2. 聚集(Aggregation) 定義某一類型的組成成分 它抽象了對象內(nèi)部類型和成分之間“is part of”的語義 在E-R模型中若干屬性的聚集組成了實體型,就是這種抽象 例:P217圖6.11,圖6.12,An Intro

38、duction to Database System,數(shù)據(jù)抽象(續(xù)),3. 概括(Generalization) 定義類型之間的一種子集聯(lián)系 它抽象了類型之間的“is subset of”的語義 概括有一個很重要的性質(zhì):繼承性。子類繼承超類上定義的所有抽象。 例:P217圖6.13,An Introduction to Database System,數(shù)據(jù)抽象(續(xù)),注:原E-R模型不具有概括,本書對E-R模型作了擴充,允許定義超類實體型和子類實體型。 用雙豎邊的矩形框表示子類, 用直線加小圓圈表示超類-子類的聯(lián)系,An Introduction to Database System,數(shù)據(jù)抽象

39、(續(xù)),數(shù)據(jù)抽象的用途 對需求分析階段收集到的數(shù)據(jù)進行分類、組織(聚集),形成 實體 實體的屬性,標識實體的碼 確定實體之間的聯(lián)系類型(1:1,1:n,m:n),An Introduction to Database System,二、局部視圖設計,設計分E-R圖的步驟: 選擇局部應用 逐一設計分E-R圖,An Introduction to Database System, 選擇局部應用,需求分析階段,已用多層數(shù)據(jù)流圖和數(shù)據(jù)字典描述了整個系統(tǒng)。 設計分E-R圖首先需要根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個適當層次的數(shù)據(jù)流圖,讓這組圖中每一部分對應一個局部應用,然后以這一層次的數(shù)據(jù)流圖

40、為出發(fā)點,設計分E-R圖。,An Introduction to Database System,選擇局部應用(續(xù)),例:由于學籍管理、課程管理等都不太復雜,因此可以它們?nèi)胧衷O計學生管理子系統(tǒng)的分E-R圖。如果局部應用比較復雜,則可以從更下層的數(shù)據(jù)流圖入手。,An Introduction to Database System, 逐一設計分E-R圖,任務 標定局部應用中的實體、屬性、碼,實體間的聯(lián)系 將各局部應用涉及的數(shù)據(jù)分別從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,標定各局部應用中的實體、實體的屬性、標識實體的碼,確定實體之間的聯(lián)系及其類型(1:1,1:n,m:n),An Introduction

41、 to Database System,逐一設計分E-R圖(續(xù)),如何抽象實體和屬性 實體:現(xiàn)實世界中一組具有某些共同特性和行為的對象就可以抽象為一個實體。對象和實體之間是“is member of的關系。 例:在學校環(huán)境中,可把張三、李四等對象抽象為學生實體。,An Introduction to Database System,逐一設計分E-R圖(續(xù)),屬性:對象類型的組成成分可以抽象為實體的屬性。組成成分與對象類型之間是“is part of的關系。 例:學號、姓名、專業(yè)、年級等可以抽象為學生實體的屬性。其中學號為標識學生實體的碼。,An Introduction to Database

42、 System,逐一設計分E-R圖(續(xù)),如何區(qū)分實體和屬性 實體與屬性是相對而言的。同一事物,在一種應用環(huán)境中作為“屬性”,在另一種應用環(huán)境中就必須作為“實體”。 例:學校中的系,在某種應用環(huán)境中,它只是作為“學生”實體的一個屬性,表明一個學生屬于哪個系;而在另一種環(huán)境中,由于需要考慮一個系的系主任、教師人數(shù)、學生人數(shù)、辦公地點等,這時它就需要作為實體了。,An Introduction to Database System,逐一設計分E-R圖(續(xù)),一般原則 屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項,不能再由另一些屬性組成。 屬性不能與其他實體具有聯(lián)系。聯(lián)系只發(fā)生在實體之間

43、。 符合上述兩條特性的事物一般作為屬性對待。 為了簡化E-R圖的處置,現(xiàn)實世界中的事物凡能夠作為屬性對待的,應盡量作為屬性。,An Introduction to Database System,逐一設計分E-R圖(續(xù)),舉例 例1:“學生”由學號、姓名等屬性進一步描述,根據(jù)準則,“學生”只能作為實體,不能作為屬性。 例2:職稱通常作為教師實體的屬性,但在涉及住房分配時,由于分房與職稱有關,也就是說職稱與住房實體之間有聯(lián)系,根據(jù)準則,這時把職稱作為實體來處理會更合適些。(教程194圖6-10),An Introduction to Database System,逐一設計分E-R圖(續(xù)),設計

44、分E-R圖的步驟 (1)以數(shù)據(jù)字典為出發(fā)點定義E-R圖。 數(shù)據(jù)字典中的“數(shù)據(jù)結構”、“數(shù)據(jù)流”和“數(shù)據(jù)存儲”等已是若干屬性的有意義的聚合 (2)按上面給出的準則進行必要的調(diào)整。,An Introduction to Database System,逐一設計分E-R圖(續(xù)),例:學籍管理局部應用中主要涉及的實體包括學生、宿舍、檔案材料、班級、班主任。 實體之間的聯(lián)系: 由于一個宿舍可以住多個學生,而一個學生只能住在某一個宿舍中,因此宿舍與學生之間是1:n的聯(lián)系。 由于一個班級往往有若干名學生,而一個學生只能屬于一個班級,因此班級與學生之間也是1:n的聯(lián)系。,An Introduction to

45、Database System,逐一設計分E-R圖(續(xù)),由于班主任同時還要教課,因此班主任與學生之間存在指導聯(lián)系,一個班主任要教多名學生,而一個學生只對應一個班主任,因此班主任與學生之間也是1:n的聯(lián)系。 而學生和他自己的檔案材料之間,班級與班主任之間都是1:1的聯(lián)系。 學籍管理局部應用的分E-R圖草圖:教程195圖611,An Introduction to Database System,逐一設計分E-R圖(續(xù)),接下來需要進一步斟酌該E-R圖,做適當調(diào)整。 (1) 在一般情況下,性別通常作為學生實體的屬性,但在本局部應用中,由于宿舍分配與學生性別有關,根據(jù)準則,應該把性別作為實體對待。

46、 (2) 數(shù)據(jù)存儲“學生登記表”,由于是手工填寫,供存檔使用,其中有用的部分已轉(zhuǎn)入學生檔案材料中,因此這里就不必作為實體了。 最后得到學籍管理局部應用的分E-R圖:教程195如圖6-12。,An Introduction to Database System,逐一設計分E-R圖(續(xù)),該E-R圖中省略了各個實體的屬性描述: 學生:學號,姓名,出生日期 性別:性別 檔案材料:檔案號, 班級:班級號,學生人數(shù) 班主任:職工號,姓名,性別, 是否為優(yōu)秀班主任 宿舍:宿舍編號,地址,人數(shù) 其中有下劃線的屬性為實體的碼。,An Introduction to Database System,逐一設計分E

47、-R圖(續(xù)),同樣方法可以得到課程管理局部應用的分E-R圖,(圖6-13) 各實體的屬性分別為: 學生:姓名,學號,性別,年齡,所在系, 年級,平均成績 課程:課程號,課程名,學分 教師:職工號,姓名,性別,職稱 教科書:書號,書名,價錢 教室:教室編號,地址,容量,An Introduction to Database System,題目,設有一局部應用,包括3個實體,“科室”、“醫(yī)生”和“病人”,且有以下事實: 每位醫(yī)生屬于且僅屬于一個科室;每個科室有多位醫(yī)生可接診病人;病人根據(jù)自己的癥狀選擇相應的科室就診;一位病人在同一科室中多次看病時,每次可能由不同的醫(yī)生為其診斷。 設科室的屬性包括科

48、室代碼、科室名稱,醫(yī)生的屬性包括工號、姓名、職稱,病人的屬性包括姓名、年齡、工作單位,試設計局部ER圖。,An Introduction to Database System,6.3 概念結構設計,6.3.1 概念結構 6.3.2 概念結構設計的方法與步驟 6.3.3 數(shù)據(jù)抽象與局部視圖設計 6.3.4 視圖的集成,An Introduction to Database System,6.3.4 視圖的集成,各個局部視圖即分E-R圖建立好后,還需要對它們進行合并,集成為一個整體的數(shù)據(jù)概念結構即總E-R圖。,An Introduction to Database System,視圖的集成(續(xù)),

49、視圖集成的兩種方式 一次集成(P224圖6.25(a)) 一次集成多個分E-R圖 通常用于局部視圖比較簡單時 逐步累積式(P224圖6.25(b)) 首先集成兩個局部視圖(通常是比較關鍵的兩個局部視圖) 以后每次將一個新的局部視圖集成進來,An Introduction to Database System,視圖的集成(續(xù)),集成局部E-R圖的步驟 1. 合并 2. 修改與重構,An Introduction to Database System,視圖的集成(續(xù)),An Introduction to Database System,一、合并分E-R圖,生成初步E-R圖,各分圖存在沖突 各個局

50、部應用所面向的問題不同 由不同的設計人員進行設計 各個分E-R圖之間必定會存在許多不一致的地方 合并分E-R圖的主要工作與關鍵所在:合理消除各分E-R圖的沖突,An Introduction to Database System,合并分E-R圖,生成初步E-R圖(續(xù)),沖突的種類 屬性沖突 命名沖突 結構沖突,An Introduction to Database System, 屬性沖突,兩類屬性沖突 屬性域沖突:屬性值的類型、取值范圍或取值集合不同。 例1, 由于學號是數(shù)字,因此某些部門(即局部應用)將學號定義為整數(shù)形式,而由于學號不用參與運算,因此另一些部門(即局部應用)將學號定義為字符

51、型形式。 例2, 某些部門(即局部應用)以出生日期形式表示學生的年齡,而另一些部門(即局部應用)用整數(shù)形式表示學生的年齡。,An Introduction to Database System,屬性沖突(續(xù)),屬性取值單位沖突。 例:學生的身高,有的以米為單位,有的以厘米為單位,有的以尺為單位。,An Introduction to Database System,屬性沖突(續(xù)),屬性沖突的解決方法 通常用討論、協(xié)商等行政手段加以解決,An Introduction to Database System, 命名沖突,兩類命名沖突 同名異義:不同意義的對象在不同的局部應用中具有相同的名字 例,局

52、部應用A中將教室稱為房間 局部應用B中將學生宿舍稱為房間 異名同義(一義多名):同一意義的對象在不同的局部應用中具有不同的名字 例,有的部門把教科書稱為課本 有的部門則把教科書稱為教材,An Introduction to Database System,命名沖突(續(xù)),命名沖突可能發(fā)生在屬性級、實體級、聯(lián)系級上。其中屬性的命名沖突更為常見。 命名沖突的解決方法 通過討論、協(xié)商等行政手段加以解決,An Introduction to Database System, 結構沖突,三類結構沖突 同一對象在不同應用中具有不同的抽象 例,“課程”在某一局部應用中被當作實體 在另一局部應用中則被當作屬性

53、 解決方法:通常是把屬性變換為實體或把實體變換為屬性,使同一對象具有相同的抽象。變換時要遵循兩個準則。,An Introduction to Database System,結構沖突(續(xù)),同一實體在不同局部視圖中所包含的屬性不完全相同,或者屬性的排列次序不完全相同。 產(chǎn)生原因:不同的局部應用關心的是該實體的不同側(cè)面。 解決方法:使該實體的屬性取各分E-R圖中屬性的并集,再適當設計屬性的次序。,An Introduction to Database System,結構沖突(續(xù)),學生,學號,姓名,性別,平均成績,(a)在局部應用A中,An Introduction to Database Sy

54、stem,結構沖突(續(xù)),學生,學號,姓名,出生日期,年級,(b)在局部應用B中,所在系,An Introduction to Database System,結構沖突(續(xù)),學生,學號,姓名,政治面貌,(c)在局部應用C中,An Introduction to Database System,結構沖突(續(xù)),學生,政治 面貌,學號,出生 日期,年級,(d)合并后,所在系,平均 成績,姓名,性別,An Introduction to Database System,結構沖突(續(xù)),實體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型 例1, 實體E1與E2在局部應用A中是多對多聯(lián)系,而在局部應用B中是

55、一對多聯(lián)系 例2, 在局部應用X中E1與E2發(fā)生聯(lián)系,而在局部應用Y中E1、E2、E3三者之間有聯(lián)系。 解決方法:根據(jù)應用語義對實體聯(lián)系的類型進行綜合或調(diào)整。(P226圖6.27),An Introduction to Database System,合并分E-R圖,生成初步E-R圖實例,例:生成學校管理系統(tǒng)的初步E-R圖 以合并學籍管理局部視圖, 課程管理局部視圖為例 這兩個分E-R圖存在著多方面的沖突:,An Introduction to Database System,合并分E-R圖,生成初步E-R圖實例,(1) 班主任實際上也屬于教師,也就是說學籍管理中的班主任實體與課程管理中的教師

56、實體在一定程度上屬于異名同義,可以應將學籍管理中的班主任實體與課程管理中的教師實體統(tǒng)一稱為教師,統(tǒng)一后教師實體的屬性構成為: 教師:職工號,姓名,性別,職稱, 是否為優(yōu)秀班主任,An Introduction to Database System,合并分E-R圖,生成初步E-R圖實例(續(xù)),(2) 將班主任改為教師后,教師與學生之間的聯(lián)系在兩個局部視圖中呈現(xiàn)兩種不同的類型,一種是學籍管理中教師與學生之間的指導聯(lián)系,一種是課程管理中教師與學生之間的教學聯(lián)系,由于指導聯(lián)系實際上可以包含在教學聯(lián)系之中,因此可以將這兩種聯(lián)系綜合為教學聯(lián)系。,An Introduction to Database Sy

57、stem,合并分E-R圖,生成初步E-R圖實例(續(xù)),(3) 性別在兩個局部應用中具有不同的抽象,它在學籍管理中為實體,在課程管理中為屬性,按照前面提到的兩個原則,在合并后的E-R圖中性別只能作為實體,否則它無法與宿舍實體發(fā)生聯(lián)系。,An Introduction to Database System,合并分E-R圖,生成初步E-R圖實例(續(xù)),(4) 在兩個局部E-R圖中,學生實體屬性組成及次序都存在差異,應將所有屬性綜合,并重新調(diào)整次序。假設調(diào)整結果為: 學生:學號,姓名,出生日期,年齡,所在系,年級,平均成績 解決上述沖突后,學籍管理分E-R圖與課程管理分E-R圖合并為198圖6-16的

58、形式。,An Introduction to Database System,二、修改與重構,基本任務 消除不必要的冗余,設計生成基本E-R圖,An Introduction to Database System,修改與重構(續(xù)),1冗余 2消除冗余的方法,An Introduction to Database System,1冗余,冗余的數(shù)據(jù)是指可由基本數(shù)據(jù)導出的數(shù)據(jù), 冗余的聯(lián)系是指可由其他聯(lián)系導出的聯(lián)系。 冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫維護增加困難 并不是所有的冗余數(shù)據(jù)與冗余聯(lián)系都必須加以消除,有時為了提高某些應用的效率,不得不以冗余信息作為代價。,An Introd

59、uction to Database System,冗余(續(xù)),設計數(shù)據(jù)庫概念結構時,哪些冗余信息必須消除,哪些冗余信息允許存在,需要根據(jù)用戶的整體需求來確定。 消除不必要的冗余后的初步E-R圖稱為基本E-R圖。,An Introduction to Database System,2消除冗余的方法,分析方法 以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù),根據(jù)數(shù)據(jù)字典中關于數(shù)據(jù)項之間邏輯關系的說明來消除冗余。,An Introduction to Database System,消除冗余的方法(續(xù)),例,教師工資單中包括該教師的基本工資、各種補貼、應扣除的房租水電費以及實發(fā)工資。 由于實發(fā)工資可以由前面各項推算

60、出來,因此可以去掉,在需要查詢實發(fā)工資時根據(jù)基本工資、各種補貼、應扣除的房租水電費數(shù)據(jù)臨時生成。,An Introduction to Database System,消除冗余的方法(續(xù)),如果是為了提高效率,人為地保留了一些冗余數(shù)據(jù),則應把數(shù)據(jù)字典中數(shù)據(jù)關聯(lián)的說明作為完整性約束條件。 一種更好的方法是把冗余數(shù)據(jù)定義在視圖中,An Introduction to Database System,消除冗余的方法(續(xù)),規(guī)范化理論 函數(shù)依賴的概念提供了消除冗余聯(lián)系的形式化工具,An Introduction to Database System,消除冗余的方法(續(xù)),方法 1. 確定分E-R圖實體

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論