数据库设计规范、E-R图、模型图
(1)数据库设计的优劣:
糟糕的数据库设计:
①数据冗余冗余、存储空间浪费。
②数据更新和插入异常。
③程序性能差。良好的数据库设计
①节省数据的存储空间。
②能够保证数据的完整新。
③方便进行数据应用系统的开发。
(2)软件项目开发周期中的数据库设计:
一个完整的项目 开发需要经过:
1.需求分析:分析客户的业务和数据处理需求。
2.概要设计:设计数据库的E-R模型图,确认需求信息的正确和完整。
详细设计:应用三大范式审核数据库结构,将E-R模型图转换为数据库模型图。
代码编写:物理实现数据库,编码实现应用。
运行设计后打包发行。
数据库设计步骤:
- 收集信息
- 标识实体(Entity)
- 标识每个实体的属性(Attribute)
- 标识实体之间的关系(Relationship)
(3)E-R图(Entity Relationship Diagram)
E-R图:相当于数据库图纸,用于和项目其他成员和客户之间沟通,讨论数据库的设计是否能满足客户的需求。
概念:

除了这三个还有直线,表示联系集的映射基数:

酒店管理系统的数据库(E-R图):

实体-关系图包含:实体、属性、联系。
(4)数据库模型图
E-R图转换为关系模式的步骤:
- 1.把每个实体都转化为关系模式R(U)形式
- 2.建立实体间联系的转换(1-1,1-n,n-n)
酒店管理系统数据库的关系模式:

该系统中实体间联系是1-n(建立联系是把联系数量为1的实体的主键放在联系数量为n的实体关系模式中。):

绘制数据库模型图的步骤:
- 新建数据库模型图
- 添加实体
- 添加数据列及相应的属性
- 添加实体之间的映射关系
原文地址:https://blog.csdn.net/weixin_43691058/article/details/93783658
数据库设计规范、E-R图、模型图的更多相关文章
- 如何将Sql server数据库中的模型图转化到Word中--并能够查看字段的属性信息
1. 在Sql server数据库中创建数据库的模型图 -- Database Diagrams 2. 控制面板--管理工具--ODBC数据源链接--创建一个Sql server的数据源链接 3. 打 ...
- 机器学习&数据挖掘笔记_21(PGM练习五:图模型的近似推理)
前言: 这次练习完成的是图模型的近似推理,参考的内容是coursera课程:Probabilistic Graphical Models . 上次实验PGM练习四:图模型的精确推理 中介绍的是图模型的 ...
- JanusGraph : 图和图数据库的简介
JanusGraph:图数据库系统简介 图(graph)是<数据结构>课中第一次接触到的一个概念,它是一种用来描述现实世界中个体和个体之间网络关系的数据结构. 为了在计算机中存储图,< ...
- UML的九种模型图
本文转自UML 的九种模型图,仅供学习交流! 一.作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分. UML语义:描述基于UML的精确元模型定义. UML表示法:定义UML符号的表示 ...
- Neo4j属性图模型简单介绍
本文主要是对Neo4j属性图模型简单的介绍. Neo4j是什么? Neo4j是一款是由java语言实现的图数据库,图形数据库将数据以图的数据结构进行存储和管理,并且能够以高度可问的方式优雅地表示任何种 ...
- UML动态模型图简单介绍
UML动态模型图描述了系统动态行为的各个方面,包括用例图.序列图.协作图.活动图和状态图.下面就每种图做一个简单介绍: 用例图 用例图描述系统外部的执行者与系统提供的用例之间的某种联系.所谓用例是指对 ...
- 机器学习&数据挖掘笔记_20(PGM练习四:图模型的精确推理)
前言: 这次实验完成的是图模型的精确推理.exact inference分为2种,求边缘概率和求MAP,分别对应sum-product和max-sum算法.这次实验涉及到的知识点很多,不仅需要熟悉图模 ...
- NLP —— 图模型(三)pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)模型
LSA(Latent semantic analysis,隐性语义分析).pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)和 LDA(Late ...
- NLP —— 图模型(二)条件随机场(Conditional random field,CRF)
本文简单整理了以下内容: (一)马尔可夫随机场(Markov random field,无向图模型)简单回顾 (二)条件随机场(Conditional random field,CRF) 这篇写的非常 ...
随机推荐
- Flask 编写一个授权登录验证的模块(一)
看一个关于授权登陆的简易模块,觉得挺不错,学习学习. 1.登录的逻辑:如果用户名和密码正确,就返回 token .2.生成 token 的逻辑,根据用户名,随机数,当前时间 + 2 小时3.然后放在 ...
- 怎样在VMware虚拟机中使用安装并设置Ubuntu系统
1 2 3 4 5 6 7 分步阅读 Ubuntu 系统是一款优秀的.基于GNU/Linux 的平台的桌面系统. 当然,目前为止很多应用程序还完全不能允许运行在 Ubuntu 系统上,而且 Ubunt ...
- ORACLE EXECUTE IMMEDIATE 小结
EXECUTE IMMEDIATE 代替了以前Oracle8i中DBMS_SQL package包.它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,E ...
- 慎用array_filter函数
array_filter (PHP 4 >= 4.0.6, PHP 5, PHP 7) array_filter - 用回调函数过滤数组中的单元 说明 array array_filter ( ...
- start开启服务的生命周期
* 完整生命周期:onCreate()-->onStartCommand()-->onDestroy() * 开启服务:onCreate()-->onStartCommand() * ...
- linux安装IDEA 2017
下载 IDEA 2017 链接:http://pan.baidu.com/s/1skTKdFR 密码:yug3 解压 下载的文件 tar zxvf idea-IU-172.4155.36.tar ...
- java.lang.IllegalStateException: No primary or default constructor found for class java.time.LocalDate
转载自:https://blog.csdn.net/Coder_Arley/article/details/81910705 springboot中报错如下: springmvc也可以使用类似处理方法 ...
- jmeter操作—从redis中获取token
嗨,大家好,我是叶子 背景:某APP项目中需要进行各接口的性能测试,比如:测试商品的搜索功能.店铺查询功能等接口,测试时需要保持登录状态,所以需要获取到登录账号的token,方便之后的接口测试. 准备 ...
- 当微信小程序遇到AR(四)
当微信小程序遇到AR,会擦出怎么样的火花?期待与激动...... 通过该教程,可以从基础开始打造一个微信小程序的AR框架,所有代码开源,提供大家学习. 本课程需要一定的基础:微信开发者工具,JavaS ...
- 修改阿里源为Ubuntu 18.04默认的源
步骤如下: Step1:备份/etc/apt/sources.list sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak Step2:在/ ...