版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第八章第八章 使用使用UML的數(shù)據(jù)庫分析與設(shè)計的數(shù)據(jù)庫分析與設(shè)計n本章的教學(xué)目的本章的教學(xué)目的 長期以來按照傳統(tǒng)的系統(tǒng)設(shè)計方法長期以來按照傳統(tǒng)的系統(tǒng)設(shè)計方法, ,應(yīng)用程序設(shè)計應(yīng)用程序設(shè)計與數(shù)據(jù)庫設(shè)計是分別進行的與數(shù)據(jù)庫設(shè)計是分別進行的, ,設(shè)計完成后還需要對這設(shè)計完成后還需要對這兩項設(shè)計進行協(xié)調(diào)兩項設(shè)計進行協(xié)調(diào), ,因此比較麻煩。如果采用因此比較麻煩。如果采用UMLUML進行進行系統(tǒng)分析和設(shè)計,則可以把系統(tǒng)的應(yīng)用程序設(shè)計和數(shù)系統(tǒng)分析和設(shè)計,則可以把系統(tǒng)的應(yīng)用程序設(shè)計和數(shù)據(jù)庫設(shè)計統(tǒng)一起來,有效地提高數(shù)據(jù)庫設(shè)計的效率和據(jù)庫設(shè)計統(tǒng)一起來,有效地提高數(shù)據(jù)庫設(shè)計的效率和質(zhì)量,降低開發(fā)風(fēng)險,提高軟件部件的
2、可重用性,降質(zhì)量,降低開發(fā)風(fēng)險,提高軟件部件的可重用性,降低開發(fā)成本。所以,希望同學(xué)們通過本章的學(xué)習(xí)能掌低開發(fā)成本。所以,希望同學(xué)們通過本章的學(xué)習(xí)能掌握使用握使用 UMLUML進行數(shù)據(jù)庫分析與設(shè)計的方法進行數(shù)據(jù)庫分析與設(shè)計的方法。n本章的教學(xué)內(nèi)容本章的教學(xué)內(nèi)容UMLUML關(guān)系數(shù)據(jù)庫設(shè)計的概念、術(shù)語和規(guī)范關(guān)系數(shù)據(jù)庫設(shè)計的概念、術(shù)語和規(guī)范使用使用UMLUML進行數(shù)據(jù)庫分析與設(shè)計的方法與過程進行數(shù)據(jù)庫分析與設(shè)計的方法與過程8.1 數(shù)據(jù)庫設(shè)計的一般方法與過程數(shù)據(jù)庫設(shè)計的一般方法與過程1.傳統(tǒng)的關(guān)系數(shù)據(jù)庫設(shè)計方法與過程傳統(tǒng)的關(guān)系數(shù)據(jù)庫設(shè)計方法與過程 傳統(tǒng)的關(guān)系數(shù)據(jù)庫設(shè)計的過程分為傳統(tǒng)的關(guān)系數(shù)據(jù)庫設(shè)計的過
3、程分為4個階段個階段:需求分析需求分析;概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計;邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計;物理結(jié)構(gòu)設(shè)計。物理結(jié)構(gòu)設(shè)計。(1)需求分析階段)需求分析階段的主要任務(wù)是通過對現(xiàn)有的的主要任務(wù)是通過對現(xiàn)有的系統(tǒng)進行調(diào)查分析,以確定要建立的新數(shù)據(jù)庫系統(tǒng)進行調(diào)查分析,以確定要建立的新數(shù)據(jù)庫應(yīng)用系統(tǒng)的信息需求和處理要求,并編制出數(shù)應(yīng)用系統(tǒng)的信息需求和處理要求,并編制出數(shù)據(jù)庫需求分析說明書,對數(shù)據(jù)的存儲要求和處據(jù)庫需求分析說明書,對數(shù)據(jù)的存儲要求和處理要求進行描述,作為后續(xù)各設(shè)計階段的依據(jù)理要求進行描述,作為后續(xù)各設(shè)計階段的依據(jù)。(2)概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計需要借助某種工具或方法,需要借助某種工具或方法,
4、如當(dāng)前應(yīng)用最廣泛的有如當(dāng)前應(yīng)用最廣泛的有實體聯(lián)系方法實體聯(lián)系方法(Entity-Relationship,ER方法方法),它使用,它使用ER圖定義系圖定義系統(tǒng)的信息組織模式,即概念結(jié)構(gòu)。統(tǒng)的信息組織模式,即概念結(jié)構(gòu)。教師教師職稱職稱性別性別職務(wù)職務(wù)姓名姓名教工號教工號教教學(xué)生學(xué)生性別性別姓名姓名系系學(xué)號學(xué)號年級年級學(xué)學(xué)課程課程學(xué)時學(xué)時學(xué)分學(xué)分課名課名課程號課程號成績成績1NMN教師教師-學(xué)生學(xué)生-課程課程E-R 圖圖(3)邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計的任務(wù)是按照一定的規(guī)則,將的任務(wù)是按照一定的規(guī)則,將概念結(jié)構(gòu)轉(zhuǎn)換為某種數(shù)據(jù)庫管理系統(tǒng)所能接受概念結(jié)構(gòu)轉(zhuǎn)換為某種數(shù)據(jù)庫管理系統(tǒng)所能接受的數(shù)據(jù)模型。的數(shù)據(jù)
5、模型。 圖2 一個實體類型轉(zhuǎn)換為一個關(guān)系模型一個實體類型轉(zhuǎn)換為一個關(guān)系模型(4)(4)物理結(jié)構(gòu)設(shè)計物理結(jié)構(gòu)設(shè)計 將前一階段設(shè)計的關(guān)系模式轉(zhuǎn)化為具體數(shù)據(jù)將前一階段設(shè)計的關(guān)系模式轉(zhuǎn)化為具體數(shù)據(jù)庫環(huán)境下的數(shù)據(jù)表結(jié)構(gòu)庫環(huán)境下的數(shù)據(jù)表結(jié)構(gòu),以實現(xiàn)對數(shù)據(jù)庫的有,以實現(xiàn)對數(shù)據(jù)庫的有效管理。這需要依賴于給定的計算機系統(tǒng)來確效管理。這需要依賴于給定的計算機系統(tǒng)來確定。對于關(guān)系數(shù)據(jù)庫系統(tǒng)來說,數(shù)據(jù)庫的物理定。對于關(guān)系數(shù)據(jù)庫系統(tǒng)來說,數(shù)據(jù)庫的物理結(jié)構(gòu)主要由結(jié)構(gòu)主要由DBMSDBMS確定。確定。2.2.基于基于UMLUML的數(shù)據(jù)庫設(shè)計的數(shù)據(jù)庫設(shè)計 使用使用UMLUML做數(shù)據(jù)庫設(shè)計做數(shù)據(jù)庫設(shè)計, ,可以把數(shù)據(jù)庫設(shè)計可以
6、把數(shù)據(jù)庫設(shè)計與系統(tǒng)的應(yīng)用程序設(shè)計結(jié)合在一起進行與系統(tǒng)的應(yīng)用程序設(shè)計結(jié)合在一起進行, ,而且而且UMLUML具有更強的建模表現(xiàn)能力。具有更強的建模表現(xiàn)能力。n基于基于UML的關(guān)系數(shù)據(jù)庫設(shè)計與的關(guān)系數(shù)據(jù)庫設(shè)計與傳統(tǒng)的關(guān)系數(shù)據(jù)庫設(shè)傳統(tǒng)的關(guān)系數(shù)據(jù)庫設(shè)計的過程類似,一般分為計的過程類似,一般分為4個階段:個階段:業(yè)務(wù)業(yè)務(wù)Use Case模型設(shè)計模型設(shè)計:就是進行數(shù)據(jù)庫的需求分:就是進行數(shù)據(jù)庫的需求分析,使用用例圖等建立業(yè)務(wù)模型。析,使用用例圖等建立業(yè)務(wù)模型。邏輯數(shù)據(jù)模型設(shè)計邏輯數(shù)據(jù)模型設(shè)計:主要是確定應(yīng)用系統(tǒng)所需要的:主要是確定應(yīng)用系統(tǒng)所需要的持久數(shù)據(jù)。使用類圖等建立數(shù)據(jù)庫邏輯模型。如果持久數(shù)據(jù)。使用類
7、圖等建立數(shù)據(jù)庫邏輯模型。如果是關(guān)系數(shù)據(jù)庫設(shè)計,則需要設(shè)計出表達持久數(shù)據(jù)的是關(guān)系數(shù)據(jù)庫設(shè)計,則需要設(shè)計出表達持久數(shù)據(jù)的實體類及其聯(lián)系,并把它們映射成為關(guān)系數(shù)據(jù)庫表實體類及其聯(lián)系,并把它們映射成為關(guān)系數(shù)據(jù)庫表(Table)、視圖、視圖(View)等。等。物理數(shù)據(jù)模型設(shè)計物理數(shù)據(jù)模型設(shè)計:使用組件圖、配置圖等,設(shè)計:使用組件圖、配置圖等,設(shè)計數(shù)據(jù)庫的物理模型。數(shù)據(jù)庫的物理模型。物理實現(xiàn)設(shè)計物理實現(xiàn)設(shè)計:根據(jù)物理數(shù)據(jù)模型建立具體數(shù)據(jù)庫:根據(jù)物理數(shù)據(jù)模型建立具體數(shù)據(jù)庫環(huán)境下的數(shù)據(jù)庫,定義構(gòu)成數(shù)據(jù)庫的基本表、視圖環(huán)境下的數(shù)據(jù)庫,定義構(gòu)成數(shù)據(jù)庫的基本表、視圖等。等。 8.2 UML用于數(shù)據(jù)庫設(shè)計的規(guī)范用于數(shù)
8、據(jù)庫設(shè)計的規(guī)范8.2.1 表表是關(guān)系數(shù)據(jù)庫的基本建模結(jié)構(gòu)。表又稱為二是關(guān)系數(shù)據(jù)庫的基本建模結(jié)構(gòu)。表又稱為二維表或關(guān)系,它是具有相同結(jié)構(gòu)的行維表或關(guān)系,它是具有相同結(jié)構(gòu)的行(Row)(Row)的集合,的集合,行又稱為元組。表中的每一列又稱為關(guān)系的屬性。行又稱為元組。表中的每一列又稱為關(guān)系的屬性。 在在UMLUML中中表表用用類的圖標(biāo)類的圖標(biāo)來表示,帶有構(gòu)造型圖標(biāo)來表示,帶有構(gòu)造型圖標(biāo)“ ”“ ”或或,類名即表名,類名即表名,類的屬性類的屬性描述描述表的列特表的列特性性,包括列名、數(shù)據(jù)類型,以及有關(guān)的約束。在類,包括列名、數(shù)據(jù)類型,以及有關(guān)的約束。在類的行為部分,根據(jù)需要可以給出對表的一些操作的的
9、行為部分,根據(jù)需要可以給出對表的一些操作的描述,也可以缺省。描述,也可以缺省。 8.2.2 8.2.2 關(guān)鍵字與索引關(guān)鍵字與索引(1)(1)候選關(guān)鍵字候選關(guān)鍵字(candidate keycandidate key):是一個或多個屬性):是一個或多個屬性的組合,它唯一地確定某個表里的記錄。一個候選關(guān)的組合,它唯一地確定某個表里的記錄。一個候選關(guān)鍵字里的屬性集必須是最小化的;除非破壞唯一性,鍵字里的屬性集必須是最小化的;除非破壞唯一性,否則屬性不能從候選關(guān)鍵字刪除。候選關(guān)鍵字里的屬否則屬性不能從候選關(guān)鍵字刪除。候選關(guān)鍵字里的屬性不能為空。性不能為空。(2)(2)主關(guān)鍵字主關(guān)鍵字(primary
10、keyprimary key):是一個特別選定的候選):是一個特別選定的候選關(guān)鍵字,用來唯一地確定表里的記錄。關(guān)鍵字,用來唯一地確定表里的記錄。(3)(3)外來關(guān)鍵字外來關(guān)鍵字(foreign keyforeign key):是一個屬性或?qū)傩越M,):是一個屬性或?qū)傩越M,它在本表中不是關(guān)鍵字它在本表中不是關(guān)鍵字, ,不能唯一地標(biāo)識表中的行不能唯一地標(biāo)識表中的行, ,但但它在另一個表中是主關(guān)鍵字它在另一個表中是主關(guān)鍵字, ,能夠唯一地標(biāo)識那個表能夠唯一地標(biāo)識那個表中的行。外來關(guān)鍵字體現(xiàn)了兩個表的聯(lián)系中的行。外來關(guān)鍵字體現(xiàn)了兩個表的聯(lián)系, ,實現(xiàn)表之實現(xiàn)表之間的參照完整性。間的參照完整性。 例如:例
11、如: 學(xué)生學(xué)生S (學(xué)號學(xué)號, 姓名姓名, 性別性別, 年齡年齡, 身份證號身份證號), 課程課程C (課號課號, 課名課名), 選課選課SC (學(xué)號學(xué)號, 課號課號, 成績成績) 8146910223418193140385466467178688085140034516610285153keylink下標(biāo)下標(biāo)索引表索引表012345678910111213141516171819key其它域其它域位置位置主表主表索引表結(jié)構(gòu)圖索引表結(jié)構(gòu)圖 (4)索引索引:索引是由數(shù)據(jù)庫表中一列或多列值的集合形成:索引是由數(shù)據(jù)庫表中一列或多列值的集合形成的數(shù)據(jù)結(jié)構(gòu),使用這種結(jié)構(gòu)可快速訪問數(shù)據(jù)庫表中的特的數(shù)據(jù)結(jié)
12、構(gòu),使用這種結(jié)構(gòu)可快速訪問數(shù)據(jù)庫表中的特定信息。在定信息。在UML圖標(biāo)中,索引用構(gòu)造型圖標(biāo)中,索引用構(gòu)造型表示。表示。8.2.3 8.2.3 約束約束 約束是一種施加于數(shù)據(jù)庫結(jié)構(gòu)的規(guī)則約束是一種施加于數(shù)據(jù)庫結(jié)構(gòu)的規(guī)則, ,用于保證數(shù)用于保證數(shù)據(jù)庫的正確性或完整性。據(jù)庫的正確性或完整性。(1)主關(guān)鍵字主關(guān)鍵字約束約束加在表的圖標(biāo)中的一個屬性名前加在表的圖標(biāo)中的一個屬性名前面,表示該屬性為面,表示該屬性為主關(guān)鍵字,也可以加在一個操作主關(guān)鍵字,也可以加在一個操作名前表示該操作的類型名前表示該操作的類型。主關(guān)鍵字主關(guān)鍵字約束使用構(gòu)造型約束使用構(gòu)造型表示,也可用一個小圖標(biāo)表示,也可用一個小圖標(biāo)“PK”代
13、替。代替。(2 2)外來外來關(guān)鍵字關(guān)鍵字約束約束加在表中的一個屬性名前面,加在表中的一個屬性名前面,表示該屬性為表示該屬性為外來關(guān)鍵字外來關(guān)鍵字, ,也可以加在一個操作名前也可以加在一個操作名前表示該操作的類型表示該操作的類型。外來關(guān)鍵字外來關(guān)鍵字約束使用構(gòu)造型約束使用構(gòu)造型表示,也可用一個小圖標(biāo)表示,也可用一個小圖標(biāo)“FK”代替。代替。 (3)值檢驗約束值檢驗約束可以檢驗表中列值是否符合某個規(guī)則,可以檢驗表中列值是否符合某個規(guī)則,比如把列值與一個固定的值范圍進行比較或與數(shù)據(jù)庫比如把列值與一個固定的值范圍進行比較或與數(shù)據(jù)庫中的其他列的數(shù)據(jù)進行比較。值檢驗約束使用構(gòu)造型中的其他列的數(shù)據(jù)進行比較。
14、值檢驗約束使用構(gòu)造型表示表示,它可以加在一個操作名前面,以表它可以加在一個操作名前面,以表示該操作是一個值檢驗約束。示該操作是一個值檢驗約束。(4)值唯一性約束值唯一性約束保證所定義列的所有值是互不相同保證所定義列的所有值是互不相同的。值唯一性約束使用構(gòu)造型的。值唯一性約束使用構(gòu)造型表示表示,它可以加在一個操作名前面,以表示該操作是一個它可以加在一個操作名前面,以表示該操作是一個值檢驗約束。值檢驗約束。(5 5)觸發(fā)器約束觸發(fā)器約束當(dāng)一般的約束難以滿足應(yīng)用程序的功當(dāng)一般的約束難以滿足應(yīng)用程序的功能需求時,可用觸發(fā)器約束來滿足。所以它也是為保證能需求時,可用觸發(fā)器約束來滿足。所以它也是為保證表的
15、數(shù)據(jù)完整性而定義的某種特殊約束操作。當(dāng)對表中表的數(shù)據(jù)完整性而定義的某種特殊約束操作。當(dāng)對表中數(shù)據(jù)進行了增、刪、改等操作時,觸發(fā)器可能被自動激數(shù)據(jù)進行了增、刪、改等操作時,觸發(fā)器可能被自動激發(fā)執(zhí)行。發(fā)執(zhí)行。觸發(fā)器約束使用構(gòu)造型觸發(fā)器約束使用構(gòu)造型表示表示, ,它可它可以加在一個操作名前面,以表示該操作是一個觸發(fā)器。以加在一個操作名前面,以表示該操作是一個觸發(fā)器。8.2.4 聯(lián)系聯(lián)系 存在于兩個表之間的任何關(guān)系稱為存在于兩個表之間的任何關(guān)系稱為聯(lián)系聯(lián)系。表之間的。表之間的聯(lián)系有兩種:聯(lián)系有兩種:非確定性聯(lián)系非確定性聯(lián)系和和確定性聯(lián)系確定性聯(lián)系。非確定性聯(lián)系非確定性聯(lián)系(Non-Identify R
16、elationship)是存在是存在于兩個獨立表之間的聯(lián)系,此時在子表中的外來關(guān)鍵于兩個獨立表之間的聯(lián)系,此時在子表中的外來關(guān)鍵字為非主關(guān)鍵字列字為非主關(guān)鍵字列 。l確定性聯(lián)系確定性聯(lián)系(Identify Relationship)是存在于兩個有依是存在于兩個有依賴關(guān)系的表之間的聯(lián)系,若父表不存在,則子表也不賴關(guān)系的表之間的聯(lián)系,若父表不存在,則子表也不存在,子表的存在依賴于父表的存在。父表中的每一存在,子表的存在依賴于父表的存在。父表中的每一個主關(guān)鍵字列都可成為子表中的主關(guān)鍵字列的一部分個主關(guān)鍵字列都可成為子表中的主關(guān)鍵字列的一部分和外來關(guān)鍵字列。和外來關(guān)鍵字列。8.5 8.5 視圖視圖 一
17、個視圖是一個基本表的投影一個視圖是一個基本表的投影, ,包含基本表的部分包含基本表的部分數(shù)據(jù)。數(shù)據(jù)。 視圖可以看成數(shù)據(jù)庫的窗口視圖可以看成數(shù)據(jù)庫的窗口, ,可以簡化數(shù)據(jù)可以簡化數(shù)據(jù)庫查詢的復(fù)雜性庫查詢的復(fù)雜性, ,有利于保持數(shù)據(jù)庫數(shù)據(jù)的一致性和有利于保持數(shù)據(jù)庫數(shù)據(jù)的一致性和安全性。安全性。 在在UMLUML中,視圖用帶有構(gòu)造性圖標(biāo)中,視圖用帶有構(gòu)造性圖標(biāo)“ ”“ ”或或的類表示,類名即為視圖名。但是,視圖的類表示,類名即為視圖名。但是,視圖的屬性必須與其來源表中相應(yīng)的屬性一致。的屬性必須與其來源表中相應(yīng)的屬性一致。8.6 數(shù)據(jù)庫與數(shù)據(jù)庫模式數(shù)據(jù)庫與數(shù)據(jù)庫模式 (1) 數(shù)據(jù)庫數(shù)據(jù)庫 在在UMLU
18、ML中中, ,數(shù)據(jù)庫用帶有構(gòu)造型數(shù)據(jù)庫用帶有構(gòu)造型的組的組件表示件表示, ,也可用柱型圖標(biāo)表示。也可用柱型圖標(biāo)表示。 (2) 數(shù)據(jù)庫模式數(shù)據(jù)庫模式 數(shù)據(jù)庫模式是表的組織結(jié)構(gòu)的描述。關(guān)系數(shù)據(jù)庫數(shù)據(jù)庫模式是表的組織結(jié)構(gòu)的描述。關(guān)系數(shù)據(jù)庫模式是關(guān)系模式的集合,包括對表的靜態(tài)結(jié)構(gòu)和完模式是關(guān)系模式的集合,包括對表的靜態(tài)結(jié)構(gòu)和完整性約束的定義。整性約束的定義。 在在UMLUML中,數(shù)據(jù)庫模式用帶有構(gòu)造型中,數(shù)據(jù)庫模式用帶有構(gòu)造型的的包表示,通常用在類圖中。包表示,通常用在類圖中。8.7 表空間與節(jié)點表空間與節(jié)點(1)(1)表空間表空間 表空間是指數(shù)據(jù)的存儲區(qū)域。一個數(shù)據(jù)庫可以分表空間是指數(shù)據(jù)的存儲區(qū)域。
19、一個數(shù)據(jù)庫可以分布在一個或多個表空間,這取決于數(shù)據(jù)庫的數(shù)據(jù)量、布在一個或多個表空間,這取決于數(shù)據(jù)庫的數(shù)據(jù)量、數(shù)據(jù)訪問要求和安全性的要求。數(shù)據(jù)訪問要求和安全性的要求。 表空間用帶有構(gòu)造型表空間用帶有構(gòu)造型的組件表示,的組件表示,表空間與數(shù)據(jù)庫的聯(lián)系用依賴表示。表空間與數(shù)據(jù)庫的聯(lián)系用依賴表示。(2)節(jié)點)節(jié)點 節(jié)點節(jié)點(Node)(Node)是處于運行期的分布式系統(tǒng)的物理元是處于運行期的分布式系統(tǒng)的物理元素素, ,代表計算機資源代表計算機資源, ,如處理器或其他硬件設(shè)備。經(jīng)如處理器或其他硬件設(shè)備。經(jīng)過開發(fā)得到的軟件組件和重用模塊就必須配置在相過開發(fā)得到的軟件組件和重用模塊就必須配置在相應(yīng)的節(jié)點上才
20、能被執(zhí)行。應(yīng)的節(jié)點上才能被執(zhí)行。 節(jié)點在配置圖中使用節(jié)點在配置圖中使用, ,通過節(jié)點和節(jié)點之間的聯(lián)系通過節(jié)點和節(jié)點之間的聯(lián)系, ,表達計算機系統(tǒng)的物理配置結(jié)構(gòu)。表達計算機系統(tǒng)的物理配置結(jié)構(gòu)。8.3 關(guān)系數(shù)據(jù)庫邏輯模型設(shè)計關(guān)系數(shù)據(jù)庫邏輯模型設(shè)計8.3.1 8.3.1 邏輯模型設(shè)計邏輯模型設(shè)計 在邏輯數(shù)據(jù)模型設(shè)計階段在邏輯數(shù)據(jù)模型設(shè)計階段, ,主要任務(wù)是確定主要任務(wù)是確定應(yīng)用系統(tǒng)所需長期保存的實體數(shù)據(jù)應(yīng)用系統(tǒng)所需長期保存的實體數(shù)據(jù), ,用類圖等用類圖等建建立數(shù)據(jù)庫的邏輯模型。對于關(guān)系數(shù)據(jù)庫,則需立數(shù)據(jù)庫的邏輯模型。對于關(guān)系數(shù)據(jù)庫,則需要根據(jù)系統(tǒng)中的實體類,創(chuàng)建關(guān)系數(shù)據(jù)庫模式,要根據(jù)系統(tǒng)中的實體類,
21、創(chuàng)建關(guān)系數(shù)據(jù)庫模式,包括表、視圖、索引等數(shù)據(jù)結(jié)構(gòu)元素的設(shè)計,包括表、視圖、索引等數(shù)據(jù)結(jié)構(gòu)元素的設(shè)計,以及相應(yīng)的觸發(fā)器、存儲器的設(shè)計。以及相應(yīng)的觸發(fā)器、存儲器的設(shè)計。8.3.2 8.3.2 從類創(chuàng)建表從類創(chuàng)建表 將類轉(zhuǎn)換為表的最簡單做法是一對一映射,即將類轉(zhuǎn)換為表的最簡單做法是一對一映射,即為每一個實體類創(chuàng)建一個表。類中的屬性就是為每一個實體類創(chuàng)建一個表。類中的屬性就是表中的列,類中的關(guān)鍵字就是表的關(guān)鍵字。表中的列,類中的關(guān)鍵字就是表的關(guān)鍵字。 類向表映射示例類向表映射示例類向表映射時應(yīng)注意的事項:類向表映射時應(yīng)注意的事項:(1)注意數(shù)據(jù)類型的轉(zhuǎn)換:要把對象類的屬性數(shù)據(jù)類型)注意數(shù)據(jù)類型的轉(zhuǎn)換:
22、要把對象類的屬性數(shù)據(jù)類型 轉(zhuǎn)換為數(shù)據(jù)庫模型中列的數(shù)據(jù)類型;轉(zhuǎn)換為數(shù)據(jù)庫模型中列的數(shù)據(jù)類型;(2)可導(dǎo)出的屬性數(shù)據(jù),不必作為持久性數(shù)據(jù)映射成表)可導(dǎo)出的屬性數(shù)據(jù),不必作為持久性數(shù)據(jù)映射成表中的列。中的列。(3)從類創(chuàng)建表的過程中,要指定主關(guān)鍵字和外來關(guān)鍵)從類創(chuàng)建表的過程中,要指定主關(guān)鍵字和外來關(guān)鍵字,增加必要的約束條件,如合法輸入值校驗等,做成字,增加必要的約束條件,如合法輸入值校驗等,做成操作函數(shù)列入相應(yīng)的表模型中。操作函數(shù)列入相應(yīng)的表模型中。8.3.3 8.3.3 聯(lián)系的映射聯(lián)系的映射 1. 1. 關(guān)聯(lián)的映射關(guān)聯(lián)的映射(1)(1)類之間的關(guān)聯(lián)是類之間的關(guān)聯(lián)是“一對一一對一”的情形的情形 在
23、向關(guān)系數(shù)據(jù)模型的映射中,可以為每一個類創(chuàng)建在向關(guān)系數(shù)據(jù)模型的映射中,可以為每一個類創(chuàng)建一個表,其中主表的主關(guān)鍵字也是它所關(guān)聯(lián)的表的外一個表,其中主表的主關(guān)鍵字也是它所關(guān)聯(lián)的表的外來關(guān)鍵字。來關(guān)鍵字。(2)(2)類之間的關(guān)聯(lián)是類之間的關(guān)聯(lián)是“一對多一對多”的情形的情形 在向關(guān)系數(shù)據(jù)模型的映射中,可以為每一個類創(chuàng)建在向關(guān)系數(shù)據(jù)模型的映射中,可以為每一個類創(chuàng)建一個表,其中一個表,其中“一一”方表的主關(guān)鍵字也是它所關(guān)聯(lián)的方表的主關(guān)鍵字也是它所關(guān)聯(lián)的“多多”方表的外來關(guān)鍵字。方表的外來關(guān)鍵字。(3)類之間的關(guān)聯(lián)是類之間的關(guān)聯(lián)是“多對多多對多”的情形的情形 在向關(guān)系數(shù)據(jù)模型的映射中,除了為每一個類創(chuàng)建在向
24、關(guān)系數(shù)據(jù)模型的映射中,除了為每一個類創(chuàng)建一個表以外,必須一個表以外,必須創(chuàng)建一個關(guān)聯(lián)表創(chuàng)建一個關(guān)聯(lián)表(Associate Associate TableTable),),實現(xiàn)多對多的關(guān)聯(lián)實現(xiàn)多對多的關(guān)聯(lián)。關(guān)聯(lián)表的作用是把一個。關(guān)聯(lián)表的作用是把一個“多對多多對多” ” 的聯(lián)系轉(zhuǎn)換為兩個的聯(lián)系轉(zhuǎn)換為兩個 “ “一對多一對多”的聯(lián)系,的聯(lián)系,該關(guān)聯(lián)表的主關(guān)鍵字由它所關(guān)聯(lián)的每個表的主關(guān)鍵字該關(guān)聯(lián)表的主關(guān)鍵字由它所關(guān)聯(lián)的每個表的主關(guān)鍵字組成。組成。2.泛化泛化/特化聯(lián)系的映射特化聯(lián)系的映射 對于泛化對于泛化/ /特化聯(lián)系的映射特化聯(lián)系的映射, ,可以有如下可以有如下三種做法三種做法: :(1)(1)為超
25、類和每個子類創(chuàng)建一個表為超類和每個子類創(chuàng)建一個表, ,同時視需同時視需要可為每一個要可為每一個超類超類/ /子類對子類對創(chuàng)建一個視圖創(chuàng)建一個視圖; ;(2)(2)為超類創(chuàng)建一個表為超類創(chuàng)建一個表, ,將子類的所有列信息將子類的所有列信息存入到超類表中存入到超類表中, ,即將表示泛化即將表示泛化/ /特化聯(lián)系特化聯(lián)系的層次結(jié)構(gòu)的層次結(jié)構(gòu)( (繼承繼承) )簡單地轉(zhuǎn)換為一個表。簡單地轉(zhuǎn)換為一個表。(3 3)為每一個子類創(chuàng)建一個表,將超類的所)為每一個子類創(chuàng)建一個表,將超類的所有列信息存入到每個子類表中。有列信息存入到每個子類表中。n當(dāng)當(dāng)采用第二種方法把泛化采用第二種方法把泛化/ /特化關(guān)系映射為關(guān)
26、特化關(guān)系映射為關(guān)系數(shù)據(jù)模型系數(shù)據(jù)模型時時, ,將子類表的所有列信息存入到超將子類表的所有列信息存入到超類表中。如圖類表中。如圖8.158.15所示。所示。n當(dāng)當(dāng)采用第三種方法把泛化采用第三種方法把泛化/ /特化關(guān)系映射為關(guān)特化關(guān)系映射為關(guān)系數(shù)據(jù)模型系數(shù)據(jù)模型時時, , 為每一個子類創(chuàng)建一個表,將為每一個子類創(chuàng)建一個表,將超類的所有列信息存入到每個子類表中。如圖超類的所有列信息存入到每個子類表中。如圖8.168.16所示。所示。3. 聚合聚合/組合聯(lián)系的映射組合聯(lián)系的映射 聚合聚合/ /組合聯(lián)系的映射類似于關(guān)聯(lián)的映射組合聯(lián)系的映射類似于關(guān)聯(lián)的映射, ,可以有如下可以有如下三種做法三種做法: :(
27、1)(1)如果構(gòu)成聚合如果構(gòu)成聚合/ /組合聯(lián)系的超類和子類之間的多重組合聯(lián)系的超類和子類之間的多重性是性是“一對一一對一”的,則可以把超類和子類合并轉(zhuǎn)換的,則可以把超類和子類合并轉(zhuǎn)換為一個表,其中包含超類和子類的全部屬性數(shù)據(jù)。為一個表,其中包含超類和子類的全部屬性數(shù)據(jù)。(2)如果構(gòu)成聚合如果構(gòu)成聚合/ /組合聯(lián)系的超類和子類之間的多重性是組合聯(lián)系的超類和子類之間的多重性是“一對多一對多”的,則可以把超類和子類分別轉(zhuǎn)換為一個表。的,則可以把超類和子類分別轉(zhuǎn)換為一個表。對于聚合,超類相應(yīng)的表和子類相應(yīng)的表之間存在非確對于聚合,超類相應(yīng)的表和子類相應(yīng)的表之間存在非確定性聯(lián)系;對于組合,兩個表之間存
28、在確定性聯(lián)系。定性聯(lián)系;對于組合,兩個表之間存在確定性聯(lián)系。8.3.4 觸發(fā)器與存儲過程觸發(fā)器與存儲過程n觸發(fā)器觸發(fā)器(Trigger)為保證表的數(shù)據(jù)正確性和完為保證表的數(shù)據(jù)正確性和完整性而定義的約束操作。當(dāng)對表中數(shù)據(jù)進行增、刪、整性而定義的約束操作。當(dāng)對表中數(shù)據(jù)進行增、刪、改等操作時,觸發(fā)器可能被自動激發(fā)執(zhí)行。觸發(fā)器改等操作時,觸發(fā)器可能被自動激發(fā)執(zhí)行。觸發(fā)器約束使用構(gòu)造型約束使用構(gòu)造型表示表示,它可以加在一它可以加在一個操作名前面,以表示該操作是一個觸發(fā)器。個操作名前面,以表示該操作是一個觸發(fā)器。n存儲過程存儲過程 (Stored Procedure) 是一種對數(shù)據(jù)庫進行數(shù)據(jù)是一種對數(shù)據(jù)庫
29、進行數(shù)據(jù)操作和運算的程序過程操作和運算的程序過程, ,是經(jīng)過事先編譯的存儲在數(shù)據(jù)庫內(nèi)部是經(jīng)過事先編譯的存儲在數(shù)據(jù)庫內(nèi)部的過程。一個存儲過程可以是依附于某個表的,也可以是獨的過程。一個存儲過程可以是依附于某個表的,也可以是獨立的。立的。 在數(shù)據(jù)庫建模中,一個或多個存儲過程可以組織成存儲過在數(shù)據(jù)庫建模中,一個或多個存儲過程可以組織成存儲過程集,用帶有構(gòu)造型程集,用帶有構(gòu)造型的類圖標(biāo)表示,在其的類圖標(biāo)表示,在其中的操作框中列出每個存儲過程的名稱、參數(shù)和類型,并在中的操作框中列出每個存儲過程的名稱、參數(shù)和類型,并在前面標(biāo)記前面標(biāo)記。8.4 關(guān)系數(shù)據(jù)庫物理設(shè)計關(guān)系數(shù)據(jù)庫物理設(shè)計 主要任務(wù)是創(chuàng)建必需的表空
30、間和數(shù)據(jù)庫,并把它們配主要任務(wù)是創(chuàng)建必需的表空間和數(shù)據(jù)庫,并把它們配置到適當(dāng)?shù)奈锢砉?jié)點上。置到適當(dāng)?shù)奈锢砉?jié)點上。 (1)首先創(chuàng)建表空間首先創(chuàng)建表空間,然后根據(jù)表所存儲的數(shù)據(jù)的特點、,然后根據(jù)表所存儲的數(shù)據(jù)的特點、數(shù)據(jù)量的大小,以及對數(shù)據(jù)存取特性的要求,把全部的數(shù)據(jù)量的大小,以及對數(shù)據(jù)存取特性的要求,把全部的表劃分成幾個組,將每組存入一個或幾個表空間。一個表劃分成幾個組,將每組存入一個或幾個表空間。一個表空間可以存儲多個表,一個表的數(shù)據(jù)也可分散于多個表空間可以存儲多個表,一個表的數(shù)據(jù)也可分散于多個表空間,視具體情況而定。表空間,視具體情況而定。n在表空間的基礎(chǔ)上在表空間的基礎(chǔ)上, ,進一步進一步
31、創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫, ,并且按并且按照實際需要和實現(xiàn)環(huán)境照實際需要和實現(xiàn)環(huán)境, ,考慮將數(shù)據(jù)庫配置在考慮將數(shù)據(jù)庫配置在一個獨立的物理節(jié)點上一個獨立的物理節(jié)點上, ,還是與應(yīng)用系統(tǒng)配置還是與應(yīng)用系統(tǒng)配置在同一個節(jié)點上。在同一個節(jié)點上。8.5 網(wǎng)上書店的關(guān)系數(shù)據(jù)庫設(shè)計n基于基于UMLUML的關(guān)系數(shù)據(jù)庫設(shè)計一般分為的關(guān)系數(shù)據(jù)庫設(shè)計一般分為4 4個階段:個階段:業(yè)務(wù)業(yè)務(wù)Use Case模型設(shè)計模型設(shè)計:就是進行數(shù)據(jù)庫的需求分析,:就是進行數(shù)據(jù)庫的需求分析,使用用例圖等建立業(yè)務(wù)模型。使用用例圖等建立業(yè)務(wù)模型。邏輯數(shù)據(jù)模型設(shè)計邏輯數(shù)據(jù)模型設(shè)計:主要是確定應(yīng)用系統(tǒng)所需要的持:主要是確定應(yīng)用系統(tǒng)所需要的持久數(shù)據(jù)。使用類圖等建立數(shù)據(jù)庫邏輯模型。如果是關(guān)久數(shù)據(jù)。使用類圖等建立數(shù)據(jù)庫邏輯模型。如果是關(guān)系數(shù)據(jù)庫設(shè)計,則需要設(shè)計出表達持久數(shù)據(jù)的實體類系數(shù)據(jù)庫設(shè)計,則需要設(shè)計出表達持久數(shù)據(jù)的實體
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版家居裝修項目審計保密合同2篇
- 2025年桶裝水品牌形象設(shè)計與廣告宣傳合同3篇
- 2025年度鋁合金門窗智能制造生產(chǎn)線合作合同4篇
- 2025年健身體驗課程合同
- 2025年海釣團體船只租賃協(xié)議
- 2025年健康食品配送合同
- 2025年度馬鈴薯種植與農(nóng)業(yè)科技園區(qū)合作開發(fā)合同3篇
- 2025年地下車庫通風(fēng)與照明系統(tǒng)協(xié)議
- 2025年押證不押車汽車抵押貸款擔(dān)保服務(wù)協(xié)議3篇
- 2025年度琉璃工藝品品牌授權(quán)與加盟連鎖經(jīng)營合同3篇
- 人教版高中物理必修一同步課時作業(yè)(全冊)
- 食堂油鍋起火演練方案及流程
- 《呼吸衰竭的治療》
- 有余數(shù)的除法算式300題
- 2024年度醫(yī)患溝通課件
- 2024年中考政治總復(fù)習(xí)初中道德與法治知識點總結(jié)(重點標(biāo)記版)
- 2024年手術(shù)室的應(yīng)急預(yù)案
- 五年級上冊小數(shù)除法豎式計算練習(xí)300題及答案
- 【外資便利店在我國的經(jīng)營策略分析案例:以日本羅森便利店為例11000字(論文)】
- 6061鋁合金退火工藝
- 教師職業(yè)素養(yǎng)與職業(yè)發(fā)展規(guī)劃
評論
0/150
提交評論