版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)設(shè)計(jì)概念在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),需要計(jì)劃要存儲(chǔ)有關(guān)哪些事物的信息,以及要保存有關(guān)各個(gè)事物的哪些信息。您還需要確定這些事物的相互關(guān)系。如果使用數(shù)據(jù)庫(kù)設(shè)計(jì)中的術(shù)語(yǔ),在這一步創(chuàng)建的數(shù)據(jù)庫(kù)原型就稱作概念數(shù)據(jù)庫(kù)模型。實(shí)體和關(guān)系要存儲(chǔ)其相關(guān)信息的可識(shí)別對(duì)象或事物稱作實(shí)體。它們之間的關(guān)聯(lián)稱作關(guān)系。在數(shù)據(jù)庫(kù)描述語(yǔ)言中,可以將實(shí)體看做名詞,將關(guān)系看做動(dòng)詞。由于概念模型對(duì)實(shí)體和關(guān)系進(jìn)行了明確的區(qū)分,因此這種模型非常有用。這種模型將在任何特定數(shù)據(jù)庫(kù)管理系統(tǒng)中實(shí)施設(shè)計(jì)所涉及的細(xì)節(jié)隱藏起來(lái),從而使設(shè)計(jì)者可以集中考慮基礎(chǔ)數(shù)據(jù)庫(kù)結(jié)構(gòu)。因此,這種模型也成為了一種用于討論數(shù)據(jù)庫(kù)設(shè)計(jì)的通用語(yǔ)言。實(shí)體關(guān)系圖概念數(shù)據(jù)庫(kù)模型主要由一個(gè)顯
2、示實(shí)體和關(guān)系的示意圖構(gòu)成。這個(gè)示意圖通常稱作實(shí)體關(guān)系圖。因此,許多人也使用實(shí)體關(guān)系建模這個(gè)詞來(lái)指創(chuàng)建概念數(shù)據(jù)庫(kù)模型的任務(wù)。概念數(shù)據(jù)庫(kù)設(shè)計(jì)是一個(gè)由上至下的設(shè)計(jì)方法?,F(xiàn)在有許多功能完備的工具可以幫助您按照這種方法或其他方法進(jìn)行設(shè)計(jì),例如,SybasePowerDesigner。雖然本章的目的只是進(jìn)行介紹,但也提供了足夠的信息可以幫助您設(shè)計(jì)簡(jiǎn)單的數(shù)據(jù)庫(kù)。實(shí)體在數(shù)據(jù)庫(kù)中,一個(gè)實(shí)體對(duì)應(yīng)于一個(gè)名詞??勺R(shí)別的對(duì)象,例如,雇員、訂單項(xiàng)、部門和產(chǎn)品,都是實(shí)體的示例。在數(shù)據(jù)庫(kù)中用表代表各個(gè)實(shí)體。置入數(shù)據(jù)庫(kù)的實(shí)體都源于要使用數(shù)據(jù)庫(kù)執(zhí)行的活動(dòng),例如,跟蹤銷售電話和維護(hù)雇員信息,等等。屬性每個(gè)實(shí)體都包含一些屬性。屬性是
3、指要為事物存儲(chǔ)的特定特性。例如,在雇員實(shí)體中,需要存儲(chǔ)雇員ID號(hào)、姓氏和名字、地址,以及與一個(gè)特定雇員相關(guān)的其他信息。屬性也稱作特性。實(shí)體用一個(gè)矩形框表示。在矩形框內(nèi)部,列出與該實(shí)體相關(guān)聯(lián)的屬性。Emplo/eeFirstNftiqL押Address標(biāo)識(shí)符是指所有其他屬性都依賴的一個(gè)或多個(gè)屬性。它在實(shí)體中唯一地標(biāo)識(shí)一個(gè)項(xiàng)目。在要組成標(biāo)識(shí)符的屬性名下面加上下劃線。在上面的Employee實(shí)體中,EmployeeNumber唯一地標(biāo)識(shí)一個(gè)雇員。所有其他屬性都存儲(chǔ)只與那個(gè)雇員相關(guān)的信息。例如,一個(gè)雇員編號(hào)唯一地確定一個(gè)雇員的名字和地址。兩個(gè)雇員可能具有相同的名字或相同的地址,但可以確保他們的雇員編號(hào)
4、不同。EmployeeNumber下面帶有下劃線,表示它是標(biāo)識(shí)符。為每個(gè)實(shí)體都創(chuàng)建一個(gè)標(biāo)識(shí)符是一個(gè)良好的習(xí)慣。這些標(biāo)識(shí)符在表中將成為主鍵,下文中將對(duì)此進(jìn)行說(shuō)明。主鍵值必須唯一,并且不能為空或未定義。主鍵唯一地標(biāo)識(shí)表中的每一行,并且提高數(shù)據(jù)庫(kù)服務(wù)器的性能。關(guān)系在數(shù)據(jù)庫(kù)中,實(shí)體之間的一個(gè)關(guān)系對(duì)應(yīng)于一個(gè)動(dòng)詞。一個(gè)雇員屬于一個(gè)部門,或者一個(gè)辦事處位于一座城市。數(shù)據(jù)庫(kù)中的關(guān)系可能表現(xiàn)為表間的外鍵關(guān)系,也可能自身就成為獨(dú)立的表。您將在本章中看到這兩種情況的示例。數(shù)據(jù)庫(kù)中的關(guān)系就是控制實(shí)體中數(shù)據(jù)的規(guī)則或慣例的編碼。如果每個(gè)部門有一個(gè)部門經(jīng)理,可以在部門和雇員之間建立一對(duì)一的關(guān)系來(lái)標(biāo)識(shí)該部門經(jīng)理。當(dāng)關(guān)系置入數(shù)
5、據(jù)庫(kù)結(jié)構(gòu)后,就不可能再出現(xiàn)例外。沒(méi)有地方可以輸入另一個(gè)部門經(jīng)理。復(fù)制部門條目將復(fù)制部門ID,而它是標(biāo)識(shí)符。標(biāo)識(shí)符不允許有重復(fù)。提示嚴(yán)格的數(shù)據(jù)庫(kù)結(jié)構(gòu)有很大好處,因?yàn)樗梢韵灰恢碌膯?wèn)題,例如一個(gè)部門有兩個(gè)經(jīng)理。另一方面,作為設(shè)計(jì)者,您應(yīng)該使設(shè)計(jì)具有足夠的靈活性以便于進(jìn)行擴(kuò)展,以滿足某些未預(yù)見到的需要。對(duì)設(shè)計(jì)合理的數(shù)據(jù)庫(kù)進(jìn)行擴(kuò)展通常并不很困難,但修改現(xiàn)有表結(jié)構(gòu)可能會(huì)致使整個(gè)數(shù)據(jù)庫(kù)及其客戶端應(yīng)用程序無(wú)法使用。關(guān)系的基數(shù)表之間有三種關(guān)系。這三種關(guān)系對(duì)應(yīng)于關(guān)系中所涉及的實(shí)體的基數(shù)(數(shù)量)。一對(duì)一關(guān)系關(guān)系通過(guò)在兩個(gè)實(shí)體間畫一條連線表示。連線上可以有其他標(biāo)記,例如,下圖中所示的兩個(gè)圓圈。這些標(biāo)記的用途將在
6、下文中進(jìn)行說(shuō)明。在下圖中,一個(gè)部門由一DepartinentEmployee個(gè)雇員管理。一對(duì)多關(guān)系如果實(shí)體1中包含的一項(xiàng)可以與實(shí)體2中的多項(xiàng)相關(guān)聯(lián),這樣一種關(guān)系用多條連線連接到實(shí)體2來(lái)表示。在下圖中,一個(gè)辦事處可以有多部電話。OfficeTelephones-o電話位肯關(guān)系多對(duì)多關(guān)系在這種情況下,兩個(gè)實(shí)體的連接處都要畫多條連線。這表示一個(gè)倉(cāng)庫(kù)可以存放許多不同的部件,而同一類部件也可以存放在許多倉(cāng)庫(kù)中。角色您可以用兩個(gè)角色來(lái)描述每種關(guān)系。角色是用于從每個(gè)觀察點(diǎn)描述關(guān)系的動(dòng)詞或短語(yǔ)。例如,雇員和部門之間的關(guān)系可以用以下兩個(gè)角色來(lái)描述:雇員屬于部門。而部門包含雇員。角色非常重要,因?yàn)樗鼈優(yōu)槟峁┝艘?/p>
7、種方便且有效的方法來(lái)驗(yàn)證您的工作。提示不管是從左到右讀取還是從右到左讀取,下面的規(guī)則都會(huì)使讀取這些圖示變得容易:讀?。?)第一個(gè)實(shí)體的名稱,(2)第一個(gè)實(shí)體旁邊的角色,(3)到第二個(gè)實(shí)體的連接的基數(shù),(4)第二個(gè)實(shí)體的名稱。強(qiáng)制元素表示關(guān)系的連線末端的小圓圈具有非常重要的作用。圓圈表示存在于該實(shí)體內(nèi)的元素在另一個(gè)實(shí)體內(nèi)不必有對(duì)應(yīng)的元素。如果出現(xiàn)的是一段交叉線而不是圓圈,則表示另一個(gè)實(shí)體中的每個(gè)元素在該實(shí)體中至少應(yīng)有一個(gè)對(duì)應(yīng)元素。下面舉例說(shuō)明這些標(biāo)記的含義。此圖具有以下四個(gè)含義:一家出版社出版了零或多本書。一本書由恰好一家出版社出版。一本書由一或多位作者撰寫。一位作者撰寫了零或多本書。提示可以把
8、小圓圈看做數(shù)字0,把交叉線看做數(shù)字1。圓圈表示至少零。交叉線表示至少一。反身關(guān)系有時(shí),同一個(gè)實(shí)體內(nèi)的條目之間也存在關(guān)系。這種關(guān)系稱作反身關(guān)系。關(guān)系的兩端都連接到同一個(gè)實(shí)體。此圖具有以下兩個(gè)含義。一個(gè)雇員最多只向另外一個(gè)雇員報(bào)告。一個(gè)雇員管理零個(gè)或多個(gè)雇員。請(qǐng)注意,在這個(gè)關(guān)系中,關(guān)系在兩個(gè)方向上都應(yīng)該是可選的。某些雇員不是經(jīng)理。同樣,至少應(yīng)該有一個(gè)雇員是公司的總經(jīng)理,因此不向任何人報(bào)告。自然,還應(yīng)指定一個(gè)雇員不能是他自己的經(jīng)理。這個(gè)限制是一種業(yè)務(wù)規(guī)則。業(yè)務(wù)規(guī)則將在下文中作為設(shè)計(jì)過(guò)程的一部分進(jìn)行討論。將多對(duì)多關(guān)系更改為實(shí)體如果有屬性與關(guān)系相關(guān)聯(lián),而不是與實(shí)體相關(guān)聯(lián),則可以將該關(guān)系更改為實(shí)體。有時(shí),
9、多對(duì)多關(guān)系可能會(huì)出現(xiàn)這種情況。有些屬性特定于關(guān)系,因此將其添加到任何一個(gè)實(shí)體中都不合理。假設(shè)部件存放在多個(gè)不同的倉(cāng)庫(kù)中。而您畫的設(shè)計(jì)圖如下所示。但您希望記錄各個(gè)部件在各個(gè)地點(diǎn)的存貨數(shù)量。該屬性只能與關(guān)系相關(guān)聯(lián)。每個(gè)數(shù)量都依賴于所涉及的部件和倉(cāng)庫(kù)。要表示這樣一種情況,可以按以下方式重畫設(shè)計(jì)圖:請(qǐng)注意以下細(xì)節(jié)的變化:兩個(gè)新關(guān)系將關(guān)系實(shí)體分別與原有的兩個(gè)實(shí)體連接起來(lái)。這兩個(gè)關(guān)系的名稱繼承自原有關(guān)系的兩個(gè)角色:分別為存放在和包含Inventory實(shí)體中的每個(gè)條目要求Parts實(shí)體中有一個(gè)強(qiáng)制條目,Warehouse實(shí)體中有一個(gè)強(qiáng)制條目。這些關(guān)系都是強(qiáng)制的,因?yàn)閭}(cāng)儲(chǔ)關(guān)系只在與一個(gè)特定部件和一個(gè)特定倉(cāng)庫(kù)相
10、關(guān)聯(lián)時(shí)才有意義。新實(shí)體既依賴于Parts實(shí)體,也依賴于Warehouse實(shí)體,表示新實(shí)體由這兩個(gè)實(shí)體的標(biāo)識(shí)符共同標(biāo)識(shí)。在這個(gè)新設(shè)計(jì)圖中,Parts實(shí)體中的一個(gè)標(biāo)識(shí)符和Warehouse實(shí)體中的一個(gè)標(biāo)識(shí)符唯一地標(biāo)識(shí)Inventory實(shí)體中的一個(gè)條目。圓圈和多線條之間的三角形將兩個(gè)新關(guān)系連接到新的Inventory實(shí)體,并表示依賴性。不要在Inventory實(shí)體中添加PartNumber或WarehouseID特性。Inventory實(shí)體中的每個(gè)條目都依賴于一個(gè)特定部件和一個(gè)特定倉(cāng)庫(kù),但這些三角形可以更清晰的表示這種依賴性。設(shè)計(jì)過(guò)程設(shè)計(jì)過(guò)程包含五個(gè)主要步驟。第1步:確定實(shí)體和關(guān)系第2步:確定所需數(shù)
11、據(jù)第3步:規(guī)范化數(shù)據(jù)第4步:解析關(guān)系第5步:驗(yàn)證設(shè)計(jì)有關(guān)實(shí)現(xiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)的詳細(xì)信息,請(qǐng)參見使用數(shù)據(jù)庫(kù)對(duì)象第1步:確定實(shí)體和關(guān)系實(shí)體和關(guān)系示例第2步:確定所需數(shù)據(jù)第3步:規(guī)范化數(shù)據(jù)第4步:解析關(guān)系第5步:驗(yàn)證設(shè)計(jì)第1步:確定實(shí)體和關(guān)系確定設(shè)計(jì)中的實(shí)體及實(shí)體之間的關(guān)系:1.確定高級(jí)別的活動(dòng)確定要使用該數(shù)據(jù)庫(kù)執(zhí)行的一般活動(dòng)。例如,可能要用它來(lái)跟蹤有關(guān)雇員的信息。確定實(shí)體對(duì)于這些活動(dòng),確定需要維護(hù)有關(guān)哪些類對(duì)象的信息。這些對(duì)象將成為實(shí)體。例如,聘用雇員,將雇員分配到某個(gè)部門,并確定其技能級(jí)別。確定關(guān)系對(duì)這些活動(dòng)進(jìn)行分析,然后確定實(shí)體間會(huì)有哪些關(guān)系。例如,部件和倉(cāng)庫(kù)之間有關(guān)系。定義兩個(gè)角色來(lái)描述每個(gè)關(guān)系。
12、分解活動(dòng)開始時(shí)確定了高級(jí)別的活動(dòng)?,F(xiàn)在,需要進(jìn)一步分析這些活動(dòng),確定是否可以將其中一些分解為較低級(jí)別的活動(dòng)。例如,象維護(hù)雇員信息這樣一個(gè)高級(jí)別活動(dòng)可以分解為:o添加新雇員。o更改現(xiàn)有雇員信息。o刪除已離職的雇員。確定業(yè)務(wù)規(guī)則對(duì)業(yè)務(wù)說(shuō)明進(jìn)行分析,確定應(yīng)遵守哪些規(guī)則。例如,一個(gè)部門有且僅有一個(gè)經(jīng)理就可以作為一個(gè)業(yè)務(wù)規(guī)則。這些規(guī)則將被置入數(shù)據(jù)庫(kù)的結(jié)構(gòu)中。實(shí)體和關(guān)系示例示例ACMECorporation是一家小公司,它在五個(gè)地點(diǎn)設(shè)有辦事處。目前,ACME有75名雇員。該公司正準(zhǔn)備迅速發(fā)展,并且已經(jīng)確定了九個(gè)部門,每個(gè)部門都有自己的部門經(jīng)理。為幫助公司招聘新雇員,人事部門確定了68項(xiàng)技能,并且認(rèn)為公司將
13、來(lái)需要具有這些技能的雇員。聘用了一個(gè)雇員后,將對(duì)該雇員在每項(xiàng)技能上的專業(yè)級(jí)別進(jìn)行評(píng)定。確定高級(jí)別的活動(dòng)ACMECorporation需要考慮的高級(jí)別活動(dòng)有:聘用雇員。解聘雇員。維護(hù)雇員的個(gè)人信息。維護(hù)有關(guān)公司所需技能的信息。維護(hù)有關(guān)哪個(gè)雇員具有哪項(xiàng)技能的信息。維護(hù)有關(guān)部門的信息。維護(hù)有關(guān)辦事處的信息。確定實(shí)體和關(guān)系確定實(shí)體(對(duì)象)和連接實(shí)體的關(guān)系(角色)。根據(jù)以上說(shuō)明和高級(jí)別的活動(dòng)創(chuàng)建一個(gè)設(shè)計(jì)圖。用矩形框表示實(shí)體,用連線表示關(guān)系。用兩個(gè)角色標(biāo)記每個(gè)關(guān)系。還應(yīng)使用適當(dāng)?shù)臉?biāo)注表示那些一對(duì)多、一對(duì)一和多對(duì)多關(guān)系。下面是一個(gè)粗略的實(shí)體關(guān)系圖。在本章后面的部分將逐漸對(duì)其進(jìn)行改進(jìn)。分解高級(jí)別的活動(dòng)根據(jù)上述
14、高級(jí)別的活動(dòng)可以確定以下較低級(jí)別的活動(dòng):添加或刪除雇員。添加或刪除辦事處。列出某個(gè)部門的雇員。在技能列表中添加技能。確定某個(gè)雇員的技能。確定某個(gè)雇員在各項(xiàng)技能上的技能級(jí)別。確定在某項(xiàng)技能上具有相同技能級(jí)別的所有雇員。更改雇員的技能級(jí)別。使用這些較低級(jí)別的活動(dòng)可以確定是否需要新表或新關(guān)系。確定業(yè)務(wù)規(guī)則業(yè)務(wù)規(guī)則通??梢员硎緸橐粚?duì)多、一對(duì)一和多對(duì)多關(guān)系??赡芟嚓P(guān)的業(yè)務(wù)規(guī)則有以下幾個(gè):現(xiàn)在有五個(gè)辦事處;擴(kuò)展計(jì)劃允許增加到最多十個(gè)。雇員可以更換部門或辦事處。每個(gè)部門有一個(gè)部門經(jīng)理。每個(gè)辦事處最多有三個(gè)電話號(hào)碼。每個(gè)電話號(hào)碼有一個(gè)或多個(gè)分機(jī)。聘用了一個(gè)雇員后,將對(duì)該雇員在各項(xiàng)技能上的專業(yè)級(jí)別進(jìn)行評(píng)定。每個(gè)
15、雇員具有三到二十項(xiàng)技能。可以將雇員分配到一個(gè)辦事處,也可以不分配第2步:確定所需數(shù)據(jù)確定所需數(shù)據(jù):確定支持?jǐn)?shù)據(jù)。2.列出所有需要跟蹤的數(shù)據(jù)。為每個(gè)實(shí)體設(shè)置數(shù)據(jù)。列出每個(gè)實(shí)體的可用數(shù)據(jù)。描述實(shí)體(對(duì)象)的數(shù)據(jù)可以回答涉及何人、何事、何處、何時(shí)以及何故的問(wèn)題。列出每個(gè)關(guān)系(動(dòng)詞)需要的所有數(shù)據(jù)。列出適用于每個(gè)關(guān)系的數(shù)據(jù)(如果有)。確定支持?jǐn)?shù)據(jù)您所確定的支持?jǐn)?shù)據(jù)將成為實(shí)體中屬性的名稱。例如,以下數(shù)據(jù)可能適用于Employee實(shí)體、Skill實(shí)體,和ExpertIn實(shí)體。雇員技能擅長(zhǎng)于雇員ID技能ID技能級(jí)別雇員的名字技能名稱掌握該項(xiàng)技能的日期雇員的姓氏技能說(shuō)明雇員的部門雇員所在的辦事處雇員的地址根據(jù)
16、這些數(shù)據(jù)創(chuàng)建的設(shè)計(jì)圖將如下圖所示:請(qǐng)注意,列出的所有屬性并未都在這張?jiān)O(shè)計(jì)圖中出現(xiàn)。未出現(xiàn)的屬性可歸為以下兩類:有一些屬性隱式包含在其他關(guān)系中;例如,雇員的部門和雇員所在的辦事處分別用連接Department和Office實(shí)體的關(guān)系表示。其他一些屬性未出現(xiàn)的原因是它們與這些實(shí)體并不相關(guān)聯(lián),而是與這些實(shí)體間的關(guān)系相關(guān)聯(lián)。上圖并不完整。在繪制完整的實(shí)體關(guān)系圖時(shí),第一類屬性會(huì)自然出現(xiàn)。可以通過(guò)將多對(duì)多關(guān)系轉(zhuǎn)換為實(shí)體來(lái)添加第二類屬性。新實(shí)體同時(shí)依賴于Employee實(shí)體和Skill實(shí)體。它將借用這些實(shí)體中的標(biāo)識(shí)符,因?yàn)樗瑫r(shí)依賴于這兩個(gè)實(shí)體。注意確定支持?jǐn)?shù)據(jù)時(shí),一定要參考前面確定的活動(dòng)以了解將如何訪問(wèn)這
17、些數(shù)據(jù)。例如,在某些情況下可能需要按雇員的名字列出雇員,而在另一些情況下可能需要按姓氏列出。要滿足這兩種需要,應(yīng)創(chuàng)建一個(gè)FirstName屬性和一個(gè)LastName屬性,而不應(yīng)創(chuàng)建一個(gè)既包含名字又包含姓氏的屬性。將姓氏和名字分開后,以后可以創(chuàng)建兩個(gè)索引,分別適用于這兩項(xiàng)任務(wù)。請(qǐng)選擇一致的名稱。使用一致的名稱可以使數(shù)據(jù)庫(kù)便于維護(hù),并且便于閱讀報(bào)告和輸出窗口。例如,如果一個(gè)屬性使用了縮略名稱,如Emp_status,貝V另一個(gè)屬性不應(yīng)使用完整名稱,如Employee。應(yīng)使名稱保持一致,如Emp_status和Emp_ID。在這個(gè)階段,數(shù)據(jù)是否與正確的實(shí)體相關(guān)聯(lián)并不十分重要。您可以根據(jù)自己的判斷進(jìn)行
18、設(shè)計(jì)。在下一節(jié)中,將對(duì)設(shè)計(jì)進(jìn)行測(cè)試,檢查您的判斷是否正確。第3步:規(guī)范化數(shù)據(jù)規(guī)范化是指一系列測(cè)試,通過(guò)這些測(cè)試可以消除冗余的數(shù)據(jù),并確保數(shù)據(jù)與正確的實(shí)體或關(guān)系相關(guān)聯(lián)。共有五項(xiàng)測(cè)試。本節(jié)介紹其中前三項(xiàng)測(cè)試。這三項(xiàng)測(cè)試最重要,因此也最常使用。為什么要進(jìn)行規(guī)范化?規(guī)范化的目的是消除冗余并提高一致性。例如,如果在多個(gè)位置都存儲(chǔ)了客戶的地址,在這些客戶搬家后將很難正確更新所有副本。有關(guān)規(guī)范化測(cè)試的更多信息,請(qǐng)參見有關(guān)數(shù)據(jù)庫(kù)設(shè)計(jì)的書籍。范式數(shù)據(jù)規(guī)范化包括幾項(xiàng)測(cè)試。數(shù)據(jù)在通過(guò)了第一項(xiàng)測(cè)試后,我們認(rèn)為它滿足第一范式;通過(guò)了第二項(xiàng)測(cè)試后,它滿足第二范式;通過(guò)了第三項(xiàng)測(cè)試后,貝滿足第三范式。規(guī)范化數(shù)據(jù)庫(kù)中的數(shù)據(jù):
19、1.列出這些數(shù)據(jù)。o為每個(gè)實(shí)體至少確定一個(gè)鍵。每個(gè)實(shí)體必須有一個(gè)標(biāo)識(shí)符。o確定關(guān)系的鍵。關(guān)系的鍵是該關(guān)系所連接的兩個(gè)實(shí)體的鍵。o檢查支持?jǐn)?shù)據(jù)列表中是否有計(jì)算數(shù)據(jù)。計(jì)算數(shù)據(jù)通常不存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中。2.2.第一范式測(cè)試。o如果一個(gè)屬性在同一個(gè)條目上可以有幾個(gè)不同的值,則刪除這些重復(fù)的值。o用刪除的數(shù)據(jù)創(chuàng)建一個(gè)或多個(gè)實(shí)體或關(guān)系。3.4.第二范式測(cè)試。3.4.o找出帶有多個(gè)鍵的實(shí)體和關(guān)系。o刪除只依賴于鍵的一部分的數(shù)據(jù)。o用刪除的數(shù)據(jù)創(chuàng)建一個(gè)或多個(gè)實(shí)體或關(guān)系。第三范式測(cè)試。o刪除依賴于實(shí)體或關(guān)系中的其他數(shù)據(jù),而不依賴于鍵的數(shù)據(jù)。用刪除的數(shù)據(jù)創(chuàng)建一個(gè)或多個(gè)實(shí)體或關(guān)系。數(shù)據(jù)和標(biāo)識(shí)符開始進(jìn)行規(guī)范化(對(duì)設(shè)計(jì)
20、進(jìn)行測(cè)試)之前,簡(jiǎn)單地列出數(shù)據(jù),并為每個(gè)表確定一個(gè)唯一的標(biāo)識(shí)符。標(biāo)識(shí)符可以由一個(gè)數(shù)據(jù)(屬性)或幾個(gè)數(shù)據(jù)(復(fù)合標(biāo)識(shí)符)組成。標(biāo)識(shí)符是唯一地標(biāo)識(shí)實(shí)體中各行的一組屬性。例如,Employee實(shí)體的標(biāo)識(shí)符是EmployeeID。WorksIn關(guān)系的標(biāo)識(shí)符由OfficeCode和EmployeeID屬性組成。數(shù)據(jù)庫(kù)中每個(gè)關(guān)系的標(biāo)識(shí)符可由該關(guān)系所連接的各個(gè)實(shí)體的標(biāo)識(shí)符組成。在下表中,帶有星號(hào)的屬性為該實(shí)體或關(guān)系的標(biāo)識(shí)符。實(shí)體或關(guān)系屬性辦事處*辦事處代碼辦事處地址電話號(hào)碼工作地點(diǎn)為辦事處代碼雇員ID部門*工作地點(diǎn)為辦事處代碼雇員ID部門*部門ID部門名稱經(jīng)理為部門ID雇員ID2.2.2.2.屬于屬于部門ID
21、*雇員ID技能*技能ID技能名稱技能說(shuō)明擅長(zhǎng)于*技能ID*雇員ID技能級(jí)別掌握日期雇員*雇員ID姓氏名字社保號(hào)碼地址電話號(hào)碼出生日期第一范式測(cè)試進(jìn)行第一范式測(cè)試時(shí),應(yīng)找出可能有重復(fù)值的屬性。如果有多個(gè)值都適用于某一項(xiàng),則刪除這些屬性。將這些重復(fù)屬性移到一個(gè)新實(shí)體中。在下面的實(shí)體中,Phonenumber可能會(huì)重復(fù)一一個(gè)辦事處可以有多個(gè)電話號(hào)碼。DepartmentEmployef刪除重復(fù)的屬性,并創(chuàng)建一個(gè)名為Telephone的新實(shí)體。在Office與Telephone之間建立一個(gè)關(guān)系。第二范式測(cè)試刪除不依賴于整個(gè)鍵的值。只需要檢查標(biāo)識(shí)符由多個(gè)屬性組成的實(shí)體和關(guān)系。進(jìn)行第二范式測(cè)試時(shí),應(yīng)刪除所
22、有不依賴于整個(gè)標(biāo)識(shí)符的數(shù)據(jù)。每個(gè)屬性都應(yīng)依賴于組成標(biāo)識(shí)符的所有屬性。在這個(gè)示例中,EmployeeandDepartment實(shí)體的標(biāo)識(shí)符由兩個(gè)屬性組成。有些數(shù)據(jù)與這兩個(gè)標(biāo)識(shí)符屬性并不都具有依賴關(guān)系,例如,部門名稱只依賴于其中一個(gè)屬性,DepartmentID,而雇員的名字只依賴于EmployeeID。EmployeeandDepartmentEmplDUEEIDD皀pmrtmm仃tIDEmployeefirtEmployeeI目stnDup曰rtmuntname將其他雇員數(shù)據(jù)不依賴的標(biāo)識(shí)符DepartmentID移到其名為Department的實(shí)體中。還應(yīng)移動(dòng)所有依賴于它的屬性。在Employ
23、ee和Department之間創(chuàng)建一個(gè)關(guān)系。第三范式測(cè)試刪除不直接依賴于鍵的數(shù)據(jù)。進(jìn)行第三范式測(cè)試時(shí),應(yīng)刪除所有依賴于其他屬性而不直接依賴于標(biāo)識(shí)符的屬性。在這個(gè)示例中,EmployeeandOffice實(shí)體中有一些屬性依賴于其標(biāo)識(shí)符EmployeeID。但是,Officelocation和Officephone等屬性卻依賴于另一個(gè)屬性,Officecode。這些屬性不依賴于標(biāo)識(shí)符EmployeeID。刪除Officecode和那些依賴于它的屬性。創(chuàng)建另一個(gè)名為Office的實(shí)體。然后,創(chuàng)建一個(gè)連接Employee和Office實(shí)體的關(guān)系。第4步:解析關(guān)系執(zhí)行完規(guī)范化過(guò)程后,設(shè)計(jì)幾乎就完成了。唯
24、一還需要做的事情就是生成與概念數(shù)據(jù)模型相對(duì)應(yīng)的物理數(shù)據(jù)模型。這個(gè)過(guò)程也稱作解析關(guān)系,因?yàn)槠渲猩婕暗拇罅抗ぷ骶褪菍⒏拍钅P椭械年P(guān)系轉(zhuǎn)換為相應(yīng)的表和外鍵關(guān)系。雖然概念模型在很大程度上獨(dú)立于實(shí)施細(xì)節(jié),但物理數(shù)據(jù)模型與特定數(shù)據(jù)庫(kù)應(yīng)用程序中的表結(jié)構(gòu)和可用選項(xiàng)緊密相關(guān)。在這里,我們所指的應(yīng)用程序就是AdaptiveServerAnywhere。解析不帶有數(shù)據(jù)的關(guān)系要實(shí)施不帶有數(shù)據(jù)的關(guān)系,需要定義外鍵。外鍵是指包含另一個(gè)表中的主鍵值的一列或幾列。利用外鍵一次可以訪問(wèn)多個(gè)表中的數(shù)據(jù)。使用象SybasePowerDesigner的DataArchitect組件的數(shù)據(jù)庫(kù)設(shè)計(jì)工具可以自動(dòng)生成物理數(shù)據(jù)模型。但如果要自
25、己生成物理模型,有一些基本規(guī)則可以幫助您確定將哪些列設(shè)置為鍵。一對(duì)多一個(gè)一對(duì)多關(guān)系總是會(huì)變?yōu)橐粋€(gè)實(shí)體和一個(gè)外鍵關(guān)系。請(qǐng)注意,實(shí)體將變?yōu)楸?。?shí)體中的標(biāo)識(shí)符(至少一部分)將變?yōu)楸碇械闹麈I。屬性將變?yōu)榱?。在一?duì)多關(guān)系中,一方的實(shí)體中的標(biāo)識(shí)符成為多方的表中新加的外鍵列。在這個(gè)示例中,Employee實(shí)體變?yōu)镋mployee表。同樣,Department實(shí)體變?yōu)镈epartment表oEmployee表中將出現(xiàn)一個(gè)名為DepartmentID的外鍵。一對(duì)一對(duì)于一對(duì)一關(guān)系,可在其中任意一個(gè)表中設(shè)置外鍵。如果關(guān)系在一側(cè)是強(qiáng)制的,但在另一側(cè)是可選的,應(yīng)在可選的一側(cè)設(shè)置外鍵。在這個(gè)示例中,在Truck表中設(shè)置外
26、鍵(VehicleID)是因?yàn)檐囕v不一定都是卡車。因此,上面的實(shí)體關(guān)系模型將解析為下面的數(shù)據(jù)庫(kù)基本結(jié)構(gòu)。多對(duì)多在多對(duì)多關(guān)系中,創(chuàng)建的新表中有兩個(gè)外鍵。必須這樣安排才會(huì)使數(shù)據(jù)庫(kù)更高效。新的StorageLocation表將Parts和Warehouse表關(guān)聯(lián)起來(lái)。解析帶有數(shù)據(jù)的關(guān)系有些關(guān)系可能會(huì)帶有數(shù)據(jù)。這種情況常常會(huì)在多對(duì)多關(guān)系中出現(xiàn)。在這種情況下,每個(gè)實(shí)體都將解析為一個(gè)表。每個(gè)角色將變?yōu)橹赶蛄硪粋€(gè)表的外鍵。Inventory實(shí)體借用Parts和Warehouse表中的標(biāo)識(shí)符,因?yàn)樗c這兩個(gè)表都有依賴關(guān)系。經(jīng)過(guò)解析后,這些借用的標(biāo)識(shí)符將成為Inventory表的主鍵。第5步:驗(yàn)證設(shè)計(jì)實(shí)施設(shè)計(jì)之
27、前,需要確保該設(shè)計(jì)能夠滿足您的需要。檢查在設(shè)計(jì)過(guò)程之初確定的活動(dòng),確??梢栽L問(wèn)這些活動(dòng)所需要的數(shù)據(jù)。能否找到一條獲取所需信息的途徑?設(shè)計(jì)是否滿足您的需求?能否獲得所需要的全部數(shù)據(jù)?如果您對(duì)上述所有問(wèn)題的回答都是肯定的,那么就可以實(shí)現(xiàn)您的設(shè)計(jì)了。最終設(shè)計(jì)按照第1步到第3步為前面提到的小公司設(shè)計(jì)數(shù)據(jù)庫(kù),將得到以下實(shí)體關(guān)系圖。這個(gè)數(shù)據(jù)庫(kù)現(xiàn)在處于第三范式。學(xué)握于1SkillIDNimtierSkillnwm已Skilldescription1管理DepsrtmentDEgrtrriEntID_Departmentname有OfficeIDMumlJEFOfficenameAddress管理DepsrtmentDEgrtrriEntID_Departmentname有OfficeIDMumlJEFOfficenameAddressEmploy亡亡EtTiployeeIDFirstnameLstnameHomeaddress隸雇于管理包含設(shè)計(jì)數(shù)據(jù)庫(kù)表屬性數(shù)據(jù)庫(kù)設(shè)計(jì)將確定需要哪些表,以及每
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 綜合制劑車間課程設(shè)計(jì)
- 中西醫(yī)助理醫(yī)師考試中醫(yī)內(nèi)科學(xué)總結(jié)要點(diǎn)大全
- 中考英語(yǔ)各種題材閱讀理解強(qiáng)化訓(xùn)練(附詳解)
- (CFG及真空聯(lián)合堆載預(yù)壓)軟基處理施工方案
- 《機(jī)械通氣的應(yīng)用》課件
- 油庫(kù)課程設(shè)計(jì)書封面圖案
- 模擬電子琴設(shè)計(jì)課程設(shè)計(jì)
- 知識(shí)產(chǎn)權(quán)活動(dòng)課程設(shè)計(jì)
- 藝校啟蒙班課程設(shè)計(jì)
- 酒店職員的工作總結(jié)
- 【MOOC期末】《電子技術(shù)實(shí)習(xí)SPOC》(北京科技大學(xué))期末慕課答案
- 新媒體技術(shù)基礎(chǔ)知識(shí)單選題100道及答案解析
- 2025蛇年帶橫批春聯(lián)對(duì)聯(lián)200副帶橫批
- 互聯(lián)網(wǎng)+創(chuàng)新商業(yè)模式考核試卷
- 江蘇省揚(yáng)州市梅嶺中學(xué)2023-2024學(xué)年七年級(jí)上學(xué)期期末地理試題(含答案)
- 克羅恩病病例分析
- 《冠心病》課件(完整版)
- DB43T 1694-2019 集體建設(shè)用地定級(jí)與基準(zhǔn)地價(jià)評(píng)估技術(shù)規(guī)范
- 高級(jí)技師電工培訓(xùn)
- DZ/T 0462.3-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第3部分:鐵、錳、鉻、釩、鈦(正式版)
- Lesson-1.-spring-festival(雙語(yǔ)課件-春節(jié))
評(píng)論
0/150
提交評(píng)論