The current state of information technology in the modern enterprise has been described as a “Software Wasteland”.1 There are countless silos where each application has its own database and its own database schema with consequent duplication and high costs of integration and change. There are a few root causes.
First, there is no mechanism for breaking up a data schema into modules that can be re-purposed and reused across multiple databases. Monolithic data models and the lack of reusability increase the cost of change. Second, there is no way to uniquely identify data or schema elements globally across databases; this results in high integration costs. Finally, and perhaps most importantly, there are no widely used technologies ...