技术开发 频道

访谈:SQL Server Everywhere仅仅是另一种数据库吗?

    【IT168技术访谈】
     随着SQL Server Everywhere的CTP版本在今年微软的techEd上发布,Scott Swigart将带领我们一起跟SQL Server 组的高级产品经理Mark Jewett,计划经理兼技术带头人Steve Lasker一起,来谈谈微软的这种新的数据库引擎。从中我们可以看到微软的移动数据库战略。

DDJ:微软即将要推出SQL Server Everywhere版本。它究竟是什么?为什么我们还需要另一种数据库呢?
MJ: SQL Server Everywhere版本简单来说,是为客户环境和客户应用程序设计的一种数据库。首先,它只有大约1.5 MB大小并且当你拿它和其他SQL Server产品相比时,它只是一个非常小的产品,这也使得它容易下载。第二,它在处理器中运行。应用程序的最终用户甚至不需要知道存在一个数据库。它在应用程序中无缝运转。第三,开发者现在所了解的关于SQL Server的任何事情都是可应用的知识;换句话说,如果你现在使用SQL Server那就可以应用你所熟悉的T-SQL和对象。这些类似的东西在SQL Server Everywhere版本中还有很多。

SL:对于SQL Server Everywhere,当我们开始公开我们正在做的事情时,人们说,“哦,太棒了,那正是我想要的,”然后下一个问题经常就会是,“我怎样同步数据存储呢?”人人都想要一个大的数据库来存储所有的东西,但那是不可能的。很多公司甚至都不能把他们的电话号码清单合并到一块,更不用说合并所有的数据了。一旦你接受在一个组织里面将会有很多数据库这样一个现实,问题就是,你怎么才能让那些不同的数据孤岛互相通信?这就回到我们正在实现的同步策略上(针对SQL Server Everywhere版本的)。

DDJ:有一些应用程序永远不会跟SQL Server同步,但是也有很多应用程序想要脱机同步工作,或者仅仅为了取得更好的性能想要高速缓存本地数据。SQL Server Everywhere版本有哪些特征来支持这些特定的情况呢?

 SL:当使用SQL Server Everywhere版本时,关键是拥有SQL Server产品特征的真子集。从一开始,它就使用了T-SQL语言的子集。开发者可能需要用到的技术正在以指数速率递增。我们用到的微软内部的技术数量正在以指数递增。开发者不可能用15种方式去完成一件任务。但是,如果开始时能够在客户端使用同样的技能,然后转到服务器端,那就会使开发者颇有成效。这正是SQL Server Everywhere版本值得炫耀之处。它使用T-SQL语法和ADO.NET编程模型。它是SQL Server特征集的一个子集。

   现在,当数据分布在各个字段中,你怎样把它传到中央存储区?如果数据在中央存储区,你又怎样把它分散到各个字段中?我们怎么才能使这种转换变得容易?部分答案就是SQL Server Everywhere Edition具有SQL Server数据类型的子集。所以我们不存在像使用Jet或其他本地数据库时的数据转换问题。例如,我们有nchar和nvarchar类型。SQL Server有类似XML的数据类型,SQL Server Everywhere Edition还不支持这种数据类型,这种情况下,我们把它转换成NTEXT。我们并没有丢失任何数据,只是在SQL Server Everywhere Edition中丧失了像SQL Server 2005具有的XQuery功能。

  一旦我们实现了3.1版本中的技术,我们的3.5版本就会基于这种技术并会有一个新的同步组件集。这种同步组件虽然能让你和其他数据库同步,但是它在SQL Server中会表现得更好。 你将能够基于现有的ADO.NET知识,再用用于同步的组件模型来拓展它。我们称它为“同步框架”。如果你了解ADO.NET数据适配器,我们将提供同步适配器,它会让你在服务器端和客户端把同步设施组合到一起。

0
相关文章