具有异种对象类型的数据库系统技术方案

技术编号:2864985 阅读:263 留言:0更新日期:2012-04-11 18:40
用来为不止一个相关的不同类型的目标从数据库提取元数据的方法包括把异种对象类型定义为不同类型的数据库对象的集合。在请求读取特定的异种对象之时,异种对象的成员对象是以异种对象的类型的定义为基础按特定的次序(例如,用来重建特定的异种对象的有效次序)从特定的异种对象中读取的。将被读取的成员对象的组合能被过滤器限制,过滤器本身可以依照将被读取的成员对象的类型被转换成规定的第二过滤器。这样转换的过滤器能承袭来自在对特定的异种对象类型的请求中规定的过滤器的数值,或者能具有某种数据类型的固定数值。被提取的元数据能为重建特定的异种对象而被格式化。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术的现有技术典型的相关数据库的逻辑结构是用它的目录对象确定的。这些对象可能具有许多种对象类型,例如,表空间、用户、表、视图、序列、存储程序等。在Oracle 9i中引入的Oracle元数据API提供用来为一个或多个特定对象类型的对象提取元数据的中心设施。9i的实现使用OPEN-FETCH-CLOSE编程模型用户发出用于特定对象类型的OPEN指令,然后重复地读取那个类型的对象;在完成之时,用户关闭该对象类型环境。用户能规定一个或多个限制那组要读取的对象的过滤器。Oracle 9i的实现提供一种用来在特定的对象类型内读取对象的有力的和有柔性的机制。这个API是在2000年9月28日申请的美国专利申请第09/672,914号“Aggregating and manipulating dictionary metadata ina database system(在数据库系统中聚集和操纵目录元数据)”中描述的,在此通过引证将其全部教导完整地并入。本专利技术的概述用户可能时常希望在包括某逻辑单元时候提取适合属于不同对象类型的对象的逻辑组合的元数据。实例是(1)表及其所有的相关对象(约束、索引、授权等);(2)模式中的全部对象(表、视图、类型,程序等);(3)数据库中的全部对象(表空间、用户、重新运行部分等,以及模式及其内容)。此外,用户可能希望采用这个提取的元数据并且使用它重建关于另一个数据库的对象的逻辑组合。然而,为了重建对象的组合,它们必须是按特定的次序(例如,在其索引之前的表)创造的。不幸的是,创造次序时常是不明显的。在早期的解决方案中,用户不得不写入囊括组成那个逻辑组合的对象以及用于那些对象的创造次序的知识的自定义代码。Oracle Export公用程序是一个这样的自定义程序。这样的自定义程序通常是为它们的专用目的设计好的,但是可能难以适应新的用途。本系统能用“异种对象类型”(即,虽然是不同对象类型的但仍然包括逻辑单元的对象的集合)提高在美国专利申请第09/672,914号中描述的Oracle元数据API。编程模型可以是在Oracle 9i中使用的同一OPEN-FETCH-CLOSE模型。差别在于(1)用户在OPEN语句中规定异种对象类型的名字,(2)被读取的对象属于不同的同种对象类型,以及(3)对象是依照有效的创造次序送回的。本系统的特定的实施方案是为不止一个不同类型的相关对象从数据库提取元数据的方法。该方法包括将异种对象类型定义为不同类型的数据库对象的集合。在请求读取特定的异种对象之时,异种对象的成员对象能从特定的异种对象中读取。成员对象能基于异种对象类型的定义依照特定的次序(例如,用来重建特定的异种对象的有效次序)被送回。可仿效的异种对象类型是表输出型、数据库输出型、模式输出型和表空间输出型。成员对象可以是同种对象类型,或者可以是其它的异种对象类型。那组将被读取的成员对象能依照至少一个本身可以依照被读取的成员对象的类型被转换为第二过滤器的规定的过滤器受到限制。在特定的实施方案中,第一张表能规定某对象类型究竟是异种的还是同种的对象类型。然后,第二张表能定义将用于给定的异种对象类型的成员类型送回的特定次序。依照读取指令,成员对象能依照在第二张表中定义的特定次序被读取。第三张表能规定能应用于特定的异种对象类型的过滤器,而第四张表能规定用于个别的成员对象类型的过滤器转换。这样转换的过滤器能承袭来自请求中为特定的异种对象类型规定的过滤器数值。作为替代,过滤器可以有诸如文本、布尔、数子、日期之类的某种数据类型的固定数值。更具体地说,被提取的元数据能使用诸如XML之类的标示语言格式化。这种标示语言格式化的数据能被转换成为重建特定的异种对象而格式化的语句。在本系统中,对象元数据可以仅仅使用对在数据库里面用于某逻辑单元的元数据的单一请求从相关的数据库中提取,在这种场合该逻辑单元包括不止一个不同类型的对象。然后,被请求的元数据能被提取并且依照涉及这个或另一个数据库的能重建该逻辑单元的次序被送回。虽然单一的请求可以包含多重读取,但是它是单一的请求,因为只有一个对象类型(即,特定的异种对象类型)被打开而且用户不需要知道内在的依从关系就能提取所有的成员对象。例如,逻辑单元可以包括表及其相关对象,例如,但不限于约束、索引和/或授权。其它的逻辑单元可以包括但不限于模式和数据库。附图简要说明具有异种对象类型的数据库系统的上述的和其它的对象、特征和优势从下面用同样的参考符号在不同的视图中处处表示同一部份的附图所举例说明的特定的实施方案的更具体的描述将变得显而易见。附图说明图1是举例说明在本系统的实例中创造的对象和它们的关系的模式图。图2是举例说明除了支持同种对象类型之外还支持本系统的异种对象类型的metaview$表的示意图。图3是举例说明除了支持同种对象类型之外还支持本系统的异种对象类型的metafilter$表的示意图。图4是举例说明用来支持本系统的异种对象类型的metascript$表的示意图。图5是举例说明用来支持本系统的异种对象类型的metascriptfilter$表的示意图。图6是本系统的实施方案的代表性组织的方框图。本专利技术的详细描述本系统把异种类型添加到先前用美国专利申请第S/N09/672,914号描述的元数据API中。特定的异种对象类型是通过将若干行插入目录、或系统、表添加的。一张metaview$表包含所有对象类型的名字,标记指示类型究竟是同种的还是异种的。另一张metascript$表定义属于异种类型的成员类型和它们的次序。实现FETCH功能的代码决定对象类型是否是同种的(在这种情况下它做常态处理),或者对象类型是否是异种的(在这种情况下它为每种成员类型递归地调用它本身)。异种对象类型可以被递归地嵌套,即,一种异种类型可以是另一种异种类型的成员。如同采用同种对象类型那样,用户能规定涉及限制将被读取的那个对象组合的异种对象类型的过滤器。这些过滤器被转换成涉及成员类型的过滤器;转换在另一张目录表(metascriptfilter$)中规定的。实施例下面的实施例示范元数据API(dbms_metadata)怎样读取异种对象,即,虽然它们是不同对象类型的但是仍然包括逻辑单元的对象的有序的组合。在这个实施例中,异种对象是由表及其索引组成的TABLE_EXPORT型的。首先,假定下面的脚本是为了在模式“SCOTT”中产生名为“EMPLOYEE”的两列(“empno”和“empname”)的表而执行的。两个索引(即“EMPIND1”和“EMPIND2”)是依照该表产生的。与模式的连接是假定的。产生表EMPLOYEE(empno number,empname varchar2(30));产生关于EMPLOYEE(empno)的索引EMP_IND1;产生关于EMPLOYEE(empname)的索引EMP_IND2;图1是举例说明由此产生的对象和它们的关系的模式图。TABLE_EXPORT型的异种对象20包括表“EMPLOYEE”12,它有两列(empno18、empname19)和关于每列的两个索引14、16。我们现在使用包括单一的OPEN、一个或多个FETCHES和单一的CLOSE指令的单一请求读取本文档来自技高网...

【技术保护点】
一种用来为不止一个不同类型的相关对象从数据库提取元数据的方法,该方法包括:    将异种对象类型定义为不同的类型数据库对象的集合;以及    在请求读取特定的异种对象之时,以异种对象的类型的定义为基础,按特定的次序从特定的异种对象中读取成员对象。

【技术特征摘要】
US 2001-12-10 10/014,0381.一种用来为不止一个不同类型的相关对象从数据库提取元数据的方法,该方法包括将异种对象类型定义为不同的类型数据库对象的集合;以及在请求读取特定的异种对象之时,以异种对象的类型的定义为基础,按特定的次序从特定的异种对象中读取成员对象。2.根据权利要求1的方法,其中特定的次序是用来重建特定的异种对象的有效次序。3.根据权利要求1的方法,其中异种对象类型是表输出型。4.根据权利要求1的方法,其中异种对象类型是数据库输出型。5.根据权利要求1的方法,其中异种对象类型是模式输出型。6.根据权利要求1的方法,其中异种对象类型是表空间输出型。7.根据权利要求1的方法,其中异种对象类型包括另一种异种对象类型。8.根据权利要求1的方法,进一步包括依照至少一个规定的过滤器限制一组将被读取的成员对象。9.根据权利要求8的方法,其中至少一个规定的过滤器依照将被读取的成员对象的类型被转换成第二过滤器。10.根据权利要求1的方法,进一步包括在第一张表中规定异种对象类型;在第二张表中定义用于给定的异种对象类型的成员类型将依照它被送回的特定的次序;以及依据读取指令,依照在第二张表中定义的特定次序读取成员对象。11.根据权利要求10的方法,进一步包括在第三张表中规定能应用于特定的异种对象类型的过滤器。12.根据权利要求11的方法,进一步包括在第四张表中规定用于个别成员对象类型的过滤器转换。13.根据权利要求12的方法,其中经转换的过滤器承袭来自为特定的异种对象类型规定的过滤器的过滤数值。14.根据权利要求12的方法,其中在第四张表中定义的过滤器具有固定的文本数值。15.根据权利要求12的方法,其中在第四张表中定义的过滤器具有固定的布尔数值。16.根据权利要求1的方法,进一步包括以格式化的标示语言送回元数据。17.根据权利要求16的方法,其中格式化的标示语言是XML。18.根据权利要求16的方法,进一步包括将标示语言格式化的数据转换成为了重建特定的异种对象而被格式化的语句。19.一种用来从相关的数据库中找回对象元数据的方法,该方法包括接收对在数据库里面用于某逻辑单元的元数据的单一的请求,该逻辑单元包括不止一个不同类型的对象;提取被请求的元数据;以及依照能重建逻辑单元的次序送回被提取的元数据。20.根据权利要求19的方法,其中逻辑单元包括表和它的相关对象。21.根据权利要求20的方法,其中相关对象是约束。22.根据权利要求20的方法,其中相关对象是索引。23.根据权利要求20的方法,其中相关对象是授权。24.根据权利要求19的方法,其中逻辑单元包括模式中的全部对象。25.根据权利要求19的方法,其中逻辑单元包括数据库中的全部对象。26.根据权利要求19的方法,进一步包括使用被提取的元数据重建关于另一个数据库的对象的逻辑单元。27.根据权利要求19的方法,其中请求规定至少一个异种对象类型过滤器,该方法进一步包括基于至少一个异种对象类型过滤器限制将被提取的对象。28.根据权利要求27的方法,进一步包括将异种对象类型过滤器转换为适合某成员对象类型的成员对象过滤器;以及基于成员对象过滤器限制成员对象类型的成员对象。29.根据权利要求28的方法,其中成员对象过滤数值是从异种对象类型过滤器承袭的。30.根据权利要求28的方法,进一步包括规定成员对象过滤器数值为固定数值。31.根据权利要求30的方法,其中固定数值是布尔数值。32.根据权利要求30的方法,其中固定数值是文本数值。33.根据权利要求19的方法,其中单一的请求包括单一的OPEN指令、单一的CLOSE指令和至少一个FETCH指令。34.一种在其中定义不止一个不同类型的相关对象的数据库管理系统,其中包括处理器;以及与处理器通信的存储系统,该存储系统包括作为不同类型的成员数据库对象的集合的至少一个异种对象类型的定义;以及用来依照规定的次序读取至少一个异种对象类型中的成员对象类型的次序规定。35.根据权利要求34的数据库管理系统,其中规定的次序是用来重建特定的异种对象的有效次序。36.根据权利要求34的数据库管理系统,其中异种对象类型是表输出型。37.根据权利要求34的数据库管理系统,其中异种对象类型是数据库输出型。3...

【专利技术属性】
技术研发人员:李B巴顿
申请(专利权)人:奥瑞斯勒国际有限公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1