SQL2005數據庫引擎結構(一)
------------------------------------------------------------------------
-- Author : HappyFlyStone
-- Date : 2009-09-20 17:36:30
-- Version: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
-- Apr 14 2006 01:12:25
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
-- 轉載請註明出處,更多請關注:http://blog.csdn.net/happyflystone
------------------------------------------------------------------------
今天重點從上層來看了一下SQL2005的數據庫引擎組件,並大體上說說如何協同工作,理解這些是有助更好的學習數據庫。聯機幫助一下,發現一個很重點的組件:SQLOS-SQL Operating System.先用圖來說明一下總體組成:
一、協議層
首先我們必須知道SQLSERVER邏輯都是客戶/服務器,不管是你在一臺單機上,還是前端應用分散在多臺不同操作系統的機器上,甚至COM+結構都是。接着我們簡單的來理解訪問架構,理解SQLSERVER的我們不如先來說說HTTP,不管我們是什麼平臺下的瀏覽器,或是MSXML對象,或是.NET的類我們都可以輕鬆訪問IIS,簡單的說也就是我們只要遵守標準的HTTP協議就可以訪問IIS。那我們的SQLSERVER也是這樣做的,只不過不HTTP協議而是表格格式數據流DTS(tabular data stream),對IIS和SQLSERVER來說HTTP與DTS兩者的差別僅是前者是公開協議而後者是MS非公開的內部協議(每一次數據庫升級DTS也會作相應的升級,同時確保向下的兼容性),所以不管是ODBC還是OLEDB、SQL Client、JDBC只是把數據請求轉換成DTS然後打包封裝成標準的通信協議(如TCP/IP)信息包最後送到服務器端。服務器端把通訊信息包解開送給ODS(Open Data Services),然後還原成標準的SQL語句並轉交給關係引擎。
SQLSERVER2005支持的通訊協議有四種:
1、 共享內存
這是最簡單的數據庫在本地的一種協議。同時不需要配置就可以使用。如果是
MDAC2.8以前的版本是不支持這個協議的,會自動切換到命名管道。
2、 命名管道
局域網內使用的一種協議,互爲對方進程提供數據,這些進程可以在本地,
也可以遠程。
3、 TCP/IP
使用是廣泛的協議,可以在不同硬件和操作系統間互相通訊。
4、 虛擬接口VIA
與專用VIA硬件有關。
最後說一下TDS端點,2005已經使用TDS端點代表服務器連接,初始化安裝時,一共初始化5個端點,四個各一個,另一個給DAC使用。對於激動的DTS端點纔可以使用,處於非激活態的端點仍然存在,只是不能使用而已。
好,今天先說到這兒,下面我會重點說說關係引擎與存儲引擎。
請大家繼續關注我的blog: http://blog.csdn.net/happyflystone