表示多维数据及其属性

时间:2014-09-17 14:54:31

标签: database metadata hierarchy dimensional-modeling nosql

我正在构建一个应用程序,我将存储与产品,位置和时间维度相对应的一些事实。例如,特定产品P1在特定月份T1中在商店S1处销售10个单位。所有维度都将具有层次结构,其中包含层次结构 - 例如 - 时间维度的年/月/周/日。 每个级别的成员(不确定成员是否是正确的词)也将在他们之间具有层次结构 - 例如 - 2014 / Sep / 1st Week / 3rd Sep 当然这个层次结构与层次结构相匹配相应的水平。其他方面也是如此。 options for representing hierarchical data实现这种结构本身有点困难,选择应根据要插入/更新/删除的数据的频率和数量来决定。我可以做一些研究并为我的案例选择最佳解决方案。

然而,我目前面临的真正困难是建立一个事实数据将存在的替代空间。参考上面引用的示例,假设P1是层次结构类别/子类别/文章中产品维度级别“文章”的成员,并且S1是商店维度级别“商店”的成员。层次结构国家/城市/商店。现在假设商店S1没有将项目P1保留在月份T1中,我们使用标志IS_ACTIVE来表示该决定。也就是说,IS_ACTIVE = N是一个事实,其上下文是{P1,S1,T1}。另请注意,IS_ACTIVE是属性,N是其值。但是,此上下文{P1,S1,T1}本身是元上下文{Article,Store,Month}的实例。我还需要在应用程序中存储这个元上下文。原因是应用程序中可能存在一个位置,我可能需要获取与元上下文{Article,Store,Month}对应的其他可能属性的列表(例如,REBATE_OFFERED_PERCENT)。

我已经为这一切找到了一个规范化的关系模式设计,但它太复杂了,在我看来并不会有高效性。我正在寻找一种替代解决方案,如NoSQL数据库,它可以满足我的需求,因为这里涉及一些层次结构。或者,我的问题域是否更适合关系模式设计?

这似乎是一个应该出现在多个域中的标准问题,但我找不到任何关于此的文章。此外,抽象数学中是否存在与此问题相关的分支?是否有标准术语来描述这些问题?在为其实施解决方案之前,我愿意阅读一些理论。

0 个答案:

没有答案