数据库的设计(E-R图,数据库模型图,三大范式)

一.数据库设计的概念

数据库设计是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程.

二.数据库设计的重要性

如果一个数据库没有进行一个良好的设计,那么这个数据库完成之后他的缺点是:

1.效率会很低

2更新和检索数据时会出现很多问题,

反之,一个数据库被尽心策划了一番,具有良好的设计,那他的优点是:

1.效率会很高.

2.便于进一步扩展.

3.使得应用程序的开发变得更容易.

三.设计数据库的步骤

1.需求分析阶段:分析客户的业务和数据处理需求.

2.概要设计阶段:他主要就是绘制数据库的E-R图.

3.详细设计阶段:应用数据库的三大范式进行审核数据库的结构.

总结:在进行数据库的系统分析时,都以下列4点位参考的基本步骤.

01.收集信息.

02.标识实体.

03.标识每个实体需要储存的详细信息.

04.标识实体之间的关系.

四.学会绘制E-R图

绘制E-R图首先要了解什么是实体,什么是属性,什么是联系.

1.首先实体是指现实世界中具有区分其他事物的特征或属性与其他实体有联系的实体,针对于数据库中的表而言实体是指表中一行一行特定数据,但我们在开发中,也常常把整个表称为一个实体.

2.属性可以理解为实体的特征,针对于数据库中的表而言实体是指表中的列.

3.联系是两个或多个实体之间的关联关系.

4.实体关系图:

例:酒店管理系统E-R图:

五.映射基数

1.一对一:X中的一个实体最对与Y中的一个实体关联,并且Y中的一个实体最多与X中的一个实体关联.

Eg:一个人只有一张身份证.

2.一对多:X中的一个实体可以与Y中的任意数量的实体关联;Y中的一个实体最多与X中的一个实体关联.

Eg:一个班级有多名学生.

3.多对一:X中的一个实体最多与Y中的一个实体关联;Y中的一个实体可以与X中的任意数量的实体关联.

Eg:客人与客房之间的关系,一个客人只能住一间客房.

4.多对多:X中的一个实体可以与Y中的任意数量的实体关联,反之亦然.

Eg:学生和课程之间的关系,一个学生可以有多门课程,一门课程可以对应多名学生.

六.绘制数据库模型图

以酒店管理系统为例:

七.数据库规范化

如果数据库没有进行相应的规范设计,虽然在查询数据库可能会比较容易,但有时会造成一些问题,主要的问题如下:

1.信息重复(会造成储存空间的浪费及一些其他问题).

2.更新异常(冗余信息不仅浪费空间,还会增加更新的难度).

3.插入异常

4.删除异常(在某些情况下,当删除一行时,可能会丢失有用的信息).

八.三大范式

1.第一范式:

目标是确保每列的原子性.如果每列都是不可再分的最小数据单元,则满足第一范式.

2.第二范式:

第二范式在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关,如果一个关系满足第一范式,并且除了主键以外的其他列都依赖与该主键.则满足第二范式.

3.第三范式:

第三范式在第二范式的基础上更进一层,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关.如果一个关系满足第二范式,并且除了主键以外的其他列都这能依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式.

九.规范性和性能的关系

为了满足三大范式,我们的数据操作性能会受到相应的影响,所以,在实际的数据库设计中,既要考虑三大范式,避免数据的冗余和各种数据操作异常;有要考虑到数据访问性能,有时,为了减少表间连接,提高数据库的访问性能,允许适当的数据冗余列,这可能是最合适的数据库设计方案.

时间: 2024-11-08 09:41:24

数据库的设计(E-R图,数据库模型图,三大范式)的相关文章

6.7-数据库设计,三大范式

一.数据库设计 软件开发: 需求分析 概要设计 详细设计 代码编写 测试 上线部署 ER图: 画ER图 : visio 亿图 二.三大范式 第一范式: 确保每列的原子性 保证每列都是不可再分的最小数据单元 第二范式: 要求每张表只描述一个事情 第三范式 如果一个关系满足2NF, 并且除了主键以外的其他列都不传递依赖于主键列, 则满足第三范式(3NF) 三.JDBC java连接数据库技术 DriverManager :依据数据库的不同,管理JDBC驱动 Connection :负责连接数据库并担

SQLServer数据库基础--E-R图、三大范式、数据库设计步骤

本书目标: 了解数据库的基本概念和范式 熟练使用SMSS.T-SQL实现建库.建表.加约束 掌握T-SQL编程,实现功能强大的查询 掌握创建索引.视图,快速访问数据库 熟悉掌握创建存储过程,实现复杂的业务规则 理解触发器的原理,掌握高级的约束 了解SQLServler安全管理 了解数据库的备份与恢复 本章目标: 了解数据库的基本概念 了解数据库设计的步骤 掌握绘制数据库E-R图 理解数据库三大范式 什么是数据库系统? 数据库系统(DBS)是一个以数据库为核心的完整的运行实体, 数据库的组成: 系

Visio 2010对MySQL数据库反向工程生成ER数据库模型图

Visio 2010对MySQL数据库反向工程生成ER数据库模型图 1.首先需要从Mysql下载用于数据库链接的驱动ODBC 下载地址是:http://dev.mysql.com/downloads/connector/odbc/ 根据相应的版本下载即可,下载完后直接在本地安装 2.启动Visio2010(其他版本自学) 新建文档的时候在模板类别里面选"软件和数据库",如下图 然后会跳到"选择模板"里面,直接选"数据库模型图",如下图 3.在上面

office viso 2007根据现有数据库建立数据库模型图

当数据库表很多的时候,表之间的关系就变得很复杂.光凭记忆很难记住,尤其是数据库键值没有外键约束时. 所以有个数据库模型图各个表之间的关系就显而易见了. 打开 office viso 2007 文件>新建>软件和数据库>数据库模型图 数据库>反向工程>设置(合适的数据库类型) 新建>选择数据源(用户数据源)>选择你想安装数据源的驱动程序>下一步>下一步>命名数据库名称,添加描述,添加数据库名称>选择登录方式,输入账号密码>完成 下一步&

怎么会Sql serverW数据库模型图转化成ord于--您还可以查看属性信息字段

1. 于Sql server数据库,创建数据库模型图 -- Database Diagrams watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamN4NTA4Mzc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 2. 控制面板--管理工具--ODBC数据源链接--创建一个Sql server的数据源链接 3. 打开Visio工具

用R作Polar图等

用R作如下的各国Gini系数的Polar barChart: 作上图的R代码为: library(ggplot2) GiniData<- read.csv('IncomeInequality.csv',head=T) Gini<- ggplot(GiniData, aes(x=paste(GiniIndex,Country),y=GiniIndex,fill=GiniIndex%/%10)) Gini<- Gini +geom_bar(stat="identity",

数据库优化理论整理之思维导图

经过整整一个月的整理,最新版的数据库优化理论梳理之思维导图版本已经出炉.这里先放出部分截图给大家欣赏.

Java语言编程学习之Lambda表达式设计和架构的原则[图]

Java语言编程学习之Lambda表达式设计和架构的原则[图]:大家都知道,Lambda表达式是对Java语言的一点简单改进,在JDK标准类库中,运行它的方式各种各样.但是大多数的Java代码都不是由开发JDK的程序猿写的,而是像我们这样的普通程序猿.很多人都会碰到过这样的情况:你实现了一个新功能或修复了一个缺陷,并且对自己的修改很满意.但其他人看了你的代码后--也许发生在代码审查环节,完全不买账!对于什么是好代码,什么是坏代码,存在分歧很正常!设计模式的改变设计模式是人们熟悉的另一种设计思想,

基于单片机的光控路灯设计含程序和仿真图

基于单片机的光控路灯设计含程序和仿真图本设计是以光敏电阻对于外界光线强弱的感应能力为基础进行的路灯自动化控制系统设计. 当光线强度弱到一定程度的时候, 路灯就会自动灭掉: 当光线强到一定程度的时候, 路灯就会自动开启. 本设计以当外界光线强度弱到使光敏电阻阻值大于等于 200 欧的时候, LED 灯会自动开启:小于 200 欧的时候,自动关闭.完整的资料在闯客网技术论坛可以免费下载,资料群:613377058下载地址:https://bbs.usoftchina.com/thread-21051