Dedicated table for each attribute - what for?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Dedicated table for each attribute - what for?

sftf
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

Reply | Threaded
Open this post in threaded view
|

Re: Dedicated table for each attribute - what for?

roenbaeck
Administrator
Anchor Modeling requires attributes to be in their own tables. Please read our paper and the information on the homepage in order to understand why this is the case, and why this is a GOOD thing!

Here's a link to the paper: http://www.anchormodeling.com/wp-content/uploads/2011/05/Anchor-Modeling.pdf

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.
 
Reply | Threaded
Open this post in threaded view
|

Re: Dedicated table for each attribute - what for?

sftf
Thanks for paper link - I will read it.