I'm looking into moving data from and OLTP to an OLAP to help speed up analytics. I've been researching my current question for 2 days now and have not found a definitive answer anywhere. Currently I have a highly normalized relational schema and I'm having trouble figuring out how to retain hierarchical data when converting the into the fact tables and dimension tables of a star schema. Is there a way to make fact tables completely granular and normalized while maintaining the values of the parent and child tables taken from a relational schema? I'm not sure if I asked that correctly, so here is an example: I'm recording data from fishing trips. I have to record data from the trip and the catch so I store that data into two main tables (below in simplified versions):
Trip(tripid, date, gear quantity, hours fished, participants)
Catch(tripid, species, disposition, count)
How would I create a fact table with this and retain the gear quantity, hours fished, participants, and species counts all while keeping the fact table normalized? The only way I can think of making the fact table would be the following:
Fact(date, species, disposition, gear quantity, hours fished, participants, count)
With the date, species, and disposition being FKs to the dimension tables, and the rest of the columns being quantifiable values. However, this would be completely denormalized. Is this an appropriate way of doing this, or is there another way to keep the relation between the parent and child tables with quantifiable values and have this in a star schema?