專利名稱:具有異種對象類型的數(shù)據(jù)庫系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的現(xiàn)有技術(shù)典型的相關(guān)數(shù)據(jù)庫的邏輯結(jié)構(gòu)是用它的目錄對象確定的。這些對象可能具有許多種對象類型,例如,表空間、用戶、表、視圖、序列、存儲程序等。
在Oracle 9i中引入的Oracle元數(shù)據(jù)API提供用來為一個或多個特定對象類型的對象提取元數(shù)據(jù)的中心設(shè)施。9i的實現(xiàn)使用OPEN-FETCH-CLOSE編程模型用戶發(fā)出用于特定對象類型的OPEN指令,然后重復(fù)地讀取那個類型的對象;在完成之時,用戶關(guān)閉該對象類型環(huán)境。用戶能規(guī)定一個或多個限制那組要讀取的對象的過濾器。Oracle 9i的實現(xiàn)提供一種用來在特定的對象類型內(nèi)讀取對象的有力的和有柔性的機制。
這個API是在2000年9月28日申請的美國專利申請第09/672,914號“Aggregating and manipulating dictionary metadata ina database system(在數(shù)據(jù)庫系統(tǒng)中聚集和操縱目錄元數(shù)據(jù))”中描述的,在此通過引證將其全部教導(dǎo)完整地并入。
本發(fā)明的概述用戶可能時常希望在包括某邏輯單元時候提取適合屬于不同對象類型的對象的邏輯組合的元數(shù)據(jù)。實例是(1)表及其所有的相關(guān)對象(約束、索引、授權(quán)等);(2)模式中的全部對象(表、視圖、類型,程序等);(3)數(shù)據(jù)庫中的全部對象(表空間、用戶、重新運行部分等,以及模式及其內(nèi)容)。
此外,用戶可能希望采用這個提取的元數(shù)據(jù)并且使用它重建關(guān)于另一個數(shù)據(jù)庫的對象的邏輯組合。然而,為了重建對象的組合,它們必須是按特定的次序(例如,在其索引之前的表)創(chuàng)造的。不幸的是,創(chuàng)造次序時常是不明顯的。
在早期的解決方案中,用戶不得不寫入囊括組成那個邏輯組合的對象以及用于那些對象的創(chuàng)造次序的知識的自定義代碼。Oracle Export公用程序是一個這樣的自定義程序。這樣的自定義程序通常是為它們的專用目的設(shè)計好的,但是可能難以適應(yīng)新的用途。
本系統(tǒng)能用“異種對象類型”(即,雖然是不同對象類型的但仍然包括邏輯單元的對象的集合)提高在美國專利申請第09/672,914號中描述的Oracle元數(shù)據(jù)API。編程模型可以是在Oracle 9i中使用的同一OPEN-FETCH-CLOSE模型。差別在于(1)用戶在OPEN語句中規(guī)定異種對象類型的名字,(2)被讀取的對象屬于不同的同種對象類型,以及(3)對象是依照有效的創(chuàng)造次序送回的。
本系統(tǒng)的特定的實施方案是為不止一個不同類型的相關(guān)對象從數(shù)據(jù)庫提取元數(shù)據(jù)的方法。該方法包括將異種對象類型定義為不同類型的數(shù)據(jù)庫對象的集合。在請求讀取特定的異種對象之時,異種對象的成員對象能從特定的異種對象中讀取。成員對象能基于異種對象類型的定義依照特定的次序(例如,用來重建特定的異種對象的有效次序)被送回。
可仿效的異種對象類型是表輸出型、數(shù)據(jù)庫輸出型、模式輸出型和表空間輸出型。成員對象可以是同種對象類型,或者可以是其它的異種對象類型。
那組將被讀取的成員對象能依照至少一個本身可以依照被讀取的成員對象的類型被轉(zhuǎn)換為第二過濾器的規(guī)定的過濾器受到限制。
在特定的實施方案中,第一張表能規(guī)定某對象類型究竟是異種的還是同種的對象類型。然后,第二張表能定義將用于給定的異種對象類型的成員類型送回的特定次序。依照讀取指令,成員對象能依照在第二張表中定義的特定次序被讀取。第三張表能規(guī)定能應(yīng)用于特定的異種對象類型的過濾器,而第四張表能規(guī)定用于個別的成員對象類型的過濾器轉(zhuǎn)換。這樣轉(zhuǎn)換的過濾器能承襲來自請求中為特定的異種對象類型規(guī)定的過濾器數(shù)值。作為替代,過濾器可以有諸如文本、布爾、數(shù)子、日期之類的某種數(shù)據(jù)類型的固定數(shù)值。
更具體地說,被提取的元數(shù)據(jù)能使用諸如XML之類的標(biāo)示語言格式化。這種標(biāo)示語言格式化的數(shù)據(jù)能被轉(zhuǎn)換成為重建特定的異種對象而格式化的語句。
在本系統(tǒng)中,對象元數(shù)據(jù)可以僅僅使用對在數(shù)據(jù)庫里面用于某邏輯單元的元數(shù)據(jù)的單一請求從相關(guān)的數(shù)據(jù)庫中提取,在這種場合該邏輯單元包括不止一個不同類型的對象。然后,被請求的元數(shù)據(jù)能被提取并且依照涉及這個或另一個數(shù)據(jù)庫的能重建該邏輯單元的次序被送回。雖然單一的請求可以包含多重讀取,但是它是單一的請求,因為只有一個對象類型(即,特定的異種對象類型)被打開而且用戶不需要知道內(nèi)在的依從關(guān)系就能提取所有的成員對象。
例如,邏輯單元可以包括表及其相關(guān)對象,例如,但不限于約束、索引和/或授權(quán)。其它的邏輯單元可以包括但不限于模式和數(shù)據(jù)庫。
附圖簡要說明具有異種對象類型的數(shù)據(jù)庫系統(tǒng)的上述的和其它的對象、特征和優(yōu)勢從下面用同樣的參考符號在不同的視圖中處處表示同一部份的附圖所舉例說明的特定的實施方案的更具體的描述將變得顯而易見。
圖1是舉例說明在本系統(tǒng)的實例中創(chuàng)造的對象和它們的關(guān)系的模式圖。
圖2是舉例說明除了支持同種對象類型之外還支持本系統(tǒng)的異種對象類型的metaview$表的示意圖。
圖3是舉例說明除了支持同種對象類型之外還支持本系統(tǒng)的異種對象類型的metafilter$表的示意圖。
圖4是舉例說明用來支持本系統(tǒng)的異種對象類型的metascript$表的示意圖。
圖5是舉例說明用來支持本系統(tǒng)的異種對象類型的metascriptfilter$表的示意圖。
圖6是本系統(tǒng)的實施方案的代表性組織的方框圖。
本發(fā)明的詳細(xì)描述本系統(tǒng)把異種類型添加到先前用美國專利申請第S/N09/672,914號描述的元數(shù)據(jù)API中。
特定的異種對象類型是通過將若干行插入目錄、或系統(tǒng)、表添加的。一張metaview$表包含所有對象類型的名字,標(biāo)記指示類型究竟是同種的還是異種的。另一張metascript$表定義屬于異種類型的成員類型和它們的次序。實現(xiàn)FETCH功能的代碼決定對象類型是否是同種的(在這種情況下它做常態(tài)處理),或者對象類型是否是異種的(在這種情況下它為每種成員類型遞歸地調(diào)用它本身)。
異種對象類型可以被遞歸地嵌套,即,一種異種類型可以是另一種異種類型的成員。如同采用同種對象類型那樣,用戶能規(guī)定涉及限制將被讀取的那個對象組合的異種對象類型的過濾器。這些過濾器被轉(zhuǎn)換成涉及成員類型的過濾器;轉(zhuǎn)換在另一張目錄表(metascriptfilter$)中規(guī)定的。
實施例下面的實施例示范元數(shù)據(jù)API(dbms_metadata)怎樣讀取異種對象,即,雖然它們是不同對象類型的但是仍然包括邏輯單元的對象的有序的組合。在這個實施例中,異種對象是由表及其索引組成的TABLE_EXPORT型的。
首先,假定下面的腳本是為了在模式“SCOTT”中產(chǎn)生名為“EMPLOYEE”的兩列(“empno”和“empname”)的表而執(zhí)行的。兩個索引(即“EMPIND1”和“EMPIND2”)是依照該表產(chǎn)生的。與模式的連接是假定的。
產(chǎn)生表EMPLOYEE(empno number,empname varchar2(30));產(chǎn)生關(guān)于EMPLOYEE(empno)的索引EMP_IND1;產(chǎn)生關(guān)于EMPLOYEE(empname)的索引EMP_IND2;圖1是舉例說明由此產(chǎn)生的對象和它們的關(guān)系的模式圖。TABLE_EXPORT型的異種對象20包括表“EMPLOYEE”12,它有兩列(empno18、empname19)和關(guān)于每列的兩個索引14、16。
我們現(xiàn)在使用包括單一的OPEN、一個或多個FETCHES和單一的CLOSE指令的單一請求讀取包括表12及其兩個索引14、16的異種TABLE_EXPORT對象20。異種對象20的成員12、14、16依照有效的創(chuàng)造次序被送回。即,表12首先被送回,因為它必須在索引14、16之前產(chǎn)生。
下面是使用本發(fā)明提取異種對象的可仿效的腳本。Put_clob()表示能打印出clob(字符大的對象)的內(nèi)容的一些簡單功能。
<pre listing-type="program-listing"><![CDATA[declareh NUMBER;th NUMBER;c clob;beginh=dbms_metadata.open(‘TABLE_EXPORT’);dbms_metadata.set_filter(h,‘NAME’,‘EMPLOYEE’);dbms_metadata.set_filter(h,‘SCHEMA’ ,‘SCOTT’) th=dbms_metadata.add_transform(h,‘DDL’); LOOP dbms_lob.createtemporary(c,true); dbms_metadata.fetch_clob(h,c); EXIT WHEN c IS NuLL(當(dāng)c為零時退出); Put_clob(c); dbms_lob.freetemporary(c); END LOOP; dbms_metadata.close(h);END;]]></pre>每一個dbms_metadata調(diào)用都是在美國專利申請第S/N09/672,914號中描述的。如同在那份申請中揭示的那樣,調(diào)用僅僅應(yīng)用于同種對象。本系統(tǒng)將dbms_metadata接口擴展,以便包括諸如DATABASE_EXPORT、SCHEMA_EXPORT、TABLE_EXPORT、TABLESPACE_EXPORT之類的異種對象類型。
在這種情況下,OPEN調(diào)用dbms_metadata.open提供正在為它請求元數(shù)據(jù)的異種類別TABLE_EXPORT。句柄h被送回,以便在正在為它請求元數(shù)據(jù)的那組對象的全部后續(xù)操作中使用。
第一過濾器調(diào)用dbms_metadata.set_filter()限制對名為“EMPLOYEE”的表的搜索,而第二過濾器調(diào)用限制對名為“SCOTT”的模式的搜索。
對dbms_metadata.add_transform()的調(diào)用引起FETCH指令的輸出(見下文),其格式由通常的XML格式轉(zhuǎn)化為DDL格式。然后,結(jié)果可直接用來重建涉及另一個數(shù)據(jù)庫的異種對象20。
在用LOOP行和END LOOP行括在一起的循環(huán)之內(nèi),臨時的大字符對象(clob)被產(chǎn)生。FETCH調(diào)用dbms_meatdata.fetch_clob()將來自被指定為clob的異種對象的成員對象送回。如果所有這樣的對象都已被送回,則將NULL(零)送回,并且退出循環(huán)。
否則,就這個實施例的目的而言,對象被顯示(put_clob())。接下來,臨時的clob被向上釋放。循環(huán)重復(fù),每次都送回不同的成員對象,直到所有的成員都被讀取為止。
最后,進(jìn)行CLOSE調(diào)用dbms_metadata.close(),以便結(jié)束該請求。
上述腳本的執(zhí)行導(dǎo)致下面的輸出,其中SCOTT是表和索引皆屬于其的模式的名稱。
…CREATE TABLE“SCOTT”.“EMPLOYEE”(“EMPNO”NUMBER,“EMPNAME”VARCHAR2(30))PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGINGSTORAGE(INITIAL 10240 NEXT 10240 MINEXTENTS 1 MAXEXTENTS121 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT)TABLESPACE“SYSTEM”
……CREATE INDEX“SCOTT”.“EMP_IND1”O(jiān)N“SCOTT”.“EMPLOYEE”(“EMPNO”)PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 10240 NEXT 10240 MINEXTENTS 1 MAXEXTENTS 121PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOLDEFAULT)TABLESPACE“SYSTEM”……CREATE INDEX“SCOTT”.“EMP_IND2”O(jiān)N“SCOTT”.“EMPLOYEE”(“EMPNAME”)PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE(INITIAL 10240 NEXT 10240 MINEXTENTS 1 MAXEXTENTS 121PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOLDEFAULT)TABLESPACE“SYSTEM”…結(jié)果包括三個CREATE語句,一個用于表,另外兩個分別用于每個索引。
圖2-5是用來支持異種對象類型的表的示意圖。圖2和3中的表已在現(xiàn)有技術(shù)中被定義,但是被進(jìn)一步用來支持異種對象類型。圖4和5中的表是新的。
圖2舉例說明在美國專利申請第S/N 09/672,914號中描述的metaview$表30中的四個條目31-34。這張表包含所有對象類型的名稱。在本發(fā)明的實施方案中,性質(zhì)區(qū)域43中的新數(shù)值(例如,2)是為了指出該行識別異種對象類型而定義的。在這里,31-34每行的性質(zhì)區(qū)域43中的數(shù)值2的出現(xiàn)表明,在類型區(qū)域41中識別的類型(即DATABASE_EXPORT、SCHEMA_EXPORT、TABLESSPACE_EXPORT和TABLE_EXPORT)都是異種對象類型。
在美國專利申請第S/N09/672,914號中描述的其它區(qū)域42、44-49就本系統(tǒng)而言沒有任何特別的興趣,因此不被進(jìn)一步討論。
圖3舉例說明用來實現(xiàn)本系統(tǒng)的實施方案的metafilter$表50。這張表也是在美國專利申請第S/N09/672,914號中描述的。為了限制對特定的邏輯單元的讀取,過濾器被指定。metafilter$表50定義對每種對象類型都有效的過濾器的組合。過濾器區(qū)域53提供過濾器的名稱,而類型區(qū)域54保存被命名的過濾器對它有效的類型的名稱。例如,在這里行51和52分別地表明“NAME”和“SCHEMA”是能應(yīng)用于異種類型TABLE_EXPORT的有效過濾器。
圖4舉例說明metascript$表60,一張用來實現(xiàn)本系統(tǒng)的實施方案的新表。metascript$表60描述給定的異種對象類型中的成員類型和不同成員類型的讀取次序。
對于每個異種類型,都有一行用于每個成員類型。ptype區(qū)域64保存與特定的行對應(yīng)的異種類型的名稱。seq#區(qū)域65是序號。ltype區(qū)域66保存葉或成員對象名稱。葉或成員對象是按seq#區(qū)域65指定的順序打開和讀取的。
模型區(qū)域67識別模型性質(zhì)。這個區(qū)域67具體地說與本系統(tǒng)不是特別有關(guān),因此不被進(jìn)一步討論。
為了示范的目的,舉例說明61-63行。在每行的seq#區(qū)域65中對應(yīng)的序號表明就類型TABLE_EXPORT的異種對象而言類型TABLE的對象將被首先讀取(行61,seq#=10),接下來是對象OBJECT_GRANT(行62,seq#=20)和最后,在這個實施例中是所有的INDEX對象(行63,seq#=30)。當(dāng)然,在活的數(shù)據(jù)庫中,這些行可以按隨機的順序,這就是為什么需要序號區(qū)域65。
圖5舉例說明metascriptfilter$表70,它也是為實現(xiàn)本系統(tǒng)實施方案而創(chuàng)造的新表。metascriptfilter$表70將在FILTER語句中提供的并且在來自metafilter$表50的區(qū)域53中相匹配的過濾器轉(zhuǎn)換成適合每個成員對象類型的過濾器及其名稱。
在metascriptfilter$表70中的每行都將用戶提供的過濾器名稱轉(zhuǎn)換成類型特有的過濾器。例如,NAME過濾器可以是對異種對象類型TABLE_EXPORT通過調(diào)用上述程序中諸如dbms_metadata.set_filter(h,‘NAME’,‘EMPLOYEE’)之類的行指定的,其中異種對象類型的NAME過濾器被設(shè)定為EMPLOYEE,以致只有NAME=EMPLOYEE的對象被選定。
圖5的可仿效的metacriptfilter$表70將用于TABLE_EXPORT對象的NAME過濾器和SCHEMA過濾器分別轉(zhuǎn)換成用于TABLE對象的NAME過濾器和SCHEMA過濾器,對應(yīng)于行71和72,其中seq#=10。同樣,行73和74將NAME過濾器和SCHEMA過濾器轉(zhuǎn)換成適合OBJECT_GRANT對象的BASE_OBJECT_NAME和BASE_OBJECT_SCHEMA(seq#=20),而行75和76(seq#=30)將NAME過濾器和SCHEMA過濾器轉(zhuǎn)換成適合INDEX對象的BASE_OBJECT_NAME和BASE_OBJECT_SCHEMA。
在所提供的實施例中,所有的成員對象都有過濾器,其數(shù)值對應(yīng)于涉及TABLE_EXPORT對象的NAME和SCHEMA過濾器。然而,固定的文本或布爾數(shù)值(例如,TRUE或FALSE)可能是為過濾器規(guī)定的。
就預(yù)定數(shù)值的或固定數(shù)值的過濾器而言,過濾器數(shù)值被儲存在用于文本數(shù)值的vcval區(qū)域84中或用于布爾數(shù)值的bval區(qū)域85中。另一方面,如果該數(shù)值是從傳送給腳本的過濾器承襲的,那么過濾器的名稱被儲存在pfilter區(qū)域83中。
metascriptfilter$表70能通過增加附加區(qū)域(fileds)被輕易地擴展到支持諸如數(shù)字、日期之類附加數(shù)據(jù)類型的固定數(shù)值過濾器。
行中的seq#區(qū)域81包含序號并且對應(yīng)于metascript$表的seq#區(qū)域65(圖4)。如果數(shù)值不是固定的,過濾器區(qū)域82包含過濾器名稱。pfilter區(qū)域83包括母體過濾器名稱。最后,模型區(qū)域86與本系統(tǒng)不特別有關(guān),因此不被進(jìn)一步討論。
在本系統(tǒng)的一個實施方案中,遞歸的OPEN調(diào)用被進(jìn)行,從而按依照metascript$表的次序規(guī)定對象類型。在每次OPEN調(diào)用之后,metascriptfilter$表被檢查,而且SET_FILTER是用適當(dāng)?shù)倪^濾器名稱和數(shù)值執(zhí)行的。
因此,在說明性的實施例中,NAME=EMPLOYEE的TABLE對象首先被讀取,接下來是BASE_OBJECT_NAME=EMPLOYEE的OBJECT_GRANTS對象,然后是BASE_OBJECT_NAME=EMPLOYEE的INDEX對象。
API允許用戶為特定的成員類型規(guī)定的過濾器。例如,在讀取來自DATABASE_EXPORT異種類型的對象的時候,用戶或許想要濾除SYSTEM表空間(每個數(shù)據(jù)庫都自動地具有SYSTEM表空間,因此它不需要在目標(biāo)數(shù)據(jù)庫上重建)。為了這樣做,用戶可以規(guī)定只適用于TABLESPACE對象的NAME_EXPR過濾器,意思是“包括名稱不是‘SYSTEM’的任何表空間,例如,h=dbms_metadata.open(‘DATABASE_EXPORT’);dbms_metadata.set_filter(h,‘NAME_EXPR’,‘?。健錝YSTEM″’,‘TABLESPANCE’;圖6是本系統(tǒng)的實施方案的代表性的組織的方框圖,熟悉這項技術(shù)的人將理解雖然其它組織是可能的,但它們將仍然落在本發(fā)明的范圍之內(nèi)。
在這里,元數(shù)據(jù)應(yīng)用程序接口(API)100接受來自用戶或應(yīng)用的異種對象類型請求102。這樣的請求包括但不限于OPEN指令和CLOSE指令以及一個或多個SET_FILTER指令和FETCH指令。這些指令被傳送給按依照metaview$表30和metascript$表60規(guī)定的次序組織讀取被請求的異種對象類型的成員對象類型的元數(shù)據(jù)析取器104。
過濾器轉(zhuǎn)換程序106如同先前描述的那樣依照metafilter$表50和metascriptfilter$表70將在請求102中命名的異種對象類型過濾器轉(zhuǎn)換成適合每個對象類型的成員對象過濾器。
然后,元數(shù)據(jù)析取器104從一個或多個邏輯單元20(即,依照用戶/應(yīng)用程序在請求102中提供的異種對象類型和過濾器)提取(即,讀取)成員對象。
在本系統(tǒng)的一個實施方案中,元數(shù)據(jù)是作為XML文件被提取的。格式化程序或格式轉(zhuǎn)換程序108依照請求102將XML文件格式化成其它格式,例如DDL。
最后,API 100將這個格式化的數(shù)據(jù)110返回到用戶/應(yīng)用程序。
本系統(tǒng)將用來在異種集合中提取對象的高水平的接口給用戶。用戶不需要知道哪些對象屬于該集合或它們的創(chuàng)造次序。
過濾能力允許用戶在定制那組被讀取的對象時有很大的柔性。
因為異種類型的定義由目錄表中的行組成,所以定義和維持新的異種對象類型是容易的。例如,在諸如Oracle的EXPORT實用程序之類的自定義程序中,增加新的異種對象類型需要廣泛的編程。
本系統(tǒng)代表當(dāng)前EXPORT實用程序的進(jìn)步,用于讀取異種集合的元數(shù)據(jù)另一方面按專利格式將元數(shù)據(jù)不透明地寫入文件的EXPORT。反之,本系統(tǒng)能使元數(shù)據(jù)對任何數(shù)據(jù)庫用戶變成透明地可用的。
在那里將增加對專門的異種集合(例如,對象的可傳送的表空間和應(yīng)用程序?qū)S米蛹?的要求。本系統(tǒng)能使新的異種集合容易定義和維持。
熟悉這項技術(shù)的人應(yīng)該承認(rèn)積極參與有異種對象類型的數(shù)據(jù)庫系統(tǒng)的這些方法可能被體現(xiàn)在包括計算機可使用的媒體的計算機程序產(chǎn)品中。例如,這樣的計算機可使用的媒體可以包括已儲存計算機可讀的程序代碼片段的可讀的存儲裝置,例如固態(tài)存儲器裝置、硬盤裝置、CD-ROM、DVD-ROM或計算機軟盤。計算機可讀的媒體也能包括將程序代碼片段作為數(shù)字的或模擬的數(shù)據(jù)信號傳送的通信或傳輸媒體,例如,總線或光學(xué)的、有線的或無線的通信鏈路。
盡管這個系統(tǒng)已參照特定的實施方案被具體地展示和描述,但是熟悉這項技術(shù)的人將理解在形式和細(xì)節(jié)方面各種不同的變化可以在不脫離權(quán)利要求書所囊括本發(fā)明的范圍的情況下完成。例如,本發(fā)明的方法能應(yīng)用于各種不同的環(huán)境,而不局限于所描述的環(huán)境。
權(quán)利要求
1.一種用來為不止一個不同類型的相關(guān)對象從數(shù)據(jù)庫提取元數(shù)據(jù)的方法,該方法包括將異種對象類型定義為不同的類型數(shù)據(jù)庫對象的集合;以及在請求讀取特定的異種對象之時,以異種對象的類型的定義為基礎(chǔ),按特定的次序從特定的異種對象中讀取成員對象。
2.根據(jù)權(quán)利要求1的方法,其中特定的次序是用來重建特定的異種對象的有效次序。
3.根據(jù)權(quán)利要求1的方法,其中異種對象類型是表輸出型。
4.根據(jù)權(quán)利要求1的方法,其中異種對象類型是數(shù)據(jù)庫輸出型。
5.根據(jù)權(quán)利要求1的方法,其中異種對象類型是模式輸出型。
6.根據(jù)權(quán)利要求1的方法,其中異種對象類型是表空間輸出型。
7.根據(jù)權(quán)利要求1的方法,其中異種對象類型包括另一種異種對象類型。
8.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括依照至少一個規(guī)定的過濾器限制一組將被讀取的成員對象。
9.根據(jù)權(quán)利要求8的方法,其中至少一個規(guī)定的過濾器依照將被讀取的成員對象的類型被轉(zhuǎn)換成第二過濾器。
10.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括在第一張表中規(guī)定異種對象類型;在第二張表中定義用于給定的異種對象類型的成員類型將依照它被送回的特定的次序;以及依據(jù)讀取指令,依照在第二張表中定義的特定次序讀取成員對象。
11.根據(jù)權(quán)利要求10的方法,進(jìn)一步包括在第三張表中規(guī)定能應(yīng)用于特定的異種對象類型的過濾器。
12.根據(jù)權(quán)利要求11的方法,進(jìn)一步包括在第四張表中規(guī)定用于個別成員對象類型的過濾器轉(zhuǎn)換。
13.根據(jù)權(quán)利要求12的方法,其中經(jīng)轉(zhuǎn)換的過濾器承襲來自為特定的異種對象類型規(guī)定的過濾器的過濾數(shù)值。
14.根據(jù)權(quán)利要求12的方法,其中在第四張表中定義的過濾器具有固定的文本數(shù)值。
15.根據(jù)權(quán)利要求12的方法,其中在第四張表中定義的過濾器具有固定的布爾數(shù)值。
16.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括以格式化的標(biāo)示語言送回元數(shù)據(jù)。
17.根據(jù)權(quán)利要求16的方法,其中格式化的標(biāo)示語言是XML。
18.根據(jù)權(quán)利要求16的方法,進(jìn)一步包括將標(biāo)示語言格式化的數(shù)據(jù)轉(zhuǎn)換成為了重建特定的異種對象而被格式化的語句。
19.一種用來從相關(guān)的數(shù)據(jù)庫中找回對象元數(shù)據(jù)的方法,該方法包括接收對在數(shù)據(jù)庫里面用于某邏輯單元的元數(shù)據(jù)的單一的請求,該邏輯單元包括不止一個不同類型的對象;提取被請求的元數(shù)據(jù);以及依照能重建邏輯單元的次序送回被提取的元數(shù)據(jù)。
20.根據(jù)權(quán)利要求19的方法,其中邏輯單元包括表和它的相關(guān)對象。
21.根據(jù)權(quán)利要求20的方法,其中相關(guān)對象是約束。
22.根據(jù)權(quán)利要求20的方法,其中相關(guān)對象是索引。
23.根據(jù)權(quán)利要求20的方法,其中相關(guān)對象是授權(quán)。
24.根據(jù)權(quán)利要求19的方法,其中邏輯單元包括模式中的全部對象。
25.根據(jù)權(quán)利要求19的方法,其中邏輯單元包括數(shù)據(jù)庫中的全部對象。
26.根據(jù)權(quán)利要求19的方法,進(jìn)一步包括使用被提取的元數(shù)據(jù)重建關(guān)于另一個數(shù)據(jù)庫的對象的邏輯單元。
27.根據(jù)權(quán)利要求19的方法,其中請求規(guī)定至少一個異種對象類型過濾器,該方法進(jìn)一步包括基于至少一個異種對象類型過濾器限制將被提取的對象。
28.根據(jù)權(quán)利要求27的方法,進(jìn)一步包括將異種對象類型過濾器轉(zhuǎn)換為適合某成員對象類型的成員對象過濾器;以及基于成員對象過濾器限制成員對象類型的成員對象。
29.根據(jù)權(quán)利要求28的方法,其中成員對象過濾數(shù)值是從異種對象類型過濾器承襲的。
30.根據(jù)權(quán)利要求28的方法,進(jìn)一步包括規(guī)定成員對象過濾器數(shù)值為固定數(shù)值。
31.根據(jù)權(quán)利要求30的方法,其中固定數(shù)值是布爾數(shù)值。
32.根據(jù)權(quán)利要求30的方法,其中固定數(shù)值是文本數(shù)值。
33.根據(jù)權(quán)利要求19的方法,其中單一的請求包括單一的OPEN指令、單一的CLOSE指令和至少一個FETCH指令。
34.一種在其中定義不止一個不同類型的相關(guān)對象的數(shù)據(jù)庫管理系統(tǒng),其中包括處理器;以及與處理器通信的存儲系統(tǒng),該存儲系統(tǒng)包括作為不同類型的成員數(shù)據(jù)庫對象的集合的至少一個異種對象類型的定義;以及用來依照規(guī)定的次序讀取至少一個異種對象類型中的成員對象類型的次序規(guī)定。
35.根據(jù)權(quán)利要求34的數(shù)據(jù)庫管理系統(tǒng),其中規(guī)定的次序是用來重建特定的異種對象的有效次序。
36.根據(jù)權(quán)利要求34的數(shù)據(jù)庫管理系統(tǒng),其中異種對象類型是表輸出型。
37.根據(jù)權(quán)利要求34的數(shù)據(jù)庫管理系統(tǒng),其中異種對象類型是數(shù)據(jù)庫輸出型。
38.根據(jù)權(quán)利要求34的數(shù)據(jù)庫管理系統(tǒng),其中異種對象類型是模式輸出型。
39.根據(jù)權(quán)利要求34的數(shù)據(jù)庫管理系統(tǒng),其中異種對象類型是表空間輸出型。
40.根據(jù)權(quán)利要求34的數(shù)據(jù)庫管理系統(tǒng),其中異種對象類型包括另一種異種對象類型。
41.根據(jù)權(quán)利要求34的數(shù)據(jù)庫管理系統(tǒng),進(jìn)一步包括與某異種對象類型相關(guān)聯(lián)的過濾器,一組被讀取的所述異種對象類型的成員對象依照該過濾器將受到限制。
42.根據(jù)權(quán)利要求41的數(shù)據(jù)庫管理系統(tǒng),進(jìn)一步包括依照正在被讀取的成員對象的類型將至少一個規(guī)定的過濾器轉(zhuǎn)換成第二過濾器的過濾器轉(zhuǎn)換程序。
43.根據(jù)權(quán)利要求34的數(shù)據(jù)庫管理系統(tǒng),進(jìn)一步包括規(guī)定異種對象類型的第一張表;以及規(guī)定依照它將適合給定的異種對象類型的成員類型送回的次序的第二張表。
44.根據(jù)權(quán)利要求43的數(shù)據(jù)庫管理系統(tǒng),進(jìn)一步包括規(guī)定能應(yīng)用于特定的異種對象類型的過濾器的第三張表。
45.根據(jù)權(quán)利要求44的數(shù)據(jù)庫管理系統(tǒng),進(jìn)一步包括為個別的成員對象類型提供過濾器轉(zhuǎn)換的第四張表。
46.根據(jù)權(quán)利要求45的數(shù)據(jù)庫管理系統(tǒng),其中經(jīng)轉(zhuǎn)換的過濾器承襲來自為特定的異種對象類型規(guī)定的過濾器的過濾數(shù)值。
47.根據(jù)權(quán)利要求45的數(shù)據(jù)庫管理系統(tǒng),其中在第四張表中定義的過濾器具有固定的文本數(shù)值。
48.根據(jù)權(quán)利要求45的數(shù)據(jù)庫管理系統(tǒng),其中在第四張表中定義的過濾器具有固定的布爾數(shù)值。
49.根據(jù)權(quán)利要求34的數(shù)據(jù)庫管理系統(tǒng),進(jìn)一步包括元數(shù)據(jù)是以格式化的標(biāo)示語言送回的。
50.根據(jù)權(quán)利要求49的數(shù)據(jù)庫管理系統(tǒng),其中格式化的標(biāo)示語言是XML。
51.根據(jù)權(quán)利要求49的數(shù)據(jù)庫管理系統(tǒng),進(jìn)一步包括將標(biāo)示語言格式化的數(shù)據(jù)轉(zhuǎn)換成為重建特定的異種對象而格式化的語句的轉(zhuǎn)換程序。
52.一種用來儲存適合取回的數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng),其中包括接收對在數(shù)據(jù)庫里面用于某邏輯單元的元數(shù)據(jù)的單一的請求的接口,該邏輯單元包括不止一個不同類型的對象;提取被請求的元數(shù)據(jù)的析取器;以及依照規(guī)定的次序?qū)⒈惶崛〉脑獢?shù)據(jù)格式化并送回的格式化程序。
53.根據(jù)權(quán)利要求52的數(shù)據(jù)庫管理系統(tǒng),其中規(guī)定的次序是能重建邏輯單元的次序。
54.根據(jù)權(quán)利要求52的數(shù)據(jù)庫管理系統(tǒng),其中邏輯單元包括表和它的相關(guān)對象。
55.根據(jù)權(quán)利要求54的數(shù)據(jù)庫管理系統(tǒng),其中相關(guān)對象是約束。
56.根據(jù)權(quán)利要求54的數(shù)據(jù)庫管理系統(tǒng),其中相關(guān)對象是索引。
57.根據(jù)權(quán)利要求54的數(shù)據(jù)庫管理系統(tǒng),其中相關(guān)對象是授權(quán)。
58.根據(jù)權(quán)利要求52的數(shù)據(jù)庫管理系統(tǒng),其中邏輯單元包括模式中的全部對象。
59.根據(jù)權(quán)利要求52的數(shù)據(jù)庫管理系統(tǒng),其中邏輯單元包括數(shù)據(jù)庫中的全部對象。
60.根據(jù)權(quán)利要求52的數(shù)據(jù)庫管理系統(tǒng),其中被提取的元數(shù)據(jù)用來重建關(guān)于另一個數(shù)據(jù)庫的對象邏輯單元。
61.根據(jù)權(quán)利要求52的數(shù)據(jù)庫管理系統(tǒng),其中析取器只限于以請求中規(guī)定的異種對象類型過濾器為基礎(chǔ)的對象。
62.根據(jù)權(quán)利要求61的數(shù)據(jù)庫管理系統(tǒng),進(jìn)一步包括將異種對象類型過濾器轉(zhuǎn)換成與成員對象類型相關(guān)聯(lián)的成員對象過濾器的過濾器轉(zhuǎn)換程序,析取器只限于以成員對象過濾器為基礎(chǔ)的成員對象類型的成員對象。
63.根據(jù)權(quán)利要求62的數(shù)據(jù)庫管理系統(tǒng),其中成員對象過濾數(shù)值是從異種對象類型過濾器承襲的。
64.根據(jù)權(quán)利要求62的數(shù)據(jù)庫管理系統(tǒng),其中成員對象過濾器數(shù)值被規(guī)定為固定的數(shù)值。
65.根據(jù)權(quán)利要求64的數(shù)據(jù)庫管理系統(tǒng),其中固定的數(shù)值是布爾數(shù)值。
66.根據(jù)權(quán)利要求64的數(shù)據(jù)庫管理系統(tǒng),其中固定的數(shù)值是文本數(shù)值。
67.根據(jù)權(quán)利要求52的數(shù)據(jù)庫管理系統(tǒng),其中單一的請求包括單一的OPEN指令、單一的CLOSE指令和至少一個FETCH指令。
68.一種計算機程序產(chǎn)品,用來為不止一個不同類型的相關(guān)對象從數(shù)據(jù)庫提取元數(shù)據(jù),該計算機程序產(chǎn)品包括上面有包括程序代碼的計算機可讀的代碼的計算機可使用的媒體,其中的程序代碼將異種對象類型定義為不同類型的數(shù)據(jù)庫對象的集合;以及在請求讀取特定的異種對象之時,基于異種對象類型的定義依照特定的次序從特定的異種對象中讀取成員對象。
69.一種用來從相關(guān)的數(shù)據(jù)庫找回對象元數(shù)據(jù)的計算機程序產(chǎn)品,該計算機程序產(chǎn)品包括上面有包括程序代碼的計算機可讀的代碼的計算機可使用的媒體,其中程序代碼接收對在數(shù)據(jù)庫里面用于某邏輯單元的元數(shù)據(jù)的單一的請求,該邏輯單元包括不止一個不同類型的對象;提取被請求的元數(shù)據(jù);以及依照能重建邏輯單元的次序送回被提取的元數(shù)據(jù)。
全文摘要
用來為不止一個相關(guān)的不同類型的目標(biāo)從數(shù)據(jù)庫提取元數(shù)據(jù)的方法包括把異種對象類型定義為不同類型的數(shù)據(jù)庫對象的集合。在請求讀取特定的異種對象之時,異種對象的成員對象是以異種對象的類型的定義為基礎(chǔ)按特定的次序(例如,用來重建特定的異種對象的有效次序)從特定的異種對象中讀取的。將被讀取的成員對象的組合能被過濾器限制,過濾器本身可以依照將被讀取的成員對象的類型被轉(zhuǎn)換成規(guī)定的第二過濾器。這樣轉(zhuǎn)換的過濾器能承襲來自在對特定的異種對象類型的請求中規(guī)定的過濾器的數(shù)值,或者能具有某種數(shù)據(jù)類型的固定數(shù)值。被提取的元數(shù)據(jù)能為重建特定的異種對象而被格式化。
文檔編號G06F12/00GK1592908SQ02823313
公開日2005年3月9日 申請日期2002年12月9日 優(yōu)先權(quán)日2001年12月10日
發(fā)明者李·B·巴頓 申請人:奧瑞斯勒國際有限公司