Traditionally dependencies are used in database design and data quality control. In knowledge discovery, dependencies represent knowledge discovered from the data of databases. Some of the discovered dependencies represent new knowledge in the application area, which is critical to the advance of the area, and some are used to verify existing knowledge. In recent years, as more and more attention is placed on data quality, dependencies holding on data reflect the quality of data: the more dependencies that the data satisfies, the higher quality the data is of. Motivated by the importance of dependency discovery in knowledge discovery and data quality assessment, in this paper, we review the methods for functional dependency and inclusion dependency discovery in relational and XML databases in the literature.