A data model and design principles for temporal databases with homogeneous and non-homogeneous data