Relational methods can be found at various places in computer science, notably in data base theory, relational semantics on concurrency, relational type theory, analysis of rewriting systems, and modern programming language design. In addition, they appear in algorithms analysis and in the bulk of discrete mathematics taught to computer scientists. This book is devoted to the background of these methods. It is the first to explain how to use relational and graph-theoretic methods systematically in computer science. A formal framework of relational algebra is developed with respect to applications to a diverse range of problem areas. Results are first motivated by practical examples, often visualized by both Boolean O-1 matrices and graphs, and then derived algebraically.