数据库设计与 ER 模型 - 数据库系统原理
数据库系统生存周期
数据库应用系统的开发是一项软件工程,一般具有信息的采集、组织、加工、抽取、综合、传播等功能,但又有自己的特点,所以称为 数据库工程。
数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个周期,称为 数据库系统生存期。
数据库系统生存期一般可划分成下面七个阶段:
(1)规划:是数据库系统生存周期的第一步。在规划阶段需要做的工作是:通过了解用户的实际需求,明确该系统需要实现的目标和任务,确定数据库系统的总目标。
规划阶段需要做的工作有:
a. 系统的调查。
b. 可行性分析。
c. 确定数据库系统的总目标,并对应用单位的工作流程进行优化和制定项目开发计划。
(2)需求分析:准确了解、分析用户需求。
需求分析阶段需要做的工作有:
a. 分析用户活动,产生业务流程图。
b. 确定系统范围,产生系统关联图。
c. 分析用户活动涉及的数据,产生数据流图。
d. 分析系统数据,产生数据字典。
(3)概念设计:概念结构设计是数据库设计最重要的阶段,通过对用户需求进行综合,归纳和抽象,形成一个独立于具体 DBMS 的概念模型。
概念设计的主要步骤分三步完成:
a. 进行数据抽象,设计局部概念模型。
b. 将局部概念模型综合成全局概念模型。
c. 评审。
(4)逻辑设计:将概念结构设计转换为某个 DBMS 支持的数据模型。
(5)物理设计:为逻辑结构模型选择一个合适于应用的物理结构。
(6)数据库的实现:运用 DBMS 提供的数据库语言及宿主语言,根据逻辑设计和物理设计的结果建立数据库,开发应用程序,并试运行。
(7)数据库运行和维护:在数据库系统运行过程中,搜集系统运行的数据来评价系统性能,进一步对系统进行调整和修改。
ER 模型的基本概念
- ER 模型
ER 模型是人们认识客观世界的一种方法、工具。ER 模型的基本元素是实体、联系和属性。ER 模型就是利用实体及其之间的联系来描述事物,一个联系可能涉及多个实体,它所涉及的实体集个数称为该联系的元数,ER 模型中用联系类型的约束来限制参与联系的实体的数目。
ER 模型的设计过程基本上是两大步:
- 先设计实体类型。(此时不要涉及“联系”)
- 再设计联系类型。(考虑实体间的联系)
具体设计时,有时“实体”与“联系”两者之间的界限是模糊的。数据库设计者的任务就是要把现实世界中的数据以及数据间的联系抽象出来,用“实体”与“联系”来表示。
- 采用 ER 模型的数据库概念设计
采用 ER 模型进行数据库概念设计分为三步进行:
(1)设计局部 ER 模型。
a. 确定局部结构范围。
b. 定义实体。
c. 定义联系。
b. 属性分配。
(2)设计全局 ER 模型。
a. 确定公共实体类型。
b. 局部 ER 模型的合并。
c. 消除冲突。
(3)全局 ER 模型的优化。
a. 合并实体类型。
b. 消除冗余属性。
c. 消除冗余联系。
关系模型的基本概念
用二维表格结构表示实体集,用关键码表示实体间联系的数据模型,称为 关系模型。
- 关系模型的基本术语
基本术语有:字段(属性)、字段值(属性值)、记录(元组)、二维表格(元组集合、关系或实例),括号中的表述为关系模型中的术语。
关系中属性的个数称为 元数,元组的个数称为 基数。
键:由一个或几个属性组成。(注意,键不一定是唯一的一个属性)
超键:在关系中能唯一标识元组的属性集。(注意,超键也是一个属性集,不一定只是一个属性)
候选键:不含有多余属性的超键。
主键:用户选作元组标识的一个候选键。
外键:与某个关系的主键相应的属性在另一个关系中出现,此时,该主键就是另一关系的外键。如有两个关系 S 和 SC,其中 S# 是关系 S 的主键,S# 也在关系 SC 中出现,此时 S# 就是关系 SC 的外键。
- 关系模型的三类完整性规则
- 实体完整性规则:要求关系中元组在组成主键的属性上不能有空值。
- 参照完整性规则:要求不能引用不存在的实体。
- 用户定义完整性规则:由具体应用环境决定,系统提供定义和检验这类完整性的机制。
超键 & 候选键 & 主键 的区别
如果以一个小范围的关系模型(身份证、姓名、年龄、性别)来举例,假设姓名不会重复。
超键:身份证;姓名;(姓名,性别);(姓名,性别,年龄)。超键可以唯一标识元组,但不一定是最小唯一。
候选键:身份证;姓名。候选键可以唯一标识元组,且不含任何多余属性,候选键一定是超键。
主键:身份证;姓名。根据使用习惯或设计要求,用户选中标识元组的这个候选键就是主键。
ER 模型到关系模型的转换规则
关系数据库的逻辑设计的结果是一组关系模式的定义,由于关系模型的固有优点,逻辑设计把概念设计的结果(即全局 ER 模型)转换成初始关系模式集,使设计过程形式化的进行,并且结果可以验证。
ER 模型的主要成分是实体类型和联系类型,转换算法就是如何把实体类型、联系类型转换成关系模式。
对于实体类型,可以这样转换:将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
对于联系类型,要根据不同的情况做不同的处理。转换的规则是:
- 如果实体间的联系是一对一的联系,将一个关系的键作为外键放在另一个关系中。
- 如果实体间的联系是一对多的联系,则将“一”端的关系的键作为外键放在“多”端的关系中。
- 如果实体间的联系是多对多的联系,则将联系类型也单独转换成一个关系,该关系称为交叉关系。这个关系的键由与联系相关联的实体的键组合而成,联系的属性成为这个交叉关系的属性。
ER 模型实例分析
假设要建立一个企业数据库,该企业有多个下属单位,每一单位有多个职工,一个职工仅隶属于一个单位,且一个职工仅在一个工程中工作,但一个工程中有很多职工参加工作,有多个供应商为各个工程供应不同设备。(这种语句就是典型的三元联系类型 M:N:P)
单位的属性有:单位名、电话。
职工的属性有:职工号、姓名、性别。
设备的属性有:设备号、设备名、产地。
供应商属性有:姓名、电话。
工程的属性有:工程名、地点。
请完成如下处理:
- 设计满足上述要求的 ER 图。
- 将该 ER 图转换为等价的关系模式。
- 根据你的理解,用下划线标明每个关系中的主键。
(1)满足要求的 ER 图如下(实体属性用椭圆形画出,这里略…):
(2)转换后的关系模式和主键如下(红色表示有下划线的主键,紫色表示有波浪线的外键,破折号表示联合住建,第6小项就是联合主键又分别是其余3个关系的外键):
- 单位(单位名、电话)
- 职工(职工号、姓名、性别、单位名、工程名)
- 工程(工程名、地点)
- 供应商(姓名、电话)
- 设备(设备号、设备名、产地)
- 供应关系(工程名-设备号-供应商姓名、数量) 注:此处的“数量”属性是根据题意推测出来的。
增强的 ER 模型
- 弱实体与强实体
一个实体对于另一个实体(称为强实体)具有很强的依赖关系,而且该实体主键的一部分或全部从其强实体中获得。则称该实体为弱实体。用双线矩形框表示。
- 子类和超类的定义
当较低层次上实体类型表达了与之联系的较高层上的实体类型的特殊情况时,就称较高层上实体类型为超类型,较低层上实体类型为子类型。子类继承超类的全部属性。
TEST
1. 为什么关系中的元组没有先后顺序?且不允许有重复元组?
(1)关系就是元组的集合,而集合不考虑元组的先后顺序问题。(2)关系中每个元组一定会有属性标识符用来区分每一个元组,属性值是不同的,所以不会出现完全一样的元组,从集合论的观点来看,也不会出现重复元素。
数据库设计与 ER 模型 - 数据库系统原理的更多相关文章
- 数据库设计和ER模型-------之ER模型的基本概念(第二章)
ER模型(实体联系模型)的基本元素 实体:是一个数据对象,在ER模型中,实体用方框表示,方框内注明实体的名称 联系:表示一个或多个实体之间的关联关系,联系用菱形框表示,并用线段将其与相关的实体联系起来 ...
- 数据库设计和ER模型-------之数据库系统生存期(第二章)
数据库设计 概念:开发人员利用开发环境表达用户要求.设计构造最优的数据模型,然后据此建立数据库以及其应用系统,这个过程称为数据库设计 数据库生存期 1968年首次提出“软件工程”的概念 概念:我们把数 ...
- MySQL数据分析-(5)数据库设计之ER模型
大家好,我是jacky,很高兴跟大家分享本课时的内容,从本节课开始,就开始了我们第二章的学习,第一章我们抛出了若干问题,从第二章开始往后,都是解决问题的一个过程: 第一章的案例中,我们拿手机销售公司举 ...
- 数据库设计和ER模型-------之关系模型的基本概念(第二章)
关系模型的基本术语 定义:用二维表格来表示实体集,用关键码表示实体之间联系的数据模型称为关系模型 有时也习惯称呼关系为表或表格,元组为行(Row),属性为列.关系中属性个数称为“元数”,元组个数称为“ ...
- 数据库原理 第七章 数据库设计和ER模型
第七章讲述一个E-R设计如何转换成一个关系模式的集合以及如何在该设计中找到某些约束. 1.概念设计定义了数据库中表示的实体.实体的属性.实体之间的联系,以及实体和联系上的约束 在设计一个数据库模型的时 ...
- 第六章 数据库设计之ER模型
在ER图中实体用方框表示 实体其实就相当于一个二维表,实体实例就相当于二维表中的一行 属性在二维表中用椭圆表示,属性就是描述实体特征的数据项 概念:键(也被成为候选键):1,属性集合K上的行唯一 ...
- 数据库系统(四)---关系型数据库设计及E-R图
1.关系型数据库: 关系型数据库是一类采用关系模型作为逻辑数据模型的数据库系统,遵从数据库设计的基本步骤,包括:需求分析.概念结构设计.逻辑结构设计.物理结构设计.数据库实施.数据库的运行和维护等阶段 ...
- SQL Server数据库学习笔记-E-R模型
实体(Entities)联系(Relationships)模型简称E-R模型也称E-R方法,是由P.P.Chen于1976年首先提出的.还有一个关键元素Attributes-属性,它提供不受任何数据库 ...
- Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx
Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx 1.1. 数据库的类型,网状,层次,树形数据库,kv数据库.oodb2 1.2. Er模型2 1.3. Sql2 ...
随机推荐
- xml配置文件的读写
using System.Xml; //----------------------------------------------读出XML文件中的节点值 XmlDocument xmlDoc = ...
- 微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
Senparc.Weixin.MP SDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享. ...
- C++ Daily 《6》---- 类静态对象与函数静态对象
C++ 的一个哲学基础是,你不应该为你使用的东西付出代价. class 拥有一个 static 成员,即使从未被用到,它也会被构造和析构: 而 函数拥有一个 static 成员, 如果这个函数从未被调 ...
- soj1001算法分析
题目简单描述: 给定一个长数串,输出可能的字母串解个数.(A对应1,Z对应26) 样例输入:25114 样例输出:6 样例解释:可能的字母串解:YJD.YAAD.YAN.BEJD.BEAAD.BEAN ...
- word常用操作
[Word2003文档添加个行号] 参考:http://jingyan.baidu.com/article/e9fb46e1ca1d3c7520f7666f.html#333225-tsina-1-5 ...
- SQlServer第一天
SQLserver是个什么东西?相当于一是个货仓,在计算机领域的货仓,学名:数据库. 数据库是个什么东西呢?是指长期存储在计算机内的.有组织.可共享的数据结合.由此可知数据库的三个特点:永久存储.有组 ...
- xcode 第三方插件遇到问题
xcode 第三方安装的路径 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 
- LINQ To SQL
议程 1.LINQ To SQL概述 2.LINQ To SQL对象模型 3.LINQ To SQL查询 用到的数据库 SQL Server 2005,数据库名为Test. 两张表,分别为Studen ...
- css3 视距-perspective
视距-用来设置用户与元素3d空间Z平面之间的距离. 实例1: HTML: <div class="perspective"> <h3&g ...
- 多线程间通信之AutoResetEvent和ManualResetEvent的原理分析
AutoResetEvent 允许线程通过发信号互相通信. 通常,当线程需要独占访问资源时使用该类. 线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号. 如果 AutoRe ...