亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

SQL Server 2008之開發者的盛宴
2009-05-21   

   從SQL Server 2005升級到2008,有哪些特性讓開發人員眼前為之一亮呢?

  在業界熱切的期盼中,微軟終于在上個月正式推出了SQL Server 2008。雖然大家對這個最新版SQL Server的期盼程度沒有當年對待2005登場時那么熱烈,但總的來說,SQL Server 2008還是有很多顯著的改進,從資源管理到基于策略的管理就讓不少的數據庫管理員希望能盡快升級。其中也有一些引人注目的變化和對性能的補充是針對開發人員的。如果開發人員在正式發布之前曾花費不少時間來評估SQL Server 2008社區技術預覽版的話,那么就會發現其中很多改進的功能值得進一步細細品味。

  T-SQL的甜點

  為了讓那些大部分時間都得用在悶頭寫T-SQL語句的開發人員活得輕松自在一些,微軟在SQL Server 2008中增加了兩樣新甜點:表值參數(table-valued parameter)和新的MERGE語法。

  表值參數,簡而言之,就是能夠被傳遞到存儲過程或函數的包含了多個數據行的參數。很多開發人員如果要編寫不斷重復被調用來執行完全相同操作的存儲過程,那么表值參數就能解決這個問題。此外,在很多情況下,表值參數還可以幫助清除和簡化臨時表。

  讓純T-SQL開發人員來編寫表值參數對他們來說可能有一點棘手,但其實也不是真的那么難學。基本上,首先必須創建一確切的用戶自定義數據類型,其中涵蓋了表的定義。然后要往表里填充數據。表填入數據后,使用Readonly關鍵字,在只讀狀態下傳遞表值參數給其他代碼,也就是說,你不能對代碼(引用了該參數)中的表值參數執行數據操作語言或DML等操作,等同于你不能修改表內的數據。執行完上面的步驟,就可以將表值參數傳遞到存儲過程或函數了。開發人員可以利用表值參數在T-SQL內直接抽取一定的數據記錄(或者構建一個記錄集),然后將記錄集傳遞到一個存儲過程,應用到業務邏輯。這比其它一些以前常用的解決方法都要好用多了。

  下面要提到另外一個和T-SQL相關的新玩意,那就是新的MERGE語句,有了它開發人員用一條語句就可以將插入、更新、刪除等復雜操作全部執行完。利用這個新語句,開發人員可以將數據源和目標表或目標視圖聯結(join)起來,然后根據初始聯結的結果,按照源數據表來對目標對象表的數據執行上述操作。基本上,就是用MERGE語句來比較某個表和另外一個數據集的異同,然后根據比較的結果來對目標表的數據進行插入、更新或刪除操作,使目標表數據和源表一致。還沒有這個MERGE語句的時候,我們一般要通過比較源數據和新數據的異同對數據集進行迭代,或者構建查詢來更新已有的記錄、插入新記錄或刪除舊記錄,每次只能執行一種操作。

  數據類型的盛宴

  SQL Server 2008還推出了一整桌新數據類型的大餐,既有舊數據類型改進的新版本也有全新的數據數據類型,用來支持一些特定的復雜應用。全新的數據類型包括Date和Time數據類型,顯然是將前一個版本中標準的datetime數據類型一分為二而成的。借此,開發人員就能夠在存儲日期和時間數據時品嘗到一些新的選項。

  此外,值得大家注意的是Datetime2和Datetimeoffset這兩種數據類型。Datetime2類型存儲的時間精度更高(達到秒的小數點后七位,也就是100納秒,而不是傳統的毫秒),且可以使用的日期范圍更廣(可以從0001-01-01開始,而非傳統的1753-01-01)。Datetimeoffset類型存儲的精度以及準確度都和Datetime2一樣,但還提供了設置時區偏移量的功能,可以用來跟蹤跨時區日期和時間的轉換。

  其他數據類型還包括流數據、層次數據和空間數據等。從技術層面上講,FILESTREAM的存儲方法并不是一種數據類型,不過它可以允許SQL Server應用程序直接在文件系統上存儲圖片和文檔非結構化數據。應用程序可以利用新的流訪問接口(Streaming API)來訪問文件系統中的數據,同時維護和正在被訪問的文件相應的結構化關系數據的事務一致性。對于層次數據,SQL Server 2008引入了一種名為Hierarchyid的數據類型,用來管理應對一個表內層次結構關系。最讓人垂涎欲滴的新功能也許是對空間數據類型的支持。空間數據類型引入了構建地理導向應用的功能,無需額外的應用程序來操縱數據。空間數據設置了兩種不同的數據類型:Geometry和Geography。Geometry數據類型采用歐幾里德的平面坐標系統來存儲平面空間數據,如距離和方向數據。Geography數據類型采用圓形地球坐標系來記錄數據,也就是經緯度坐標之類數據。

  綠色無毒的SQL Server

  保護數據安全問題對于數據庫開發人員和管理員來說都是一個日益嚴峻的難題。政府不斷的出臺新的法律法規來為數據的訪問和存儲把關。此外,即使現在黑客比以往任何時候更橫行無阻,客戶和用戶還是越來越依賴于這些存儲著個人重要數據的系統的安全來保護數據。SQL Server 2008引入了一些新特性來幫助程序開發人員和數據庫管理員確保數據的安全。這些新特性包括透明數據加密(Transparent Data Encryption,TDE)和可擴展的密鑰管理(Extensible Key Management,EKM)。

  透明數據加密在SQL Server的結構中引進了新的加密層。透明數據加密通過使用本地存儲的對稱金鑰(Symmetric Key)或保護數據庫服務器外部的非對稱金鑰(Asymmetric Key)來保護數據。透明數據加密實際上是加密靜止數據(備份磁盤或磁帶上的數據)的,可執行往返于磁盤的數據文件和日志文件之間的數據的實時I/O加密和解密。透明數據加密使用AES和3DES加密算法,引進了新安全層,適用于任何應用程序,且無需對現有的應用程序做任何更改。

  透明數據加密是在服務器水平生效的,所以一旦啟用此功能,整個數據庫都會被加密,但數據庫內部的操作還是正常進行。要注意的是,透明數據加密不會保護正從服務器傳輸到遠程應用程序的數據,它只是保護磁盤上存儲的數據(或磁帶備份文件的數據)。

  可擴展的密鑰管理則通過使用外部管理的加密金鑰來擴展SQL Server保護數據的能力。這意味著,如果客戶使用了“硬件安全模塊”(HSM),甚至使用了外部軟件安全模塊,那么可以將這些模塊在SQL Server注冊,從而使用這些密鑰來一起加密和解密數據。當和透明數據加密一起聯用時,保護圈就完整了,不僅保護了SQL Server上所有的數據,也保護了傳入和傳出的數據。

  SQL Server 2008為開發人員提供了很多數據庫內部新工具,來幫助他們更有效地存儲數據和對數據進行操作,甚至還可以處理以前必須保存在數據庫外的數據類型。

  等了3年,這頓大餐終于正式上桌了,味道好壞,不妨一試。

熱詞搜索:

上一篇:SQL Server 2008,三年等待物有所值
下一篇:SQL Server 2008體驗分析

分享到: 收藏