SQL Server databases consist of at least 1 data file and at least 1 log file. These files contain the data and a record of the transactions that are in the process of being committed or rolled back. All transactions are recorded to the transactions log and periodically a checkpoint occurs which makes sure that the log records are flushed to disk. This also happens when an orderly shutdown occurs: the SQL Server performs a checkpoint of all databases, closes out all internal database tracking structures, and exits the SQL Server process.
There are many things that can cause corruption but in general corruption occurs if/when anything interrupts data from being written to either of those files. This can include the following:
- Power outage - this would prevent the checkpoint from performing a checkpoint as indicated above. It can also cause problems if the SQL Server was in the middle of writing data to the disk.
- I/O Subsystem problems - this includes any of the software or hardware that is involved in reading and writing to your disks (the HBA card or drivers, fiber, SAN storage).
More info: SQL Server 2000 I/O Basics