🔒 Guided

Pre-launch preview. Authorised access only.

Incorrect code

Guided by A Guide to Cloud
Explore AB-900 AI-901
Guided PL-900 Domain 2
Domain 2 — Module 2 of 5 40%
7 of 26 overall

PL-900 Study Guide

Domain 1: Business Value of Microsoft Power Platform

  • Welcome to Power Platform Free
  • Connectors & Dataverse: Your Data Foundation Free
  • Copilot & AI in Power Platform Free
  • Power FX: Formulas, Not Code Free
  • Power Platform + Microsoft 365: Better Together Free

Domain 2: Manage the Microsoft Power Platform Environment

  • What is Dataverse?
  • Tables, Columns, and Relationships
  • Building Tables with Copilot and Data Management
  • Environments and Security
  • Admin Centers and Governance

Domain 3: Demonstrate the Capabilities of Power Apps

  • Canvas Apps: Pixel-Perfect Apps from Scratch
  • Model-Driven Apps: Data-First Design
  • Connecting to Data Sources
  • Controls, Responsive Design, and Copilot
  • Sharing Canvas Apps
  • Building and Sharing Model-Driven Apps

Domain 4: Demonstrate the Capabilities of Power Automate

  • Cloud Flows: Automate Without Code
  • Desktop Flows and Process Mining
  • Approvals and Business Scenarios
  • Loops and Branching in Cloud Flows
  • Building a Cloud Flow
  • Testing and Sharing Cloud Flows

Domain 5: Demonstrate the Capabilities of Power Pages

  • Power Pages: External Websites Made Easy
  • Power Pages Security
  • Design Studio and Building Pages
  • Components, Themes, and Publishing

PL-900 Study Guide

Domain 1: Business Value of Microsoft Power Platform

  • Welcome to Power Platform Free
  • Connectors & Dataverse: Your Data Foundation Free
  • Copilot & AI in Power Platform Free
  • Power FX: Formulas, Not Code Free
  • Power Platform + Microsoft 365: Better Together Free

Domain 2: Manage the Microsoft Power Platform Environment

  • What is Dataverse?
  • Tables, Columns, and Relationships
  • Building Tables with Copilot and Data Management
  • Environments and Security
  • Admin Centers and Governance

Domain 3: Demonstrate the Capabilities of Power Apps

  • Canvas Apps: Pixel-Perfect Apps from Scratch
  • Model-Driven Apps: Data-First Design
  • Connecting to Data Sources
  • Controls, Responsive Design, and Copilot
  • Sharing Canvas Apps
  • Building and Sharing Model-Driven Apps

Domain 4: Demonstrate the Capabilities of Power Automate

  • Cloud Flows: Automate Without Code
  • Desktop Flows and Process Mining
  • Approvals and Business Scenarios
  • Loops and Branching in Cloud Flows
  • Building a Cloud Flow
  • Testing and Sharing Cloud Flows

Domain 5: Demonstrate the Capabilities of Power Pages

  • Power Pages: External Websites Made Easy
  • Power Pages Security
  • Design Studio and Building Pages
  • Components, Themes, and Publishing
Domain 2: Manage the Microsoft Power Platform Environment Premium ⏱ ~16 min read

Tables, Columns, and Relationships

Dataverse organises data into tables with typed columns and relationships. Learn table types, column data types, relationship patterns, and the business logic options that make Dataverse more than just storage.

Tables, columns, and rows

☕ Simple explanation

Think of a spreadsheet.

A table is like one sheet in a workbook — “Equipment Inspections”, for example.

Each column is a header — Inspector Name, Date, Pass/Fail, Notes.

Each row is one record — one completed inspection.

The difference from a spreadsheet? Dataverse enforces rules. The Date column only accepts dates. The Pass/Fail column only accepts Yes or No. You cannot accidentally type “banana” in the Date field.

Dataverse uses a relational data model. Data is stored in tables (entities), each containing columns (fields/attributes) and rows (records).

Every table has a primary name column and a unique identifier (GUID). Columns enforce data types — text, number, date, choice, lookup, and more. Relationships link tables together using lookup columns (foreign keys), supporting one-to-many and many-to-many patterns.

This structure is conceptually identical to a relational database, but wrapped in a low-code interface with built-in forms, views, and API access.

Three types of tables

Table TypeDescriptionExample
StandardPre-built tables included with Dataverse (400+). Follow the Common Data Model. Can be extended but core columns cannot be deleted.Account, Contact, Activity, User
CustomTables you create for your own business needs. Fully under your control — you define columns, relationships, and forms.Equipment Inspection, Delivery Route, Training Record
VirtualTables that display data from an external source in real-time without copying it into Dataverse. Read-only. Data stays in the external system.SQL Server table, SharePoint list via OData

Aisha builds a custom table

At Coastal Logistics, there is no standard table for “Equipment Inspection”. So Aisha creates a custom table with these columns:

  • Inspection Name (text) — primary name column
  • Equipment (lookup to Asset table) — which forklift, truck, or crane
  • Inspector (lookup to User table) — who performed it
  • Inspection Date (date only)
  • Result (choice: Pass, Fail, Needs Repair)
  • Notes (multiline text)
  • Photo (image) — snapshot of any damage
ℹ️ What about virtual tables?

Virtual tables are useful when you need to display external data inside Power Apps without importing it. For example, Coastal Logistics has a legacy SQL database with historical shipping data. Instead of migrating millions of rows, Aisha creates a virtual table that connects to the SQL database. Users see the data in their Power App, but it stays in SQL.

The trade-off: virtual tables are read-only and do not support business rules, rollup columns, or calculated columns.

Column data types

Every column in Dataverse has a data type that controls what values it can store:

Data TypeWhat It StoresExample
Text (Single line)Short text up to 4,000 charactersEquipment Name, Email Address
Text (Multiple lines)Long text up to 1,048,576 charactersInspection Notes, Description
Whole numberIntegers without decimalsQuantity, Count
Decimal numberNumbers with up to 10 decimal placesWeight, Measurement
CurrencyMoney values with currency symbolInvoice Amount, Salary
Date and TimeDate with optional timeInspection Date, Created On
Date OnlyDate without time componentBirthday, Start Date
ChoiceSingle selection from predefined optionsStatus (Active/Inactive)
ChoicesMultiple selections from predefined optionsSkills (Driving, Welding, Crane)
Yes/NoBoolean true/falseIs Certified, Is Active
LookupLink to a row in another tableEquipment (links to Asset table)
ImageStores an image fileEmployee Photo, Damage Photo
FileStores a file attachmentInspection Report PDF
💡 Exam tip: Choice vs Choices

A Choice column allows only one selection (like a dropdown). A Choices column allows multiple selections (like checkboxes). The exam may test whether you know the difference.

Use Choice for things like Status (a record can only be in one status). Use Choices for things like Skills (a person can have many skills).

Relationships

Relationships connect tables so data flows naturally. Dataverse supports two main relationship types.

One-to-many (1:N)

One record in table A relates to many records in table B. This is the most common relationship.

Example: One piece of Equipment can have many Inspections. The Equipment table is the “one” side, and the Inspection table is the “many” side.

In Dataverse, you create this by adding a lookup column on the “many” side. Aisha adds an Equipment lookup column on the Equipment Inspection table — each inspection row points to one piece of equipment.

Many-to-many (N:N)

Many records in table A relate to many records in table B. Dataverse creates a hidden intersection table to manage this.

Example: Employees can be certified for multiple Equipment types, and each Equipment type can have multiple certified Employees. A many-to-many relationship between Employee and Equipment Type handles this.

ℹ️ What about one-to-one relationships?

Dataverse does not have a dedicated one-to-one relationship type. If you need one, you create a one-to-many relationship and enforce the “one” constraint through business rules or application logic.

In practice, one-to-one relationships are rare. Most scenarios are one-to-many or many-to-many.

Business logic in Dataverse

Dataverse is not just storage — it has built-in logic that runs without writing code.

Business logic options in Dataverse
FeatureBusiness RulesCalculated ColumnsRollup ColumnsPower Automate
What it doesApply validation and field behaviour on formsCompute a value from other columns in the same rowAggregate values from related rowsAutomate multi-step processes across systems
Runs whereClient-side (form) or server-sideServer-side, on readServer-side, on schedule (every hour or on-demand)Cloud — triggered by events or schedules
Code requiredNo — visual rule builderNo — formula expressionNo — aggregation wizardNo — visual flow designer
ExampleIf Result is Fail, make Notes requiredFull Name = First Name + Last NameTotal inspections count for each piece of equipmentWhen inspection fails, send email to maintenance team
Best forForm-level validation and field visibilityDerived values within a single rowSummaries from child recordsCross-system automation and notifications

Business rules

Business rules let you set conditions on forms — show/hide fields, set default values, validate data, or make fields required based on other values. They run without code.

Aisha’s rule: If the Inspection Result is “Fail”, then make the Notes field required and show the Photo field. If the result is “Pass”, hide the Photo field and make Notes optional.

Calculated columns

Calculated columns compute their value automatically from other columns in the same row. They are read-only.

Example: A “Days Since Last Inspection” column that calculates the difference between today and the Inspection Date.

Rollup columns

Rollup columns aggregate data from related records. They update periodically (every hour by default) or can be refreshed manually.

Example: On the Equipment table, a “Total Inspections” rollup column counts all related Inspection rows. A “Last Inspection Date” rollup returns the most recent inspection date.

🎬 Video walkthrough

🎬 Video coming soon

Tables, Columns, and Relationships — PL-900 Domain 2

Tables, Columns, and Relationships — PL-900 Domain 2

~12 min

Flashcards

Question

What are the three types of tables in Dataverse?

Click or press Enter to reveal answer

Answer

Standard tables (400+ pre-built, like Account and Contact), Custom tables (you create for your business needs), and Virtual tables (display external data in real-time without copying it).

Click to flip back

Question

What is a lookup column?

Click or press Enter to reveal answer

Answer

A column that creates a relationship by linking a row in one table to a row in another table. Used to build one-to-many relationships. Similar to a foreign key in traditional databases.

Click to flip back

Question

What is the difference between a calculated column and a rollup column?

Click or press Enter to reveal answer

Answer

A calculated column derives its value from other columns in the SAME row (e.g., Full Name = First + Last). A rollup column aggregates values from RELATED rows in another table (e.g., count of inspections for equipment).

Click to flip back

Question

What is a business rule in Dataverse?

Click or press Enter to reveal answer

Answer

A no-code rule that applies validation and behaviour on forms — show/hide fields, set defaults, make fields required, or display error messages based on conditions. Runs on the form (client-side) or server-side.

Click to flip back

Question

What is a virtual table?

Click or press Enter to reveal answer

Answer

A table that displays data from an external source (SQL Server, SharePoint, etc.) in real-time without copying it into Dataverse. Read-only. Does not support business rules or rollup columns.

Click to flip back

Knowledge Check

Knowledge Check

Aisha wants a column on the Equipment table that automatically counts how many inspections each piece of equipment has. Which feature should she use?

Knowledge Check

Which Dataverse table type allows you to display data from an external SQL Server database without importing the data?

Knowledge Check

Carlos wants to ensure that when a training record status is set to 'Incomplete', the reason field becomes mandatory on the form. What should he use?


Next up: How to build tables using Copilot conversations, and the options for importing and exporting data.

← Previous

What is Dataverse?

Next →

Building Tables with Copilot and Data Management

Guided

I learn, I simplify, I share.

A Guide to Cloud YouTube Feedback

© 2026 Sutheesh. All rights reserved.

Guided is an independent study resource and is not affiliated with, endorsed by, or officially connected to Microsoft. Microsoft, Azure, and related trademarks are property of Microsoft Corporation. Always verify information against Microsoft Learn.