A data dictionary is a CASE tool, along with an ERD, used to help plan a database. It is also part of the system documentation for future developers to adapt and maintain the database.
After an ERD has been designed the data dictionary is created to identify the datatypes and constraints of the entities/tables.
Commonly the detail recorded in the data dictionary follows this layout (but the headings do change!).
| Name | Datatype | Size | Description | Constraint |
| Name of the attribute | Type of data, such as Integer, Float, Text, Boolean, Date | How many characters/numbers are the maximum allowed | A description of the type of data to be recorded in the field. This can also be where an example of format of the record should go, such as Date mm/dd/yyyy or dd/mm/yyyy | If the record is a primary key then it should be noted here. If the field is required it should be noted here also. |
Here is some example data, and beneath it what the data dictionary should look like.
| PatientID | Firstname | Surname | DOB | Address | City | Postcode | Telephone | AppontmentID |
| 000001 | Dave | Billings | 03/04/1979 | 30 Gnangarra Drive | Waikiki | 6169 | 08 0454 0000 | 000034 |
| 000021 | Josh | Smith | 24/01/1999 | 13 Williams Street | Safety Bay | 6169 | 0414 234 568 | 000099 |
Patient Entity
| Name | Datatype | Size | Description | Constraint |
| PatientID | Integer | 6 | Unique identifier of the patient | Primary key required. Automatically generated. |
| Firstname | Text | 40 | First name of the patient, e.g. Dave | Required |
| Surname | Text | 40 | Last name of the patient, e.g. Smith | Required |
| DOB | Date | 10 | Date of birth of the patient. | Required. Format should be dd/mm/yyyy |
| Address | Text | 50 | House number and street name of the patient. | Not required |
| City | Text | 30 | City of patient | Not required |
| Postcode | Text | 4 | Postcode of patient | Not required |
| Telephone | Text | 12 | Phone number of patient, either home or mobile number. | Required for appointment confirmation |
| AppointmentID | Integer | 6 | Appointment identifier foreign key | Required Foreign Key to create relationship with appointment entity |
Why is the Telephone a Text datatype?
Why is the Postcode a Text datatype?