Database Connection vs Raw TCP Connection I have some fundamental questions about how database clients &amp; database interact


Do databases support multiple transactions simultaneously on a single database connection from client? If not, why not? (as multiplexing would save on resource overhead per connection &amp; connection pools are a source of contention when thousands of simultaneous queries needs to be executed simultaneously, which multiplexing for sure avoids)
Whats the relationship between database client's level Connection vs physical raw TCP connection. Is it many-to-one[multuplexing] (or) one-to-one? If not multiplexed why not?
If multiplexed, does the database server maintain a single logical connection from its end (or) multiple logical connections


PS: I understand some of these details will vary from database to database, buit want to know in general how popular implementations such as Postgres, Mysql, Oracle, SQL server &amp; DB2 implement these
Do databases support multiple transactions simultaneously on a single database connection from client? 


For SQL Server, no.


  If not, why not? (as multiplexing would save on resource overhead per connection)


It would seriously complicate the network protocol, which has to be implemented on multiple client platforms, creating a possible source of bugs and performance issues.  

And the resource overhead caused by multiple connections is small, and largely mitigated by connection pooling, where a set of long-lived connections is shared among all the threads in a client program.