Dataverse tables, columns and relationships
Dataverse is the data layer behind Power Apps, Power Automate and Microsoft Copilot Studio. Most PL-200 questions start with a data model, so you must pick the right table, column and relationship types. Dataverse was formerly called Common Data Service, and older questions may say “entity” and “field” for what is now table and column.
Table types and ownership
| Ownership | Access control | Use when |
|---|---|---|
| User or team owned | Per row, by owner | Most business data (accounts, cases) |
| Organization owned | Whole organization, no row owner | Reference data everyone can read |
| Business owned | By business unit | Data that belongs to a unit, not a person |
Ownership is chosen when you create a table and cannot be changed later. Table types also include standard, activity (emails, tasks, appointments) and virtual (data stays in an external source).
Column types
- Choice (formerly option set): a fixed list of labels with numbers. Use a global choice to share one list across tables.
- Lookup: points to one row in another table.
- Calculated: formula using columns on the same row or a parent row.
- Rollup: aggregates related child rows. It is calculated asynchronously (about hourly by default), and users can refresh it manually.
- Formula: a column written in Power Fx.
- Autonumber: generated sequence such as
INV-{SEQNUM:5}. - File and Image: store binary data.
For Date and Time columns, behavior can be User Local, Date Only or Time-Zone Independent. You can change User Local to the other two, but not the other way round.
Relationships
| Type | Meaning |
|---|---|
| 1:N (one-to-many) | One parent, many children; creates a lookup on the child |
| N:1 | Same relationship seen from the child |
| N:N | Many on both sides; uses an intersect table |
Relationship behavior controls what happens when the parent row is assigned, shared or deleted. Parental cascades all actions, Referential cascades nothing, Referential, Restrict Delete blocks deleting a parent that has children, and Custom lets you choose.
Keys and duplicates
An alternate key makes a column set unique and supports upsert from Power Automate, dataflows and the Web API. Duplicate detection rules warn users or imports about likely duplicates, and must be published to work.
Exam traps
- Ownership cannot be changed after the table exists, so read the security requirement first.
- A calculated column cannot aggregate child rows. That is a rollup column.
- Do not confuse a global choice (shared) with a local choice (one column).
- Duplicate detection rules do nothing until published.
- Dataverse is the current name; “Common Data Service” in a question means the same thing.
Practice questions
Choose an answer, then review the explanation to check your understanding.
1. Rows in a new table must be tied to a business unit, and security roles must be set at business unit level. Which ownership type do you pick?
Show answer
Answer: C.Business owned tables are owned by a business unit. User or team owned tables allow row-level access control by owner.
2. A column must show the total of all open opportunity amounts for an account and be refreshed on a schedule. What do you create?
Show answer
Answer: B.A rollup column aggregates values from related rows (SUM, COUNT, MIN, MAX, AVG) and is recalculated by system jobs. A calculated column only uses values from the same row or its parent.
3. A partner sends records without Dataverse IDs, and you must update existing rows instead of creating duplicates. What do you configure?
Show answer
Answer: B.An alternate key is a unique combination of columns that lets imports and the API find existing rows (upsert).
4. Many students attend many courses. Which relationship do you create?
Show answer
Answer: C.A many-to-many (N:N) relationship uses a hidden intersect table. Use one-to-many when each child has a single parent.