The overarching goal of the current book is to pavethe road towards a comprehensive solutionto the decades old problem of integrating databasesand programming languages. For thispurpose, we propose a record calculus as an extensionof an ML-style functional programminglanguage core that is powerful enough to allow typeinference for user-defined polymorphic relationaloperators. The type system described in the bookallows the definition and typing of standardrelational operators like join, project, divide,restrict, and others in a flexible, polymorphic way.