【数据库系统】O/R映射
O/R映射
O/R映射,即對(duì)象-關(guān)系映射,指從UML類(lèi)模型映射到RDB模式的設(shè)計(jì),這一映射必須要考慮到關(guān)系模型的限制,難點(diǎn)在于要將類(lèi)圖的描述性語(yǔ)義轉(zhuǎn)換為邏輯模式設(shè)計(jì)中的過(guò)程性解決方案(類(lèi)的某些內(nèi)部描述性語(yǔ)義無(wú)法用關(guān)系模式表示,這些語(yǔ)義只能通過(guò)存儲(chǔ)過(guò)程從過(guò)程上解決)。
映射實(shí)體類(lèi)
實(shí)體類(lèi)到關(guān)系表的映射必須滿足1NF,即列必須是原子的。
由于UML有同樣的限制,所以關(guān)系模型中的這個(gè)限制不是問(wèn)題。
UML的類(lèi)屬性是基于原子數(shù)據(jù)類(lèi)型和一些固有的結(jié)構(gòu)化數(shù)據(jù)類(lèi)型,原子數(shù)據(jù)類(lèi)型取決于目標(biāo)程序設(shè)計(jì)語(yǔ)言,類(lèi)似的結(jié)構(gòu)化數(shù)據(jù)類(lèi)型則得到了RDBMS的支持。
映射關(guān)聯(lián)
關(guān)聯(lián)到RDB的映射涉及表間的參照完整性約束,任何一對(duì)一或一對(duì)多的關(guān)聯(lián)可以通過(guò)直接在表中插入一個(gè)外鍵以匹配另一個(gè)表的主鍵來(lái)實(shí)現(xiàn)。
對(duì)于一對(duì)一關(guān)聯(lián),外鍵可以加給任何一個(gè)表(根據(jù)關(guān)聯(lián)使用的模式來(lái)決定),也可以將兩個(gè)實(shí)體類(lèi)組合為一個(gè)表(取決于所期望的范式化級(jí)別)。
對(duì)于遞歸一對(duì)一關(guān)聯(lián)和一對(duì)多關(guān)聯(lián),外鍵和主鍵都放在同一個(gè)表中。
無(wú)論是否遞歸,每個(gè)多對(duì)多關(guān)聯(lián)都需要一個(gè)交叉表。
映射聚合
除了以過(guò)程方式來(lái)實(shí)現(xiàn)的觸發(fā)器或存儲(chǔ)過(guò)程外,RDB中不區(qū)分關(guān)聯(lián)和聚合。
映射關(guān)聯(lián)的主要原理也適用于映射聚合,只有當(dāng)一個(gè)關(guān)聯(lián)可以轉(zhuǎn)換成多個(gè)組合關(guān)系時(shí),才需要特殊處理聚合的語(yǔ)義。
在組合(強(qiáng)聚合)的情況下,應(yīng)該嘗試將子集和超集實(shí)體類(lèi)組合成一個(gè)表,在一對(duì)一聚合中這是可能的。
對(duì)于一對(duì)多聚合,在強(qiáng)聚合或弱聚合中,必須
總結(jié)
以上是生活随笔為你收集整理的【数据库系统】O/R映射的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Servlet】Servlet生命周期
- 下一篇: 【程序设计】接口在软件开发中的普遍用法