怎么做影视类网站,关键词检索怎么弄,做女朋友的网站,药理学网站建设方案数据仓库基础笔记思维导图已经整理完毕#xff0c;完整连接为#xff1a; 数据仓库基础知识笔记思维导图
特殊类型的星型模式
通过维度表示的事物通常可以按照类别或者类型细分。有时想要在维度表中记录的属性类型是多样的。 尽管类型相同#xff0c;但是却存在很大差别。…数据仓库基础笔记思维导图已经整理完毕完整连接为 数据仓库基础知识笔记思维导图
特殊类型的星型模式
通过维度表示的事物通常可以按照类别或者类型细分。有时想要在维度表中记录的属性类型是多样的。 尽管类型相同但是却存在很大差别。在此情况下维度模型的设计者处于两难境地一方面希望跨越所有类型来研究业务过程另一方面希望使用特定类型的属性来研究每个特定的类型。
数据仓库必须反映出过程分析和度量的所有方法。如果受限于单个的分析观点数据仓库的整个效应将会大大降低。管理层可能想要分析全局的类型使用可共享的事实和维度。当专注于某个特定类型时也可能需要做更详细的表达使用特定类型的素有事实和维度不能实现这些功能将会破坏整个解决方案的价值。
使用单一星型模式
建立包含所有可能属性的单一星型模式该方法是完全有效的允许企业进行跨类型的分析或者进行特定类型的分析包含在查询或报表中的属性确定了关注点。
缺点 有时在单一星型模式中包含所有属性是不现实的在技术方面维度的频繁变化可能导致产生过多的属性。单一事实表也可能存在语义缺陷。合并素有可能属性的星型模式可能会导致无意义的报表。
核心和自定义星型模式
核心和自定义维度表
核心星型模式包括所有公共属性且支持跨所有类型的分析特定类型的自定义星型模式包括所有的核心属性以及任何特定类型的属性。
为了成功实现核心/自定义设计需要使用核心维度和每个特定类型的自定义维度之间的公共属性具有一致性。
有时存在自定义属性却没有自定义事实的情况但是自定义事实表仍然可以避免分析意外。物理实现可以采用独立且不同的核心和自定义表的方式。或者使用数据库视图来实现。
异构维度属性能通过设计多个维度表来处理核心维度包含所有公共属性自定义维度包含核心属性和特定类型的属性。
一致性属性核心和自定义维度的公共属性应该是一致的这意味着他们必须在结构和内容方面是相同的。公共代理键核心和自定义维度表共享一个公共键域。可以将核心维度看做每个自定义维度的公共属性的联合。缓慢变化维度类型2缓慢变化会对核心/自定义设计产生明显不良的影响。当变化的值恰巧在一个自定义列时会发生一个奇怪的副作用。在自定义表中发生变化的项和旧行和新行是完全不同的其他所有方面新旧版本均相同。
核心和自定义事实表
强烈建议在设计相应的自定义事实表时避免由此可能带来的分析混乱实现不需要物理表视图或类似的备选方案就足够了。
用于所有类型的相同事实如果为所有类型记录了相同的事实就能发现维度的核心或者自定义版本嫩通过分析情况按需求被连接到事实表。在跨所有类型分析时使用核心版本表分析将被限制在公共维度属性上当分析某个特定的类型时使用自定义版本分析包含特定类型的属性。通过公共键值域可以方便地获得交互能力。注意可能产生任何连接到自定义维度的查询都隐含地受到特定类型事实表的约束。可以通过建立一个特定的自定义副本来解决没每个副本只包含一个特定产品类型的行结果是一个核心和自定义星型模式的集合。建立视图特定类型的事实当特殊事实与特定类型关联时自定义事实表称为必要的核心事实表包含所有事实的行。并且将包含所有类型的公共事件。为每个类型建立自定义事实表这些事实表包含核心事实以及任何特定类型的事实表。对维度表一致性是必须考虑的事情公共事实表必须具有相同的结构和内容。分析需要首先选择适当的星型模式。跨所有类型的分析使用核心星型模式实现分析将被限制与核心事实和维度中。需要针对某个特定类型的事实或者为敌的分析将使用适当的自定义星型模式执行分析将被限制于特定类型的事务中。
其他注意事项
重叠自定义维度有时在一个维度中存在多个类型等级当在类型中存在类型时可能想要设计多重等级的自定义星型模式。在此情况下创建的自定义事实表中包含冗余是不可避免的可以选择一个基于视图的解决方案来避免产生冗余事实表甚至是冗余维度表。使用支架表针对核心/自定义主题的不同方法力图消除自定义表中核心属性的冗余。这种防范能节约空间但是受限于雪花模式的潜在缺点。使用具有核心维度的层次桥接表涉及实体的集合似乎参与了某种层次的情况但是又不能明确层次的等级。常常发生在区域或者组织架构中解决这个问题的关键在于认识到一组事物具有不同的属性。虽然在没有源系统作为同一事物的例子来表示他们同时没有业务员以这种方式描述他们当发现他们都被用来汇总行为时共性是明显的哪些被看做一组不同的维度实际上是未被发现的核心维度的自定义版本。有时两个或者多个维度在使用后才发现他们具有一些相同的核心属性一种选择是忽略该问题并且通过一个复杂的报表过程来协调数据。已经创建了自定义维度而常见的属性没有一致性的名称或者数据类型并且他们也不存在可共享的关键域。在构建核心维度要求对原始表进行调整调整他们的内容重新分配键值如此一开在关联的事实表上会产生连锁反应外键引用被更新现存的报表也要求用SQL重写。
使用通用属性
通用属性的使用试图用一个列的集合来捕获类型的多样性在维度表中描述核心属性的列集合通过一系列多用途的列来补充目的是随着类型来变化。
在存储信息时这一设计是十分灵活的允许为大量类型存储自定义属性并且都存储在单一表中有的类型可以利用所有的通用属性其他的类型使用其中的一些只要拥有足够的适当数据类型的通用列就可以适合任意属性同样的技术可以用来捕获事实表的变化。
尽管存储信息十分灵活当检索信息时通用设计往往会失去灵活性因为列名采用通用定义所以构建查询时需要引用列中信息。同样查询结构将需要与解码的属性标签重新打包标准的查询和报表软件往往不能支持这样的需求。
通用属性的使用通常是不受欢迎的因为会导致不易获取数据然而若将其与自定义开发的应用程序结合便有助于获得良好的分析体验。