1. A system for automatically analyzing a data model and identifying anomalies within the data model, the system comprising: a memory device comprising computer-readable program code; a communication device; and a processing device operatively coupled to the memory device and the communication device, wherein the processing device is configured to execute the computer-readable program code to: based on input received from a graphical user interface, retrieve data comprising a plurality of elements and a plurality of tables, the data retrieved from a database; identify each element as a fact or a dimension based on at least one of a data type corresponding to the element, a column name corresponding to the element, and one or more constraints corresponding to the element; identify each of the tables associated with the data as either a fact table or a dimension table, wherein the plurality of tables comprises at least one fact table and at least one dimension table; determine that a set of elements within a single column of a first dimension table is a primary key for the dimension table by determining that each element of the set is unique to one another; identify a reference key corresponding to the primary key; based on identifying the reference key corresponding to the primary key, determine at least one relationship between at least two tables; generate a data model of the data retrieved from the database; identify data anomalies from the at least one relationship, wherein data anomalies are ragged hierarchies, many to many relationships, and double counting; generate a data analysis report comprising: generating a list of the columns of the tables associated with the data model, a list of other tables that share at least one column with the at least one dimension table, one or more lists of data anomalies, and a list of parents and children, wherein a child is a column associated with the reference key and a parent is a column associated with the primary key; compiling the list of columns, the list of other tables, the one or more lists of data anomalies, and the list of parents and children; and present the data analysis report to a user.