ER图/模型转换为关系模型
ER图中的主要成分是实体类型和联系类型,转换规则就是如何把实体类型、联系类型转换成关系模式。
1. 二元联系转换
规则1.1(实体类型的转换):将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
规则1.2(联系类型的转换):根据不同的情况做不同的处理。
规则1.2.1(二元联系类型的转换)①若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个的属性中加入另一个关系模式的键和联系类型的属性。
②若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键和联系类型的属性。
③若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
规则1.2.2(一元联系类型的转换):与二元联系类型的转换(规则1.2.1)类似。
规则1.2.3(三元联系类型的转换):不管联系类型是何种方法,总是将三元联系类型转换成关系模式,其属性为三端实体类型的键加上联系类型的属性,而键为三端实体键的组合。但读者应注意,由于三元联系比较复杂,这样设计出来的关系模式可能有冗余现象,还需用规范化理论进行处理。限于篇幅,此处不再讨论。
2. 三元联系转换
1:1:1可以在三个实体类型转换成的三个关系模式中任意一个关系模式的属性中加入另两个关系模式的键(作为外键)和联系类型的属性
1:1:N在N端实体类型转换成的关系模式中加入两个1端实体类型的键(作为外键)和联系类型的属性
1:M:N将联系类型也转换成关系模式,其属性为M端和N端实体类型的键(作为外键)加上联系类型的属性,而键为M端和N端实体键的组合
M:N:P将联系类型也转换成关系模式,其属性为三端实体类型的键(作为外键)加上联系类型的属性,各实体的键组成关系的键或关系键的一部分。或:三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
7.2.1事务的定义
从用户观点看,对数据库的某些操作应是一个整体,也就是一个独立的工作单元,不能分割。例如,客户认为电子资金转账(从账号A转一笔款到账号B)是一个独立的操作,而在DBS中这是由几个操作组成的。显然,这些操作要么全都发生,要么由于出错(可能账号A已透支)而全不发生。保证这一点非常重要,我们决不允许发生下面的事情:在账号A透支情况下继续转账;或者从账号A转出了一笔钱,而不知去向未能转入账号B中。这样就引出了事务的概念。
定义7.1事务(Transaction)是构成单一逻辑工作单元的操作集合。
DBS的主要意图是执行“事务”。事务是数据库环境中一个逻辑工作单元,相当于操作系统环境中的“进程”概念。一个事务由应用程序中的一组操作序列组成,在程序中,事务以BEGIN TRANSACTION语句开始,以COMMIT语句或ROLLBACK 语句结束。
COMMIT语句表示事务执行成功地结束(提交),此时告诉系统,数据库要进入一个新的正确状态,该事务对数据库的所有更新都已交付实施(写入磁盘)。ROLLBACK语句表示事务执行不成功地结束(应该“回退”),此时告诉系统,已发生错误,数据库可能处在不正确的状态,该事务对数据库的所有更新必须被撤销,数据库应恢复该事务到初始状态。
7.2.2事务的ACID性质
7.2.2事务的ACID性质为了保证数据库中数据总是正确的,我们要求事务具有下列四个性质:
1.原子性(Atomicity)一个事务对数据库的所有操作,是一个不可分割的工作单元。这些操作要么全部执行,要么什么也不做(就效果而言)。
保证原子性是数据库系统本身的职责,由DBMS的事务管理子系统来实现。
2.一致性(Consistency)一个事务独立执行的结果,应保持数据库的一致性,即数据不会因事务的执行而遭受破坏。
确保单个事务的一致性是编写事务的应用程序员的职责。在系统运行时,由DBMS的完整性子系统执行测试任务。
3.隔离性(Isolation)在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样,此时称事务达到了隔离性的要求。也就是在多个事务并发执行时,保证执行结果是正确的,如同单用户环境一样。
隔离性是由DBMS的并发控制子系统实现的。
4.持久性(Durability)一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中。即使以后系统发生故障,也应保留这个事务执行的痕迹。
事务的持久性由DBMS的恢复管理子系统实现的。
上述四个性质称为事务的ACID性质,这一缩写来自四条性质的第一个英文字母。
以下例题仅供参考:
这是一份关于商店商品仓库的ER图。
先看仓库和商品之间是M:N的关系,于是我们首先想到的应该是把联系库存转换为库存实体。
库存 (仓库号,商品号,日期,库存量)
然后是商品实体和仓库实体
商品(商品号,商品名,单价)
仓库(仓库号,仓库名,地址)
除此之外仓库和商品还有一个供应关系,同样是M:N关系:
供应 (仓库号,商品号 ,月份,月供应量)
在上图的商店和仓库之间的关系可能写漏了,但是它们应该也是M:N的关系,一个商店可以被多个仓库供应,一个仓库也可以供应多个商店。上面已经创建了供应实体,现在只需在供应实体中加入商店号即可,也就是商店实体的主键。
供应(仓库号,商品号,商店号 ,月份,月供应量)
商店(商店号,商店名,地址)
总结
至此,转换关系模型也完成了,当然这只是个例子,实际的开发中,我们可能会遇到各式各样奇怪的需求,这就更要求我们做好概念设计的环节,对后来的数据库设计和维护都有好处。ER图的好坏,始终是数据库设计的重要一节。
实体-联系模型(简称E-R模型)是由P.P.Chen于1976年首先提出的。它提供不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。E-R数据模型问世后,经历了许多修改和扩充。
从数据需求分析中分析出系统的实体属性图,需要遵循三范式原则,对实体之间的依赖关系进行了整合,得出系统E-R图。
说明:菱形表示实体之间的关系,用矩形表示实体,用无向直线把菱形与有关实体连接,在直线上标明联系的类型。用椭圆表示实体的属性,并用无向直线把实体与属性联系起来。
1 E-R模型向关系模型的转换规则:
(1)实体类型的转换
将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。
(2)联系类型的转换
1)实体间的联系是1:1
可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
2)如实体间的联系是1:N
则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
3)如实体间的联系是M:N
则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
2 三元联系转换
1:1:1可以在三个实体类型转换成的三个关系模式中任意一个关系模式的属性中加入另两个关系模式的键(作为外键)和联系类型的属性
1:1:N在N端实体类型转换成的关系模式中加入两个1端实体类型的键(作为外键)和联系类型的属性
1:M:N将联系类型也转换成关系模式,其属性为M端和N端实体类型的键(作为外键)加上联系类型的属性,而键为M端和N端实体键的组合
M:N:P将联系类型也转换成关系模式,其属性为三端实体类型的键(作为外键)加上联系类型的属性,各实体的键组成关系的键或关系键的一部分。或:三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
上图E-R模型向关系模型的结果:
仓库(仓库号#,仓库名,地址)
商店(商店号#,商店名)
商品(商品号#,商品名)
进货(商店号#,商品号#,仓库号#,日期#,数量)
安装(舰艇编号,武器编号)
仓库(仓库编号,仓库名,地址,公司编号)
公司(公司编号,公司名,地址)
职工(职工编号,姓名,性别,仓库编号,聘期,工资)
ER图/模型转换为关系模型的更多相关文章
- 数据库设计和ER模型-------之关系模型的基本概念(第二章)
关系模型的基本术语 定义:用二维表格来表示实体集,用关键码表示实体之间联系的数据模型称为关系模型 有时也习惯称呼关系为表或表格,元组为行(Row),属性为列.关系中属性个数称为“元数”,元组个数称为“ ...
- 数据库系统概论——从E-R模型到关系模型
E-R模型和关系模型都是现实世界抽象的逻辑表示 E-R模型并不被 DBMS直接支持,更适合对现实世界建模 关系模型是 DBMS直接支持的数据模型 基本 E-R图中的元素包括实体集.联系集.属性 椭圆框 ...
- ER模型到关系模型的转换规则
E-R模型向关系模型的转换规则: 一.两元联系的转换规则 (1)实体类型的转换 将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键. (2)联系类型的转换 a实体间的联 ...
- 【6】TensorFlow光速入门-python模型转换为tfjs模型并使用
本文地址:https://www.cnblogs.com/tujia/p/13862365.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- E-R图转换为关系模型
E-R模型如何转换成关系模型,这里我们分成三种情况进行讲解,分别是一对一,一对多和多对多. 1.一对一的情况: 有两种方法解决这个问题.第一个方法:可以单独对应一个关系模式,由各实体的主码构成关系模式 ...
- 数据库系统原理——ER模型与关系模型
原文链接: http://blog.csdn.net/haovip123/article/details/21614887 犹记得第一次看<数据库系统原理>时看天书的感觉,云里雾里:现在已 ...
- 如何将ER图转换成关系模式集
在ER图中,主要是实体类型和联系类型. 1.实体类型的转换 (“——”表示对应关系) 实体类型——关系模式 实体的属性——关系模式的属性 实体标识符——关系模式的键 2.联系的转换 一元联系较简单,三 ...
- ssh 实体关系分析确立(ER图-实体关系图)
比較简单的方式就是依据模仿同类产品,依据同类产品的进行模仿,表单就是一个起码要加的字段,然后依据项目须要额外添加字段. 注意:实体类之间的引用关系还须要考虑性能的影响.如:单向或是双向. 表设计: 设 ...
- 数据库——数据库设计 E-R图向关系模型的转换
1.将下列物资管理E-R图转换为关系模式: 转换原则 ⒈ 一个实体型转换为一个关系模式.关系的属性:实体型的属性关系的码:实体型的码 ⒉ 一个m:n联系转换为一个关系模式(初步,以后可能调整). ...
随机推荐
- MySQL外键约束On Delete和On Update的使用
On Delete和On Update都有Restrict,No Action, Cascade,Set Null属性.现在分别对他们的属性含义做个解释. ON DELETE restrict(约束) ...
- 文档声明(Doctype)和<!Doctype html>有何作用? 严格模式与混杂模式如何区分?它们有何意义?
文档声明的作用: 文档声明是为了告诉浏览器,当前HTML文档使用什么版本的HTML来写的,这样浏览器才能按照声明的版本来正确的解析. <!doctype html> 的作用就是让浏览器进入 ...
- 02 | 自己动手,实现C++的智能指针
第一步:针对单独类型的模板 为了完成智能指针首先第一步的想法. class shape_wrapper { public: explicit shape_wrapper( shape* ptr = n ...
- 四、初识Java
一.Java三大版本 JavaSE:标准版(桌面程序,控制台开发......) JavaME:嵌入式开发(手机,小家电......)[了解就行] JavaEE:E企业级开发(Web端,服务器开发... ...
- Educational Codeforces Round 108 (Div. 2), C map套vector存储
地址 Problem - C - Codeforces 题目 题意 一个学校有n个人参加比赛,他们分别属于ui队,每个人的能力值为si 当每个队需要1~n个人的时候,这个学校能参加的人的能力值和最大 ...
- 前端性能优化之js,css调用优化
规则1:减少HTTP请求 把多个JS请求合并为一个JS请求,把多个CSS请求合并为一个CSS请求.从而减少从客户端向服务器端的请求数. 规则3:添加Expires头 用http ...
- JavaScript学习高级1
Doucment(Dom)文档对象,用户控制html文档中的元素, <span id="span" onclick="fun();">1111& ...
- 2021.07.09 K-D树
2021.07.09 K-D树 前置知识 1.二叉搜索树 2.总是很长的替罪羊树 K-D树 建树 K-D树具有二叉搜索树的形态,对于每一个分类标准,小于标准的节点在父节点左边,大于标准的节点在父节点右 ...
- 合并csv文件保存到一个csv文件中-保留表头
主要实现功能: 在同一文件夹下的所有csv文件全部合并到同一个csv文件中,并将csv文件的表头保留 1 import os 2 import pandas as pd 3 path = os.get ...
- 【论文笔记】A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning and Beyond(综述)
A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning and Bey ...