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

下載本文檔

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

文檔簡介

1、精選ppt7.2-53n初始的用戶需求規(guī)格說明可以基于數(shù)據(jù)庫用戶的交流以及設(shè)計者自己對銀行業(yè)務(wù)的分析。這個設(shè)計階段中的需求描述是制定數(shù)據(jù)庫的概念結(jié)構(gòu)的基礎(chǔ)。以下是銀行企業(yè)的主要特征:l1.銀行有多個支行。每個支行位于某個城市,由唯一的名字標(biāo)識。銀行監(jiān)控每個支行的資產(chǎn)l2.銀行客戶通過其customer_id值標(biāo)識,銀行存儲了每位客戶的姓名及其居住的城市和街道??蛻艨梢杂匈~戶,并且可以貸款。一個客戶可能和某個銀行員工發(fā)生聯(lián)系,該員工作為此客戶的貸款負(fù)責(zé)人或私人助理l3.銀行員工功過其employee_id值來標(biāo)識。銀行的管理機(jī)構(gòu)存儲每個員工的姓名、電話號碼、親屬姓名及其經(jīng)理的employee_i

2、d號碼。銀行還需要知道員工開始工作的日期,由此日期可以推知員工的雇傭期l4.銀行提供兩類賬戶支票賬戶和儲蓄存款賬戶。賬戶可以由兩個或兩個以上客戶共有,一個客戶也可以有兩個或兩個以上的賬戶。每個賬戶被賦予唯一的賬戶號。銀行記錄每個賬戶的余額以及每個賬戶擁有者訪問該賬戶的最近日期。另外,每個儲蓄存款賬戶有其利率,而每個支票賬戶有其透支額l5.每筆貸款由某個支行發(fā)放,能被一個或多個客戶所共有。一筆貸款用一個唯一的貸款號標(biāo)識。銀行需要知道每筆貸款所貸金額以及逐次還款情況。雖然貸款的還款號并不能唯一地標(biāo)識銀行所有貸款中的某個特定的還款,但可以唯一地標(biāo)識對某貸款的所還款項。對每次的還款需要記載其日期和金額

3、n真實的銀行中,還應(yīng)像記載對貸款的所還款項那樣來記載每個儲蓄存款賬戶或支票賬戶中取出或存入的金額。由于這些記載的建模過程類似,并且為了保持示例的簡潔性,在我們的模型中不考慮對存款和取款的記錄。7.3-53n數(shù)據(jù)庫建模如下:l一組實體的集合l一組實體集間聯(lián)系的集合n實體:是現(xiàn)實世界中可區(qū)別于其他對象的“事物”或“對象”。l例如:企業(yè)中的每個人都是一個實體,一個人的person_id性質(zhì)可以唯一地標(biāo)識這個人;貸款也可以被看作實體,通過貸款號唯一地標(biāo)識某個貸款實體。n每個實體有一組性質(zhì)(或?qū)傩裕﹍例如:people have names and addressesn實體集:是相同類型即具有相同性質(zhì)(

4、或?qū)傩裕┑膶嶓w集合。l例如:某個銀行的所有客戶的集合可被定義為實體集customer。類似地,實體集loan表示某個銀行所發(fā)放的所有貸款的集合。l實體集不必互不相交。例如,可以定義銀行所有員工的實體集employee和所有客戶的實體集customer。而一個person實體可以是employee實體,可以是customer實體,可以既是employee實體又是customer實體,也可以都不是。7.4-53customer_id customer_ customer_ customer_ loan_ amount name street city number7.5-53n聯(lián)系:是指多個實體間

5、的相互關(guān)聯(lián)。例如:可以定義客戶Hayes和貸款號L-15相關(guān)聯(lián)的聯(lián)系HayesloanL-15customer entityrelationship setloan entityn聯(lián)系集聯(lián)系集是n (n 2) 個實體集上的數(shù)學(xué)關(guān)系,其元素如下:(e1, e2, en) | e1 E1, e2 E2, , en En這里 (e1, e2, , en) 是一個聯(lián)系。l例如: (Hayes, L-15) borrower7.6-537.7-53n一個聯(lián)系集也可以具有描述性屬性。n實體集customer和account之間的聯(lián)系集depositor。我們可以將屬性access_date與該聯(lián)系關(guān)聯(lián)起來

6、,以表示客戶訪問一個賬戶的最近日期。7.8-53n一個實體集可能有多個屬性,每個實體可以用一組(屬性,數(shù)據(jù)值)對來表示。n域域 每個屬性都有一個可取值的集合 n屬性類型:l簡單 屬性和復(fù)合屬性l單值 屬性和多值 屬性4例如:多值屬性: phone_numbersl派生 屬性4可以從別的相關(guān)屬性或?qū)嶓w派生出來4例如: age, 派生于 date_of_birth例如: customer = (customer_id, customer_name, customer_street, customer_city )loan = (loan_number, amount )7.9-537.10-53n

7、指明一個實體通過一個聯(lián)系集能同時與多少個實體相關(guān)聯(lián)。n映射基數(shù)在描述二元聯(lián)系集時非常有用。n對于實體集A和B之間的二元聯(lián)系集R來說,映射的基數(shù)必然是以下情況之一:lOne to onelOne to manylMany to onelMany to many 7.11-53One to oneOne to many注:A和B中的某些實體可能沒有與另一個實體集中的任何實體相 關(guān)聯(lián)。7.12-53Many to oneMany to many注:某個聯(lián)系集的映射基數(shù)是依賴于該聯(lián)系集所建模的對象在現(xiàn) 實世界中的實際情況。7.13-53n超碼超碼:是一個或多個屬性的集合,這些屬性的組合可以使我們在一個

8、實體集中唯一地標(biāo)識一個實體。n我們通常只對這樣的一些超碼感興趣,它們的任意子集都不能成為超碼,這樣的最小子集稱為候選碼。lCustomer_id is candidate key of customerlaccount_number is candidate key of accountn盡管可能存在多個候選碼,只選擇其中之一作為主碼。n碼(主碼、候選碼或超碼)是實體集的性質(zhì),而不是單個實體的性質(zhì)。實體集中的任意兩個實體都不允許同時在碼屬性上具有相同的值。碼的制定代表了被建模的現(xiàn)實企業(yè)中的約束。n主碼的選擇應(yīng)該是那些從不或極少變化的屬性。l例如:一個人的地址不應(yīng)作為主碼的一部分;(美)社會保障

9、號可以作為主碼。7.14-53n所有參與的實體集的主碼的組合構(gòu)成一個聯(lián)系集的超碼。l(customer_id, account_number) is the super key of depositorl注:給定的聯(lián)系集中的一個聯(lián)系實例必須是由其參與實體能唯一標(biāo)識的,而不必使用描述屬性。 4假設(shè)我們要記錄一個客戶訪問一個賬戶的所有日期。單值的屬性access_date只能保存一個訪問日期。我們不能通過同一用戶和帳號之間聯(lián)系的多個實例來表示多個訪問日期,因為這些聯(lián)系實例無法僅使用參與的實體來唯一的標(biāo)識。正確的處理方法是創(chuàng)建一個多值的屬性access_date,它可以保存所有的訪問日期。n聯(lián)系集的

10、主碼結(jié)構(gòu)依賴于聯(lián)系集的映射基數(shù)。l例如,實體集customer和account,以及具有屬性access_date的聯(lián)系集depositor。4如果聯(lián)系集是多對多的,那么depositor的主碼由customer和account的主碼共同組成。4如果一個客戶只能有一個帳號,即depositor聯(lián)系是從customer到account多對一的,則depositor的主碼就是customer的主碼。4如果聯(lián)系是從account到customer多對一的,則每個帳號最多只能屬于一個客戶,所以depositor的主碼就是account的主碼。4一對一的聯(lián)系中,可以使用兩個主碼中的任意一個來作為聯(lián)系的主

11、碼。7.15-53n矩形表示實體集;雙矩形表示弱實體集n菱形表示聯(lián)系集n線段將屬性連接到實體集或?qū)嶓w集連接到聯(lián)系集n橢圓表示屬性l雙橢圓表示多值屬性l虛橢圓表示派生屬性n雙線表示一個實體集全部參與到聯(lián)系集中n下劃線表示主碼屬性7.16-537.17-537.18-53n參與一個聯(lián)系集的實體集可以相同n標(biāo)簽 “manager” 和 “worker” 稱為角色; 表示實體在聯(lián)系中的作用n角色在E-R圖中用連接菱形和矩形的線段上的標(biāo)簽指明n角色標(biāo)簽是可選的,用于解釋聯(lián)系的語義7.19-53nOne-to-many 聯(lián)系borrower : a loan is associated with at

12、most one customer via borrower, a customer is associated with several (including 0) loans via borrower7.20-53nMany-to-one 聯(lián)系borrower :a loan is associated with several (including 0) customers via borrower, a customer is associated with at most one loan via borrower7.21-53nA customer is associated wi

13、th several (possibly 0) loans via borrowernA loan is associated with several (possibly 0) customers via borrower7.22-53n全部參與 (雙線): every entity in the entity set participates in at least one relationship in the relationship setl例如: participation of loan in borrower is total4 every loan must have a c

14、ustomer associated to it via borrowern部分參與: some entities may not participate in any relationship in the relationship setl例如: participation of customer in borrower is partial7.23-537.24-53實體集和聯(lián)系集的概念并不精確,而且定義一組實體及它們的實體集和聯(lián)系集的概念并不精確,而且定義一組實體及它們的相互聯(lián)系可能有多種不同的方式。相互聯(lián)系可能有多種不同的方式。n用實體集還是用屬性用實體集還是用屬性n用實體集還是用聯(lián)

15、系集用實體集還是用聯(lián)系集n用二元聯(lián)系集與用二元聯(lián)系集與n元聯(lián)系集元聯(lián)系集n聯(lián)系屬性的布局聯(lián)系屬性的布局7.25-53n具有屬性employee_id、employee_name和telephone_number的實體集employee。l如果電話可以作為一個單獨的實體,它具有屬性telephone_number和location4實體集employee,具有屬性employee_id和employee_name。4實體集telephone,具有屬性telephone_number和location。4聯(lián)系集emp_telephone,表示員工及電話間的聯(lián)系。l兩種定義主要差別4將電話處理成為一

16、個telephone_number屬性暗示對每個員工,正好有一個電話號碼與之相聯(lián)系;而將電話看成一個telephone實體,就允許每個員工可以有多個電話號碼與之相聯(lián)系。也就是說,將電話作為一個實體來建??梢员4骊P(guān)于電話的額外信息,如它的位置,或類型(移動的,視頻的或普通的舊電話),或哪些人共用。因此把電話視為一個實體比把它視為一個屬性的方式更具有通用性;而且當(dāng)這種通用性很重要的時候,這種定義方式就更為適合。7.26-53n什么作為屬性?什么作為實體集?l區(qū)分它們主要依賴于被建模的實際企業(yè)的結(jié)構(gòu),以及被討論的屬性的相關(guān)語義。l常見錯誤4用一個實體集的主碼作為另一個實體集屬性,而不是使用聯(lián)系。 例

17、如,即使每筆貸款只有一個客戶,將cumstomer_id作為loan的屬性也是不正確的。用borrower聯(lián)系代表貸款和客戶之間的關(guān)聯(lián)才是正確的方法,這樣可以明確地表示出兩者之間的關(guān)系,而不是將這種關(guān)系隱含在屬性中。4將相關(guān)實體集的主碼屬性作為聯(lián)系集的屬性。 例如,loan_number和customer_id不應(yīng)該在borrower聯(lián)系中作為屬性出現(xiàn)。這樣做是不對的,因為在聯(lián)系集的表示中已經(jīng)隱含了這些主碼屬性。7.27-53n銀行貸款的建模l一種方法假設(shè)銀行貸款通過一個實體來建模。l另一種方法,不將貸款做為一個實體,而將其作為客戶和銀行支行之間的一個聯(lián)系,這一聯(lián)系具有描述屬性loan_num

18、ber和amount。每筆貸款都是用客戶和銀行支行間的一個聯(lián)系來表示。4如果每筆貸款正好為一個客戶所有,并且正好同一個支行相聯(lián)系,那么我們可以發(fā)現(xiàn)用聯(lián)系來表示貸款是能滿足設(shè)計要求的。4但是,采用這樣的設(shè)計,不能很方便地表示幾個客戶共有一筆貸款的情況。為此,必須為共有貸款的每個持有人分別定義一個聯(lián)系,并不得不在每個這樣的聯(lián)系中復(fù)制描述性屬性loan_number和amount的值。當(dāng)然,每個這樣的聯(lián)系必須有相同的loan_number和amount值。 數(shù)據(jù)復(fù)制的問題n在確定用實體集還是聯(lián)系集時可采用的一個原則是,當(dāng)描述發(fā)生在實體間的行為時采用聯(lián)系集。7.28-53n數(shù)據(jù)庫中的聯(lián)系通常都是用二元

19、的。一些看來非二元的聯(lián)系實際上可以用多個二元關(guān)系更好地表示。l例如,我們可以創(chuàng)建一個三元聯(lián)系parent,將一個孩子與其父母相關(guān)聯(lián)。這一聯(lián)系也可以用兩個二元聯(lián)系分別來表示,即mother和father,分別與他們的孩子相關(guān)聯(lián)。使用mother和father兩個聯(lián)系使我們可以記錄孩子的母親,即使我們不知道父親的身份;而對于這種情況三元聯(lián)系parent中必須有一個Null值。所以在這個例子中用二元聯(lián)系更好。n上面的方法并不總是令人滿意的。l考慮聯(lián)系集works_on,它與employee、branch和job有關(guān)。4不能直接將works_on分離為employee和branch之間的聯(lián)系與empl

20、oyee和job之間的聯(lián)系這兩個二元聯(lián)系。4否則,我們可以記錄Jones既是經(jīng)理又是審計員,且Jones既在Perryridge又在Downtown工作;然而我們無法記錄Jones是在Perryridge工作的經(jīng)理和在Downtown工作的審計員,而不是在Perryridge工作的審計員或在Downtown工作的經(jīng)理。7.29-53n一個聯(lián)系的映射基數(shù)比率會影響聯(lián)系屬性的布局。l一對一或一對多聯(lián)系集的屬性可以放到一個參與該聯(lián)系的實體集中,而不是放到聯(lián)系集中。4例如,指定depositor是一個一對多的聯(lián)系集,也就是一個客戶可以有多個賬戶,但每個賬戶只能屬于一個客戶。在這種情況下,指明客戶最后一

21、次訪問賬戶的日期的屬性access_date可以放在account實體集中。既然每個account實體最多和一個customer實例參與到聯(lián)系中,因而將屬性access_date放在account實體集中和將屬性access_date放在depositor聯(lián)系集中具有相同的含義。l一對多聯(lián)系集的屬性僅僅可以重放置到參與聯(lián)系的“多”的那一邊的實體集中。l一對一的聯(lián)系集,聯(lián)系的屬性可以放到任一參與聯(lián)系的實體中。7.30-53n設(shè)計時將描述屬性作為聯(lián)系集的屬性還是實體集的屬性這一決定應(yīng)該反映出被建模企業(yè)的本來特點。l設(shè)計者可以選擇保留access_date作為depositor的屬性,以顯式地表明訪

22、問發(fā)生在實體集customer和實體集account的交互點上。l屬性位置的選擇在多對多聯(lián)系集中體現(xiàn)得更清楚。4假設(shè)depositor為一個多對多的聯(lián)系集,表明一個客戶可有一個或多個賬戶,而一個帳戶可以為一個或多個客戶所擁有。 要表達(dá)某個客戶最近一次訪問某個賬戶的日期,access_date則必須作為聯(lián)系集depositor的屬性,而不是任何一個參與此聯(lián)系集的實體集的屬性。如果將access_date作為account的屬性,對一個共有的賬戶,就不能確定是哪個客戶進(jìn)行了最近一次訪問。l當(dāng)一個屬性是由參與的實體集聯(lián)合確定而不是由單獨的某個實體集確定時,該屬性就必須放到多對多聯(lián)系集中。7.31-5

23、3n一個實體集可能沒有足夠的屬性以形成主碼,這樣的實體集就稱作弱實體集。與此相對,有主碼的實體集稱作強實體集。l實體集payment:該實體集具有屬性payment_number、payment_date和payment_amount。還款號通常是從1開始的連續(xù)數(shù)字,分別針對每一筆貸款生成。雖然各個payment實體互不相同,但不同貸款的還款卻可能具有相同的還款號。因此,實體集payment沒有主碼,是一個弱實體集。n弱實體集必須與另一個稱為標(biāo)識實體集或?qū)僦鲗嶓w集的實體集關(guān)聯(lián)才有意義。l每個弱實體集必須和一個標(biāo)識實體關(guān)聯(lián),也就是說,弱實體集就稱為存在依賴于標(biāo)識實體集。我們稱標(biāo)識實體集擁有它所標(biāo)

24、識的弱實體集。l將弱實體集與其標(biāo)識實體集相關(guān)聯(lián)的聯(lián)系稱為標(biāo)識性聯(lián)系。標(biāo)識性聯(lián)系是從弱實體集到標(biāo)識實體集的多對一聯(lián)系。lpayment的標(biāo)識實體集是loan,將payment實體和它們對應(yīng)的loan實體關(guān)聯(lián)在一起的loan_payment是標(biāo)識性聯(lián)系。n雖然弱實體集沒有主碼,仍需要某種方法來區(qū)分那些依賴于某個強實體集的弱實體集中的實體。弱實體集的分辨符是使得我們能進(jìn)行這種區(qū)分的屬性集合。l弱實體集payment的分辨符是屬性payment_number,因為對每筆貸款來說,還款號唯一標(biāo)識了償還該貸款的一筆款項。弱實體集的主碼由標(biāo)識實體集的主碼和弱實體集的分辨符共同組成。例如弱實體集payment

25、的主碼是loan_number, payment_number,其中l(wèi)oan_number是標(biāo)識實體集loan的主碼,而payment_number區(qū)分同一個貸款的不同payment實體。7.32-537.33-53n特殊化從單一的實體集出發(fā),通過創(chuàng)建不同的低層實體集來強調(diào)同一實體集中不同實體間的差異。l低層實體集可以有特殊的屬性或參與到特殊的聯(lián)系中,這些屬性或聯(lián)系并非適用于高層實體集中的所有實體。l設(shè)計者采用特殊化的原因正是為了表達(dá)這樣的與眾不同的特征。l如果customer和employee既沒有特有的屬性(即與person實體所擁有的那些屬性不同的屬性),又沒有參與特殊的聯(lián)系(即pers

26、on實體沒有參與的聯(lián)系),就沒有必要對person實體集進(jìn)行特殊化。n一般化的進(jìn)行基于這樣的認(rèn)識:一些實體集具有共同的特征(即可以用相同的屬性對它們進(jìn)行描述,且它們都參與到相同的聯(lián)系集中)。一般化是在這些實體集的共同性的基礎(chǔ)上將它們綜合成了一個高層實體集。l一般化用于強調(diào)低層實體集間的相似性并隱藏它們的差異;同時由于去除了共同屬性的重復(fù)出現(xiàn),可以達(dá)到簡潔的表示效果。.7.34-537.35-53n 考慮employee、branch和job之間的三元聯(lián)系works_on。n 假設(shè)想記錄一位員工在某一部門作為經(jīng)理的工作情況。n 存在的問題:冗余信息。n聯(lián)系集works_on和manages可以合

27、并到一個聯(lián)系集中。然而,我們不應(yīng)該將它們合并到一起,因為一些employee、branch、job組合可能沒有經(jīng)理7.36-53n 聚集是一種抽象,通過這種抽象,聯(lián)系被當(dāng)作高層實體來看待。n將聯(lián)系集works_on看成一個稱作works_on的高層實體集,并且可以像對待別的實體集那樣對待這樣的實體集,從而可以在works_on和manager之間創(chuàng)建一個二元聯(lián)系manages來表示誰管理什么任務(wù)。7.37-53n初始的用戶需求規(guī)格說明可以基于數(shù)據(jù)庫用戶的交流以及設(shè)計者自己對銀行業(yè)務(wù)的分析。這個設(shè)計階段中的需求描述是制定數(shù)據(jù)庫的概念結(jié)構(gòu)的基礎(chǔ)。以下是銀行企業(yè)的主要特征:l1.銀行有多個支行。每個

28、支行位于某個城市,由唯一的名字標(biāo)識。銀行監(jiān)控每個支行的資產(chǎn)l2.銀行客戶通過其customer_id值標(biāo)識,銀行存儲了每位客戶的姓名及其居住的城市和街道。客戶可以有賬戶,并且可以貸款。一個客戶可能和某個銀行員工發(fā)生聯(lián)系,該員工作為此客戶的貸款負(fù)責(zé)人或私人助理l3.銀行員工功過其employee_id值來標(biāo)識。銀行的管理機(jī)構(gòu)存儲每個員工的姓名、電話號碼、親屬姓名及其經(jīng)理的employee_id號碼。銀行還需要知道員工開始工作的日期,由此日期可以推知員工的雇傭期l4.銀行提供兩類賬戶支票賬戶和儲蓄存款賬戶。賬戶可以由兩個或兩個以上客戶共有,一個客戶也可以有兩個或兩個以上的賬戶。每個賬戶被賦予唯一的

29、賬戶號。銀行記錄每個賬戶的余額以及每個賬戶擁有者訪問該賬戶的最近日期。另外,每個儲蓄存款賬戶有其利率,而每個支票賬戶有其透支額l5.每筆貸款由某個支行發(fā)放,能被一個或多個客戶所共有。一筆貸款用一個唯一的貸款號標(biāo)識。銀行需要知道每筆貸款所貸金額以及逐次還款情況。雖然貸款的還款號并不能唯一地標(biāo)識銀行所有貸款中的某個特定的還款,但可以唯一地標(biāo)識對某貸款的所還款項。對每次的還款需要記載其日期和金額n真實的銀行中,還應(yīng)像記載對貸款的所還款項那樣來記載每個儲蓄存款賬戶或支票賬戶中取出或存入的金額。由于這些記載的建模過程類似,并且為了保持示例的簡潔性,在我們的模型中不考慮對存款和取款的記錄。7.38-53n

30、實體集branch,具有屬性branch_name、branch_city和assets;n實體集customer,具有屬性customer_id、customer_name、customer_street和customer_city;此外還可以考慮加上屬性banker_name;n實體集employee,具有屬性employee_id、employee_name、telephone_number、salary和manager;此外還包括多值屬性dependent_name,屬性start_date及其派生屬性employment_length;n兩個賬戶實體集savings_account和

31、checking_account,它們共同的屬性是account_number和balance;此外,savings_account還具有屬性interest_rate,checking_account還具有屬性overdraft_amount;n實體集loan,具有屬性loan_number、amount和originating_branch;n弱實體集loan_payment,具有屬性payment_number、payment_date和payment_amount。7.39-53n定義如下聯(lián)系集,在此過程中要對前面關(guān)于實體集屬性的決策進(jìn)一步精化lborrower,是customer和l

32、oan間的一個多對多聯(lián)系集;lloan_branch,指明產(chǎn)生貸款的銀行支行的多對一聯(lián)系集。注意這個聯(lián)系代替了loan實體集的originating_branch屬性;lloan_payment,從loan到payment的一對多聯(lián)系集,表明一筆款項是為某筆貸款而付的;ldepositor,具有聯(lián)系屬性access_date,是customer和account間的多對多聯(lián)系集,表明某個客戶擁有某個賬戶;lcust_banker,具有聯(lián)系屬性type的一個多對一聯(lián)系集,表明一個客戶可以從一個銀行員工處獲得建議,而一個銀行員工可以為一個或多個客戶提供建議。注意這個聯(lián)系集代替了customer實體集

33、的banker_name屬性;lworks_for,具有manager角色和具有worker角色的employee實體之間的聯(lián)系集;其映射基數(shù)表明了一個員工僅為一個經(jīng)理工作,而一個經(jīng)理監(jiān)督一個或多個員工。注意我們用這一聯(lián)系集代替了employee實體集的manager屬性。7.40-537.41-53n符合E-R數(shù)據(jù)庫模式的數(shù)據(jù)庫可以表示為一些關(guān)系模式的集合。數(shù)據(jù)庫的每個實體集和聯(lián)系集都有唯一的關(guān)系模式與之對應(yīng),關(guān)系模式名即為相應(yīng)的實體集或聯(lián)系集的名稱。nE-R模型和關(guān)系數(shù)據(jù)庫模型都是現(xiàn)實世界抽象的邏輯表示。由于兩種模型都采用類似的設(shè)計原則,我們可以將E-R設(shè)計轉(zhuǎn)換為關(guān)系設(shè)計。7.42-53n

34、強實體集:l模式具有與該強實體集相同的屬性。n弱實體集:l模式具有的屬性為:標(biāo)識實體集的主碼+該弱實體集屬性4payment = (loan_number,4 payment_number, payment_date, payment_amount)7.43-53n對于多對多的二元聯(lián)系,主碼應(yīng)該是參與實體集的主碼屬性的并集。n對于一對一的二元聯(lián)系集,任何一個參與實體集的主碼都可以作為聯(lián)系的主碼??梢匀我膺x擇一個與該聯(lián)系集相關(guān)聯(lián)的實體集,將它的主碼屬性作為聯(lián)系的主碼。n對于多對一的二元聯(lián)系集,主碼應(yīng)該是聯(lián)系集中“多”那一邊的實體集的主碼。n對于n元聯(lián)系集,如果連接到它的邊中沒有箭頭,則主碼是所有

35、參與實體集的主碼屬性的并集。n對于n元聯(lián)系集,如果連接到它的一條邊中有一個箭頭,則除去“箭頭”那一邊的實體集的主碼屬性,其他參與實體集的主碼屬性的并集為聯(lián)系的主碼。n注:還要在該模式R上建立外碼約束。7.44-53n對于多對一或一對多的聯(lián)系集,如果多的一方是全部參與的,則可以通過在多的一方添加額外的屬性(一的一方的主碼)來表示。n例如:不需要為account和branch創(chuàng)建聯(lián)系集account-branch,而可以通過在account中添加branch_name來表示二者聯(lián)系。7.45-53n一對一的聯(lián)系集,任意一方都可作為多的一方處理。l即,額外的屬性可以添加到任何一個實體n如果多的一方部

36、分參與聯(lián)系,可能導(dǎo)致空值。laccount = (account_number, balance, branch_name)lbranch = (branch_name, branch_city, assets)n弱實體集與其標(biāo)識實體集的聯(lián)系集轉(zhuǎn)換的模式是冗余的。l例如:payment和loan的聯(lián)系集loan_payment7.46-53n通過為每個子屬性創(chuàng)建一個單獨的屬性來處理復(fù)合屬性,并不是為復(fù)合屬性自身創(chuàng)建單獨的一個屬性。l例如:address是實體集customer的一個復(fù)合屬性,并且address由street和city組成。從customer產(chǎn)生的模式將包括屬性address_s

37、treet和address_city,而不是為address建立單獨的屬性或模式。n多值屬性較為復(fù)雜,必須為其創(chuàng)建新的關(guān)系模式。l對一個多值屬性M,為其創(chuàng)建關(guān)系模式R,該模式具有對應(yīng)M的屬性A,以及對應(yīng)屬性M所在的實體集或聯(lián)系集的主碼的那些屬性。4例如實體集employee,該實體集具有一個多值屬性dependent_name。employee的主碼是employee_id。我們?yōu)樵搶傩詣?chuàng)建一個關(guān)系模式: dependent_name(employee_id, d_name)4一個雇員的每個親屬都可以表示為該模式上的關(guān)系中的唯一一個元組。這樣,假設(shè)有一個employee_id為12-234的雇

38、員,他的親屬有John何Mary,就對應(yīng)著關(guān)系dependent_name中的兩個元組: (123-45-6789 , Jack) and (123-45-6789 , Jane)l這種關(guān)系模式的主碼由模式中的所有屬性構(gòu)成;另外,需要在該關(guān)系模式上建立外碼約束7.47-53n方法 1: l為高層實體集創(chuàng)建模式 l為每個低層實體集創(chuàng)建模式,屬性包括高層屬性的主碼和其局部屬性集 schema attributes person name, street, city customer name, credit_rating employee name, salaryl缺陷:獲取雇員信息需要訪問兩個關(guān)系(連接)7.48-53n方法2: l為每個實體集創(chuàng)建模式,包括其局部屬性和繼承屬性schema attribute

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論