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