数据库系统概念(第七周 第二堂)(E-R模型转关系模式)

前言

前一堂课我们深入研究了E-R模型的画法和要点,学习E-R模型肯定是为了给数据库表格设计提供帮助。数据库表格设计就是关系模式设计,数据库表就是关系模式的实例化。所以本堂课,我们来看E-R模型如何转为关系模式。

转化原则 

转化步骤

转化原则

关系(关系模式/表格架构)=实体转关系+联系转关系(两种表格类型)

一、实体--->关系

1、强实体集:实体集名称就是表格名称;实体集属性就是表格列;主码和实体集相同

2、弱实体集:实体集名称就是表格名称;实体集属性+依赖强实体集主键作为表格列;主码为弱实体集部分码+强实体集主码

二、多样实体处理 

上述实体--->关系的处理原则在这里仍然适用,但是在遇到存在复合属性/多值属性的实体时。我们需要一些特殊的处理:

1、多值属性:创建新的关系;关系属性为所在实体主码+多值属性;主码为所在实体主码+多值属性

2、复合属性:复合属性最底层的所有属性就是关系模式的列

例如:

 

小练习:

三、联系--->关系

 1、联系转关系:每一个联系转为一张表也就是一个关系;表的属性为参与联系实体的主码+联系自身的属性

 2、特殊情况:a.如果在不同的实体集中出现了主码属性名称不唯一的情况,应该以实体的名字加上属性的名字形成唯一的属性名;b.如果一个实体集不止一次地参加了某个联系集,则角色名可代替实体集的名字形成唯一的属性名

合并原则

在把联系和实体集都转化为关系之后,我们需要利用合并原则把关系进一步简化。

合并只发生在联系的关系和实体集的关系之间

二元m:1联系(多对一联系)

原则:在二元多对一联系中,联系转化的表可以和“多端”实体转化成的表进行合并

示例:

二元1:1联系(一对一联系)

原则:联系转化的表可以与任一端实体转化成的表进行合并;二元一对一联系不能导致相关实体转化成的表合并

示例:

二元m:n联系(多对多联系) 

原则:将联系定义为新的关系,这个关系不能与实体转化成的关系进行合并

示例:

实体集内部联系

原则:只有一对多、一对一的联系能够进行合并;合并基本原则和前面的二元联系都是相同的;合并后属性的名称可能发生变化

示例:

多元联系 

原则:联系转化的表和实体转化的表不能进行合并

示例:

合并原则小练习

题目一

本题中有三个实体集,两个联系,所以一开始可以写出五个关系;讲授联系是多对多的联系,所以不能合并;上课联系是多元联系,所以不能合并。 

题目二

由于有两个联系都叫管理,本题将职工和职工间的联系“联系”改名为“领导”,该联系是能够合并到职工表中的 

总结

本文的所有知识点、图片均来自《数据库系统概念》(黑宝书)、山东大学李晖老师PPT。不可用于商业用途转发。

本篇已经码了三个多小时了,算是简单入门E-R模型转关系模式的文章,下节课第八周第一堂我们来深入讲讲E-R模型的拓展特性,以及如何通过E-R模型方法来设计数据库

如果能帮助到大家,大家可以点点赞、收收藏呀~ 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Vulnhub]Solid-State POP3邮件服务(James)+rbash逃逸

信息收集&SSH Server IP addressPorts Open192.168.8.100TCP:22,25,80,110,119,4555 Nmap 扫描: $ nmap -p- 192.168.8.100 --min-rate 1000 -sC -sV 结果: Host is up (0.00061s latency). Not shown: 65529 closed tcp ports (conn-refused) PORT STATE SERVICE…

phpStudy安装sqli-labs

phpStudy安装sqli-labs git地址:https://github.com/Audi-1/sqli-labs 点击管理–>根目录 将git下载的sqli-labs文件放进去并解压 进入sql-connections修改 修改db-creds.inc文件为自己数据库的账号密码 更改php版本为5.*,因为这个程序只能在php 5.…

[Golang] go-kit 介绍和使用 (微服务实现工具)

文章目录 1.go-kit 介绍1.1 go-kit 三层结构 2.go-kit 实例 1.go-kit 介绍 go-kit是一个分布式的开发工具集,在大型的组织(业务)中可以用来构建微服务,其解决了分布式系统中大多数常见问题,因此,使用者可以…

Paragon NTFS for Mac 15软件下载-详细安装教程视频

​Paragon NTFS for Mac是Mac平台上一款非常优秀的读写工具,可以在Mac OS X中完全读写、修改、访问NTFS硬盘、U盘等外接设备的文件。这款软件最大的亮点简书可以让我们读写 NTFS 分区,因为在Mac OS X 系统上,默认状态下我们只能读取NTFS 分区…

Spring-kafka消费者消费的一些问题

前言 Spring Kafka 无缝集成了 Spring Boot、Spring Framework 及其生态系统中的其他项目,如 Spring Cloud。通过与 Spring Boot 的自动配置结合,开发者可以快速启动和配置 Kafka 相关的功能。无需编写大量样板代码即可实现 Kafka 的生产和消费功能&…

【源码】16国语言交易所源码/币币交易+期权交易+秒合约交易+永续合约+交割合约+新币申购+投资理财/手机端uniapp纯源码+PC纯源码+后端PHP

测试环境:Linux系统CentOS7.6、宝塔面板、Nginx、PHP7.3、MySQL5.6,根目录public,伪静态laravel5,开启ssl证书 语言:16种,看图 这套带前端uniapp纯源码,手机端和pc端都有纯源码,后…

list集合自定义排序

一、基本类型排序 1.list中只有数字或字符串 //升序排序 List<T> ,T为数字或字符串 Collections.sort(list); //降序排序 Collections.sort(list,Collections.reverseOrder());2.list中为对象 基于jdk.18 import lombok.Data;Data public class User {private int i…

Linux下Shell脚本基础知识

主要参考视频&#xff1a; 这可能是B站讲的最好的Linux Shell脚本教程&#xff0c;3h打通Linux-shell全套教程&#xff0c;从入门到精通完整版_哔哩哔哩_bilibili 主要参考文档&#xff1a; Shell 教程 | 菜鸟教程 (runoob.com) Bash Shell教程 (yiibai.com) 先用视频入门&…

基于springboot实现火锅店管理系统项目【项目源码+论文说明】

基于springboot实现火锅店管理系统演示 摘要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装火锅店管理系统软件来…

编译一个叫:未来的IDE-Zed编辑器(Windows平台)

一、前言 截止到2024-6-15&#xff0c;Zed官方并未给出Windows的二进制安装包&#xff0c;如果想在Windows平台使用的话需要自己编译&#xff0c;我是如何编译的请随我道来&#xff0c;有兴趣的码友可以尝试下&#xff0c;在下可不敢保证各位码友按我这方法能100%编译出来&…

【JavaEE进阶】——利用框架完成功能全面的图书管理系统

目录 &#x1f6a9;项目所需要的技术栈 &#x1f6a9;项目准备工作 &#x1f388;环境准备 &#x1f388;数据库准备 &#x1f6a9;前后端交互分析 &#x1f388;登录 &#x1f4dd;前后端交互 &#x1f4dd;实现服务器代码 &#x1f4dd;测试前后端代码是否正确 &am…

一些硬件知识(十)

MOS管当开关控制时&#xff0c;一般用PMOS做上管&#xff0c;NMOS做下管 细说MOS管知识-MOS管高端驱动与低端驱动解析和原理及区别_高端功率 mos 管是什么意思-CSDN博客 PMOS管&#xff1a; PMOS管的源极&#xff08;Source&#xff09;通常连接到正电源&#xff08;Vcc&#…

西门子学习笔记15 - 位逻辑操作的学习

1、点动操作&#xff08;按下按钮就启动松开就停止&#xff09; 2、自锁电路&#xff08;可以自己保持的状态除非常闭停止按下&#xff09; 3、取反操作&#xff08;顾名思义就是反过来1就变成0&#xff0c;0就变成1&#xff09; 4、置为复位&#xff08;置位之后如果不复位的话…

SpringBoot自定义Starter及原理分析

目录 1.前言2.环境3.准备Starter项目4.准备AutoConfigure项目4.1 准备类HelloProperties4.2 准备类HelloService4.3 准备类HelloServiceAutoConfiguration4.4 创建spring.factories文件并引用配置类HelloServiceAutoConfiguration4.5 安装到maven仓库 5.在其他项目中引入自定义…

困惑度作为nlp指标的理解示例

为了更清晰地说明困惑度的计算过程以及如何通过困惑度判断模型的优劣&#xff0c;我们可以通过一个简单的例子来演示。假设我们有一个非常简单的文本语料库和两个基础的语言模型进行比较。 示例文本 假设我们的文本数据包括以下两个句子&#xff1a; “cat sits on the mat”…

计算机网络:网络层 - 路由选择协议

计算机网络&#xff1a;网络层 - 路由选择协议 路由器的结构路由选择协议概述自治系统 AS内部网关协议路由信息协议 RIP距离向量算法RIP报文格式收敛问题 开放最短路径优先 OSPF基本工作原理自治系统分区 外部网关协议BGP-4 路由器的结构 如图所示&#xff0c;路由器被分为路由…

【项目实战】如何写一个操作系统?

【项目实战】如何写一个操作系统? 目录 【项目实战】如何写一个操作系统?前言下载32位的lucid系统解决旧版系统下载源失效的问题利用共享文件夹将下载的.deb文件上传系统中如何解决下载了g但是不能使用的问题&#xff1f;编译系统源文件配置grub和qemu项目拓展 作者&#xff…

证照之星 XE版软件怎么下载安装? 【详细安装图文教程】

软件简介&#xff1a; 证照之星是国内顶级的证件照片制作软件&#xff0c;具有一键裁剪&#xff0c; 智能背景替换&#xff0c;批量制作、内置证照规格的四大优势。同时两大独创技术&#xff1a;智能去除皮肤油光、证照服装替换。同时支持联机拍摄&#xff1a;支持网络摄像头及…

【软件工程】【23.04】p2

关键字&#xff1a; 计算机软件定义、需求基本性质、创建系统类图所涉及的工作、RUP创建系统用况模型活动、软件生存周期模型、能力等级和成熟度等级区别联系&#xff1b; 模块结构图&#xff1a;深度宽度、扇入扇出、作用域、控制域&#xff1b; 程序流程图&#xff1a;语句…

吉他谱反复记号有哪些 Guitar Pro如何加吩咐标记 吉他初学者入门教程

吉他谱中的反复记号是指用来指示音乐重复部分的符号&#xff0c;对于吉他演奏者来说&#xff0c;了解这些符号的含义和使用方法非常重要。下面我们来看看吉他谱反复记号有哪些&#xff0c;Guitar Pro 如何加吩咐标记的相关内容。 一、吉他谱反复记号有哪些 1.双线反复记号&am…