数据库设计ER图
数据库设计及ER图

数据库设计及ER图1.数据库设计流程数据库作为数据的一个容器,不但对程序的performance有很大的影响,而且对应用程序的扩展有非常大的影响.所以对应用程序来说,一个具有良好设计的数据库是非常重要的.那么如何才能设计出性能好,又支持扩展的数据库呢?这是我们大家都要去探索的问题.现在有很多版本的数据库设计的流程.然而这也只是目前阶段能设计出一个比较好的数据库的一个途径.更好更优的数据库设计流程是我们追求的目标.但是现在,我们先来了解下目前阶段标准的数据库设计流程.以助于我们在开发应用程序的时候能用到.先来看下一张数据设计流程图上图是数据库设计一个比较标准的流程图.我们就针对这个流程来讲解数据库设计各个阶段.需求分析阶段1我们在需求阶段注意两点:1:考虑到可能的扩充和修改,是设计能易于修改和扩展2:强调客户参与:目的有几个:更好的理解客户的需求,了解客户的对程序安全性和完整性的要求,以及用户的处理需求.概念结构设计阶段在这个阶段我们要设计出能真实反应客观事物的模型,同时让设计的模型能易于理解,易于扩展,能方便的向其他数据库转移.逻辑结构设计1:作为对象信息的属性,必须具有原子性的.也就是.我们在画ER图的时候,对象间的关系必须是实体之间的关系,不能是属性和实体的关系.2:确定数据之间的依赖关系(要极小化出来各个关系,消除冗余),同时要按照数据依赖理论对关系模型进行检查.数据库物理设计阶段数据的存储结构以及配置数据库实施阶段定义数据库的结构,数据的装载,以及数据库的试运行.数据库运行和维护阶段要注意数据的转储和恢复,数据库的安全性和完整性控制.数据库的性能的监督,分析和改造以及数据库的重构2.数据库设计范式第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。
例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话和一个家里电话号码)规范成为1NF有三种方法:一是重复存储职工号和姓名。
数据流程图DFD与ER图的绘制

在绘制数据流程图和ER图时,需要遵循一定的原则,如保持图形的简洁明了、使用标准 的符号和术语、确保图形的一致性和准确性等。这些原则有助于提高图形的可读性和易用 性,使其在实际应用中发挥更大的作用。
展望
要点一
技术发展
随着云计算、大数据等技术的快速发 展,数据流程图和ER图的绘制将面临 新的挑战和机遇。例如,如何利用新 技术提高绘制的效率和质量,如何更 好地适应大数据环境下的数据处理和 分析需求等。
02 DFD图的绘制
DFD图的定义与作用
定义
数据流程图(Data Flow Diagram, 简称DFD)是一种用于描述系统数 据流动和逻辑处理的图形表示方法。
作用
帮助分析和理解系统的数据流程 ,明确数据在系统中的流动和处 理过程,为后续的系统设计、开 发和维护提供基础。
DFD图的绘制步骤
确定系统的范围和边界
1
假设有一个学校管理系统,其中有学生、课程和 选课三个实体。
2
学生实体有属性:学号、姓名、性别;课程实体 有属性:课程号、课程名、学分;选课实体表示 学生和课程之间的关系。
3
根据这些信息,可以绘制ER图,展示学生、课程 和选课之间的关系。
04 DFD图与ER图的比较与 关联
DFD图与ER图的比较
实体之间的关系。
DFD图与ER图的关联
数据流与实体关系
数据存储与实体属性
数据处理与实体关系
DFD图与ER图的转换
在某些情况下,数据流可以与 实体之间的关系相对应。例如 ,一个数据流可以表示一个实 体从一个处理过程传递到另一 个处理过程。
数据存储可以表示实体的属性 或状态,例如,一个数据存储 可以表示一个实体的当前状态 或历史记录。
数据库设计ER图

数据抽象(续)
聚集
第20页/共72页
数据抽象(续) ▪ 复杂的聚集,某一类型的成分仍是一个聚集
更复杂的聚集
第21页/共72页
数据抽象(续)
3. 概括(Generalization) • 定义类型之间的一种子集联系 • 抽象了类型之间的“is subset of”的语义 • 继承性
分E-R图
合并
初步E-R图
可能存在冗余的数据 和冗余的实体间联系
消除不必要的冗余
基本E-R图
第53页/共72页
消除不必要的冗余,设计基本E-R图(续)
• 冗余 • 消除冗余的方法
第54页/共72页
1.冗余
• 冗余的数据是指可由基本数据导出的数据 冗余的联系是指可由其他联系导出的联系
• 冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难 • 消除不必要的冗余后的初步E-R图称为基本E-R图
该厂劳动人事管理分E-R图
图7.29 劳动人事管理的分E-R图
第66页/共72页
消除冗余,设计生成基本E-R图实例(续)
系统的基本E-R(图7.30)
某工厂管第理6信7页息/共系7统2页的基本E-R图
消除冗余,设计生成基本E-R图实例(续)
集成过程,解决了以下问题: • 异名同义,项目和产品含义相同 • 库存管理中职工与仓库的工作关系已包含在劳动人事管理的部门与职工之
联系 • 整体概念结构能满足需要分析阶段所确定的所有要求
• 概念结构设计是整个数据库设计的关键
第3页/共72页
概念结构(续)
现实世界 信息世界 机器世界
需求分析 概念结构设计
第4页/共72页
概念结构(续)
实体关系模型(E-R图)

(3)把教师和工资间的一对一的关系反映 出来,可把教师号和月份属性放到工资关系 中。
35
最后形成的关系模式为:
36
导员,每个辅导员只管理一个班级。则辅导员和班级 之间是一对一的联系。
班级和辅导员的属性分别如下:
辅导员——工号,姓名,性别,年龄,学历 班级——班号,班级名
另外,辅导员和班级之间是一个管理联系,这种 管理用一个属性任职时间来描述,请根据描述画出能 够反映实体集之间的信息关系的E-R图。
5
6
【例2】 两个实体集之间的一对多的联系的绘制方法。 假设在某出版管理系统中,有两个实体集:出版社和 图书。出版社用来出版图书,且规定一本图书只能由 一个出版社出版,一个出版社可以出版多本图书。出 版社和图书之间是一对多的联系。
作者和图书可用以下属性来描述: 作者——编号,姓名,职称 图书——书号,书名,出版日期
另外,在“创作”联系中应能反映出该书的合同时间 和完成时间。请根据描述画出能够反映实体之间的信 息关系的E-R图。
9
10
11
1.3 同一实体集内部不同联系情况的E-R图表示法
【例4】同一实体集内部的一对多联系的绘制方法。 假设在某单位里,职工实体集中的实体可分成两类: 领导者和被领导者。领导者可以领导多个被领导者, 而被领导者只有一个顶头上司,从而实现层层负责制。 而对于一个具体职工而言,他既可能是其他职工的领 导者,又可能被别的职工领导。
①把A实体集的主关键字加入到B实体集对 应的关系中,如果联系有属性也一并加入;
②把B实体集的Байду номын сангаас关键字加入到A实体集对 应的关系中,如果联系有属性也一并加入;
③建立第三个关系,关系中包含两个实体 集的主关键字,如果联系有属性也一并加入。
数据库E R图讲解

P1
WH1
P2
WH2
P3
WH2
P4
WH3
P1
WH4
P1
WH4
P2
WH4
P3
WH4
P4
数量
100 120 180 200 150 180 200 100 140
43
如果两表之间的联系是多对多的
学号 2002004 2005004 2005004 2005006 2005006
……
课程号 1 2 3 2 3
仓库,工程项目,零件,供应商 。
仓库
工程项目
零件
供应商
24
E-R图实例:某工厂物资管理E-R图 • Step2 确定联系类型。
项目和零件之间是M:N联系 零件 和 供应商之间也是M:N联系 仓库与零件关系是一对多关系1:N
25
E-R图实例:某工厂物资管理E-R图 • Step3 把实体类型和联系类型组合成ER图。
系主任
– 实例
实体型A
1
1
班级与班长之间的联系:
联系名
领导
系与系主任之间的联系;
1 实体型B
1
部门与部门经理间的联系;
系
9
两个实体型间的联系 (续)
• 一对多联系
– 如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)
与之联系,反之,对于实体集B中的每一个实体,实体集A中至多
只有一个实体与之联系,则称实体集A与实体集B有一对多联系记
17
解:描述主任和系之间的E-R图可如下图:
编号
姓名
年龄
学历
主任
1
管理
1
系
任职时间
数据库ER图设计

2. 概念结构设计阶段
3. 逻辑结构设计阶段 4. 物理结构设计阶段
需求分析
5. 数据库实施
6. 数据库运行与维护
概念结构设计阶段
逻辑结构设计阶段
ห้องสมุดไป่ตู้
物理结构设计阶段 数据库实施
数据库运行维护
5.2
需求分析
需求分析是数据库设计的第一步。这一阶段主要是对数据库应用系统所要处理的对象进行全面 了解,了解用户需求,收集信息,提出问题及解决问题的思路。
设置 n
教研室
1
属于
n
n
属于
n
1
学生
mn
选 n课
1 课程
1
n
教师
m n
课程编 号
课程名
学时
学分
学生信息管理系统 (E-R概念模型)
教研室编 号
教研室名 称
系编号 教师编
号 姓名
性别 教研室编
号
5.4
逻辑结构设计
逻辑结构设计:将已设计好的概念模型(E-R模型)转换为与DBMS支持的数据模型相符的逻 辑结构。
(3) 码:在实体的属性当中能够唯一的标识一个实体的属性称为这个实体的关键字,也称码 或键。
如:学生的学号。而学生的姓名可能有重名,不能作为学生实体的关键字(码)。
(4) 实体集:具有相同属性的同一类事物,是一个实体的集合。 如:所有的学生信息记录、所有的课程信息记录等。
(5) 实体型:用实体名和属性名称集来描述同类实体。 如:学生(学号,姓名,年龄,性别)就是一个实体型。所有学生都可用这一实体型进行描 述。
学院编号
学院名称
院长姓名 学院
学院电话
学院地址
② 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
数据库设计ER图(第三范式规范)

商品(商品编号,商品名称,商品类型,库存数量,库存位置)
出库单(出库单编号,出库日期,开票人,送货员编号,顾客编号,送货地址)
送货员(送货员编号,姓名,联系电话)
出库(商品编号,出库单编号,出库数量,销售价格)
三
图书(图书标准书号,图书名称,价格,出版日期,出版社名称)
作者(作者姓名,编码,联系电话,E-mail)
一
商品信息(商品编号,商品名称,商品类型,单位,参考价)
出库单(出库单编号,经手人,送货人,送货地址,订货分店,出库日期和日期)
入库单(入库单编号,入库日期和时间,供应商,经手人)
库存表(库号,库存数量,库内位置)
出库(出库单编号,商品编号,出库价,数量)
入库(入库单编号,商品编号,单价,数量)
库存(商品编号,库号)
图书销售(销售流水号)
编写(图书标准书号,作者姓名)
销售(销售流水号,图书标准书号,销售日期,销售数量)
四
店铺(店铺代码,店铺名称,店铺经理,开店日期)码,销售日期,销售数量,销售单价)
ER图和关系数据库设计

转换规则3
• 规则3:如果一个联系集的两侧标明的基数比是 1∶N(一对多联系),且联系无自身的属性,则 在1侧的实体集的关键字应加入到另一侧的实体转 换成的关系中,联系集本身可不必单独转换成关 系。
• 例如下图实体集CUSTOMER的关键字应加入到对 应于实体集ORDER的关系中去。经过转换后可得 关系模式为:
– 对于汇集和维护企业组织的数据有重要意义的、确定的、可以 标识的对象可以指定为实体;
– 每个实质性的确定的对象,如人员、位置、事物等可指定为实 体;
– 抽象概念如部门或通信干线等可指定为实体; – 在由唯一的术语标识的环境中的非实质性的概念,也可指定为
实体,例如信用货款备忘录中的信用度,可作为一个实体。
【示例】改进
如果把SCT分为如下三关系模式:
• 选课关系:SC(学号,课程号, 成绩) • 课程关系:C(课程号,课程名,教师姓名) • 教师关系:T(教师姓名,教师出生日期,工资)
则上述问题便都得到解决。
函数依赖(1)
• 设R(U)是属性集U上的一个关系模式,X和Y均为 U={A1,A2,…,An}的子集,r为R的任一个关系。 如果对于r中的任意两个元组u、v,只要有u[X]= v[X ],就有u[Y]=v[Y],则称X 函数决定Y或称Y 函数依赖于X,记为X →Y。其中X 称为决定因素 (Determinant)。
ER图示例
民航航班管理数据模型
首先选择实体集及相应的属性。为表示方便, 约定如下符号: • CHAR(n) 长度为n的字符串 • INT(n) n位数字的整数
实体集和属性选择如下。 • 实体集1 旅客 PASSENGERS
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章实验数据库设计
一、实验目的
1.熟悉数据库基本的概念。
2.熟悉数据模型的概念。
3.熟悉概念设计的方法和概念模型的表示方法---E-R图。
二、实验内容
1.自学visio画图(流程图里面常见的形状都可以找到);
2.根据数据库基本概念、关系模型基本要领和数据库概念设计,再根据需求确定实体、属性和联系。
3.将实体,属性和联系转化为E-R图。
三、实验步骤
1、仔细阅读课本19页“人力资源管理系统”的需求分析,之后进行概念设计,利用visio画出“人力资源管理数据库”的E-R图。
(注:课本上的E-R图(图1-19)不标准,请勿照抄)
2、一个图书管理系统有如下信息:
图书:书号,书名,作者,出版社,出版日期
读者:借书证号,姓名,院系,已借数量
出版社:出版社编号,出版社名,地址,电话
其中约定:一个人可以借多种书,一本书可以被多个人借;借书或者还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社出版;
根据以上分析结果,设计该系统数据库的E-R图(注明属性和联系类型)。
3、设有一应用,包括 3 个实体“科室(Doccol )”、“医生(doctor)”、“病人(patient)”,且有以下事实:每位医生属于且仅属于一个科室;每个科室可以聘用若干医生,对每个医生聘用时存有聘用期限和聘用日期;一个病人可以由不同的医生为其诊断,每个医生可以为若干病人诊治,每次诊断存有就诊日期。
设科室的属性包括科室代码、科室名称;医生的属性包括工号、姓名和职称;病人的属性包括病历号、姓名、年龄、工作单位。
根据以上分析结果,设计 E-R 图(注明属性和联系类型)。
四、实验结果提交
抽查部分同学,被抽查到的同学请以word文档的形式通过极域电子教室提交实验结果,期末纳入成绩。
另外请大家保存好本次实验的结果,下次实验还要用。
(以后每一次实验均要抽查部分同学提交实验结果)。