针对数据库中元数据的采集方法设计与实现
摘 要:
摘 要:数据库中元数据的采集是标准符合性检测等工作的基础。为了获取数据库中的元数据信息,文章提出了针对多种数据库中元数据的采集方法设计。该采集方法采用了字符串连接数据库的方法实现了对多个不同数据库的连接,根据连接的数据库使用相应的元数据查询SQL语句来实现对元数据的采集,最后使用xml文件的形式保存元数据。
关键词:
关键词:数据库 元数据 信息采集
元数据是指用于描述数据的数据,是对数据及信息资源的描述性信息。本文中所要采集的数据库中元数据主要是数据库中对表的定义,字段的定义等,这些元数据信息是在标准符合性检测工作中所需要检测的信息。
标准符合性检测是指根据国家和行业信息化的系列数据标准、技术文件及信息系统设计文件等中的规定,对信息系统的数据字典、数据库表结构及数据库内容等与标准的符合程度进行检测的活动。其中在对数据库表结构进行标准符合性检测时,需要使用数据库中表的元数据与相关标准进行比较。数据库中元数据采集的需求正是在这样的条件下产生的。
1 采集的元数据内容
根据标准符合性检测的需求,我们将需要采集的元数据内容确定为表的元数据与字段的元数据。表的元数据信息主要包括标的名称、表的记录数、表的大小、表包含的字段、表的主键等,字段的元数据信息主要字段的名称、字段的数据类型、字段占用字节数、字段是否允许为空、字段的备注信息等。
对于不同的数据库,数据库的元数据的存储地址都不相同,元数据的信息存储形式也不尽相同。如在SQL Server中字段的信息主要存储在syscolumns、systypes 、sys.extended_properties等表中,而在Oracle数据库中字段的信息主要存储在USER_TAB_COLUMN 、USER_COL_COMMENTS表中且存储的名称也不相同。因此,采集元数据内容时需要根据数据库类型的不同,在不同表中采集数据库元数据的信息。
2 元数据查询SQL语句的设计
由于不同的数据库中元数据信息存储的方式不同,因此在元数据查询SQL语句的设计中需要根据不同的数据库来设计不同的SQL语句。针对SQL Server数据库的SQL语句编写如下:
从syscolumns表中获取表的名字、字段序号、字段名、字段的数据类型、字段占用字节数、允许为空命名分别命名为dataTable、dataID、fieldName、dataType、fieldLen、idNull,再从sys.extended_properties表中获取字段说明命名为memo。在连表查询时从systypes表中取xtype值为U的项,确保表的信息是用户创建的表,而非数据库系统表。
在oracle数据库中字段的信息位置与SQL Server数据库不同,因此,oracle数据库与SQL Server数据库的查询SQL语句在列名称,表名称方面有所不同。
在抽取不同数据库的元数据信息时,采用的SELECT语句的结构顺序必须相同,使生成元数据信息结构相同,便于元数据信息的下一步使用和操作。
3 采集的流程设计
在采集数据库中元数据时,我们需要对数据库进行访问。在这里我们采用ADO的方式访问数据库。采用ADO的方式访问数据库,在用C#语言实现时可以分为以下几个步骤:
第一, 调用命名空间。对于SQL Server数据库需要引入System.Data.SqlClient命名空间。
第二, 创建连接字符串。连接字符串的创建需要用户在界面输入服务器地址、数据库类型、数据库端口号、用户名、密码等目标数据库的信息。
第三, 创建连接的对象。使用关键字SqlConnection创建连接的对象。
第四, 连接数据库。使用连接对象的Open()函数连接数据库。
第五, 创建SQL字符串 connString。创建设计完成的元数据SQL查询语句。
第六, 新建查询的一个对象。使用关键字SqlCommand创建查询的对象。
第七, 对对象的操作。使用ExecuteScalar();ExecuteReader();ExecuteNonQuery()等函数获得查询的结果,将结果以datatable或dataset的形式存储。
第八, 关闭连接。使用连接对象的Close()函数关闭连接。
经过上面的数据库访问步骤,就可以得到所要查找的元数据的内容。将返回的元数据结构在界面的dataGridView控件中显示,用户可以将元数据内容保存为xml文件形式。
4 采集后元数据的保存
对于采集后的数据库元数据信息采用xml文件的形式进行保存。使用xml文件可以方便实现元数据内容的传送和保存。在保存数据时时我们自定义了xml文件的格式,使得xml文件的格式更加清晰明了。
由于NET Framework也提供了一个快速、非缓存、只向前的方式动态写入xml数据的类,即XmlWriter类。因此,在实现时调用这个类实现xml文件的写入和保存。自定义xml文件的具体实现为:使用WriteStartElement函数创建当前节点的子节点,并设置节点的属性及其值,WriteEndElement函数来结束一个节点。WriteElementString函数来写入节点包含的属性及值。
5 结语
在对数据库中元数据的采集过程中,完成了对部分的元数据的采集和存储过程,并提供了较为友好的展示界面,但是还存在采集的元数据信息不够全面的问题。在下一阶段的研究中需要继续研究元数据信息在不同的数据库中的存储,并优化查询的SQL语句来获取更多,,更全面的元数据。
参考文献:
[1]戴维森.SQL Server 2008数据库设计与实现[M].北京:人民邮电出版社,2009.
[2]徐菁.元数据的设计原则和实用中的问题[J].图书馆理论与实践,2008(6):48-51.
[3]希尔伯沙茨.数据库系统概念[M].北京:机械工业出版社,2008.
[4]张红强. Oracle数据库实例教程[M].天津:天津大学出版社,2009.
[5]王珊. 数据库系统概论[M].北京:高等教育出版社,2006.
本文编号:14537
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/14537.html