This book gives a broad overview of core topics of finite model theory: expressive power, descriptive complexity, and zero-one laws, together with selected applications to database theory and artificial intelligence, especially, constraint databases and constraint satisfaction problems. The final chapter provides a concise modern introduction to modal logic, which emphasizes the continuity in spirit and technique with finite model theory. Students of logic and computer science will find here the tools necessary to embark on research in finite model theory, and all readers will experience the excitement of a vibrant area of application of logic to computer science.