What is MDAC?
MDAC : Microsoft Data Access Component.
Where it is Used?
When ever you write a piece of code that access the Database, MDAC comes in to picture and Without MDAC it is NOT possible to access the database. For example when u write a ASP / VB / .NET code that uses ADO / OLEDB / ODBC to connect to the database, do you know which is the DLL that performs the operations for u? It is the MSADO15.DLL and this MSADO15.DLL comes as part of MDAC and it resides in "C:\Program Files\Common Files\System\ado". This is a very simple example that i'm giving. Similarly when u use the OLEDB provider for SQL Server, the DLL is SQLOLEDB.DLL. which will be residing in "C:\Program Files\Common Files\System\Ole DB". Similarly when u use ODBC connectivity (DSN) the DLL that is used for SQL Server is SQLSRV32.dll which resides in "C:\WINNT\system32". And there are so many similar kinds of DLL's which gets internally called and all of them comes as a PART of MDAC.
What is its Advantage?
MDAC uses a different HEAP and it will not combine with the other process when it comes with the runtime memory allocation. The MDAC heap is called as MPHEAPS where as the heaps used by other processes are called NTHEAPS. So that means MDAC helps ur application to perform the Database operations much quicker in a much safer memory environment. Make sure u r always on TOP of the latest MDAC and the higher the MDAC version the more is the advantage. MDAC is also backward compatible, which means the application built in MDAC 2.7 environment is capable of running under MDAC 2.8(Unless there is a HARD CODED check for the specific MDAC version).