De Bruijn graphs are directed graphs used to represent overlaps between sequences of symbols. They are constructed by splitting a DNA sequence into k-mers (subsequences of length k), creating nodes for each k-mer, and connecting nodes with edges where the k-mers overlap by k-1 nucleotides. De Bruijn graphs are commonly used for genome assembly from next-generation sequencing data by reconstructing the original sequence from the k-mers. They allow mapping short reads onto a reference genome despite the reads being shorter than the repeats within the genome.