如何在茫茫人海认出你的女朋友~

被标题骗进来的各位小朋友,先给你们说一声对不起!其实这是一篇介绍数仓模型的短文~

有人说,人是直立行走的动物;
有人说,人会穿衣服,会使用工具,会生火做饭;
女儿说,我是我爸爸的女儿,我知道我爸爸的样子;
媳妇说,我老公啥样我闭上眼睛就能想象出来;

说了这么多,人是什么?OK,人首先是动物。动物是生物的一种类型,区别与植物;以集合论的视角看的话,大概是这样的顺序:

生物 > 动物 > 人> 女人> 女朋友

OK,假设作为程序猿的你有一个貌美如花的女朋友,如何在茫茫人海识别出她?你可能会说,她的眼睛,她的模样,衣着,身高都和别人不一样。

再严谨一点,可能会是她的名字;但是别人不认识她,怎么能识别出她呢?可能是身份证;

但是假如她的身份证被别人冒用呢?另外一个女生拿着她的身份证可不是你的正牌女友哦?

也许最正确的答案是“滴血认亲”?DNA不会骗人,这也许是识别她的最正确的方案之一;其实还可以是指纹,还可以虹膜;但是指纹可能会磨损,虹膜可能也会受伤,最后只有DNA是最牢固的用于识别人的信息;

Finaly,我们定义出来了模型设计中第一个最重要的元素:实体(Entity)

图片发自App

下一个问题,如何描述你的女朋友?可能不同时期,不同地点女朋友的状态都不一样;

小学的时候,女朋友还是小姑娘的样子,天真无邪,短发洋洋得意,喜欢穿漂亮的裙子;

中学的时候,女朋友身高达到了惊人的一米七!

大学的时候,女朋友由于学习刻苦,视力度数达到了300度!

然后我们得到了模型设计中第二个重要的元素:属性(Attribute);

最后一个问题:假设你和你的女朋友有了实质性的发展!她有了你的孩子!那么你觉得你跟她肚子里的孩子真的有血缘关系么?

说实话,有没有我真不知道!但是她肯定是孩子的妈妈,这是无法改变的,没错吧?!

所以,母亲和孩子之间的血缘关系是一种强连接,是维系实体(母亲)与另外一个实体(孩子)之间的无法唯一的纽带。

当然,你们也可以领养一个孩子,领养构成了法律上你们与孩子之间的纽带,这也是另外一种关系,但是却是可以伴随时间而发生变化的,因此这种弱连接,有历史可以追溯,可以发生改变。

以宝强小哥哥为例,我相信现如今社会并不少见~

图片发自App

我们得到了第三个重要的元素:关系Relationship);

但是请各位注意,无论是实体,还是关系,他们都有伴随自己的属性可以用来描述随时间而改变的内容;

以上这几点构成了,数据仓库建模方法论的基础,我们需要在数据模型中反应业务中的实体,属性以及实体之间的关系,还需要同时保存其历史变化;

后面的文章中,会逐一介绍数仓建模的基本方法,优缺点,以及最新趋势;

最后推荐一本书《The Model Thinker》,相信对大部分数据建模工程师都有极大的帮助,请带有哲理性的阅读并思考数据模型的问题。

感谢!

2019-11-29,初冬第一场雪记;

图片发自App

你可能感兴趣的:(如何在茫茫人海认出你的女朋友~)