Common data stores
File stores hold objects. Relational databases hold tables with relationships. Key-value, document, column-family, and graph stores hold non-relational models. A data warehouse or lakehouse optimizes for analytical scans.
Study guide · Core notes
Reference notes for DP-900: how data is shaped, which Azure service fits, and how analytics and Power BI close the loop.
How to read these notes: Items tagged Extra sit outside the July 21, 2026 skill list emphasis. Learn the unmarked items first. New to the exam? Start with the overview for the format and domain weights. Shared cloud vocabulary is on the Azure Fundamentals notes.
Start from the shape of the data, not the logo on the service card.
| Type | Features | Typical examples |
|---|---|---|
| Structured | Fixed schema; rows and columns; strong typing | Relational tables, CSV with a consistent header |
| Semi-structured | Flexible schema; tags, keys, or nested fields | JSON documents or XML records with optional nested fields |
| Unstructured | Free-form content not organized into predefined analytical fields | Photographs, video, audio, free-form document content |
Common file formats appear across lakes and pipelines: CSV for simple tabular exchange, JSON for nested documents, Parquet and ORC for columnar analytics, Avro for row-oriented streaming and schemas. A database adds querying, consistency rules, and concurrent access on top of storage.
File stores hold objects. Relational databases hold tables with relationships. Key-value, document, column-family, and graph stores hold non-relational models. A data warehouse or lakehouse optimizes for analytical scans.
Transactional apps often use Azure SQL or open-source PaaS databases. Documents and global distribution lean to Cosmos DB. Objects and lakes lean to Blob. File shares lean to Azure Files. Key-attribute entities can use Table storage or the Cosmos Table API.
A storage service does not determine whether the contents are structured. A Blob container can hold a consistently typed sales table in Parquet, nested product documents in JSON, and photographs. All three are objects from the storage service’s perspective, but their contents require different interpretation. Likewise, a binary format does not automatically mean unstructured data: Parquet and Avro encode records using schemas.
Imagine an export with order ID, date, and amount. CSV is easy to inspect as text, but consumers must agree on delimiters, date formats, and missing values. Parquet groups values by column and can let analytical readers avoid unrelated columns. JSON is useful when a product has a variable list of attributes. Choose the representation from the data and reading pattern, not from the filename alone. Microsoft’s data lake storage guidance explains the storage and file-format distinction.
Extra Exact SKU sizing and reserved capacity math sit outside the fundamentals scope. Know which family fits the need first.
Transactional work writes consistent records now. Analytical work reads history and aggregates later—or in near real time.
| Idea | Remember |
|---|---|
| Transactional | OLTP style: create, read, update, delete on current business records with consistency and concurrency control. |
| Analytical | OLAP style: large reads, historical context, aggregations, reporting, and machine learning feature prep. |
| Database administrator | Install, configure, secure, back up, restore, and tune database platforms; manage availability. |
| Data engineer | Ingest, transform, and land data in reliable pipelines and stores for downstream consumers. |
| Data analyst | Explore data, build models and visuals, and answer business questions with tools such as Power BI. |
Relational data lives in tables related by keys. Normalization reduces redundant copies of the same fact by splitting into related tables. Common SQL statements include SELECT, INSERT, UPDATE, and DELETE. JOIN is a clause used within queries to combine rows; it is not a standalone statement. CREATE, ALTER, and DROP define or change database objects. Common objects include tables, views, indexes, stored procedures, and constraints such as primary and foreign keys.
Suitable indexes can speed selected lookups and filters, but take storage and add work when indexed data changes. Views present a query as a virtual table. Stored procedures package reusable logic on the server. Constraints enforce rules the application alone might miss.
Use this small fictional dataset to reason through a query before memorizing SQL vocabulary. Customers contains one row per customer, identified by CustomerID. Orders contains one row per order, identified by OrderID, and references Customers through CustomerID. The relationship is one customer to many orders. The sample is printed here for inspection; this page does not connect to a database or execute SQL.
| CustomerID | CustomerName |
|---|---|
| 1 | Ada |
| 2 | Ben |
| 3 | Cleo |
| OrderID | CustomerID | Amount | Status |
|---|---|---|---|
| 101 | 1 | 40.00 | Paid |
| 102 | 1 | 60.00 | Paid |
| 103 | 2 | 25.00 | Pending |
| 104 | 2 | 30.00 | Paid |
The question is “How much has each paying customer spent?” First join orders to customers through the matching key. Then keep paid orders, group them by customer, and add the amounts. Sorting the totals makes the highest amount appear first. This SELECT reads data without changing the source rows.
SELECT c.CustomerID, c.CustomerName,
SUM(o.Amount) AS PaidTotal
FROM Customers AS c
INNER JOIN Orders AS o
ON o.CustomerID = c.CustomerID
WHERE o.Status = 'Paid'
GROUP BY c.CustomerID, c.CustomerName
ORDER BY PaidTotal DESC;
Expected result: Ada has 100.00 and Ben has 30.00, in that order. Ben’s pending 25.00 order is excluded. Cleo does not appear because an INNER JOIN requires a matching order. Grouping by the ID as well as the name avoids combining different customers who happen to share a name.
WHERE filters input rows before aggregation. GROUP BY defines the groups, SUM produces a total for each group, and ORDER BY controls display order. HAVING would filter the groups after aggregation: adding HAVING SUM(o.Amount) > 50 before ORDER BY leaves only Ada. JOIN belongs to the FROM portion of this query. See the Microsoft SELECT reference for clause definitions.
Storing a customer’s current contact details once avoids updating many order rows when those details change. A foreign key links each order to the customer record. However, the address used to deliver an old order is a historical fact. Updating the customer’s current address must not silently rewrite where that parcel was shipped. A deliberate shipping-address snapshot on the order can therefore be appropriate. Reducing accidental duplication and preserving historical evidence are compatible goals.
Distinguish an entity’s current attributes from the facts captured by an event. In the example, Amount belongs to the order: calculating an old sale using today’s product price could change historical revenue. Before suggesting normalization, identify what each value means and when it is supposed to change. A database design is more than a rule to remove every repeated value.
Suppose a checkout creates an order and reserves inventory in the same database transaction. Atomicity means both operations succeed or both are rolled back. Consistency means declared rules remain satisfied, such as a valid customer reference. Isolation controls how concurrent operations interact; the chosen isolation level affects what other transactions can observe. Durability means a committed change persists despite a subsequent failure.
A transaction boundary must be designed explicitly. Two separate web requests do not become one atomic database transaction simply because they happen at checkout. An external payment processor also needs coordination beyond a local transaction. For DP-900, recognize why operational systems need dependable updates and why a folder of files alone does not supply relational constraints.
Same SQL Server lineage, different management boundary.
| Product | Model | Use when |
|---|---|---|
| Azure SQL Database | PaaS single database or elastic pools | Cloud-native apps that want Microsoft to manage the platform |
| Azure SQL Managed Instance | PaaS near-full instance compatibility | Lift-and-shift that needs instance-scoped features with less OS work |
| SQL Server on Azure VMs | IaaS | You need full control of the OS, SQL version, and install options |
Shared Azure vocabulary for IaaS versus PaaS is on the AZ-900 service types notes.
Azure Database for MySQL Flexible Server and Azure Database for PostgreSQL Flexible Server provide managed open-source relational engines. Choose them when the application already targets that engine and you want Azure to handle patching, backups, and high availability options. Choose based on the application’s engine, supported features, and access patterns; a relational service and a document service are not interchangeable just because both are managed.
Retired service: Azure Database for MariaDB retired on September 19, 2025. Older preparation material may still list it. The MariaDB database engine itself is separate from this retired Azure service. Evaluate migration compatibility rather than assuming MariaDB and MySQL are identical. See the Microsoft lifecycle announcement.
Pick the service from how clients access the data.
| Service | Holds | Access pattern |
|---|---|---|
| Azure Blob storage | Unstructured objects; also a foundation for data lakes | REST/object APIs; hot, cool, cold, and archive access tiers |
| Azure Files | Managed file shares | SMB or NFS as a network file share |
| Azure Table storage | NoSQL key and attribute entities | Partition key plus row key lookups; not relational joins |
Blob is not a file share. Files is not a document database. Table storage is not a substitute for Azure SQL when you need joins and transactions across related tables.
Cosmos DB is a globally distributed, multi-model database service. Use cases include low-latency reads and writes at global scale, flexible schemas, and multiple consistency options. You select an API that matches how the application talks to data.
Extra Throughput RU/s tuning and multi-region write conflict detail belong to role-based exams. DP-900 expects use-case and API recognition.
Ingest, store for analysis, then process—often with Fabric or Databricks in the Microsoft cloud story.
Fabric and Databricks can both appear in large-scale analytics scenarios. Read the stem for the emphasis: unified Microsoft Fabric platform versus Spark-centric Databricks collaboration.
A data lake retains files in multiple formats so that different consumers can explore and process them. A warehouse organizes curated analytical tables for consistent reporting. A lakehouse adds table management and analytical capabilities over lake storage. These patterns can coexist: keeping source files helps with reprocessing, while curated tables give report authors stable definitions.
Consider a shop that receives order exports, supplier spreadsheets, and product photographs. The lake can retain all three. A warehouse might contain validated sales facts joined to product and date dimensions, rather than placing every photograph in a sales table. A lakehouse can provide managed analytical tables over files. Simply copying miscellaneous files into a container does not automatically create a usable warehouse or a governed lakehouse.
In extract, transform, load (ETL), a processing step cleans or reshapes source data before loading the destination. In extract, load, transform (ELT), data is loaded first and transformed using the destination’s processing capabilities. For example, standardizing currency codes before loading a reporting table is ETL; loading source rows to a warehouse staging area and then transforming them there is ELT. Neither term by itself specifies whether a business report refreshes every hour or every day. See Microsoft’s ETL and ELT guide.
A delivery team might need an alert within seconds when a vehicle’s temperature exceeds a threshold. Finance may need a reconciled total after the day closes. The first requirement points toward streaming; the second can use a batch job that processes a bounded daily dataset. A streaming pipeline still needs rules for repeated events, missing readings, and events that arrive late. “Real time” describes a latency objective, not a guarantee that every received value is accurate.
Keep ingestion and computation separate in your explanation. Event Hubs accepts and buffers event streams for consumers; a processor such as Azure Stream Analytics calculates a time-window average or detects a condition. A destination stores the output, and a report presents it. Receiving events alone does not calculate a five-minute average. A fresh chart also depends on how its data reaches the model and how the report updates.
Take one Sales row per sold item. Its product key, date key, quantity, and sale amount describe a business event. Product and Date tables supply the names and calendar attributes used to group those events. A measure such as total sales is evaluated for the current filters, so choosing a month changes the result without changing the underlying order records. The row-level detail is the model’s grain; mixing monthly targets with individual order rows without a deliberate relationship can duplicate totals. See Microsoft’s star schema guidance.
A Power BI report can have several pages for exploration. A dashboard is a single canvas in the Power BI service that summarizes selected highlights and can combine tiles from different reports. These terms are not interchangeable with the semantic model behind them. See Microsoft’s dashboard introduction.
For the shop, use a line chart for daily revenue, a bar chart to compare product categories, and a table when someone needs exact order values. A map is useful only if location contributes to the question. Label currency and time periods, avoid combining different units on an unexplained axis, and show the refresh date when old data could mislead a decision.
Batch data has a start and an end for a job: nightly sales files, weekly extracts. Streaming data is continuous: clickstreams, IoT telemetry, fraud signals. Real-time analytics services on Azure include options such as Azure Stream Analytics, real-time capabilities in Microsoft Fabric, and event ingestion paths such as Azure Event Hubs that feed streaming processors. Match the service to whether you need continuous processing or scheduled batch jobs.
Power BI turns prepared data into interactive reports and dashboards for business users.
Connect to many sources, shape data, build semantic models, author reports, publish to the Power BI service, and share dashboards. Mobile and embed scenarios exist; fundamentals focus on what Power BI is for.
Tables, relationships, measures, and hierarchies define how visuals calculate. A star schema with fact and dimension tables is a common analytical model shape.
Line charts show trends over time. Bar or column charts compare categories. Pie or donut charts show parts of a whole when categories are few. Maps show geography. Tables and matrices show detail. Choose the visual that answers the question.
Explain each scenario out loud before you read the choice. Name one wrong alternative and why it fails the constraint.
You can complete these exercises on paper or in a local text editor. They need no account, paid resource, or personal dataset. Explain each answer in a sentence before opening the suggested answer; recognizing a service name is less useful than identifying the constraint that makes it fit.
How would the SQL example include Cleo with a zero total? Start with Customers, use a LEFT JOIN, place the paid-status condition in the join condition, and use COALESCE around SUM to turn a missing total into zero. Keeping the paid-status filter in WHERE would discard the unmatched customer rows. This exercise tests join behavior, not just SQL keywords.
The same CSV export could feed a nightly report or be read by an operational import. The file format describes representation; the workload describes what the system does. Identify the consumer, freshness requirement, and access pattern before choosing a service. A question about flexible fields is different from a question about millions of historical rows.
A migrated application requires SQL Server Agent jobs but no operating-system access. Evaluate Azure SQL Managed Instance and verify feature support. If a required component must be installed directly on the database server’s operating system, SQL Server on an Azure VM becomes the stronger candidate. “Existing SQL Server” alone is insufficient to decide.
A diagram says “Event Hubs → executive average-temperature chart” and omits computation. Add a processing step that defines the averaging window, a destination or serving layer for the results, and the reporting model. Then ask how late readings and refresh delays affect the interpretation. The missing processing responsibility matters more than how many service logos appear.
After a practice session, write down the question ID, the decision you missed, and the clue you overlooked. Revisit the matching section above, then explain why the nearest alternative fails. For example, “Files because the application requires SMB” is more actionable than “remember storage.” Retry missed items after a break and also answer unfamiliar examples; recognizing yesterday’s option wording can inflate your apparent progress.
Finish by checking every objective in the official DP-900 study guide. The local bank uses an editorial allocation within the published ranges, not an exact model of a live exam. Its raw percentage cannot be converted into Microsoft’s scaled passing score. Use the explanations and domain report to find gaps rather than treating a single result as a booking recommendation.
Azure SQL Database is a fully managed PaaS database service for cloud-native apps. Azure SQL Managed Instance offers near-full SQL Server compatibility as managed PaaS, which helps lift-and-shift migrations that need instance-level features. SQL Server on Azure Virtual Machines is IaaS: you manage the OS and SQL Server.
Use Blob storage for unstructured objects such as images, videos, backups, and data lake files. Use Azure Files when applications or users need a managed file share with SMB or NFS semantics.
Batch analytics processes bounded data in scheduled or on-demand jobs. Streaming analytics processes continuous event data with low latency as it arrives. Choose streaming when decisions depend on fresh events rather than overnight aggregates.
Drill the distinctions, then test them under a timer.
Exam format, the 700 passing score, domain weights, and a study plan.
Reference notes for data concepts, Azure SQL, Cosmos DB, Fabric, and Power BI.
40 recall cards in four decks, plus memory notes for stores, SQL, Cosmos, and analytics.
80 original questions with custom exams, explanations, and a score report by domain.
Connect these notes with adjacent skills and certification topics.
A learning path for Microsoft Certified: Azure Fundamentals (AZ-900).
A learning path for Microsoft Certified: Azure Administrator Associate (AZ-104).
A learning path for the AWS Certified Data Engineer - Associate exam.
A learning path for the CompTIA Data+ exam covering data concepts and analytics skills.
Certicab provides general informational, educational, and convenience resources. Calculations, conversions, estimates, and learning materials may contain errors or become outdated. Financial, tax, medical, legal, and travel information is not professional advice. Verify important results and current requirements with qualified professionals or authoritative sources. Protect sensitive files and personal information, review each tool’s privacy limitations, and use only content you are authorized to process. You are responsible for how you use and share results. Study resources are independent and do not guarantee exam success or imply certification-provider endorsement. Microsoft, Azure, and related marks are trademarks of Microsoft Corporation. Certicab is not affiliated with, endorsed by, or sponsored by Microsoft.