Dans une base de données étoile schéma, les faits sont généralement acquis et conservés à le grain le plus fin.
Prenons donc l'exemple SalesFact de la figure 10 dans http://www.ciobriefings.com/Publications/WhitePapers/DesigningtheStarSchemaDatabase/tabid/101/Default.aspx
En ce moment, le grain est produit, temps (à une granularité de jour), magasin. Supposons que vous vouliez que cela soit agrégé par mois, pré-agrégé (cet exemple particulier ne nécessite probablement pas de pré-agrégation, mais si les ventes ont été détaillées par client, par minute, une pré-agrégation peut être nécessaire).
Alors vous auriez un SalesFactMonthly (ou ajouteriez une discrimination de grain à la table de faits existante puisque les dimensions sont identiques - parfois dans l'agrégation, vous pourriez réellement perdre des dimensions juste comme vous pouvez perdre le grain par magasin et non par produit).
ProductID
TimeID (only linking to DayOfMonth = 1)
StoredID
SalesDollars
Et vous obtiendrez ceci en faisant:
INSERT INTO SalesFactMonthly (ProductID, TimeID, StoreID, SalesDollars)
SELECT sf.ProductID
,(SELECT TimeID FROM TimeDimension WHERE Year = td.Year AND Month = td.Month AND DayOfMonth = 1) -- One way to find the single month dimension row
,sf.StoreID
,SUM(sf.SalesDollars)
FROM SalesFact AS sf
INNER JOIN TimeDimension AS td
ON td.TimeID = sf.TimeID
GROUP BY td.Year, td.Month
Qu'est-ce qui se passe en cubes est que vous avez essentiellement étoiles à grains fins et pré-agrégats ensemble - mais chaque mise en œuvre est la propriété - parfois vous ne pourriez pas même avoir les données les plus fines dans le cube, donc il ne peut pas être signalé. Mais chaque façon dont vous pourriez vouloir découper les données doit être stockée à ce grain, sinon vous ne pouvez pas produire d'analyse de cette façon.
Ceci est assez limité, mais peut vous orienter dans la bonne direction http: // msdn.microsoft.com/en-us/library/bb219339%28CS.70%29.aspx – R0MANARMY