版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件建模與分析
2015.9-2015.10
計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)與軟件工程專業(yè)第三部分:設(shè)計(jì)篇軟件建模與分析數(shù)據(jù)接口部分是OOD模型中負(fù)責(zé)與具體的數(shù)據(jù)管理系統(tǒng)銜接的外圍組成部分,它為系統(tǒng)中需要長(zhǎng)久存儲(chǔ)的對(duì)象提供了在選定的數(shù)據(jù)管理系統(tǒng)中進(jìn)行數(shù)據(jù)存儲(chǔ)與恢復(fù)的功能。問題范圍:對(duì)象在永久性存儲(chǔ)介質(zhì)上的存儲(chǔ)只須存儲(chǔ)對(duì)象的屬性部分可能只有一部分對(duì)象需要長(zhǎng)久存儲(chǔ)11.1什么是數(shù)據(jù)接口部分大部分實(shí)用的系統(tǒng)都要處理數(shù)據(jù)的持久存儲(chǔ)問題數(shù)據(jù)保存于永久性存儲(chǔ)介質(zhì)在數(shù)據(jù)管理系統(tǒng)的支持下實(shí)現(xiàn)其存儲(chǔ)、檢索和維護(hù)
在面向?qū)ο蟮南到y(tǒng)中,數(shù)據(jù)的存儲(chǔ)表現(xiàn)為對(duì)象存儲(chǔ)不同的數(shù)據(jù)管理系統(tǒng):文件系統(tǒng)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)面向?qū)ο蟮臄?shù)據(jù)庫管理系統(tǒng)——各有不同的數(shù)據(jù)定義方式和數(shù)據(jù)操縱方式針對(duì)不同的數(shù)據(jù)管理系統(tǒng),需要做不同設(shè)計(jì)根據(jù)所選用的數(shù)據(jù)管理系統(tǒng)特點(diǎn),設(shè)計(jì)一些專門處理其它對(duì)象的持久存儲(chǔ)問題的對(duì)象組織成一個(gè)獨(dú)立的組成部分——數(shù)據(jù)接口部分優(yōu)點(diǎn):集中解決對(duì)象存儲(chǔ)問題隔離數(shù)據(jù)管理系統(tǒng)對(duì)其它部分的影響選用不同的數(shù)據(jù)管理系統(tǒng)時(shí),問題域部分變化較少人機(jī)交互部分控制驅(qū)動(dòng)部分問題域部分?jǐn)?shù)據(jù)接口部分文件系統(tǒng)數(shù)據(jù)接口部分文件系統(tǒng)數(shù)據(jù)接口部分關(guān)系型DBMS數(shù)據(jù)接口部分OO-DBMS14.2數(shù)據(jù)管理系統(tǒng)及其選擇數(shù)據(jù)管理系統(tǒng)——實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、檢索、管理與維護(hù)的系統(tǒng)包括文件系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)兩大類文件系統(tǒng)filesystem關(guān)系型數(shù)據(jù)庫管理系統(tǒng)RDBMS面向?qū)ο蟮臄?shù)據(jù)庫管理系統(tǒng)OODBMS(一)文件系統(tǒng)通常是操作系統(tǒng)的一部分管理外存空間的文件數(shù)據(jù)提供存儲(chǔ)、檢索、更新、共享和保護(hù)等功能文件結(jié)構(gòu)物理結(jié)構(gòu)文件數(shù)據(jù)在存儲(chǔ)空間的存放方法和組織關(guān)系
邏輯結(jié)構(gòu)呈現(xiàn)給用戶的文件結(jié)構(gòu)如流式結(jié)構(gòu)、記錄式結(jié)構(gòu)等文件系統(tǒng)提供的支持在人機(jī)界面上進(jìn)行操作的系統(tǒng)命令在程序中使用的廣義指令創(chuàng)建、刪除、打開、關(guān)閉、讀、寫、控制等
編程語言可以提供更方便的文件定義與使用方式優(yōu)點(diǎn):廉價(jià),容易學(xué)習(xí)和掌握,對(duì)數(shù)據(jù)類型沒有限制
缺點(diǎn):功能貧乏、低級(jí)不容易體現(xiàn)數(shù)據(jù)之間的關(guān)系只能按地址或者記錄讀寫,不能按屬性進(jìn)行數(shù)據(jù)檢索與更新缺少數(shù)據(jù)完整性支持?jǐn)?shù)據(jù)共享支持薄弱文件系統(tǒng)的優(yōu)缺點(diǎn)(二)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫:長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織、可共享的數(shù)據(jù)集合。其中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有較小的冗余度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。數(shù)據(jù)庫管理系統(tǒng)(DBMS):用于建立、使用和維護(hù)數(shù)據(jù)庫的軟件。它對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性數(shù)據(jù)模型:描述如何在數(shù)據(jù)庫中定義數(shù)據(jù)及其操作,內(nèi)容包括:實(shí)體及實(shí)體間聯(lián)系的數(shù)據(jù)結(jié)構(gòu)描述,對(duì)數(shù)據(jù)的操作,完整性約束不同的數(shù)據(jù)庫基于不同的數(shù)據(jù)模型網(wǎng)狀數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫面向?qū)ο蟮臄?shù)據(jù)庫層次數(shù)據(jù)庫基于網(wǎng)狀數(shù)據(jù)模型基于層次數(shù)據(jù)模型基于關(guān)系數(shù)據(jù)模型基于面向?qū)ο髷?shù)據(jù)模型1、關(guān)系數(shù)據(jù)庫管理系統(tǒng)RDBMS關(guān)系模型給定一組域D1,D2,…,Dn其笛卡爾積D1×D2×…×Dn的一個(gè)子集就是一個(gè)關(guān)系,又稱二維表
基本要求:關(guān)系的每個(gè)屬性必須是原子的
數(shù)據(jù)的組織:用二維表組織各類數(shù)據(jù)既可存放描述實(shí)體自身特征的數(shù)據(jù)也可存放描述實(shí)體之間聯(lián)系的數(shù)據(jù)每一列稱作一個(gè)屬性每一行稱作一個(gè)元組數(shù)據(jù)的運(yùn)算:提供并、交、差等集合運(yùn)算.以及選取、投影、聯(lián)結(jié)等操作
關(guān)系數(shù)據(jù)庫術(shù)語對(duì)照數(shù)據(jù)庫專業(yè)術(shù)語開發(fā)者的習(xí)慣術(shù)語用戶習(xí)慣術(shù)語關(guān)系relation文件file表table元組tuple記錄record行row屬性attribute字段,域field列column2、面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)OODBMS采用面向?qū)ο髷?shù)據(jù)模型的數(shù)據(jù)庫管理系統(tǒng)
背景:越來越多的系統(tǒng)用OO技術(shù)開發(fā)(采用OO數(shù)據(jù)模型)RDBMS的局限性(采用關(guān)系數(shù)據(jù)模型)不能直接、有效地組織和存儲(chǔ)對(duì)象數(shù)據(jù),需要對(duì)數(shù)據(jù)模式進(jìn)行轉(zhuǎn)換,并提供相應(yīng)的接口因此出現(xiàn)了面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)——OODBMSOODBMS的特征:是面向?qū)ο蟮模褐С謱?duì)象、類、對(duì)象標(biāo)識(shí)、對(duì)象的屬性與操作、封裝、繼承、聚合、關(guān)聯(lián)、多態(tài)等OO概念。具有數(shù)據(jù)庫管理系統(tǒng)的功能:數(shù)據(jù)定義與操縱語言、完整性保障、安全機(jī)制,并發(fā)控制、故障恢復(fù)、事務(wù)運(yùn)行管理、可擴(kuò)充三種類型的OODBMS產(chǎn)品1)在OOPL基礎(chǔ)上增加數(shù)據(jù)庫管理系統(tǒng)的功能例如:GemStone
和ObjectStore2)對(duì)RDBMS進(jìn)行擴(kuò)充,使之支持面向?qū)ο髷?shù)據(jù)模型并向用戶提供面向?qū)ο蟮膽?yīng)用程序接口例如:Iris
和POSTGRES3)“全新的”O(jiān)ODBMS即按照面向?qū)ο髷?shù)據(jù)模型進(jìn)行全新的設(shè)計(jì)例如:O2
和DAMOKLES
目前狀況:理論和技術(shù)上都有待完善(三)數(shù)據(jù)管理系統(tǒng)的選擇理論上OODBMS最適合用OO方法開發(fā)的系統(tǒng)實(shí)際上要權(quán)衡技術(shù)和非技術(shù)兩方面的因素非技術(shù)因素與項(xiàng)目的成本、工期、風(fēng)險(xiǎn)、宏觀計(jì)劃有關(guān)的問題產(chǎn)品的成熟性和先進(jìn)性價(jià)格開發(fā)隊(duì)伍的技術(shù)背景與其它系統(tǒng)的關(guān)系技術(shù)因素考慮各種數(shù)據(jù)管理系統(tǒng)適應(yīng)哪些情況,不適應(yīng)哪些情況文件系統(tǒng)的適應(yīng)性優(yōu)點(diǎn):可儲(chǔ)任何類型的數(shù)據(jù),包括具有復(fù)雜內(nèi)部結(jié)構(gòu)的數(shù)據(jù)和圖形、圖象、視頻、音頻等多媒體數(shù)據(jù)。以類和對(duì)象的形式定義的數(shù)據(jù)都可以用文件存儲(chǔ)適應(yīng):數(shù)據(jù)類型復(fù)雜,但對(duì)數(shù)據(jù)存取、數(shù)據(jù)共享、數(shù)據(jù)完整性維護(hù)、故障恢復(fù)、事務(wù)處理等功能要求不高的應(yīng)用系統(tǒng);缺點(diǎn):操作低級(jí);數(shù)據(jù)操縱功能貧乏;缺少數(shù)據(jù)完整性支持;缺少多用戶及多應(yīng)用共享、故障恢復(fù)、事務(wù)處理等功能不適應(yīng):數(shù)據(jù)操縱復(fù)雜、多樣,數(shù)據(jù)共享及數(shù)完整性維護(hù)要求較高的系統(tǒng)。關(guān)系數(shù)據(jù)庫管理系統(tǒng)的適應(yīng)性優(yōu)點(diǎn):對(duì)數(shù)據(jù)存取、數(shù)據(jù)共享、數(shù)據(jù)完整性維護(hù)、故障恢復(fù)、事務(wù)處理等功能提供強(qiáng)有力的支持適應(yīng):對(duì)這些功能要求較高的應(yīng)用系統(tǒng),以及需大量保存和管理各類實(shí)體之間關(guān)系信息的應(yīng)用系統(tǒng)問題:關(guān)系數(shù)據(jù)模型對(duì)數(shù)據(jù)模式的限制較多當(dāng)對(duì)象的內(nèi)部結(jié)構(gòu)較為復(fù)雜時(shí),就不能直接地與關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模式相匹配,需要經(jīng)過轉(zhuǎn)換更不適合圖形、圖象、音頻、視頻等多媒體數(shù)據(jù)和經(jīng)過壓縮處理的數(shù)據(jù)文件系統(tǒng)和RDBMS的優(yōu)點(diǎn)和缺點(diǎn)形成了明顯對(duì)照但是對(duì)二者的選擇卻未必互相排斥,有時(shí)它們是互補(bǔ)的。某些應(yīng)用系統(tǒng)可能同時(shí)采用RDBMS和文件系統(tǒng),分別存儲(chǔ)各自所適合的數(shù)據(jù)。面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)的適應(yīng)性從純技術(shù)的角度看,對(duì)用OO方法開發(fā)的系統(tǒng)采用OODBMS是最合理的選擇,幾乎沒有不適合的情況。如果某些項(xiàng)目不適合,主要是由于非技術(shù)因素,而不是技術(shù)因素各種OODBMS采用的對(duì)象模型多少有些差異,與用戶選用的OOA&D方法及OOPL中的匹配程度不盡一致,功能也各有區(qū)別,對(duì)不同的應(yīng)用系統(tǒng)有不同的適應(yīng)性14.3對(duì)象存儲(chǔ)方案和數(shù)據(jù)接口的設(shè)計(jì)策略針對(duì)三種數(shù)據(jù)管理系統(tǒng)文件系統(tǒng)RDBMSOODBMS對(duì)象存儲(chǔ)方案——如何把對(duì)象映射到數(shù)據(jù)管理系統(tǒng)數(shù)據(jù)接口部分的設(shè)計(jì)策略——如何設(shè)計(jì)數(shù)據(jù)接口部分的對(duì)象類分別討論如何對(duì)問題域部分做必要的修改(一)針對(duì)文件系統(tǒng)的設(shè)計(jì)應(yīng)用系統(tǒng)數(shù)據(jù)接口…文件系統(tǒng)對(duì)象對(duì)象對(duì)象1、對(duì)象在內(nèi)存空間和文件空間的映像如何看待用文件系統(tǒng)存儲(chǔ)對(duì)象應(yīng)用系統(tǒng)仍然是面向?qū)ο蟮闹皇怯梦募到y(tǒng)存儲(chǔ)對(duì)象的數(shù)據(jù)從應(yīng)用系統(tǒng)的對(duì)象到文件記錄的不同映射方式類A對(duì)象1數(shù)據(jù)接口實(shí)例化…記錄1記錄2…記錄n對(duì)象2對(duì)象n內(nèi)存空間文件系統(tǒng)文件A一一對(duì)應(yīng)的映射方式類A數(shù)據(jù)接口實(shí)例化記錄1記錄2…記錄n對(duì)象內(nèi)存空間文件系統(tǒng)文件A非一一對(duì)應(yīng)的映射方式2、對(duì)象在文件中的存放策略1)基本策略把由每個(gè)類直接定義、需要持久存儲(chǔ)的全部對(duì)象實(shí)例存放在一個(gè)文件中;每個(gè)對(duì)象實(shí)例的全部屬性作為一個(gè)存儲(chǔ)單元,占用該文件的一個(gè)記錄。如何理解“由一個(gè)類直接定義的”對(duì)象實(shí)例另一種策略——一個(gè)結(jié)構(gòu)用一個(gè)文件浪費(fèi)空間模糊了對(duì)象分類關(guān)系使操作復(fù)雜化人員姓名············教職工職稱專業(yè)············研究生學(xué)號(hào)班級(jí)專業(yè)············在職研究生在職單位
············例:2)提高檢索效率
——在對(duì)象和文件記錄之間建立有規(guī)律的映射關(guān)系對(duì)象名或關(guān)鍵字呈線性規(guī)律按對(duì)象名或關(guān)鍵字的順序形成文件記錄給出對(duì)象名稱或關(guān)鍵字,快速地計(jì)算出它的存放位置
對(duì)象名稱或關(guān)鍵字可以比較和排序按關(guān)鍵字順序安排記錄,檢索時(shí)采用折半查找法建立按對(duì)象名稱或者按關(guān)鍵字排序的索引表,通過該表中的記錄指針找到相應(yīng)的記錄其他措施如散列表、倒排表、二叉排序樹等等3、設(shè)計(jì)數(shù)據(jù)接口部分的對(duì)象類對(duì)象存取器對(duì)象存儲(chǔ)對(duì)象恢復(fù)類名-文件名對(duì)照表負(fù)責(zé)對(duì)象的存儲(chǔ)與恢復(fù)換算型對(duì)象存取器*對(duì)象存儲(chǔ)*對(duì)象恢復(fù)查找型對(duì)象存取器*對(duì)象存儲(chǔ)*對(duì)象恢復(fù)索引型對(duì)象存取器*對(duì)象存儲(chǔ)*對(duì)象恢復(fù)索引表查記錄指針文件記錄索引特殊類提供不同的查找功能4、問題域部分的修改…………類B……………………類D…………問題域部分?jǐn)?shù)據(jù)接口部分類A類C對(duì)象存取器…………每個(gè)持久對(duì)象類都要增加請(qǐng)求存儲(chǔ)和恢復(fù)所需的屬性和操作,以便向數(shù)據(jù)接口部分發(fā)出請(qǐng)求類名……請(qǐng)求保存請(qǐng)求恢復(fù)……類名……請(qǐng)求保存請(qǐng)求恢復(fù)……類名……請(qǐng)求保存請(qǐng)求恢復(fù)……持久對(duì)象請(qǐng)求保存請(qǐng)求恢復(fù)……類名……增加一個(gè)一般類來定義它們,作為共同協(xié)議,供所有的持久對(duì)象類繼承(二)針對(duì)RDBMS的設(shè)計(jì)應(yīng)用系統(tǒng)數(shù)據(jù)接口…RDBMS對(duì)象對(duì)象對(duì)象1、對(duì)象及其對(duì)數(shù)據(jù)庫的使用如何看待用RDBMS存儲(chǔ)對(duì)象應(yīng)用系統(tǒng)仍然是面向?qū)ο蟮闹皇怯藐P(guān)系數(shù)據(jù)庫存儲(chǔ)對(duì)象的數(shù)據(jù)關(guān)系數(shù)據(jù)庫從應(yīng)用系統(tǒng)的對(duì)象到數(shù)據(jù)庫表元組的不同映射方式類A對(duì)象1實(shí)例化…元組1元組2…元組n對(duì)象2對(duì)象n內(nèi)存空間數(shù)據(jù)庫表A一一對(duì)應(yīng)的映射方式數(shù)據(jù)接口RDBMS類A數(shù)據(jù)接口實(shí)例化元組1元組2…元組n對(duì)象內(nèi)存空間數(shù)據(jù)庫表A非一一對(duì)應(yīng)的映射方式RDBMS使用RDBMS和使用文件系統(tǒng)的不同(1)系統(tǒng)以不同方式使用數(shù)據(jù)庫中的數(shù)據(jù)存儲(chǔ)對(duì)象或使用其普通數(shù)據(jù)——原因:數(shù)據(jù)庫的共享性(2)可能需要數(shù)據(jù)格式轉(zhuǎn)換原因:關(guān)系數(shù)據(jù)庫對(duì)規(guī)范化的要求對(duì)象從數(shù)據(jù)庫獲得其他數(shù)據(jù)關(guān)系數(shù)據(jù)庫
應(yīng)用系統(tǒng)對(duì)象數(shù)據(jù)接口對(duì)象…RDBMS對(duì)象對(duì)象保存與恢復(fù)2、對(duì)象在數(shù)據(jù)庫中的存放策略對(duì)象數(shù)據(jù)的規(guī)范化修改類圖確定關(guān)鍵字從類圖映射到數(shù)據(jù)庫表類→表類的屬性→表的屬性對(duì)象實(shí)例→行對(duì)一般-特殊結(jié)構(gòu)、整體-部分結(jié)構(gòu)、關(guān)聯(lián)等OO概念的處理第一范式(1NF):關(guān)系(表)的每個(gè)屬性都必須是原子的。就是說,關(guān)系的每個(gè)屬性都是單值的,它不再包含內(nèi)部的數(shù)據(jù)結(jié)構(gòu)。第二范式(2NF):如果一個(gè)關(guān)系的所有非關(guān)鍵字屬性都只能依賴整個(gè)關(guān)鍵字(而不是依賴關(guān)鍵字的一部分屬性),則該關(guān)系在第二范式中。第三范式(3NF):如果一個(gè)關(guān)系在第二范式中,而且沒有傳遞依賴,則該關(guān)系在第三范式中。Boyce-Codd范式(BCNF):如果一個(gè)關(guān)系的每個(gè)決定因素都是候選關(guān)鍵字,則該關(guān)系在BCNF中。第四范式(4NF):如果一個(gè)關(guān)系在BCNF中,而且沒有多值依賴,則該關(guān)系在第四范式中。1)對(duì)象數(shù)據(jù)的規(guī)范化關(guān)系數(shù)據(jù)庫要求存入其中的數(shù)據(jù)符合一定的規(guī)范,并且用范式衡量規(guī)范化程度的高低。是由關(guān)系數(shù)據(jù)模型決定的,是對(duì)一個(gè)關(guān)系的起碼要求主要為了解決關(guān)系中的函數(shù)依賴帶來的更新異常問題。也可以減少數(shù)據(jù)冗余,但更新異常問題更為重要主要為了減少數(shù)據(jù)冗余未必規(guī)范化程度越高越好規(guī)范化的代價(jià)——影響系統(tǒng)的可理解性,增加了多表查詢和連接操作面向?qū)ο蠓椒ㄅc關(guān)系數(shù)據(jù)庫的規(guī)范化目標(biāo)既有相違的一面,又有相符的一面
以對(duì)象為中心組織數(shù)據(jù)與操作,恰恰有助于達(dá)到第2NF、3NF、BCNF和4NF要求的條件對(duì)象的數(shù)據(jù)結(jié)構(gòu)常常連1NF的要求都不能滿足例如“通信地址”屬性HOUSING(SID,Building,F(xiàn)ee)Key:SIDFunctionalDependencies:Building→FeeSID→Building→Fee100Randolph1200150Ingersoll1100200Randolph1200250Pitkin1100300Randolph1200SIDBuildingFee例1:一個(gè)不滿足3NF的關(guān)系及其規(guī)范化STU-HOUSING(SID,Building)Key:SIDSIDBuilding100Randolph150Ingersoll200Randolph250Pitkin300RandolphBLDG-FEE(Building,F(xiàn)ee)Key:Building
BuildingFeeRandolph1200Ingersoll1100Pitkin1100從面向?qū)ο蟮挠^點(diǎn)看應(yīng)該定義“學(xué)生”和“建筑物”兩個(gè)類——恰好與規(guī)范化要求吻合學(xué)生住所······建筑物房費(fèi)······分析原因:把描述不同事物的數(shù)據(jù)組織在一起摘自:施伯樂等譯,[美]DavidM.Kroenke
著.數(shù)據(jù)庫處理.北京:電子工業(yè)出版社,1998例2:一個(gè)不滿足4NF的關(guān)系及其規(guī)范化STUDENT(SID,Major,Activity)Key:(SID,Major,Activity)
SIDMajorActivity100MusicSwimming100AccountingSwimming100MusicTennis100AccountingTennis150MathJoggingSTU-MAJOR(SID,Major)Key:(SID,Major)
SIDMajor100Music100Accounting150MathSTU-ACT(SID,Activity)Key:(SID,Activity)
SIDActivity100Skiing100Swimming100Tennis150Jogging
SIDMajor1111****
課程學(xué)生活動(dòng)學(xué)生-課程學(xué)生-活動(dòng)SIDActivity****
課程學(xué)生活動(dòng)用面向?qū)ο蠓椒ǖ玫降姆诸悺腥悓?duì)象化解多對(duì)多關(guān)聯(lián)之后的結(jié)果為什么多出來3個(gè)類?用面向?qū)ο蠓椒ㄎ茨鼙苊夂瘮?shù)依賴的例子職工職工編號(hào)月工資所得稅
…………可以不通過規(guī)范化解決問題——討論為什么規(guī)范化的兩種策略保持類圖,對(duì)表規(guī)范化缺點(diǎn)是對(duì)象的存儲(chǔ)與恢復(fù)必須經(jīng)過數(shù)據(jù)格式的轉(zhuǎn)換修改類圖對(duì)問題域的映射可能不像規(guī)范化之前那么直接。但是這個(gè)問題并不嚴(yán)重——利大于弊采用第二種策略——按規(guī)范化的要求修改類圖中的類作為問題域部分的設(shè)計(jì)內(nèi)容之一2)修改類圖3)確定關(guān)鍵字
用較少的屬性作關(guān)鍵字,將為含關(guān)鍵字的操作帶來方便常用的技巧——引入編號(hào)最終效果:經(jīng)過必要的規(guī)范化處理和關(guān)鍵字處理之后,得到一個(gè)符合數(shù)據(jù)庫設(shè)計(jì)要求的類圖,其中每個(gè)需要映射到數(shù)據(jù)庫表的類,都滿足如下條件:至少滿足第一范式滿足所期望的更高范式有一組屬性被確定為關(guān)鍵字4)從類圖到數(shù)據(jù)庫的映射(1)映射策略概要對(duì)每個(gè)要在數(shù)據(jù)庫中存儲(chǔ)對(duì)象實(shí)例的類,都建立一個(gè)數(shù)據(jù)庫表類的每個(gè)屬性(包括從所有祖先繼承來的屬性)都對(duì)應(yīng)表的一個(gè)屬性(列)名稱、數(shù)據(jù)類型完全相同其中一組屬性被確定為關(guān)鍵字類的每個(gè)對(duì)象實(shí)例將對(duì)應(yīng)表的一個(gè)元組(行)(2)對(duì)OO概念的處理對(duì)一般-特殊結(jié)構(gòu)的處理抽象類不對(duì)應(yīng)數(shù)據(jù)庫表特殊類包括自己定義的和繼承來的所有屬性人員姓名出生年月······教職工職稱從事專業(yè)······研究生學(xué)號(hào)班級(jí)攻讀專業(yè)······在職研究生在職單位
······例:5個(gè)屬性4個(gè)屬性8個(gè)屬性不建表在關(guān)聯(lián)連接線一端的類中定義一個(gè)(或一組)屬性,表明另一端類的哪個(gè)對(duì)象實(shí)例與本端的對(duì)象實(shí)例相關(guān)聯(lián)該屬性(屬性組)應(yīng)該和另一端的關(guān)鍵字相同如果另一端的關(guān)鍵字包含多個(gè)屬性,本端也要定義同樣的多個(gè)屬性在對(duì)應(yīng)的數(shù)據(jù)庫表中,一個(gè)表以該屬性(或?qū)傩越M)作為外鍵,另一個(gè)表以它作為主鍵,使前者的元組通過其屬性值指向后者的元組對(duì)關(guān)聯(lián)的處理一對(duì)一的關(guān)聯(lián)AB0..11從B端指向A端,則B表的外鍵對(duì)有些元組可能是空值(NULL)從A端指向B端則不存在這一問題表A表B一對(duì)多的關(guān)聯(lián)從多重性約束為“m”的一端指向多重性約束為“1”的一端AB1*映射為數(shù)據(jù)庫表后,A表以B表的主鍵作為自己的外鍵表A表B多對(duì)多的關(guān)聯(lián)AB**先在類圖中化為兩個(gè)一對(duì)多的關(guān)聯(lián)AC11B**多對(duì)多的關(guān)聯(lián)AB**先在類圖中化為兩個(gè)一對(duì)多的關(guān)聯(lián)AC11B**C表含有兩個(gè)外鍵,一個(gè)是A的主鍵,一個(gè)是B的主鍵然后將每個(gè)類映射到一個(gè)數(shù)據(jù)庫表表A表B對(duì)象類轉(zhuǎn)化為數(shù)據(jù)庫表的三種情況:①表中只包含描述本類事物自身特征的屬性②表中既包含描述本類事物自身特征的屬性,也包含作為外鍵指向另一個(gè)表的元組的屬性③表中只包含作為外鍵指向其它表的元組的屬性對(duì)整體-部分結(jié)構(gòu)的處理分為緊密、固定的方式和松散、靈活的方式二者的區(qū)別將通過數(shù)據(jù)庫表的設(shè)計(jì)體現(xiàn)出來緊密、固定方式:把部分對(duì)象類的屬性合并到整體對(duì)象類中松散、靈活方式:整體對(duì)象類和部分對(duì)象類分別建立一個(gè)表通過外鍵表現(xiàn)整體部分關(guān)系A(chǔ)1B1A0..1B1A*B1A1B*A*B*(a)(b)(c)(d)(e)緊密方式:B的屬性合并到A建立A表松散方式:建立A、B兩個(gè)表A指向B或者B指向A
緊密方式:B的屬性合并到A建立A表還要建立B表松散方式:建立A、B兩個(gè)表A指向B松散方式:建立A、B兩個(gè)表A指向B松散方式:建立A、B兩個(gè)表B指向A松散方式:參考多對(duì)多關(guān)聯(lián)解決辦法首先解決多對(duì)多問題然后建立A、B兩個(gè)表以及新增類的表例:多對(duì)多的整體-部分結(jié)構(gòu)的轉(zhuǎn)化**運(yùn)動(dòng)隊(duì)*1學(xué)生運(yùn)動(dòng)隊(duì)1*隊(duì)員學(xué)生3、數(shù)據(jù)接口部分類的設(shè)計(jì)設(shè)計(jì)一個(gè)名為“對(duì)象存取器”的對(duì)象類,它提供兩種操作“對(duì)象保存”將內(nèi)存中一個(gè)對(duì)象保存到相應(yīng)的數(shù)據(jù)庫表中“對(duì)象恢復(fù)”從數(shù)據(jù)庫表中找到對(duì)象所對(duì)應(yīng)的元組,把它恢復(fù)成內(nèi)存中的對(duì)象執(zhí)行這些操作需要知道對(duì)象的下述信息:·它在內(nèi)存中是哪個(gè)對(duì)象為了知道從何處取得對(duì)象數(shù)據(jù)或者把數(shù)據(jù)恢復(fù)到何處·它屬于哪個(gè)類為了知道該對(duì)象應(yīng)保存在哪個(gè)數(shù)據(jù)庫表中·它的關(guān)鍵字為了知道該對(duì)象對(duì)應(yīng)數(shù)據(jù)庫表的哪個(gè)元組第一種設(shè)計(jì)方案對(duì)每個(gè)要求保存和恢復(fù)的對(duì)象類,分別設(shè)計(jì)一個(gè)“對(duì)象保存”操作和一個(gè)“對(duì)象恢復(fù)”操作對(duì)象存取器對(duì)象保存1對(duì)象恢復(fù)1……對(duì)象保存n對(duì)象恢復(fù)n每個(gè)操作只負(fù)責(zé)一類對(duì)象的存或取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版物流服務(wù)合同匯編大全
- 2025年度模板木枋現(xiàn)貨批發(fā)代理合作協(xié)議4篇
- 2025年度創(chuàng)新車間承包經(jīng)營與技術(shù)支持協(xié)議4篇
- 二零二五年度石油行業(yè)存貨質(zhì)押擔(dān)保服務(wù)協(xié)議3篇
- 二零二五年度國際貿(mào)易物流知識(shí)培訓(xùn)及優(yōu)化合同4篇
- 二零二五版航空航天設(shè)備買賣與先行試用協(xié)議3篇
- 二零二五版頁巖磚建筑工程材料采購與監(jiān)理合同3篇
- 2025年度城市污水處理廠運(yùn)營管理合同4篇
- 2025年度室內(nèi)門定制與安裝服務(wù)合同4篇
- 2025年度苗圃場(chǎng)地租賃與現(xiàn)代農(nóng)業(yè)園區(qū)建設(shè)合作協(xié)議4篇
- 第1本書出體旅程journeys out of the body精教版2003版
- 臺(tái)資企業(yè)A股上市相關(guān)資料
- 電 梯 工 程 預(yù) 算 書
- 羅盤超高清圖
- 參會(huì)嘉賓簽到表
- 機(jī)械車間員工績(jī)效考核表
- 2.48低危胸痛患者后繼治療評(píng)估流程圖
- 人力資源管理之績(jī)效考核 一、什么是績(jī)效 所謂績(jī)效簡(jiǎn)單的講就是對(duì)
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎(chǔ)研究
- 廢品管理流程圖
評(píng)論
0/150
提交評(píng)論