Deadlocks can occur in distributed database systems when transactions are waiting for data locked by other transactions across multiple sites. There are three main approaches to handle deadlocks - prevention, avoidance, and detection/removal. For avoidance and detection/removal, issues like transaction location and control must be addressed due to the distributed nature. Avoidance algorithms abort or wait transactions based on age to prevent deadlocks proactively. Detection builds global wait-for-graphs to identify deadlock cycles and remove the deadlock.