文章目录

  • 一. freedgo在线绘图工具
  • 二. 数据库
    • 1. 概念
    • 2. 分类
    • 3. 基本术语
    • 4. 实体关系
      • 4.1 数量关系
      • 4.2 从属关系
  • 三. ER图&EER图
    • 1. ER图
    • 2. EER图
    • 3. 绘制
      • 3.1 需求
      • 3.2 实体
      • 3.3 实体属性
      • 3.4 实体关系属性和关系
    • 4. 设计范式

基于基本的数据库/数据关系模型概念,总结数据关系的设计和绘制,使用freedgo在线工具绘图实现

一. freedgo在线绘图工具

  • 工具链接:https://www.freedgo.com
  • 可以绘制各种场景用途的图,见下图
  • 提供丰富的模板,界面简洁舒适,易上手
  • 本文暂时只介绍该工具中Mysql ER图的使用编辑方法(其他模板慢慢探索)
  • 具体使用在后续章节介绍中展开

二. 数据库

  • 详细介绍参考:MySQL数据库(基础)

1. 概念

  • 用于存储和管理数据的仓库

2. 分类

  • 关系型数据库:基于关系模型的数据结构(二维表)

    • 建立在关系模型上的数据库
    • Oracle、DB2、MySQL 、SqlServer、Sybase、Access
    • 四层结构:
      • 数据库管理系统(DBMS):管理系统运行 (DateBase Management System)
      • 数据库(DB):数据存储的管理者 (小管理,受DBMS管理)
      • 数据表(Table):数据关系管理者
      • 数据字段(Field):实际数据存储者 (依赖于数据表)
  • 非关系型数据库:NoSQL (Not only SQL)
    • 所有不是关系型数据库的统称,没有具体模型的数据结构,数据存储模型不是二维表,而是键值对(key->value)
    • MongoDB、Redis、Memcached

3. 基本术语

常用的数据库是MySQL,有三大要素:实体属性关系,概念上分别对应主键/外键

  • 数据表(实体)(table):数据的矩阵,一个表(实体)看起来像一个简单的二维电子表格

    • 能被统一、抽象的属性进行描述的数据对象可以看做是一个实体
    • 学生和电脑可以被看作是两种实体
    • 学生实体的属性有学校、班级、学号等
    • 电脑实体的属性包括品牌、型号、尺寸等课程
  • (row):一行是一组相关的数据,写入数据库数据时是按行进行写入存储
    • 类似二维表格中的行的概念
    • 一行是实体中的一条数据记录
    • 如学生实体(学生表)中,一行表示一个学生的信息,由多种属性组成“一个学生”的数据
  • (column):一列对应相同类型的数据,是表中的一个字段
    • 一个实体内,不同的数据记录都会由相同的属性组成,一个属性就是表里的一列
  • 主键(primary key):一个表中只含一个主键,可以唯一标识表中的一行
    • 如学生数据表中,学号可以作为主键,唯一标识区分学生(区分每行记录
    • 常统一用 uuid 作为主键
    • UUID (Universally Unique Identifier)
      • 通用唯一识别码,128位
      • 数据在时间上和空间上的唯一标识
      • 在数据移植时也不会出现重复
  • 外键(foreign key):外键用于关联两个表,表的外键就是另一个表的主键
    • 若uuid为学生表的主键,则在和学生表有关系的其他表中,会有一个外键属性,属性值为对应有关系的、学生表中的那条记录的uuid

4. 实体关系

  • 基于主键/外键,数量上有三类主要关系,从属关系上有两种关系,用于表示两个实体之间的关系
  • 实体之间的关系可以理解为是实体内数据记录之间的关系

4.1 数量关系

  • 一对一:实体A中每个数据记录,至多与实体B中的一个数据记录有关系,反之亦然

    • 如有学生实体和饭卡实体,一个学生(实体内的一个数据记录)只能有一个饭卡(实体内的一个数据记录),反之亦然
  • 一对多:实体A中每个数据记录,至少与实体B中的n(n>0)个数据记录有关系,实体B中每个数据记录至多与实体A中的一条记录有关系
    • 一个班级至少有一个学生,一个学生至多与一个班级有关系
  • 多对多:实体A中每个数据记录,至少与实体B中的n(n>0)个数据记录有关系,反之亦然
    • 一个学生可以与多个课程有关系(选了多个课程),一个课程可以与多个学生有关系(课程被多个学生选择)

4.2 从属关系

  • 包含关系:实体A的数据包含实体B的数据;实体A为父表,实体B为子表;实体A的数据被删除后,实体B的数据也被删除

    • 学校实体包含学生实体,学生数据属于学校数据,学校数据被删除后,学生数据也不存在
  • 引用关系:实体A的数据引用实体B的数据,实体A数据删除后,实体B的数据还在,实体B的数据删除后,对应的实体A的数据也在,但是看不到所引用的实体B的数据
    • 课表实体和学生实体,为引用关系,二者的存在没有依赖包含关系
    • 语文课被删除后,学生数据仍在,但是课表中引用的语文课数据看不到了

三. ER图&EER图

建立数据库需要根据需求设计好数据关系,基于数据关系,开发代码,基于代码,对数据库数据进行有逻辑的读写

关于数据关系模型,有两种类型的模型:

  • ER:Entity-Relationship Modelling,逻辑模型,不能落地应用

  • EER:Enhanced Entity-Relationship Modelling,物理模型,和落地的数据库相关

  • 正常情况,ER和EER图是不同设计阶段的产物,先有概念逻辑上的设计(ER),再具体出物理模型上的设计(EER)

1. ER图

  • 样例:

  • 本次以EER的绘制为主,ER图绘制参考:ER图画法及图形含义、举例说明、通俗易懂

2. EER图

(好像又叫鸭蹼图crow‘s foot)

ER图在实体和属性太多的情况下,看起来比较费劲,也不够直观,EER图更条理直观,自己对EER图进行了一定的简化处理,易于理解

3. 绘制

可以用数据库工具mysql workbench或绘制,此处用前面介绍的freedgo工具在线绘制,方便,上手快,绘图要素够用,直观

设计绘制可参考的使用习惯步骤:

  • 了解需求
  • 识别并绘制实体
  • 识别并添加实体属性
  • 识别并添加实体关系属性
  • 对关系属性建立关系

3.1 需求

  • 设计数据关系前,需要理解需求,从中整理抽象出数据部分
  • 数据库是对数据的读写,在梳理出数据的时候,要剥离原有的信息,只考虑数据部分,考虑需要存储哪些数据,以及之间的关系

3.2 实体

分析有哪些大的数据对象,并且概念上能明显区分,能被基本不同的属性描述,这些属性可以是软件界面上展示的属性,也可以是隐藏属性

  • 绘制方法

    • 左下角添加图形(实体关系)
    • 拖拽添加实体
    • 修改实体名称
    • 选中实体,右侧根据喜好修改颜色风格

3.3 实体属性

分析构成该实体的属性

  • 此处因为用uuid作为所有实体的主键,因此习惯去掉主键(3.2图中标识了钥匙的属性)
  • 属性可以复制粘贴
  • 属性本身有许多特性需要描述,如数据类型(字符串、整型等),可以使用预定义的信息,右击编辑
  • 或自定义编辑:Ctrl+M
  • 悬浮浏览属性的详细信息

3.4 实体关系属性和关系

此处将两个实体之间的关系通过关系属性展示出来,两个实体的关系通过连接两个实体的关系属性表示

一般表达方式:

  • 将两个表用线连接,表示两个表的关系,和关系相关的信息,在绘制工具中双击连线进行设置
  • 或者可以将关系名称写在连线上标识关系(链接)
  • 但在实体较多时,或者一个实体所关联的实体较多时,关系的浏览会较为混乱,不直观

  • 采用如下标识方式

    • 一个关系线的两端,为对应实体的“关系属性”,即用不带数据类型的属性进行表示
    • 学生实体中的关系属性selectedCourse
      • 属于学生实体,表示所选的课程
      • 关系属性,表示从对应的实体(课程实体)中拿到该信息(某学生所选课程)
      • 关系属性的名称,表示为线的另一端的实体,如,儿子实体和父亲实体,在儿子实体中,关系属性命名为“我的父亲”,在父亲实体中,对应的关系属性为“我的儿子”
    • 关系为多对多(n-n)(右击连线或点击连线,编辑线的属性)
    • 虚线表示“引用”关系(包含关系用实线表示)
    • 编辑方式:

4. 设计范式

  • 数据库设计时遵循的规范:数据库三大范式

数据库 ER图 EER图(鸭蹼图) freedgo绘图工具相关推荐

  1. 数据库评书---MySQLWorkbench绘制EER图(鸭蹼图, chen’s ER图)

    目前CSDN较少关于系统的介绍EER图,所以有了这篇文章 本来想从国内ER图画法写到国外课程常见的EER图和Chen's ER图,但发现没有必要,网上关于ER图画法介绍一大把, 所以直接介绍关于EER ...

  2. 一个实用技巧,告别手动画图,自动生成数据库 ER 图|原创

    来自:程序通事 忙,真忙 这两个星期真是巨忙,年前有个项目因为各种莫名原因,一直拖到这个月才开始真正测试.然后上周又接到新需求,马不停蹄进入开发. 一边开发着新需求,一边改着旧项目的 Bug.再加上这 ...

  3. 【数据库E-R图知识点和相关习题(复试真题)】

    文章目录 数据库E-R图知识点和相关习题 E-R图的前置知识 习题 工厂物资管理系统(例题) 防疫管理系统(2021) 社区隔离人员管理系统(2020A) 在线教学管理系统(2020B) 餐厅管理系统 ...

  4. mysql学生管理系统er图_java swing mysql实现的学生选课成绩信息管理系统附带视频指导教程及数据库ER图...

    <p> <span style="color:#4F4F4F;font-family:"font-size:16px;background-color:#FFFF ...

  5. 能画数据库E-R图的软件有哪些

    能画数据库E-R图的软件有很多,包括: Visio:这是一款功能强大的图形绘制软件,能够用来绘制各种图形,包括E-R图. SmartDraw:这是一款专门用于绘制E-R图的软件,具有专业的图形绘制功能 ...

  6. mysql e r图_mysql数据库E-R图

    E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型. 它是描述现实世界关系概念模型的有效方法.是表示概 ...

  7. EA逆向生成数据库E-R图(mysql数据库--ER图)

    步骤: 1. 创建ODBC数据源 2.EA新建项目 3.新增er_er图[点击ERD View-->右键-->添加图] 4.从ODBC中导入数据库Schema... 5.点击导入,然后点击 ...

  8. 【数据库基础】EER图(Enhanced Entity-Relationship Modelling)

    目录 1. 为什么需要EER model? 什么时候用EER? 2. Specialization / Generalization 特化和概化 特化和概化的两种约束 1.Participation ...

  9. 软考大题做题技巧——数据流图、数据库E-R图、UML、算法、设计模式(干货!)

    小编在软考最后一周,破釜沉舟的学习软考的大题,找到了一些大题的做题技巧,特此分享给大家,希望所有参加软考的同学都能尽自己百分百的努力,收获最好的结果. 做题时可以重点找一下每类问题考察的考点以及提问问 ...

  10. 数据库E-R图基础概念

    E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型. ER模型的基本元素 实体:用方框表示,实体名为名 ...

最新文章

  1. Python3 统计 ftp 文件个数和大小
  2. matlab 中fft的用法
  3. Python update 函数 - Python零基础入门教程
  4. c语言折半查找法找字符,C语言折半查找法练习题冒泡排序
  5. c++ 原子操作 赋值_Volatile深度剖析-原子性
  6. 如何在Mac的内置词典中添加和删除单词
  7. UIImageView的animationImages动画
  8. PAT 1005 继续(3n+1)猜想
  9. Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计...
  10. 阿里矢量图标(字体图标) 、 阴影
  11. java代码合成多张图片成一张
  12. Vue一级二级三级域名下cookie值共享(不同域名cookie共享)
  13. 1分钟理清楚C++类模板和模板类区别
  14. python图像拼接_python实现图像拼接
  15. ubuntu20.04安装ROS及常见问题
  16. sap采购申请自动转采购订单
  17. Office Web apps可以利用Excel Web JavaScript编程
  18. (超级详细秒懂)带你秒懂web电子账单板块代码
  19. 关于瑞萨RL78系列单片机在线升级
  20. mybatis-Springboot配置多数据源出现错误记录

热门文章

  1. php源码 备课系统,电子教案管理系统2012版 V3.2
  2. 字符串循环移位 编程之美3.1
  3. 转:java 进阶之路
  4. 新版php卡盟排行榜网站源码
  5. 微星主板黑苹果_AMD黑苹果主机金牌装机单
  6. java请求第三方接口
  7. 【TCP/IP】【测试】常用抓包软件一览
  8. bootstrap 获取表格修改的结果_bootstrap table getData获取表格数据的方法
  9. ArcGIS中KML/KMZ转为.shp文件
  10. 计算机组成与设计 笔记(一)