SQL Server data structure (in protocol) If I have a Book table and Author table, with Book having a foreign key to Author, many rows in Book may have the same author. If I then run this query:

SELECT * FROM Book
INNER JOIN Author ON Author.Id = Book.AuthorId
WHERE Author.LastName = 'Shakespeare'


how will the underlying data be formatted and sent to the client? In essence - will each Book row have it's own Author (i.e. the data from Author is duplicated for each row), or will there be one single Author entry (representing Shakespeare)?

UPDATE:

To be clear, I just want to know whether joining tables will increase packet size (and transmission time) significantly, or if the protocol has some compression to ensure that only unique entries are transmitted.
It doesn't look like there is compression like you are talking about in the TDS

A question that might help you: Is data retrieved from SQL Server compressed for transmission?