Srikar Doddi
Srikar Doddi

Reputation: 15599

What is the format of a data dictionary?

Are there any standard examples/ samples of data dictionaries that document a database.

Upvotes: 6

Views: 5929

Answers (3)

Wolfgang Fahl
Wolfgang Fahl

Reputation: 15769

That depends on your database - for relational database the Data Definition Language of SQL is standardized as part of the corresponding ISO standards for SQL.

For NoSQL and Graph Database get more difficult because these are some times "schema free" by definition. You might find more pointers when you look for LinkML and https://pubmed.ncbi.nlm.nih.gov/33103120/

Upvotes: 1

bochgoch
bochgoch

Reputation: 7193

The official standard is ISO/IEC 11179 ... which will make your head hurt and refers to semantic elements of the documented data-model when we usually need both semantic and physical (tables, fields etc.) documentation in a 'real world' data dictionary.

Personally, I favour (however you implement this is up to you) physical and optionally logical Entity-Relationship models on the front-page, entry screen or wherever a user of the Data Dictionary first 'hits' (This provides a meta layer to the detail beneath).

Then for each table:

Table Name [Physical | Logical]

Table description (content, granularity, 'periodicity' (if there is one, the time period which applies to the data contained in the table), source)

Then for each column:

Column Name

Column Description

Column Datatype

Column Size in Bytes

[Optional] Other Column Details... nullable, triggers, source

Relationships Constraint name | 'Other' Table | Cardinality | Type etc.

Indexes Name | Column Membership | Type etc.

...Obviously, that's a 'less is more' approach to defining a data dictionary! I think the key is providing an easy way in (through the ER) model, rather than just a long, labourious list of tables and columns.

Upvotes: 7

MJB
MJB

Reputation: 7686

I don't think there is a standard way of doing it.

Oracle uses a series of objects all starting with DBA_*. For example, DBA_TABLES, DBA_TAB_COLUMNS, etc. You can do SELECT TABLE_NAME FROM ALL_TABLES WHERE TABLE_NAME LIKE 'DBA%' to get a list.

If you don't have privs, there is an analogous series of objects for users, called USER_TABLES, USER_VIEWS, USER_TAB_COLS, etc.

Upvotes: 0

Related Questions