关系数据库中都支持空值(NULL)来表示数据不存在。但是在数据仓库中,一般不建议继续保留这些空值。下面介绍维度建模中的三种处理空值的策略。
1.事实表的外键为空值。
这种情况出现的原因主要有两个,一个是在数据抽取时外键值还不知道,另一个是在源系统中外键值丢失。这时,引用完整性遭到了破坏。第一种情况通常出现在累计快照事实表中,因为有些事件还没有发生,所以对应的时间不存在。这时,保留空值作为外键是不可取的,我们应该在日期维度中建立一条记录,标识为”还未发生“。然后将未发生的日期关联到该记录上。同样,对于第二种情况,我们应该在相应的维度表中建立记录,标识为”已丢失“。
2.事实表中的事实为空值。
这种情况下,空值通常有两种含义,一种是值不存在,另一种是系统没有记录该值。不论是哪一种,我们都应该将空值保留下来,大多数的数据库系统都能对空值很好的处理聚集函数,如SUM,MAX,MIN,COUNT,AVG。这时,将空值替换成零反而有可能使聚集函数不准。
3.维度表中的属性为空值。
维度表中的属性为空值可能是因为属性没有捕获到,或者属性不知道。这时,我们不应该保留空值,而应该将空值替换为”不知道“或者”未提供“之类。
总的来说,在数据仓库中空值容易引起误解,我们要尽可能的将空值替换成实际的值。
分享到:
相关推荐
oracle处理空值的方法
今天小编就为大家分享一篇python处理csv中的空值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
数据完整性是任何数据库系统要保证的重点。不管系统计划得有多好,空数据值的问题总是存在。本文探讨了在SQL Server中处理这些值时涉及的3个问题:计数、使用空表值以及外键处理。
空值填充策略.ipynb
实验七SQL的空值和空集处理.doc
文章转自IT专家网论坛,作者builder 本文探讨了在SQL Server中处理这些值时涉及的3个问题:计数、使用空表值以及外键处理。 数据完整性是任何数据库系统要保证的重点。不管系统计划得有多好,空数据值的问题总是...
数据完整性是任何数据库系统要保证的重点。不管系统计划得有多好,空数据值的问题总是存在。本文探讨了在SQL Server中处理这些值时涉及的3个问题:计数、使用空表值以及外键处理。
SQL Server中的空值问题.pdf
Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 ...
空值的判断,空值的过滤,补全空值.ipynb
数据查询;;空值比较;空值比较;空值比较; MySQL有一个特殊的等于运算符“”,当两个表达式彼此相等或都等于空值时,它的值为TRUE,其中有一个空值或都是非空值但不相等,这个条件...空值在数据运算中的特殊情况 ;谢谢
在一些情况下,如要查询数据中的几个字段,此时有可能产生重复记录,而重复的记录是不符合规范的,数据表是现实世界的客观反映,因此,空值的产生是不可避免。 1、查询时不显示重复记录 在实现查询操作时,...
Transact-SQL中的对空值的处理函数COALESCE.pdf
数据处理Pandas-空值处理方案-Python实例源码.zip
SQL语言中的空值问题.pdf
找出文档中的空值,并用前值填充空值,分为大跳(中间有连续空值),和小跳,中间只有一个空值
mybatis 报空值异常及其解决办法
python 对csv数据含有空值的进行行的删除,以及重复数据进行删除
用matlab做的数据空值处理。其中包含了数值型的和字符型的数据类型。在代码中加入了详细的注释说明。有做数据分析的可以用此方法进行一些数据的预处理。