Azure Services Platform Step by Step-(2) 忘掉 SQL Server 200X——Introducing SQL Data Services(SDS)

作者:流牛木马 来源:流牛木马 日期:2009-3-25

微软即将推出应用于云的纯关系数据库

在上一篇里我已经提过了,有了 SQL Services,作为一般的中小型应用程序开发,你完全可以忘掉 SQL Server 200X 的存在。有这么神奇吗?现在流牛木马就来详细地了解 SQL Services 是何方神圣。

在大多数情况下,Web 应用程序都需要依赖另一个数据库服务器。这个数据库服务需要专业的 IT 人士来维护。在你部署应用程序之前,你需要考虑太多:这个数据服务器有足够的容量么?性能怎么样?稳定和安全?负载?还有其他太多太多未知的因素……

按照云计算的基本概念,解决以上问题,我们需要 Cloud-based data platform,即把数据服务都放在云端,依靠强大的云端操作系统和平台硬件来处理。对了。SQL Data Services(SDS) 就是这样一种基于"云"的数据平台。

什么是 SDS?

SDS 是一个面向 Internet 的强大 Database,提供强壮、安全、灵活数据库服务。SDS 提供 SOAP 和 REST 两种标准接口,与传统编程语言脱离,让使用任何语言的 coder 都可以轻易地操作它。

为什么要使用 SDS?

Flexibility and scale,Business-ready reliability and security,Developer agility

SDS 在 Azure Services Platform 中的地位:

SDS 是 Azure 四大模块之一,在云端为天上地下的应用程序提供数据服务,也为其他的 Azure Services 模块提供数据服务。

image 

SDS 支持的数据类型

SDS 支持 String(字符串)、Decimal(十进制数)、Boolean、DateTime、Binary 几种基本的数据类型,还支持一种叫 BLOB(binary large object )数据类型,允许你存储任何格式的内容。

申请地址

http://go.microsoft.com/?linkid=9373222

Dev Portal

http://portal.ex.azure.microsoft.com

ACE 模型

终于进入重点了。在使用 SDS 之前,你必须了解 SDS 的 ACE(Authority,Container,Entity) 模型。Authority 是最高 level 的对象。一个 Authority 包含了多个 Container,一个 Container 包含多个 Entity。如下图

image

我们可以把 Authoriy 想象成 SQL Server 中一个数据库实例(SQL Server Instance)。那么,Container 就好比实例中的多个相互独立的数据库了。而 Entity 就相当于一条记录。这样类比只是一个直观的概念,其实 ACE 模型和关系数据库是有区别的。

如果要准确类比的话,Container 可以等同于关系数据库中的一个独立 Database,也可以等同于一个 Table。Entity 是一条数据记录没错,但是 Entity 的是任意的,不需要像关系数据库里那样,在一个 Table 里有一个特定的结构定义。大家看上图可以注意到,一个 Container 可以包含多种结构不同的 Entity。

举个实际例子,如上图所示,我们可以创建一个叫做 "food" 的 Authority,其下包括名为 "fruit" 和 "vegetable" 两个 Container.  Container["fruit"] 中包括 3 个实体,分别是 "apple1"、"apple2"、"pear1"。注意,这里我们假设五角星代表 pear,三角形代表 apple。这样,在这个  Container["fruit"] 就包括了两种类型的三个 Entity。同样,在 Container["vegetable"] 中,我们假设圆形是白菜 cabbage,方形是西红柿 tomato,我们又有了 "tomato1"、"tomato2"、"cabbage1" 三个 Entity,它们也属于两种不同类型。

呵呵,根传统的 instance-database-tabale-row 的模型很不一样吧?不要紧,现在先记住基本的结构就好了,在下一节,你会有机会动手把玩一下它们。

编程模型

每个 Authority 都对应特定的 URI。比如一个叫做 food 的 Authority,它的 HTTP 地址就是 https://food.data.database.windows.net/v1 ,可以直接在浏览器中打开(在浏览器 zhogn1 直接打开,等同于执行 HTTP 的 GET 方法)

有了 Authority 的 URI,你会发现,Container 和 Entity 的 URI 也很容易找到了。格式如下:

https://food.data.database.windows.net/v1/<container-id>
      如 https://food.data.database.windows.net/v1/fruit/

https://food.data.database.windows.net/v1/<container-id>/<entity-id>
      如 https://food.data.database.windows.net/v1/fruit/apple1

SDS 的编程模型,CRUD,说白了就是对以上这些 URI 的 HTTP 操作。下表是一个 HTTP Verb 到 SDS Operation 的映射

HTTP Verb SDS Operation
GET Fetch,Query,(即Select)
POST Create,(即Insert)
PUT Update
DELETE Delete

好了,这一节到此结束。:) 下一节我会通过一个小工具来玩转 SDS 的全部功能。

相关文章