第十一章 面向?qū)ο髷?shù)據(jù)庫(kù)_第1頁(yè)
第十一章 面向?qū)ο髷?shù)據(jù)庫(kù)_第2頁(yè)
第十一章 面向?qū)ο髷?shù)據(jù)庫(kù)_第3頁(yè)
第十一章 面向?qū)ο髷?shù)據(jù)庫(kù)_第4頁(yè)
第十一章 面向?qū)ο髷?shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)實(shí)用教程 第三版 第十一章面向?qū)ο髷?shù)據(jù)庫(kù) 清華大學(xué)出版社董健全2020年4月14日 本章概念 ODMG標(biāo)準(zhǔn)的核心概念 面向?qū)ο髷?shù)據(jù)模型的基本概念 持久化程序設(shè)計(jì)語(yǔ)言的基本概念 基于C 的面向?qū)ο髷?shù)據(jù)庫(kù)的對(duì)象定義語(yǔ)言和對(duì)象操縱語(yǔ)言 OODB與ORDB的比較 使用UML類(lèi)圖來(lái)概念對(duì)象建模 第十一章面向?qū)ο髷?shù)據(jù)庫(kù) 1 ODMG組織和標(biāo)準(zhǔn)ODMG ObjectDataManagementGroup ODMG93是用于面向?qū)ο髷?shù)據(jù)管理產(chǎn)品接口的一個(gè)定義 ODMG93標(biāo)準(zhǔn)有五個(gè)核心概念 1面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)概述 ODMG93標(biāo)準(zhǔn)有五個(gè)核心概念 1 對(duì)象是基本的數(shù)據(jù)結(jié)構(gòu) 是存儲(chǔ)和操作的基本單位 2 每個(gè)對(duì)象有一個(gè)永久的標(biāo)識(shí)符 這個(gè)標(biāo)識(shí)符在該對(duì)象的整個(gè)生命期中都有效 即不論該對(duì)象是存儲(chǔ)在外存中還是內(nèi)存中 該標(biāo)識(shí)符都必須是有效的 3 對(duì)象可以被指定類(lèi)型和子類(lèi)型 對(duì)象被創(chuàng)建為一個(gè)給定的類(lèi)型 對(duì)象還可以定義為其他對(duì)象的子類(lèi)型 此時(shí) 它們繼承父類(lèi)型的所有數(shù)據(jù)特性和行為 4 對(duì)象狀態(tài)由數(shù)據(jù)值與聯(lián)系定義 5 對(duì)象行為由對(duì)象操作定義 2 OODBS的概念一個(gè)面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng) OODBS 應(yīng)該滿(mǎn)足兩個(gè)標(biāo)準(zhǔn) 首先它是一個(gè)數(shù)據(jù)庫(kù)系統(tǒng) DBS 具備DBS的基本功能 譬如查詢(xún)語(yǔ)言 散列或成組存取方法 事務(wù)管理 一致性控制及恢復(fù) 其次是一個(gè)面向?qū)ο笙到y(tǒng) 是針對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的持久性對(duì)象存儲(chǔ)管理而設(shè)計(jì)的 充分支持完整的面向?qū)ο蟾拍詈蜋C(jī)制 譬如用戶(hù)自定義數(shù)據(jù)類(lèi)型 自定義函數(shù) 對(duì)象封裝等必不可少的特點(diǎn) OODBS表達(dá)為 面向?qū)ο笙到y(tǒng) 數(shù)據(jù)庫(kù)能力 1 對(duì)象 object 對(duì)象由三個(gè)部分組成 1 一組變量 它們包含對(duì)象的數(shù)據(jù) 變量相當(dāng)于ER模型中的屬性 2 一組消息 這是一個(gè)對(duì)象所能響應(yīng)的消息集合 每個(gè)消息可有若干參數(shù) 對(duì)象接受消息后應(yīng)作出相應(yīng)的響應(yīng) 3 一組方法 Method 每個(gè)方法是實(shí)現(xiàn)一個(gè)消息的代碼段 一個(gè)方法返回一個(gè)值作為對(duì)消息的響應(yīng) 對(duì)象的方法可以分為只讀型和更新型兩種 2面向?qū)ο髷?shù)據(jù)模型的基本概念 2 類(lèi) class 在數(shù)據(jù)庫(kù)中通常有很多相似的對(duì)象 相似 是指它們響應(yīng)相同的消息使用相同的方法 并且有相同名稱(chēng)和類(lèi)型的變量 將相似的對(duì)象分組形成了一個(gè) 類(lèi) Class 類(lèi)是相似對(duì)象的集合 類(lèi)中每個(gè)對(duì)象也稱(chēng)為類(lèi)的實(shí)例 Instance 一個(gè)類(lèi)中的所有對(duì)象共享一個(gè)公共的定義 盡管它們對(duì)變量所賦予的值不同 面向?qū)ο髷?shù)據(jù)模型中類(lèi)的概念相當(dāng)于ER模型中實(shí)體集的概念 例 用偽碼寫(xiě)一個(gè) 職員 類(lèi)的定義 定義中給出了類(lèi)似的變量和類(lèi)的對(duì)象所響應(yīng)的消息 處理這些消息的方法在這里未給出 classemployee 變量 stringname stringaddress datastart date intsalary 消息 intannual salary stringget name stringget address intset address stringnew address intemployment length 一個(gè)類(lèi)對(duì)象包括兩部分內(nèi)容 1 一個(gè)集合變量 它的值是該類(lèi)的所有實(shí)例對(duì)象所組成的集合 2 對(duì)消息new實(shí)施一個(gè)方法 用以創(chuàng)建類(lèi)的一個(gè)新實(shí)例 3 繼承性繼承性允許不同類(lèi)的對(duì)象共享它們公共部分的結(jié)構(gòu)和特性 繼承性可以用超類(lèi)和子類(lèi)的層次聯(lián)系實(shí)現(xiàn) 單繼承性 一個(gè)子類(lèi)可以繼承某一個(gè)超類(lèi)的結(jié)構(gòu)和特性 多重繼承性 一個(gè)子類(lèi)也可以繼承多個(gè)超類(lèi)的結(jié)構(gòu)和特性 繼承性是數(shù)據(jù)間的泛化 細(xì)化聯(lián)系 是一種 isa 聯(lián)系 表示了類(lèi)之間的相似性 圖中 每個(gè)職員 employee 是一個(gè)人 person 人是職員的泛化 抽象化 職員是人的細(xì)化 具體化 person是超類(lèi) employee是子類(lèi) 等等 例 銀行日常工作中涉及到各類(lèi)人員的細(xì)化層次的類(lèi)繼承層次圖 偽代碼定義如下 classperson 人 stringname 姓名 stringaddress 地址 classcustomerisaperson 客戶(hù) intcredit rating 信用度 classemployeeisaperson 職員 datestart date 工作起始日期 intsalary 工資 classofficerisaemployee 高級(jí)職員 intoffice number 工號(hào) intexpense account number 經(jīng)費(fèi)賬號(hào) classtellerisaemployee 職員 inthours per week 每周工作量 intstation number 柜號(hào) classsecretaryisaemployee 秘書(shū) inthours per week 每周工作量 stringmanager 經(jīng)理姓名 例 下圖是人的又一個(gè)細(xì)化圖 faculty和student是person的細(xì)化子類(lèi) 有的人既是教師又是學(xué)生 faculty student應(yīng)是faculty和student這兩個(gè)類(lèi)的子類(lèi) 即 多重繼承性 4 對(duì)象標(biāo)識(shí) ObjectIdentifier 簡(jiǎn)記為OID 面向?qū)ο笙到y(tǒng)提供 對(duì)象標(biāo)識(shí)符 的概念來(lái)標(biāo)識(shí)對(duì)象 OID與對(duì)象的物理存儲(chǔ)位置無(wú)關(guān) 也與數(shù)據(jù)的描述方式和值無(wú)關(guān) OID是惟一的 也就是說(shuō) 每個(gè)對(duì)象具有單一的標(biāo)識(shí)符 在對(duì)象創(chuàng)建的瞬間 由系統(tǒng)賦給對(duì)象一個(gè)OID值 它在系統(tǒng)內(nèi)是惟一的 在對(duì)象生存期間 標(biāo)識(shí)是不能改變的 對(duì)象標(biāo)識(shí)是指針一級(jí)的概念 是一個(gè)強(qiáng)有力的數(shù)據(jù)操縱原語(yǔ) 也是對(duì)集合 元組和遞歸等復(fù)合對(duì)象操縱的基礎(chǔ) 5 對(duì)象包含不同類(lèi)的對(duì)象之間可能存在著包含關(guān)系 即組合關(guān)系 下圖 自行車(chē)結(jié)構(gòu)的數(shù)據(jù)庫(kù)的類(lèi)包含層次圖 圖中 自行車(chē)是車(chē)輪 車(chē)閘 齒輪 車(chē)架的組合 車(chē)輪又包括鋼圈 輻條和輪胎 結(jié)構(gòu)的每一個(gè)構(gòu)件都描述為一個(gè)對(duì)象 同時(shí)構(gòu)件間的包含也可以用對(duì)象間的包含來(lái)描述 包含其他對(duì)象的對(duì)象稱(chēng)為復(fù)合對(duì)象 包含關(guān)系可以有多層 形成類(lèi)包含層次圖 包含是一種 是一部分 ispartof 聯(lián)系 如 車(chē)輪是自行車(chē)的一部分 而不能說(shuō) 車(chē)輪是一輛自行車(chē) 因此 包含與繼承是兩種不同的數(shù)據(jù)聯(lián)系 一 持久化程序設(shè)計(jì)語(yǔ)言1 持久化語(yǔ)言與嵌入式語(yǔ)言的區(qū)別 1 在嵌入式語(yǔ)言中 宿主語(yǔ)言的類(lèi)型系統(tǒng)與SQL的類(lèi)型系統(tǒng)不同 程序員要負(fù)責(zé)宿主語(yǔ)言與DML之間的類(lèi)型轉(zhuǎn)換 持久化程序設(shè)計(jì)語(yǔ)言的查詢(xún)語(yǔ)言與宿主語(yǔ)言完全集成在一塊 具有相同的類(lèi)型系統(tǒng) 創(chuàng)建對(duì)象并將之存儲(chǔ)在數(shù)據(jù)庫(kù)中 不需要任何顯式的類(lèi)型或格式改變 任何格式轉(zhuǎn)換對(duì)程序員都是透明的 2 使用嵌入式查詢(xún)語(yǔ)言的程序員要負(fù)責(zé)編寫(xiě)程序把數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出放到內(nèi)存中 在更新時(shí) 程序員還需編寫(xiě)程序段將更新過(guò)的數(shù)據(jù)寫(xiě)回?cái)?shù)據(jù)庫(kù) 而在持久化語(yǔ)言中 程序員可以直接操縱持久數(shù)據(jù) 而不必為存取數(shù)據(jù)編寫(xiě)程序 3ODMG93和持久化C 系統(tǒng) 2 持久化語(yǔ)言的三個(gè)基本概念 1 對(duì)象的持久性 要把OOPL變成持久化語(yǔ)言 第一步就是提供一種辦法 把對(duì)象區(qū)分成是持久的還是暫留的 在程序運(yùn)行結(jié)束后 新創(chuàng)建的持久對(duì)象將被保存 而暫留對(duì)象將消失 2 對(duì)象標(biāo)識(shí)和指針 當(dāng)一個(gè)持久對(duì)象被創(chuàng)建時(shí) 它就要被分配一個(gè)持久的對(duì)象標(biāo)識(shí)符 當(dāng)創(chuàng)建的對(duì)象為暫留時(shí) 被分配一個(gè)暫留的對(duì)象標(biāo)識(shí)符 在程序終止后 對(duì)象被刪掉 標(biāo)識(shí)符失去意義 3 持久對(duì)象的存儲(chǔ)和訪問(wèn) 邏輯上 實(shí)現(xiàn)類(lèi)的方法的程序代碼應(yīng)該和類(lèi)的類(lèi)型定義一起作為數(shù)據(jù)庫(kù)模式的一部分存儲(chǔ) 但現(xiàn)在往往將程序代碼存儲(chǔ)在數(shù)據(jù)庫(kù)之外的文件中 目的是避免對(duì)編譯器和DBMS軟件進(jìn)行集成 查找數(shù)據(jù)庫(kù)中對(duì)象的方法有三種 第一種方法是根據(jù)對(duì)象名找對(duì)象 實(shí)現(xiàn)時(shí) 每個(gè)對(duì)象有一個(gè)對(duì)象名 如同文件名一樣 這種方法對(duì)少量的對(duì)象是有效的 但對(duì)上百萬(wàn)個(gè)對(duì)象就不適用了 第二種方法是依據(jù)對(duì)象標(biāo)識(shí)找對(duì)象 而對(duì)象標(biāo)識(shí)存儲(chǔ)在數(shù)據(jù)庫(kù)之外 第三種方法是將對(duì)象按聚集形式存放 然后利用程序循環(huán)找所需對(duì)象 聚集形式包括集合 Set 多集 Multiset 等 大多數(shù)OODBS都支持這三種訪問(wèn)數(shù)據(jù)庫(kù)的方法 二 ODMGC 對(duì)象定義語(yǔ)言O(shè)DMGC 對(duì)象定義語(yǔ)言 C ODL 擴(kuò)充了C 的類(lèi)型定義語(yǔ)法 例 在第10章的對(duì)象聯(lián)系圖中 定義Faculty為新的類(lèi)Person的子類(lèi) 那么可得到下圖的帶泛化邊的對(duì)象聯(lián)系圖 帶泛化邊的對(duì)象聯(lián)系圖 該對(duì)象聯(lián)系圖用C ODL寫(xiě)的代碼示例為 classPerson publicPersistent Object public stringname intage classFaculty publicPerson private intsalary public intfno Refworks forinverseUniversity staff Set teachinverseCoursetext teacher classUniversity publicPersistent Object public stringuname stringcity Refpresident Set staffinverseFaculty works for Set editinverseCoursetext editor classCoursetext publicPersistent Object public stringcname stringtextnameRefteacherinverseFaculty teach RefeditorinverseUniversity edit 三 ODMGC 對(duì)象操縱語(yǔ)言例 在上述數(shù)據(jù)庫(kù)中 插入教師開(kāi)課信息 某教師開(kāi)設(shè)了一門(mén)課及所使用教材的編寫(xiě)學(xué)校 fno cname textname uname 假設(shè)教師及學(xué)校的數(shù)據(jù)均已在數(shù)據(jù)庫(kù)中存在 插入操作算法為 打開(kāi)數(shù)據(jù)庫(kù) 事務(wù)開(kāi)始 查詢(xún)工號(hào)為fno值的Faculty對(duì)象ofa 查詢(xún)校名為uname值的University對(duì)象oun 創(chuàng)建Coursetext對(duì)象oco 送入cname和textname值 在oco的teacher中插入Faculty對(duì)象ofa 在oco的editor中插入U(xiǎn)niversity對(duì)象oun 事務(wù)提交 commit 4ODMG97和對(duì)象語(yǔ)言 一 ODMG數(shù)據(jù)模型ODMG數(shù)據(jù)模型是OODBMS的基礎(chǔ) OODB是對(duì)象的集合 每個(gè)對(duì)象有一個(gè)惟一的對(duì)象標(biāo)識(shí)符 OID 類(lèi)是具有類(lèi)似性質(zhì)的對(duì)象的匯集 類(lèi)的定義由三部分組成 1 屬性 Attributes 屬性可以是基本類(lèi)型 也可以是復(fù)合類(lèi)型 復(fù)合類(lèi)型有struct array list bag set等五種 2 聯(lián)系 Relationships 聯(lián)系是指對(duì)象之間的引用或引用的匯集 ODMG模型中的聯(lián)系與ER模型中的二元聯(lián)系相類(lèi)似 3 方法 Methods 方法是能應(yīng)用到類(lèi)的對(duì)象上的函數(shù) 二 ODMGODLODMG數(shù)據(jù)庫(kù)模式定義為一系列接口 interface 的匯集 關(guān)鍵字interface 接口 用來(lái)定義一個(gè)類(lèi) 對(duì)于每個(gè)接口 可以說(shuō)明一個(gè)extent 范圍 它是代表類(lèi)的當(dāng)前對(duì)象集的一個(gè)名字 實(shí)際上接口和范圍類(lèi)似于關(guān)系模型中的關(guān)系模式和關(guān)系實(shí)例 例 對(duì)于前面的模式和對(duì)象聯(lián)系圖 我們可以用ODMGODL來(lái)定義 形式如下 interfacePerson extentPeople attributestringname attributeintegerage interfaceFaculty Person 類(lèi)Faculty是類(lèi)Person的子類(lèi) extentFacultieskeyfno attributeintegerfno attributeintegersalary relationshipUniversityworks forinverseUniversity staff relationshipSetteachinverseCoursetext teacher integernum teach raises noTeach 統(tǒng)計(jì)教師授課門(mén)數(shù)的一個(gè)方法 raises 引發(fā) 表示該方法可能引發(fā)的異常 interfaceUniversity extentUniversitieskeyuno attributeintegeruno attributestringuname attributestringcity relationshipFacultypresident relationshipSetstaffinverseFaculty works for relationshipSeteditinverseCoursetext editor integernum staff 統(tǒng)計(jì)學(xué)校人數(shù)的一個(gè)方法 interfaceCoursetext extentCoursetexts attributestringcname attributestringtextname relationshipFacultyteacherinverseFaculty teach relationshipUniversityeditorinverseUniversity edit 三 ODMGOQL1 OQL中的SELECT語(yǔ)句OQL允許人們用傳統(tǒng)的SELECT查詢(xún)語(yǔ)句來(lái)寫(xiě)表達(dá)式 也具有消除重復(fù) 子查詢(xún) 排序等功能 例 用OQL的SELECT語(yǔ)句可以寫(xiě)出下列查詢(xún)操作 檢索大學(xué)里授課門(mén)數(shù)超過(guò)3門(mén)的教師 要求顯示大學(xué)校名和教師姓名 顯示時(shí)屬性名為university name和faculty name SELECTuniversity name F works for unamefaculty name F nameFROMFacultyFWHEREF num teach 3 檢索上海地區(qū)大學(xué)中教師開(kāi)設(shè)課程的課程名 SELECTDISTINCTC cnameFROMUniversityU U staffF F teachCWHEREU city shanghai 也可以用子查詢(xún)形式表達(dá) 但子查詢(xún)是出現(xiàn)在FROM子句中 SELECTDISTINCTC cnameFROMSELECTUFROMUniversityUWHEREU city shanghai D1 SELECTFFROMD1 staffF D2 D2 teachC 這個(gè)語(yǔ)句也可寫(xiě)成WHERE子句中嵌子查詢(xún)的形式 SELECTDISTINCTC cnameFROMCoursetextCWHEREC teacherIN SELECTFFROMFacultyFWHEREF works forIN SELECTUFROMUniversityUWHEREU city shanghai 檢索復(fù)旦大學(xué)的教師 要求按年齡降序排列 若年齡相同按工資升序排列 SELECTFFROMUniversityU U staffFWHEREU uname FudanUniversity ORDERBYF ageDESC F salary OQL中SELECT語(yǔ)句查詢(xún)結(jié)果是集合 set 或包 bag 但加了ORDERBY子句后 輸出結(jié)果就成為列表 List 在集合 包中 行序是無(wú)所謂的 但在列表中 行序是重要的 下面查詢(xún)返回的是列表值而不是集合或多集 SELECTF fno F nameFROMFacultyFORDERBYF ageDESC 0 4 該查詢(xún)返回的是年齡最大的五位教師姓名值 表達(dá)式 0 4 表示抽取年齡最大的5個(gè)教師 檢索上海地區(qū)各大學(xué)中教師開(kāi)課的課程名 要求顯示校名 教師名 課程名 SELECTStruc uname set name set cname FROMUniversityU U staffF F teachCWHEREU city shanghai SELECT子句中的表達(dá)式不必都是簡(jiǎn)單的變量 可以是任何表達(dá)式 包括用類(lèi)型構(gòu)造符構(gòu)成的表達(dá)式 上式中用了struct類(lèi)型構(gòu)造符和set類(lèi)型構(gòu)造符 SELECT子句后的struct字樣 是一種顯式地定義結(jié)構(gòu)類(lèi)型的方式 在實(shí)際使用時(shí)也可省略 2 OQL表達(dá)式的附加格式OQL在SELECT語(yǔ)句格式中提供了全稱(chēng)量詞 FORALL 和存在量詞 EXISTS 等謂詞 以及聚集運(yùn)算符 分組子句和集合運(yùn)算符 并 交和差 1 量詞表達(dá)式全稱(chēng)量詞表達(dá)式的句法 FORALLxINS C x 該表達(dá)式用于檢測(cè)集合S的所有成員x是否都滿(mǎn)足條件C x 如果S中每個(gè)成員x都滿(mǎn)足C x 則該表達(dá)式結(jié)果為true 否則為false 存在量詞的表達(dá)式的句法 EXISTSxINS C x 該表達(dá)式用于檢測(cè)集合S中是否至少有一個(gè)成員x滿(mǎn)足條件C x 若存在 則該表達(dá)式結(jié)果為true 否則為false 例 寫(xiě)出下列查詢(xún)操作的SELECT語(yǔ)句 檢索存在60歲以上教師的大學(xué)校名 SELECTDISTINCTU unameFROMUniversityUWHEREEXISTSFINU staff F age 60 F是元組變量 檢索教師年齡全在50歲以下的大學(xué)校名 SELECTU unameFROMUniversityUWHEREFORALLFINU staff F age 50 2 使用聚集操作和分組子句的SELECT語(yǔ)句OQL使用與SQL相同的五種聚集運(yùn)算符 AVG COUNT SUM MIN和MAX 在傳統(tǒng)的SQL中 這些運(yùn)算符只能應(yīng)用于表中指定列 而OQL中 同樣運(yùn)算符可應(yīng)用于其成員為合適類(lèi)型的聚集操作 即 COUNT可應(yīng)用于任何聚集 SUM和AVG可以用于基本類(lèi)型的聚集 MAX和MIN可以用于任何可比較類(lèi)型的聚集 OQL的SELECT語(yǔ)句也使用分組子句和組條件表達(dá)式子句 但增加了新意 例 寫(xiě)出下列查詢(xún)操作的SELECTS語(yǔ)句 檢索每個(gè)年齡段教師平均授課門(mén)數(shù) SELECTF age avgNum AVG SELECTP F num teach FROMpartitionP FROMFacultyFGROUPBYF age 3 集合運(yùn)算符像傳統(tǒng)的SQL一樣 OQL中也有并 交 差等集合操作 例 檢索教師人數(shù)不到1000人 但工資低于1500元的人數(shù)超過(guò)500人的那些大學(xué)的編號(hào)和校名 SELECTU uno U unameFROMUniversityUGROUPBYU uno U unameHAVINGU num staff 500 3 OQL中對(duì)象的賦值和建立 1 對(duì)宿主語(yǔ)言變量賦值傳統(tǒng)SQL需要在元組分量和宿主語(yǔ)言變量之間傳遞數(shù)據(jù) 而OQL則不同 可以很方便地把表達(dá)式的結(jié)果值賦給任何合適類(lèi)型的宿主語(yǔ)言變量 例 檢索大于60歲的教師可用下列語(yǔ)句 SELECTFFROMFacultyFWHEREF age 60 該查詢(xún)結(jié)果的類(lèi)型是set Faculty 如果oldFaculties是同類(lèi)型的宿主語(yǔ)言變量 用擴(kuò)充了OQL的C 可以寫(xiě)成下列形式 oldFaculties SELECTFFROMFacultyFWHEREF age 60 并且oldFaculties的值將成為這些Faculty對(duì)象的集合 2 從聚集中提取元素獲取集合或者包的每個(gè)成員是比較復(fù)雜的 但比傳統(tǒng)SQL基于游標(biāo)的方法要簡(jiǎn)單 首先 我們需要把集合或者包轉(zhuǎn)換成列表 這可以用帶ORDERBY子句的方法 例 檢索大于60歲的教師 要求查詢(xún)結(jié)果按工資 年齡降序排列 可用下列語(yǔ)句實(shí)現(xiàn) facultyList SELECTFFROMFacultyFWHEREF age 60ORDERBYF salaryDESC F ageDESC 該語(yǔ)句將把按工資 年齡降序排列的所有Faculty對(duì)象的列表賦給宿主語(yǔ)言變量facultyList 1 各種DBS的長(zhǎng)處和優(yōu)勢(shì)可以概括如下 1 關(guān)系系統(tǒng) 數(shù)據(jù)類(lèi)型簡(jiǎn)單 查詢(xún)語(yǔ)言功能強(qiáng)大 高保護(hù)性 2 基于持久化語(yǔ)言的OODBS 支持復(fù)合數(shù)據(jù)類(lèi)型 與程序設(shè)計(jì)語(yǔ)言集成一體化 高性能 3 ORDBS 支持復(fù)合數(shù)據(jù)類(lèi)型 查詢(xún)語(yǔ)言功能強(qiáng)大 高保護(hù)性 該總結(jié)具有普遍性 但對(duì)有些DBS而言它們的分界線是模糊的 例如 有些以持久化語(yǔ)言為基礎(chǔ)的OODBS是在一個(gè)關(guān)系DBS之上實(shí)現(xiàn)的 這些系統(tǒng)的性能可能比不上那些直接建立在存儲(chǔ)系統(tǒng)之上的OODBS 但這些系統(tǒng)卻提供了關(guān)系系統(tǒng)所具有的較強(qiáng)保護(hù)能力 5OODB與ORDB的比較 2 OODB與ORDB的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論