《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設計_第1頁
《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設計_第2頁
《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設計_第3頁
《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設計_第4頁
《數(shù)據(jù)庫原理(微課版)》第六章數(shù)據(jù)庫設計_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《數(shù)據(jù)庫原理》第六章

數(shù)據(jù)庫設計本章簡介本章內(nèi)容:數(shù)據(jù)庫設計概述介紹數(shù)據(jù)庫設計的方法、分類、步驟等內(nèi)容數(shù)據(jù)庫需求分析、概念結構設計、邏輯設計、物理設計、數(shù)據(jù)庫的實施與維護等步驟的工作內(nèi)容及所使用的具體設計方法。學習目標:了解數(shù)據(jù)庫設計的基本概念,包括數(shù)據(jù)庫設計方法、分類、步驟等。熟練掌握數(shù)據(jù)庫設計的基本步驟,以及各設計步驟的工作內(nèi)容。熟練掌握使用E-R模型進行數(shù)據(jù)庫概念結構設計的方法與步驟。熟練掌握E-R圖轉換為關系模型、關系模型的優(yōu)化方法。了解數(shù)據(jù)庫設計物理設計、實施與維護的工作內(nèi)容與方法本章目錄6.1數(shù)據(jù)庫設計概述6.2需求分析6.3數(shù)據(jù)庫概念結構設計6.4數(shù)據(jù)庫邏輯設計6.5數(shù)據(jù)庫物理設計6.6數(shù)據(jù)庫實施與維護6.1數(shù)據(jù)庫設計概述6.1.1數(shù)據(jù)庫設計方法6.1.2數(shù)據(jù)庫設計分類6.1.3數(shù)據(jù)庫設計步驟6.1數(shù)據(jù)庫設計概述6.1.1數(shù)據(jù)庫設計方法1.直觀設計法依靠設計者的經(jīng)驗和水平來設計數(shù)據(jù)庫的開發(fā)模式。2.規(guī)范設計法數(shù)據(jù)庫設計規(guī)范:不斷迭代,逐步求精。這種方法將數(shù)據(jù)庫設計分為幾個階段,規(guī)定了各階段的任務,依據(jù)數(shù)據(jù)庫理論最終完成對整個數(shù)據(jù)庫的設計。典型方法有新奧爾良方法、基于E-R模型的數(shù)據(jù)庫設計方法、3NF(第三范式)的設計方法、統(tǒng)一建模語言(UML)方法等。6.1數(shù)據(jù)庫設計概述6.1.1數(shù)據(jù)庫設計方法3.計算機輔助設計法注,近年出現(xiàn)較多國產(chǎn)的數(shù)據(jù)庫設計軟件,例如chiner、DatablauDataModeler、FreedgoDesign、EdrawMax等,這說明我國更多優(yōu)秀的軟件開發(fā)人才正在進入數(shù)據(jù)庫管理系統(tǒng)及相關軟件研發(fā)領域,這方面的技術發(fā)展,值得期待。這些工具支持概念模型、數(shù)據(jù)庫邏輯模型設計,包括PowerDesigner、ERWin、ERStudio等。數(shù)據(jù)庫需求分析與設計工具這類工具軟件一般是繪圖軟件功能的延伸,提供E-R圖繪制組件,可畫圖完成E-R圖、數(shù)據(jù)庫邏輯模型圖的設計,包括MicrosoftVisio、smartDraw等。數(shù)據(jù)庫繪圖工具這類工具一般是由數(shù)據(jù)庫管理系統(tǒng)開發(fā)商提供的,例如SQLServer、Oracle等系統(tǒng)的管理工具都具有類似功能。DBMS逆向工具6.1數(shù)據(jù)庫設計概述6.1.1數(shù)據(jù)庫設計方法4.自動化設計法自動化設計法是指利用數(shù)據(jù)庫自動化工具來完成設計數(shù)據(jù)庫。自動化設計優(yōu)勢:提升設計效率顯著提升數(shù)據(jù)庫設計的效率,減少設計時間和工作量。提高設計質量幫助設計者生成結構良好、符合規(guī)范化理論的數(shù)據(jù)庫,提高設計質量。降低出錯概率減少設計錯誤,提高設計的準確性和可靠性。6.1數(shù)據(jù)庫設計概述6.1.1數(shù)據(jù)庫設計方法4.自動化設計法舉例:程序員可借助編程框架實現(xiàn)從單個軟件生成其所使用數(shù)據(jù)庫結構,從數(shù)據(jù)庫生成簡單訪問代碼的功能。例如,Java程序員可使用諸如Hibernate、MyBaits(及其變種)等對象關系映射框架(Object-RelationalMapping,ORM)來實現(xiàn)由程序中的對象生成關系數(shù)據(jù)庫、由關系數(shù)據(jù)庫生成程序中對象及其創(chuàng)建、刪除、修改等操作代碼的功能?,F(xiàn)狀:需要設計者提供正確的輸入和參數(shù),否則可能導致設計結果錯誤或不符合需求;只能處理基本、常規(guī)的數(shù)據(jù)庫設計任務,對于特殊需求可能無法滿足,無法自動生成滿足關系數(shù)據(jù)庫規(guī)范化理論的、結構良好的關系數(shù)據(jù)庫。另外,數(shù)據(jù)庫設計是一項復雜的工程,目前還沒有自動化工具可生成可供多個軟件共同使用的結構復雜的數(shù)據(jù)庫。6.1數(shù)據(jù)庫設計概述6.1.2數(shù)據(jù)庫設計分類1.單個軟件使用的數(shù)據(jù)庫面向單個軟件的數(shù)據(jù)管理需求,數(shù)據(jù)需求相對統(tǒng)一?!鞍痹谑褂盟能浖校溥\行維護與軟件的運行維護同步。若在運行維護過程中,軟件的需求發(fā)生變化,數(shù)據(jù)庫有可能需要改變模式以適應變化的數(shù)據(jù)管理需求。若軟件退役,數(shù)據(jù)庫也就終止運行了。數(shù)據(jù)庫設計時,一般需要從軟件的需求分析中抽取數(shù)據(jù)需求,依據(jù)數(shù)據(jù)需求進行數(shù)據(jù)庫設計。也有少數(shù)情況下,由于軟件改版等原因,可以在已有數(shù)據(jù)庫基礎上,依據(jù)新的需求進行調(diào)整改造。此類數(shù)據(jù)庫設計側重于滿足軟件數(shù)據(jù)管理需求及數(shù)據(jù)庫的規(guī)范性。6.1數(shù)據(jù)庫設計概述6.1.2數(shù)據(jù)庫設計分類2.多個應用程序共享的數(shù)據(jù)庫一般是面向企事業(yè)單位的多方面的數(shù)據(jù)管理需求,數(shù)據(jù)需求在各部門之間往往存在分歧甚至矛盾。它一般長期運行,數(shù)據(jù)庫模式幾乎不變,不會因為個別軟件的需求改變而修改。數(shù)據(jù)庫運行過程中不斷會有舊的軟件退役、有新的軟件投入使用,因此,它需要一些設計余量,以滿足未來一段時間內(nèi)應用可能會產(chǎn)生的數(shù)據(jù)需求。可能涉及多類型數(shù)據(jù)的管理,可能有些會超出關系數(shù)據(jù)庫范圍,例如視頻、圖像、音頻、地圖、CAD文件、表格等多種類型數(shù)據(jù)。因此,需要以大數(shù)據(jù)、數(shù)據(jù)中心建設的思想開展工作。數(shù)據(jù)庫設計復雜,首先需要明確當前需要使用數(shù)據(jù)庫的每個軟件的數(shù)據(jù)管理需求。但在此基礎上,還需要花較多精力協(xié)調(diào)多個應用的數(shù)據(jù)定義中屬性、實體、聯(lián)系等多種沖突。供多個應用程序共享的數(shù)據(jù)庫的設計一般是在已有多個數(shù)據(jù)庫的基礎上進行,也有少量開始于有多個軟件的明確的數(shù)據(jù)需求時。6.1數(shù)據(jù)庫設計概述6.1.3數(shù)據(jù)庫設計步驟需求分析:數(shù)據(jù)庫設計的起點。需要分析用戶的數(shù)據(jù)需求,明確需要數(shù)據(jù)庫實現(xiàn)的功能。該步驟需要數(shù)據(jù)庫設計人員與用戶合作來實現(xiàn)。2.概念結構設計將需求分析轉化為數(shù)據(jù)庫概念模型的過程。3.邏輯結構設計將設計好的概念模型轉化為與某個特定數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型所對應的結構,并對其進行優(yōu)化。4.物理結構設計為已經(jīng)確定的邏輯數(shù)據(jù)結構選取一個適合應用環(huán)境的物理結構5.數(shù)據(jù)庫實施與維護建立數(shù)據(jù)庫、編制與調(diào)試應用程序、組織數(shù)據(jù)入庫進行試運行。維護階段的任務是對數(shù)據(jù)庫的轉存和恢復,維護數(shù)據(jù)庫的安全性與完整性。本章目錄6.1數(shù)據(jù)庫設計概述6.2需求分析6.3數(shù)據(jù)庫概念結構設計6.4數(shù)據(jù)庫邏輯設計6.5數(shù)據(jù)庫物理設計6.6數(shù)據(jù)庫實施與維護6.2需求分析6.2.1需求分析任務和方法6.2.2需求分析的實例6.2需求分析6.2.1需求分析任務和方法需求分析是設計數(shù)據(jù)庫的第一步,也是設計數(shù)據(jù)庫的基礎,會影響到后面數(shù)據(jù)庫設計的質量。任務方法明確用戶對系統(tǒng)的數(shù)據(jù)需求,收集支持系統(tǒng)目標的基礎數(shù)據(jù)及其數(shù)據(jù)處理方法。是軟件需求分析的一部分,需要詳細分析業(yè)務對象的組織結構、用戶的業(yè)務過程、每個業(yè)務環(huán)節(jié)上需要軟件提供的功能及可能的擴充和改變。6.2需求分析6.2.1需求分析任務和方法需求分析調(diào)查的內(nèi)容(1)數(shù)據(jù)存儲需求。明確數(shù)據(jù)庫中所有數(shù)據(jù),例如輸入、輸出、存儲數(shù)據(jù)、數(shù)據(jù)間的聯(lián)系及約束。(2)數(shù)據(jù)處理需求。明確用戶需要完成的數(shù)據(jù)處理功能,包括數(shù)據(jù)處理的方式、數(shù)據(jù)處理的優(yōu)先級、數(shù)據(jù)處理發(fā)生的頻度、操作的執(zhí)行頻率和場合、數(shù)據(jù)量大小、數(shù)據(jù)處理響應速度等。(3)數(shù)據(jù)信息安全性和完整性要求。包括數(shù)據(jù)處理的安全保密要求、數(shù)據(jù)和數(shù)據(jù)視圖的訪問權限、數(shù)據(jù)庫的安全認證機制、數(shù)據(jù)的完整性約束條件等,以確保數(shù)據(jù)安全,避免出現(xiàn)數(shù)據(jù)泄露、篡改和濫用狀況。另外明確數(shù)據(jù)的完整性要求,可利用各種技術手段保障數(shù)據(jù)的正確性、一致性。6.2需求分析6.2.1需求分析任務和方法需求分析調(diào)查的步驟:(1)調(diào)查組織機構。為了分析數(shù)據(jù)的流向,需要了解用戶所屬企業(yè)的規(guī)模、組織架構等。比如用戶所屬的組織機構各部門的規(guī)模和職責、各部門之間的聯(lián)系、需要使用待開發(fā)系統(tǒng)的用戶類型及各類用戶的業(yè)務和操作權限等信息。(2)熟悉業(yè)務活動。對各個部門的業(yè)務情況進行了解,主要了解各部門的數(shù)據(jù)使用的情況,例如,各部門輸入輸出數(shù)據(jù)的內(nèi)容與格式,各部門的數(shù)據(jù)操作處理等。(3)明確數(shù)據(jù)要求。在熟悉用戶所屬企業(yè)的情況和業(yè)務內(nèi)容后,需要明確用戶對數(shù)據(jù)庫設計所必須滿足的要求。包括數(shù)據(jù)內(nèi)容要求、功能處理要求、數(shù)據(jù)信息安全性與完整性要求等。(4)確定數(shù)據(jù)庫功能。在以上調(diào)查結果的基礎上分析,確定數(shù)據(jù)庫的管理邊界,即具體數(shù)據(jù)的管理功能、數(shù)據(jù)來源及接口等。6.2需求分析6.2.1需求分析任務和方法需求分析調(diào)查的步驟:數(shù)據(jù)需求分析報告數(shù)據(jù)需求分析報告內(nèi)容包括:系統(tǒng)概括、數(shù)據(jù)需求分析技術、數(shù)據(jù)字典、數(shù)據(jù)流圖等。在數(shù)據(jù)需求分析報告撰寫之后,需要組織設計方和用戶方進行需求確認和評審,重點檢查數(shù)據(jù)需求分析報告是否完全、準確、無歧義地描述了用戶的每一項數(shù)據(jù)需求。若需求確認和評審有問題,重復上述步驟修正數(shù)據(jù)需求成果,直至雙方一致認可,得到正式數(shù)據(jù)需求分析報告,可才進入下一階段工作。數(shù)據(jù)需求分析報告可以是獨立的報告,也可以是軟件需求規(guī)格說明書的重要組成部分。6.2需求分析6.2.1需求分析任務和方法需求分析調(diào)查的步驟:6.2需求分析6.2.1需求分析任務和方法調(diào)查用戶需求的方法:(1)專家訪談與集體會議。可以通過對業(yè)務熟練的專家用戶進行一對一的訪談,請他們對業(yè)務情況進行詳細說明,以便數(shù)據(jù)庫設計人員對業(yè)務需求有進一步的了解;也可以組織一場需求調(diào)查會議,讓各個部門業(yè)務人員聚集在一起,談本部門的工作業(yè)務,從而提煉出涉及到的數(shù)據(jù)及處理需求。在會議和訪談之前,設計人員也可以提前準備對需求的問題,使設計人員對需求細節(jié)有更深的理解和認識。(2)觀察工作流程??梢赃x擇典型業(yè)務對用戶工作流程跟班作業(yè),目的是對相關工作部門的業(yè)務活動、組成情況、工作職能、使用或處理的數(shù)據(jù)情況進行熟悉了解。(3)使用調(diào)查問卷來確定需求。根據(jù)用戶業(yè)務活動需求的差異,設計數(shù)據(jù)需求問題,例如,數(shù)據(jù)處理方式、是否有涉密數(shù)據(jù)等。將這份調(diào)查表發(fā)給相關業(yè)務活動的用戶,以便了解各部門用戶的需求情況。(4)查閱業(yè)務資料。查閱與業(yè)務流程相關的單據(jù)、報告、工作記錄等資料。6.2需求分析6.2.1需求分析任務和方法需求分析的方法:結構化分析方法(StructureAnalysis,SA)數(shù)據(jù)流圖(DataFlowDiagram,DFD)數(shù)據(jù)字典(DataDictionary,DD)方法面向對象分析方法(Object-orientAnalysis,OA)......6.2需求分析6.2.2需求分析實例1.軟件需求描述軟件需求規(guī)格說明書是一份嚴謹復雜的文檔且具有一定的法律效力。例如對大學教學活動來講,用戶角色至少包括教務員、教師、學生三類。教務員的工作:下達教學任務、排課、查看全學院教學任務、查看選課學生列表、查看開課教師列表等。教師的工作:查看教學任務、查看課表、打印點名冊、錄入學生成績、打印成績單等。其中打印成績單包括打印教學班成績單、打印班級成績單、打印試卷分析等三種不同的打印任務。對班級成績單和教學班成績單,可打印歷史成績單,也可打歷史課表。學生的工作:選課、查看課表、查看選修成績、查看總成績單(入學以來所有選修課程及成績)等。6.2.2需求分析實例圖6-3教務管理系統(tǒng)的USECASE總圖6.2.2需求分析實例圖6-4課表樣例6.2需求分析6.2.2需求分析實例2.數(shù)據(jù)字典數(shù)據(jù)字典是軟件需求規(guī)格說明書或數(shù)據(jù)需求說明書的重要組成部分,用于定義、描述整個軟件所使用數(shù)據(jù)元素。對每個數(shù)據(jù),描述其名稱、結構組成、存儲、處理邏輯等內(nèi)容。其最小描述單位是數(shù)據(jù)項,數(shù)據(jù)由數(shù)據(jù)項組成。本實例數(shù)據(jù)字典內(nèi)容:學院、教師、學生、課程、教學任務、選課(學生選課)、選修成績列表、總成績單、點名冊、成績單(包括教學班成績單、班級成績單、試卷分析3類)、全學院教學任務、選課學生列表、開課教師列表等數(shù)據(jù)。數(shù)據(jù)較多時,一般會對數(shù)據(jù)、數(shù)據(jù)項進行編號,方便描述。6.2需求分析6.2.2需求分析實例2.數(shù)據(jù)字典圖6-4-課表是一項數(shù)據(jù):課表=學年+學期+姓名+角色+上課時間(包括周幾、第幾節(jié)課)+課程名稱+上課周范圍+上課地點學年:年號,整數(shù),范圍1950-3000學期:兩個取值:春、秋姓名:由漢字、字母、數(shù)字組成的字符串,長度50角色:兩個取值:教師、學生上課時間:取值包括周幾、第幾節(jié)課,周取值包括星期一到星期日共7個,第幾節(jié)課取值包括:第1-2節(jié)至第11-13節(jié)共6個。具體上課下課時間可參看學校校歷。課程名稱:由漢字、字母、數(shù)字組成的字符串,長度50上課周范圍:示例中“1-12周”指第1-12周,“5-12周”指第5-12周。具體第幾周是哪一天可查看學校校歷。上課地點:由教學樓、教室號組成。例如“教3-304”中教3是教學樓,304是房間號。本章目錄6.1數(shù)據(jù)庫設計概述6.2需求分析6.3數(shù)據(jù)庫概念結構設計6.4數(shù)據(jù)庫邏輯設計6.5數(shù)據(jù)庫物理設計6.6數(shù)據(jù)庫實施與維護6.3數(shù)據(jù)庫概念結構設計6.3.1概念模型及其結構6.3.2數(shù)據(jù)抽象6.3.3E-R模型6.3數(shù)據(jù)庫概念結構設計6.3.1概念模型及其結構概念結構設計是將用戶需求抽象為信息世界概念模型的過程。概念模型是從數(shù)據(jù)的應用語義的角度來抽取模型,并按用戶的觀點對數(shù)據(jù)和信息進行建模,是現(xiàn)實世界到信息世界的中間層次,是數(shù)據(jù)庫設計階段的關鍵所在。6.3數(shù)據(jù)庫概念結構設計6.3.1概念模型及其結構1.概念結構主要特點數(shù)據(jù)庫概念結構設計是整個數(shù)據(jù)庫設計的關鍵,是各種數(shù)據(jù)模型的基礎。概念結構通過對用戶需求進行綜合,歸納與抽象,設計合適的概念模型(例如,E-R圖)。該模型具有以下特點:(1)概念模型不僅要滿足用戶對數(shù)據(jù)的具體處理要求,還要保證能夠真實、全面、充分的反映現(xiàn)實世界中事物與事物之間的聯(lián)系。概念模型是反映現(xiàn)實世界的模型。(2)概念模型是易于用戶理解的,確保能夠讓每一個用戶都能夠參與數(shù)據(jù)庫的設計。(3)概念模型要求易于修改擴充。(4)概念模型要易于轉換邏輯結構中的數(shù)據(jù)模型。概念模型最終要向關系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉換。在設計概念模型時需要注意,能夠方便快捷進行特定的數(shù)據(jù)模型轉換。6.3數(shù)據(jù)庫概念結構設計6.3.1概念模型及其結構2.概念結構的設計方法與步驟設計概念結構通常包括四種方法:自頂向下的設計方法、自底向上的設計方法、逐步擴張的設計方法、混合策略設計的方法等。(1)自頂向下的設計方法。要求根據(jù)具體需求定義全局概念結構的框架,逐步細化為不同的子概念,最后形成完整的全局概念結構,該方法是最常用的設計方法,如圖6-5所示。6.3數(shù)據(jù)庫概念結構設計6.3.1概念模型及其結構2.概念結構的設計方法與步驟(2)自底向上的設計方法。要求根據(jù)不同的子需求定義各局部應用的概念結構,集成后形成完整的全局概念結構,如圖6-6所示。6.3數(shù)據(jù)庫概念結構設計6.3.1概念模型及其結構2.概念結構的設計方法與步驟(3)逐步擴張的設計方法。要求先定義最重要的核心概念結構,向外擴充,生成其他概念結構,直至完成總體概念結構。(4)混合策略設計的方法。采用自頂向下與自底向上相結合的設計方法。首先用自頂向下策略設計一個全局概念結構的框架,再引入自底向上策略設計的各局部概念結構。6.3數(shù)據(jù)庫概念結構設計6.3.2數(shù)據(jù)抽象概念模型是對現(xiàn)實世界中事物及其相互關系的一種抽象。抽象就是對實際的人、物、事和概念進行人為的處理,抽取現(xiàn)實世界存在的共同特性,精確描述這些概念,并且不忽略其本質的細節(jié),最后形成某種模型。通常,數(shù)據(jù)抽象包括分類、聚集和概括3種基本方法。(1)

分類(Classification)。分類是面向對象的設計方法中常用的一種抽象,指定義某一類概念作為現(xiàn)實世界中一組對象的類型,這些對象具有某些共同的特性和行為。分類抽象了對象值和型之間的“成員”的語義。6.3數(shù)據(jù)庫概念結構設計6.3.2數(shù)據(jù)抽象數(shù)據(jù)抽象包括分類、聚集和概括3種基本方法。(2)聚集(Aggregation)。聚集可簡單理解為定義某一類型的組成部分。它抽象了對象內(nèi)部類型和對象內(nèi)部“組成部分”的語義。在E-R模型中,若干屬性的聚集組成了實體型。例如,學號(id)、名字(name)、所在學院(college_name)、專業(yè)(major)、性別(gender)、出生日期(birthday)都可抽象為學生實體的屬性。6.3數(shù)據(jù)庫概念結構設計6.3.2數(shù)據(jù)抽象,數(shù)據(jù)抽象包括分類、聚集和概括3種基本方法。(3)概括(Generalization)。概括定義了類型之間的一種子集聯(lián)系。它抽象了類型之間“所屬”的語義。例如,學生是個實體集,班長、學習委員也是實體集,班長、學習委員均是學生的子集。可把學生稱為超類(Superclass),班長、學習委員稱為職工的子類(Subclass)。繼承性指子類繼承超類中定義的所有抽象。子類可以添加某些特殊屬性6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型E-R模型(Entity-Relationshipmodel)是由美籍華裔計算機科學家陳品山1976年提出來的,也被稱作實體-聯(lián)系模型。E-R模型是概念數(shù)據(jù)模型最常用的數(shù)據(jù)模型或模式圖,是數(shù)據(jù)庫設計的理論基礎。E-R模型可以使用圖形化的方法表示,稱為E-R圖。E-R圖提供實體型、屬性和聯(lián)系的圖形化的方法,可以形象直觀地表示一個E-R模型。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素E-R模型的基本元素成分是實體、屬性和聯(lián)系。(1)實體(Entity)實體是客觀存在并且可以相互區(qū)別的事物。實體可以是具體的人、事和物,也可以是抽象的概念或聯(lián)系。例如,一個學生、一場比賽、一個班級、一所學校等。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素E-R模型的基本元素成分是實體、屬性和聯(lián)系。(1)實體(Entity)由于具有相同屬性的實體擁共同特征和性質,因此使用實體名及其屬性集合來抽象和刻畫同類實體,稱之為“實體型”。同一類型的實體構成的集合稱為“實體集”。一般將實體、實體型和實體集等三個概念統(tǒng)稱為“實體”。在E-R模型當中所提到的實體通常是指實體集。實體實例是實體的具體值。一個實體集應該擁有一個以上的實例。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素E-R模型的基本元素成分是實體、屬性和聯(lián)系。(1)實體(Entity)。在E-R圖中,用矩形來表示實體,內(nèi)部寫明實體的名稱(用名詞表示)。為了方便工作人員與用戶之間的交流,需求分析階段通常使用中文表示實體名,在設計階段再根據(jù)需要轉換成相應的英文。英文實體名通常使用首字母大寫,且具有實際意義的英文表示。屬性和聯(lián)系的名稱也采用類似的方法。E-R圖中,用矩形來表示實體女孩男孩學生人類6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素(2)屬性(Attribute)屬性是指實體或聯(lián)系所具有的性質或特征。一般來說,一個實體都是通過許多個屬性來共同描述?!按a”是可以唯一標識實體的屬性或屬性組。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素(2)屬性(Attribute)屬性的取值范圍稱為該屬性的域,也稱為屬性的值域。例如,在學生實體中的“性別”屬性取值只能為“男”或者“女”。同一個實體集中,不同實體的同一個屬性的屬性域是相同的,但可能取不同的值。為了確認某個特別指定的實體,可以通過該實體屬性的一組的特定值來進行確定。6.3數(shù)據(jù)庫概念結構設計E-R圖中的屬性可以分為簡單屬性、復合屬性;單值屬性、多值屬性、派生屬性等。簡單屬性:實體與聯(lián)系的最基本屬性,是不能再進行分割的最小單位;復合屬性:由多個簡單屬性組成,是能夠再分割為更小部分的屬性;單值屬性:一個屬性只有一個值;多值屬性:一個屬性可能對應一組值,用雙線橢圓形表示;派生屬性:由其他屬性計算得出的屬性,使用虛線橢圓形表示。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素(2)屬性(Attribute)一般來說,實體和屬性之間的差異并沒有直截的界限劃分。但是,在現(xiàn)實世界中具體的應用環(huán)境對實體和屬性做了自然劃分。實體還是屬性?設計原則:原則1:現(xiàn)實世界的事物能作為屬性對待的盡量作為屬性對待。原則2:“屬性”不能再具有需要描述的性質,“屬性”必須是不可分割的數(shù)據(jù)項,不能包含其他屬性原則3:“屬性”不能與其他實體具有聯(lián)系6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)不同實體之間的相互關系。在現(xiàn)實世界中,不同類型的事物之間以及相同類型的事物之間都是有聯(lián)系的。這些現(xiàn)實世界中的聯(lián)系反映在信息世界當中就是不同實體集之間以及同一實體集內(nèi)部不同實體之間的聯(lián)系。實體之間聯(lián)系類型的不同會直接導致數(shù)據(jù)庫不同的邏輯結構設計,并影響到用戶功能的實現(xiàn)。所以區(qū)分聯(lián)系類型是一項非常重要的工作。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)聯(lián)系的元數(shù)是指和聯(lián)系所關聯(lián)的實體集的個數(shù),它由現(xiàn)實中參與聯(lián)系的實體集個數(shù)決定。例如,聯(lián)系通常會有一元聯(lián)系、二元聯(lián)系、和三元聯(lián)系,少數(shù)情況下會存在四元或更多元的聯(lián)系。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)一元聯(lián)系是一個實體集內(nèi)部一些實體與另一個實體之間的聯(lián)系,例如學生中有些學生是班長,他管理他們班的其它學生,所以學生實體集中有一個聯(lián)系,聯(lián)系的一方是班長、另一方是班級成員。同樣,課程中有些課程是另外一些課程的先行課程,課程實體集上也有一個一元聯(lián)系,聯(lián)系的一方是課程、另一方是它的選行課程。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)二元聯(lián)系是兩個實體集之間的聯(lián)系,例如學院和學生之間有從屬聯(lián)系,一個學院有多個學生,而每個學生僅屬于一個學院。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)三元聯(lián)系是有三個實體集參與的聯(lián)系,例如學生、教師和課程之間有一個選修聯(lián)系,學生選修一門課程,就意味著他選修由某教師教授這一門課程,教師講授一門課,其受眾一定是學生,而課程開出一定是某位教師講授、一些學生來學習才能成立的。因此,教師、學生、課程之間存在一個叫作選修的三元的聯(lián)系。圖6-10學院、學生、課程、教師之間的聯(lián)系6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素二元聯(lián)系的類型:①一對一聯(lián)系(1:1):如果對于實體集A中的每一個實體,實體集B中至多有1個實體與之聯(lián)系,反之亦然,則稱A與B具有一對一聯(lián)系,記為1∶1例如,學院和院長之間是一對一的聯(lián)系。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素二元聯(lián)系的類型:②一對多聯(lián)系(1:n):如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多聯(lián)系,記為1:n。例如,一個學院有多名學生、而一個學生在一個時刻只能屬于一個學院,因此,學院和學生之間是一對多的聯(lián)系,其中學院是1方,學生是多方。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素二元聯(lián)系的類型:③多對多聯(lián)系(m:n):如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之聯(lián)系,則稱實體集A與實體集B具有多對多聯(lián)系,記為m:n。例如,若只考慮學生和課程之間的聯(lián)系,則它是一個二元多對多的聯(lián)系,因為一名學生可以選修多門課程,一門課程也可以被多個學生所選修。圖6-11二元聯(lián)系的類型6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型1.E-R模型的基本元素(3)聯(lián)系(Relationship)聯(lián)系也可以用屬性描述。例如學生屬于學院,可添加起始時間、終止時間,選修可以添加選修學年、選修學期、上課教室等屬性來更加詳細地描述。與實體的碼類似,一般也有可以唯一標識一個聯(lián)系的屬性或屬性組,稱為聯(lián)系的碼。聯(lián)系的碼是參與聯(lián)系的各實體碼的集合的子集。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型2.E-R圖的設計步驟:(1)分E-R圖設計(2)E-R圖的集成(3)修改和重構6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型2.E-R圖的設計(1)分E-R圖設計根據(jù)某個系統(tǒng)的具體情況,將系統(tǒng)分解為若干個局部應用。對每個局部應用,在多層數(shù)據(jù)流圖中選擇一個中層數(shù)據(jù)流圖,作為設計分E-R圖的出發(fā)點。根據(jù)局部應用的數(shù)據(jù)流程圖中標定的實體集、屬性和主碼,并結合數(shù)據(jù)字典中的相關描述內(nèi)容,確定E-R圖中的實體、實體之間的聯(lián)系。6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型2.E-R圖的設計(1)E-R圖的集成分一次集成和逐步集成兩種方式。主要是消除沖突的操作,來解決各分E-R圖之間的沖突問題。主要的沖突分屬性沖突、命名沖突和結構沖突三類屬性沖突:

身高:180cm1.8m,年齡與生日等

命名沖突:同名異意:課程所屬學院---學生所屬學院

;異名同意:生日---出生日期

結構沖突:

某個分ER中的實體是另一個分ER中的屬性,

某個分ER中的實體是另一個分ER中的聯(lián)系。姓名---姓、中間名、名6.3數(shù)據(jù)庫概念結構設計6.3.3E-R模型2.E-R圖的設計(3)修改和重構消除冗余數(shù)據(jù)和冗余實體間聯(lián)系。方法:(1)分析法消除冗余數(shù)據(jù),以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù),按照數(shù)據(jù)字典中關于數(shù)據(jù)項之間邏輯關系的說明來消除冗余。(2)關系規(guī)范化理論來消除冗余聯(lián)系。對每個局部應用,在多層數(shù)據(jù)流圖中選擇一個中層數(shù)據(jù)流圖,作為設計分E-R圖的出發(fā)點?!纠?-1】某高校教學管理系統(tǒng)的E-R圖例【6-2】畫出某高校學生管理的E-R圖。圖6-14

學生學籍管理子系統(tǒng)局部E-R圖圖6-15

教學管理子系統(tǒng)局部E-R圖圖6-16初步E-R圖圖6-17

全局E-R圖對開課的不同理解本章目錄6.1數(shù)據(jù)庫設計概述6.2需求分析6.3數(shù)據(jù)庫概念結構設計6.4數(shù)據(jù)庫邏輯設計6.5數(shù)據(jù)庫物理設計6.6數(shù)據(jù)庫實施與維護6.4數(shù)據(jù)庫邏輯設計6.4.1E-R模型向關系模型的轉換6.4.2關系模型的優(yōu)化6.4.3數(shù)據(jù)庫的外模式設計6.4數(shù)據(jù)庫邏輯設計6.4.1E-R模型向關系模型的轉換轉換原則:(1)

一個實體轉換為一個關系模式。實體屬性就是關系屬性,標識符即為關系模式的碼。(2)

兩個實體間1:1聯(lián)系,則可以在兩個實體轉換成的兩個關系模式中任意一個關系模式屬性中加入另一個關系模式的碼和聯(lián)系類型屬性。圖6-19班級與班長的概念模式關系模式:班級(班級號,人數(shù),班長學號)班長(學號,姓名,聯(lián)系電話)或班級(班級號,人數(shù))班長(學號,姓名,聯(lián)系電話,班級號)6.4數(shù)據(jù)庫邏輯設計6.4.1E-R模型向關系模型的轉換轉換原則:(3)兩個實體間1:n聯(lián)系,則在n端實體轉換成關系模式中加入1端實體的碼和聯(lián)系類型屬性。關系模式:學院(學院編號,學院名稱,聯(lián)系電話,地址)學生(學號,姓名,生日,性別,專業(yè),學院編號)6.4數(shù)據(jù)庫邏輯設計6.4.1E-R模型向關系模型的轉換轉換原則:(4)一個實體間m:n聯(lián)系,則將聯(lián)系類型也轉換成關系模式,其屬性為兩端實體的碼加上聯(lián)系類型屬性,而鍵為兩端實體的碼的組合。關系模式:教師(工號,姓名,專業(yè),性別,生日,職稱)學生(學號,姓名,生日,性別,專業(yè))授課(工號,學號,學年,學期,課程編號、課程名稱)6.4數(shù)據(jù)庫邏輯設計6.4.2關系模型的優(yōu)化基于規(guī)范化理論的關系模型優(yōu)化方法:(1)確定數(shù)據(jù)依賴。按需求分析階段所得到的語義,分別寫出每個關系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關系模式屬性之間的數(shù)據(jù)依賴。(2)對于各個關系模式之間數(shù)據(jù)依賴進行極小化處理,消除冗余聯(lián)系。(3)按照數(shù)據(jù)依賴理論對關系模式逐一進行分析,考察是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關系模式分別屬于第幾范式。(4)按照需求分析階段得到的處理要求,分析這些模式對于應用環(huán)境是否合適,確定是否需要對某些模式進行分解。對關系模式進行必要分解,提高數(shù)據(jù)操作效率和存儲空間利用率6.4數(shù)據(jù)庫邏輯設計6.4.2關系模型的優(yōu)化例6-3College(college_name,college_telephone,college_address,college_desc)Course(course_id,title,college_name,credits,hours)Instructor(ID,name,college_name,gender,birthday,title)Student(ID,name,college_name,major,gender,birthday)Section(course_id,sec_id,semester,year,building,room_number,time_slot_id)Classroom(building,room_number,capacity,classroom_type)Timeslot(time_slot_id,start_week,end_week,day,start_hr,start_min,end_hr,end_min)takes(

ID,course_id,sec_id,semester,year,grade)teaches(

ID,course_id,sec_id,semester,year)prereq(

course_id,prereq_id)6.4數(shù)據(jù)庫邏輯設計6.4.2關系模型的優(yōu)化【例6-4】請給出例6-2中E-R模型的邏輯結構設計College(college_id,college_name,college_telephone,college_address)Class(class_id,class_name,instructor_id)Student(student_id,name,class_id,major,gender,birthday)Course(course_id,course_name,college_id,credits)Instructor(instructor_id,name,major,gender,birthday,title,phone,college_id)teaches(instructor_id,course_id,semester,year)takes(student_id,course_id,grade)prereq(

course_id,prereq_id)6.4數(shù)據(jù)庫邏輯設計6.4.2關系模型的優(yōu)化【例6-4】請給出例6-2中E-R模型的邏輯結構設計College(college_id,college_name,college_telephone,college_address)Class(class_id,class_name,instructor_id)Student(student_id,name,class_id,major,gender,birthday)Course(course_id,course_name,college_id,credits)Instructor(instructor_id,name,major,gender,birthday,title,phone,college_id)teaches(instructor_id,course_id,semester,year)takes(student_id,course_id,grade)prereq(

course_id,prereq_id)6.4數(shù)據(jù)庫邏輯設計6.4.3數(shù)據(jù)庫的外模式設計數(shù)據(jù)庫的外模式,即用戶子模式。關系數(shù)據(jù)庫管理系統(tǒng)中提供的視圖是根據(jù)用戶子模式設計的。這一階段任務是根據(jù)系統(tǒng)需求,設計相應用戶視圖。設計用戶視圖時,只考慮用戶對數(shù)據(jù)的使用要求、習慣及安全性要求,不用考慮系統(tǒng)的時間效率、空間效率和維護等問題。設計中盡量使用符合用戶習慣的別名,對不同權限用戶設計不同視圖,以保證系統(tǒng)安全。除此之外,將應用系統(tǒng)中經(jīng)常使用的一些復雜查詢設計成視圖,方便用戶使用。6.4數(shù)據(jù)庫邏輯設計6.4.3數(shù)據(jù)庫的外模式設計【例6-5】創(chuàng)建視圖顯示當前學期所有學生選修的課程及成績。CREATEVIEWcurrent_transcriptAS

SELECTstudent.id,name,takes.course_id,title,takes.semester,takes.year,gradeFROM(studentnaturaljointakes)JOINcourseONtakes.course_id=course.course_idWHEREyear=YEAR(CURRENT_DATE)andsemester=IF(MONTH(CURRENT_DATE)>2ANDMONTH(CURRENT_DATE)<9,'Spring','Fall')ORDERBYstudent.id,takes.course_id;CREATEVIEWview_testASSELECTID,name,majorFROMstudent;本章目錄6.1數(shù)據(jù)庫設計概述6.2需求分析6.3數(shù)據(jù)庫概念結構設計6.4數(shù)據(jù)庫邏輯設計6.5數(shù)據(jù)庫物理設計6.6數(shù)據(jù)庫實施與維護6.5數(shù)據(jù)庫物理設計6.5.1物理結構設計內(nèi)容6.5.2評價物理結構6.5數(shù)據(jù)庫物理設計6.5.1物理結構設計內(nèi)容1.關系模式存取方法的選擇確定關系模式的存取方法即建立存取路徑。數(shù)據(jù)庫是多用戶共享的系統(tǒng),對同一關系要建立多條存取路徑才能滿足多用戶的多種應用要求。數(shù)據(jù)庫管理系統(tǒng)常用存取方法有B+樹索引存取方法、Hash索引存取方法和聚簇存取方法。(1)

B+樹索引存取方法(2)

Hash索引存取方法的選擇(3)

聚簇存取方法的選擇6.5數(shù)據(jù)庫物理設計6.5.1物理結構設計內(nèi)容2.設計數(shù)據(jù)庫的存儲結構設計數(shù)據(jù)庫的存儲結構需要考慮存取時間、

溫馨提示

  • 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

提交評論