The document discusses database locks from a theoretical and practical perspective. It begins with an overview of relational database concepts like referential integrity, consistency and concurrency. It then describes different types of locks used in databases like row locks, table locks, DDL locks, and system locks. It provides examples of how each lock type works and their restrictions. The document also discusses how locks are used to maintain referential integrity with foreign keys and analyzes lock behavior using Oracle data dictionary views. It concludes that locks are necessary to ensure basic database functionality and that preventative tuning is better than reactive tuning when locks occur.