數(shù)據(jù)庫7-數(shù)據(jù)庫設計_第1頁
數(shù)據(jù)庫7-數(shù)據(jù)庫設計_第2頁
數(shù)據(jù)庫7-數(shù)據(jù)庫設計_第3頁
數(shù)據(jù)庫7-數(shù)據(jù)庫設計_第4頁
數(shù)據(jù)庫7-數(shù)據(jù)庫設計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

AnIntroductiontoDatabaseSystem數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第七章數(shù)據(jù)庫設計AnIntroductiontoDatabaseSystem7.1數(shù)據(jù)庫設計概述

數(shù)據(jù)庫設計數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,構(gòu)造(設計)優(yōu)化的數(shù)據(jù)庫邏輯模式和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足各種用戶的應用需求,包括信息管理要求和數(shù)據(jù)操作要求。目標:為用戶和各種應用系統(tǒng)提供一個信息基礎設施和高效率的運行環(huán)境AnIntroductiontoDatabaseSystem數(shù)據(jù)庫設計的特點(續(xù))現(xiàn)實世界概念模型設計子模式設計物理數(shù)據(jù)庫設計邏輯數(shù)據(jù)庫設計建立數(shù)據(jù)庫數(shù)據(jù)分析功能分析功能模型功能說明事務設計程序說明應用程序設計程序編碼調(diào)試結(jié)構(gòu)和行為分離的設計

AnIntroductiontoDatabaseSystem數(shù)據(jù)庫設計的基本步驟數(shù)據(jù)庫設計分6個階段需求分析概念結(jié)構(gòu)設計邏輯結(jié)構(gòu)設計物理結(jié)構(gòu)設計數(shù)據(jù)庫實施數(shù)據(jù)庫運行和維護

需求分析和概念設計獨立于任何數(shù)據(jù)庫管理系統(tǒng)邏輯設計和物理設計與選用的DBMS密切相關AnIntroductiontoDatabaseSystem數(shù)據(jù)庫設計過程中的各級模式數(shù)據(jù)庫設計不同階段形成的數(shù)據(jù)庫各級模式數(shù)據(jù)庫的各級模式

AnIntroductiontoDatabaseSystem7.2需求分析的任務詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等)充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))明確用戶的各種需求確定新系統(tǒng)的功能充分考慮今后可能的擴充和改變AnIntroductiontoDatabaseSystem需求分析的重點調(diào)查的重點是“數(shù)據(jù)”和“處理”,獲得用戶對數(shù)據(jù)庫要求

信息要求處理要求安全性與完整性要求AnIntroductiontoDatabaseSystem需求分析的難點確定用戶最終需求用戶缺少計算機知識設計人員缺少用戶的專業(yè)知識解決方法設計人員必須不斷深入地與用戶進行交流AnIntroductiontoDatabaseSystem需求分析的成果數(shù)據(jù)字典:進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果數(shù)據(jù)項數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)流數(shù)據(jù)存儲處理過程數(shù)據(jù)流圖AnIntroductiontoDatabaseSystem數(shù)據(jù)項

數(shù)據(jù)項是不可再分的數(shù)據(jù)單位對數(shù)據(jù)項的描述

數(shù)據(jù)項描述={數(shù)據(jù)項名,數(shù)據(jù)項含義說明,別名, 數(shù)據(jù)類型,長度,取值范圍,取值含義, 與其他數(shù)據(jù)項的邏輯關系,數(shù)據(jù)項之間的 聯(lián)系}AnIntroductiontoDatabaseSystem數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結(jié)構(gòu)組成,或由若干個數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)混合組成。對數(shù)據(jù)結(jié)構(gòu)的描述

數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成:{數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu)}}AnIntroductiontoDatabaseSystem數(shù)據(jù)流

數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂?。對?shù)據(jù)流的描述

數(shù)據(jù)流描述={數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}AnIntroductiontoDatabaseSystem數(shù)據(jù)存儲數(shù)據(jù)存儲是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。對數(shù)據(jù)存儲的描述

數(shù)據(jù)存儲描述={數(shù)據(jù)存儲名,說明,編號, 輸入的數(shù)據(jù)流,輸出的數(shù)據(jù)流, 組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取頻度, 存取方式}AnIntroductiontoDatabaseSystem處理過程具體處理邏輯一般用判定表或判定樹來描述處理過程說明性信息的描述

處理過程描述={處理過程名,說明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡要說明}}AnIntroductiontoDatabaseSystem數(shù)據(jù)字典舉例例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字典。數(shù)據(jù)項,以“學號”為例:數(shù)據(jù)項:學號含義說明:唯一標識每個學生別名:學生編號類型:字符型長度:8

取值范圍:00000000至99999999取值含義:前兩位標別該學生所在年級,后六位按順序編號與其他數(shù)據(jù)項的邏輯關系:AnIntroductiontoDatabaseSystem處理過程(續(xù))

數(shù)據(jù)結(jié)構(gòu),以“學生”為例 “學生”是該系統(tǒng)中的一個核心數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu):學生含義說明:是學籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu),定義了一個學生的有關信息組成:學號,姓名,性別,年齡,所在系,年級

AnIntroductiontoDatabaseSystem處理過程(續(xù))數(shù)據(jù)流,“體檢結(jié)果”可如下描述:數(shù)據(jù)流:體檢結(jié)果說明:學生參加體格檢查的最終結(jié)果數(shù)據(jù)流來源:體檢數(shù)據(jù)流去向:批準組成:……平均流量:……高峰期流量:……AnIntroductiontoDatabaseSystem處理過程(續(xù))數(shù)據(jù)存儲,“學生登記表”可如下描述:數(shù)據(jù)存儲:學生登記表說明:記錄學生的基本情況流入數(shù)據(jù)流:……

流出數(shù)據(jù)流:……

組成:……

數(shù)據(jù)量:每年3000張存取方式:隨機存取

AnIntroductiontoDatabaseSystem處理過程(續(xù))處理過程“分配宿舍”可如下描述:處理過程:分配宿舍說明:為所有新生分配學生宿舍輸入:學生,宿舍輸出:宿舍安排處理:在新生報到后,為所有新生分配學生宿舍。要求同一間宿舍只能安排同一性別的學生,同一個學生只能安排在一個宿舍中。每個學生的居住面積不小于3平方米。安排新生宿舍其處理時間應不超過15分鐘。

AnIntroductiontoDatabaseSystem數(shù)據(jù)字典數(shù)據(jù)字典是關于數(shù)據(jù)庫中數(shù)據(jù)的描述,是元數(shù)據(jù),而不是數(shù)據(jù)本身數(shù)據(jù)字典在需求分析階段建立,在數(shù)據(jù)庫設計過程中不斷修改、充實、完善數(shù)據(jù)流圖銷售管理子系統(tǒng)第一層數(shù)據(jù)流圖AnIntroductiontoDatabaseSystems7.3概念模型概念模型的用途概念模型用于信息世界的建模是現(xiàn)實世界到機器世界的一個中間層次是數(shù)據(jù)庫設計的有力工具數(shù)據(jù)庫設計人員和用戶之間進行交流的語言對概念模型的基本要求較強的語義表達能力能夠方便、直接地表達應用中的各種語義知識簡單、清晰、易于用戶理解AnIntroductiontoDatabaseSystems信息世界中的基本概念(1)實體(Entity)

客觀存在并可相互區(qū)別的事物稱為實體。可以是具體的人、事、物或抽象的概念。(2)屬性(Attribute)實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。(3)碼(Key)唯一標識實體的屬性集稱為碼。AnIntroductiontoDatabaseSystems信息世界中的基本概念(續(xù))(4)域(Domain)屬性的取值范圍稱為該屬性的域。(5)實體型(EntityType)用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型(6)實體集(EntitySet)同一類型實體的集合稱為實體集AnIntroductiontoDatabaseSystems信息世界中的基本概念(續(xù))(7)聯(lián)系(Relationship)

現(xiàn)實世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系。實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系AnIntroductiontoDatabaseSystems二、兩個實體型之間的聯(lián)系實體型A聯(lián)系名實體型B111:1聯(lián)系實體型A聯(lián)系名1n1:n聯(lián)系實體型A實體型B聯(lián)系名mnm:n聯(lián)系實體型B用圖形來表示兩個實體型之間的這三類聯(lián)系

AnIntroductiontoDatabaseSystems二、兩個實體型之間的聯(lián)系(續(xù))一對一聯(lián)系(1:1)實例一個班級只有一個正班長一個班長只在一個班中任職定義:如果對于實體集A中的每一個實體,實體集B中至多有一個(也可以沒有)實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一聯(lián)系,記為1:1

班級班級-班長班長111:1聯(lián)系AnIntroductiontoDatabaseSystems兩個實體型之間的聯(lián)系(續(xù))一對多聯(lián)系(1:n)實例一個班級中有若干名學生,每個學生只在一個班級中學習定義:如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多聯(lián)系,記為1:n班級組成學生1n1:n聯(lián)系AnIntroductiontoDatabaseSystems兩個實體型之間的聯(lián)系(續(xù))多對多聯(lián)系(m:n)實例課程與學生之間的聯(lián)系:一門課程同時有若干個學生選修一個學生可以同時選修多門課程定義:如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之聯(lián)系,則稱實體集A與實體B具有多對多聯(lián)系,記為m:n課程選修學生mnm:n聯(lián)系AnIntroductiontoDatabaseSystems三、兩個以上實體型之間的聯(lián)系兩個以上實體型之間一對多聯(lián)系若實體集E1,E2,...,En存在聯(lián)系,對于實體集Ej(j=1,2,...,i-1,i+1,...,n)中的給定實體,最多只和Ei中的一個實體相聯(lián)系,則我們說Ei與E1,E2,...,Ei-1,Ei+1,...,En之間的聯(lián)系是一對多的AnIntroductiontoDatabaseSystems兩個以上實體型之間的聯(lián)系(續(xù))實例

課程、教師與參考書三個實體型一門課程可以有若干個教師講授,使用若干本參考書,每一個教師只講授一門課程,每一本參考書只供一門課程使用課程講授教師1m兩個以上實體型間1:n聯(lián)系參考書nAnIntroductiontoDatabaseSystems兩個以上實體型之間的聯(lián)系(續(xù))多個實體型間的一對一聯(lián)系兩個以上實體型間的多對多聯(lián)系實例

供應商、項目、零件三個實體型一個供應商可以供給多個項目多種零件每個項目可以使用多個供應商供應的零件每種零件可由不同供應商供給供應商供應項目mp兩個以上實體型間m:n聯(lián)系零件nAnIntroductiontoDatabaseSystems四、單個實體型內(nèi)的聯(lián)系一對多聯(lián)系實例

職工實體型內(nèi)部具有領導與被領導的聯(lián)系某一職工(干部)“領導”若干名職工一個職工僅被另外一個職工直接領導這是一對多的聯(lián)系一對一聯(lián)系

請舉例職工領導1n單個實體型內(nèi)部1:n聯(lián)系AnIntroductiontoDatabaseSystems單個實體型內(nèi)的聯(lián)系實體型1聯(lián)系名mn單個實體型內(nèi)的m:n聯(lián)系多對多聯(lián)系AnIntroductiontoDatabaseSystems五、概念模型的一種表示方法實體-聯(lián)系方法(E-R方法)用E-R圖來描述現(xiàn)實世界的概念模型E-R方法也稱為E-R模型AnIntroductiontoDatabaseSystemsE-R圖實體型用矩形表示,矩形框內(nèi)寫明實體名。屬性用橢圓形表示,并用無向邊將其與相應的實體連接起來學生教師學生學號年齡性別姓名AnIntroductiontoDatabaseSystemsE-R圖(續(xù))聯(lián)系聯(lián)系本身:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1、1:n或m:n)AnIntroductiontoDatabaseSystems聯(lián)系的屬性課程選修學生mn成績聯(lián)系的屬性:聯(lián)系本身也是一種實體型,也可以有屬性。如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來KeysAkey

isasetofattributesforoneentitysetsuchthatnotwoentitiesinthissetagreeonalltheattributesofthekey.Itisallowedfortwoentitiestoagreeonsome,butnotall,ofthekeyattributes.Wemustdesignateakeyforeveryentityset.KeysinE/RDiagrams:

Underlinethekeyattribute(s)Example:aMulti-attributeKeyCoursesdeptnumberhoursroom

Notethathoursandroomcouldalsoserveasakey,butwemustselectonlyonekey.設計原則忠實(Faithfulness)避免冗余(Avoidredundancy).能用屬性表示的情況下絕不用實體集忠實性例1實體集Stars和Movies之間的Stars-in聯(lián)系應該是m:n。filmtypeStarsaddressnameMoviestitlelengthyearStars_inmn忠實性(續(xù))例2實體集Course和Instructors之間的Teach聯(lián)系可以是m:n,但也可能是1:n或者其它類型。避免冗余同一個信息以不同的方式多次存在就會發(fā)生冗余。冗余會造成空間浪費,更重要的是可能產(chǎn)生數(shù)據(jù)不一致。Example:GoodThisdesigngivesthenameofeachstudioexactlyonce.MoviesStudiosOwnstitlenameaddryearm1Example:BadMoviesStudiosOwnstitleThisdesignstatesthenameofeachstudiotwice:addryearStudioName1mExample:BadThisdesignrepeatsthestudio’saddressonceforeachmovieandlosestheaddressiftherearetemporarilynomovieforastudio.MoviestitleyearStudioNameStudioAddr實體集VS.屬性一個事物被抽象成實體集,應至少滿足下面的條件之一:除了事物的名字外,還應該有其他描述信息;至少有一個非主屬性

或該事物出現(xiàn)在m:n或n:1聯(lián)系的多端。Example:GoodMoviesStudioOwnstitleStudiodeservestobeanentitysetbecauseofthenonkeyattributeaddr.Moviesdeservestobeanentitysetbecauseitisthe“many”ofthemany-onerelationshipOaddr1mExample:GoodMoviestitleThereisnoneedtomakethestudioanentityset,becausewerecordnothingaboutstudiosbesidestheirname.StudioNameExample:BadMoviesStudiosOwnstitleSincetheStudiosisnothingbutaname,andisnotatthe“many”endofanyrelationship,1m7.4邏輯結(jié)構(gòu)設計E-R圖向關系模型的轉(zhuǎn)換數(shù)據(jù)模型的優(yōu)化設計用戶子模式AnIntroductiontoDatabaseSystemsAnIntroductiontoDatabaseSystemE-R圖向關系模型的轉(zhuǎn)換E-R圖向關系模型的轉(zhuǎn)換要解決的問題如何將實體型和實體間的聯(lián)系轉(zhuǎn)換為關系模式如何確定這些關系模式的屬性和碼轉(zhuǎn)換內(nèi)容將E-R圖轉(zhuǎn)換為關系模型:將實體、實體的屬性和實體之間的聯(lián)系轉(zhuǎn)換為關系模式。AnIntroductiontoDatabaseSystemE-R圖向關系模型的轉(zhuǎn)換(續(xù))實體型間的聯(lián)系有以下不同情況:(1)一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并。轉(zhuǎn)換為一個獨立的關系模式與某一端實體對應的關系模式合并(2)一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關系模式,也可以與n端對應的關系模式合并。轉(zhuǎn)換為一個獨立的關系模式與n端對應的關系模式合并AnIntroductiontoDatabaseSystemE-R圖向關系模型的轉(zhuǎn)換(續(xù))(3)一個m:n聯(lián)系轉(zhuǎn)換為一個關系模式。 例,“選修”聯(lián)系是一個m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關系模式,其中學號與課程號為關系的組合碼:選修(學號,課程號,成績)AnIntroductiontoDatabaseSystemE-R圖向關系模型的轉(zhuǎn)換(續(xù))(4)三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關系模式。 例,“講授”聯(lián)系是一個三元聯(lián)系,可以將它轉(zhuǎn)換為如下關系模式,其中課程號、職工號和書號為關系的組合碼:講授(課程號,職工號,書號)AnIntroductiontoDatabaseSystemE-R圖向關系模型的轉(zhuǎn)換(續(xù))(5)具有相同碼的關系模式可合并目的:減少系統(tǒng)中的關系個數(shù)合并方法:將其中一個關系模式的全部屬性加入到另一個關系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當調(diào)整屬性的次序AnIntroductiontoDatabaseSystemE-R圖向關系模型的轉(zhuǎn)換(續(xù))注意:從理論上講,1:1聯(lián)系可以與任意一端對應的關系模式合并但在一些情況下,與不同的關系模式合并效率會大不一樣。因此究竟應該與哪端的關系模式合并需要依應用的具體情況而定。由于連接操作是最費時的操作,所以一般應以盡量減少連接操作為目標。例如,如果經(jīng)常要查詢某個班級的班主任姓名,則將管理聯(lián)系

溫馨提示

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

評論

0/150

提交評論