在日常项目中,发现公司初级、中级研发同事在系统表结构设计或数仓表结构设计过程中,很多人都没有听说过概念模型、逻辑模型、物理模型,所以今天这篇文章和大家一起梳理下,什么是概念模型、逻辑模型、物理模型。
为什么要分开成三个步骤:概念模型阶段->逻辑模型阶段->物理模型阶段 进行表结构设计,这样做的优点是什么;(推荐大家使用powerDesigner进行概念模型、逻辑模型、物理模型设计,本文powerdesigern设计的学生管理系统)
一、概念模型阶段
概念模型阶段要做的事,总结一句话来说,"找到你开发设计的系统,业务层面核心的实体和关系;
举个例子,我们准备要开发一个校园管理系统,通过和产品经理、需求方沟通,这个系统主要目的是为了解决学生、班级、老师之间归属关系录入、统计和查看。
在概念模型阶段,我们可以将我们涉及到业务层面的核心的三个实体1、学生 2、班级 3、老师 ;
归属关系 :
1、班级与学生是属于一对多的关系:一个班级至少有一个或多个学生,每个学生只能归属于一个班级;
2、老师与班级是属于多对多的关系:一个班级至少有一个或多个老师,一个老师至少属于一个或多个班级;
3、老师与课程是属于一对多的关系:一个老师只能教授一门课程,多个老师可以教授同一门课程;我们使用powerdesigner画出来的概念模型如下:
二、逻辑模型阶段
逻辑模型阶段要做的事,总结一句话来说,“整理完善系统所有实体、实体间的关系,给实体添加字段属性”;
例如班级这个实体,我们需要将班级ID、班级名称等 班级实体下的所有字段属性梳理出来,并将这些字段的长度和约束确定下来;
实体字段属性定义要尽量满足三范式定义,在下一个章节我们会讲到什么是三范式,为什么要遵循三范式;
此时多对多的关系,例如老师与班级的归属关系,我们需要单独建立一张关系表,进行处理;我们使用powerdesigner画出来的逻辑模型如下:
三、物理模型阶段
物理模型阶段要做的事,总结一句话来说,“通过case工具(例如:powerdesigner)由逻辑模型自动生成物理模型(可生成不同数据库类型的DDL语句、数据字典)”,生成的逻辑模型如下:
可直接生成DDL语句
四、优点总结:
1、减少团队成员间日常沟通成本:一般想要快速熟悉系统和业务,从数据库梳理是最快的,但如果只有数据库DDL语句注释,那最多了解到6、7成,因为表之间关联关系,只看DDL是看不出来,那就需要去问,新同事入职要问老同事,数据团队要问要问系统研发团队。
2、**数据治理的关键,数据模型管理是数据治理最重要的一个环节之一,**按规范来设计,可以将研发->dba->数据分析团队职能高效的串联起来,保证平台数据质量的可控性。