Minimal requirements for a normalized representation would be:
- A normalized representation would include all such objects in one or more files, ideally in a yaml format
- It must include ways of describing common database objects, such as Tables and Table columns, Primary and Foreign Keys.
- (Optional) It would include a way of describing Views, Triggers, and Jobs
- The normalized representation would attempt to be agnostic of database implementation and language implementation, attempting to use a common data type
- The normalized representation would provide a way to represent DBMS-specific information if necessary about the objects, such as table implementation (e.g. Innodb vs MyISAM)
- The normalized representation would include a way of representing arbitrary key-value metadata about objects (tables, columns, and index), such as units, descriptions, and other metadata.