MicrosoftSQLServer資料庫的內置語言是由美國標準局(ANSI)和國際標準組織(ISO)所定義的SQL語言,微軟公司對它進行了部分擴充而成為作業用SQL(Transact-SQL)。
MicrosoftSQLServer幾個初始版本適用於中小企業的資料庫管理,但是近年來它的套用範圍有所擴展,已經觸及到大型、跨國企業的資料庫管理。
SQLServer一開始並不是微軟自己研發的產品,而是當時為了要和IBM競爭時,與Sybase合作所產生的,其最早的發展者是Sybase,同時微軟也和Sybase合作過SQLServer4.2版本的研發,微軟亦將SQLServer4.2移植到WindowsNT(當時為3.1版),在與Sybase終止合作關係後,自力開發出SQLServer6.0版,往後的SQLServer即均由微軟自行研發。
在與微軟終止合作關係後,Sybase在WindowsNT上的資料庫產品原本稱為SybaseSQLServer,後來改為現在的SybaseAdaptiveServer。
[編輯]版本演進
版本 年份 發布名稱 代號
1.0
(OS/2) 1989年 SQLServer1.0 -
4.21
(WinNT) 1993年 SQLServer4.21 -
6.0 1995年 SQLServer6.0 SQL95
6.5 1996年 SQLServer6.5 Hydra
7.0 1998年 SQLServer7.0 Sphinx
- 1999年 SQLServer7.0
OLAP工具 Plato
8.0 2000年 SQLServer2000Shiloh
8.0 2003年 SQLServer2000
64-bit版本 Liberty
9.0 2005年 SQLServer2005 Yukon
10.0 2008年 SQLServer2008 Katmai
10.5 2010年 SQLServer2008R2 Kilimanjaro(akaKJ)
11.0 2012年 SQLServer2012 Denali
[編輯]SQLServer1.0&1.1
SQLServer的發源最早要回到1986年,當時微軟已和IBM合作開發OS/2(當時為了要繼承MS-DOS)作業系統,但由於缺乏資料庫的管理工具,而IBM也打算將其資料庫工具放到OS/2中銷售之下,微軟和Sybase合作,將Sybase所開發的資料庫產品納入微軟所研發的OS/2中,並在獲得Ashton-Tate的支持下,第一個掛微軟名稱的資料庫伺服器Ashton-Tate/MicrosoftSQLServer1.0於1989年上市。
不過在1989-1990年間,由於Ashton-Tate的dBASEIV計畫不順,讓微軟原本打算由dBaseIV來開發SQLServer應用程式的計畫變得無法實現,因此微軟終止與Ashton-Tate的契約,真正掛微軟單一品牌的MicrosoftSQLServer1.1於1990年中出貨。同一年,微軟為SQLServer創建技術支持團隊,並於1991年初起陸續取得Sybase的授權,有權利可以查看與修改SQLServer的原始代碼,但由於主控權仍在Sybase,因此微軟的任何修正都需要由Sybase查看並且同意後才可以運行,這個裡程碑對日後微軟開始發展自己的資料庫伺服器時,在資料庫引擎的發展上,提供了相當重要的基礎。
然而在OS/2的銷售狀況不佳下,SQLServer1.0/1.1/1.11(後續發布的1.1升級版)的銷售狀況都不佳。
[編輯]SQLServer4.2
1992年,由Sybase與微軟共同發表SQLServer4.2版,微軟在此版本中的貢獻為:
與Sybase合作,將Sybase的SQLServer核心代碼移植到OS/2中。
提供MS-DOS,Windows以及OS/2的客戶端庫(ClientLibrary)。
開發部份管理工具。
不過SQLServer4.2一開始並不是以32位為基礎,而是以16位為基礎開發。
[編輯]SQLServerforWindowsNT
在1992年時,由於市場上對32位作業系統的需求逐漸升高,但IBM的OS/22.0卻又沒有如期在時程內完成,SQLServer的開發小組利用OS/2的32位接口移植SQLServer到OS/22.0(當時為beta)測試時,發現32位並沒有如預期來的有效率,另外一方面,微軟內部當時也正在開發新一代作業系統(即WindowsNT),使得SQLServer團隊決定要終止對SQLServerforOS/2的發展,同時挹注全力開發出支持WindowsNT的版本,代號為“SQLNT”。
在SQLNT中,微軟將SQLServer4.2的核心代碼,以Win32API翻寫,並於1993年WindowsNT3.1出貨後30天,完成SQLServerforWindowsNT(4.2)的開發工作,在市場上銷售。
SQLServer4.2是第一個WindowsNT上的SQLServer,也是第一個出現在微軟認證考試中的SQLServer產品。
[編輯]SQLServer6.0
在微軟利用SQLServer4.2forWindowsNT賺取高額營收(自SQLServer4.2forWindowsNT發布起九個月內,微軟SQLServer帶來的營收已成長兩倍)時,對於其合作夥伴Sybase而言,微軟的SQLServer已不被Sybase所重視(Sybase自己要關注在自家的產品線),並且因為SQLServer的權利在Sybase手中(1987年與Sybase簽訂的契約),微軟無法在SQLServer中自行添加與修改功能。
微軟自SQLServer1.0到4.2forWindowsNT,數個版本的歷程中,其SQLServer團隊已經大幅成長,但受限於與Sybase的契約,微軟即使有新研發的WindowsNT功能,也無法加入SQLServer中,因此於1994年4月12日,微軟和Sybase正式終止了合作關係(並向Sybase買下了Windows版本的SQLServer代碼著作權),微軟獲得了對SQLServer代碼的完全控制權,不過挑戰也接踵而來——Sybase即將於年底發表System10forWindowsNT,微軟必須要提出新的版本計畫,以防止Sybase將原本的微軟客戶搶走,“SQL95”計畫這樣產生了。
SQL95的命名是仿自Windows95,也就是新一代的資料庫伺服器軟體,此版本於1994年10月發布第一個beta版本,並且後續又發布了不同的beta修正版,其中較引人注目的是首次出現在SQLServer中的“複製”(Replication)功能,複製功能所需要的“可滾動式數據游標”(scrollable-cursor),以及其管理工具(代號為“Starfighter”,即SQLEnterpriseManager)。
SQLServer6.0(SQL95)於1995年6月14日完成並進入RTM(releasedtomanufacturing),對於SQLServer團隊以及微軟來說,SQLServer6.0是重要的里程碑,因為此版本是完全由微軟自行開發,未假手Sybase或其他廠商,因此SQLServer6.0的發布,讓微軟的資料庫研發能力正式被外界認可。
SQLServer6.5發布於1996年,約於SQLServer6.0發表後十個月後發布。
[編輯]SQLServer7.0
當微軟正在發展SQLServer6.5時,已經另外有一個團隊正在發展新的資料庫,由於微軟計畫要能夠讓此種資料庫引擎能夠具有可向上發展,亦可以縮小到PC或筆記本電腦中,因此資料庫的核心必須要重新撰寫,這就會涉及數據結構的改變,為了要讓資料庫的升級能夠確保其穩定性,微軟在1997年特別邀請1000個組織備份資料庫,交由開發小組進行升級,並且在升級過程中找出可能的失敗原因。同時在1998年2月起,微軟與ISV合作發展運行於SQLServer7.0的軟體,除了保持兼容性外,也讓ISV能夠特別為SQLServer7.0的特性撰寫程式。
在同一時間,OLEDB的技術,以及很多人熟知的MSDE(MicrosoftDataEngine)也在研發中,後來OLEDB成為Windows平台上數據訪問的顯學,其上的ADO更獲得多數開發人員的採用。而MSDE也做為MicrosoftAccess資料庫外的另一種單機資料庫的選擇。
SQLServer7.0最終凍結版本為7.00.623.07,於1998年12月進入RTM。
[編輯]SQLServer2000
原本SQLServer2000隻是SQLServer7.0的一個小改款,代號為“Shiloh”,版本號碼為7.5;真正要做大翻修的SQLServer版本,代號則是“Yukon”。Shiloh在開發過程中,因為要加入的功能並不多,只是要完成在7.0版中沒有寫完的功能,並且預期可能升級的客戶不多,因此當時在微軟內部,只是把Shiloh視為是一個“SuperServicePack”而已,有如SQLServer6.0和6.5的角色。
不過因為幾個因素,讓SQLServer7.5擺脫“SuperServicePack”的束縛:
SQLServer7.0ServicePack2已經發表,無需再開發一個ServicePack。
來自客戶對於性能以及在數據倉庫中對星狀拓樸支持的分區查看與最佳化的要求。
來自於競爭者Oracle的壓力。
在微軟決定要把時程展延到18個月(完整的軟體周期)時,也開始為SQLServer7.5加入新的功能,版本代碼升級到8.0(最終版本為8.0.194),同時因應當時Windows2000的計畫,MicrosoftBackOffice也命名為BackOffice2000,故SQLServer8.0也改名為SQLServer2000。
SQLServer2000於2000年8月6日完成,並於2000年8月9日進入RTM狀態。
SQLServer2000可說是微軟資料庫伺服器中“生命期最久”(自2000年8月9日RTM開始到2005年11月SQLServer2005上市為止,長達五年又三個月),而且後續添加的新功能相當多,ServicePack也最多(最後的ServicePack為SP4)的版本,諸如:
SQLServer2000NotificationServices
SQLServer2000ReportingServices
SQLServer2000WebAdministration
SQLServer2000XML(SQLXML)
同時,它也是第一個出現在WindowsCE上的SQLServer。
[編輯]SQLServer2005
SQLServer2005(代號為“Yukon”)在千呼萬喚下終於在2005年11月,與VisualStudio2005一起發表,在SQLServer2005的研發過程中,其實並不順利。
SQLServer“Yukon”在2003年底左右就發表了Beta1,雖然已經有資料庫以及部份的新功能,但由於太多的除錯碼(當時SQLServer作為CLRHosting基底的.NETFramework2.0也正在研發中),讓運行速度變得很慢。一直到2004年中左右才發布Beta2,此版本的穩定度就高些,在Beta2和Beta3之間,每一至三個月左右就會發布一個測試版本,由於並不是達到特定功能或特定時程的測試版,因此都以“CTP”(CommunityTechnologyPreview)的方式發布(現在廣泛運用於各微軟的產品測試版本中),Beta2和Beta3之間相距幾乎一年,2005年6月才發布Beta3,此時整個環境才大致底定下來。
SQLServer2005具代表性的新功能有:
SQLServer管理工具的改變,SQLServerManagementStudio(SSMS)取代SQLServerEnterpriseManager。
將商業智慧型的開發功能由SQLServerEnterpriseManager切出,加入VisualStudio中,即BusinessIntelligenceDevelopmentStudio(BIDS)。
新增多種Transact-SQL指令,例如PIVOT/UNPIVOT,CommonTableExpression(CTE)等等。
強化XML的處理能力,並新增本地的XML數據類型,以及支持原生XML數據類型的XML查詢運算符。
新增varchar(max),nvarchar(max),varbinary(max)型數據類型,用來取代text、ntext與image類型。
將.NETFramework功能植入資料庫引擎中(SQLCLR),讓VB.NET和C#可以開發SQLServerStoredProcedure,Function,User-DefinedType等。
原本的DTS改名為SQLServerIntegrationServices,強化其ETL(Extract,TransformandLoad)功能。
DataMining新增到八種算法。
資料庫引擎的安全性功能大幅強化,引入主體(Principal),結構(Schema)以及數據層次的加解密。
對於數據結構變更的觸發程式支持(DDLTrigger)。
除了伺服器版本的改變外,MSDE也正式由SQLServerExpress所接替,作為SQLServer2005核心的微型資料庫伺服器,並且在隨後的版本,也添加了SQLServerExpressReportingService以及SQLServerManagementStudioExpress等小工具,讓SQLServerExpress比MSDE更好管理。
[編輯]SQLServer2008
SQLServer2008在2008年8月6日正式發表,並且同時發布SQLServer2008Express版本,研發代號為“Katmai”,作為SQLServer2005的功能強化版本,其主要的新功能與特色有:
以原則為主(Policy-Based)的管理基礎架構。
與WindowsServer2008、WindowsVista的DataCollector技術集成的PerformanceDataCollection。
可以經由管理者設定以調整運行資源的資源調節器(ResourceGoverner)。
可預測的查詢性能。
數據壓縮能力。
DDL(數據定義語言)審核能力。
透通式數據加密(TransparentDataEncryption)
記錄檔數據流壓縮(LogStreamCompression)
ADO.NETObjectServices的直接支持,這代表SQLServer2008可支持LINQ和ADO.NETEntityFramework。
本地的DATE和TIME分區的數據類型,並且支持時間位移的DATETIMEOFFSET和更精確的DATETIME2數據類型。
FILESTREAM數據類型:將大型二進制數據存到NTFS檔案系統中(即不直接存在資料庫中)。
稀疏欄位(sparseColumn)的支持,可節省因為NULL值所占據的存儲空間。
空間數據類型集,包含geometry(平面或Euclidean(平面地球)數據)以及geography(橢圓體(圓形地球)數據),分別可存儲平面和立面型的數據,有助於GIS型系統的開發。
變更數據收集與捕捉(ChangeDataCapture)。
寬數據表(Widetable),可以容納最高30,000個欄位,但必須要配合Sparse欄位使用。
hierarchyid數據類型,可以允許存儲層次結構化的數據。
MERGE陳述式,可根據與來源數據表聯結的結果,在目標數據表上運行插入、更新或刪除作業,其功能與ADO.NET中的DataSet.Merge()方法類似。
ReportServer應用程式嵌入能力。
ReportingService可支持窗體驗證。
預測分析能力(ssas)。
數據表型參數與變數,可以在變數或參數中使用table的類型。
SQLServer2008比起以往版本存在以下優勢:(1)保護資料庫查詢(2)在伺服器的管理操作上花費更少的時間(3)增加應用程式穩定性(4)系統執行性能最佳化與預測功能
[編輯]SQLServer2008R2
SQLServer2008R2在2010年4月21日正式發表,並且同時發布SQLServer2008R2Express版
[編輯]SQLServer2012
SQLServer2012在2012年3月6日正式發表。提供標準、企業、智慧型商務三種版本。
[編輯]SQLAzure
主條目:SQLAzure
SQLAzure是微軟WindowsAzurePlatform上的雲關係資料庫服務(DatabaseasaService),早期被稱為SQLServerDataServices或SQLServices,應用程式可以直接利用TDSoverSSL來訪問SQLAzure中的資料庫,同時SQLAzure基於WindowsAzure平台之上,亦具有與WindowsAzure相同的高可用性(HighAvailability),高延展性(HighExtensibility)以及高擴充性(HighScalability)。
[編輯]架構
[編輯]服務
[編輯]資料庫管理工具
SQLServerManagementStudio
SQLServer默認的資料庫管理工具,隨著SQLServer安裝時勾選客戶端的選項而安裝。
navicatforSQLServer
是一套專為MicrosoftSQLServer設計的強大資料庫管理及開發工具。它可以用於任何版本的SQLServer資料庫,並支持大部份SQLServer的功能,包括觸發器、索引、查看等。斷點。
[編輯]對編程的支持
[編輯]版本
SQLServer依功能的不同,分成下列的版本:
SQLServerEnterpriseEdition:具有企業級功能的SQLServer版本,適用於大型企業以及大型資料庫或數據倉庫的伺服器版本。
SQLServerStandardEdition:具有標準功能的SQLServer版本,適用於一般企業的伺服器版本。
SQLServerWorkgroupEdition:自SQLServer2000開始才有的版本,專為工作組或部門所設計,適用於較小規模的組織。
SQLServerWebEdition:自SQLServer2008開始才有的版本,專為Web伺服器與WebHosting所設計,功能上較WorkgroupEdition少一些。
SQLServerExpressEdition:免費的SQLServer版本,適用於小型應用程式或是單機型應用程式,但在功能上有設限,如只能使用一顆處理器,以及最大資料庫大小為4GB等。請見SQLServerExpress。
SQLServer2008Express下載地址
SQLServer2008Express
SQLServer2008ExpressandAdvancedServices
SQLServer2008ExpresswithTools
MSDE下載地址
MicrosoftSQLServer2000DesktopEngine(MSDE2000)ReleaseA
SQLServer2005Express下載地址
MicrosoftSQLServer2005ExpressEditionwithAdvancedServicesServicePack2
MicrosoftSQLServer2005ExpressEditionToolkitServicePack2
MicrosoftSQLServerManagementStudioExpressServicePack2
MicrosoftSQLServer2005ExpressEditionServicePack2
SQLServerCompactEdition:免費的SQLServer版本,專用於移動設備以及WindowsCE作業系統。
另外SQLServer還有一個特殊的版本:SQLServerDeveloperEdition,它具有與SQLServerEnterpriseEdition相同的功能,但只授權在開發應用程式與測試之用,也正因為如此,SQLServerDeveloperEdition的價格只有EnterpriseEdition約千分之一而已。
[編輯]SQLServer2005強化與革新
SQLServer2005在資料庫核心做了相當大的改變,將.NET集成到資料庫引擎中,因此開發人員除了可用原有的T-SQL語法進行開發之外,也可使用.NET語言。另外,在接口集成、高可用性、安全性與商業智慧型等方面,均做了相當大的強化與更新。
[編輯]與.NET集成
主條目:SQLCLR
使用C#或VB.NET寫SQLCLR的預存程式或預存函式,通過.NETFrameWork使SQLServer能使用到原本沒有自帶的功能。
[編輯]接口集成
[編輯]高可用性
[編輯]系統安全性
[編輯]商業智慧型
集成服務(SQLServerIntegrationServices,SSIS)
創建數據集成方案,包括數據倉庫的截取、轉換和載入封裝。
報表服務(SQLServerReportingServices,SSRs)
創建從各種數據源取得內容的報表、以各種格式發布報表,以及集中管理安全性和訂閱。
分析服務(SQLServerAnalysisServices,SSAS)
用於OLAP或數據採礦的計算。
[編輯]其他
支持原生XML
同時支持32位與64位系統
注意sql2005enterprise版本不支持vista系統,但express版本與developer版本可以。