Data Dictionaries are metadata repositories. They don't hold the data, they hold the information that _describe_ the data. They are composed of names and descriptions of the various tables of your [[Relational Databases]], and often the relationships between them (like in an [[Entity-Relationship Diagrams]]). Having a data dictionary is a good thing, even better when you can marry them in with [[Data Flow Diagram]]s or other types of [[Diagram Types (index)|Diagrams]]. Data Dictionaries can be _active_ or _passive_. Passive data dictionaries are essentially static representations of the database. Active data dictionaries are capable of self-updating on database changes and/or imposing _constraints_ on the data stored (e.g. "this `int` field only goes from 0 to 10"). The [[Pkl]] config language might be an interesting case for data dictionary construction. # Typical Attributes Each field would have associated with these meta-data attributes: - Group Name - Name - Displayed Title - [[Data Types|Type]] - Constraints (e.g. max/min, decimal place count) - Default value - Prompt type - Is required - Is read only - Is unique - Event-driven handlers (e.g. "on-click" routines) - Formatting info - Description **** ## Source - [Wikipedia](https://en.wikipedia.org/wiki/Data_dictionary) ## Related - [[Data Flow Diagram|DFD Diagrams]]