A data flow diagram (DFD) maps how data moves through a system — from external entities, through processes, into data stores, and back out again. DFDs are used in systems analysis to document existing systems and design new ones, and they appear in GCSE computing specifications as a modelling tool.
What is the purpose of a data flow diagram?
A DFD does not show the order in which steps happen (that is the job of a flowchart), nor does it show the structure of data (that is an entity-relationship diagram). A DFD answers a specific question: where does data come from, what happens to it, and where does it go?
DFDs are used by systems analysts, developers, and stakeholders to:
- Understand an existing system before rebuilding or extending it
- Communicate system behaviour without writing code
- Identify where data is stored, transformed, or transferred
- Spot missing processes or redundant data flows
What symbols are used in a DFD?
There are two main notations — Yourdon-Coad (most common in UK GCSE) and Gane-Sarson. At GCSE level, Yourdon-Coad is standard.
| Symbol | Shape | Represents |
|---|---|---|
| External entity | Rectangle | A person, organisation, or system outside the scope of your system — a source or destination of data |
| Process | Circle (or rounded rectangle) | A transformation of data — something the system does with the data |
| Data store | Two horizontal parallel lines (open rectangle) | Where data is held — a database table, file, register |
| Data flow | Arrow | The movement of data between elements, labelled with what the data is |
Every arrow (data flow) must be labelled with a noun or noun phrase describing the data (e.g. "booking request", "customer record", "confirmation code").
What is a context diagram (Level 0 DFD)?
A context diagram (also called a Level 0 DFD) shows the entire system as a single process, surrounded by all the external entities that interact with it. It gives a high-level overview without showing internal detail.
Example — a library book loans system:
[Member] ──book request──► (Library System) ──loan confirmation──► [Member]
│
[Book Supplier] ──new stock──► (Library System)
│
(Library System) ──overdue notice──► [Member]
In the context diagram:
- External entities: Member, Book Supplier
- The entire library system is one circle (not broken down yet)
- Data flows show what enters and leaves the system
What is a Level 1 DFD?
A Level 1 DFD expands the single process of the context diagram into its main sub-processes, and introduces data stores.
Continuing the library example — Level 1 DFD:
Processes:
- Check member eligibility
- Record loan
- Manage returns
- Send overdue notices
Data stores:
- Member records
- Book catalogue
- Loan records
Worked Level 1 DFD (described textually — draw as a diagram):
| Source | Data flow | Destination |
|---|---|---|
| Member | Book request | (1) Check eligibility |
| (1) Check eligibility | Membership query | [Member records] |
| [Member records] | Member status | (1) Check eligibility |
| (1) Check eligibility | Loan request | (2) Record loan |
| [Book catalogue] | Availability | (2) Record loan |
| (2) Record loan | Loan details | [Loan records] |
| (2) Record loan | Loan confirmation | Member |
| Member | Return | (3) Manage returns |
| (3) Manage returns | Update | [Loan records] |
| [Loan records] | Overdue records | (4) Send overdue notices |
| (4) Send overdue notices | Overdue notice | Member |
What are the rules for drawing a valid DFD?
- Every data flow must have a label — the name of the data, not the action.
- Data cannot flow directly between two external entities — data must pass through at least one process.
- Data cannot flow directly between two data stores — a process must mediate.
- A process must have at least one input and one output — a process with no input is creating data from nowhere; a process with no output is a dead end.
- Data flows must match the process — the data leaving a process must be logically derivable from the data entering it.
- Processes are labelled with an action verb and noun — "Record loan", "Calculate total", "Validate password".
How do you level (decompose) a DFD further?
Each process in a Level 1 DFD can be expanded into its own Level 2 DFD, showing its internal sub-steps. This is called levelling or decomposition. At GCSE, you are usually expected to draw only context diagrams and Level 1 DFDs.
The principle is the same as decomposition in computational thinking — break a big process into smaller, more manageable pieces, and each piece can be further broken down as needed.
Frequently asked questions
Is a DFD the same as a flowchart?
No — these are two different modelling tools. A flowchart shows the sequence and logic of steps (if/else branches, loops) in an algorithm or process. A DFD shows how data moves between parts of a system, with no notion of time or sequence. A DFD cannot represent an if decision; it only shows what data flows where.
How do you know whether something is a process or an external entity?
Ask: does this element transform data, or does it simply send or receive it? A system or person that only sends data in or takes data out is an external entity. Anything that does something with the data — validates it, calculates from it, stores or retrieves it, formats it — is a process. External entities are outside the system boundary; processes are inside it.
Do all GCSE computing courses include DFDs?
DFDs are explicitly included in some specifications (OCR GCSE Computer Science) and appear in the context of systems analysis and design. They may also be assessed in computer science controlled assessment or project work. Check your specific exam board's specification to confirm whether DFDs are examined. If you are doing OCR, they are a core topic.
What is the difference between a data store and a database?
In a DFD, a data store is an abstract symbol representing any place where data is held at rest — it could be a database table, a file, a register, or even a physical filing cabinet. In computing more broadly, a database is a specific type of data store with its own structure (tables, rows, columns) and query language (SQL). When drawing a DFD, use the data store symbol and label it descriptively (e.g. "Customer records") without worrying about the underlying technology.
Need help with systems analysis tools and modelling for your GCSE? Professor Turing at aitutors.me will walk through every diagram type with clear, worked examples.