In this chapter we will provide the theoretical foundations underpinning the classes of Bayesian networks we explored in the previous chapters. In particular, we will introduce the formal definition of a Bayesian network and its fundamental properties. We will then show how these properties provide a rigorous foundation for learning, inference and model validation including causal modelling.