databasemetadata网页出现database error怎么办?

databasemetadata  时间:2021-07-20  阅读:()

什么是数据库的元数据

按照传统的定义,元数据(Metadata)是关于数据的数据。

在数据仓库系统中,元数据可以帮助数据仓库管理员和数据仓库的开发人员非常方便地找到他们所关心的数据;元数据是描述数据仓库内数据的结构和建立方法的数据,可将其按用途的不同分为两类:技术元数据(Technical Metadata)和业务元数据(Business Metadata)。

技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据,它主要包括以下信息: ? 数据仓库结构的描述,包括仓库模式、视图、维、层次结构和导出数据的定义,以及数据集市的位置和内容; ? 业务系统、数据仓库和数据集市的体系结构和模式 ? 汇总用的算法,包括度量和维定义算法,数据粒度、主题领域、聚集、汇总、预定义的查询与报告; ? 由操作环境到数据仓库环境的映射,包括源数据和它们的内容、数据分割、数据提取、清理、转换规则和数据刷新规则、安全(用户授权和存取控制)。

业务元数据从业务角度描述了数据仓库中的数据,它提供了介于使用者和实际系统之间的语义层,使得不懂计算机技术的业务人员也能够“读懂”数据仓库中的数据。

业务元数据主要包括以下信息:使用者的业务术语所表达的数据模型、对象名和属性名;访问数据的原则和数据的来源;系统所提供的分析方法以及公式和报表的信息;具体包括以下信息: ? 企业概念模型:这是业务元数据所应提供的重要的信息,它表示企业数据模型的高层信息、整个企业的业务概念和相互关系。

以这个企业模型为基础,不懂数据库技术和SQL语句的业务人员对数据仓库中的数据也能做到心中有数。

? 多维数据模型:这是企业概念模型的重要组成部分,它告诉业务分析人员在数据集市当中有哪些维、维的类别、数据立方体以及数据集市中的聚合规则。

这里的数据立方体表示某主题领域业务事实表和维表的多维组织形式。

? 业务概念模型和物理数据之间的依赖:以上提到的业务元数据只是表示出了数据的业务视图,这些业务视图与实际的数据仓库或数据库、多维数据库中的表、字段、维、层次等之间的对应关系也应该在元数据知识库中有所体现。

2.2 元数据的作用 与其说数据仓库是软件开发项目,还不如说是系统集成项目[1],因为它的主要工作是把所需的数据仓库工具集成在一起,完成数据的抽取、转换和加载,OLAP分析和数据挖掘等。

如图1所示,它的典型结构由操作环境层、数据仓库层和业务层等组成。

其中,第一层(操作环境层)是指整个企业内有关业务的OLTP系统和一些外部数据源;第二层是通过把第一层的相关数据抽取到一个中心区而组成的数据仓库层;第三层是为了完成对业务数据的分析而由各种工具组成的业务层。

图中左边的部分是元数据管理,它起到了承上启下的作用,具体体现在以下几个方面: (1) 元数据是进行数据集成所必需的 数据仓库最大的特点就是它的集成性。

这一特点不仅体现在它所包含的数据上,还体现在实施数据仓库项目的过程当中。

一方面,从各个数据源中抽取的数据要按照一定的模式存入数据仓库中,这些数据源与数据仓库中数据的对应关系及转换规则都要存储在元数据知识库中;另一方面,在数据仓库项目实施过程中,直接建立数据仓库往往费时、费力,因此在实践当中,人们可能会按照统一的数据模型,首先建设数据集市,然后在各个数据集市的基础上再建设数据仓库。

不过,当数据集市数量增多时很容易形成“蜘蛛网”现象,而元数据管理是解决“蜘蛛网”的关键。

如果在建立数据集市的过程中,注意了元数据管理,在集成到数据仓库中时就会比较顺利;相反,如果在建设数据集市的过程中忽视了元数据管理,那么最后的集成过程就会很困难,甚至不可能实现。

(2) 元数据定义的语义层可以帮助最终用户理解数据仓库中的数据 最终用户不可能象数据仓库系统管理员或开发人员那样熟悉数据库技术,因此迫切需要有一个“翻译”,能够使他们清晰地理解数据仓库中数据的含意。

元数据可以实现业务模型与数据模型之间的映射,因而可以把数据以用户需要的方式“翻译”出来,从而帮助最终用户理解和使用数据。

(3) 元数据是保证数据质量的关键 数据仓库或数据集市建立好以后,使用者在使用的时候,常常会产生对数据的怀疑。

这些怀疑往往是由于底层的数据对于用户来说是不“透明”的,使用者很自然地对结果产生怀疑。

而借助元数据管理系统,最终的使用者对各个数据的来龙去脉以及数据抽取和转换的规则都会很方便地得到,这样他们自然会对数据具有信心;当然也可便捷地发现数据所存在的质量问题。

甚至国外有学者还在元数据模型的基础上引入质量维[6],从更高的角度上来解决这一问题。

(4) 元数据可以支持需求变化 随着信息技术的发展和企业职能的变化,企业的需求也在不断地改变。

如何构造一个随着需求改变而平滑变化的软件系统,是软件工程领域中的一个重要问题。

传统的信息系统往往是通过文档来适应需求变化,但是仅仅依靠文档还是远远不够的。

成功的元数据管理系统可以把整个业务的工作流、数据流和信息流有效地管理起来,使得系统不依赖特定的开发人员,从而提高系统的可扩展性。

如何利用C#代码获取SQLite数据库的元数据

Sqlite数据库,在很多场合已经用得比较多,由于我的代码生成工具的需要,需要把Sqlite的表、字段、视图等信息获取出来,以便实现各种数据库快速生成项目工程的操作。

这里就需要利用C#获取Sqlite数据库的元数据了,和其他数据库一样。

  为了获取Sqlite的数据库对象数据,我做了一个测试的例子来获取他的相关信息,其实它的元数据还是和ess的操作方式很接近。

首先我们先通过Sqlite的数据库管理工具或者Visual Studio来打开创建一些表。

  首先我们先来看看通过C#代码获取到数据库对象的操作界面。

  获取表的元数据界面效果如下所示,视图和这个也查不多,很有意思的一点,就是它把创建的脚本的显示出来了,呵呵。

  获取的表字段信息效果如下所示。

  有了这些数据,我就很方便在我的代码生成工具Database2Sharp里面实现代码生成操作了。

  现在我们来看看以上实现的后台代码是如何的,来了解Sqlite的数据库获取元数据的操作。

  string connectionString = "";   public Form1()   {   InitializeComponent();   connectionString = string.Format(@"Data Source={0}OrderWater.db;Version=3;", Application.StartupPath);   }   private void btnGetSchema_Click(object sender, EventArgs e)   {   using (SQLiteConnection conn = new SQLiteConnection(connectionString))   {   conn.Open();   DataTable schemaTable = conn.GetSchema("TABLES");   this.dataGridView1.DataSource = schemaTable;   }   }   获取表字段的操作代码如下所示。

  private void btnGetColumns_Click(object sender, EventArgs e)   {   using (SQLiteConnection conn = new SQLiteConnection(connectionString))   {   conn.Open();   DataTable table = conn.GetSchema("TABLES");   if (table != null && table.Rows.Count > 0)   {   string tableName = table.Rows[0]["TABLE_NAME"].ToString();   DataTable schemaTable = GetReaderSchema(tableName, conn);   this.dataGridView1.DataSource = schemaTable;   }   }   }   private DataTable GetReaderSchema(string tableName, SQLiteConnection connection)   {   DataTable schemaTable = null;   IDbCommand cmd = new SQLiteCommand();   cmd.CommandText = string.Format("select * from [{0}]", tableName);   cmd.Connection = connection;   using (IDataReader reader = cmd.ExecuteReader(CommandBehavior.KeyInfo | CommandBehavior.SchemaOnly))   {   schemaTable = reader.GetSchemaTable();   }   return schemaTable;   }   为了实现和我代码生成工具中的数据库字段信息绑定,需要通过获取设置Sqlite的属性为对应的ColumnInfo对象,如下所示。

  using (SQLiteConnection conn = new SQLiteConnection(ConnectString))   {   conn.Open();   DataTable schemaTable = GetReaderSchema(tableName, conn);   foreach (DataRow dr in schemaTable.Rows)   {   ColumnInfo info = new ColumnInfo();   info.Name = new NameElement(dr["ColumnName"].ToString());   info.Ordinal = Convert.ToInt32(dr["ColumnOrdinal"].ToString());   info.AllowDBNull = (bool)dr["AllowDBNull"];   info.MaxLength = Convert.ToInt32(dr["ColumnSize"].ToString());   info.DataTypeId = Convert.ToInt32(dr["ProviderType"].ToString());   info.DataType = dr["DataTypeName"].ToString().Trim();   info.AutoIncrement = (bool)dr["IsAutoIncrement"];   info.IsPrimaryKey = (bool)dr["IsKey"];   info.Unique = (bool)dr["IsUnique"];   info.IsReadOnly = (bool)dr["IsReadOnly"];   Type = dr["DataType"].ToString();   list.Add(info.Name.Name.ToString(), info);   }   conn.Close();   }   代码生成工具中,这些数据库的元数据实体类信息是可以提供访问的,方便我们定制代码生成工具的模板,代码生成工具关于这些数据库对象的帮助如下所示。

  这样,在代码生成工具中,就可以利用Sqlite的数据库对象数据,来生成和Oracle数据库、SqlServer数据库、ess数据库、MySql等数据库一样的项目工程代码了,获取甚至可以在自定义的模板代码模块中,添加自己的处理逻辑。

  快速生成的代码如下所示。

  本文通过介绍获取Sqlite的数据库元数据库,并在代码生成工具中的应用为例,给大家提供一个使用元数据进行程序开发的一个思路,希望大家可以同这种方式实现更多自定义模板或者逻辑的引用。

什么是元数据(MetaData)及?

了解元数据,可以看下下面这篇文章,是一个90后的小美女写的,通俗易懂。

近几年,随着90后群体逐步迈入职场,逐渐出现在社会大众的视野当中。

本文出自一名90后美女程序员之手,他们是极具个性的一代,他们这代技术人的新奇想法,正是现代企业需要的创新源泉… 关于作者: 龚菲 普元信息大数据产品部 90后美女程序员 公司大数据治理正做得风生水起,各种核心产品在国内市场数一数二,终极大BOSS们将数据治理方面的经验总结成文章,篇篇干货,堪称经典。

(有兴趣的同学可以看下公众号的历史文章,不过据说有一批干货文章还没发表出来,敬请期待)。

作为尚未正式入职的小菜鸟,我也只能在极浅的层面发表一些我自己的看法… 我将文章分为两大部分,第一部分介绍元数据概念,第二部分从几个方面说明元数据管理的应用,最后一部分总结一下元数据的重要性,仅代表我的一些个人观点,还请各位前辈们不要见笑。

一、元数据什么鬼? 我入职的时候刚好赶上公司的元数据产品升级换代,同事们的研发气氛正火热,作为新入职菜鸟,总得先了解一下元数据概念,不然日后怎么和小伙伴们愉快地玩耍,于是查找国内外相关材料: 一段时间之后有了一些知识积累,才发现用“关于数据的数据”来给元数据下定义确实再准确不过了,但同时也略微抽象,新人难于快速理解,待到上周我们数据治理专家从心理学的角度来阐述元数据之后,我终于也算理解了元数据到底是个啥,今天也算是站在“巨人”的肩膀上,用一种更简单的方式来回答“元数据究竟是什么”这个问题… 元数据是关于数据的描述,存储着关于数据的信息,为人们更方便地检索信息提供了帮助。

咦?检索信息?小蝌蚪找妈妈的过程也是一个检索信息的过程,是不是看懂这个故事就能懂元数据是什么了? 池塘里有一群小蝌蚪,他们看见鲤鱼妈妈在教小鲤鱼捕食,就迎上去,问:“鲤鱼阿姨,我们的妈妈在哪里?” 此时蝌蚪们意识到,不对啊,我们的数据库里不是应该存在着一张Mother表吗,但是蝌蚪们竟然对这张表一无所知,不知道有什么字段,也不知道各个字段对应的具体数值:   鲤鱼妈妈说:“你们的妈妈有四条腿,宽嘴巴。

你们到那边去找吧!” 鳄鱼笑着说:“你们的妈妈有两只大眼睛,披着绿衣裳。

你们到那边去找吧!”… 乌龟笑着说:“我不是你们的妈妈,你们的妈妈肚皮是白的,到前面去找吧。

”… 青蛙听了“各各”地笑起来,说“唉!傻孩子,我就是你们的妈妈呀” 整个过程可以看成是Mother这张表逐步完善的过程,数据来源分别是鲤鱼妈妈、鳄鱼妈妈和乌龟妈妈,如下图所示: 对蝌蚪们最终获取到的信息进行进一步抽象,就可以形成一种“元数据”,该元数据描述了Mother这张表的结构: 刚才不是说元数据能为检索信息提供帮助吗,那是不是也说明元数据能为小蝌蚪找妈妈提供帮助?我们将在第二部分试着对这个故事进行改编,详细介绍小蝌蚪利用元数据快速找到妈妈的过程。

二、元数据管理的应用 通常一款元数据管理工具应具备元模型设计、元数据采集、元数据分析、数据地图展现等核心功能,我们试着改编小蝌蚪找妈妈这个故事,在改编的过程中理解这几个核心功能,前提是我们假设所有动物共同构成了一个庞大的数据体系,小蝌蚪们Mother的具体数据已经存在于此体系之中(鲤鱼系统、鳄鱼系统、乌龟系统)。

1、元模型设计 先解释一下元模型。

如果说元数据是对数据的描述,那么元模型就是对元数据的描述,是对元数据的进一步抽象,三者的关系如下图所示: 再讲一下元模型设计的过程。

首先获取到系统中的所有元数据,将这些元数据汇总并进行合理规划,进一步抽象成元模型,从一定角度来说,可以把这个抽象的过程看成元模型设计的过程。

元模型定义了各种元数据的结构以及元数据之间的关系,是元数据管理的基础,也就是说,如果我们想用元数据帮助小蝌蚪找妈妈,需要先设计出合理的元模型。

下图是我试着给它们设计出的元模型(对于企业来说,真正的元模型设计过程非常复杂,受多方面因素影响): 我们认为小蝌蚪的妈妈(Mother)由若干个属性(Property)组成,每个属性的名称用Name表示,每个属性的类型用Type表示。

现在元模型有了,下一步就是按照这个设计好的元模型采集小蝌蚪们需要的元数据信息,也就是我们常说的元数据采集。

2、元数据采集 设计好元模型之后,元数据管理工具能通过全自动的方式采集到企业所需要的元数据,在这个故事中,按照我设计好的元模型,元数据管理工具的元数据采集结果应该如下图所示: 小蝌蚪们拿着这份元数据再去针对性地检索关于妈妈的信息,就能一步到位,将目标直接锁定到青蛙,整个故事将因元数据的出现而成功改写。

说明:在真实的企业数据环境中,数据与元数据是已经存在于系统之中的,元数据管理就是根据企业现有的元数据设计出适合企业的元模型,然后将系统之中的元数据按照元模型集中汇总并关联到一起,达到企业对数据统一管理与应用的目的。

3、元数据分析 a、血缘分析 假设动物园园长慢羊羊正管理着整个动物园的数据信息,有一天园长发现自己这里有个数据不对,需要找出错误数据的提供者并追究责任,那么这个错误数据来自于哪个动物家庭呢?挨家挨户去敲门核对数据显然不够高效,元数据管理工具的血缘分析功能会自动帮助园长分析这个错误数据的上游路径,比如这个数据是由鲤鱼妈妈交给鳄鱼妈妈,鳄鱼妈妈再提交给园长的,那么此时园长只需要去敲鲤鱼和鳄鱼家的门就可以了。

  b、影响分析 数据终于更正了,此时园长需要及时提醒大家这个数据的更正信息,只需要通知这个数据影响到的动物家庭就可以了,这让园长十分苦恼,整个动物园的数据传递这么复杂,怎么判断哪个家庭会受到这个数据的影响呢,元数据管理工具的影响分析功能会分析出这个数据的影响范并能用可视化的方式展现出来,园长只需要通知受影响的动物家庭就可以了。

  c、数据地图展现 随着动物园规模的日益扩大,入住的动物种类日益增多,有一天园长想了解动物园的整体情况,有多少动物家庭,哪个家庭和哪个家庭比较要好,哪个家庭和哪个家庭又从来没有联系,此时元数据管理工具的数据地图可以帮助园长获取到他想要的信息,数据地图展现功能可以通过可视化的方式,让园长对整个动物园的情况了如指掌,帮助它更好地观察整个动物园的情况。

  三、元数据的重要性 在大数据时代的背景下,数据即资产,元数据实现了信息的描述和分类的格式化,从而为机器处理创造了可能,它能帮助企业更好地对数据资产进行管理,理清数据之间的关系。

元数据管理是企业提升数据质量的基础,也是企业数据治理中的关键环节。

元数据管理不当,信息很容易被丢失,进而不能对业务进行有效支撑,企业内部业务人员要识别相关信息就会变得十分困难,最终用户也将失去对数据的信任。

写在最后: 公司正在研发针对企业级用户的数字化企业云平台,并且全面公开研发文档与技术细节,由我担任的群主的微信讨论群也会对架构设计过程进行公开,欢迎对此感兴趣的前辈和朋友入群,与我们共同讨论,共商“云”是。

感兴趣或者想学习相关技术,可在百度中搜EAii了解。

这几段是什么意思

public interface DatabaseMetaData关于数据库的整体综合信息。

此接口由驱动程序供应商实现,让用户了解 Database Management System (DBMS) 在与驱动程序(基于与其一起使用的 JDBCTM 技术(“JDBC 驱动程序”))相结合时的能力。

不同的关系 DBMS 常常支持不同的功能,以不同方式实现这些功能,并使用不同的数据类型。

此外,驱动程序可以实现 DBMS 提供的顶级功能。

此接口中的方法返回的信息关系到一起工作的特定驱动程序和特定 DBMS 的能力。

注意,正如此文档中所使用的那样,术语“数据库”通常既指驱动程序,又指 DBMS。

此接口的用户通常是一个需要发现如何处理基础 DBMS 的工具。

对于试图与多个 DBMS 一起使用的应用程序而言尤其如此。

例如,一个工具可能使用 getTypeInfo 方法找出可以在 CREATE TABLE 语句中使用的数据类型。

或者用户可能调用 supportsCorrelatedSubqueries 方法查看是否可以使用相关子查询,或者调用 supportsBatchUpdates 查看是否可以使用批量更新。

有些 DatabaseMetaData 方法以 ResultSet 对象的形式返回信息列表。

常规 ResultSet 方法,比如 getString 和 getInt,可用于从这些 ResultSet 对象中检索数据。

如果给定形式的元数据不可用,则 ResultSet 获取方法抛出 SQLException。

有些 DatabaseMetaData 方法使用 String 模式的参数。

这些参数都有 fooPattern 这样的名称。

在模式 String 中,"%" 表示匹配 0 个或多个字符的任何子字符串,"_" 表示匹配任何一个字符。

仅返回匹配搜索模式的元数据项。

如果将搜索模式参数设置为 null,则从搜索中删除参数标准。

获得关于驱动程序不支持功能的信息的方法将抛出 SQLException。

在这些方法返回 ResultSet 对象的情况下,要么返回一个 ResultSet 对象(可能为空),要么抛出 SQLException。

ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException检索可在给定类别中使用的表的描述。

仅返回与类别、模式、表名称和类型标准匹配的表描述。

它们根据 TABLE_TYPE、TABLE_SCHEM 和 TABLE_NAME 进行排序。

每个表描述都有以下列: TABLE_CAT String => 表类别(可为 null) TABLE_SCHEM String => 表模式(可为 null) TABLE_NAME String => 表名称 TABLE_TYPE String => 表类型。

典型的类型是 "TABLE"、"VIEW"、"SYSTEM TABLE"、"GLOBAL TEMPORARY"、"LOCAL TEMPORARY"、"ALIAS" 和 "SYNONYM"。

REMARKS String => 表的解释性注释 TYPE_CAT String => 类型的类别(可为 null) TYPE_SCHEM String => 类型模式(可为 null) TYPE_NAME String => 类型名称(可为 null) SELF_REFERENCING_COL_NAME String => 有类型表的指定 "identifier" 列的名称(可为 null) REF_GENERATION String => 指定在 SELF_REFERENCING_COL_NAME 中创建值的方式。

这些值为 "SYSTEM"、"USER" 和 "DERIVED"。

(可能为 null) 注: 有些数据库可能不返回用于所有表的信息。

参数: catalog - 类别名称,因为存储在数据库中,所以它必须匹配类别名称。

该参数为 "" 则检索没有类别的描述,为 null 则表示该类别名称不应用于缩小搜索范围 schemaPattern - 模式名称的模式,因为存储在数据库中,所以它必须匹配模式名称。

该参数为 "" 则检索那些没有模式的描述,为 null 则表示该模式名称不应用于缩小搜索范围 tableNamePattern - 表名称模式,因为存储在数据库中,所以它必须匹配表名称 types - 要包括的表类型组成的列表,null 表示返回所有类型 返回: ResultSet - 每一行都是一个表描述 抛出: SQLException - 如果发生数据库访问错误 ResultSet返回数据库中所有表名匹配"%"符号的表的类别、模式、表名称和类型标准匹配描述.rs.getString(3)取得rs中第三列的内容,即表的名称.

网页出现database error怎么办?

database error or no data found是说网站数据库错误,没有找到数据!是网站的问题…… 这个不是你的机子上的问题,一般是那个网站的问题,或者你的网速的原因~~~问题不大~~~

CheapWindowsVPS$4.5/月,美国VPS/免费Windows系统/1Gbps不限流量/,可选美洲、欧洲、亚洲等8大机房

国外商家提供Windows系统的并不常见,CheapWindowsVPS 此次提供的 2 款 VPS 促销套餐,提供 5 折永久优惠码,优惠后月付 4.5 美元起,价格还是挺诱人的,VPS 不限流量,接入 1Gbps 带宽,8 个机房皆可选,其中洛杉矶机房还提供亚洲优化网络供选择,操作系统有 Windows 10 专业版、2012 R2、2016、Linux等。Cheap Windows VPS是...

HaBangNet(6.95美元/月)美国vps 5TB流量/德国vps 香港双向CN2 GIA VPS

HaBangNet支持支付宝和微信支付,只是价格偏贵,之前国内用户并不多。这次HaBangNet推出三个特价套餐,其中美国机房和德国机房价格也还可以,但是香港机房虽然是双向CN2 GIA线路,但是还是贵的惊人,需要美国和德国机房的可以参考下。HaBangNet是一家成立于2014年的香港IDC商家,中文译名:哈邦网络公司,主营中国香港、新加坡、澳大利亚、荷兰、美国、德国机房的虚拟主机、vps、专用...

GigsGigsCloud 春节优惠2022 指定云服务器VPS主机85折循环优惠码

GigsGigsCloud商家在之前介绍的还是比较多的,因为之前我一直有几台机器在使用,只是最近几年网站都陆续转型删除掉不少的网站和闲置域名,包括今年也都减少网站开始转型自媒体方向。GigsGigsCloud 商家产品还是比较有特色的,有提供香港、新加坡等亚洲机房的云服务器、VPS和独立服务器等。第一、新春优惠活动优惠码:CNY2022-15OFF截止到正月初二,我们可以使用上述优惠码在购买指定G...

databasemetadata为你推荐
兼容dvd解码器下载开始装上系统就不能用,显示好像是缺少兼容的dvd解码器,后来下载了一个,到最后变成了遨游什么的,我就用dreamweaver8激活码求dreamweaver8激活码怎样恢复系统如何恢复系统?flv转换avi怎样把视频flv格式转换成avi 、 mp4格式如何修改手机ip手机如何更改ip地址?是不是和电脑一样更改ip地址呢?oa系统包含哪些模块办公OA系统由哪几大部分组成盈科oa办公系统oa的登陆帐号和密码川普竞选网站遭攻击川普.怎么大家说起他都说是个笑话vsan如何在一台ESXi主机上搭建一整套VSAN集群的环境草莓派论坛急急急,草莓派有没有客服?
汉邦高科域名申请 什么是二级域名 x3220 独享100m godaddy支付宝 debian6 智能骨干网 台湾谷歌地址 双线主机 泉州移动 天翼云盘 100mbps paypal注册教程 全能空间 双线空间 apnic 第八届中美互联网论坛 forwarder so域名 饭桶 更多