最近参加一个建模大赛,把自己写过的文章建模思路整理一下
引言
每个周六日,我都上骑上我心爱的小毛驴去买菜,村路口那位卖菜大妈的菜最新鲜,价格最地道,她有一个儿子在大学读书,而且是大数据专业,她也知道我从事大数据工作,所以我们常有聊天的话题 ,因为常吃她好菜,所以我也给她多说几句大数据的故事。这天,她神色焦急,见面就抓住我的手。她的儿子要写论文,论文内容有什么主题域、数据架构、大数据等等,她只是一个卖菜的,没有读过几年书,最多看过水浒传,不知道什么叫做主题域、概念建模、逻辑建模、物理建模,想想儿子为了写好论文一夜没有睡好,她想帮忙又不知道从何帮起,说着说明眼泪就要流下来。
为了帮助卖菜大妈,我就把大数据建模与水浒传结合说清楚,力求表达通俗化,下面是我与卖菜大妈的记录摘要。
主题
什么是主题域,客户想把农民和政府的矛盾,关系到105个男人和3个女人拍成一段荡气回肠、可歌可泣的故事。主题域的精髓在于简单,最好不到10个字就能表达清楚,这个主题域叫做水浒传。故事的设计也叫做建模,建模分为三层,第一层是概念建模,功能作用是该主题相关的业务拆分成什么实体。例如水浒传的概念建模,只能允许108个人,不准3000人或者18人,且听一声梁山108名好汉在此! 爽爽入口、气势十足。假设换成梁山3000名好汉在此! 一听显得冗余拖踏,而且感觉3000人数给人感觉都是一群喽啰,不能算英雄好汉。假设是18人的概念建模,面对官兵,梁山18好汉在此!要知道当前的主题域背景,梁山好汉对抗的是宋朝政府,你报18个人,势力单薄,你不是要给人家蚕食鲸吞的节奏吗?想到于此,数据建模设计师施耐毅然庵建模设计108个人。概念建模除了注意人数,还有英雄的名字,如果是及时雨武松,花和尚宋江,行者吴用,黑旋风张顺,智多星李达。这样的概念建模就太失败了,李达长着黑煤一样的脸,白字不识一个,手里抓着两把大斧对人称他手里拿着是两把大爹,一副山匪职业正装模样,与智多星形象差远了吧。武松每次出场 不下雨,不是打人就打老虎,试问及时雨与他有什么关系。正确的概念建模:及时雨宋江,行者武松、黑旋风李达。技术人员和业务人员合力完成第一版的建模了,客户走过来查看,业务清晰,逻辑分明,纲举目张是好的概念建模追求的效果。
概念
上文说了概念建模一二事,概念建模是站在主题域基础上的,它是为了逻辑建模 做 准备的,概念建模主要工作是达成实体个数和确认实体。 下面我就说逻辑建模的故事。
逻辑
如果概念建模是对业务的理解建成一个个的点,那么逻辑建模把所有的点有目的、有方法、有顺序的串连起来,组成一个大的框架。逻辑模型是解决方案,方案里有项目背景,业务痛点,业务需求,挑战困难,分析问题,应对策略,保障服务、评估量化手段等等。这里业外人士看不懂了。回到水浒传的逻辑模型,及时雨宋江能不能杀老虎,作为一百零八名好汉的头,手下那么多喽啰。只要他愿意,众人把老虎按住,宋江能比武松更醉的情况完成杀虎操作。但是他不能做这样事,如果做了那么故事便没有观赏性了。在我们IT人眼中,武松作为一个独立的实体,在父母基因先天不足的情况下生下一个武大郎,他靠着自己的努力坚强,硬是把自己长成虎背熊身,腰傍体粗的一米八个头,个人职业生涯实现完成捕 块、打虎英雄、迷嫂骚男、抓奸英雄 、梁山好汉等角色,具备丰富的人生经历,我们建模称之为属性。逻辑建模的核心工作把概念模型确认好的实体洐生更加丰富的属性,实体抽像方法包括泛化和和特化,泛化会将实体的公共属性和共享内容定为超类实体,而特化将实体中的区分独有属性分离为子类实体。武松是一个个性鲜明、鹤立鸡群的特化的子类实体,甚至可以独立于水浒传出来说故事。施耐庵是一个高级数据建模工程师,什么角色可以泛化,什么角色可以特化,把握的尺度恰到好处。类似王定六-活闪婆、郁保四-险道神等角色可以泛化,放在剧本的角落位置,大部分时间不登场 ,关键应用场景就出来完成作业任务。例如时迁-鼓上蚤平时不待见,后来梁山战祝家庄,时迁现身建奇功东京盗取雁翎金圈甲。有些人不理解数据不多为什么还要单建一个维度表,这个维度表套在大宽表上面不就完了吗? 这个就是要武松生活上能够打老虎,背后还要够翻墙倒柜偷东西。这个逻辑不一定有错,关键是要结合物理模型以及客户的想法角度去出发,从业务的逻辑上去拆分,业务逻辑指的是业务当前现状与业务规划将来。逻辑模型区别是不同角度和不同层次的细节划分,武松可以做时迁的工作。电视上武松轻松一个跟斗翻墙轻拿东西,一点也不影响违和感和观赏感。但是更远的考虑,下一部水浒传后记关于武松和时迁怎么拍?我们都知道武松断了一只手,不方便参与偷盗的活。业务适当拆分,与业务代表、客户领导沟通好是逻辑建模的重点工作。
上文说了逻辑建模一二事,逻辑建模是从概念建模扩展出来的,它是为了物理模型做准备的。逻辑模型是细化所有的工作,下面我就说物理建模的故事。这是我们的最终目标。
物理
逻辑建模与物理建模的关系,假设我们的目标是到北京,逻辑建模的内容是第一站广州,第二站到上海,第三站到北京。它没有说清楚怎么到广州,是走陆路还是水路还是空路,是飞机还是高铁还是自驾,物理模型解决就是这些问题。依然继续水浒传的故事,领导拿到水浒传的逻辑模型很高兴,都已经写成故事了。但是这还不是我们想要的结果,水浒传要拍成电影还是电视剧,还是动画片还是大剧场表演,这里涉及到现场实施的细节问题。所以物理建模也称之为技术实现。水浒传已经多次拍成电视剧,所以拍电视剧风险不大,关键的拍摄质质量取决于你用什么演员,什么监制、什么导演。最核心和最关键是导演,只要拿住导演 ,就成功一半了。同样道理,大数据物理建模核心工作是索引和分区,只要索引和分区做好,性能调优的局面基本稳定。 能不能拍电影,目前没有水浒传的电影,没有一部电影能够3 个小时内把108名好汉的故事全部讲完。如果用电影实现水浒传,恐怕要采用魔戒三部曲的方式 或者黑客帝国5连曲的方式手段,技术难度很高。至于动画片的水浒传,不是不可能!恐怕技术局限性有限只能吸引小朋友,无法引起成年人兴趣,动画片人物形像生硬,无法反映人类喜怒哀乐的情感。正如你的方案选择oracle来解决问题,你会陷于进退两难的局面。oracle做为世界仅次于微软软件商,当前有各种解决问题的技术和方法,要不是费用太贵,要不是各种绑定你约束你。物理模型的重点就是你要选对好产品和工具,用好它们的长处,发挥它们的最大作用。
至此,大妈茅塞顿开,最后恍然大悟,原来写水浒传的作者就是一名数据建模师。中国历史文人不计其数,相信她的儿子也能做好他的工作。我牵着大妈的手,我们公司核心产品就是数据库,有众多产品涵盖数据各个领域,已经在制造业和通信行业有案例,论文需要的案例和数据,我都可以提供,包括数据库实施安装 、导数、建模,我都可以给矛技术支持。后事不用说,菜钱不用付,拿了上好的菜回家,帮助了别人也帮助了自己。




