1. A method for storing and retrieving data in a computer system, the method comprising: extracting data from a data source of a plurality of data sources; categorizing the data into one or more archetypes; wherein the one or more archetypes comprise one or more of an entities, relationships, or results; importing the data into a unified data model; storing information identifying the data as the one or more archetypes in a table in the unified data model; wherein the information is stored regardless of whether the unified data model already comprises the information; and storing metadata associated with the one or more archetypes in a metadata table in the unified data model, the metadata comprising information defining a plurality of attributes of the one or more entities; wherein the unified data model provides an abstract data model whose structure is independent of the plurality of data sources receiving a message; determining whether the message is associated with the one or more entities, the one or more relationships, or the one or more results; if the message is associated with the one or more entities or with the one or more relationships, comparing the one or more entities and one or more attributes of the plurality of attributes of the one or more entities with the metadata in the unified data model, determining that one or common attributes of the plurality of attributes are already present in the unified data model, and importing a first set of data from the message into an entity table or a relationship table; and if the message is associated with the one or more results, comparing the one or more results in the message to the metadata in the unified data model, determining that no results of the same archetype as the one or more results are currently represented in the unified data model, and importing a second set of data from the message into a results table.