This paper provides algorithms that use an information-theoretic analysis to learn Bayesian network structures from data. Based on our three-phase learning framework, we develop efficient algorithms that can effectively learn Bayesian networks, requiring only polynomial numbers of conditional independence (CI) tests in typical cases. We provide precise conditions that specify when these algorithms are guaranteed to be correct as well as empirical evidence (from real world applications and simulation tests) that demonstrates that these systems work efficiently and reliably in practice. Keywords Bayesian belief nets, learning, probabilistic model, knowledge discovery, data mining, conditional independence test, monotone DAG faithful, information theory 1 Now at Global Analytics, Canadian Imperial Bank of Commerce, Toronto, Canada.