Relations connect Types inside a single App or across Apps.
Relations are very useful if you want to connect your data. Imagine you have Customers and you want to connect Customers to Features, Purchase Orders, Invoices, Requests, Issues, etc. Some of these Types are in different Apps, so it is very handy to use Relations to reduce data duplication. You can have a single list of Customers, connect it to required Types via Relations and select required Customer for every Feature, Invoice or Request.
Take a look at these Apps:
Every arrow is a relation — here we have plenty of them. Two relations are used inside Execution App to form a hierarchy of Product → Initiative → Task. Other relations span across two different Apps. For example, Goal is connected to Initiative, so you can split a Goal to several Initiatives:
Team and Initiative are connected with many-to-many relation. It means that you can assign several Teams to a single Initiative. And every Team will have many Initiatives as well: