Relational Database Engine Architecture Overview
The server components of Microsoft® SQL Server 2000™ receive SQL statements from clients and process those SQL statements. This illustration shows the major components involved with processing an SQL statement received from a SQL Server client.
Tabular Data Stream
SQL statements are sent from clients by using an application-level protocol specific to SQL Server called Tabular Data Stream (TDS). SQL Server 2000 accepts the following versions of TDS:
- TDS 8.0 sent by clients running versions of the SQL Server client components from SQL Server 2000. TDS 8.0 clients support all the features of SQL Server 2000.
- TDS 7.0 sent by clients running versions of the SQL Server client components from SQL Server version 7.0. TDS 7.0 clients do not support features introduced in SQL Server 2000, and the server sometimes has to adjust the data it sends back to the clients using TDS 7.0. For example, TDS 7.0 clients do not support the sql_variant data type, so SQL Server 2000 must convert any sql_variant data to Unicode.
- TDS 4.2 sent by clients running SQL Server client components from SQL Server 6.5, 6.0, and 4.21a. TDS 4.2 clients do not support features introduced in either SQL Server 2000 or SQL Server 7.0, and the server sometimes has to adjust the data it sends back to clients using TDS 4.2. For example, TDS 4.2 clients do not support Unicode data types, so SQL Server 2000 must convert any Unicode data to character data before sending it to the client, with possible loss of extended characters. TDS 4.2 clients also do not support char, varchar, binary, or varbinary values longer than 255 bytes, so SQL Server 2000 must truncate any values longer than 255 before sending them to the client.
TDS packets are built by the Microsoft OLE DB Provider for SQL Server, the SQL Server ODBC driver, or the DB-Library DLL. The TDS packets are then passed to a SQL Server client Net-Library, which encapsulates the TDS packets into network protocol packets. On the server, the network protocol packets are received by a server Net-Library that extracts the TDS packet and passes it to the relational database server.
This process is reversed when results are returned to the client.
Each server can be listening simultaneously on several network protocols and will be running one server Net-Library for each protocol on which it is listening.
Relational Database Engine
The database server processes all requests passed to it from the server Net-Libraries. It compiles all the SQL statements into execution plans, and then uses the plans to access the requested data and build the result set returned to the client.