Tabular Data Stream

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Tabular Data Stream
Communication protocol
AbbreviationTDS
PurposeDatabase
Developer(s)Sybase Inc., Microsoft
Introduction1984; 42 years ago (1984)
OSI layerApplication layer (7)
Port(s)TCP/1433
Website{{#property:P856}}

Tabular Data Stream (TDS) 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.

History

[edit | edit source]

During the early development of Sybase SQL Server, the developers at Sybase perceived the lack of a commonly accepted application level protocol to transfer data between a database server and its client. In order to encourage the use of its products, Sybase promoted the use of a flexible pair of libraries, called netlib and db-lib, to implement standard SQL. A further library was included in order 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.

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 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, though officially deprecated, remains in widespread[quantify] use.

The TDS protocol comes in several varieties, most of which had not been openly documented because they were regarded[by whom?] as proprietary technology. The exception was TDS 5.0, used exclusively by Sybase, for which documentation is available from Sybase.[1] This situation changed when Microsoft published the TDS specification in 2008,[2] as part of the Open Specification Promise.

The FreeTDS team has developed a free native-library implementation of the TDS protocol,[3] licensed under the LGPL license. Wireshark has a protocol decoder for TDS.[4]

Oracle Corporation provides Oracle Net - software analogous to TDS.[5]

See also

[edit | edit source]

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ protocol/tds, Wireshark.org wiki
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]