数据库设计步骤、E-R图转关系模式、E-R图的画法

一、数据库设计步骤

①需求分析阶段
    准确了解与分析用户需求。

②概念结构设计阶段
    通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型。

③逻辑结构设计阶段
    将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化。

④物理结构设计阶段
    为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。

⑤数据库实施阶段
    根据逻辑设计和物理设计的结果建立数据库,编写与调试应用程序,组织数据入库,并进
行试运行。

⑥数据库运行和维护阶段
    数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评估、调整与修改。

二、E-R图转关系模式

1. 实体之间的三类联系

2. E-R图转关系模式

(1)E-R图需要满足的条件

    ①实体之间通过关系相连。
    ②实体-关系-实体之间有三类联系之一。
    ③属性附属实体。
    ④属性控制关系。

(2)关系模式转E-R图的方法

    ①若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的主键和联系类型的属性。
    ②若实体间联系是1:n,则在n端实体类型转换成的关系模式中加入1端实体类型的主键和联系类型的属性。
    ③若实体间联系是m:n,则将联系类型转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而主键为两端实体键的组合。
    简单来说:若实体间联系是1:1,则在任意一端关系模型中加入另一端的主键和关系的属性即可。若实体间联系是1:n,则在n端关系模型中加入1端的主键和关系的属性。若实体间联系是m:n,则把联系转换为关系模式,并且加入两端的主键组合为新的主键和关系的属性。

例1:

例2:
 

例3:

三、 E-R图的画法

    ①确定实体:识别系统中的所有实体,并用矩形表示每个实体。给每个实体命名,通常使用名词。
    ②确定属性:列出每个实体的属性,并确定哪个属性作为每个实体的主键(唯一标识)。用椭圆形表示属性,并将其连接到对应的实体。
    ③确定关系:识别实体间的所有逻辑联系,并用菱形表示这些关系。明确关系的类型(一对一、一对多、多对多)并通过线段将关系连接到相关的实体。
    ④添加属性到关系:如果关系本身具有属性,也需要将这些属性添加到关系上,使用椭圆形表示,并连接到对应的菱形。


四、参考资料

王珊 萨师煊. 数据库系统概论(第5版). 高等教育出版社. 2014
数据库大题十五分钟速成(E-R图转换成关系模式)(适用于2022级太原理工大学软件学院)_哔哩哔哩_bilibili 

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

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

相关文章

“安全生产月”专题报道:AI智能监控技术如何助力安全生产

今年6月是第23个全国“安全生产月”,6月16日为全国“安全宣传咨询日”。今年全国“安全生产月”活动主题为“人人讲安全、个个会应急——畅通生命通道”。近日,国务院安委会办公室、应急管理部对开展好2024年全国“安全生产月”活动作出安排部署。 随着科…

SpringBoot的maven项目自定义打包结构

文章目录 1. 背景2. 自定义打包结构3. 打包结果 1. 背景 加入新团队,发现项目打包后只有一个大大的jar包,每次修改了一个模块的代码,都要整个上传。效率低还浪费流量呢,哈哈。假如每次修改一个模块的一点代码,单独打包…

RLHF(从人类反馈中进行强化学习)详解(三)

在经过了前两节的内容学习之后,我们对于RLHF(从人类反馈中进行强化学习)有了比较深入的认知,并且初步了解了RLHF中偏好数据集的引入,奖励模型的设置以及baseLLM的训练过程。在本节的学习中,我们将深入LLM的…

【ssh命令】ssh登录远程服务器

命令格式:ssh 用户名主机IP # 使用非默认端口: -p 端口号 ssh changxianrui192.168.100.100 -p 1022 # 使用默认端口 22 ssh changxianrui192.168.100.100 然后输入密码,就可以登录进去了。

Java使用GDAL来解析KMZ及KML实战

目录 前言 一、在GQIS中浏览数据 1、关于空间参考 2、属性表格 二、GDAL的相关驱动及解析实战 1、GDAL中的KMZ驱动 2、GDAL实际解析 三、数据解析成果 1、KML解析结果 2、KMZ文件入库 四、总结 前言 在前面的博客中讲过纯Java实现Google地图的KMZ和KML文件的解析&…

问题:歌剧序曲是用什么曲式写成? #学习方法#其他#经验分享

问题:歌剧序曲是用什么曲式写成? A、贝多芬 B、海顿 C、肖邦 D、莫扎特 参考答案如图所示

天诚公租房、人才公寓NB-IOT人脸物联网智能门锁解决方案

近期,全国已有超70城推出商品房“以旧换新”。各地商品房“以旧换新”主要采取国企收购、市场联动、税费补贴三种模式,二手房和新房市场交易活跃度均有提升。 一、人才公寓掀起建设浪潮 事实上,旧房被收购后将被纳入保障性租赁住房&#xf…

【MySQL数据库】my.ini文件参数中文注释

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深…

【调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持】

调试笔记-系列文章目录 调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持 文章目录 调试笔记-系列文章目录调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持 前言一、调试环境操作系统:Windows 10 专业版调试环境调试…

片机+ISD1760智能家用语音唤醒系统设计

在节奏过快的生活中,人们承受的精神和心理压力十分巨大,这就使得现代人都希望在当代繁忙而枯燥的工作和学习中能身心愉悦的生活。随着信息化发展水平的逐步提高,智能化系统越来越受到人们的重视。市场上普遍的闹钟只是一种到了人们设定的时间就被令人烦躁的声音而吵醒的机械化…

【Redis】Redis主从复制(一)————主从搭建

目录 背景主从复制主从复制的工作流程主从复制的优点 配置 redis 主从结构复制配置文件,修改配置主从结构启动 redis 服务备注 查看复制状态 背景 单节点服务器的问题问题: 可用性:如果这个机器挂了,意味着服务就中断了.性能&am…

重回1990短视频全集:成都鼎茂宏升文化传媒公司

重回1990短视频全集:时光之旅的温情回顾 在数字技术的浪潮中,短视频以其独特的魅力迅速崛起,成为我们记录生活、分享故事的新方式。而当我们回望过去,那些充满怀旧情怀的年份总是让人心生感慨。今天,就让我们一起踏上…

JavaScrip轮播图

前言 在网页设计中,轮播图(Carousel)已经成为一种常见的元素,用于展示一系列的图片或内容卡片。它们不仅能够吸引用户的注意力,还能节省空间,使得用户可以在有限的空间内获得更多的信息。今天,我…

承德露露“不进则退”的十年:毛利率持续下滑,如何实现南北通喝?

《港湾商业观察》廖紫雯 日前,承德露露发布2023年年报及2024年一季报,披露营收、净利均取得一定增长的大好局面,然而时间线拉长来看,2014年、2015年,公司营收已超27亿,小十年时间过去,公司2023…

flask_sqlalchemy时间缓存导致datetime.now()时间不变问题

问题是这样的,项目在本地没什么问题,但是部署到服务器过一阵子发现,这个时间会在某一刻定死不变。 重启uwsgi后,发现第一条数据更新到了目前最新时间,过了一会儿再次发送也变了时间,但是再过几分钟再发就会…

RE_Python

python的exe文件解包 要确保使用工具的环境是和Python version一样(我这里是需要3.11) 不然,ezpy.exe_extracted文件夹点进去,类似PYZ-00.pyz_extracted的文件夹会是空的!! pyc反编译问题 ImportError:…

如何执行VMware P2V迁移|VMware Converter和替代方案

VMware中的P2V是什么? 我们常说的VMware P2V其实指的就是“物理到虚拟”,将工作负载从物理机器转换或迁移到虚拟机(VM)的过程,能够使您无需从头开始费力地创建和配置新虚拟机。 就像您可以使用Disk2vhd执行Hyper-V物理…

关闭文件及使用with语句

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 1 关闭文件 打开文件后,需要及时关闭,以免对文件造成不必要的破坏。关闭文件可以使用文件对象的close()方法实现。close()方…

C++青少年简明教程:C++函数

C青少年简明教程:C函数 C函数是一段可重复使用的代码,用于执行特定的任务,可以提高代码的可读性和可维护性。函数可以接受参数(输入)并返回一个值(输出),也可以没有参数和返回值。 …

嵌入式Linux系统编程 — 2.4 标准I/O库:I/O缓冲详解

目录 1 I/O 缓冲简介 1.1 什么是I/O 缓冲 1.2 I/O 缓冲的目的 2 文件 I/O 的内核缓冲 3 刷新文件 I/O 的内核缓冲区 3.1 什么是刷新文件 I/O 的内核缓冲区 3.2 控制文件 I/O 内核缓冲的系统调用函数 3.3 示例程序 4 控制文件 I/O 内核缓冲的标志 4.1 O_DSYNC 和 O_SY…