在日常项目中,发现公司初级、中级研发同事在系统表结构设计或数仓表结构设计过程中,很多人都没有听说过概念模型、逻辑模型、物理模型,所以今天这篇文章和大家一起梳理下,什么是概念模型、逻辑模型、物理模型。

为什么要分开成三个步骤:概念模型阶段->逻辑模型阶段->物理模型阶段 进行表结构设计,这样做的优点是什么;(推荐大家使用powerDesigner进行概念模型、逻辑模型、物理模型设计,本文powerdesigern设计的学生管理系统)

一、概念模型阶段

概念模型阶段要做的事,总结一句话来说,"找到你开发设计的系统,业务层面核心的实体和关系;

举个例子,我们准备要开发一个校园管理系统,通过和产品经理、需求方沟通,这个系统主要目的是为了解决学生、班级、老师之间归属关系录入、统计和查看。

在概念模型阶段,我们可以将我们涉及到业务层面的核心的三个实体 1、学生 2、班级 3、老师 ;

归属关系 :

1、班级与学生是属于一对多的关系:一个班级至少有一个或多个学生,每个学生只能归属于一个班级;

2、老师与班级是属于多对多的关系:一个班级至少有一个或多个老师,一个老师至少属于一个或多个班级;

3、老师与课程是属于一对多的关系:一个老师只能教授一门课程,多个老师可以教授同一门课程;我们使用powerdesigner画出来的概念模型如下:

二、逻辑模型阶段

逻辑模型阶段要做的事,总结一句话来说,“整理完善系统所有实体、实体间的关系,给实体添加字段属性”;

例如班级这个实体,我们需要将班级ID、班级名称等 班级实体下的所有字段属性梳理出来,并将这些字段的长度和约束确定下来;

实体字段属性定义要尽量满足三范式定义,在下一个章节我们会讲到什么是三范式,为什么要遵循三范式;

此时多对多的关系,例如老师与班级的归属关系,我们需要单独建立一张关系表,进行处理;我们使用powerdesigner画出来的逻辑模型如下:

三、物理模型阶段

物理模型阶段要做的事,总结一句话来说,“通过case工具(例如:powerdesigner)由逻辑模型自动生成物理模型(可生成不同数据库类型的DDL语句、数据字典)”,生成的逻辑模型如下:

可直接生成DDL语句

四、优点总结:

1、减少团队成员间日常沟通成本:一般想要快速熟悉系统和业务,从数据库梳理是最快的,但如果只有数据库DDL语句注释,那最多了解到6、7成,因为表之间关联关系,只看DDL是看不出来,那就需要去问,新同事入职要问老同事,数据团队要问要问系统研发团队。

2、**数据治理的关键,数据模型管理是数据治理最重要的一个环节之一,**按规范来设计,可以将研发->dba->数据分析团队职能高效的串联起来,保证平台数据质量的可控性。

数据库表结构设计,什么是概念模型、逻辑模型、物理模型相关推荐

  1. (理论)数据库建模三步骤:概念模型-逻辑模型-物理模型

    概念模型就是在了解了用户的需求,用户的业务领域工作情况以后,经过分析和总结,提炼出来的用以描述用户业务需求的一些概念的东西.如销售业务中的"客户"和"定单",还 ...

  2. 数据库建模三步骤:概念模型-逻辑模型-物理模型

    设计数据库有如下6个主要步骤: 1.需求分析:了解用户的数据需求.处理需求.安全性及完整性要求: 2.概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型: 3.逻辑结构设计:设计系统的模式和外 ...

  3. mysql逻辑模型_(理论)数据库建模三步骤:概念模型-逻辑模型-物理模型

    数据库建模:在设计数据库时,对现实世界进行分析.抽象.并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模.它主要包括两部分内容:确定最基本的数据结构:对约束建模. 1.概念模型的表示方 ...

  4. e-r数据建模-概念模型 逻辑模型 物理模型-总结

    作为一名合格的Java程序员,公司要求要掌握的知识面越来越多.特别对于一些小型公司岗位并没有分的很细化,所以在平时开发中就要求各种技能同时兼顾.一般从产品对接业务确定以后,后面就要设计数据库建模了.但 ...

  5. ezdml 支付mysql 吗_EZDML数据库表结构设计器_设计sql、oracle、mysql数据库表结构 V2.39 免费版...

    很多程序员或者网站站长在设计网站数据库的时候都要进行表结构设计,如果您不想操作原始的数据库工具之想简单设计一下数据库表结构,那么你不妨试试这款EZDML数据库表结构设计器,可以快速设计sql.orac ...

  6. 转载:数据库表结构设计方法及原则

    在目前的企业信息系统中,数据库还是最佳的数据存储方式,虽然已经有很多的书籍在指导我们进行数据库设计,但应该那种方式是设计数据库的表结构的最好方 法.设计时应遵从什么样的原则.四个范式如何能够用一种方式 ...

  7. 数据库表结构设计方法

    数据库表结构设计方法 当我们设计一个数据库存储模式时,要仔细分析数据模式,不要一股脑的把所有的数据都放在一起.那样的话对系统的可用性,高效能,扩展性都会有严重的影响.当然你设计的系统非常小,完全可以用 ...

  8. mysql 数据库表结构设计与规范

    mysql 数据库表结构设计与规范 DDL(data difinition language)就是数据定义语言. 1.sql语句的界定符 [code]– 默认情况下" ; " 代表 ...

  9. 导出 MySQL 数据库表结构设计文档

    第一种 :利用sql语句查询 需要说明的是该方法应该适用很多工具,博主用的是navicat SELECT TABLE_NAME 表名,COLUMN_NAME 列名, COLUMN_TYPE 数据类型, ...

  10. 数据库领域中最常用的逻辑模型有哪些?请比较各种模型的优缺点并详述。

    数据库领域中最常用的逻辑模型有:层次模型(树状图).网状模型(网,图).关系模型. 1.层次模型: 优点: 1.结构清晰,便于观看实体间的联系 2.操作简单 3.查询效率高 缺点: 1.结构灵活性低, ...

最新文章

  1. c语言计算除法一位小数点,高精度除法小数点位数
  2. python中对字典进行排序_python如何给字典排序
  3. oracle error-1555,从另外一个角度看ORA-1555
  4. mysql 存储过程乱码的问题
  5. JavaWeb出现404一个很隐蔽的原因
  6. 禅道---Bug管理模块
  7. 【Java学习笔记】之家庭账目管理系统
  8. java 服务器调优_Java远程服务器调优
  9. CentOs解压缩命令
  10. Py之lime:lime库的简介、安装、使用方法之详细攻略
  11. 微软认证全国考试中心一览表
  12. 网站突然服务器到期,网站云服务器到期释放
  13. 各大平台免费接口,非常适用
  14. VSS2005+vs2012配置
  15. fts touchscreen
  16. E.A. Guillemin 吉耶曼统一古典电路理论的人
  17. 2017年成为全栈开发工程师的权威指南
  18. 多么痛的领悟~ T T
  19. python中csv库的writer函数_指定格式csv.writer在Python中
  20. Blender UV 打直

热门文章

  1. 浅谈摄像机视角和焦距
  2. word2016安装mathtype之后工具栏无显示
  3. 软件性能测试和可靠性测试
  4. android TV for x86,“掌上TV”的第一步,Android TV x86 体验分享
  5. 如何组织一个高效的开发团队?
  6. Dubbo调优 -- 超时TimeOut
  7. BZOJ4200: [Noi2015]小园丁与老司机
  8. html九九乘法口诀表代码,JavaScript九九乘法口诀表的简单实现
  9. 并发和并行的区别(图解)
  10. 实验室信息管理系统(LIMS)软件大盘点