在上一篇里我已经提过了,有了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模块提供数据服务。
SDS支持的数据类型
SDS支持 String(字符串), Decimal(十进制数), Boolean, DateTime, and 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.如下图
我们可以把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的全部功能。
注:SQL Data Services现已更名为SQL Azure,功能上无任何变化。