Tabular Data Stream
Encyclopedia
Tabular Data Stream is an application layer
protocol, used to transfer data between a database server
and a client. It was initially designed and developed by Sybase
Inc. for their Sybase SQL Server relational database
engine in 1984, and later by Microsoft
in Microsoft SQL Server
.
and its client
. To encourage the use of their products, Sybase came up with a solution through the use of a flexible pair of libraries
, called netlib and db-lib, to implement standard SQL
. A further library was included to implement "Bulk Copy" called blk. While
In 1990, Sybase entered into a technology sharing agreement with Microsoft
which resulted in Microsoft marketing its own SQL Server — Microsoft SQL Server
— based on Sybase's code. Microsoft kept the
The TDS protocol comes in several varieties, most of which had not been openly documented because they were considered to be proprietary technology
. The exception was TDS 5.0, used exclusively by Sybase, for which documentation is available from Sybase. This state changed when Microsoft published the TDS specification, probably due to the Open Specification Promise
.
A free native library implementation of the TDS protocol has been developed by the FreeTDS
team, licensed under the LGPL
license, and the protocol has been decoded with WireShark
.
Application layer
The Internet protocol suite and the Open Systems Interconnection model of computer networking each specify a group of protocols and methods identified by the name application layer....
protocol, used to transfer data between a database server
Database server
A database server is a computer program that provides database services to other computer programs or computers, as defined by the client–server model. The term may also refer to a computer dedicated to running such a program...
and a client. It was initially designed and developed by Sybase
Sybase
Sybase, an SAP company, is an enterprise software and services company offering software to manage, analyze, and mobilize information, using relational databases, analytics and data warehousing solutions and mobile applications development platforms....
Inc. for their Sybase SQL Server relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...
engine in 1984, and later by Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
in Microsoft SQL Server
Microsoft SQL Server
Microsoft SQL Server is a relational database server, developed by Microsoft: It is a software product whose primary function is to store and retrieve data as requested by other software applications, be it those on the same computer or those running on another computer across a network...
.
Background
During the early development of Sybase SQL Server, the developers at Sybase realized that there was no commonly accepted application-level protocol to transfer data between a database serverDatabase server
A database server is a computer program that provides database services to other computer programs or computers, as defined by the client–server model. The term may also refer to a computer dedicated to running such a program...
and its client
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....
. To encourage the use of their products, Sybase came up with a solution through the use of a flexible pair of libraries
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....
, called netlib and db-lib, to implement standard SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....
. A further library was included to implement "Bulk Copy" called blk. While
netlib
's job is to ferry data between the two computers through the underlying network protocol, db-lib
provides an API to the client program, and communicates with the server via netlib. db-lib sends to the server a structured stream of bytes meant for tables of data, hence a Tabular Data Stream. blk
provides, like db-lib
, an API to the client programs and communicates with the server via netlib. Unlike SQL, it provides a proprietary but much faster protocol for loading data into a database table.In 1990, Sybase entered into a technology sharing agreement with Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
which resulted in Microsoft marketing its own SQL Server — Microsoft SQL Server
Microsoft SQL Server
Microsoft SQL Server is a relational database server, developed by Microsoft: It is a software product whose primary function is to store and retrieve data as requested by other software applications, be it those on the same computer or those running on another computer across a network...
— based on Sybase's code. Microsoft kept the
db-lib
API and added ODBC. (Microsoft has since added additional APIs.) At about the same time, Sybase introduced a more powerful successor to db-lib, called ct-lib
, and called the pair Open Client. db-lib is officially deprecated but still in widespread use.The TDS protocol comes in several varieties, most of which had not been openly documented because they were considered to be proprietary technology
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...
. The exception was TDS 5.0, used exclusively by Sybase, for which documentation is available from Sybase. This state changed when Microsoft published the TDS specification, probably due to the Open Specification Promise
Microsoft Open Specification Promise
The Microsoft Open Specification Promise , is a promise by Microsoft, published in September 2006, to not assert legal rights over certain Microsoft patents on implementations of an included list of technologies....
.
A free native library implementation of the TDS protocol has been developed by the FreeTDS
FreeTDS
FreeTDS is a free software programming library, a re-implementation of the Tabular Data Stream protocol. It can be used in place of Sybase's db-lib or ct-lib libraries. It also includes an ODBC library...
team, licensed under the LGPL
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...
license, and the protocol has been decoded with WireShark
Wireshark
Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education...
.
External links
- Microsoft Developer Network, Tabular Data Stream Protocol Specification
- What is TDS?, sybase.com
- FreeTDS
- jTDS, a pure-Java JDBC driver for TDS databases
- jBCP, an extension of jTDS to include BCP protocols
- United States Patent 7318075: Enhanced tabular data stream protocol, Microsoft
- Patent: TRANSPORTING TABLE VALUED PARAMETER OVER TABULAR DATA STREAM PROTOCOL, Microsoft
- Patent application: COMPRESSING NULL COLUMNS IN ROWS OF THE TABULAR DATA STREAM PROTOCOL, Microsoft
- WireShark wiki: Protocol tds