You can translate the question and the replies:

Enforcing primary key

In the scenario where we do not have concept of primary/ foreign key in source system such as Snowflake in that case I got to know enforcing primary key in denodo 6 does not assure that i will have unique values for a column or set of columns.What I am actually trying to understand if i enforce primary key in a dimention table, which joins with large fact table. Is it going to help on improving performance. we have below scenaio( note: source system snowflake does not have concept of primary or foreignt key) first: joining large dimention with large fact on a column which does not have primary key defined at denodo level second:joining large dimention with large fact on a column which has primary key defined at denodo level
user
06-06-2018 05:37:31 -0400
code

1 Answer

Hi! You are correct - Virtual DataPort does not enforce primary key definitions. The responsibility of maintaining unique values is up to the data source. More on Primary keys can be read [here](https://community.denodo.com/docs/html/browse/7.0/vdp/administration/restful_architecture/primary_keys_of_views/primary_keys_of_views). I do recommend defining primary keys in your Denodo views, because aggregations can be pushed down to the source as an optimization tool to improve performance - and defining primary key information in the Denodo view is required for that to take effect. A few benefits of creating primary keys even if they are not defined on the source system are listed in this answer [here](https://community.denodo.com/answers/question/details?questionId=9060g00000009sjAAA&title=Primary+Key+Must%3F). I hope this helps!
Denodo Team
06-06-2018 16:20:29 -0400
code
You must sign in to add an answer. If you do not have an account, you can register here