Why each attribute in the anchor model is placed in a separate table?
Is it required for the proper functioning of the anchor model?
I see the following disadvantages:
- bloating number of tables
- need for a large number of joins in SELECTs (Is there a limit on the number of joins for particular RDBMS?!)
- need for a large number of individual UPDATEs
As for your disadvantages:
- Bloating number of tables
Yes, there will be many tables, but having many tables in a database have no direct disadvantages, as long as you can understand what they do.
- Large number of joins
You will never hit the limit for the number of joins in a modern database using Anchor Modeling, and in fact, joins are in many cases good for performance. Thanks to the views we provide, you won't even have to write the code for doing the joins.
- Need for a large number of individual updates
We do not do UPDATEs in Anchor Modeling, only inserts. However, there will be a large number of individual tables to insert into. This too, can be advantageous in the case of MPP environments. If you don't want to, you don't have to worry about it, thanks to INSTEAD OF triggers that take care of it for you.