1. A method, comprising: employing at least one processor configured to execute computer-executable instructions stored in memory to perform the following acts: receiving a first data model; identifying objects and morphisms of the first data model, wherein the objects are uniquely identifiable entities that capture data and the morphisms are relationships between the entities; generating a second data model that is a categorical dual of the first data model by interchanging source and target objects of one or more morphisms of the first data model and interchanging order of composite morphisms of the first data model, wherein the second data model is a different version of the first data model that formalizes a non-relational data model as the categorical dual of a relational data model; and initiating creation of a database from the second data model.