A data flow diagram (DFD) is a graphical representation of the flow of data through a system. It uses symbols like rectangles, circles, and arrows to show data inputs, outputs, storage points, and the routes between each destination. A DFD shows what data will be input and output from the system and where data will be stored. It also shows external entities, processes, data stores, and data flows. There are three levels of a DFD - level 0 provides an overview, level 1 provides more detail, and level 2 provides further detail into parts of level 1. A DFD is used to create an overview of a system without detail and can also visualize data processing.