數據庫系統(八)_第1頁
數據庫系統(八)_第2頁
數據庫系統(八)_第3頁
數據庫系統(八)_第4頁
數據庫系統(八)_第5頁
已閱讀5頁,還剩115頁未讀 繼續免費閱讀

付費下載

VIP免費下載

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

文檔簡介

1、n數據庫設計是指對于一個給定的應用環境,構造(設計)優化的數據庫邏輯模式和物理結構,并據此建立數據庫及其應用系統,使之能夠有效地存儲和管理數據,滿足各種用戶的應用需求,包括信息管理要求和數據操作要求。q目標:為用戶和各種應用系統提供一個信息基礎設施和高效率的運行環境第八章 數據庫設計8.1 數據庫設計概述8.2 需求分析8.3 概念結構設計8.4 邏輯結構設計8.5 數據庫的物理設計8.6 數據庫實施和維護第八章 數據庫設計8.1 數據庫設計概述8.2 需求分析8.3 概念結構設計8.4 邏輯結構設計8.5 數據庫的物理設計8.6 數據庫實施和維護n數據庫建設的基本規律q三分技術,七分管理,十

2、二分基礎數據 q管理 數據庫建設項目管理 企業(即應用部門)的業務管理 q基礎數據 收集、入庫 更新新的數據n結構(數據)設計和行為(處理)設計相結合 q將數據庫結構設計和數據處理設計密切結合現實世界現實世界概念模型設計概念模型設計子模式設計子模式設計物理數據庫設計物理數據庫設計邏輯數據庫設計邏輯數據庫設計建立數據庫建立數據庫數據分析數據分析功能分析功能分析功能模型功能模型功能說明功能說明事務設計事務設計程序說明程序說明應用程序設計應用程序設計程序編碼調試程序編碼調試結構和行為分離的設計 n 手工與經驗相結合方法 q設計質量與設計人員的經驗和水平有直接關系q數據庫運行一段時間后常常不同程度地發

3、現各種問題,增加了維護代價n規范設計法q基本思想:過程迭代和逐步求精n新奧爾良(New Orleans)方法將數據庫設計分為若干階段和步驟 n基于E-R模型的數據庫設計方法概念設計階段廣泛采用n3NF(第三范式)的設計方法邏輯階段可采用的有效方法 nODL(Object Definition Language)方法面向對象的數據庫設計方法n計算機輔助設計qORACLE Designer 2000qSYBASE PowerDesignern數據庫設計分6個階段q需求分析q概念結構設計q邏輯結構設計q物理結構設計q數據庫實施q數據庫運行和維護 n需求分析和概念設計獨立于任何數據庫管理系統 n邏輯設

4、計和物理設計與選用的DBMS密切相關n數據庫設計的準備工作:選定參加設計的人q系統分析人員、數據庫設計人員n自始至終參與數據庫設計q用戶和數據庫管理員n主要參加需求分析和數據庫的運行維護q應用開發人員(程序員和操作員)n在系統實施階段參與進來,負責編制程序和準備軟硬件環境n需求分析階段q準確了解與分析用戶需求(包括數據與處理)q最困難、最耗費時間的一步n概念結構設計階段q整個數據庫設計的關鍵q通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型n邏輯結構設計階段q將概念結構轉換為某個DBMS所支持的數據模型q對其進行優化n數據庫物理設計階段q為邏輯數據模型選取一個最適合應用

5、環境的物理結構(包括存儲結構和存取方法)n數據庫實施階段q運用DBMS提供的數據庫語言(如SQL)及宿主語言,根據邏輯設計和物理設計的結果建立數據庫編制與調試應用程序組織數據入庫進行試運行n數據庫運行和維護階段q數據庫應用系統經過試運行后即可投入正式運行q在數據庫系統運行過程中必須不斷地對其進行評價、調整與修改n設計一個完善的數據庫應用系統往往是上述六個階段的不斷反復n把數據庫設計和對數據庫中數據處理的設計緊密結合起來n將這兩個方面的需求分析、抽象、設計、實現在各個階段同時進行,相互參照,相互補充,以完善兩方面的設計數據庫設計不同階段形成的數據庫各級模式第八章 數據庫設計8.1 數據庫設計概述

6、8.2 需求分析8.3 概念結構設計8.4 邏輯結構設計8.5 數據庫的物理設計8.6 數據庫實施和維護n詳細調查現實世界要處理的對象(組織、部門、企業等)n充分了解原系統(手工系統或計算機系統)n明確用戶的各種需求n確定新系統的功能n充分考慮今后可能的擴充和改變n調查的重點是“數據”和“處理”,獲得用戶對數據庫要求q信息要求q處理要求q安全性與完整性要求n需求分析的難點q確定用戶最終需求n用戶缺少計算機知識n設計人員缺少用戶的專業知識q解決方法n設計人員必須不斷深入地與用戶進行交流n調查需求n達成共識n分析表達需求n調查用戶需求的具體步驟 調查組織機構情況 調查各部門的業務活動情況。 在熟悉

7、業務活動的基礎上,協助用戶明確對新系統的各種要求。 確定新系統的邊界n常用調查方法(1)跟班作業(2)開調查會(3)請專人介紹(4)詢問(5)設計調查表請用戶填寫(6)查閱記錄n進一步分析和表達用戶需求q結構化分析方法(Structured Analysis,簡稱SA方法)n從最上層的系統組織機構入手n自頂向下、逐層分解分析系統1首先把任何一個系統都抽象為:數據流數據流數據流數據流數據數據存儲存儲信息要求信息要求數據數據來源來源處理處理數據數據輸出輸出處理要求處理要求2分解處理功能和數據 (1)分解處理功能將處理功能的具體內容分解為若干子功能 (2)分解數據處理功能逐步分解同時,逐級分解所用數

8、據,形成若干層次的數據流圖 (3)表達方法 處理邏輯:用判定表或判定樹來描述 數據:用數據字典來描述銷售管理子系統 n把系統功能又分為把系統功能又分為4個子系統個子系統接收訂單 處理訂單 開發票 支付過賬 3將分析結果再次提交給用戶,征得用戶的認可需求分析過程 n 數據字典的用途q進行詳細的數據收集和數據分析所獲得的主要結果n 數據字典的內容q數據項q數據結構q數據流q數據存儲q處理過程n 數據項是不可再分的數據單位n 對數據項的描述 數據項描述 數據項名,數據項含義說明, 別名,數據類型,長度,取值范圍,取值含義,與其他數據項的邏輯關系,數據項之間的聯系 例:學生學籍管理子系統的數據字典。

9、數據項,以“學號”為例: 數據項:學號 含義說明:唯一標識每個學生別名:學生編號 類型:字符型 長度:8 取值范圍:00000000至99999999取值含義:前兩位標別該學生所在年級, 后六位按順序編號 n數據結構反映了數據之間的組合關系。n 一個數據結構可以由若干個數據項組成,也可以由若干個數據結構組成,或由若干個數據項和數據結構混合組成。n 對數據結構的描述 數據結構描述數據結構名,含義說明, 組成:數據項或數據結構數據結構,以“學生”為例“學生”是該系統中的一個核心數據結構: 數據結構:學生 含義說明:是學籍管理子系統的主體數據結構, 定義了一個學生的有關信息 組成:學號,姓名,性別,

10、年齡,所在系,年級n 數據流是數據結構在系統內傳輸的路徑。n 對數據流的描述 數據流描述 數據流名,說明,數據流來源, 數據流去向,組成:數據結構, 平均流量,高峰期流量 數據流,“體檢結果”可如下描述: 數據流:體檢結果 說明:學生參加體格檢查的最終結果 數據流來源:體檢 數據流去向:批準 組成:平均流量:高峰期流量:n數據存儲是數據結構停留或保存的地方,也是數據流的來源和去向之一。n對數據存儲的描述 數據存儲描述數據存儲名,說明,編號,輸入的數據流 ,輸出的數據流 ,組成:數據結構,數據量, 存取頻度,存取方式數據存儲,“學生登記表”可如下描述: 數據存儲:學生登記表 說明:記錄學生的基本

11、情況流入數據流: 流出數據流: 組成: 數據量:每年3000張 存取方式:隨機存取 n具體處理邏輯一般用判定表或判定樹來描述n處理過程說明性信息的描述處理過程描述處理過程名,說明,輸入:數據流, 輸出:數據流,處理:簡要說明處理過程“分配宿舍”可如下描述:處理過程:分配宿舍說明:為所有新生分配學生宿舍輸入:學生,宿舍輸出:宿舍安排處理:在新生報到后,為所有新生分配學生宿舍。 要求同一間宿舍只能安排同一性別的學生, 同一個學生只能安排在一個宿舍中。 每個學生的居住面積不小于3平方米。 安排新生宿舍其處理時間應不超過15分鐘。 n數據字典是關于數據庫中數據的描述,是元數據,而不是數據本身n數據字典

12、在需求分析階段建立,在數據庫設計過程中不斷修改、充實、完善 n設計人員應充分考慮到可能的擴充和改變,使設計易于更改,系統易于擴充 n必須強調用戶的參與第八章 數據庫設計8.1 數據庫設計概述8.2 需求分析8.3 概念結構設計8.4 邏輯結構設計8.5 數據庫的物理設計8.6 數據庫實施和維護n將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計n概念結構是各種數據模型的共同基礎,它比數據模型更獨立于機器、更抽象,從而更加穩定n概念結構設計是整個數據庫設計的關鍵現實世界現實世界機器世界機器世界信息世界信息世界需求分析需求分析概念結構設計概念結構設計n概念結構設計的特點 (1)

13、 能真實、充分地反映現實世界 (2) 易于理解 (3) 易于更改 (4) 易于向關系、網狀、層次等各種數據模型轉換n描述概念模型的工具qE-R模型n自頂向下 首先定義全局概念結構的框架,然后逐步細化自頂向下策略n自底向上 首先定義各局部應用的概念結構,然后將它們集成起來,得到全局概念結構自底向上策略n逐步擴張逐步擴張 首先定義最重要的核心概念結構,然后向外擴首先定義最重要的核心概念結構,然后向外擴充,以滾雪球的方式逐步生成其他概念結構,充,以滾雪球的方式逐步生成其他概念結構,直至總體概念結構直至總體概念結構逐步擴張策略n混合策略 將自頂向下和自底向上相結合,用自頂向下策略設計一個全局概念結構的

14、框架,以它為骨架集成由自底向上策略中設計的各局部概念結構。n常用策略q自頂向下地進行需求分析q自底向上地設計概念結構v自底向上設計概念結構的步驟 第1步:抽象數據并設計局部視圖( 選擇局 部應用、逐一設計分E-R圖)第2步:集成局部視圖,得到全局概念結構視圖集成 n概念結構是對現實世界的一種抽象n三種常用抽象 1. 分類(Classification)2. 聚集(Aggregation)3. 概括(Generalization)n三種常用抽象 1. 分類(Classification)q定義某一類概念作為現實世界中一組對象的類型q抽象了對象值和型之間的“is member of”的語義n三種常

15、用抽象 2. 聚集(Aggregation)q定義某一類型的組成成分q抽象了對象內部類型和成分之間“is part of”的語義 聚集 n三種常用抽象3. 概括(Generalization)q定義類型之間的一種子集聯系q抽象了類型之間的“is subset of”的語義q繼承性概括 n選擇局部應用q在多層的數據流圖中選擇一個適當層次的數據流圖,作為設計分E-R圖的出發點 q通常以中層數據流圖作為設計分E-R圖的依據設計分E-R圖的出發點 n逐一設計分E-R圖q將各局部應用涉及的數據分別從數據字典中抽取出來q參照數據流圖,標定各局部應用中的實體、實體的屬性、標識實體的碼q確定實體之間的聯系及其

16、類型(1:1,1:n,m:n)n各個局部視圖即分E-R圖建立好后,還需要對它們進行合并,集成為一個整體的數據概念結構即總E-R圖。n多個分E-R圖一次集成 一次集成多個分E-R圖通常用于局部視圖比較簡單時n逐步集成用累加的方式一次集成兩個分E-R圖 n集成局部E-R圖的步驟1. 合并2. 修改與重構n合并q各分E-R圖存在沖突n各個分E-R圖之間必定會存在許多不一致的地方q合并分E-R圖的主要工作與關鍵n合理消除各分E-R圖的沖突q消除沖突n屬性沖突n命名沖突n結構沖突合并合并初步初步E-R圖圖分分E-R圖圖可能存在冗余的數據可能存在冗余的數據和冗余的實體間聯系和冗余的實體間聯系基本基本E-R

17、圖圖消除不必要的冗余消除不必要的冗余n修改與重構q冗余的數據是指可由基本數據導出的數據 冗余的聯系是指可由其他聯系導出的聯系 q冗余數據和冗余聯系容易破壞數據庫的完整性,給數據庫維護增加困難q消除不必要的冗余后的初步E-R圖稱為基本E-R圖n分析方法消除冗余q以數據字典和數據流圖為依據q根據數據字典中關于數據項之間的邏輯關系消除冗余 n分析方法消除冗余q效率VS冗余信息n需要根據用戶的整體需求來確定q若人為地保留了一些冗余數據,則應把數據字典中數據關聯的說明作為完整性約束條件nQ4=Q5n一旦Q5修改后就應當觸發完整性檢查,對Q4進行修改n規范化理論消除冗余q函數依賴的概念提供了消除冗余聯系的

18、形式化工具n規范化理論消除冗余1. 確定分E-R圖實體之間的數據依賴 ,并用實體碼之間的函數依賴表示。勞動人事管理的分勞動人事管理的分E-R圖圖 q部門和職工之間一對多的聯系可表示為: 職工號部門號q職工和項目之間多對多的聯系可表示為: (職工號,項目號)工作天數 q得到函數依賴集FL n規范化理論消除冗余2. 求FL的最小覆蓋GL ,差集為D = FL-GL。 逐一考察D中的函數依賴,確定是否是冗余的聯系,若是,就把它去掉。n冗余的聯系一定在D中,而D中的聯系不一定是冗余的;n視圖集成后形成一個整體的數據庫概念結構,對該整體概念結構還必須進行進一步驗證,確保它能夠滿足下列條件:q整體概念結構

19、內部必須具有一致性,不存在互相矛盾的表達q整體概念結構能準確地反映原來的每個視圖結構,包括屬性、實體及實體間的聯系q整體概念結構能滿足需要分析階段所確定的所有要求n整體概念結構最終還應該提交給用戶,征求用戶和有關人員的意見,進行評審、修改和優化,然后把它確定下來,作為數據庫的概念結構,作為進一步設計數據庫的依據n概念結構設計的步驟q抽象數據并設計局部視圖q集成局部視圖,得到全局概念結構q驗證整體概念結構n數據抽象q分類q聚集q概括n設計局部視圖q 選擇局部應用q2. 逐一設計分E-R圖n標定局部應用中的實體、屬性、碼,實體間的聯系n用E-R圖描述出來n集成局部視圖q1.合并分E-R圖,生成初步

20、E-R圖消除沖突q屬性沖突、命名沖突、結構沖突q2. 修改與重構消除不必要的冗余,設計生成基本E-R圖q分析方法q規范化理論第八章 數據庫設計8.1 數據庫設計概述8.2 需求分析8.3 概念結構設計8.4 邏輯結構設計8.5 數據庫的物理設計8.6 數據庫實施和維護8.4 邏輯結構設計n邏輯結構設計的任務q把概念結構設計階段設計好的基本E-R圖轉換為與選用DBMS產品所支持的數據模型相符合的邏輯結構8.4 邏輯結構設計n邏輯結構設計的步驟q將概念結構轉化為一般的關系、網狀、層次模型q將轉換來的關系、網狀、層次模型向特定DBMS支持下的數據模型轉換q對數據模型進行優化q設計用戶子模式8.4 邏

21、輯結構設計8.4 邏輯結構設計n關系數據模型的優化通常以規范化理論為指導q確定數據依賴確定數據依賴q消除冗余的聯系消除冗余的聯系q確定所屬范式確定所屬范式q按照需求分析階段得到的各種應用對數據處理按照需求分析階段得到的各種應用對數據處理的要求,分析對于這樣的應用環境這些模式是的要求,分析對于這樣的應用環境這些模式是否合適否合適并不是規范化程度越高的關系就越優,一般說來,第三范式就足夠了8.4 邏輯結構設計n關系數據模型的優化通常以規范化理論為指導q按照需求分析階段得到的各種應用對數據處理按照需求分析階段得到的各種應用對數據處理的要求,對關系模式進行必要的分解,以提高的要求,對關系模式進行必要的

22、分解,以提高數據操作的效率和存儲空間的利用率數據操作的效率和存儲空間的利用率n常用分解方法水平分解垂直分解8.4 邏輯結構設計n定義用戶外模式時應該注重的問題 包括三個方面:(1) 使用更符合用戶習慣的別名(2) 針對不同級別的用戶定義不同的View ,以滿足系統對安全性的要求。(3) 簡化用戶對系統的使用8.4 邏輯結構設計例 關系模式產品(產品號,產品名,規格,單價,生產車間,生產負責人,產品成本,產品合格率,質量等級),可以在產品關系上建立兩個視圖: 為一般顧客建立視圖: 產品1(產品號,產品名,規格,單價) 為產品銷售部門建立視圖: 產品2(產品號,產品名,規格,單價,車間,生產負責人

23、)8.4 邏輯結構設計產品1(產品號,產品名,規格,單價)產品2(產品號,產品名,規格,單價,車間,生產負責人)q顧客視圖中只包含允許顧客查詢的屬性q銷售部門視圖中只包含允許銷售部門查詢的屬性q生產領導部門則可以查詢全部產品數據q可以防止用戶非法訪問不允許他們查詢的數據,保證系統的安全性第八章 數據庫設計8.1 數據庫設計概述8.2 需求分析8.3 概念結構設計8.4 邏輯結構設計8.5 數據庫的物理設計8.6 數據庫實施和維護8.5 數據庫的物理設計n數據庫的物理設計q數據庫在物理設備上的存儲結構與存取方法稱為數據庫的物理結構,它依賴于選定的數據庫管理系統q為一個給定的邏輯數據模型選取一個最

24、適合應用環境的物理結構的過程,就是數據庫的物理設計8.5 數據庫的物理設計n數據庫物理設計的步驟q確定數據庫的物理結構,在關系數據庫中主要指存取方法和存儲結構 q對物理結構進行評價,評價的重點是時間和空間效率 如果評價結果滿足原設計要求,則可進入到物理實施階段,否則,就需要重新設計或修改物理結構,有時甚至要返回邏輯設計階段修改數據模型8.5 數據庫的物理設計n設計物理數據庫結構的準備工作q對要運行的事務進行詳細分析,獲得選擇物理數據庫設計所需參數q充分了解所用RDBMS的內部特征,特別是系統提供的存取方法和存儲結構8.5 數據庫的物理設計n選擇物理數據庫設計所需參數q 數據庫查詢事務查詢的關系

25、查詢條件所涉及的屬性連接條件所涉及的屬性查詢的投影屬性q數據更新事務被更新的關系每個關系上的更新操作條件所涉及的屬性修改操作要改變的屬性值q 每個事務在各關系上運行的頻率和性能要求8.5 數據庫的物理設計n關系數據庫物理設計的內容q為關系模式選擇存取方法(建立存取路徑)q設計關系、索引等數據庫文件的物理存儲結構8.5 數據庫的物理設計-存取方法選擇nDBMS常用存取方法q索引方法目前主要是B+樹索引方法經典存取方法,使用最普遍 q聚簇(Cluster)方法qHASH方法8.5 數據庫的物理設計-存取方法選擇n索引存取方法的選擇q根據應用要求確定n 對哪些屬性列建立索引n 對哪些屬性列建立組合索

26、引n 對哪些索引要設計為唯一索引8.5 數據庫的物理設計-存取方法選擇n索引存取方法的選擇q選擇索引存取方法的一般規則n如果一個(或一組)屬性經常在查詢條件中出現,則考慮在這個(或這組)屬性上建立索引(或組合索引)n如果一個屬性經常作為最大值和最小值等聚集函數的參數,則考慮在這個屬性上建立索引n如果一個(或一組)屬性經常在連接操作的連接條件中出現,則考慮在這個(或這組)屬性上建立索引8.5 數據庫的物理設計-存取方法選擇n索引存取方法的選擇q關系上定義的索引數過多會帶來較多的額外開銷n 維護索引的開銷n 查找索引的開銷8.5 數據庫的物理設計-存取方法選擇n聚簇存取方法的選擇q為了提高某個屬性

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

28、值不必在每個元組中重復存儲,只要在一組中存一次就行了8.5 數據庫的物理設計-存取方法選擇n聚簇存取方法的選擇q聚簇的適用范圍n既適用于單個關系獨立聚簇,也適用于多個關系組合聚簇8.5 數據庫的物理設計-存取方法選擇n聚簇存取方法的選擇q設計候選聚簇對經常在一起進行連接操作的關系可以建立聚簇如果一個關系的一組屬性經常出現在相等比較條件中,則該單個關系可建立聚簇如果一個關系的一個(或一組)屬性上的值重復率很高,則此單個關系可建立聚簇。即對應每個聚簇碼值的平均元組數不太少。太少了,聚簇的效果不明顯8.5 數據庫的物理設計-存取方法選擇n聚簇存取方法的選擇q優化聚簇設計從聚簇中刪除經常進行全表掃描的關系;從聚簇中刪除更新操作遠多于連接操作的關系;不同的聚簇中可能包含相同的關系,一個關系可以在某一個聚簇中,但不能同時加入多個聚簇 q

溫馨提示

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

評論

0/150

提交評論