※ 软件开发的步骤可大致分为(瀑布模型):
1.需求分析
2.系统设计
3.编码实现
4.系统测试
5.运行维护

※ 建模是在步骤2设计中的,(软件powerdesigner)

※ 实体-关系图

※ 实体-关系图(Entity Relationship Diagram),也称为E-R图,提供了表示实体、
属性和关系的方法,用来描述现实世界的概念模型。

※ 构成E-R图的基本要素是实体、属性和关系
1 .实体(Entity):实体用来表示具有相同特征和性质的事物(类似于java的类),实体由实体名和实体属性来表示。
2 .属性(Attribute):实体所具有的某一特性,一个实体可以有若干个属性
3 .关系(Relationship):实体彼此之间相互连接的方式称为关系。
一般可分为以下 3 种类型:

    一对一关系 (1 ∶ 1)一对多关系 (1 ∶ N)多对多关系 (M ∶ N)

※ 构建E-R图的标记
实体之间关系
may-be(虚线) 和 must-be(实线)
在实体与实体之间的关系中,都会存在着may-be和must-be这俩种情况,例如:
系统中有顾客和订单俩个实体(1:N关系),一个顾客对应多个订单,一个订单对应一个顾客,而且一个顾客可以(may be)没有订单和他对应,一个订单一定(must be)会有顾客和它对应.
ER图中实体中符号的表示
1) # : 唯一, 以后可能表示为主键
2) * : 非空
3) o : 可有可无
4) 虚线: may be 顾客这边虚线,顾客可能没有订单
5) 实线: must be 订单这边实线,订单一定是属于某个客户。
6) 竖杠(|): 代表要强制在(|)一方建立一个联合主键,将对方ID拿过来做联合主键
7) 伞状图标代表多的一方,不是伞状图标则代表一的一方

※ 数据库设计步骤:

1.实体的名字转换为表的名字
2.实体的属性转换为表中的列
3.具有唯一特点的属性设置为表中的主键
4.根据实体之间的关系设置为表中某列为外键列(主外键关联)
注意:第四步主要是:实体关系—>表关系

注意:
设计关系数据库时,遵从不同的规范要求,才能设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
※ 关系数据库有六种范式:
第一范式(1NF)
第二范式(2NF)
第三范式(3NF)
巴斯-科德范式(BCNF)
第四范式(4NF)
第五范式(5NF,又称完美范式)
注:满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。

※ 第一范式(原子性,列不可分)
一个表中,每个列里面的值是不能再分割的.

        例如:我们设计的表中有一个列是:爱好这个列的值可能会是这样:足球篮球乒乓球但是这值是可以再分割的:足球、篮球、乒乓球

所以这种设计是不满足第一范式

※ 第二范式(非主键列都必须依赖于主键列)
第二范式是在满足第一范式的基础上
表中的非主键列都必须依赖于主键列

 例如:订单表: 订单编号 是主键订单编号  订单名称   订单日期  订单中产品的生产地

这几个非主键列中,产品生产地是不依赖于订单编号的,所以这种设计是不满足第二范式

※ 第三范式:(不能产生依赖传递)
第三范式是在满足第二范式的基础上
表中的非主键列都必须直接依赖于主键列,而不能间接的依赖.

    例如:订单表:   订单编号 是主键订单编号  订单名称  顾客编号  顾客姓名

顾客编号依赖于订单编号,顾客姓名依赖于顾客编号,从而顾客姓名间接的依赖于订单编号,那么这里产生了依赖传递,所以这个设计是不满足第三范式的

※ 主外键说明

※ 主键:
1.能做主键的列必要满足非空唯一的特点
2.只要满足非空唯一的任何列都可以做主键
3.可以让表中一个有意义的列做主键,比如说学号,它既表示学生学号又作为表中的主键,因为这个列满足非空唯一的条件
4.也可以找一个没有意义的列做主键,就是用来唯一标识一行记录的
5.我们可以让多个列联合在一起做表中的主键,那么它就是联合主键,要求这几个列的值联合在一起是非空唯一的
※ 外键:
1.表中的某一个列声明为外键列,一般这个外键列的值都会引用于另外一张表的主键列的值(有唯一约束的列就可以,不一定非要引用主键列)
2.另外一张表的主键列中出现过的值都可以在外键列中使用,没有出现过的值,都不能使用
3.外键列值也可以为空的,提前是这个外键列在表中不做主键,因为我们也可以把表中的外键列当做主键来使用(只有满足非空唯一的要求就可以)
4.如果把B表中的联合主键的值引用到A表中做外键,因为是俩个列在B表中做联合主键,那么A表引用过来的时候也要把俩个列的值都引用过来,那么它们在A表中就会作为一个联合外键出现

数据建模(E-R图)相关推荐

  1. 【R图秀-3】——“全球和平指数”可视化

    作者简介Introduction 傅兴:个人公众号:Rapp 往期回顾 [R图秀-1]12306列车数据可视化 [R图秀-2]社交网络数据可视化(一) 今天在Tableau Public的网站上看到一 ...

  2. R语言使用ggradar包可视化基本雷达图(radar chart、蜘蛛图spider plot)、可视化单个数据对象的雷达图

    R语言使用ggradar包可视化基本雷达图(radar chart.蜘蛛图spider plot).可视化单个数据对象的雷达图 目录

  3. R语言使用ggradar包可视化基本雷达图(radar chart、蜘蛛图spider plot)、可视化单个数据对象的雷达图、自定义雷达图的线条类型、线条宽度、数据点大小、色彩等

    R语言使用ggradar包可视化基本雷达图(radar chart.蜘蛛图spider plot).可视化单个数据对象的雷达图.自定义雷达图的线条类型.线条宽度.数据点大小.色彩等(Customize ...

  4. ER图,数据建模与数据字典

    需求分析是做项目中的极为重要的一环,而作为整个项目中的'血液'--数据,更是重中之重.viso,workbench,phpmyadmin等软件可以帮我们更好的处理数据分析问题. ER图  E-R方法是 ...

  5. 哈工大大数据实验_【新闻动态】南京大学PASA大数据实验室在KDD Cup 2020 AutoGraph自动化图数据建模国际挑战赛中荣获第二名...

    近期,在素有"数据世界杯"之称的KDD Cup 2020数据挖掘国际大赛AutoML自动化机器学习赛道(AutoGraph自动化图数据建模)中,南京大学PASA大数据实验室代表队P ...

  6. R 数据可视化 02 | 火山图

    R 数据可视化 02 | 火山图 文章目录 R 数据可视化 02 | 火山图 一. 示例数据准备 二. 环境需求 三. 绘制火山图 1. 火山图 2. 标记基因的火山图 四. 保存为图片 五. 详细参 ...

  7. 数据建模基础知识——实体关系图

    数据建模是设计数据库的重要组成部分.如果要获得最佳结果,请确保利用可用的数据模型.请继续阅读以了解更多信息. 每个关系数据库都有明确定义的对象以及这些对象之间的关系.它们共同构成了数据模型. 本文介绍 ...

  8. R语言使用fmsb包可视化基本雷达图(radar chart、蜘蛛图spider plot)、数据预处理(计算每个变量的最大值和最小值、并合并到原数据集)、可视化单个数据对象的雷达图

    R语言使用fmsb包可视化基本雷达图(radar chart.蜘蛛图spider plot).数据预处理(计算每个变量的最大值和最小值.并合并到原数据集).可视化单个数据对象的雷达图 目录

  9. R语言 零基础入门教程第11章 Rattle可视化数据挖掘工具(1)Rattle简介及安装 功能预览 数据导入 数据探索 数据建模 模型评估 Rattle实例

    关注公众号凡花花的小窝,收获更多的考研计算机专业编程相关的资料 本章内容 Rattle简介及安装 功能预览 数据导入 数据探索 数据建模 模型评估 Rattle实例 本章目标 了解Rattle的安装及 ...

最新文章

  1. javascript去除首尾空白字符
  2. java 导入包报错_Intellij IDEA 导入个推jar包 报错java.lang.NoClassDefFoundError
  3. 15套漂亮的 PSD 格式的图标,不一样的视觉效果
  4. 21、HTML <select>标签(下拉列表)
  5. LiveMigration之四配置高可用虚拟机
  6. (原創) 我有牙周病了 (日記)
  7. 专访|从程序员到架构师:交流和分享最能让技术人进步
  8. Java Web学习总结(27)——JavaEE中Web服务器、Web容器、Application服务器区别及联系
  9. Linux 进程虚拟地址空间布局
  10. 自建CA生成证书详解
  11. [渝粤教育] 西南科技大学 土木工程施工 在线考试复习资料(2)
  12. 【手写数字识别】基于matlab GUI BP神经网络手写数字识别系统【含Matlab源码 1639期】
  13. SQLServer------基本操作
  14. oracle触发器实例
  15. 如何使用Steam在线播放游戏
  16. 世界海洋日 | TcaplusDB号召你一同保护海洋生物多样性
  17. 【小菜虫的学习笔记--n5x刷机root】
  18. 大数据与人工智能人脸识别
  19. Java操作Excel三种方式POI、Hutool、EasyExcel
  20. 实验07 PHP互动网页

热门文章

  1. mac下忘了密码,如何开机?
  2. DirectX 修复工具增强版
  3. 申请与认证IB课程流程手册
  4. 大数据与企业的数据化运营
  5. 【RxJava】使用
  6. 用多种方案设计1位全减器电路
  7. c语言中用for循环解决鸡兔同笼问题
  8. 第三方软件测试机构如何对软件进行安全性测试?
  9. linux 设置mysql端口转发_linux使用socat进行端口转发,支持tcp/udp数据转发
  10. 史上最详细项目管理流程出炉!33页PPT讲透项目管理(实用)