版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第八章 對象數(shù)據(jù)庫系統(tǒng),本章重要概念(一),(1)新一代DBS的兩條途徑:ORDBS和OODBS。 (2)平面關(guān)系模型,嵌套關(guān)系模型,復(fù)合對象模型,引用類型,對象聯(lián)系圖的成分及表示方法,數(shù)據(jù)的概化/特化,繼承性。 (3)OO的數(shù)據(jù)類型系統(tǒng):基本類型,五種復(fù)合類型,引用類型。 (4)對象關(guān)系模型的定義,兩個(gè)級別的繼承性,引用類型的定義,ORDB的查詢語言,路徑表達(dá)式,Oracle中查詢的兩種技術(shù),嵌套與解除嵌套。,本章重要概念(二),(5)OODBS的定義,OO數(shù)據(jù)模型的五個(gè)基本概念,ODMG1.0標(biāo)準(zhǔn)的ODL和OML,ODMG2.0標(biāo)準(zhǔn)的數(shù)據(jù)模型、ODL和OQL。 (6)OODB與ORDB的比
2、較。 (7)UML的類圖,用類圖表達(dá)類、關(guān)聯(lián)、關(guān)聯(lián)類、概化/特化、聚合。,主要內(nèi)容和學(xué)習(xí)要求,8.1 對象聯(lián)系圖 (理解) 8.2 面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng)(了解) 8.3 ORDB的定義語言 (了解) 8.4 ORDB的查詢語言 (了解) 8.5 OODBS概述 (了解) 8.6 ODMG1.0標(biāo)準(zhǔn) (了解) 8.7 ODMG2.0標(biāo)準(zhǔn) (了解) 8.8 OODB與ORDB的比較 (了解) 8.9 使用UML類圖來概念對象建模 (理解),從關(guān)系到嵌套關(guān)系、復(fù)合對象,(a),(b),(c),嵌套關(guān)系和復(fù)合關(guān)系的實(shí)例,大學(xué),教師,校長,University(uno,uname,city, staf
3、f(fno,fname,age), presidentfno,fname,age ),引用類型,嵌套關(guān)系和復(fù)合對象無法表達(dá)遞歸的結(jié)構(gòu) 使用“引用”(reference)的技術(shù)解決類型定義中的遞歸問題 ;引用相當(dāng)于指針,對象聯(lián)系圖的成分,對象類型,屬性值是單值,對象間嵌套或引用的關(guān)系,基本數(shù)據(jù)類型,屬性值是多值,兩個(gè)屬性之間值的聯(lián)系為逆聯(lián)系,對象間是超類和子類的聯(lián)系,一個(gè)對象聯(lián)系圖的實(shí)例,數(shù)據(jù)的泛化特化,泛化: 特化: 這種特化聯(lián)系是一種“是”(is a)的聯(lián)系。,主要內(nèi)容,8.1 對象聯(lián)系圖 8.2 面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng) 8.3 ORDB的定義語言 8.4 ORDB的查詢語言 8.5 OOD
4、BS概述 8.6 ODMG1.0標(biāo)準(zhǔn) 8.7 ODMG2.0標(biāo)準(zhǔn) 8.8 OODB與ORDB的比較 8.9 使用UML類圖來概念對象建模,面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng),基本類型:整型、浮點(diǎn)型、字符、字符串、布爾型和枚舉型 復(fù)合類型 行類型:不同類型元素的有序集 數(shù)組類型:相同類型元素的有序集合 列表類型:相同類型元素的有序集合,并且允許有重復(fù)的元素 包類型:相同類型元素的無序集合,并且允許有重復(fù)的元素 集合類型:相同類型元素的無序集合,并且所有的元素必須是不同的 引用類型,主要內(nèi)容,8.1 對象聯(lián)系圖 8.2 面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng) 8.3 ORDB的定義語言 8.4 ORDB的查詢語言 8.5 O
5、ODBS概述 8.6 ODMG1.0標(biāo)準(zhǔn) 8.7 ODMG2.0標(biāo)準(zhǔn) 8.8 OODB與ORDB的比較 8.9 使用UML類圖來概念對象建模,數(shù)據(jù)類型的定義,CREATE TYPE MyString char varying; CREATE TYPE MyDate(day integer,month char(10),year integer); CREATE TYPE StudentGrade setof(CourseGrade); CREATE TYPE CourseGrade(course MyString,grade integer, date MyDate); CREATE TYPE
6、 StudentCourseGrade(name MyString, cg StudentGrade); CREATE TABLE sc of TYPE StudentCourseGrade;,CREATE TABLE SC (name MyString,cg setof (course MyString,grade integer,date MyDate);,CREATE TYPE NameArray MyString10; CREATE TYPE Grades multiset(integer); CREATE TYPE Grades listof(integer);,繼承性的定義,類型級
7、的繼承性,CREATE TYPE Person(name MyString,social_number integer); CREATE TYPE Student(degree MyString,department MyString) under Person; CREATE TYPE Teacher(salary integer,department MyString) under Person;,表級的繼承性,子表和超表應(yīng)滿足下列兩個(gè)一致性要求: 超表中每個(gè)元組最多可以與每個(gè)子表中的一個(gè)元組對應(yīng)。 子表中每個(gè)元組在超表中恰有一個(gè)元組對應(yīng),并在繼承的屬性上有相同的值 。,超表,子表,子表,
8、引用類型的定義,對類型的引用 定義:team_list setof(ref(Person) 對表中的元組的引用,CREATE TABLE university( uno integer,uname MyString,city MyString,president ref(faculty),staff setof(ref(faculty),edit setof(ref(coursetext); CREATE TABLE faculty(fno integer,fname MyString,age integer,works_for ref(university),teach setof(ref(
9、coursetext);,SQL3中的定義語言的特色,結(jié)構(gòu)數(shù)據(jù)類型(row類型) 對象標(biāo)識符(oid):便于引用 Oid的三個(gè)性質(zhì) oid值在任何時(shí)刻都能惟一標(biāo)識元組 oid只是一個(gè)簡單的標(biāo)識,與元組的物理值無關(guān) 在元組插入DB時(shí),oid值由DBMS自動(dòng)產(chǎn)生,主要內(nèi)容,8.1 對象聯(lián)系圖 8.2 面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng) 8.3 ORDB的定義語言 8.4 ORDB的查詢語言 8.5 OODBS概述 8.6 ODMG1.0標(biāo)準(zhǔn) 8.7 ODMG2.0標(biāo)準(zhǔn) 8.8 OODB與ORDB的比較 8.9 使用UML類圖來概念對象建模,以關(guān)系為值的屬性,在ORDB中,規(guī)定應(yīng)為每個(gè)基本表設(shè)置一個(gè)元組變量,然
10、后才可引用,否則語句將不做任何事情 聚集函數(shù)(如min、max和count)以一個(gè)值的集合體作為參數(shù)并返回單個(gè)值作為結(jié)果,它們可以應(yīng)用于任何以關(guān)系為值的表達(dá)式處,SELECT F.fno,F(xiàn).fname FROM faculty as F WHERE(MATHS,Mathematical Analysis)IN F.teach; SELECT U.uname,count(SELECT * FROM U.staff as F WHERE F.age50) FROM university as U WHERE U.city = shanghai;,路徑表達(dá)式,當(dāng)屬性值為單值或結(jié)構(gòu)值時(shí),屬性的引用方
11、式仍和傳統(tǒng)的關(guān)系模型一樣,在層次之間加園點(diǎn)“.” 當(dāng)路徑中某個(gè)屬性值為集合時(shí),就不能連著寫下去,SELECT U.uname,U.president.fname FROM university as U WHERE U.city = shanghai; U.staff.fname 錯(cuò)(staff是集合) SELECT U.uname,F(xiàn).fname FROM university as U,U.staff as F WHERE U.city = shanghai AND F.age50; 正確,嵌套與解除嵌套,SELECT U.uname,set(F.fno,F(xiàn).fname)as teache
12、rs FROM university as U,U.staff as F,F(xiàn).teach as C WHERE C.editor.uname = U.uname GROUP BY U.uname;,以嵌套的形勢顯示1NF結(jié)果,以1NF的形勢顯示嵌套結(jié)果,在select子句中列出所有內(nèi)層屬性,且內(nèi)層屬性前加上層次限定詞,函數(shù)的定義和使用,用戶可以用程序設(shè)計(jì)語言(如C,C+)或SQL定義SQL中的函數(shù),CREATE TYPE StudentCourse- Grade(name MyString, cg setof(course MyString, grade integer,date MyDate
13、); CREATE TABLE sc of TYPE StudentCourseGrade;,數(shù)據(jù)定義,CREATE FUNCTION course_count(one_student StudentCourseGrade) RETURNS integer AS SELECT Count(cg) FROM one_student;,定義的一個(gè)函數(shù):返回給定學(xué)生的選課門數(shù),SELECT name FROM sc WHERE course_count(sc) 8,使用函數(shù)的一個(gè)查詢,復(fù)合值的創(chuàng)建和查詢,(ZHANG,set(DB,80,(1,July,2000),(OS,85,(1,January
14、,2001),集合類型用SET說明,多集值則用MULTISET說明,符合屬性DATE的值用()說明,INSERT INTO sc VALUES (ZHANG,set(DB,80,(1,July,2000),(OS,85,(1,January,2001);,SELECT name,count(cg) FROM sc WHERE name IN set(WANG, LIU,ZHANG),涉及復(fù)合值的一個(gè)插入語句,涉及復(fù)合值的一個(gè)查詢語句,主要內(nèi)容,8.1 對象聯(lián)系圖 8.2 面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng) 8.3 ORDB的定義語言 8.4 ORDB的查詢語言 8.5 OODBS概述 8.6 ODMG1.
15、0標(biāo)準(zhǔn) 8.7 ODMG2.0標(biāo)準(zhǔn) 8.8 OODB與ORDB的比較 8.9 使用UML類圖來概念對象建模,ODMG標(biāo)準(zhǔn),什么是ODMG標(biāo)準(zhǔn) ODMG標(biāo)準(zhǔn)的五個(gè)核心概念 對象是基本的數(shù)據(jù)結(jié)構(gòu) 每個(gè)對象有一個(gè)永久的表示符 對象可以被指定類型和子類型 對象狀態(tài)由數(shù)據(jù)值與聯(lián)系定義 對象行為由對象操作定義,OODBS,什么是OODBXS 典型的OODBMS: ObjectStore,Ontos,O2,Gemstone,Objectivity和PostVersant,面向?qū)ο髷?shù)據(jù)模型的概念,對象:由一組變量、消息和方法組成 類:本質(zhì)相同的對象的抽象 繼承性:類的子類繼承父類的所有性質(zhì) 對象標(biāo)識:OID,
16、唯一標(biāo)識對象 對象包含:一個(gè)對象由幾個(gè)對象組成,則該對象包含它的成員對象,1.一個(gè)對象,主要內(nèi)容,8.1 對象聯(lián)系圖 8.2 面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng) 8.3 ORDB的定義語言 8.4 ORDB的查詢語言 8.5 OODBS概述 8.6 ODMG1.0標(biāo)準(zhǔn) 8.7 ODMG2.0標(biāo)準(zhǔn) 8.8 OODB與ORDB的比較 8.9 使用UML類圖來概念對象建模,持久化程序設(shè)語言和嵌入式語言的區(qū)別,在嵌入式語言中,宿主語言的類型系統(tǒng)與SQL的類型系統(tǒng)不同,程序員要負(fù)責(zé)宿主語言與DML之間的類型轉(zhuǎn)換。而持久化程序設(shè)計(jì)語言的查詢語言與宿主語言完全集成在一塊,任何格式轉(zhuǎn)換對程序員都是透明的。 使用嵌入式查詢
17、語言的程序員要負(fù)責(zé)編寫程序把數(shù)據(jù)從數(shù)據(jù)庫中取出放到內(nèi)存中。在持久化語言中,程序員可以直接操縱持久數(shù)據(jù),而不必為存取數(shù)據(jù)編寫程序。,持久化語言的基本概念,對象的持久性 對象標(biāo)識和指針 持久對象的存儲和訪問 根據(jù)對象名找對象 根據(jù)對象標(biāo)識找對象 將對象按聚集形式存放,然后利用程序循環(huán)找所需對象 持久化c+系統(tǒng):通過類庫賴擴(kuò)展C+,以支持持久化 擴(kuò)展c+對象定義語言 擴(kuò)展c+對象操縱語言,ODMG C+對象定義語言 -C+ ODL,class Person:public Persistent_Object public:string name; int age; ; class Faculty:pu
18、blic Person private:int salary; public: int fno; Ref works_for inverse University:staff; Set teach inverse Coursetext:teacher; ;,class University:public Persistent_Object public:int uno; string uname; string city; Ref president; Set staff inverse Faculty:works_for; Set edit inverse Coursetext:editor
19、; ; class Coursetext:public Persistent_Object public:string cname; string textname; Ref teacher inverse Faculty:teach; Ref editor inverse University:edit; ;,ODMG C+對象操縱語言 -C+ OML,插入實(shí)例, 打開數(shù)據(jù)庫; 事務(wù)開始; 查詢工號為fno值的Faculty對象ofa; 查詢校名為uname值的University對象oun; 創(chuàng)建Coursetext對象oco,送入cname和textname值: Ref oco = ne
20、w(faco_db) Coursetext; oco-cname = cname; oco-textname = textname; 在oco的teacher中插入Faculty對象ofa: oco-teacher.insert_element(ofa); 在oco的editor中插入U(xiǎn)niversity對象oun: oco-editor.insert_element(oun); 事務(wù)提交(commit)。,主要內(nèi)容,8.1 對象聯(lián)系圖 8.2 面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng) 8.3 ORDB的定義語言 8.4 ORDB的查詢語言 8.5 OODBS概述 8.6 ODMG1.0標(biāo)準(zhǔn) 8.7 ODMG2
21、.0標(biāo)準(zhǔn) 8.8 OODB與ORDB的比較 8.9 使用UML類圖來概念對象建模,ODMG對象模型的主要內(nèi)容,對象和文字(ODMG對象模型的基本成分) 兩者的區(qū)別 對象的特征:OID,Name,Lifetime,Struct 對象的結(jié)構(gòu) 匯集對象 原子對象 文字的結(jié)構(gòu) 原子文字、結(jié)構(gòu)文字和匯集文字 接口、類、類外延和關(guān)鍵碼,ODMG對象定義語言(ODL),interface Faculty:Person (extent Faculties key fno) attribute integer fno; relationship University works_for inverse Univ
22、ersity:staff; relationship Set teach inverse Coursetext:teacher; integer num_teach() raises(noTeach);,interface University (extent Universities key uno) attribute integer uno; attribute string city; relationship Faculty president; relationship Set staff inverse Faculty:works_for; relationship Set ed
23、it inverse Cursetext:editor; integer num_staff();,OQL中的SELECT語句,1.檢索上海地區(qū)大學(xué)中教師開設(shè)課程的課程名。 SELECT DISTINCT C.cname FROM University U,U.staff F,F(xiàn).teach C WHERE U.city = shanghai; 2.下面查詢返回的是列表值而不是集合或多集: SELECT F.fno,F(xiàn).name FROM Faculty F ORDER BY F.age DESC)0:4; 3. 檢索上海地區(qū)各大學(xué)中教師開課的課程名,要求顯示校名、教師名、課程名。 SELEC
24、T Struct(U.uname,set(F.name,set(C.cname) FROM University U,U.staff F,F(xiàn).teach C WHERE U.city = shanghai;,OQL的量詞表達(dá)式,全稱量詞的句法 FOR ALL x IN S:C(x) 存在量詞的句法 EXISTS x IN S:C(x) 檢索存在60歲以上教師的大學(xué)校名。 SELECT DISTINCT U.uname FROM University U WHERE EXISTS F IN U.staff:F.age=60; 檢索教師年齡全在50歲以下的大學(xué)校名。 SELECT U.uname
25、FROM University U WHERE FOR ALL F IN U.staff:F.age50;,OQL中使用聚集操作和分組子句的SELECT語句,OQL中 ,COUNT可以應(yīng)用于任何聚集,SUM和AVG可以用于基本類型的聚集,MAX和MIN可以用于任何可比較類型的聚集。 檢索每個(gè)年齡段教師平均授課門數(shù)。 SELECT F.age, avgNum:AVG(SELECT P.F.num_teach() FROM partition P) FROM Faculty F GROUP BY F.age; 檢索至少有一位教師年齡超過90歲的大學(xué)的編號、校名和教師人數(shù)。 SELECT U.uno
26、,U.uname,U.num_staff()FROM University U GROUP BY U.uno,U.uname HAVING MAX(SELECT F.age FROM partition P,P.staff F)90;,OQL的集合運(yùn)算符,(SELECT U.uno,U.uname FROM University U GROUP BY U.uno,U.uname HAVING U.num_staff() 500 );,OQL中對象的賦值和建立,對宿主語言變量賦值 oldFaculties = SELECT F FROM Faculty F WHERE F.age 60; 從聚集
27、中提取元素 facultyList = SELECT F FROM Faculty F WHERE F.age 60 ORDER BY F.salary DESC,F(xiàn).age DESC;,主要內(nèi)容,8.1 對象聯(lián)系圖 8.2 面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng) 8.3 ORDB的定義語言 8.4 ORDB的查詢語言 8.5 OODBS概述 8.6 ODMG1.0標(biāo)準(zhǔn) 8.7 ODMG2.0標(biāo)準(zhǔn) 8.8 OODB與ORDB的比較 8.9 使用UML類圖來概念對象建模,OODB和ORDB的比較,主要內(nèi)容,8.1 對象聯(lián)系圖 8.2 面向?qū)ο蟮臄?shù)據(jù)類型系統(tǒng) 8.3 ORDB的定義語言 8.4 ORDB的查詢語言
28、 8.5 OODBS概述 8.6 ODMG1.0標(biāo)準(zhǔn) 8.7 ODMG2.0標(biāo)準(zhǔn) 8.8 OODB與ORDB的比較 8.9 使用UML類圖來概念對象建模,UML概述,什么事UML UML的歷史 UML的基本組件 狀態(tài)圖 類圖 組件圖,類圖和ER圖中術(shù)語的區(qū)別,用類圖表達(dá)類和關(guān)聯(lián),ER圖,UML的類圖,類名,屬性,方法,重復(fù)度,關(guān)聯(lián)名 二元,用類圖表達(dá)類和關(guān)聯(lián)續(xù),(a)人之間的婚姻關(guān)聯(lián) (b)職員之間的管理關(guān)聯(lián) 圖8.21 兩個(gè)一元關(guān)聯(lián),圖8.22 三元關(guān)聯(lián),用類圖表達(dá)關(guān)聯(lián)類,Student sno sname age sex,Course cno cname teacher,Registration term grade CheckEligibility( ),*,*,ComputerAccount acctID password serveSpace,Issues,*,0.1,用類圖表達(dá)概化和特化,鑒別器:指定概化的基礎(chǔ) 概化表示了繼承性聯(lián)系 抽象類和具體類 子類的語義約束,ResidentPatient dateDischarged,Patient abstract patientID admitDate,Physician PhysicianID PhysicianName,Outpatient checkbackDate,Bed bedNo,* Tr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年東城街道辦事處招聘工作人員23人備考題庫及答案詳解參考
- 2025年中國鐵路青藏集團(tuán)有限公司招聘備考題庫及一套參考答案詳解
- 2025年自貢通航機(jī)場發(fā)展有限公司關(guān)于公開招聘部分工作人員的備考題庫及完整答案詳解1套
- 2025年天津北海油人力資源咨詢服務(wù)有限公司招聘外包工作人員備考題庫及參考答案詳解1套
- 2025年北京航空航天大學(xué)可靠性與系統(tǒng)工程學(xué)院聘用編網(wǎng)絡(luò)安全測試人員F崗招聘備考題庫完整參考答案詳解
- 天臺職高鄉(xiāng)土語文讀本開發(fā):理論實(shí)踐與探索
- 2025年宜春市生態(tài)環(huán)境系統(tǒng)事業(yè)單位急需崗位公開招聘工作人員備考題庫及參考答案詳解一套
- 2025年滄源佤族自治縣國有資本投資運(yùn)營集團(tuán)有限責(zé)任公司公開招聘備考題庫完整參考答案詳解
- 首都醫(yī)科大學(xué)附屬北京胸科醫(yī)院2026年派遣崗位招聘31人備考題庫附答案詳解
- 2025年北醫(yī)三院放射科影像診斷醫(yī)師招聘備考題庫及答案詳解一套
- 2025年新出臺貝殼出租合同模板
- 離婚財(cái)產(chǎn)分割培訓(xùn)課件
- 口腔科種植牙預(yù)防感染要點(diǎn)培訓(xùn)指南
- 小學(xué)語文板書基本功培訓(xùn)
- 2025甘肅酒泉市公安局招聘留置看護(hù)崗位警務(wù)輔助人員30人(第三批)考試筆試參考題庫附答案解析
- 測繪安全生產(chǎn)作業(yè)規(guī)范
- 2026年焦作大學(xué)單招職業(yè)適應(yīng)性考試必刷測試卷必考題
- 安全生產(chǎn)先進(jìn)評選方案
- 國開《廣告調(diào)查與預(yù)測》形考作業(yè)1-4答案
- 鈑金折彎工藝培訓(xùn)課件
- 別墅物業(yè)費(fèi)代繳合同協(xié)議2025年規(guī)定
評論
0/150
提交評論