數據庫原理課件:創(chuàng)建并檢查ER模型_第1頁
數據庫原理課件:創(chuàng)建并檢查ER模型_第2頁
數據庫原理課件:創(chuàng)建并檢查ER模型_第3頁
數據庫原理課件:創(chuàng)建并檢查ER模型_第4頁
數據庫原理課件:創(chuàng)建并檢查ER模型_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1邏輯數據庫設計–步驟1創(chuàng)建并檢查ER模型2目標什么是設計方法學數據庫設計的兩個主要階段:邏輯設計和物理設計數據庫設計中的關鍵成功因素邏輯和物理數據庫設計中的方法學數據庫設計方法學中步驟1的任務:構建ER模型數據庫設計步驟1產生的文檔,包括ER圖和數據字典3數據庫設計方法學簡介如果所需要的數據庫相當復雜,就需要有一種系統化的方法去設計和構建數據庫,使數據庫既滿足用戶需求又能獲得性能需求(例如時間響應)。這種系統化方法就是數據庫設計方法學。4什么是數據庫設計方法學一種使用過程、技巧、工具和文檔來支持和簡化設計過程的結構化方法。數據庫設計方法學由一系列步驟組成,這些步驟在工程的每個階段引導設計者使用合適的技術,幫助設計者規(guī)劃、管理、控制和評價數據庫開發(fā)過程。它是一個結構化方法,以標準化的和有組織的方式分析和建立數據庫需求模型。5數據庫設計的各個階段兩個主要階段:邏輯數據庫設計和物理數據庫設計邏輯數據庫設計:按照特定的數據模型,構建企業(yè)所使用的數據的模型的過程,但獨立于特定的DBMS和其他的物理考慮事項。物理數據庫設計:在二級存儲上的數據庫實現的描述,它描述基本表、文件組織、用戶高效訪問數據的索引和相關的完整性約束及安全性限制。與特定的DBMS有關。6數據庫設計中的關鍵成功因素

盡可能多地與用戶進行交流在整個數據庫建模過程中使用一種結構化方法學

使用數據驅動方法

在數據模型中加入結構化和完整性考慮將規(guī)范化和事務有效性技術結合進方法學中

盡可能多地使用圖去表示數據模型

(ERWin)使用數據庫設計語言(DBDL)構建數據字典補充數據模型圖

樂于重復以上步驟7數據庫設計方法學概述

8步驟1:創(chuàng)建并檢查ER模型

目標:構建將由數據庫支持的企業(yè)(或企業(yè)的一部分)的數據需求的ER模型。任務:為在分析階段標識的用戶視圖(可能由幾個視圖集成合并而成)建立ER模型。9StayHome

用戶視圖和數據業(yè)務視圖(BusinessView)采用集中式方法將總經理和采購員的視圖合并為業(yè)務視圖。形成局部邏輯數據模型。分公司視圖(Branch

View)采用集中式方法將經理、主管、助理的視圖合并為分公司視圖。形成局部邏輯數據模型。本章為來自第6章事實發(fā)現總結的上述用戶視圖建立ER模型。10步驟1:任務

步驟1.1標識實體

步驟1.2標識關系

步驟1.3標識實體或關系的有關屬性

步驟1.4確定屬性域步驟1.5確定候選鍵、主鍵和備用鍵屬性步驟1.6特化/泛化實體(可選步驟)

步驟1.7檢查模型的數據冗余步驟1.8檢查模型是否支持用戶事務

步驟1.9與用戶一起檢查模型

11步驟1.1標識實體仔細研究用戶的需求說明,注意提到的名詞或名詞短語,即是構成某實體的屬性或實體本身。

例如,staffnumber(員工號)、staffname(員工名)、catalognumber(目錄號)、title(標題)、dailyrentalrate(日租金)、purchaseprice(購買價格)提取主要對象,標識為實體。例如,Staff實體(staffnumber,staffname)Video實體(catalognumber,title,dailyrentalrate,purchaseprice)12StayHome的Branch視圖實體Branch(分公司) Staff(員工)Video(錄像)VideoForRent(出租錄像)Member(會員)RentalAgreement(出租協議)Actor(演員)Director(導演)13實體文檔(數據字典)從數據字典中抽取出來的StayHome的Brunch用戶視圖的實體描述14步驟1:任務

步驟1.1標識實體

步驟1.2標識關系

步驟1.3標識實體或關系的有關屬性

步驟1.4確定屬性域步驟1.5確定候選鍵、主鍵和備用鍵屬性步驟1.6特化/泛化實體(可選步驟)

步驟1.7檢查模型的數據冗余步驟1.8檢查模型是否支持用戶事務

步驟1.9與用戶一起檢查模型

15步驟1.2 標識關系

仔細研究用戶的需求說明,注意提到的動詞或動詞短語表示。使用實體-關系概念建模確定關系的多樣性約束

檢查扇形陷阱和深坑陷阱

關系文檔16步驟1.2 標識關系

仔細研究用戶的需求說明,注意提到的動詞或動詞短語表示或“是”,“是…一部分”。例如,BranchHasStaff(分公司“有”員工)BranchIsAllcoatedVideoForRent(分公司“被分派”了出租錄像)VideoFroRentIsPartOfRentalAgreement(出租錄像“是”出租協議“一部分”)使用實體-關系概念建模17StayHome的Branch用戶視圖的關系初稿18StayHome的Branch用戶視圖的

ER模型初稿19確定關系的多樣性約束20為ER模型添加多樣性約束21步驟1.2 標識關系

仔細研究用戶的需求說明,注意提到的動詞或動詞短語表示。使用實體-關系概念建模確定關系的多樣性約束

檢查扇形陷阱和深坑陷阱標識了關系后,應該檢查每個關系所描述的是不是確實所需要的,并且檢查是否產生連接陷阱。關系文檔22扇形陷阱(回顧)從第三個實體扇出的兩個實體有1:*關系,但這兩個實體之間應該有直接關系以提供必要的信息。

23深坑陷阱(回顧)一種模型,假設兩個實體之間存在關系,但這些實體之間不存在路徑。24步驟1.2 標識關系

仔細研究用戶的需求說明,注意提到的動詞或動詞短語表示。使用實體-關系概念建模確定關系的多樣性約束

檢查扇形陷阱和深坑陷阱關系文檔25從StayHome的Branch用戶視圖的數據字典中抽取的關系的描述26步驟1:任務

步驟1.1標識實體

步驟1.2標識關系

步驟1.3標識實體或關系的有關屬性

步驟1.4確定屬性域步驟1.5確定候選鍵、主鍵和備用鍵屬性步驟1.6特化/泛化實體(可選步驟)

步驟1.7檢查模型的數據冗余步驟1.8檢查模型是否支持用戶事務

步驟1.9與用戶一起檢查模型

27步驟1.3標識實體或關系的有關屬性

仔細閱讀用戶需求說明書,尋找名詞或名詞短語,當它們是特性、標志或前面定義的實體或關系的特征時就可以被標識成屬性。屬性文檔28簡單/復合屬性形如“地址”、“姓名”的屬性可以是簡單屬性或復合屬性。簡單屬性將地址的所有細節(jié)當作一個值來處理,即作為實體的一個簡單屬性。如:“城市街道郵編”復合屬性由若干簡單屬性組成。如將地址的各元素分開,分別作為實體的屬性29單值/多值屬性形如“種類”、“電話”的屬性就是多值屬性。單值屬性只有一個值的屬性,例如catalogNo,不用做特殊處理。多值屬性對于特定的實體,某些屬性具有多個值。例如,“種類”屬性可能有“成人”、“兒童”、“動作”、“恐怖”等值。這類屬性可以將屬性標記為一組具有上下限的值。在ER圖中表示出來。假如某單位的電話號碼有多個,可以將“電話”屬性作為一個單獨的實體處理。30派生屬性如果屬性值可以通過檢查其他屬性的值得到,則此屬性就被稱為派生屬性。如“年齡”可以通過“出生年月”計算出來,“年齡”就是派生屬性。通常,在邏輯數據模型中不表示這些屬性。如果要標識,在其名字前加“/”。在物理設計階段才考慮派生屬性的表達。往往在用戶界面中體現。31StayHome中實體的屬性Branch(branchNo,address(復合:street,citystate,zipCode),telNo(多值))Staff(staffNo,name,position,salary)Video(catalogNo,title,category,dailyRental,price)Director(directorName)Actor(actorName)Member(memberNo,name(復合:fName,lName),address)RentalAgreement(rentalNo,dateOut,dateReturn)VideoForRent(videoNo,available)32StayHome中關系的屬性屬性dataJoined(描述會員在分公司登記的日期)很難將該屬性與一個特定的實體相關聯不能和實體Member相聯,因為一個Member能在不只一個分公司登記它應該與實體Member、Branch和Staff之間的三元關系Registers相關聯,作為該關系的屬性處理。屬性character(描述演員在錄像中的角色名稱)作為實體Actor和Video之間的多對多關系PlanysIn的屬性。33關系的屬性34屬性文檔屬性名稱和屬性描述數據類型和長度屬性的已知別名或同義詞屬性是否是一定要指定(換句話說,屬性的值是否可以為空)屬性是否是多值的,可否將多值屬性作為一個獨立的實體處理或含有上下界的一組值處理。屬性是否是復合屬性,如果是,那些單值組成了復合屬性。屬性是否是派生屬性,如果是,應該如何計算。屬性的默認值35StayHome數據字典中的部分屬性描述36步驟1:任務

步驟1.1標識實體

步驟1.2標識關系

步驟1.3標識實體或關系的有關屬性

步驟1.4確定屬性域步驟1.5確定候選鍵、主鍵和備用鍵屬性步驟1.6特化/泛化實體(可選步驟)

步驟1.7檢查模型的數據冗余步驟1.8檢查模型是否支持用戶事務

步驟1.9與用戶一起檢查模型

37步驟1.4確定屬性域域是一組值的集合,一個或多個屬性可以從中選擇它們的值指定域該屬性的容許值集合該屬性的大小和格式屬性域存檔38步驟1.5 確定候選鍵、主鍵和備用鍵屬性為每個實體標識候選鍵,如果有多個候選鍵,則選擇其中之一作為主鍵,并標識其他的作為備用鍵候選鍵不能為空(如果候選鍵不只包含一個屬性,每個屬性都不能為空)其他的候選鍵被稱為備用鍵人名不適合做候選鍵存檔候選鍵、主鍵和備用鍵39選擇主鍵的指南從候選鍵中選擇主鍵時,應遵守:優(yōu)先選取具有最少的一組屬性的候選鍵值很少變化的候選鍵在未來不會失去唯一性的候選鍵(實體完整性)字符最少的候選鍵(對于文本屬性)最大值最小(對于數值型屬性)從用戶的觀點來看最易于使用的候選鍵與弱實體有關的一個或多個屬性也可能成為最終主鍵的一部分,但它們并不提供唯一性。40StayHome顯示主鍵的ER模型41數據字典中主鍵和備用鍵的定義42步驟1:任務

步驟1.1標識實體

步驟1.2標識關系

步驟1.3標識實體或關系的有關屬性

步驟1.4確定屬性域步驟1.5確定候選鍵、主鍵和備用鍵屬性步驟1.6特化/泛化實體(可選步驟)

步驟1.7檢查模型的數據冗余步驟1.8檢查模型是否支持用戶事務

步驟1.9與用戶一起檢查模型

43步驟1.6特化/泛化實體(可選步驟)可以選擇使用特化和泛化過程來繼續(xù)邏輯數據模型的開發(fā)超類和子類的建模為數據模型添加了更多的細節(jié),但是也使模型更加復雜44步驟1.7檢查冗余檢查ER模型是否有冗余存在,并刪除這些冗余在這個步驟中有三個活動重新檢查一對一關系刪除冗余關系當訪問冗余時考慮時間尺度45重新檢查1:1關系在標識實體時,可能標識了兩個實體,但它們表示同一個對象。例如,標識了實體Branch和Outlet,實際上,它們是同義詞??梢詫⑦@兩個實體應該合并,如果主鍵不同,選作一個作為主鍵,另一個作為候選鍵。46刪除冗余關系如果通過其他關系可以獲得相同的信息,則這個關系就是冗余的。47當訪問冗余時考慮時間尺度當訪問冗余時,檢查實體間每個關系的意義是很重要的。48步驟1:任務

步驟1.1標識實體

步驟1.2標識關系

步驟1.3標識實體或關系的有關屬性

步驟1.4確定屬性域步驟1.5確定候選鍵、主鍵和備用鍵屬性步驟1.6特化/泛化實體(可選步驟)

步驟1.7檢查模型的數據冗余步驟1.8檢查模型是否支持用戶事務

步驟1.9與用戶一起檢查模型

49步驟1.8檢查模型是否支持用戶事務這個步驟的目標就是檢查ER模型,確保模型支持所需要的事務兩種可能的方法描述事務使用事務路徑50描述事務根據每個事務的需求描述,檢查模型中是否提供了事務所需的所有信息(實體、關系和屬性)。事務(o)根據分公司號,列出每個分公司的每個經理的名字。每個經理的名字均包含在實體Staff中,而分公司的具體情況包含在實體Branch中,通過這兩個實體之間的關系Manages,可以完成上述事務的任務。51使用路徑(r)按照片名順序列出某分公司指定導演的錄像名稱、種類和租借狀態(tài)導演信息在Director實體中,分公司信息在Branch實體中,從Director實體開始,使用關系“Directs”找到Video實體,然后通過關系“IS”找到VideoForRent實體,再通過關系“IsAllocated”找到Branch實體。即可完成此事務。52SQL語句(r)按照片名順序列出某分公司指定導演的錄像名稱、種類和租借狀態(tài)/***使用候選鍵(通常是主鍵)/外鍵連接表***/SELECTVideo.*,VideoForRent.*FROMDirector,Video,VideoForRent,BranchWHERE(Director.directorNo=Video.directorNo)and(Video.catalogNo=VideoForRent.catalogNo)and(VideoForRent.branchNo=Branch.branchNo)and(Director.directorNo='D1001')and(Branch.branchNo='B001')53SQL語句(r)按照片名順序列出某分公司指定導演的錄像名稱、種類和租借狀態(tài)SELECTVideo.*,VideoForRent.*FROMDirectorINNERJOINVideoONDirector.directorNo=Video.directorNoINNERJOINVideoForRentONVideo.catalogNo=VideoForRent.catalogNoINNERJOINBranchONVideoForRent.branchNo=Branch.branchNoWHEREDirector.directorNo='D1001'andBranch.branchNo='B001'/***使用候選鍵(通常是主鍵)/外鍵連接表***/另外一種形式的SQL語句54SQL語句(r)按照片名順序列出某分公司指定導演的錄像名稱、種類和租借狀態(tài)/***使用候選鍵(通常是主鍵)/外鍵連接表***//****簡化形式****/SELECTVideo.*,VideoForRent.*FROMVideo,VideoForRentWHERE(Video.catalo

溫馨提示

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

最新文檔

評論

0/150

提交評論