在上一篇裡我已經提過了,有了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,功能上無任何變化。