數(shù)據(jù)庫設計ppt.ppt_第1頁
數(shù)據(jù)庫設計ppt.ppt_第2頁
數(shù)據(jù)庫設計ppt.ppt_第3頁
數(shù)據(jù)庫設計ppt.ppt_第4頁
數(shù)據(jù)庫設計ppt.ppt_第5頁
已閱讀5頁,還剩134頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫設計,為什么需要設計數(shù)據(jù)庫?,修建茅屋需要設計嗎?,修建大廈需要設計嗎?,結論:當數(shù)據(jù)庫比較復雜時我們需要設計數(shù)據(jù)庫,為什么需要設計數(shù)據(jù)庫?,良好的數(shù)據(jù)庫設計: 節(jié)省數(shù)據(jù)的存儲空間 能夠保證數(shù)據(jù)的完整性 方便進行數(shù)據(jù)庫應用系統(tǒng)的開發(fā) 糟糕的數(shù)據(jù)庫設計: 數(shù)據(jù)冗余、存儲空間浪費 內(nèi)存空間浪費 數(shù)據(jù)更新和插入的異常,什么是數(shù)據(jù)庫設計,數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,構造(設計)優(yōu)化的數(shù)據(jù)庫邏輯模式和物理結構,并據(jù)此建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足各種用戶的應用需求,包括信息管理要求和數(shù)據(jù)操作要求。 目標:為用戶和各種應用系統(tǒng)提供一個信息基礎設施和高效率的運行環(huán)

2、境,數(shù)據(jù)庫設計專業(yè)人員應具備哪些知識?,數(shù)據(jù)庫的基本知識和數(shù)據(jù)庫設計技術 計算機科學的基礎知識和程序設計的方法和技巧 軟件工程的原理和方法 應用領域的知識,數(shù)據(jù)庫設計方法,手工試湊法 設計質(zhì)量與設計人員的經(jīng)驗和水平有直接關系 缺乏科學理論和工程方法的支持,工程的質(zhì)量難以保證 數(shù)據(jù)庫運行一段時間后常常又不同程度地發(fā)現(xiàn)各種問題,增加了維護代價,數(shù)據(jù)庫設計方法,規(guī)范設計法 手工設計方法 基本思想:過程迭代和逐步求精 典型方法 新奧爾良(New Orleans)方法 將數(shù)據(jù)庫設計分為四個階段 基于E-R模型的數(shù)據(jù)庫設計方法 概念設計階段廣泛采用 3NF(第三范式)的設計方法 邏輯階段可采用的有效方法

3、ODL(Object Definition Language)方法 面向?qū)ο蟮臄?shù)據(jù)庫設計方法 計算機輔助設計 ORACLE Designer 2000 SYBASE PowerDesigner,良構設計的目標,數(shù)據(jù)庫支持設定的和實時的信息提取。數(shù)據(jù)庫必須存儲必要的信息,支持在設計時確定的信息需求,并支持用戶可能提出的實時查詢。 表應當正確、有效地構造。數(shù)據(jù)庫中的每個表都代表一個主題,由一些相關的字段組成,數(shù)據(jù)的冗余度盡可能小,并且在整個數(shù)據(jù)庫中通過一個具有唯一值的字段表示。 數(shù)據(jù)的完整性強加在字段、表和關系級。這些完整性幫助確保數(shù)據(jù)結構和它們的值始終是有效的和正確的。 數(shù)據(jù)庫支持與組織機構有關

4、的業(yè)務規(guī)則。數(shù)據(jù)必須提供合法和正確的信息,這些信息對于企業(yè)總是有意義的。 數(shù)據(jù)庫支持未來的增長。隨著企業(yè)的信息需求的變化和增長,數(shù)據(jù)庫的結構應當易于修改和擴充。,開發(fā)周期,現(xiàn)實世界,需求分析階段:分析客戶的業(yè)務和數(shù)據(jù)處理需求; 概要設計階段:設計數(shù)據(jù)庫的E-R模型圖,確認需求信息的正確和完整; 詳細設計階段:將E-R圖轉換為多張表,進行邏輯設計,并應用數(shù)據(jù)庫設計的三大范式進行審核; 代碼編寫階段:選擇具體數(shù)據(jù)庫進行物理實現(xiàn); 軟件測試階段: 安裝部署:,數(shù)據(jù)庫設計的基本步驟,數(shù)據(jù)庫設計分6個階段 需求分析 概念結構設計 邏輯結構設計 物理結構設計 數(shù)據(jù)庫實施 數(shù)據(jù)庫運行和維護 需求分析和概念設

5、計獨立于任何數(shù)據(jù)庫管理系統(tǒng) 邏輯設計和物理設計與選用的DBMS密切相關,數(shù)據(jù)庫設計準備工作,準備工作: 選定參加設計的人 1. 數(shù)據(jù)庫分析設計人員 數(shù)據(jù)庫設計的核心人員 自始至終參與數(shù)據(jù)庫設計 其水平?jīng)Q定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量 2.用戶 在數(shù)據(jù)庫設計中也是舉足輕重的 主要參加需求分析和數(shù)據(jù)庫的運行維護 用戶積極參與帶來的好處 加速數(shù)據(jù)庫設計 提高數(shù)據(jù)庫設計的質(zhì)量,3. 程序員 在系統(tǒng)實施階段參與進來,負責編制程序 4. 操作員 在系統(tǒng)實施階段參與進來,準備軟硬件環(huán)境,需求分析階段 準確了解與分析用戶需求(包括數(shù)據(jù)與處理) 是整個設計過程的基礎,是最困難、最耗費時間的一步,概念結構設計階段 是整個數(shù)

6、據(jù)庫設計的關鍵 通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,邏輯結構設計階段 將概念結構轉換為某個DBMS所支持的數(shù)據(jù)模型 對其進行優(yōu)化,數(shù)據(jù)庫物理設計階段 為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結構(包括存儲結構和存取方法),數(shù)據(jù)庫實施階段 運用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設計和物理設計的結果 建立數(shù)據(jù)庫 編制與調(diào)試應用程序 組織數(shù)據(jù)入庫 并進行試運行,需求分析-任務,需求分析就是分析用戶的需要與要求 需求分析是設計數(shù)據(jù)庫的起點 需求分析的結果是否準確地反映了用戶的實際要求,將直接影響到后面各個階段的設計,并影響到設計結果是否合理和實用

7、需求分析的任務 通過詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求,在此基礎上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴充和改變,不能僅僅按當前應用需求來設計數(shù)據(jù)庫。,需求分析-重點,調(diào)查的重點是“數(shù)據(jù)”和“處理”,獲得用戶對數(shù)據(jù)庫要求 信息要求 處理要求 安全性與完整性要求,需求分析-難點,確定用戶最終需求 用戶缺少計算機知識 設計人員缺少用戶的專業(yè)知識 解決方法 設計人員必須不斷深入地與用戶進行交流,需求分析-方法,調(diào)查清楚用戶的實際需求并進行初步分析 與用戶達成共識 進一步分析與表達這些需求,需求分析-調(diào)查步驟

8、, 調(diào)查組織機構情況 調(diào)查各部門的業(yè)務活動情況。(調(diào)查重點之一) 在熟悉業(yè)務活動的基礎上,協(xié)助用戶明確對新系統(tǒng)的各種要求。(調(diào)查重點之二) 確定新系統(tǒng)的邊界,需求分析-調(diào)查方法,做需求調(diào)查時,往往需要同時采用多種方法 無論使用何種調(diào)查方法,都必須有用戶的積極參與和配合 設計人員應該和用戶取得共同的語言,幫助不熟悉計算機的用戶建立數(shù)據(jù)庫環(huán)境下的共同概念,并對設計工作的最后結果共同承擔責任 常用調(diào)查方法 跟班作業(yè) 開調(diào)查會 請專人介紹 詢問 設計調(diào)查表請用戶填寫 查閱記錄,需求分析-分析方法,分析和表達用戶的需求的常用方法 自頂向下的結構化分析方法(Structured Analysis,簡稱SA

9、方法) SA方法從最上層的系統(tǒng)組織機構入手,采用自頂向下、逐層分解的方式分析系統(tǒng),并用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。,需求分析-分析方法-DFD,1. 首先把任何一個系統(tǒng)都抽象為: 2分解處理功能和數(shù)據(jù) (1)分解處理功能 將處理功能的具體內(nèi)容分解為若干子功能,再將每個子功能繼續(xù)分解,直到把系統(tǒng)的工作過程表達清楚為止。 (2)分解數(shù)據(jù) 在處理功能逐步分解的同時,其所用的數(shù)據(jù)也逐級分解,形成若干層次的數(shù)據(jù)流圖 (3)表達方法 處理邏輯:用判定表或判定樹來描述 數(shù)據(jù):用數(shù)據(jù)字典來描述 3將分析結果再次提交給用戶,征得用戶的認可,信息要求,處理要求,需求分析-分析方法-DFD舉例,需求分析-分析方法-

10、數(shù)據(jù)字典,數(shù)據(jù)字典的用途 是各類數(shù)據(jù)描述的集合 進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結果 數(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ù)項之間的聯(lián)系 數(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ù)據(jù)量,存取頻度,存取方式 處

11、理過程描述 = 處理過程名,說明,輸入:數(shù)據(jù)流,輸出:數(shù)據(jù)流,處理:簡要說明,數(shù)據(jù)依賴,數(shù)據(jù)完整性約束,數(shù)據(jù)完整性約束,需求分析-分析方法-數(shù)據(jù)字典,例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字典。 數(shù)據(jù)項,以“學號”為例:,數(shù)據(jù)項名:學號 含義說明:唯一標識每個學生 別名:學生編號 類型:字符型 長度:8 取值范圍:00000000至99999999 取值含義:前兩位標別該學生所在年級, 后六位按順序編號 與其他數(shù)據(jù)項的邏輯關系:,需求分析-分析方法-數(shù)據(jù)字典,例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字典。 數(shù)據(jù)結構,以“學生”為例 “學生”是該系統(tǒng)中的一個核心數(shù)據(jù)結構:,數(shù)據(jù)結構:學生 含義說明:是學籍管理子系統(tǒng)的

12、主體數(shù)據(jù)結構, 定義了一個學生的有關信息 組成:學號,姓名,性別,年齡,所在系,年級,需求分析-分析方法-數(shù)據(jù)字典,例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字典。 數(shù)據(jù)流,“體檢結果”可如下描述:,數(shù)據(jù)流:體檢結果 說明:學生參加體格檢查的最終結果 數(shù)據(jù)流來源:體檢 數(shù)據(jù)流去向:批準 組成: 平均流量: 高峰期流量:,需求分析-分析方法-數(shù)據(jù)字典,例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字典。 數(shù)據(jù)存儲,“學生登記表”可如下描述:,數(shù)據(jù)存儲:學生登記表 說明:記錄學生的基本情況 流入數(shù)據(jù)流: 流出數(shù)據(jù)流: 組成: 數(shù)據(jù)量:每年3000張 存取方式:隨機存取,需求分析-分析方法-數(shù)據(jù)字典,例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字

13、典。 處理過程,“分配宿舍”可如下描述:,處理過程:分配宿舍 說明:為所有新生分配學生宿舍 輸入:學生,宿舍 輸出:宿舍安排 處理:在新生報到后,為所有新生分配學生宿舍。 要求同一間宿舍只能安排同一性別的學生, 同一個學生只能安排在一個宿舍中。 每個學生的居住面積不小于3平方米。 安排新生宿舍其處理時間應不超過15分鐘,需求分析-分析方法-數(shù)據(jù)字典,數(shù)據(jù)字典是關于數(shù)據(jù)庫中數(shù)據(jù)的描述,是元數(shù)據(jù),而不是數(shù)據(jù)本身 數(shù)據(jù)字典在需求分析階段建立,在數(shù)據(jù)庫設計過程中不斷修改、充實、完善,需求分析-小結,設計人員應充分考慮到可能的擴充和改變,使設計易于更改,系統(tǒng)易于擴充 必須強調(diào)用戶的參與,概念結構設計,需

14、求分析階段描述的用戶應用需求是現(xiàn)實世界的具體需求 將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計 概念結構是各種數(shù)據(jù)模型的共同基礎,它比數(shù)據(jù)模型更獨立于機器、更抽象,從而更加穩(wěn)定。 概念結構設計是整個數(shù)據(jù)庫設計的關鍵,概念結構設計,概念結構設計的特點 能真實、充分地反映現(xiàn)實世界 易于理解 易于更改 易于向關系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉換 描述概念模型的工具 E-R模型,概念結構設計-方法,設計概念結構的四類方法 自頂向下 首先定義全局概念結構的框架,然后逐步細化,概念結構設計-方法,自底向上 首先定義各局部應用的概念結構,然后將它們集成起來,得到全局概念結構,概念結構

15、設計-方法,逐步擴張 首先定義最重要的核心概念結構,然后向外擴充,以滾雪球的方式逐步生成其他概念結構,直至總體概念結構,概念結構設計-方法,混合策略 將自頂向下和自底向上相結合,用自頂向下策略設計一個全局概念結構的框架,以它為骨架集成由自底向上策略中設計的各局部概念結構。,概念結構設計-方法,常用策略 自頂向下地進行需求分析 自底向上地設計概念結構,概念結構設計-方法,自底向上設計概念結構的步驟 第1步:抽象數(shù)據(jù)并設計局部視圖 第2步:集成局部視圖,得到全局概念結構,概念結構設計-數(shù)據(jù)抽象與局部視圖,數(shù)據(jù)抽象 抽象是對實際的人、物、事和概念中抽取所關心的共同特性,忽略非本質(zhì)的細節(jié),并把這些特性

16、用各種概念精確地加以描述。 概念結構是對現(xiàn)實世界的一種抽象。 三類抽象 分類 聚集 概括,概念結構設計-數(shù)據(jù)抽象與局部視圖,分類 將一類具有共同特性和行為的對象定義為一種某類型,在E-R模型中的實體型就是這種抽象,如學生,課程 抽象了對象的值和型之間“is member of”語義,概念結構設計-數(shù)據(jù)抽象與局部視圖,聚集 定義某類型的組成成分,對應E-R模型中實體的屬性 抽象了對象類型和其成分之間的“is part of”語義,概念結構設計-數(shù)據(jù)抽象與局部視圖,概括 定義類型之間的子集聯(lián)系,形成超(父)類、子類 抽象了類型之間“is subset of”語義 概括的重要性質(zhì):繼承,即子類集成超

17、類的所有抽象 是E-R模型的抽象機制的擴充,概念結構設計-第一步,利用抽象機制,對需求分析階段收集到的數(shù)據(jù)進行分類、組織(聚集) 形成實體,實體的屬性,標識實體的碼,確定實體間的聯(lián)系類型 設計局部E-R圖 選擇局部應用 逐一設計分E-R圖,概念結構設計-設計局部E-R圖1,選擇局部應用 在需求分析階段,通過對應用環(huán)境和要求進行詳盡的調(diào)查分析,用多層數(shù)據(jù)流圖和數(shù)據(jù)字典描述了整個系統(tǒng)。設計分E-R圖的第一步,就是要根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個適當層次的(經(jīng)驗很重要)數(shù)據(jù)流圖,讓這組圖中每一部分對應一個局部應用,我們就可以從這一層次的數(shù)據(jù)流圖為出發(fā)點,設計分E-R圖。 一般而言,中

18、層的數(shù)據(jù)流圖能較好地反映系統(tǒng)中各局部應用的子系統(tǒng)組成,因此人們往往以中層數(shù)據(jù)流圖作為設計分E-R圖的依據(jù)。,概念結構設計-設計局部E-R圖2,逐一設計分E-R圖 每個局部應用都對應了一組數(shù)據(jù)流圖,局部應用涉及的數(shù)據(jù)都已經(jīng)收集在數(shù)據(jù)字典中了?,F(xiàn)在就是要將這些數(shù)據(jù)從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,標定局部應用中的實體、實體的屬性、標識實體的碼,確定實體之間的聯(lián)系及其類型(1:1、1:n、m:n)。 現(xiàn)實世界中一組具有某些共同特性和行為的對象就可以抽象為一個實體。 對象類型的組成成分可以抽象為實體的屬性。,概念結構設計-設計局部E-R圖2,實際上實體與屬性是相對而言的,很難有截然劃分的界限。同一事

19、物,在一種應用環(huán)境中作為“屬性”,在另一種應用環(huán)境中就必須作為“實體”。一般說來,在給定的應用環(huán)境中: 兩條準則: (1)屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項,不能再由另一些屬性組成 (2)屬性不能與其他實體具有聯(lián)系。聯(lián)系只發(fā)生在實體之間,遵照簡單原則,概念結構設計-設計局部E-R圖例,學生選課局部,概念結構設計-設計局部E-R圖例,教師任課局部,概念結構設計-E-R圖集成,集成方式 多個局部E-R圖一次集成,或以累加方式逐步集成 集成步驟 合并局部E-R圖,生成初步E-R圖 依靠協(xié)商或應用語義消除各局部E-R圖之間的 屬性沖突:如屬性的類型、取值范圍沖突,或?qū)傩匀≈祮挝粵_

20、突 命名沖突:如同名異義,或一義多名 結構沖突:如不同應用中,同一對象有不同的抽象或同一實體包含的屬性不完全相同(三類結構沖突) 修改和重構,生成基本E-R圖 依據(jù)分析和規(guī)范化理論來消除冗余,概念結構設計-三類結構沖突,三類結構沖突 同一對象在不同應用中具有不同的抽象 同一實體在不同分E-R圖中所包含的屬性個數(shù)和屬性排列次序不完全相同 實體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型,消除不必要的冗余,設計基本E-R圖,基本任務 消除不必要的冗余,設計生成基本E-R圖,消除不必要的冗余,設計基本E-R圖,消除冗余的方法 以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù) 根據(jù)數(shù)據(jù)字典中關于數(shù)據(jù)項之間的邏輯關系,概念結構設

21、計-E-R圖集成 例,學會選課系統(tǒng)實例-基本ER圖,概念結構設計-E-R圖集成 例,實例 某工廠管理信息系統(tǒng)的視圖集成。 該廠物資管理分E-R圖,概念結構設計-E-R圖集成 例,該廠銷售管理分E-R圖,概念結構設計-E-R圖集成 例,該廠勞動人事管理分E-R圖,概念結構設計-E-R圖集成 例,系統(tǒng)的基本E-R,概念結構設計-驗證整體概念結構,視圖集成后形成一個整體的數(shù)據(jù)庫概念結構,對該整體概念結構還必須進行進一步驗證,確保它能夠滿足下列條件: 整體概念結構內(nèi)部必須具有一致性,不存在互相矛盾的表達 整體概念結構能準確地反映原來的每個視圖結構,包括屬性、實體及實體間的聯(lián)系 整體概念結構能滿足需求分

22、析階段所確定的所有要求 整體概念結構最終還應該提交給用戶,征求用戶和有關人員的意見,進行評審、修改和優(yōu)化,然后把它確定下來,作為數(shù)據(jù)庫的概念結構,作為進一步設計數(shù)據(jù)庫的依據(jù)。,概念結構設計-實例,收集信息: 與該系統(tǒng)有關人員進行交流、坐談,充分理解數(shù)據(jù)庫需要完成的任務,BBS論壇的基本功能: 用戶注冊和登錄:后臺數(shù)據(jù)庫需要存放用戶的注冊信息和在線狀態(tài)信息; 用戶發(fā)貼:后臺數(shù)據(jù)庫需要存放貼子相關信息,如貼子內(nèi)容、標題等; 論壇版塊管理:后臺數(shù)據(jù)庫需要存放各個版塊信息,如版主、版塊名稱、貼子數(shù)等;,概念結構設計-實例,標識對象(實體Entity) 標識數(shù)據(jù)庫要管理的關鍵對象或?qū)嶓w,實體一般是名詞:

23、 用戶:論壇普通用戶、各版塊的版主。 用戶發(fā)的主貼 用戶發(fā)的跟貼(回貼) 版塊:論壇的各個版塊信息,概念結構設計-實例,標識每個實體的屬性 (Attribute),論壇用戶: 呢稱 密碼 電子郵件 生日 性別 用戶的等級 備注信息 注冊日期 狀態(tài) 積分,主貼 發(fā)貼人 發(fā)貼表情 回復數(shù)量 標題 正文 發(fā)貼時間 點擊數(shù) 狀態(tài): 最后回復時間,回貼 貼子編號 回貼人, 回貼表情 標題 正文 回貼時間 點擊數(shù),版塊 版塊名稱 版主 本版格言 點擊率 發(fā)貼數(shù),概念結構設計-實例,標識對象之間的關系(Relationship),跟貼和主貼有主從關系:我們需要在跟貼對象中表明它是誰的跟貼; 版塊和用戶有關系

24、:從用戶對象中可以根據(jù)版塊對象查出對應的版主用戶的情況; 主貼和版塊有主從關系:需要表明發(fā)貼是屬于哪個版塊的; 跟貼和版塊有主從關系:需要表明跟貼是屬于哪個版塊的;,概念結構設計-實例,E-R(EntityRelationship)實體關系圖,概念結構設計-繪制ER圖,映射基數(shù),概念結構設計-小結,概念結構設計的步驟 抽象數(shù)據(jù)并設計局部視圖 集成局部視圖,得到全局概念結構 驗證整體概念結構,邏輯結構設計,邏輯結構設計的任務 把概念結構設計階段設計好的基本E-R圖轉換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結構 邏輯結構設計的步驟 將概念結構轉化為一般的關系、網(wǎng)狀、層次模型 將轉換來的關

25、系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉換 對數(shù)據(jù)模型進行優(yōu)化,邏輯結構設計,邏輯結構設計-向關系模型的轉換,1實體的轉換規(guī)則 將E-R圖中的每一個常規(guī)實體轉換為一個關系,實體的屬性就是關系的屬性,實體的碼就是關系的碼。 2實體間聯(lián)系的轉換規(guī)則 (1)一個1:1聯(lián)系可以轉換為一個獨立的關系模式,也可以與任意一端所對應的關系模式合并。 (2)一個1:n聯(lián)系可以轉換為一個獨立的關系模式,也可以與n端所對應的關系模式合并。 (3)一個m:n聯(lián)系轉換為一個關系模式。轉換的方法為:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉換為關系的屬性,新關系的碼為兩個相連實體碼的組合。 (4)三個或三個

26、以上實體間的多元聯(lián)系轉換為一個關系模式。,邏輯結構設計-向關系模型的轉換,3關系合并規(guī)則 為了減少系統(tǒng)中的關系個數(shù),如果兩個關系模式具有相同的主碼,可以考慮將它們合并為一個關系模式。合并的方法是將其中一個關系模式的全部屬性加入到另一個關系模式中,然后去掉其中的同義屬性,并適當調(diào)整屬性的次序。,邏輯結構設計-一對一關系的轉換,方法一 聯(lián)系轉換為獨立的關系模式 模式的屬性由聯(lián)系本身的屬性及兩個實體的鍵構成 主鍵由兩個實體中的任意一個鍵構成 方法二 將聯(lián)系與一端的實體的關系模式合并,即將聯(lián)系的屬性加入到實體的關系模式內(nèi) 主鍵不變,邏輯結構設計-一對一關系的轉換,實體對應關系模式分別為: 班級(班號,

27、專業(yè),人數(shù)) 班長(學號,姓名,專長) 聯(lián)系 管理(班號,學號),關系模式“管理”的主鍵也可以選擇學號,建立獨立的關系模式,邏輯結構設計-一對一關系的轉換,原實體對應關系模式分別為: 班級(班號,專業(yè),人數(shù)) 班長(學號,姓名,專長),將聯(lián)系“管理”合并到實體“班級”對應的模式后為: 班級(班號,專業(yè),人數(shù),學號) 班長(學號,姓名,專長),聯(lián)系“管理”也可以合并到實體“班長”對應的模式,合并到實體的關系模式,邏輯結構設計-一對多關系的轉換,方法一 聯(lián)系轉換為獨立的關系模式 模式的屬性由聯(lián)系本身的屬性及兩個實體的鍵構成 主鍵由n端實體的鍵組成 方法二 將聯(lián)系與n端的實體的關系模式合并,即將聯(lián)系

28、的屬性加入到實體的關系模式內(nèi) 主鍵不變,邏輯結構設計-一對多關系的轉換,實體對應的關系模式 系(系號,系名,系主任,電話) 教師(教師號,姓名,專業(yè),職稱,性別,年齡) 聯(lián)系對應的關系模式 管理(教師號,系號),建立獨立的關系模式,邏輯結構設計-一對多關系的轉換,實體對應的關系模式 系(系號,系名,系主任,電話) 教師(教師號,姓名,專業(yè),職稱,性別,年齡) 合并到實體“教師”后 教師(教師號,姓名,專業(yè),職稱,性別,年齡,系號),只能合并到“多”的一端,合并到實體的關系模式,邏輯結構設計-多對多關系的轉換,聯(lián)系只能轉換為獨立模式 模式的屬性由聯(lián)系本身的屬性及兩個實體的鍵構成 主鍵由兩端實體的

29、鍵組合而成,邏輯結構設計-多對多關系的轉換,課程(課程號,課程名,學時,類別) 學生(學號,姓名,性別,專業(yè),出生日期,照片) 選修(學號,課程號,分數(shù)),邏輯結構設計-三個或三個以上實體間的一個多元聯(lián)系,三個或三個以上實體間的一個多元聯(lián)系轉換為一個關系模式。 關系的屬性:與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性 關系的碼:各實體碼的組合 例,“講授”聯(lián)系是一個三元聯(lián)系,可以將它轉換為如下關系模式,其中課程號、職工號和書號為關系的組合碼: 講授(課程號,職工號,書號),邏輯結構設計-自聯(lián)系的轉換原則,同一實體集的實體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n和m:n三種情況分別處理。

30、例,如果教師實體集內(nèi)部存在領導與被領導的1:n自聯(lián)系,我們可以將該聯(lián)系與教師實體合并,這時主碼職工號將多次出現(xiàn),但作用不同,可用不同的屬性名加以區(qū)分: 教師:職工號,姓名,性別,職稱,系主任,例:公司部門管理系統(tǒng)的E-R圖及其轉換成的關系模式,部門,項目,職工,電話,包括,承擔,n,1,n,1,辦公室號,面積,項目號,預算費,參與,m,n,辦公室,包含,1,n,包括,n,1,職務,承擔,1,1,部門號,預算費, 領導人職工號,電話號碼,說明,職工號,姓名,辦公電話,擔任時期,工資,分擔任務, 部門(部門號,部門預算費,領導人職工號) 職工(職工號,姓名,辦公電話,部門號) 辦公室(辦公室號,面

31、積,部門號) 項目(項目號,項目預算費,部門號) 電話(電話號碼,說明,辦公室號) 項目承擔情況(職工號,項目號,分擔任務) 工資歷史(職工號,職務,擔任時期,工資),系(系號,系名,系主任,電話),學生(學號,姓名,性別,出生日期,專業(yè),照片),課程(課程號,課程名,學時,類別),教師(教師號,姓名,專業(yè),職稱,性別,年齡),選修(學號,課程號,分數(shù)),課程評價(教師號,課程號,評價),管理(教師號,系號),注冊(學號,系號),邏輯結構設計-優(yōu)化,數(shù)據(jù)庫邏輯設計的結果不是唯一的。 得到初步數(shù)據(jù)模型后,還應該適當?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結構,以進一步提高數(shù)據(jù)庫應用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化

32、 關系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導,邏輯結構設計-數(shù)據(jù)規(guī)范化,僅有好的RDBMS并不足以避免數(shù)據(jù)冗余,必須在數(shù)據(jù)庫的設計中創(chuàng)建好的表結構 Dr E.F.codd 最初定義了規(guī)范化的三個級別,范式是具有最小冗余的表結構。這些范式是: 第一范式(1st NF First Normal Fromate) 第二范式(2nd NFSecond Normal Fromate) 第三范式(3rd NF Third Normal Fromate),邏輯結構設計-第一范式1NF,第一范式的目標是確保每列的原子性 如果每列都是不可再分的最小數(shù)據(jù)單元(也稱為最小的原子單元),則滿足第一范式(1NF),邏輯結

33、構設計-第二范式2NF,如果一個關系滿足1NF,并且除了主鍵以外的其他列,都依賴與該主鍵,則滿足第二范式(2NF) 第二范式要求每個表只描述一件事情,邏輯結構設計-第三范式3NF,如果一個關系滿足2NF,并且除了主鍵以外的其他列都不傳遞依賴于主鍵列,則滿足第三范式(3NF),邏輯結構設計-規(guī)范化實例,假設某建筑公司要設計一個數(shù)據(jù)庫。公司的業(yè)務規(guī)則概括說明如下: 公司承擔多個工程項目,每一項工程有:工程號、工程名稱、施工人員等 公司有多名職工,每一名職工有:職工號、姓名、性別、職務(工程師、技術員)等 公司按照工時和小時工資率支付工資,小時工資率由職工的職務決定(例如,技術員的小時工資率與工程師

34、不同) 公司定期制定一個工資報表,如圖1所示,邏輯結構設計-規(guī)范化實例,圖1 某公司的工資表,邏輯結構設計-規(guī)范化實例,圖2 某公司的項目工時表,邏輯結構設計-規(guī)范化實例,1.表中包含大量的冗余,可能會導致數(shù)據(jù)異常: 更新異常 例如,修改職工號=1001的職務,則必須修改所有職工號=1001的行 添加異常 若要增加一個新的職工時,首先必須給這名職工分配一個工程?;蛘邽榱颂砑右幻侣毠さ臄?shù)據(jù),先給這名職工分配一個虛擬的工程。(因為主關鍵字不能為空) 刪除異常 例如,1001號職工要辭職,則必須刪除所有職工號1001的數(shù)據(jù)行。這樣的刪除操作,很可能丟失了其它有用的數(shù)據(jù),邏輯結構設計-規(guī)范化實例,采

35、用這種方法設計表的結構,雖然很容易產(chǎn)生工資報表,但是每當一名職工分配一個工程時,都要重復輸入大量的數(shù)據(jù)。這種重復的輸入操作,很可能導致數(shù)據(jù)的不一致性。,邏輯結構設計-應用1NF,一張表描述了多件事情,如圖3所示。,圖3 函數(shù)依賴圖,工程信息,員工信息,項目工時信息,邏輯結構設計-應用2NF,圖4 應用第二范式,工程表,員工表,項目工時表,滿足第三范式嗎?,邏輯結構設計-應用2NF,工程表,員工表,職務表,工程表,邏輯結構設計-規(guī)范化和性能的關系,為滿足某種商業(yè)目標,數(shù)據(jù)庫性能比規(guī)范化數(shù)據(jù)庫更重要 通過在給定的表中添加額外的字段,以大量減少需要從中搜索信息所需的時間 通過在給定的表中插入計算列(

36、如成績總分),以方便查詢 進行規(guī)范化的同時,還需要綜合考慮數(shù)據(jù)庫的性能。,邏輯結構設計-規(guī)范化和性能的關系,例:在關系模式 學生成績單(學號,英語,數(shù)學,語文,平均成績) 中存在下列函數(shù)依賴: 學號英語 學號數(shù)學 學號語文 學號平均成績 (英語, 數(shù)學, 語文)平均成績 顯然有: 學號(英語,數(shù)學,語文) 因此該關系模式中存在傳遞函數(shù)信賴,是2NF關系。 雖然平均成績可以由其他屬性推算出來,但如果應用中需要經(jīng)常查詢學生的平均成績,為提高效率,我們?nèi)匀豢杀A粼撊哂鄶?shù)據(jù),對關系模式不再做進一步分解。,邏輯結構設計-設計用戶子模式,根據(jù)局部應用需求設計用戶子模式 設計用戶子模式的目的 使用更符合用戶

37、習慣的別名 保證系統(tǒng)安全性 簡化用戶對系統(tǒng)的使用 DBMS中一般采用視圖(View)機制,邏輯結構設計-論壇實例,將各實體轉換為對應的表,將各屬性轉換為各表對應的列 標識每個表的主鍵列,需要注意的是:沒有主鍵的表添加ID編號列,它沒有實際含義,用于做主鍵或外鍵,例如用戶表中的“UID”列,版塊表中添加“SID”列,發(fā)貼表和跟貼表中的“TID”列 在表之間建立主外鍵,體現(xiàn)實體之間的映射關系,邏輯結構設計-論壇實例,100,如何將E-R圖轉換為表,添加各表之間的關系,數(shù)據(jù)庫物理設計,數(shù)據(jù)庫在物理設備上的存儲結構與存取方法稱為數(shù)據(jù)庫的物理結構,它依賴于選定的數(shù)據(jù)庫管理系統(tǒng) 為一個給定的邏輯數(shù)據(jù)模型選

38、取一個最適合應用環(huán)境的物理結構的過程,就是數(shù)據(jù)庫的物理設計,數(shù)據(jù)庫物理設計-步驟,確定數(shù)據(jù)庫的物理結構,在關系數(shù)據(jù)庫中主要指存取方法和存儲結構; 對物理結構進行評價,評價的重點是時間和空間效率。 如果評價結果滿足原設計要求,則可進入到物理實施階段,否則,就需要重新設計或修改物理結構,有時甚至要返回邏輯設計階段修改數(shù)據(jù)模型,數(shù)據(jù)庫物理設計-步驟,數(shù)據(jù)庫物理設計-準備工作,對要運行的事務進行詳細分析,獲得選擇物理數(shù)據(jù)庫設計所需參數(shù) 充分了解所用RDBMS的內(nèi)部特征,特別是系統(tǒng)提供的存取方法和存儲結構,數(shù)據(jù)庫物理設計-選擇參數(shù),數(shù)據(jù)庫查詢事務 查詢的關系 查詢條件所涉及的屬性 連接條件所涉及的屬性

39、查詢的投影屬性 數(shù)據(jù)更新事務 被更新的關系 每個關系上的更新操作條件所涉及的屬性 修改操作要改變的屬性值 每個事務在各關系上運行的頻率和性能要求,數(shù)據(jù)庫物理設計,關系數(shù)據(jù)庫物理設計的內(nèi)容 為關系模式選擇存取方法(建立存取路徑) 設計關系、索引等數(shù)據(jù)庫文件的物理存儲結構,數(shù)據(jù)庫物理設計-關系模式存取方法,數(shù)據(jù)庫系統(tǒng)是多用戶共享的系統(tǒng),對同一個關系要建立多條存取路徑才能滿足多用戶的多種應用要求。 物理設計的第一個任務就是要確定選擇哪些存取方法,即建立哪些存取路徑。,數(shù)據(jù)庫物理設計-關系模式存取方法,DBMS常用存取方法 索引方法,目前主要是B+樹索引方法,經(jīng)典存取方法,使用最普遍 聚簇(Clust

40、er)方法 HASH方法,數(shù)據(jù)庫物理設計-索引,索引存取方法的選擇 根據(jù)應用要求確定 對哪些屬性列建立索引 對哪些屬性列建立組合索引 對哪些索引要設計為唯一索引,數(shù)據(jù)庫物理設計-索引,索引存取方法的選擇 選擇索引存取方法的一般規(guī)則 如果一個(或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這個(或這組)屬性上建立索引(或組合索引) 如果一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個屬性上建立索引 如果一個(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個(或這組)屬性上建立索引,數(shù)據(jù)庫物理設計-索引,索引存取方法的選擇 關系上定義的索引數(shù)過多會帶來較多的額外開銷 維護索引的開銷

41、 查找索引的開銷,數(shù)據(jù)庫物理設計-聚簇,聚簇存取方法的選擇 為了提高某個屬性(或?qū)傩越M)的查詢速度,把這個或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在連續(xù)的物理塊稱為聚簇。,數(shù)據(jù)庫物理設計-聚簇,聚簇的用途 1. 大大提高按聚簇屬性進行查詢的效率 例:假設學生關系按所在系建有索引,現(xiàn)在要查詢信息系的所有學生名單。 信息系的500名學生分布在500個不同的物理塊上時,至少要執(zhí)行500次I/O操作。 如果將同一系的學生元組集中存放,則每讀一個物理塊可得到多個滿足查詢條件的元組,從而顯著地減少了訪問磁盤的次數(shù)。,數(shù)據(jù)庫物理設計-聚簇,聚簇的用途 2. 節(jié)省存儲空間 聚簇以后,聚簇碼相同的元組

42、集中在一起了,因而聚簇碼值不必在每個元組中重復存儲,只要在一組中存一次就行了,數(shù)據(jù)庫物理設計-聚簇,聚簇的局限性 1. 聚簇只能提高某些特定應用的性能 2. 建立與維護聚簇的開銷相當大 對已有關系建立聚簇,將導致關系中元組移動其物理存儲位置,并使此關系上原有的索引無效,必須重建 當一個元組的聚簇碼改變時,該元組的存儲位置也要做相應移動,數(shù)據(jù)庫物理設計-聚簇,聚簇的適用范圍 1. 既適用于單個關系獨立聚簇,也適用于多個關系組合聚簇 例:假設用戶經(jīng)常要按系別查詢學生成績單,這一查詢涉及學生關系和選修關系的連接操作,即需要按學號連接這兩個關系,為提高連接操作的效率,可以把具有相同學號值的學生元組和選

43、修元組在物理上聚簇在一起。這就相當于把多個關系按“預連接”的形式存放,從而大大提高連接操作的效率。,數(shù)據(jù)庫物理設計-聚簇,聚簇的適用范圍 2. 當通過聚簇碼進行訪問或連接是該關系的主要應用,與聚簇碼無關的其他訪問很少或者是次要的時,可以使用聚簇。 尤其當SQL語句中包含有與聚簇碼有關的ORDER BY,GROUP BY,UNION,DISTINCT等子句或短語時,使用聚簇特別有利,可以省去對結果集的排序操作,數(shù)據(jù)庫物理設計-聚簇,選擇聚簇存取的方法 1.設計候選聚簇 對經(jīng)常在一起進行連接操作的關系可以建立組合聚簇; 如果一個關系的一組屬性經(jīng)常出現(xiàn)在相等比較條件中,則該單個關系可建立聚簇; 如果

44、一個關系的一個(或一組)屬性上的值重復率很高,則此單個關系可建立聚簇。即對應每個聚簇碼值的平均元組數(shù)不太少。太少了,聚簇的效果不明顯。,數(shù)據(jù)庫物理設計-聚簇,選擇聚簇存取的方法 2.優(yōu)化聚簇設計 從聚簇中刪除經(jīng)常進行全表掃描的關系; 從聚簇中刪除更新操作遠多于連接操作的關系; 從聚簇中刪除重復出現(xiàn)的關系 當一個關系同時加入多個聚簇時,必須從這多個聚簇方案(包括不建立聚簇)中選擇一個較優(yōu)的,即在這個聚簇上運行各種事務的總代價最小。,數(shù)據(jù)庫物理設計-HASH存取,選擇HASH存取方法的規(guī)則 當一個關系滿足下列兩個條件時,可以選擇HASH存取方法 該關系的屬性主要出現(xiàn)在等值連接條件中或主要出現(xiàn)在相等

45、比較選擇條件中 該關系的大小可預知,而且不變; 或 該關系的大小動態(tài)改變,但所選用的DBMS提供了動態(tài)HASH存取方法,數(shù)據(jù)庫物理設計-確定物理結構,1. 確定數(shù)據(jù)的存放位置和存儲結構 關系 索引 聚簇 日志 備份 2. 確定系統(tǒng)配置,數(shù)據(jù)庫物理設計-物理存儲位置,影響數(shù)據(jù)存放位置和存儲結構的因素 硬件環(huán)境 應用需求 存取時間 存儲空間利用率 維護代價 這三個方面常常是相互矛盾的 例:消除一切冗余數(shù)據(jù)雖能夠節(jié)約存儲空間和減少維護代價,但往往會導致檢索代價的增加 必須進行權衡,選擇一個折中方案。,數(shù)據(jù)庫物理設計-物理存儲位置,基本原則 根據(jù)應用情況將 易變部分與穩(wěn)定部分 存取頻率較高部分與存取頻率較低部分分開存放,以提高系統(tǒng)性能,數(shù)據(jù)庫物理設計-物理存儲位置,例如: 數(shù)據(jù)庫數(shù)據(jù)備份、日志文件備份等由于只在故障恢復時才使用,而且數(shù)據(jù)量很大,可以考慮存放在磁帶上。 如果計算機有多個磁盤,可以考慮將表和索引分別放在不同的磁盤上,在查詢時,由于兩個磁盤驅(qū)動器分別在工作,因而可以保證物理讀寫速度比較快。 可以將比較大的表分別放在兩個磁盤上,以加快存取速度,這在多用戶環(huán)境下特別有效。 可以將日志文件與數(shù)據(jù)庫對象(表、索引等)放在不同的磁盤以改進系統(tǒng)的性能。,數(shù)據(jù)庫物理設計-系統(tǒng)配置,DBMS產(chǎn)品一般都

溫馨提示

  • 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

提交評論