- SQL Server 2016數據庫應用與開發
- 姜桂洪主編
- 3256字
- 2019-07-01 10:15:03
2.1 SQL Server數據庫簡介
SQL Server 2016數據庫不僅具有良好的安全性、穩定性、可靠性、可編程性以及對日常任務的自動化管理等方面的特點,還能夠有效地執行大規模聯機事務處理、深入云技術關聯、完成數據倉庫、電子商務應用和智能開發等許多具有挑戰性的工作,為不同規模的企業提供一個完整的數據解決方案。
2.1.1 SQL Server數據庫的發展歷程
Microsoft公司于2016年底發布了Microsoft SQL Server 2016數據庫平臺產品。該產品的發布為各類用戶提供了完整的數據庫解決方案,可以幫助用戶建立自己的電子商務體系,增強用戶對外界變化的敏捷反應能力,提高了用戶的市場競爭力。
SQL Server最初是由Microsoft、Sybase和Aston-Tate三家公司共同開發的。
1995年,完全由Microsoft公司自主開發的第一個版本SQL Server 6.0版發布。
2000年,Microsoft公司于發布的SQL Server 2000版本,包括企業版、標準版、開發版、個人版4個版本。憑借其優秀的數據處理能力和簡單易用的操作,使得SQL Server與Oracle和DB2一樣躋身世界三大數據庫之列。
2005年,Microsoft公司發布SQL Server 2005,將企業管理器和查詢分析器等集成在一個界面,更多地考慮了數據庫的擴展及其編程能力。
SQL Server2008在原有SQL Server 2005的架構上做了進一步更改,增加了基于策略的管理、數據壓縮、資源調控器以及關系數據類型之外的新功能。Transact-SQL中增加了日期和時間數據類型及表值參數,恢復了調試器,并且在管理平臺Management Studio中增加了IntelliSense功能。
SQL Server 2012提供了一個云計算信息平臺,該平臺可幫助企業對整個組織有突破性的深入了解,并且能夠快速在內部和公共云端重新部署方案和擴展數據。
SQL Server 2014提供的內建In-Memory技術能夠整合云端各種資料結構,而其提供的快速運算效能及高度資料壓縮技術,可以幫助客戶加速業務和向全新的應用環境進行切換。同時提供與Microsoft Office連接的分析工具,通過與Excel和Power BI for Office 365的集成,實現了業務人員自主、即時地進行決策分析的商業智能功能,輕松幫助企業員工運用熟悉的工具,把資訊轉換成環境智慧,使資源發揮更大的營運價值,進而提升企業產能和靈活度。
SQL Server 2016有許多涉及數據庫引擎、分析服務等多個方面的功能性增強和改進,同時也增加了很多全新的功能。本書為適應教學需要,選擇性能完備、普及性較強的SQL Server 2016 CTP2.0版本為操作軟件(操作系統為Microsoft Windows 10專業版)。
2.1.2 SQL Server 2016的新特性
SQL Server 2016是Microsoft公司的新一代數據管理和分析解決方案,即實現了一個為云做好準備的信息平臺。該平臺可幫助員工對整個組織有突破性深入了解,可以提高設計、開發和維護數據庫存儲系統的架構師、軟件工程師和管理人員處理信息的能力。
1.SQL Server 2016的主要特點
SQL Server 2016的新技術主要包括數據全程加密、延伸數據庫、支持R語言、實時業務分析與內存OLTP、內置JSON支持、行級安全等。
(1)延伸數據庫(Stretch Database)。Stretch Database是SQL Server 2016中的新功能,可以既透明又安全地將歷史數據遷移到Microsoft Azure云。可以無間隙地訪問SQL Server數據,不管這些數據存儲于本地計算機還是延伸到云中。可以設置決定數據存儲位置的策略,而由SQL Server處理后臺的數據遷移,整個數據表始終處于聯機狀態,始終可供查詢。Stretch Database不需要對現有查詢或應用程序進行任何更改,因為數據的位置對于應用程序來說是完全透明的。
(2)數據的全程加密(Always Encrypted)。Always Encrypted基于的技術來自于Microsoft Research,可在靜態和動態下保護數據。有了全程加密技術,SQL Server可以對執行操作進行加密,而加密鑰匙就設置在了用戶可信環境的應用程序中。數據的加密和解密可最小限度地改動現有應用,最大限度地保證用戶的數據安全。
(3)動態數據屏蔽(Dynamic Data Masking)。動態數據屏蔽通過對非特權用戶屏蔽敏感數據來限制敏感數據的公開。動態數據屏蔽允許用戶在盡量減少對應用程序層的影響的情況下,指定需要披露的敏感數據,從而防止對敏感數據的非授權訪問。這是一種基于策略的安全功能,該功能可以隱藏對指定數據庫字段進行查詢時獲得的結果集中的敏感數據,而不會更改數據庫中的數據。
(4)內置JSON(JavaScript Object Notation)的支持。JSON是JSP的數據交換格式,可以在應用和數據庫引擎之間進行格式交互。SQL Server 2016針對導入和導出JSON以及處理JSON字符串添加了內置支持。可以解析JSON格式數據,將查詢結果的格式設置為JSON或導出JSON,并以關系格式存儲,實現對JSON格式數據的查詢。
(5)PolyBase的應用。PolyBase是一種通過Transact-SQL訪問數據庫外部數據的技術,通過PolyBase可以簡單、高效地管理Transact-SQL數據。PolyBase支持查詢分布式數據集,并允許使用Transact-SQL語句訪問存儲在Hadoop或Azure Blob存儲中的數據并以即席方式對其進行查詢。還允許查詢半結構化的數據,并將結果與存儲在SQL Server中的關系數據集連接。PolyBase針對數據倉庫工作負載進行了優化,旨在分析查詢方案。
(6)SQL Server支持R語言。SQL Server 2016把R語言內置,利用R語言對大數據進行分析。可以在SQL Server數據庫引擎中執行R語言代碼,并將執行R語言的結果集直接導出到數據庫。
(7)多TempDB數據庫文件。對于多核計算機,可以執行多個TempDB數據庫文件。所有TempDB數據庫文件都將根據增長設置同時增長。安裝過程中,可以使用SQL Server 2016安裝向導直接配置TempDB數據庫文件數目、初始大小、自動增長增量和目錄位置。如果指定了多個目錄,TempDB數據文件將以循環方式分散在目錄中。
(8)時序表(Temporal Table),又稱為歷史表,可以在基表中保存數據的歷史信息。SQL Server 2016現在支持系統版本的時序表。時序表是一種新類型的表,可在任何時間點提供關于存儲事實的正確信息。每個時序表實際上由兩個表組成,另一個用于當前數據,一個用于歷史數據。系統確保在當前數據更改時,以前的值存儲在歷史數據表中。提供查詢結構以隱藏用戶的復雜性。
(9)行級安全(Row Level Security)。行級安全控管讓客戶基于用戶特征控制數據訪問。SQL Server 2016的行級安全性引入了基于謂詞的訪問控制。可以根據集中式評估元數據(如標簽)或管理員根據需要確定的任何其他條件,以基于用戶屬性來確定用戶是否具有合適的數據訪問權限。可以使用基于謂詞的訪問控制來實現基于標簽的訪問控制。
2.SQL Server 2016數據庫的新功能
(1)安全性能。SQL Server 2016中新開發了一系列的安全特性,數據全程加密能夠保護傳輸中和存儲后的數據安全;透明數據加密(Transparent Data Encryption)只需消耗極少的系統資源即可實現所有用戶數據加密;行級安全控管讓客戶基于用戶特征控制數據訪問。
(2)信息處理。SQL Server 2016將內存在線事務處理(Online Transaction Processing)引擎整合到SQL Server的核心數據庫管理組件中,它不需要特殊的硬件或軟件就能夠無縫整合現有的事務過程。實時內存業務分析計算技術讓OLTP事務處理速度提升了30倍,可升級的內存列存儲技術(columnstore)讓分析速度提升高達百倍,查詢時間可以從幾分鐘降低到只要幾秒鐘。
(3)延伸數據庫。該技術可動態地將熱和冷的交易數據傳輸至Microsoft Azure,可以方便隨時隨地查看,并可以從Microsoft Azure的低成本中獲益。另外,還可以采用全程加密來加密數據。
(4)增強的Azure混合備份功能,可以在Azure虛擬機中實現更快的備份和恢復。
(5)Transact-SQL增強功能。SQL Server 2016提供了大量的Transact-SQL的增強功能。例如,Truncate table語句現在允許截斷指定的分區;Alter table現在允許執行多次更改列操作,同時保持表可用;非聚集索引的最大索引鍵大小已增加到1700B;添加了新的字符串函數STRING_SPLIT()和STRING_ESCAPE();高級分析擴展允許用戶執行R語言等編寫腳本等。
(6)高可用性增強。SQL Server 2016改進Always On可用性和災難可恢復性。Always On故障轉移群集現在支持組托管服務賬戶。Always On可用性組支持Windows Server 2016上的分布式事務和分布式事務協調(Distributed Transaction Coordinator,DTC)。Always On現在也支持加密的數據庫。
(7)復制增強功能。SQL Server 2016支持復制內存優化表,也可以支持數據復制到Azure SQL DataBase。
(8)SSMS中的增強功能。確定表或存儲過程是否應移植到內存中,OLTP不再要求配置數據收集器或管理數據倉庫,而可以直接對生產數據庫運行報告,以用于遷移評估的PowerShell Cmdlet,可用于評估一個SQL Server數據庫中多個對象的遷移擬合度。
(9)新權限。SQL Server 2016的權限已作為行級安全實現的一部分提供,可以更改任意安全策略,也可以更改任何外部數據源和更改任何外部文件格式權限在SQL Server中的可見性,但僅適用于分析平臺系統(SQL數據倉庫)。以此實現了可作為R語言支持的一部分執行任意外部腳本權限。
(10)新的Model數據庫。Model數據庫的新值和基于Model的新數據庫的默認值增大。數據文件和日志文件的初始大小現在變為8MB,而數據和日志文件的默認自動增長增量現在為64MB。
還有SQL Server 2016的一些其他新功能,如動態數據屏蔽、時序表及支持歷史記錄查詢等。另外,還有bcp實用工具、BULK INSERT和OPENROWSET支持UTF-8代碼頁等。
- Embedded Linux Projects Using Yocto Project Cookbook
- Spring Cloud Alibaba核心技術與實戰案例
- 摩登創客:與智能手機和平板電腦共舞
- INSTANT Weka How-to
- OpenStack Cloud Computing Cookbook(Fourth Edition)
- Mastering Swift 2
- Learn React with TypeScript 3
- BIM概論及Revit精講
- AIRIOT物聯網平臺開發框架應用與實戰
- 編寫高質量代碼:改善Objective-C程序的61個建議
- Mastering Concurrency Programming with Java 9(Second Edition)
- 創意UI Photoshop玩轉移動UI設計
- C語言王者歸來
- Cinder:Begin Creative Coding
- Visual FoxPro數據庫程序設計