什么是RDBMS中的“架构提供程序”?

时间:2010-06-21 17:54:12

标签: sql sql-server sql-server-2008

有人可以定义架构提供程序的含义吗?我熟悉数据库模式(在此上下文中,我将它们视为数据库对象的命名逻辑容器)。为什么架构提供程序有用?从高层次来看,它们如何运作?

此处的上下文是SQL Server 2008.

2 个答案:

答案 0 :(得分:2)

架构提供程序是RDBMS外部的东西。模式提供程序是API或类,使您能够从代码中检索数据库模式。 SqlConnection.GetSchema可以视为SQL Server的架构提供程序。如果要在应用程序中导航数据库模式,则模式提供程序是您需要的代码。

答案 1 :(得分:2)

http://msdn.microsoft.com/en-us/library/aa833285.aspx

  

数据库架构提供程序实现特定于特定品牌和数据库版本(例如SQL Server 2008)的所有服务。这包括读取和写入该数据库脚本的解析器;表示脚本的脚本域对象模型(脚本DOM);以及 Schema Model ,它模拟数据库对象的对象,关系和属性。

我没有使用架构提供程序,但它似乎是一个可以提供有关数据库的元数据的服务。它与数据库本身是分开的。

我从讨论中推断,必须为每个品牌的数据库(MS SQL Server,Oracle,PostgreSQL,MySQL等)实现不同的模式提供程序。模式提供程序可以通过公共API提供通用的,与数据库无关的元数据,并且还可以扩展给定品牌的模式提供程序以提供特定于数据库的元数据。类似于ODBC的元数据。

查看架构提供程序的另一种方法是INFORMATION_SCHEMA,但是使用API​​实现为服务。