Imagine several data points arranged loosely in a circle. While we can understand the shape of this data directly from the graph, how can we get a computer to recognize the circular pattern? What if the data is higher dimensional and there is no graph we can draw? The field of topological data analysis allows us to tackle these questions by replacing our dataset with a system of vector spaces and linear maps called a "persistence module". In this talk, we explain how this process works and how one can use "invariants" to distinguish between persistence modules. We will then see how tools from (relative) homological algebra can be used to interpret old invariants and define new ones. This is based on joint work with Benjamin Blanchette and Thomas Brüstle.