New answers tagged

1

Transportation is just moving data from one place to another - in ETL, from source system to either staging area, data warehouse or data mart. Transformation is changing data structure so that it meets data warehouse needs - i.e. star schema, denormalization, aggregation, calculations, data cleansing, data enrichment etc. Both happen while ETL, but the ...


1

This is probably a bad idea, and definitely not standard good practice. In a typical fact/dimension schema for a data warehouse, based on Ralph Kimball's methodology, the fact tables should always store data at the most granular level possible. Your example fact table is storing data at two different levels of granularity. This is bad, if only because it's ...


0

I found the answer. This concept is called a Role-Playing Dimensions A single physical dimension can be referenced multiple times in a fact table, with each reference linking to a logically distinct role for the dimension. For instance, a fact table can have several dates, each of which is represented by a foreign key to the date dimension. It is ...


5

A dimension represent a category of information: e.g. date, product... in your case you have three attributes in the fact table referring to the same analysis axis which is 'DATE', so if you are using a star schema only one date dimension is needed, this is a dimension role playing implementation. There are two dimension role playing ...


0

Usually surrogate keys are implemented based on dimension tables and external data sources in order to have coherent and valid data records; the ETL process, which in charge of extracting data from different sources, transforming and finally delivering data into the data warehouse, must ensure this condition (i.e., surrogate keys refer to the right record). ...


1

I highly recommend the 1st option of a bridge table. If you make sure the you capture the historical change on all three tables that would work fine, though I'd agree with you that the JOIN'ing is an issue. Just make sure that (in the JOIN clause) that the DateInserted and ValidTill match the ones that are in the fact table. More about bridge tables in here ...



Top 50 recent answers are included