There are several reasons why it is good to define associations between base views or derived views:
* From a performance perspective, some queries are executed much faster; there are some optimizations that the query optimizer can only apply if the appropriate associations are defined.
* Virtual DataPort publishes information about the associations marked as referential constraints. If you use a business intelligence tool to query Denodo, this tool may take into account this information to execute more efficient queries.
* From a metadata perspective, they help define a better semantic model because you can define referential constraints (primary key/foreign key relation) between views. If you are using an external governance tool, the associations of views will provide additional semantics to your model.
* From the perspective of the Data Catalog, the associations allow business users to discover views that are related. For example: 1) When querying a view, you can traverse its associations, 2) The associations of the views are displayed in the “Relationships” dialog of the views.
* From a usability perspective, using the HTML representation of the RESTful Web service, you can browse across views that have an association between them.
In addition, two optimization techniques where associations are useful are Aggregation Push Down and Branch Pruning. Take a look at the [Optimization for Logical DataWarehouse](https://community.denodo.com/kb/en/view/document/Denodo%20Query%20Optimizations%20for%20the%20Logical%20Data%20Warehouse) for performance optimization using Associations. The example mentioned in the document is of a typical star schema.
Hope this helps!