I am doing a project for my class and I was just wondering what differences exist between relates and relationship class in a geodatabase? And why and when would you use a relationship class over a relate or join?
A quote from ArcGIS documentation summarizes it:
Relationship classes help ensure referential integrity. For example, the deletion or modification of one feature could delete or alter a related feature. Furthermore, a relationship class is stored in the geodatabase, which makes it accessible to anyone who uses the geodatabase.
On-the-fly relationships, also called relates, are defined as a property of an ArcMap layer. Use them for improved editing performance.
Joins are best suited for labeling and symbology. You define joins through the relational database to make standard SQL queries cross the database as well as a variety of data sources.
Some examples are presented at the Esri GeoNet Community.