物理數(shù)據(jù)庫設計 –chap10將ER模型映射為表

上傳人:清****歡 文檔編號:243154603 上傳時間:2024-09-17 格式:PPT 頁數(shù):57 大?。?.69MB
收藏 版權(quán)申訴 舉報 下載
物理數(shù)據(jù)庫設計 –chap10將ER模型映射為表_第1頁
第1頁 / 共57頁
物理數(shù)據(jù)庫設計 –chap10將ER模型映射為表_第2頁
第2頁 / 共57頁
物理數(shù)據(jù)庫設計 –chap10將ER模型映射為表_第3頁
第3頁 / 共57頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《物理數(shù)據(jù)庫設計 –chap10將ER模型映射為表》由會員分享,可在線閱讀,更多相關(guān)《物理數(shù)據(jù)庫設計 –chap10將ER模型映射為表(57頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,*,Chapter 10,邏輯數(shù)據(jù)庫設計,步驟,2,將,ER,模型映射為表,1,Chapter 10,目標,如何將,ER,模型映射為表集合,如何使用規(guī)范化方法檢查表結(jié)構(gòu),如何檢查所建的表是否支持用戶需要的事務,如何定義和存檔完整性約束,2,步驟,2,將,ER,模型映射為表,根據(jù),ER,模型創(chuàng)建表,并檢查這些表的結(jié)構(gòu)。,步驟,2.1,創(chuàng)建表,步驟,2.2,用

2、規(guī)范化方法檢查表結(jié)構(gòu),步驟,2.3,檢查表是否支持用戶事務,步驟,2.4,檢查業(yè)務規(guī)則,步驟,2.5,與用戶討論邏輯數(shù)據(jù)庫設計,3,步驟,2.1,創(chuàng)建表,為,ER,模型創(chuàng)建表,表達實體、關(guān)系、屬性和約束,每個表的結(jié)構(gòu)來源于,ER,所描述的信息,這些信息包括,ER,圖、數(shù)據(jù)字典和任何其他相關(guān)的文檔,格式:,表名稱(屬性,1,,屬性,2,,,),主鍵,備用鍵,外鍵(包括被引用主鍵的表),4,StayHome,ER,模型,5,如何表達實體,對,ER,模型中的每個實體,創(chuàng)建一個包含實體的所有簡單屬性的表。,對復合屬性,僅包含表中組成復合屬性的簡單屬性。,如果可能,標識每個表中組成主鍵的列。,在某些情況

3、下,還不能標識出組成表的所有列,原因是還要描述實體間的關(guān)系。這意味著在,ER,模型中沒有表達出關(guān)系之前,不能標識出組成弱實體的主鍵的列。,6,實體的初始表結(jié)構(gòu),7,如何表達關(guān)系,用主鍵,/,外鍵機制表達,為了決定將外鍵屬性放在那里,首先必須標識關(guān)系中包含的“父”實體和“子”實體,父實體指的是把自己的主鍵拷貝到代表子實體的表中作為外鍵的實體,關(guān)系從父實體貢獻外鍵到子實體,8,如何表達關(guān)系,考慮如何標識下列關(guān)系,一對多,(1:*),二元關(guān)系,一對多,(1:*),遞歸關(guān)系,一對一,(1,:1),二元關(guān)系,一對一,(1,:1),遞歸關(guān)系,多對多,(,*,:*),二元關(guān)系,復雜屬性,多值屬性,9,一對多

4、(,1:*,)二元關(guān)系,關(guān)系“一”端的實體被設計為父實體,“多”端的實體被設計為子實體,父實體主鍵的拷貝,被放置在子實體的表中,作為外鍵,關(guān)系中的任何屬性也復制到“多”端的表中,10,一對多(,1:*,)二元關(guān)系,11,一對多(,1:*,)遞歸關(guān)系,1:*,一對多的遞歸關(guān)系的表示類似于,1:*,一對多的二元關(guān)系,父實體和子實體是相同的實體,代表實體的表有一個主鍵拷貝,這個拷貝是被重命名(稱為角色名),并且有關(guān)系的其他屬性,12,一對多(,1:*,)遞歸關(guān)系,13,一對一(,1:1,)二元關(guān)系,不能使用元組的數(shù)目來標識一個關(guān)系中的父實體和子實體。,而是需要使用參與過程(強制參與還是可選參與)來決

5、定是把實體結(jié)合為一個表來表示關(guān)系好,還是建兩個表由外鍵來表示關(guān)系好。,14,一對一(,1:1,)二元關(guān)系,考慮如何建表來表示如下的參與約束,1:1,關(guān)系的兩邊都是強制參與,1:1,關(guān)系的一邊都是強制參與,1:1,關(guān)系的兩邊均為可選參與,15,兩個實體均是強制參與的,1:1,關(guān)系,將實體組合為一個表,并選擇初始實體中的一個主鍵作為新表的主鍵,其他的主鍵用作備用鍵。,注意僅當兩個實體之間沒有其他關(guān)系的時候,才有可能把兩個實體合并到一張表中。如果還存在其他關(guān)系,則應該用主鍵,/,外鍵機制創(chuàng)建表來描述這些關(guān)系。,16,兩個實體均是強制參與的,1:1,關(guān)系,17,1:1,關(guān)系的一邊是強制參與,可以使用強

6、制約束來標識,1:1,關(guān)系的父實體和子實體,關(guān)系中的可選參與的實體被設計為父實體,關(guān)系中的強制參與的實體被設計為子實體,父實體主鍵的拷貝,被放置在描述子實體的表中,18,1:1,關(guān)系的一邊是強制參與,19,1:1,關(guān)系的一邊是強制參與,20,1:1,關(guān)系的兩邊均為可選參與,在這種情況下,父實體和子實體之間的設計是任意的,除非你可以得到關(guān)于關(guān)系的更多信息來幫助你判斷使用哪個設計。,21,1:1,關(guān)系的兩邊均為可選參與,22,一對一(,1:1,)遞歸關(guān)系,遵循上面所描述的對,1:1,關(guān)系的“參與”規(guī)則,但是,在這種特殊的,1:1,關(guān)系情景中,關(guān)系兩邊的實體是相同的,分為以下三種情況,兩邊有強制參與

7、的,1:1,遞歸關(guān)系,一邊強制參與的,1:1,遞歸關(guān)系,兩邊是可選參與的,1:1,遞歸關(guān)系,23,1:1,兩邊強制參與一對一遞歸關(guān)系,應該用主鍵的兩個拷貝來把這個遞歸關(guān)系描述為一個表,主鍵的一個拷貝代表外鍵,并且應該將它重新命名來表示它代表的關(guān)系,24,一邊是強制參與的,1:1,遞歸關(guān)系,方法,1,:可以用主鍵的兩個拷貝建一個表,以描述遞歸關(guān)系。,方法,2,:也可以創(chuàng)建一個新表來代表關(guān)系,這個新表只有兩個列,都是主鍵的拷貝,主鍵的拷貝作為外鍵,并且必須重新命名來表示在表中的意思。,25,兩邊是可選參與的,1:1,遞歸關(guān)系,對于兩邊是可選參與的,1:1,遞歸關(guān)系,應該向前面那樣創(chuàng)建一個新表,這個

8、新表只有兩個列,都是主鍵的拷貝,主鍵的拷貝作為外鍵,并且必須重新命名來表示在表中的意思。,26,多對多(,*:*,)二元關(guān)系,創(chuàng)建一個表達關(guān)系的表,這個表包含關(guān)系的任何屬性。,將參與關(guān)系的實體的主鍵屬性拷貝到新表中,使之作為外鍵。,一個外鍵或全部外鍵將組成新表的主鍵,可能要結(jié)合此關(guān)系的一些屬性。,27,多對多(,*:*,)二元關(guān)系,28,復雜關(guān)系,創(chuàng)建一個表達關(guān)系的表。,將參與復雜關(guān)系的這些實體的主鍵復制到新表中,并作為外鍵,此表還包含于關(guān)系相關(guān)的全部屬性。,一個或多個外鍵將組成新表的主鍵,還可以加上關(guān)系中的一些其他屬性。,29,復雜關(guān)系(三元關(guān)系), ER,模型,30,復雜關(guān)系(三元關(guān)系),

9、對應的表,31,多值屬性,遵守,1:*,關(guān)系中所描述的規(guī)則,在“一”端的實體被指定為父實體,在“多”端的多值屬性被指定為子體。,創(chuàng)建一個新的表包含這些多值屬性,并將父實體的主鍵拷貝過來作為外鍵。,除非多值屬性自己本身是父實體的備用鍵,否則新表的主鍵由多值屬性和父實體的原始主鍵組成。,32,多值屬性, ER,模型和對應的表,33,如何將實體、關(guān)系和多值屬性表達為表的總結(jié),實體,/,關(guān)系,/,屬性,表達為表,強實體或弱實體,創(chuàng)建包含所有簡單屬性的表;對復合屬性,僅包含表中組成復合屬性的簡單屬性。如果可能,標識每個表中組成主鍵的列。,1:*,二元關(guān)系,將“一”端實體的主鍵復制到表達“多端”實體的表中

10、,關(guān)系中的任何屬性也復制到“多端”的表中,1:*,遞歸關(guān)系,兩個實體是一樣的,代表實體的表有一個主鍵拷貝,這個拷貝是被重命名(稱為角色名),并且有關(guān)系的其他屬性,*,:*,二元關(guān)系,/,復雜關(guān)系,創(chuàng)建表達關(guān)系的表,此表中包含任何與關(guān)系有關(guān)的屬性,將每個父實體中的主鍵復制到新表中作為外鍵,多值屬性,創(chuàng)建一個表達多值屬性的表,并將父實體的主鍵復制到新表中作為外鍵,34,如何將實體、關(guān)系和多值屬性表達為表的總結(jié)(續(xù),1,),實體,/,關(guān)系,/,屬性,表達為表,1:1,二元關(guān)系,兩端都是強制參與,將實體組合為一個表,并選擇初始實體中的一個主鍵作為新表的主鍵,其他的主鍵用作備用鍵。,一端是強制參與,可選

11、參與實體為父實體,強制參與實體為子實體,將有可選參與的實體的主鍵復制到表達有強制參與的實體的表中,關(guān)系的屬性也被復制到該表中。,兩端都是可選參與,沒有更多的信息,將一個實體的主鍵拷貝到另一個實體中。但如果信息是可獲得的,則將更具有強制參與的實體作為子實體。,35,如何將實體、關(guān)系和多值屬性表達為表的總結(jié)(續(xù),2,),實體,/,關(guān)系,/,屬性,表達為表,1:1,遞歸關(guān)系,兩端都是強制參與,兩個實體是一樣的,代表實體的表有一個主鍵拷貝,這個拷貝是被重命名的,并且有關(guān)系的其他屬性,一端是強制參與,方法,1,:同上,方法,2,:創(chuàng)建一個新表來代表關(guān)系,只有兩列,都是主鍵的拷貝,作為外鍵,必須重新命名來

12、表示在表中的意思。,兩端都是可選參與,同方法,2,36,StayHome,數(shù)據(jù)庫的,Branch,視圖中的表,37,步驟,2.2,用規(guī)范化方法檢查表結(jié)構(gòu),用規(guī)范化方法檢查每個表的組成來避免不必要的數(shù)據(jù)重復,確保每個表至少是第三范式(,3NF,)的,如果所標識的表不是第三范式的,可能表明,ER,模型的某部分是錯誤的,或者由模型創(chuàng)建表時產(chǎn)生了錯誤,如果必要的話,可能需要重新構(gòu)建數(shù)據(jù)模型或者表,38,步驟,2.3,檢查表是否支持用戶事務,檢查所建的表是否如用戶需求說明中所要求的那樣,支持用戶所需的事務。,確保在建表的時候,沒有錯誤發(fā)生。,檢查表是否支持事務的一種方法是檢查是否支持事務的數(shù)據(jù)需求,以確

13、保數(shù)據(jù)在一個或多個表中存在。,如果事務所需求的數(shù)據(jù)在多個表中,則應該檢查這些表是否能夠通過,主鍵,/,外鍵,機制連接起來。,下表中黑體顯示了事務所需要的列,必要時還包括了連接表中的列。,39,StayHome,的,Branch,視圖的更新,/,刪除事務所需的表,40,StayHome,的,Branch,視圖的,查詢,事務所需的表,41,StayHome,的,Branch,視圖的,查詢,事務所需的表,(續(xù)),42,回顧,ch09,檢查支持用戶事務,描述事務,根據(jù)每個事務的需求描述,檢查模型中是否提供了事務所需的所有信息(實體、關(guān)系和屬性)。,事務(,o,)根據(jù)分公司號,列出每個分公司的每個經(jīng)理的

14、名字。,每個經(jīng)理的名字均包含在實體,Staff,中,而分公司的具體情況包含在實體,Branch,中,通過這兩個實體之間的關(guān)系,Manages,,可以完成上述事務的任務。,43,使用路徑,()按照片名順序列出某分公司指定導演的錄像名稱、種類和租借狀態(tài),導演信息在,Director,實體中,分公司信息在,Branch,實體中,從,Director,實體開始,使用關(guān)系“,Directs”,找到,Video,實體,然后通過關(guān)系“,IS”,找到,VideoForRent,實體,再通過關(guān)系“,IsAllocated,”,找到,Branch,實體。即可完成此事務。,44,SQL,語句,()按照片名順序列出某

15、分公司指定導演的錄像名稱、種類和租借狀態(tài),/*,使用候選鍵(通常是主鍵),/,外鍵連接表*,/,SELECT Video.*,VideoForRent.*,FROM Director,Video,VideoForRent,Branch,WHERE (Director.directorNo = Video.directorNo) and,(Video.catalogNo = VideoForRent.catalogNo) and,(VideoForRent.branchNo = Branch.branchNo) and,(Director.directorNo = D1001) and,(Bra

16、nch.branchNo = B001),45,SQL,語句,()按照片名順序列出某分公司指定導演的錄像名稱、種類和租借狀態(tài),SELECT Video.*,VideoForRent.*,FROM Director INNER JOIN,Video ON Director.directorNo = Video.directorNo INNER JOIN,VideoForRent ON Video.catalogNo = VideoForRent.catalogNo INNER JOIN,Branch ON VideoForRent.branchNo = Branch.branchNo,WHERE

17、 Director.directorNo = D1001 and Branch.branchNo = B001,/*,使用候選鍵(通常是主鍵),/,外鍵連接表*,/,另外一種形式的,SQL,語句,46,SQL,語句,()按照片名順序列出某分公司指定導演的錄像名稱、種類和租借狀態(tài),/*,使用候選鍵(通常是主鍵),/,外鍵連接表*,/,/*,簡化形式 *,/,SELECT Video.*,VideoForRent.*,FROM Video,VideoForRent,WHERE (Video.catalogNo = VideoForRent.catalogNo) and (Video.directo

18、rNo = D1001),and (VideoForRent.branchNo = B001),47,步驟,2.4,檢查業(yè)務規(guī)則,業(yè)務規(guī)則是用于防止數(shù)據(jù)庫不完整、不準確或不一致的約束,考慮下面幾種的業(yè)務規(guī)則,需要的數(shù)據(jù),列的值域約束,實體完整性,多樣性,參照完整性,其他業(yè)務規(guī)則,48,步驟,2.4,檢查業(yè)務規(guī)則,需要的數(shù)據(jù),某些列必須要包含值,即不允許有空值。例如,每個員工必須有一個職位(經(jīng)理,主管、助理),列的值域約束,每個列都有一個值域(一組對該列合法的值)。指定數(shù)據(jù)類型。,實體完整性,實體的主鍵不能為空,且唯一。,多樣性,表達了數(shù)據(jù)庫中數(shù)據(jù)間的關(guān)系的約束。例如,分公司必須有會員和員工。,

19、參照完整性,外鍵包含與父表相匹配的主鍵值。,外鍵允許為空嗎?如果子表是強制參與的,外鍵就不允許空,如果是可選參與的,就允許為空。,49,如何保證參照完整性,?,應該指定存在約束,(,existence constraints,),,該約束定義了主鍵和外鍵在什么條件下能夠被插入、更新或刪除,下面以,1:*,關(guān)系,Branch Has Staff,為例,說明如何保證參照完整性。(,branchNo,在,Staff,表中是外鍵),50,如何保證參照完整性,?,考慮如下六種情況,.,Case 1:,向子表插入記錄,Case 2:,從子表中刪除記錄,Case 3:,更新子表記錄中的外鍵,Case 4:,

20、向父表中插入記錄,Case 5:,從父表中刪除記錄,Case 6:,更新父表的主鍵,51,如何保證參照完整性,?,Case 1:,向子表(,Staff,)插入記錄,檢查新的,Staff,外鍵,branchNo,是為空還是為一個,Branch,表中已存在的記錄的值。,Case 2:,從子表(,Staff,)中刪除記錄,如果一個子表中的一個記錄被刪除,參照完整性不受影響。,Case 3:,更新子表(,Staff,)記錄中的外鍵,同,Case1,52,如何保證參照完整性,?,Case 4:,向父表(,Branch,)中插入記錄,向父表中插入記錄并不影響參照完整性。只是分公司沒有成員。,Case 5:

21、,從父表(,Branch,)中刪除記錄,若父表中的一個記錄刪除了,如果有子記錄引用這個被刪除的父記錄,則參照完整性就丟失了??梢钥紤]以下幾種操作:,NO ACTION,(不操作):不刪除(缺省)。,CASCADE,(級聯(lián)):自動刪除相關(guān)的子記錄。如果被刪除的子記錄在其他關(guān)系中充當父記錄,其相關(guān)的子記錄也被刪除。,SET NULL,(置空):相關(guān)子記錄的外鍵置空,SET DEFAULT,(置預定值):相關(guān)子記錄的外鍵置為預定值,NO CHECK,(不檢查):不進行完整性檢查(可以用,alter table,命令)。,53,如何保證參照完整性,?,Case 6:,更新父表(,Branch,)的主鍵

22、,若父表中的一個記錄被更新了,如果有子記錄引用這個被更新的父記錄,則參照完整性就丟失了。,可以考慮,Case5,的幾種策略,在,CASCADE,情況中,更新父記錄主鍵的同時也更新了子記錄的外鍵值。,54,StayHome,的,Branch,視圖的表的參照完整性約束,55,步驟,2.5,與用戶討論邏輯數(shù)據(jù)庫設計,確保局部邏輯數(shù)據(jù)模型與描述模型的文檔確實表達了用戶視圖,56,小結(jié),邏輯設計步驟,2,的主要目的是為,ER,圖創(chuàng)建表的結(jié)構(gòu)。,使用規(guī)范化方法檢查表的結(jié)構(gòu)。,檢查表的結(jié)構(gòu)以確保它們支持用戶所要求的事務。,業(yè)務規(guī)則可以防止數(shù)據(jù)庫不完整、不準確和不一致。這些規(guī)則包括完整性約束、需要的數(shù)據(jù)、列值約束、實體完整性、多樣性、參照完整性和其他業(yè)務規(guī)則。,已有約束通過定義條件確保了參照完整性,可以根據(jù)這些條件插入、更新和刪除主鍵或外鍵。,當一個子記錄引用了要刪除,/,更新的父記錄時,可以考慮使用如下幾種策略:,NO ACTION,、,CASCADE,、,SET NULL,、,SET DEFAULE,和,NO CHECK,。,57,

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!