The overarching goal of the current book is to pave the road towards a comprehensive solution to the decades old problem of integrating databases and programming languages. For this purpose we propose a record calculus as an extension of an ML-style functional programming language core that is powerful enough to allow type inference for user-defined polymorphic relational operators. The type system described in the book allows the definition and typing of standard relational operators like join project divide restrict and others in a flexible polymorphic way.