A DataSet acts as in-memory data storage and a container of DataTable components. For the proper management of relationships between items of related DataTable components that it contains, the DataSet maintains a collection of DataRelation components inside another component called DataRelationCollection. This component is another optimized version of the generic ICollection component.
A relationship between a DataColumn of one DataTable to that of another DataTable allows for the association of DataRows between the two tables. A typical relationship would be Order and OrderItems.
The advantages of using a DataRelationCollection are:
You are better able to navigate from one table to another within the DataSet simply by referencing the DataRelation’s key within the collection.
It allows for integrity enforcement by providing you with ways to specify UniqueKeyConstraint and ForeignKeyConstraint component properties for each DataRelation. Of course, this can be done on a specific DataRelation component, but it is more manageable when everything can be done from the same location.