物理數(shù)據(jù)庫設(shè)計 –chap10將ER模型映射為表
《物理數(shù)據(jù)庫設(shè)計 –chap10將ER模型映射為表》由會員分享,可在線閱讀,更多相關(guān)《物理數(shù)據(jù)庫設(shè)計 –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ù)庫設(shè)計,,–,步驟,2,,將,ER,模型映射為表,,1,Chapter 10,–,,目標(biāo),如何將,ER,模型映射為表集合,,,如何使用規(guī)范化方法檢查表結(jié)構(gòu),,如何檢查所建的表是否支持用戶需要的事務(wù),,,如何定義和存檔完整性約束,,2,,步驟,2,將,ER,模型映射為表,,根據(jù),ER,模型創(chuàng)建表,并檢
2、查這些表的結(jié)構(gòu)。,,步驟,2.1,創(chuàng)建表,,步驟,2.2,用規(guī)范化方法檢查表結(jié)構(gòu),,步驟,2.3,檢查表是否支持用戶事務(wù),,步驟,2.4,檢查業(yè)務(wù)規(guī)則,,步驟,2.5,與用戶討論邏輯數(shù)據(jù)庫設(shè)計,3,,步驟,2.1,創(chuàng)建表,為,ER,模型創(chuàng)建表,表達(dá)實體、關(guān)系、屬性和約束,,,每個表的結(jié)構(gòu)來源于,ER,所描述的信息,這些信息包括,ER,圖、數(shù)據(jù)字典和任何其他相關(guān)的文檔,,,格式:,,表名稱(屬性,1,,屬性,2,,,…,),,主鍵,,備用鍵,,外鍵(包括被引用主鍵的表),,4,,StayHome,ER,模型,5,,如何表達(dá)實體,對,ER,模型中的每個實體,創(chuàng)建一個包含實體的所有簡單屬性的表。,,
3、對復(fù)合屬性,僅包含表中組成復(fù)合屬性的簡單屬性。,,如果可能,標(biāo)識每個表中組成主鍵的列。,,,在某些情況下,還不能標(biāo)識出組成表的所有列,原因是還要描述實體間的關(guān)系。這意味著在,ER,模型中沒有表達(dá)出關(guān)系之前,不能標(biāo)識出組成弱實體的主鍵的列。,,6,,實體的初始表結(jié)構(gòu),7,,如何表達(dá)關(guān)系,用主鍵,/,外鍵機(jī)制表達(dá),,,為了決定將外鍵屬性放在那里,首先必須標(biāo)識關(guān)系中包含的“父”實體和“子”實體,,,父實體指的是把自己的主鍵拷貝到代表子實體的表中作為外鍵的實體,,關(guān)系從父實體貢獻(xiàn)外鍵到子實體,8,,如何表達(dá)關(guān)系,考慮如何標(biāo)識下列關(guān)系,,一對多,(1:*),二元關(guān)系,,一對多,(1:*),遞歸關(guān)系,,一
4、對一,(1,:1),二元關(guān)系,,一對一,(1,:1),遞歸關(guān)系,,多對多,(,*,:*),二元關(guān)系,,復(fù)雜屬性,,多值屬性,9,,一對多(,1:*,)二元關(guān)系,關(guān)系“一”端的實體被設(shè)計為父實體,“多”端的實體被設(shè)計為子實體,,,父實體主鍵的拷貝,被放置在子實體的表中,作為外鍵,,,關(guān)系中的任何屬性也復(fù)制到“多”端的表中,,10,,一對多(,1:*,)二元關(guān)系,11,,一對多(,1:*,)遞歸關(guān)系,1:*,一對多的遞歸關(guān)系的表示類似于,1:*,一對多的二元關(guān)系,,父實體和子實體是相同的實體,,代表實體的表有一個主鍵拷貝,這個拷貝是被重命名(稱為角色名),并且有關(guān)系的其他屬性,12,,一對多(,1
5、:*,)遞歸關(guān)系,13,,一對一(,1:1,)二元關(guān)系,不能使用元組的數(shù)目來標(biāo)識一個關(guān)系中的父實體和子實體。,,而是需要使用參與過程(強(qiáng)制參與還是可選參與)來決定是把實體結(jié)合為一個表來表示關(guān)系好,還是建兩個表由外鍵來表示關(guān)系好。,,14,,一對一(,1:1,)二元關(guān)系,考慮如何建表來表示如下的參與約束,,1:1,關(guān)系的兩邊都是強(qiáng)制參與,,1:1,關(guān)系的一邊都是強(qiáng)制參與,,1:1,關(guān)系的兩邊均為可選參與,15,,兩個實體均是強(qiáng)制參與的,1:1,關(guān)系,將實體組合為一個表,并選擇初始實體中的一個主鍵作為新表的主鍵,其他的主鍵用作備用鍵。,,,注意僅當(dāng)兩個實體之間沒有其他關(guān)系的時候,才有可能把兩個實體
6、合并到一張表中。如果還存在其他關(guān)系,則應(yīng)該用主鍵,/,外鍵機(jī)制創(chuàng)建表來描述這些關(guān)系。,16,,兩個實體均是強(qiáng)制參與的,1:1,關(guān)系,,17,,1:1,關(guān)系的一邊是強(qiáng)制參與,可以使用強(qiáng)制約束來標(biāo)識,1:1,關(guān)系的父實體和子實體,,,關(guān)系中的可選參與的實體被設(shè)計為父實體,關(guān)系中的強(qiáng)制參與的實體被設(shè)計為子實體,,父實體主鍵的拷貝,被放置在描述子實體的表中,18,,1:1,關(guān)系的一邊是強(qiáng)制參與,19,,1:1,關(guān)系的一邊是強(qiáng)制參與,20,,1:1,關(guān)系的兩邊均為可選參與,在這種情況下,父實體和子實體之間的設(shè)計是任意的,除非你可以得到關(guān)于關(guān)系的更多信息來幫助你判斷使用哪個設(shè)計。,,21,,1:1,關(guān)系的
7、兩邊均為可選參與,22,,一對一(,1:1,)遞歸關(guān)系,遵循上面所描述的對,1:1,關(guān)系的“參與”規(guī)則,,但是,在這種特殊的,1:1,關(guān)系情景中,關(guān)系兩邊的實體是相同的,,分為以下三種情況,,兩邊有強(qiáng)制參與的,1:1,遞歸關(guān)系,,一邊強(qiáng)制參與的,1:1,遞歸關(guān)系,,兩邊是可選參與的,1:1,遞歸關(guān)系,23,,1:1,兩邊強(qiáng)制參與一對一遞歸關(guān)系,應(yīng)該用主鍵的兩個拷貝來把這個遞歸關(guān)系描述為一個表,,,主鍵的一個拷貝代表外鍵,并且應(yīng)該將它重新命名來表示它代表的關(guān)系,,24,,一邊是強(qiáng)制參與的,1:1,遞歸關(guān)系,方法,1,:可以用主鍵的兩個拷貝建一個表,以描述遞歸關(guān)系。,,方法,2,:也可以創(chuàng)建一個新
8、表來代表關(guān)系,這個新表只有兩個列,都是主鍵的拷貝,主鍵的拷貝作為外鍵,并且必須重新命名來表示在表中的意思。,,25,,兩邊是可選參與的,1:1,遞歸關(guān)系,對于兩邊是可選參與的,1:1,遞歸關(guān)系,應(yīng)該向前面那樣創(chuàng)建一個新表,這個新表只有兩個列,都是主鍵的拷貝,主鍵的拷貝作為外鍵,并且必須重新命名來表示在表中的意思。,,,,,26,,多對多(,*:*,)二元關(guān)系,創(chuàng)建一個表達(dá)關(guān)系的表,這個表包含關(guān)系的任何屬性。,,,將參與關(guān)系的實體的主鍵屬性拷貝到新表中,使之作為外鍵。,,,一個外鍵或全部外鍵將組成新表的主鍵,可能要結(jié)合此關(guān)系的一些屬性。,,,27,,多對多(,*:*,)二元關(guān)系,28,,復(fù)雜關(guān)系
9、,創(chuàng)建一個表達(dá)關(guān)系的表。,,將參與復(fù)雜關(guān)系的這些實體的主鍵復(fù)制到新表中,并作為外鍵,此表還包含于關(guān)系相關(guān)的全部屬性。,,,一個或多個外鍵將組成新表的主鍵,還可以加上關(guān)系中的一些其他屬性。,29,,,復(fù)雜關(guān)系(三元關(guān)系),– ER,模型,30,,,復(fù)雜關(guān)系(三元關(guān)系),–,對應(yīng)的表,31,,多值屬性,遵守,1:*,關(guān)系中所描述的規(guī)則,在“一”端的實體被指定為父實體,在“多”端的多值屬性被指定為子體。,,創(chuàng)建一個新的表包含這些多值屬性,并將父實體的主鍵拷貝過來作為外鍵。,,,除非多值屬性自己本身是父實體的備用鍵,否則新表的主鍵由多值屬性和父實體的原始主鍵組成。,,,32,,多值屬性,– ER,模型
10、和對應(yīng)的表,,33,,如何將實體、關(guān)系和多值屬性表達(dá)為表的總結(jié),實體,/,關(guān)系,/,屬性,表達(dá)為表,強(qiáng)實體或弱實體,創(chuàng)建包含所有簡單屬性的表;對復(fù)合屬性,僅包含表中組成復(fù)合屬性的簡單屬性。如果可能,標(biāo)識每個表中組成主鍵的列。,,1:*,二元關(guān)系,將“一”端實體的主鍵復(fù)制到表達(dá)“多端”實體的表中,關(guān)系中的任何屬性也復(fù)制到“多端”的表中,1:*,遞歸關(guān)系,兩個實體是一樣的,代表實體的表有一個主鍵拷貝,這個拷貝是被重命名(稱為角色名),并且有關(guān)系的其他屬性,*,:*,二元關(guān)系,/,,復(fù)雜關(guān)系,創(chuàng)建表達(dá)關(guān)系的表,此表中包含任何與關(guān)系有關(guān)的屬性,將每個父實體中的主鍵復(fù)制到新表中作為外鍵,多值屬性,創(chuàng)建一
11、個表達(dá)多值屬性的表,并將父實體的主鍵復(fù)制到新表中作為外鍵,34,,如何將實體、關(guān)系和多值屬性表達(dá)為表的總結(jié)(續(xù),1,),實體,/,關(guān)系,/,屬性,,表達(dá)為表,1:1,二元關(guān)系,兩端都是強(qiáng)制參與,將實體組合為一個表,并選擇初始實體中的一個主鍵作為新表的主鍵,其他的主鍵用作備用鍵。,,一端是強(qiáng)制參與,可選參與實體為父實體,強(qiáng)制參與實體為子實體,將有可選參與的實體的主鍵復(fù)制到表達(dá)有強(qiáng)制參與的實體的表中,關(guān)系的屬性也被復(fù)制到該表中。,,兩端都是可選參與,沒有更多的信息,將一個實體的主鍵拷貝到另一個實體中。但如果信息是可獲得的,則將更具有強(qiáng)制參與的實體作為子實體。,35,,如何將實體、關(guān)系和多值屬性表達(dá)
12、為表的總結(jié)(續(xù),2,),實體,/,關(guān)系,/,屬性,,表達(dá)為表,1:1,遞歸關(guān)系,兩端都是強(qiáng)制參與,兩個實體是一樣的,代表實體的表有一個主鍵拷貝,這個拷貝是被重命名的,并且有關(guān)系的其他屬性,,一端是強(qiáng)制參與,方法,1,:同上,方法,2,:創(chuàng)建一個新表來代表關(guān)系,只有兩列,都是主鍵的拷貝,作為外鍵,必須重新命名來表示在表中的意思。,,兩端都是可選參與,同方法,2,36,,StayHome,,數(shù)據(jù)庫的,Branch,視圖中的表,37,,步驟,2.2,用規(guī)范化方法檢查表結(jié)構(gòu),用規(guī)范化方法檢查每個表的組成來避免不必要的數(shù)據(jù)重復(fù),,,確保每個表至少是第三范式(,3NF,)的,,如果所標(biāo)識的表不是第三范式的
13、,可能表明,ER,模型的某部分是錯誤的,或者由模型創(chuàng)建表時產(chǎn)生了錯誤,,,如果必要的話,可能需要重新構(gòu)建數(shù)據(jù)模型或者表,,38,,步驟,2.3,檢查表是否支持用戶事務(wù),檢查所建的表是否如用戶需求說明中所要求的那樣,支持用戶所需的事務(wù)。,,確保在建表的時候,沒有錯誤發(fā)生。,,檢查表是否支持事務(wù)的一種方法是檢查是否支持事務(wù)的數(shù)據(jù)需求,以確保數(shù)據(jù)在一個或多個表中存在。,,,如果事務(wù)所需求的數(shù)據(jù)在多個表中,則應(yīng)該檢查這些表是否能夠通過,主鍵,/,外鍵,機(jī)制連接起來。,,下表中黑體顯示了事務(wù)所需要的列,必要時還包括了連接表中的列。,39,,StayHome,的,Branch,視圖的更新,/,刪除事務(wù)所需
14、的表,40,,,StayHome,的,Branch,視圖的,查詢,事務(wù)所需的表,41,,StayHome,的,Branch,視圖的,查詢,事務(wù)所需的表,(續(xù)),42,,回顧,ch09,檢查支持用戶事務(wù),描述事務(wù),,根據(jù)每個事務(wù)的需求描述,檢查模型中是否提供了事務(wù)所需的所有信息(實體、關(guān)系和屬性)。,事務(wù)(,o,)根據(jù)分公司號,列出每個分公司的每個經(jīng)理的名字。,每個經(jīng)理的名字均包含在實體,Staff,中,而分公司的具體情況包含在實體,Branch,中,通過這兩個實體之間的關(guān)系,Manages,,可以完成上述事務(wù)的任務(wù)。,43,,使用路徑,(r)按照片名順序列出某分公司指定導(dǎo)演的錄像名稱、種類和租
15、借狀態(tài),導(dǎo)演信息在,Director,實體中,分公司信息在,Branch,實體中,從,Director,實體開始,使用關(guān)系“,Directs”,找到,Video,實體,然后通過關(guān)系“,IS”,找到,VideoForRent,實體,再通過關(guān)系“,IsAllocated,”,找到,Branch,實體。即可完成此事務(wù)。,44,,SQL,語句,(r)按照片名順序列出某分公司指定導(dǎo)演的錄像名稱、種類和租借狀態(tài),/***,使用候選鍵(通常是主鍵),/,外鍵連接表***,/,,SELECT Video.*,VideoForRent.*,,FROM Director,Video,VideoForRent,
16、Branch,,WHERE (Director.directorNo = Video.directorNo) and,,(Video.catalogNo = VideoForRent.catalogNo) and,,(VideoForRent.branchNo = Branch.branchNo) and,,(Director.directorNo = 'D1001') and,,(Branch.branchNo = 'B001'),45,,SQL,語句,(r)按照片名順序列出某分公司指定導(dǎo)演的錄像名稱、種類和租借狀態(tài),SELECT Video.*,VideoForRent.*,,FROM
17、 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 Director.directorNo = 'D1001' and Branch.branchNo = 'B001',/***,使用候選鍵(通常是主鍵),/,外鍵連接表***,/,,
18、另外一種形式的,SQL,語句,46,,SQL,語句,(r)按照片名順序列出某分公司指定導(dǎo)演的錄像名稱、種類和租借狀態(tài),/***,使用候選鍵(通常是主鍵),/,外鍵連接表***,/,,/****,簡化形式 ****,/,,SELECT Video.*,VideoForRent.*,,FROM Video,VideoForRent,,WHERE (Video.catalogNo = VideoForRent.catalogNo) and (Video.directorNo = 'D1001'),,and (VideoForRent.branchNo = 'B001'),,47,,步驟,2.
19、4,檢查業(yè)務(wù)規(guī)則,業(yè)務(wù)規(guī)則是用于防止數(shù)據(jù)庫不完整、不準(zhǔn)確或不一致的約束,,,考慮下面幾種的業(yè)務(wù)規(guī)則,,需要的數(shù)據(jù),,列的值域約束,,實體完整性,,多樣性,,參照完整性,,其他業(yè)務(wù)規(guī)則,,48,,步驟,2.4,檢查業(yè)務(wù)規(guī)則,需要的數(shù)據(jù),,某些列必須要包含值,即不允許有空值。例如,每個員工必須有一個職位(經(jīng)理,主管、助理),,列的值域約束,,每個列都有一個值域(一組對該列合法的值)。指定數(shù)據(jù)類型。,,實體完整性,,實體的主鍵不能為空,且唯一。,,多樣性,,表達(dá)了數(shù)據(jù)庫中數(shù)據(jù)間的關(guān)系的約束。例如,分公司必須有會員和員工。,,參照完整性,,外鍵包含與父表相匹配的主鍵值。,,外鍵允許為空嗎?如果子表是強(qiáng)
20、制參與的,外鍵就不允許空,如果是可選參與的,就允許為空。,49,,如何保證參照完整性,?,,應(yīng)該指定存在約束,(,existence constraints,),,該約束定義了主鍵和外鍵在什么條件下能夠被插入、更新或刪除,,,下面以,1:*,關(guān)系,Branch Has Staff,為例,說明如何保證參照完整性。(,branchNo,在,Staff,表中是外鍵),50,,如何保證參照完整性,?,考慮如下六種情況,.,,Case 1:,向子表插入記錄,,Case 2:,從子表中刪除記錄,,Case 3:,更新子表記錄中的外鍵,,Case 4:,向父表中插入記錄,,Case 5:,從父表中刪除記錄,
21、,Case 6:,更新父表的主鍵,51,,如何保證參照完整性,?,Case 1:,向子表(,Staff,)插入記錄,,檢查新的,Staff,外鍵,branchNo,是為空還是為一個,Branch,表中已存在的記錄的值。,,Case 2:,從子表(,Staff,)中刪除記錄,,如果一個子表中的一個記錄被刪除,參照完整性不受影響。,,Case 3:,更新子表(,Staff,)記錄中的外鍵,,同,Case1,52,,如何保證參照完整性,?,Case 4:,向父表(,Branch,)中插入記錄,,向父表中插入記錄并不影響參照完整性。只是分公司沒有成員。,,Case 5:,從父表(,Branch,)中刪
22、除記錄,,若父表中的一個記錄刪除了,如果有子記錄引用這個被刪除的父記錄,則參照完整性就丟失了。可以考慮以下幾種操作:,,NO ACTION,(不操作):不刪除(缺?。?,CASCADE,(級聯(lián)):自動刪除相關(guān)的子記錄。如果被刪除的子記錄在其他關(guān)系中充當(dāng)父記錄,其相關(guān)的子記錄也被刪除。,,SET NULL,(置空):相關(guān)子記錄的外鍵置空,,SET DEFAULT,(置預(yù)定值):相關(guān)子記錄的外鍵置為預(yù)定值,,NO CHECK,(不檢查):不進(jìn)行完整性檢查(可以用,alter table,命令)。,53,,如何保證參照完整性,?,Case 6:,更新父表(,Branch,)的主鍵,,若父表中的一個
23、記錄被更新了,如果有子記錄引用這個被更新的父記錄,則參照完整性就丟失了。,,可以考慮,Case5,的幾種策略,在,CASCADE,情況中,更新父記錄主鍵的同時也更新了子記錄的外鍵值。,,54,,StayHome,的,Branch,視圖的表的參照完整性約束,55,,步驟,2.5,與用戶討論邏輯數(shù)據(jù)庫設(shè)計,,確保局部邏輯數(shù)據(jù)模型與描述模型的文檔確實表達(dá)了用戶視圖,56,,小結(jié),邏輯設(shè)計步驟,2,的主要目的是為,ER,圖創(chuàng)建表的結(jié)構(gòu)。,,使用規(guī)范化方法檢查表的結(jié)構(gòu)。,,檢查表的結(jié)構(gòu)以確保它們支持用戶所要求的事務(wù)。,,業(yè)務(wù)規(guī)則可以防止數(shù)據(jù)庫不完整、不準(zhǔn)確和不一致。這些規(guī)則包括完整性約束、需要的數(shù)據(jù)、列值約束、實體完整性、多樣性、參照完整性和其他業(yè)務(wù)規(guī)則。,,已有約束通過定義條件確保了參照完整性,可以根據(jù)這些條件插入、更新和刪除主鍵或外鍵。,,當(dāng)一個子記錄引用了要刪除,/,更新的父記錄時,可以考慮使用如下幾種策略:,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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運動會安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動總結(jié)+在機(jī)關(guān)“弘揚憲法精神推動發(fā)改工作高質(zhì)量發(fā)展”專題宣講報告會上的講話
- 2024年XX村合作社年報總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊教研組工作總結(jié)
- 2024年小學(xué)高級教師年終工作總結(jié)匯報
- 2024-2025年秋季第一學(xué)期初中物理上冊教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報告
- 2025年學(xué)校元旦迎新盛典活動策劃方案
- 2024年學(xué)校周邊安全隱患自查報告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報告