被标题骗进来的各位小朋友,先给你们说一声对不起!其实这是一篇介绍数仓模型的短文~
有人说,人是直立行走的动物;
有人说,人会穿衣服,会使用工具,会生火做饭;
女儿说,我是我爸爸的女儿,我知道我爸爸的样子;
媳妇说,我老公啥样我闭上眼睛就能想象出来;
说了这么多,人是什么?OK,人首先是动物。动物是生物的一种类型,区别与植物;以集合论的视角看的话,大概是这样的顺序:
生物 > 动物 > 人> 女人> 女朋友
OK,假设作为程序猿的你有一个貌美如花的女朋友,如何在茫茫人海识别出她?你可能会说,她的眼睛,她的模样,衣着,身高都和别人不一样。
再严谨一点,可能会是她的名字;但是别人不认识她,怎么能识别出她呢?可能是身份证;
但是假如她的身份证被别人冒用呢?另外一个女生拿着她的身份证可不是你的正牌女友哦?
也许最正确的答案是“滴血认亲”?DNA不会骗人,这也许是识别她的最正确的方案之一;其实还可以是指纹,还可以虹膜;但是指纹可能会磨损,虹膜可能也会受伤,最后只有DNA是最牢固的用于识别人的信息;
Finaly,我们定义出来了模型设计中第一个最重要的元素:实体(Entity);
如何在茫茫人海认出你的女朋友~下一个问题,如何描述你的女朋友?可能不同时期,不同地点女朋友的状态都不一样;
小学的时候,女朋友还是小姑娘的样子,天真无邪,短发洋洋得意,喜欢穿漂亮的裙子;
中学的时候,女朋友身高达到了惊人的一米七!
大学的时候,女朋友由于学习刻苦,视力度数达到了300度!
然后我们得到了模型设计中第二个重要的元素:属性(Attribute);
最后一个问题:假设你和你的女朋友有了实质性的发展!她有了你的孩子!那么你觉得你跟她肚子里的孩子真的有血缘关系么?
说实话,有没有我真不知道!但是她肯定是孩子的妈妈,这是无法改变的,没错吧?!
所以,母亲和孩子之间的血缘关系是一种强连接,是维系实体(母亲)与另外一个实体(孩子)之间的无法唯一的纽带。
当然,你们也可以领养一个孩子,领养构成了法律上你们与孩子之间的纽带,这也是另外一种关系,但是却是可以伴随时间而发生变化的,因此这种弱连接,有历史可以追溯,可以发生改变。
以宝强小哥哥为例,我相信现如今社会并不少见~
如何在茫茫人海认出你的女朋友~我们得到了第三个重要的元素:关系(Relationship);
但是请各位注意,无论是实体,还是关系,他们都有伴随自己的属性可以用来描述随时间而改变的内容;
以上这几点构成了,数据仓库建模方法论的基础,我们需要在数据模型中反应业务中的实体,属性以及实体之间的关系,还需要同时保存其历史变化;
后面的文章中,会逐一介绍数仓建模的基本方法,优缺点,以及最新趋势;
最后推荐一本书《The Model Thinker》,相信对大部分数据建模工程师都有极大的帮助,请带有哲理性的阅读并思考数据模型的问题。
感谢!
2019-11-29,初冬第一场雪记;
如何在茫茫人海认出你的女朋友~
网友评论