数据库设计步骤、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.mfbz.cn/a/689192.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

input组件 type为nickname pc端获取不到这个绑定的值?

一、input组件 type为nickname pc端获取不到这个绑定的值&#xff1f; 在pc端 使用input blur 事件获取选择昵称结果失败 代码如下&#xff1a; <input type"nickname" bindblur"binname" name"nickName" placeholder"请输入昵称"…

车载开发之预置无源码apk到Android系统(带so文件)

1.在 packages/apps 下面以需要预置的 APK 名字创建文件夹&#xff0c;以预置一个名为 CarNavi 的APK为例。 新建一个CarNavi 的文件夹&#xff0c;在系统里面&#xff0c;如下图所示&#xff08;我的系统路径&#xff1a;/home/ts/project/NewAosp/Android/packages/apps/Car…

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

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

AIXcoder eclipse 安装使用

1. eclipse 插件安装界面打开 2. 输入aixcode 插件链接安装 aiXcoder - https://image.aixcoder.com/eclipse-update-site/选择 CodeCompletion 点击next&#xff0c;按照提示完成安装 3.重启eclipse 安装成功 console 出现aixcoder 的log工具栏出现aixcoder windows-> pr…

蓝牙资讯|2024年Q1全球个人智能音频设备出货量达到9000万台

Canalys 发布了最新研究报告&#xff1a;2024 年第一季度&#xff0c;全球个人智能音频设备市场呈回暖的迹象&#xff0c;同比增长 6%&#xff0c;出货量超 9000 万台。数据显示&#xff0c;本季度的增长主要得益于 TWS 真无线蓝牙耳机和无线头戴式耳机的强劲表现&#xff0c;两…

.Net Core 8.0 IIS部署遇到奇怪的部分接口报404的问题解决

本地运行没问题&#xff0c;部署到IIS后&#xff0c;部分接口报404&#xff0c;其它接口都正常。 经和群里讨论&#xff0c;大概意思是接口返回数据比较大的时候&#xff0c;就会出现这个问题。 查看事件查看器&#xff0c;发现应该是数据过大时使用了临时文件夹&#xff0c;…

【Vue】组件化开发

文章目录 一、介绍二、根组件 App.vue 一、介绍 组件化&#xff1a;一个页面可以拆分成一个个组件&#xff0c;每个组件有着自己独立的结构、样式、行为。 好处&#xff1a;便于维护&#xff0c;利于复用 → 提升开发效率。 组件分类&#xff1a;普通组件、根组件。 根组件…

分布式版本控制工具软件——Git概述

目录 一、Git概述1.为什么要学习Git&#xff1f;&#xff08;1&#xff09;SCM概念&#xff08;2&#xff09;SCM实现 2.什么是版本控制&#xff1f;&#xff08;1&#xff09;版本控制软件的基础功能&#xff08;2&#xff09;集中式版本控制&#xff08;3&#xff09;分布式版…

CentOs7 JDK21 安装

CentOs7 JDK21 安装 准备工作 先检查系统是否之前已经安装了jdk 。如果已经安装的话需要卸载。 方式一&#xff1a;使用压缩包的方式 下载jdk21的压缩包 https://www.oracle.com/java/technologies/downloads/ 将下载的gz压缩包上传到服务器并解压 # 创建文件夹 (你可以自…

在npm发布自己的组件包

目录 前言 正文 npm和git的对比 Node环境的配置 具体发布步骤 ※※需要注意的是 尾声 &#x1f52d; Hi,I’m Pleasure1234&#x1f331; I’m currently learning Vue.js,SpringBoot,Computer Security and so on.&#x1f46f; I’m studying in University of Nottingham Ni…

Allegro X PCB设计小诀窍系列--如何在Allegro X中快速将位号调整到器件中心

背景介绍&#xff1a;我们在进行PCB设计时&#xff0c;为了将位号和元器件对应&#xff0c;从而能够更快速准确的辨别元器件位置&#xff0c;通常需要将位号移动至器件中心。如果由工程师手动完成&#xff0c;不仅工作量大&#xff0c;还极易出错。而通过Allegro X PCB设计工具…

基于简单Agent对医疗数据进行分析

数据表 供应商资格审核规定.pdf 医生名录.xlsx 历史就诊记录.xlsx 患者信息名录.xlsx 药品.xlsx 药品库存管理.xlsx 采购单位基本信息.xlsx Agent测试 模型基于ChatGPT-3.5 问题&#xff1a;帮我找出不达标的供应商 Agent分析过程 [Thought: 0] Key Concepts: - 不达标的供…

SQL Server数据库xp_cmdshell提权笔记

文章目录 一、简介二、搭建环境三、利用条件1、查询 xp_cmdshell 是否开启&#xff0c;返回为1则证明存在2、判断权限是不是sa&#xff0c;回是1说明是sa3、开启xp_cmdshell4、关闭xp_cmdshell 四、获取数据库权限1、成功获取sqlserver&#xff0c;进行登陆2、开启xp_cmdshell权…

进口电动流量调节阀的选型-美国品牌

进口电动流量调节阀的选型需要综合考虑多个因素&#xff0c;以确保所选阀门能够满足实际应用需求。以下是选型时需要考虑的主要方面&#xff1a; 一、明确应用需求 工作介质&#xff1a;了解介质的性质&#xff0c;包括流体类型、温度、压力以及是否具有腐蚀性或特殊性质。流…

C语言野指针、规避野指针、assert宏断言

目录 a.野指针成因 1.指针未初始化 2.指针越界访问 3.指针指向的空间释放 b.规避野指针 1.指针初始化 2.小心指针越界 3.指针变量不再使用时&#xff0c;及时置NULL&#xff0c;指针使用之前检查有效性 4.避免返回局部变量的地址 c.assert宏断言的使用 概念&#xff1…

LeetCode 两数之和 + 三数之和

两数之和 简单题 思路&#xff1a;一个Map&#xff0c;key是数值&#xff0c;value是该数值对应的下标&#xff0c;遍历的时候判断一下当前数组下标对应的值在map里有没有可组合成target的&#xff08;具体体现为在map里找target-nums【i】)&#xff0c;如果有&#xff0c;直接…

【代码随想录】【算法训练营】【第28天】 [93]复原IP地址 [78]子集 [90]子集II

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 28&#xff0c;工作的周二~ 题目详情 [93] 复原 IP 地址 题目描述 93 复原 IP 地址 解题思路 前提&#xff1a;分割问题 思路&#xff1a;回溯算法&#xff0c;确定每次递归回溯的分割位置…

navi_cat查看数据库的连接密码

Navi_Cat 建立连接&#xff0c;来访问数据库。可惜&#xff0c;忘记了数据库密码&#xff0c;没事&#xff0c;这么搞。 首先先导出链接&#xff0c;再从链接里取出被加密的密码&#xff0c;然后找个可在线运行PHP的网站&#xff08;代码在线运行 - 在线工具&#xff09;&…

Vue项目安装axios报错npm error code ERESOLVE npm error ERESOLVE could not resolve解决方法

在Vue项目中安装axios时报错 解决方法&#xff1a;在npm命令后面加--legacy-peer-deps 例如&#xff1a;npm install axios --save --legacy-peer-deps 因为别的需求我把node版本重装到了最新版&#xff08;不知道是不是这个原因&#xff09;&#xff0c;后来在项目中安装axi…

2024 年该如何利用 MidJourney 创作AI艺术(详细教程)

什么是 Midjourney Midjourney 是根据文本提示创建图像的生成式人工智能的优秀范例。与 Dall-E 和 Stable Diffusion 一样&#xff0c;它已成为最受欢迎的人工智能艺术创作工具之一。与竞争对手不同的是&#xff0c;Midjourney 是自筹资金和封闭源代码的&#xff0c;因此对它的…