在上一篇裡我已經提過了,有了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 VerbSDS OperationGET Fetch,Query,(即Select)POSTCreate,(即Insert)PUTUpdateDELETEDelete
好了,這一節到此結束。 :) 下一節我會通過一個小工具來玩轉SDS的全部功能。