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

下載本文檔

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

文檔簡介

AnIntroductiontoDatabaseSystem數據庫系統概論AnIntroductiontoDatabaseSystem第七章數據庫設計AnIntroductiontoDatabaseSystem7.1數據庫設計概述

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

AnIntroductiontoDatabaseSystem數據庫設計的基本步驟數據庫設計分6個階段需求分析概念結構設計邏輯結構設計物理結構設計數據庫實施數據庫運行和維護

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

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

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

數據項是不可再分的數據單位對數據項的描述

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

數據結構描述={數據結構名,含義說明,組成:{數據項或數據結構}}AnIntroductiontoDatabaseSystem數據流

數據流是數據結構在系統內傳輸的路徑。對數據流的描述

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

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

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

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

數據結構,以“學生”為例 “學生”是該系統中的一個核心數據結構:數據結構:學生含義說明:是學籍管理子系統的主體數據結構,定義了一個學生的有關信息組成:學號,姓名,性別,年齡,所在系,年級

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

流出數據流:……

組成:……

數據量:每年3000張存取方式:隨機存取

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

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

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

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

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

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

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

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

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

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

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

Underlinethekeyattribute(s)Example:aMulti-attributeKeyCoursesdeptnumberhoursroom

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

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

溫馨提示

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

評論

0/150

提交評論