En SQL Server las bases de datos del usuario se guardan en archivos de datos y archivos de log (o de registro)
Archivos de datos (MDF y NDF)
Los datos se guardan en uno o más archivos. Si la base de datos se guarda en un solo archivo de datos -que es el la configuración por default- este archivo regularmente tiene la extensión .MDF (archivo de datos principal o Main Data File). En ese archivo de datos principal se guardan los datos de los objetos, y apunta a los demás archivos de datos y de log.
Si fuera necesario guardar datos en más de un archivo de datos (por que así lo configuró el DBA para particionar los datos y separar la información en varios Filegroups) los archivos adicionales tendrán extensión NDF.
Archivos de log o de registro (LDF)
Cuando se realiza una transacción en la base de datos (INSERT, UPDATE, DELETE) el motor de bases de datos lleva un registros de cada operación en algo que llama log de transacciones. Esta bitácora de transacciones se guardan en archivos de extensión LDF. Cada query que hace una modificación de datos se guarda en el log de transacciones para poder recuperar la información si fuera necesario.
Procesamiento de transacciones y uso de archivos MDF y LDF
Cuando se procesa un query («INSERT INTO alumno (Nombre, Edad, Sexo) VALUES (‘Laura’,50, ‘F’)», por ejemplo, SQL Server hace las siguientes operaciones.
1.- Se guarda el nuevo registro en una memoria Buffer, fuera del archivo MDF
2.- Una vez guardado el registro en la memoria, se guarda en el archivo de log (.LDF) la transacción realizada, en este caso, se guarda el INSERT.
3.- Ya que se guardó en el archivo de log, se guarda en el disco en el archivo de datos (MDF)