DP-900 · 1 Describe core data concepts
Semi-structured data
Exam objective: Describe the features of semi-structured data
Semi-structured data has some structure, but the fields can differ from one record to the next. JSON is the standard example.
Semi-structured data sits between a rigid table and a loose file. It has structure, but the structure can vary from one record to the next.
Each record names its own fields. Two records of the same entity do not need the same fields:
{ "firstName": "Ana", "emails": ["ana@contoso.com", "ana@fabrikam.com"] }
{ "firstName": "Li", "phone": "555 0100", "address": { "city": "Leeds" } }Ana has a list of email addresses and no phone number. Li has a phone number and a nested address. Neither record is wrong.
JSON is the format you will see most, and it is the one Microsoft Learn uses in its examples. It is one of several ways to represent semi-structured data.
On the exam, look for some structure, fields vary between records, JSON or documents.
Key points
- There is structure, but it is allowed to vary between instances of the same entity.
- One customer can have two email addresses, another none. Both are valid records.
- JSON is a common format. Fields can hold nested objects and lists of values.
- Document databases store this kind of data, with one JSON document per entity.
Exam trap
A table with many empty columns is not semi-structured. Its schema is still fixed. Semi-structured means the fields themselves can differ per record.
Check yourself
A company stores customer profiles. Every profile has a name. Some customers have several email addresses, some have none, and only some have a loyalty number. Which type of data is this?
Go deeper on Microsoft Learn
Checked against Microsoft Learn on October 1, 2026.