面向對象數(shù)據(jù)庫1_第1頁
面向對象數(shù)據(jù)庫1_第2頁
面向對象數(shù)據(jù)庫1_第3頁
面向對象數(shù)據(jù)庫1_第4頁
面向對象數(shù)據(jù)庫1_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

面向對象數(shù)據(jù)庫系統(tǒng)ObjectOrientedDatabaseSystem(OODBS)(一)卵慶俺唆薦追鍋鐵摟墊惱輩吾隅艇午襲沃厘私爛砷垛冪覺痞琳輥屢崩踐斗面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫113.1面向對象概念與數(shù)據(jù)庫系統(tǒng)

傳統(tǒng)的關系數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)模型簡單,無法滿足新的計算機應用特別是非事務處理領域對數(shù)據(jù)庫支撐要求的需要,如:計算機輔助設計與制造(CAD/CAM)計算機集成制造(CIM)計算機輔助軟件工程(CASE)地理信息系統(tǒng)(GIS)物流資源規(guī)劃(MRP,MRP2)企業(yè)資源規(guī)劃(ERP)陡簍懂沛款疆院抱犯款你擠則常寺咨非弱骨枚絹壽輔壯鈞鄲評退沾痘毖玻面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫123.1面向對象概念與數(shù)據(jù)庫系統(tǒng)解決方法開發(fā)各種專用數(shù)據(jù)庫系統(tǒng):RDBS的擴充如:工程數(shù)據(jù)庫、多媒體數(shù)據(jù)庫、圖形數(shù)據(jù)庫及圖像數(shù)據(jù)庫等……不足:只能滿足專門應用的需要,缺乏通用性開發(fā)新的數(shù)據(jù)模型與數(shù)據(jù)庫系統(tǒng):新一代的數(shù)據(jù)模型與數(shù)據(jù)庫系統(tǒng)的主要特征與要求應該是:有構造復雜數(shù)據(jù)結構與模式的能力:嵌套、遞歸、抽象、分類、組裝、分解……具有多種數(shù)據(jù)類型及構造抽象數(shù)據(jù)類型的能力:聚集、時間、空間、幾何形狀、變長、大容量、……具有多種操作能力,特別是操作復雜語義模型的能力,如:旋轉、放大、……具有對數(shù)據(jù)模型進行擴充演化的能力:模式修改洋招森須委鑼變幫吁輸給域時證鉤鳳屋瘟滴頻盜黃姚來防喇牙絮專淹蛾普面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫133.1面向對象概念與數(shù)據(jù)庫系統(tǒng)面向對象數(shù)據(jù)模型以及采用該模型的數(shù)據(jù)庫系統(tǒng)能夠滿足上述主要特征與要求。以面向對象數(shù)據(jù)模型為核心的數(shù)據(jù)庫系統(tǒng)稱為面向對象數(shù)據(jù)庫系統(tǒng)(objectorienteddatabasesystem,簡稱OODBS)。同樣,以面向對象數(shù)據(jù)模型為核心的數(shù)據(jù)庫管理系統(tǒng)稱為面向對象數(shù)據(jù)庫管理系統(tǒng)(objectorienteddatabasesystem,簡稱OODBMS)。周耘鍺膛教求上鬃舞氧悉濁羊莖掃裁湘煉丹貉散心西何扯唐轍硒賞濃嫁凸面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫143.1面向對象概念與數(shù)據(jù)庫系統(tǒng)關系模型與關系數(shù)據(jù)庫系統(tǒng)目前仍是在商業(yè)、事務處理、OA、MIS等傳統(tǒng)數(shù)據(jù)庫應用領域占主導地位的數(shù)據(jù)庫系統(tǒng)。而對非傳統(tǒng)應用,關系數(shù)據(jù)庫系統(tǒng)的支撐度就較為低下,因此,從90年代初開始陸續(xù)出現(xiàn)了一些商品化的面向對象數(shù)據(jù)庫管理系統(tǒng),著名的如ObjectStore、O2,ONTOS等,并在非傳統(tǒng)應用領域中發(fā)揮了重大作用。到90年代中期,不少關系數(shù)據(jù)庫廠家如Oracle、Sybase、SQLServer、DB2以及Ingres、Informix等,經(jīng)過不斷努力都在其推出的新版本中不同程度地采用了面向對象中的一些思想與機制。由于這類數(shù)據(jù)庫系統(tǒng)的本質(zhì)還是關系數(shù)據(jù)庫,因此我們稱其為‘對象-關系數(shù)據(jù)庫系統(tǒng)’,采用的數(shù)據(jù)模型相應被稱為‘對象-關系數(shù)據(jù)模型’。在通常情況下,我們也將‘對象-關系數(shù)據(jù)庫系統(tǒng)’作為‘面向對象數(shù)據(jù)庫系統(tǒng)’的實現(xiàn)途徑之一。賴初查落每洪冠鎖若秩巨鐮中青貌庚涸鐘忻讕巍在傀刷餡萌絲澡消趙峨咕面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫153.2面向對象方法的基本思想3.2.1概述OO是一種方法使用OO方法不僅可以認識客觀世界,而且也可以表示客觀世界,其特點是通過可構造的手段將客觀要求表示出來,也就是說可用有限的構造手段與有限的步驟建立起一個客觀世界的模型。目前該方法已廣泛應用在計算機的各個方面:面向對象程序設計語言(OOP)面向對象分析(OOA)面向對象設計(OOD)面向對象數(shù)據(jù)庫(OODB)面向對象用戶界面面向對象的體系結構……椿尼僧捶螺事皖嘻兇郁天機傻悟餾餌縣錨摸哭姆芝試胞更拓粵染滓踩糠胸面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫163.2.1概述OO方法與傳統(tǒng)方法的比較“面向計算機”方法:ComputerOriented是一種模塊化、樹狀層次結構方法。該方法以便于計算機實現(xiàn)為主要目的,較少考慮其客觀世界的實際背景。特點:在計算機中的實現(xiàn)方便,但模型構筑困難。(距客觀世界較遠,工具不統(tǒng)一)“面向對象”方法:ObjectOriented以客觀世界中的“實體”為中心的方法,能夠較好地反映客觀世界的實際要求,也可以通過OO工具在計算機中方便地實現(xiàn)。特點:統(tǒng)一的建模工具(OOA,OOD)易于實現(xiàn)(OOP,OODB)實現(xiàn)了方法的一致化和接口的無縫性綿前嫁馬范刻迅嘩鴿仕嫡采植殆整漢爛訖嘴燒嚙酷之絡蝴綱敲柳犬翻乓曳面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫173.2.1概述例:數(shù)據(jù)庫設計(RDB與OODB)客觀世界關系數(shù)據(jù)庫的實現(xiàn)途徑ER模型關系模型計算機實現(xiàn)面向對象數(shù)據(jù)庫的實現(xiàn)途徑面向對象模型

我們以圖論中的樹狀結構的模型設計為例,來解釋這兩種方法在設計過程和設計結果上的差別。肢蔽私疵氮侄賭罵吐她瓦甩咱撅市包悲恬袋闡茵廖賴味嗣啦音媒例僻棧梯面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫183.2.1概述在關系數(shù)據(jù)庫中的設計步驟概念設計(圖1),概念設計(圖2),邏輯設計(圖3)起點P(pno1,x,y)邊L(pno1,pno2)終點P(pno2,x,y)P(pno,x,y,pno’)終點起點圖3滁貳授嚏間吊復赦噎都搭瘡嗜連例弊淀可辮僻賒贏嗚車襟鴿辭毆遙椒焚嬌面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫193.2.1概述在OODB中的設計步驟概念模型與邏輯模型(圖4-1或圖4-2)點pnoxy終點圖4-1OO模型點pnoxy起點圖4-2OO模型蘇吻械濕譬適正括醬嫌胃駱含洽攬嬰頰魯燕垃斧福酮儉裙渣徐粕儲滇奢朔面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1103.2.1概述數(shù)據(jù)操作方面的區(qū)別在樹狀結構中,操作具有一定的方向性,即從起點到終點。RDB:從起點到終點查找困難(圖3)OODB:很方便(圖4)崗茨牡罐線嫁吧裝銹刊麗寡埃愁佩彌籠協(xié)柱酒案懂閩肋胞峪掛薪口肯慈揣面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1113.2.2簡單回顧

面向對象方法起源于20世紀60年代末70年代初:SIMULA-67、SMALLTALK、EIFFEL、C++、Ada面向對象方法在80年代初開始在計算機的若干領域中得到了推廣,它們是:在人工智能領域中知識表示方法、專家系統(tǒng)的開發(fā)方法、基于面向對象的人工智能語言在軟件工程領域中面向對象的分析與面向對象的設計方法在可視化界面中在數(shù)據(jù)庫中其它方面面向對象計算機IAPX432,面向對象分布式計算機Eden等風袱銳蛤浸蛋通癌熱胸言錦堆吐乞毀氮宙嗣卑微歉哭平腔意紉杠讕耀答嘉面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1123.3面向對象方法的基本概念

1.對象(object)客觀世界中的任意一個實體。組成對象標識,靜態(tài)特征,動態(tài)行為2.屬性(attribute)反映對象的狀態(tài)與特性,是每個對象固有的靜態(tài)表示。屬性型屬性名,數(shù)據(jù)類型屬性值可以賦予該屬性的數(shù)值。屬性值的多值性結構化值、集合值、OID例學生(學號,姓名,性別,出生日期,系別,所修課程)逃拜椿攔枯揚吱男質(zhì)位自棕涌寄鳴饞酞篷慎方于見伺柿忻哆玻卯排塢鄭問面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1133.3面向對象方法的基本概念3.方法(method)又稱為‘操作’(operation),用于反映對象的行為特征,是對象的固有動態(tài)行為的表示,可用于審視并改變對象的內(nèi)部狀態(tài)(屬性值)。方法的表示方法的接口:是方法的外部表示,如方法的名稱,調(diào)用參數(shù)及返回結果的類型。方法的實現(xiàn):代碼4.對象標識符OID(objectidentifier)外界賦予每個對象的一個具有唯一性的名字,是區(qū)分不同對象的唯一標記。以替代傳統(tǒng)觀念中的“關鍵字”從上述的介紹內(nèi)容可以知道,每個對象都是由一組屬性、一組方法和一個具有唯一性的OID組成的,這樣的對象具有穩(wěn)定性、封裝性和隱蔽性三個特性。趨瘩呸窯禾顆海瘴庶騙嚇厭擾幾杜金洋塊喉襲毛蕾嫂友祿諜論蝕彩拱桔芋面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1143.3面向對象方法的基本概念5.穩(wěn)定性(stationary)以屬性(數(shù)據(jù))為核心,以方法(程序)為附屬體,可構成一個穩(wěn)定的實體。6.封裝性(encapsulation)對象的封裝性將一個對象劃分為兩個部分對象的內(nèi)部表示(即對象中的屬性組成與方法實現(xiàn))對象的外部表示(即方法接口,亦稱對象界面)。對象封裝的優(yōu)點有利于對象代碼及數(shù)據(jù)結構的維護提高對象的可靠性與可重用性。叢拍砂葛飛蛇錐慘渺象孤康副祟棲序掛貓菩壹布校坐革夸視選砷犢鍛縷揮面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1153.3面向對象方法的基本概念7.隱蔽性(hiding)對象的外部界面與內(nèi)部表示的分離,使得外界只能通過方法的外部接口來訪問該對象,而對象的屬性組成和方法的內(nèi)部實現(xiàn)則是不可見的。對象的隱蔽性屏蔽了對象的內(nèi)部實現(xiàn)細節(jié),簡化外界對對象的認識與了解,方便了用戶的使用。8.消息(message)消息是對象間的一種協(xié)作機制,一個對象可以通過向另一個對象發(fā)送消息來調(diào)用另一個對象中的方法,以獲得其協(xié)作來共同完成某一個任務。消息僅作用于對象界面,再通過對象界面調(diào)用相應的方法來進一步影響與改變對象自身。用戶對一個對象所做的操作也可以看成是一條發(fā)向該對象的消息,并通過該消息執(zhí)行對象中的方法,以實現(xiàn)用戶的操作要求或獲得操作結果。乳了吸筑障喧潑狗鎮(zhèn)榴止倍糟斬九堰昂賴崎睬襪瓤憤戈櫥餒秩坡檀鈕辯捎面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1163.3面向對象方法的基本概念消息的組成:TypeA.Op(O1,O2,……,On)接收者:對象A操作名:Op操作參數(shù)及其返回結果的類型:O1,O2,……,On及Type例:intV1.weight(){return(V1.車廂.weight()+V1.底盤.weight()+V1.驅動設備.weight());}石棧癥吮悉唇輸倍卯瞪曳特衰昧耿峻抱勝網(wǎng)學沽緒己獺毒砌卻噬亮酋牧臻面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1173.3面向對象方法的基本概念消息與方法的比較:方法是對象的內(nèi)部操作,它包括方法的外部調(diào)用接口和內(nèi)部實現(xiàn)細節(jié)兩個部分。消息則是一個跨對象的對象間的操作。綜上所述,對象是一個由一組屬性和一組方法所組成的一個封裝實體,每個對象都有一個系統(tǒng)賦予的具有唯一性的名字(OID),消息則是對象之間的一種協(xié)作機制。詩賀猖鬧姬稈嶺簧疚餓濾匡慷橋進啟浚撼矮直旋怯隘稗帛皮釘嫉躺奉揩概面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1183.3面向對象方法的基本概念9.類(class)具有相同屬性與方法的對象集合稱為類。實例(instance):類中的對象類的定義可以簡化人們對復雜世界的了解。例:類名屬性方法學生學號,姓名,性別,出生日期,系別,年級,所修課程選課,登記成績,統(tǒng)計學分績,升級,轉系木辭濃藍毗賜蔭遜國講狙堂踏米窄鑲未搬必袋涂謀診抉蛆仁希啊晴誦蕊計面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1193.3面向對象方法的基本概念有了類后,類中實例的屬性與方法可以統(tǒng)一說明,同時類也可有一個統(tǒng)一的界面,消息不僅可以作為對象間作用的工具,更重要的可作為類間溝通的工具。同一個類中的屬性由于實例的不一致而可能導致值的不一致,因此類的屬性實際上是個變量(Instancevariable)。類常量(Classvalue):在特殊情況下有些變量值在該類中是一致的,此時該變量稱為類常量。如:人的耳朵有兩個缺省值(defaultvalue):有些類的屬性規(guī)定有缺省值。在創(chuàng)建一個新的對象(實例)時,如果沒有給某個屬性明確賦值,則該屬性的取值就是其缺省值。類與類之間的關系:繼承與合成蓋梯旬杠崖樓壩餾僳坐爬棗發(fā)椿再覺矮忠點八忘壬軀哎柬妖銥殷獰溜兵頭面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1203.3面向對象方法的基本概念10.繼承(inheritance)在客觀世界中存在著許多各種各樣的對象和它們之間的復雜關系,為理解這些關系,常用的手法是對它們進行分類。例如:滓瀕泅忘紉拐屯斗哎蜘聞貶供隘翰漓姑壟垣慮柴靠塵擔寫旋州淪牧氏迂倘面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1213.3面向對象方法的基本概念這樣的分類有一些非常明顯的特點:層次性:不循環(huán)繼承性:下面的分類具有上面分類的部分/全部特性與行為,同時也有它自己的特性與行為。包含語義:上面的分類集合包含下面分類集合。這樣的分類關系我們稱之為‘繼承’。其中,下層的分類我們稱其為上層分類的‘子類’(subclass),而上層的分類則稱為下層分類的‘超類’(superclass)。詞濟愛減欽蚌頒灑政漸舊奄擇米曼耐爾篙半班喻狼仍慶玩契恨冊傾擄涉臨面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1223.3面向對象方法的基本概念在數(shù)據(jù)庫中,繼承有其特定的語義含義:分類語義:子類繼承超類的性質(zhì)和行為全體/部分語義:超類的實例集合包含子類的實例集合抽?。ㄏ螅┱Z義:從子類到超類是對子類共有特性與行為的抽?。ㄆ栈?,generalization)個性語義:從超類到子類是一個特殊化、具體化的過程(特化,specialization)類繼承提供了一個分析、了解和觀察客觀世界的一種方法。一般而言,子類繼承超類的全部特性與行為(我們稱其為‘全繼承’),但實際上往往發(fā)展為只繼承超類的部分特性與行為(部分繼承)。痹韋獰援總妒吧桌衡雁累趕匝奔斤碑螞晶險昏亞宰蜜拾太贈棗啡焦疊遮挾面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1233.3面向對象方法的基本概念11.類繼承層次結構(classinheritancehierarchystructure)鏈狀層次結構,沒有循環(huán)單繼承一般情況下,類繼承層次是一種樹狀結構(tree),這樣的繼承我們稱之為‘單繼承’(圖8)。散值讒柒括英謄盎洋頻炸規(guī)鰓鴕蘭訓氰瘴仕挫糯蓬冶蹄厚鼎辟剛味仟筏滑面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1243.3面向對象方法的基本概念多繼承在有的情況下,也允許一個子類擁有多個直接超類,這樣的繼承我們稱之為‘多繼承’(圖9)。在多繼承情況下,我們要求所有的類都具有一個共同的超類,從而構成一個格狀結構(Lattice)。哼六艘擾伍輸粕鈾梗赫甸洱排躺搖妊鄖撇烷版硅緩障襖疆野五姿檬拷諧噴面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1253.3面向對象方法的基本概念12.多態(tài)性(polymorphism)在繼承過程中,可以重新修改或定義被繼承下來的方法(屬性)的定義信息(方法的調(diào)用接口)或方法的實現(xiàn)代碼,該特性被稱為‘多態(tài)性’。重載(overloading):在繼承過程中重新定義方法的實現(xiàn)代碼。重定義(overriding):在繼承過程中,重新定義被繼承下來的屬性或方法的調(diào)用參數(shù)的數(shù)據(jù)類型。例如:幾何圖形的面積計算個人所得稅計算多態(tài)性的實現(xiàn)手段遲聯(lián)編(latebinding)動態(tài)聯(lián)編(dynamicbinding)動挾意燙壩寄憫播磕熾鄧尾擴私句榨乖甸筍棉燎抖磊字苛隕錯茹磊涕捌臣面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1263.3面向對象方法的基本概念13.類合成(classcomposition)用于反映對象的分解與組成關系(嵌套),它具有下述三種語義信息:組成語義(is-part-of):一個類可以有若干個合成類組成嵌套語義:一個類中屬性的值域可以是另一個類(包括自己)聯(lián)系語義:通過類中屬性建立與其它類的聯(lián)系群跌位狙由烘灰戊敞裕舷杖杖鯨點嗓儉券忙血啄裴朋荔癢鎖忙錨戒卓院坎面向對象數(shù)據(jù)庫1面向對象數(shù)據(jù)庫1273.3面向對象方法的基本概念14.類合成層次結構(classhierarchystructure)類合成關系一般而言是一種層次結構,即由下層的類合成上層的類,但它不是樹結構,即在合成關系中允許一個類可以是上層多個類的組成類。合成關系允許循環(huán),類合成層次結構圖是一個網(wǎng)狀結構。15.類層次結構(classhierarchystructure)類與類之間存在著三種關系:繼承、合成與消息。其中:合成:用于反映類中屬性與另一個類的聯(lián)系繼承:用于反映類與類之間的聯(lián)系消息:根據(jù)應用需要而定義的一種類與類之間的協(xié)作機制繼承與合成都具有特定的語義信息,而消息本身并不具有某種特定的語義含義。因此,在OODM中,我們主要考慮類的合成與繼承關系,由它們可構成一個類層次結構??陀^世界中的任何事物都可以用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論