UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第12章 數(shù)據(jù)庫(kù)設(shè)計(jì)_第1頁(yè)
UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第12章 數(shù)據(jù)庫(kù)設(shè)計(jì)_第2頁(yè)
UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第12章 數(shù)據(jù)庫(kù)設(shè)計(jì)_第3頁(yè)
UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第12章 數(shù)據(jù)庫(kù)設(shè)計(jì)_第4頁(yè)
UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第12章 數(shù)據(jù)庫(kù)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

UML系統(tǒng)分析與設(shè)計(jì)SystemAnalysis&Design第十二章數(shù)據(jù)庫(kù)設(shè)計(jì)持久性數(shù)據(jù)庫(kù)層對(duì)象數(shù)據(jù)庫(kù)模型對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型關(guān)系數(shù)據(jù)庫(kù)模型UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi2數(shù)據(jù)庫(kù)設(shè)計(jì)在UML中,類圖定義了應(yīng)用程序所需要的數(shù)據(jù)結(jié)構(gòu),用實(shí)體類以及實(shí)體類之間的關(guān)系來(lái)為數(shù)據(jù)庫(kù)中持久存在的數(shù)據(jù)結(jié)構(gòu)建模。因此,需要將實(shí)體類映射為可以被數(shù)據(jù)庫(kù)識(shí)別的數(shù)據(jù)結(jié)構(gòu)。如何將實(shí)體類、關(guān)聯(lián)關(guān)系、聚合關(guān)系、類屬關(guān)系轉(zhuǎn)變?yōu)?種數(shù)據(jù)庫(kù)(面向?qū)ο笮汀?duì)象關(guān)系型、關(guān)系型數(shù)據(jù)庫(kù))模型中的數(shù)據(jù)結(jié)構(gòu)?UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi3持久性數(shù)據(jù)庫(kù)層數(shù)據(jù)模型數(shù)據(jù)模型(DataModel)是以比原始的位和字節(jié)更易理解的方式描述數(shù)據(jù)庫(kù)結(jié)構(gòu)的抽象。通用的數(shù)據(jù)模型層分類法認(rèn)可3種抽象。概念數(shù)據(jù)模型概念數(shù)據(jù)模型是面向用戶、面向現(xiàn)實(shí)世界的數(shù)據(jù)模型邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型提供的模型反應(yīng)了數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS的存儲(chǔ)結(jié)構(gòu),它是用戶從數(shù)據(jù)庫(kù)所看到的數(shù)據(jù)模型。物理數(shù)據(jù)模型物理數(shù)據(jù)模型定義了實(shí)際應(yīng)用中數(shù)據(jù)是如何存儲(chǔ)于持久存儲(chǔ)設(shè)備(如磁盤)中的。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi4持久性數(shù)據(jù)庫(kù)層UML模型與持久數(shù)據(jù)庫(kù)層UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi5對(duì)象數(shù)據(jù)庫(kù)模型ODB建模原語(yǔ)對(duì)象數(shù)據(jù)庫(kù)模型的基本建?;菍?duì)象和字面量。每個(gè)對(duì)象都有個(gè)對(duì)象標(biāo)識(shí)符,字面量沒(méi)有對(duì)象標(biāo)識(shí)符。ODB區(qū)分類(Class)和類型(Type),一個(gè)類型可以有多個(gè)類。例如,類“Tiger”和類“Lion”都實(shí)現(xiàn)了接口“Animal”,它們的類型都是“Animal”。ODB類可以有特性(Properties)和操作,特性可以是屬性(Attribute)或關(guān)系(Relationship),即連接該對(duì)象與其他對(duì)象的屬性。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi6對(duì)象數(shù)據(jù)庫(kù)模型ODB建模原語(yǔ)1.字面量和對(duì)象類型字面量可以分為以下3種類型:(1)原子字面量(AtomicLiterals)。(2)結(jié)構(gòu)化字面量(StructuredLiterals)。(3)集字面量(CollectionLiterals)。對(duì)象類型可以分為以下3種類型。(1)原子對(duì)象。(2)結(jié)構(gòu)化對(duì)象。(3)集(如set<Person>,Person是一個(gè)類)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi7對(duì)象數(shù)據(jù)庫(kù)模型ODB建模原語(yǔ)2.關(guān)系對(duì)于關(guān)聯(lián)關(guān)系、聚合關(guān)系和類屬關(guān)系這3種關(guān)系,ODB模型可直接支持關(guān)聯(lián)關(guān)系和類屬關(guān)系,聚合關(guān)系則通過(guò)約束關(guān)聯(lián)來(lái)支持。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi8對(duì)象數(shù)據(jù)庫(kù)模型ODB建模原語(yǔ)3.ISA和EXTENDS繼承ODMG對(duì)象模型定義了兩種類屬關(guān)系,即ISA關(guān)系和EXTENDS關(guān)系。其中,ISA關(guān)系對(duì)應(yīng)于早期的接口繼承(InterfaceInheritance),EXTENDS關(guān)系對(duì)應(yīng)于實(shí)現(xiàn)繼承(Implemen-tationInheritance)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi9對(duì)象數(shù)據(jù)庫(kù)模型映射到ODB1.映射實(shí)體類理論上,UML沒(méi)有禁止設(shè)計(jì)者通過(guò)定義新類(在分析階段)和使用模板(在設(shè)計(jì)階段)來(lái)擴(kuò)充類型系統(tǒng)。但在實(shí)踐中,為了避免UML中次要類的激增,只有當(dāng)實(shí)現(xiàn)平臺(tái)支持可擴(kuò)充的類型系統(tǒng)、內(nèi)建的結(jié)構(gòu)化類型、集類型時(shí),設(shè)計(jì)者才這樣做。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi10對(duì)象數(shù)據(jù)庫(kù)模型將實(shí)體類映射到ODB設(shè)計(jì)UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi11對(duì)象數(shù)據(jù)庫(kù)模型映射到ODB2.映射關(guān)聯(lián)在UML模型中,類之間的關(guān)聯(lián)允許類對(duì)象之間的導(dǎo)航,這正是對(duì)象數(shù)據(jù)庫(kù)所擅長(zhǎng)的,即由永久對(duì)象標(biāo)識(shí)符連接的對(duì)象之間的導(dǎo)航。在映射過(guò)程中,可對(duì)設(shè)計(jì)進(jìn)行優(yōu)化,將一些UML屬性或UML類模擬為ODB接口,從而將這些接口用作ODB類的屬性的類型。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi12對(duì)象數(shù)據(jù)庫(kù)模型關(guān)聯(lián)的映射UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi13對(duì)象數(shù)據(jù)庫(kù)模型映射到ODB3.映射聚合UML的聚合有兩種語(yǔ)義,即具有引用語(yǔ)義的聚合(Aggregation)和具有值語(yǔ)義的組合(Composition)。在數(shù)據(jù)庫(kù)中,聚合被模擬為關(guān)聯(lián)或嵌套屬性。如果要加入特別的聚合語(yǔ)義,則需通過(guò)過(guò)程的方式(在程序中)實(shí)現(xiàn),而不是通過(guò)聲明的方式(在數(shù)據(jù)結(jié)構(gòu)中)實(shí)現(xiàn)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi14對(duì)象數(shù)據(jù)庫(kù)模型聚合關(guān)系和組合關(guān)系UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi15對(duì)象數(shù)據(jù)庫(kù)模型映射到ODB4.映射類屬?gòu)腢ML類屬關(guān)系到ODB的ISA和EXTENDS關(guān)系的映射基本上是“一對(duì)一”的,接口繼承用ISA關(guān)系來(lái)模擬,類繼承用EXTENDS關(guān)系來(lái)模擬。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi16對(duì)象數(shù)據(jù)庫(kù)模型類屬關(guān)系的映射UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi17對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型對(duì)象關(guān)系數(shù)據(jù)庫(kù)(Object-RelationalDatabaseMode,ORDBM)合并了老式關(guān)系模型數(shù)據(jù)庫(kù)和新式對(duì)象模型數(shù)據(jù)庫(kù),使得對(duì)象關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(Object-RelationalDatabaseManagementSystem,ORDBMS)既能處理關(guān)系數(shù)據(jù)結(jié)構(gòu)(關(guān)系表),又能處理對(duì)象數(shù)據(jù)結(jié)構(gòu)(對(duì)象表)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi18對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型ORDB建模原語(yǔ)ORDB建模原語(yǔ)由對(duì)象建模原語(yǔ)和關(guān)系建模原語(yǔ)組成。主要的對(duì)象建模原語(yǔ)是用戶定義的結(jié)構(gòu)化類型(StructuredType),該類型對(duì)應(yīng)于ODB的“Interface”概念和UML的“Class”概念。ORDB的存儲(chǔ)機(jī)制是表(Table),表的列代表了可以接受用戶定義的結(jié)構(gòu)化類型的值。為了與常規(guī)的關(guān)系表相區(qū)別,在ORDBMS實(shí)現(xiàn)中將這樣的表稱為對(duì)象表(ObjectTable)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi19對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型ORDB建模原語(yǔ)1.結(jié)構(gòu)化類型ORDB表的列可以接受內(nèi)建類型或用戶定義類型的值,ORDB的內(nèi)建類型的功能類似于ODB的內(nèi)建類型的功能。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi20對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型ORDB建模原語(yǔ)2.對(duì)象表(ObjectTable)對(duì)象表是具有一個(gè)或多個(gè)列的行的集合。行是行類型的實(shí)例,對(duì)象表中的每一行都是由一個(gè)OID唯一標(biāo)識(shí)的對(duì)象。行是可以插入表中或從表中刪除的數(shù)據(jù)的最小單位。為了快速區(qū)別對(duì)象類型和對(duì)象表,建議結(jié)構(gòu)化后的類型名使用后綴TY。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi21對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型ORDB建模原語(yǔ)3.行類型(RowType)行類型允許表在沒(méi)有使用結(jié)構(gòu)化類型或集類型的情況下,具有相當(dāng)復(fù)雜的內(nèi)部結(jié)構(gòu)。行類型是域的序列(即<域名><數(shù)據(jù)類型>對(duì))。實(shí)際上,行類型允許將一個(gè)表嵌入到另一個(gè)表中,且表中的列可以含有行值。從數(shù)據(jù)庫(kù)編程的角度來(lái)說(shuō),行類型允許將完整的行存儲(chǔ)到變量中,允許將完整的行作為操作的輸入?yún)?shù)進(jìn)行傳遞,還允許將完整的行作為操作的輸出參數(shù)或返回值進(jìn)行返回。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi22對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型ORDB建模原語(yǔ)4.引用類型(ReferenceType)結(jié)構(gòu)化類型可以用來(lái)定義引用類型,用關(guān)鍵字“ref”來(lái)定義引用。例如,studref(StudentTY)就表示對(duì)象表中一個(gè)對(duì)結(jié)構(gòu)化類型的引用。在SQL:1999中,引用類型是有作用域的,即它們引用的表在編譯時(shí)是確定的。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi23對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型ORDB建模原語(yǔ)5.OF和UNDER繼承SQL:1999允許為已存在類型創(chuàng)建子類型,目前,SQL:1999只支持單一的實(shí)現(xiàn)繼承。對(duì)應(yīng)于類型層次結(jié)構(gòu),可創(chuàng)建表層次結(jié)構(gòu)。也就是說(shuō),為超類型創(chuàng)建超表,為子類型創(chuàng)建子表。但有時(shí)候,在表層次結(jié)構(gòu)中有可能忽略類型層次結(jié)構(gòu)中的類型UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi24對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型ORDB中的繼承UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi25映射到ORDB1.映射實(shí)體類(EntityClass)UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi26對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型映射到ORDB2.映射關(guān)聯(lián)(Association)UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi27對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型映射到ORDB3.映射聚合(Aggregation)UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi28對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型映射到ORDB4.映射類屬(Generalization)UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi29對(duì)象關(guān)系數(shù)據(jù)庫(kù)模型關(guān)系數(shù)據(jù)庫(kù)模型在過(guò)去的20年,關(guān)系數(shù)據(jù)庫(kù)模型(RelationalDatabaseModel)已經(jīng)基本占領(lǐng)了數(shù)據(jù)庫(kù)軟件市場(chǎng),關(guān)系數(shù)據(jù)庫(kù)模型已經(jīng)取代了分層數(shù)據(jù)庫(kù)(HierarchicalDatabase)和網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(NetworkDatabase)模型。最后的關(guān)系數(shù)據(jù)庫(kù)模型標(biāo)準(zhǔn)是SQL92,它是1992年得到ANSI和ISO的批準(zhǔn)而發(fā)布的。市場(chǎng)上所有重要的RDBMS產(chǎn)品(包括Oracle、DB2、Sybase、Informix、SQLServer等)都遵守這一標(biāo)準(zhǔn),雖然其方式各不相同。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi30關(guān)系數(shù)據(jù)庫(kù)模型RDB建模原語(yǔ)1.列、域和規(guī)則關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)存儲(chǔ)在由行和列組成的表中。其中存儲(chǔ)在行列交叉點(diǎn)的數(shù)據(jù)值必須是不可分的、單一的值,也就是說(shuō),列具有原子域(數(shù)據(jù)類型)。域定義了列可以接受的合法的值集,域可以是匿名的(如namevarchar(40))也可以是有名的(如nameName),域Name在用來(lái)定義列“name”之前已經(jīng)定義過(guò)了。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi31關(guān)系數(shù)據(jù)庫(kù)模型RDB建模原語(yǔ)2.關(guān)系表關(guān)系表是由它的固定列集定義的,列具有內(nèi)建的或用戶定義的類型。表可以有任意多行,但沒(méi)有重復(fù)的行。特定行的列值可以是Null,Null值意味著“值目前不知道”或“值不適用”。由于RDB模型要求“沒(méi)有重復(fù)行”,因此每個(gè)表都有一個(gè)主鍵(PrimaryKey)。一個(gè)表可以有多個(gè)鍵,任意選擇這些鍵中的一個(gè)作為對(duì)用戶最重要的主鍵,其他的鍵則被稱為備用鍵(AlternateKeys)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi32RDB建模原語(yǔ)3.引用完整性(ReferentialIntegrity)RDB模型通過(guò)引用完整性約束來(lái)維護(hù)表之間的關(guān)系。這種表之間關(guān)系不是固定的行到行的連接,而是每當(dāng)用戶請(qǐng)求系統(tǒng)發(fā)現(xiàn)關(guān)系時(shí),RDB才去發(fā)現(xiàn)行到行的連接。這種發(fā)現(xiàn)是通過(guò)比較一個(gè)表的主鍵值與該表或另一個(gè)表的外鍵值來(lái)實(shí)現(xiàn)的。外鍵(ForeignKey)被定義為表中的列的集合,其值為Null,或者通過(guò)匹配同一個(gè)表中或另一個(gè)表中的主鍵值所得。主、外鍵的一致性被稱作引用完整性,引用完整性中的主鍵和外鍵必須是基于同一個(gè)域定義的,但可以有不同的名字。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi33關(guān)系數(shù)據(jù)庫(kù)模型引用完整性UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi34關(guān)系數(shù)據(jù)庫(kù)模型RDB建模原語(yǔ)4.范式(NormalForms)RDB設(shè)計(jì)中一個(gè)最重要、但同時(shí)最不容易被理解的概念就是規(guī)范化。關(guān)系表必須是范式(NormalForm,NF),范式被分為以下6種。第一范式。第二范式。第三范式。BC范式(Boyce-Codd范式)。第四范式。第五范式。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi35關(guān)系數(shù)據(jù)庫(kù)模型映射到RDB如同ODB和ORDB模型一樣,RDB設(shè)計(jì)也可以用UML衍型和其他擴(kuò)充機(jī)制來(lái)模擬。從UML類模型到RDB模式設(shè)計(jì)的映射需考慮RDB模型的局限性,即在關(guān)系模式中表達(dá)類的一些內(nèi)建的聲明式語(yǔ)義是不可能存在的,這樣的語(yǔ)義必須在數(shù)據(jù)庫(kù)程序中解決。1.映射實(shí)體類(EntityClass)實(shí)體類到關(guān)系表的映射必須遵循表的第一范式,列必須是原子的。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi36關(guān)系數(shù)據(jù)庫(kù)模型映射實(shí)體類UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi37關(guān)系數(shù)據(jù)庫(kù)模型映射到RDB2.映射關(guān)聯(lián)(Association)將關(guān)聯(lián)映射到RDB的過(guò)程涉及了表之間引用完整性約束的使用。任何“一對(duì)一”或“一對(duì)多”的關(guān)聯(lián)都可以通過(guò)在一個(gè)表中插入一個(gè)外鍵來(lái)匹配另一個(gè)表中的主鍵來(lái)表達(dá)。對(duì)于“一對(duì)一”關(guān)聯(lián),可以將外鍵添加到其中任何一個(gè)表中,也可將兩個(gè)實(shí)體類合并在一個(gè)表中(取決于想達(dá)到的規(guī)范化水平)。對(duì)于遞歸的“一對(duì)一”或“一對(duì)多”關(guān)聯(lián),外鍵和主鍵位于同一個(gè)表中。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi38關(guān)系數(shù)據(jù)庫(kù)模型映射關(guān)聯(lián)UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi39關(guān)系數(shù)據(jù)庫(kù)模型映射到RDB3.映射聚合(Aggregation)關(guān)聯(lián)映射的主要原理也適用于聚合映射。對(duì)于強(qiáng)形式聚合——組合(具有引用語(yǔ)義的聚合被看作是弱形式的聚合,具有值語(yǔ)義的組合則被看作是強(qiáng)形式的聚合),應(yīng)該將子集和超集實(shí)體類組合到一張表中。這對(duì)于“一對(duì)一”的聚合是可能的,但對(duì)于“一對(duì)多”的聚合,子集類(無(wú)論是強(qiáng)形式聚合還是弱形式聚合)則必須被模擬為一個(gè)單獨(dú)的表(用一個(gè)外鍵將它和它的超集類的表連接起來(lái))。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi40關(guān)系數(shù)據(jù)庫(kù)模型映射聚合UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi41關(guān)系數(shù)據(jù)庫(kù)模型映射到RDB

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論