数据库元数据的获取方法及装置的制造方法_2

文档序号:9597924阅读:来源:国知局
据库的元数据信息,例如该数据库生成了哪些表、每个表中包含哪些字段等等。本实施例主要涉及的是三个系统表,即系统对象表、系统架构表及系统属性表。
[0053]系统对象表中包含目标数据库中所有的数据对象,如有哪些表、存储过程、视图等。系统架构表是数据对象的容器,即相同类型的数据库对象被存储在同一系统架构表中。系统架构表中存储有数据对象的数据结构信息。系统属性表中存储有用户为数据库自定义的各种属性,例如对字段的说明及描述等。
[0054]需要说明的是,不同类型、不同版本的数据库中,系统表的名称及形式可能存在不同。以 Microsoft SQL Server 2005 为例进行说明,在 Microsoft SQL Server 2005 中,系统对象表为sys.0bjects,系统架构表为sys.schemas,系统属性表为sys.extended_properties。另外,在实际应用中,可以并非局限于以上三个系统表,还可以是其他,如系统表syscolumns,该系统表中保存有数据表的列信息,又如系统表systypes,该系统表中保存有数据库的用户定义数据类型信息。当然,此处两个系统表仅仅是示例说明,本申请可以并不局限于此。
[0055]步骤S103:使用数据库查询语句,从系统对象表、系统架构表及系统属性表中关联查询数据对象的元数据信息。
[0056]由以上可知,数据库的元数据信息保存在各种系统表中,若想要从系统表中获取到此些元数据信息,需要使用数据库查询语句。其中,三个系统表可以通过相同的列进行关联,因此,使用关联查询的方式进行查询。
[0057]例如,三个系统表通过数据对象的编号进行关联,查询时通过数据对象的编号查找到不同类型的数据对象,再读取数据对象的数据结构、字段类型、业务描述、索引、主外键关系等等元数据的关系及定义信息。
[0058]由以上技术方案可知,本申请提供了一种数据库元数据的获取方法实施例,用户想要获得目标数据库的元数据时,可以向本实施例发送获取指令,进而本实施例确定目标数据库中包含的数据对象,并获取系统对象表、系统架构表及系统属性表,进而使用数据库查询语句,从以上三个系统表中通过关联查询的方式查询数据对象的元数据信息。可见,本实施例利用数据库中自动生成的系统表,在系统表中便可查询到数据库的元数据,元数据获取方式简单方便。
[0059]需要说明的是,以上实施例中步骤S101确定出的数据对象可以是多种类型,并不仅仅局限于数据表这种类型,还可以是视图、存储过程、函数及触发器等,因此可以满足用户不同的元数据获取需求。另外,本实施例可以适用于所有的关系型数据库。
[0060]参见图2,以上数据库元数据的获取方法实施例1中步骤S103(使用数据库查询语句,从系统对象表、系统架构表及系统属性表中关联查询数据对象的元数据信息)的具体实现方式可以包括步骤S201?步骤S203。
[0061]步骤S201:使用数据库查询语句,从系统对象表中,查询数据对象的标识。
[0062]如上,系统对象表中存储有所有数据对象,因此,从系统对象表中可以查询到数据对象的标识ID,标识可以为上文的数据对象的编号。
[0063]若查询到的数据对象为多个,则以循环执行方法,对每个数据对象执行下述步骤S202及步骤S203。需要说明的是,数据对象的类型不同,有些数据对象可能只对应有数据结构信息,因此只需执行步骤S202即可,有些数据对象可能只对应有属性信息,因此,只需执行步骤S203即可。当然,有些对象还可能既对应数据结构信息,也对应属性信息,因此步骤S202及步骤S203均需要执行。
[0064]步骤S202:使用数据库查询语句,从系统架构表中,查询与数据对象的标识对应的数据结构信息。
[0065]其中,系统架构表中存储有数据对象的数据结构信息,如数据表的列信息、视图的列信息、主外键及索引等。通过数据对象的标识,可以在该系统架构表中,查询对应的数据结构信息。例如,数据对象的标识为004,名称为网站流量报表(WebSiteTraffic)。
[0066]步骤S203:使用数据库查询语句,从系统属性表中,查询与数据对象的标识对应的属性信息。
[0067]其中,系统属性表中记录有数据对象的属性信息,如数据对象为哪一类型、存储过程的类型为系统类型或用户自定义类型、数据表的主外键及索引等等。同上步骤S202,通过数据对象的标识,可以在系统架构表中,查询数据对象标识所对应的属性信息。
[0068]针对从系统对象表中查询到的每个数据对象,使用循环读取的方式,依次从系统表中读取数据对象的元数据信息。
[0069]在实施中,在获取元数据的过程中,需要定义一些变量和临时表,用于临时存储查询到的元数据信息。具体地,在实际应用中,数据库的类型不同,变量及临时表也不尽相同。根据不同数据库的系统表在版本、功能定义、表结构、字段类型与使用方法上的不同特征,在SQL脚本中定义相关的变量与临时表,用以存储SQL脚本运行过程中读取数据库相关对象的中间结果信息。
[0070]另外,读取到的元数据信息可以以网页文档的形式显示给用户进行查看。具体地,参见图3,其示出了本申请提供了数据库元数据获取方法实施例2的流程。如图3所示,本实施例在图1所示的流程基础上,还包括步骤S104。需要说明的是,本实施例中的步骤S101?步骤S103可以参见上文图1,此处并不赘述,以下仅对步骤S104进行说明。
[0071]步骤S104:以网页文档的方式,显示元数据信息。
[0072]其中,生成包含数据对象元数据信息的网页文档,并将网页文档显示给用户。当然,用户还可以将该网页文档保存为txt格式或者html格式。其中,html格式的网页文档可以在浏览器中进行查看。
[0073]具体地,本步骤的实现方式可以包括以下步骤,即:将数据对象的同一类型的元数据填充在同一表格中;显示包含表格的网页文档。
[0074]其中,数据对象的元数据可能是数据对象的数据结构,也可能是数据对象的属性信息等,因此,为了方便用户查看,可以将数据对象的元数据依据类型的不同,生成不同的表格,从而在不同表格中显示不同类型的元数据。
[0075]以数据表为例说明,某个数据表的元数据包含对象列,因此有关对象列的信息如列编号、列名称、列数据类型、是否可以为空及备注等等可以包含在一个表格中,即对象列表格。又如,该数据表的元数据包含默认列值约束,默认列值约束的信息如约束编号、约束名称、列约束及列约束值等等可以包含在另一表格中,即默认列值约束表格。
[0076]见图4A,其示出了网站流量报表(一个数据对象)的对象列表格。如图4A所示,该表格中包含的是网站流量报表的对象列信息,具体包括编号、列名称、数据类型、是否为空及备注。从该表格中,可以看出网站流量报表的对象列的各种信息,即网站流量报表包含16个对象列,分别为ID、Per1d, Item等等,并且还可以获知每列的数据类型、是否可以为空及备注信息。
[0077]又见图4B,其示出了网站流量报表的默认列值约束表格。如图4B所示,该表格中包含的是网站流量报表的默认列值约束信息,具体包括编号、约束名称、约束列、列约束值。从该表格中,可以看出网站流量报表的默认列值约束的各种信息,即网站流量报表包含 8 个默认列值约束,分别为 DF_WebSiteTraffic_AccidentRate、DF_ffebSiteTraffic_AverageUV等等,并且还可以获知每个约束的约束列及列约束值。
[0078]当然,以上仅仅是示例说明,本申请并不做具体限定。
[0079]由以上技术方案可知,本实施例可以将获取的元数据信息以网页文档的形式显示给用户,非常直观,便于用户查看。
[0080]下面对本申请提供的数据库元数据的获取装置进行介绍,需要说明的是,有关数据库元数据的获取装置可以参见上文提供的数据库元数
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1